formatting

This commit is contained in:
Norbert Renner 2014-05-28 16:37:09 +02:00
parent db63c0dd80
commit 376c5462d9

View file

@ -2,83 +2,83 @@
// patch to not encode URL (beside 'layer', better readable/hackable, Browser can handle) // patch to not encode URL (beside 'layer', better readable/hackable, Browser can handle)
L.Control.Permalink.include({ L.Control.Permalink.include({
_update_href: function() { _update_href: function () {
//var params = L.Util.getParamString(this._params); //var params = L.Util.getParamString(this._params);
var params = this.getParamString(this._params); var params = this.getParamString(this._params);
var sep = '?'; var sep = '?';
if (this.options.useAnchor) sep = '#'; if (this.options.useAnchor) sep = '#';
var url = this._url_base + sep + params.slice(1); var url = this._url_base + sep + params.slice(1);
if (this._href) this._href.setAttribute('href', url); if (this._href) this._href.setAttribute('href', url);
if (this.options.useLocation) if (this.options.useLocation)
location.replace('#' + params.slice(1)); location.replace('#' + params.slice(1));
return url; return url;
}, },
getParamString: function (obj, existingUrl, uppercase) { getParamString: function (obj, existingUrl, uppercase) {
var params = []; var params = [];
for (var i in obj) { for (var i in obj) {
// do encode layer (e.g. spaces) // do encode layer (e.g. spaces)
if (i === 'layer') { if (i === 'layer') {
params.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i])); params.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));
} else { } else {
params.push(uppercase ? i.toUpperCase() : i + '=' + obj[i]); params.push(uppercase ? i.toUpperCase() : i + '=' + obj[i]);
} }
} }
return ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&'); return ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');
} }
}); });
L.Control.Permalink.include({ L.Control.Permalink.include({
initialize_routing: function() { initialize_routing: function () {
this.on('update', this._set_routing, this); this.on('update', this._set_routing, this);
this.on('add', this._onadd_routing, this); this.on('add', this._onadd_routing, this);
}, },
_onadd_routing: function(e) { _onadd_routing: function (e) {
this.options.routingOptions.on('update', this._update_routing, this); this.options.routingOptions.on('update', this._update_routing, this);
this.options.nogos.on('update', this._update_routing, this); this.options.nogos.on('update', this._update_routing, this);
// waypoint add, move, delete (but last) // waypoint add, move, delete (but last)
this.options.routing.on('routing:routeWaypointEnd', this._update_routing, this); this.options.routing.on('routing:routeWaypointEnd', this._update_routing, this);
// delete last waypoint // delete last waypoint
this.options.routing.on('waypoint:click', function(evt) { this.options.routing.on('waypoint:click', function (evt) {
var r = evt.marker._routing; var r = evt.marker._routing;
if (!r.prevMarker && ! r.nextMarker) { if (!r.prevMarker && !r.nextMarker) {
this._update_routing(evt); this._update_routing(evt);
}
}, this);
},
_update_routing: function (evt) {
var router = this.options.router,
routing = this.options.routing,
latLngs;
if (evt && evt.options) {
router.setOptions(evt.options);
} }
}, this);
},
_update_routing: function(evt) { latLngs = routing.getWaypoints();
var router = this.options.router, this._update(router.getUrlParams(latLngs));
routing = this.options.routing, },
latLngs;
if (evt && evt.options) { _set_routing: function (e) {
router.setOptions(evt.options); var router = this.options.router,
routing = this.options.routing,
routingOptions = this.options.routingOptions,
nogos = this.options.nogos;
var opts = router.parseUrlParams(e.params);
router.setOptions(opts);
routingOptions.setOptions(opts);
nogos.setOptions(opts);
if (opts.lonlats) {
routing.draw(false);
routing.clear();
routing.setWaypoints(opts.lonlats);
}
} }
latLngs = routing.getWaypoints();
this._update(router.getUrlParams(latLngs));
},
_set_routing: function(e) {
var router = this.options.router,
routing = this.options.routing,
routingOptions = this.options.routingOptions,
nogos = this.options.nogos;
var opts = router.parseUrlParams(e.params);
router.setOptions(opts);
routingOptions.setOptions(opts);
nogos.setOptions(opts);
if (opts.lonlats) {
routing.draw(false);
routing.clear();
routing.setWaypoints(opts.lonlats);
}
}
}); });