this.enableSubmit();
$("geom_title").disabled = false;
$("geom_title").activate();
- $("geomform").removeClassName("disabled");
+ $$("#geom_accept_container, #geom_title_container").invoke('removeClassName', "disabled");
this.status = "enabled";
return this;
},
this.disableSubmit();
$("geom_title").blur();
$("geom_title").disabled = true;
- $("geomform").addClassName("disabled");
+ $$("#geom_accept_container, #geom_title_container").invoke('addClassName', "disabled");
this.status = "disabled";
return this;
},
mode: 'view',
init: function() {
- var externalGraphic, baseURL, baseLayer, layerOptions, extent, hidemessenger;
+ var externalGraphic, baseURL, baseLayer, layerOptions, hidemessenger;
// is svg context, opera does not resolve links with base element is svg context
externalGraphic = styleMap.edit.styles.select.defaultStyle.externalGraphic;
if (typeof gInitialGeom !== "undefined" && typeof gInitialGeom.data !== "undefined") {
this.viewLayer.addFeatures([this.wkt.read(gInitialGeom.data)]);
- extent = this.viewLayer.getDataExtent();
// XXX: ie has not guessed height of map main div yet during map
// initialisation. Now, it will read it correctly.
this.map.updateSize();
+ this.map.zoomToExtent(this.viewLayer.getDataExtent());
} else {
- extent = new OpenLayers.Bounds(gMaxExtent.minlon, gMaxExtent.minlat, gMaxExtent.maxlon, gMaxExtent.maxlat)
- .transform(WGS84, Mercator);
+ this.initMaPos(gInitialPos);
}
- this.map.zoomToExtent(extent);
+
+ $("map-overlay").hide();
+ $("geom_upload").observe('change', function() {
+ $("map-overlay").show();
+ SyjSaveUI.enable();
+ this.editControl.deactivate();
+ }.bind(this));
+
document.observe('simplebox:shown', this.observer.bindAsEventListener(this));
SYJPathLength.update();
},
+ initMaPos: function (aPos) {
+ var extent = null, center = null, zoom = 0;
+
+ if (aPos.hasOwnProperty('lon') && aPos.hasOwnProperty('lat') && aPos.hasOwnProperty('zoom')) {
+ center = new OpenLayers.LonLat(parseFloat(aPos.lon), parseFloat(aPos.lat)).transform(WGS84, Mercator);
+ zoom = parseInt(aPos.zoom);
+ } else if (aPos.hasOwnProperty('minlon') && aPos.hasOwnProperty('minlat')
+ && aPos.hasOwnProperty('maxlon') && aPos.hasOwnProperty('maxlat')) {
+ extent = new OpenLayers.Bounds(aPos.minlon, aPos.minlat, aPos.maxlon, aPos.maxlat)
+ .transform(WGS84, Mercator);
+ } else {
+ extent = new OpenLayers.Bounds(-160, -70, 160, 70).transform(WGS84, Mercator);
+ }
+
+ if (extent) {
+ this.map.zoomToExtent(extent);
+ } else {
+ this.map.setCenter(center, zoom);
+ }
+ },
+
observer: function(evt) {
if (evt.eventName === "simplebox:shown" && evt.memo.element !== $("termsofusearea")) {
this.messenger.hide();
this.viewMode();
- $("geom_data").value = this.wkt.write(new OpenLayers.Feature.Vector(line));
+ if (line.components.length) {
+ $("geom_data").value = this.wkt.write(new OpenLayers.Feature.Vector(line));
+ } else {
+ $("geom_data").value = "";
+ }
+
if (this.mode === "edit" && typeof gLoggedInfo.pathid !== "undefined") {
$("geomform").setAttribute("action", "path/" + gLoggedInfo.pathid.toString() + '/update');
} else {
callbacks: {
modify: function(f, line) {
SYJPathLength.update();
- if (!SYJView.unsavedRoute) {
- SYJView.unsavedRoute = {};
+
+ var npoints = this.handler.realPoints.length;
+ if (npoints === 0) {
+ $("geom_upload_container").show();
+ SYJView.unsavedRoute = null;
+ } else {
+ if (!SYJView.unsavedRoute) {
+ SYJView.unsavedRoute = {};
+ }
}
- if (this.handler.realPoints.length < 2) {
+
+ if (npoints < 2) {
SyjSaveUI.disable();
} else {
SyjSaveUI.enable();
}
+ },
+ create: function(f, line) {
+ $("geom_upload_container").hide();
}
},
styles = this.editControl.handler.layerOptions.styleMap.styles;
styles.select = styles.select_for_canvas;
}
- new CloseBtn($("geomform"), {
- style : {
- marginRight: "-40px",
- marginTop: "-20px"
- },
- callback: function(form) {
- this.viewMode();
- this.mode = 'view';
- SYJDataUi.viewmode();
- this.messenger.hide();
-
- if (this.unsavedRoute && typeof this.unsavedRoute.features !== "undefined") {
- this.viewLayer.addFeatures(this.unsavedRoute.features);
- }
- if (this.unsavedRoute && typeof this.unsavedRoute.title !== "undefined") {
- $("geom_title").value = this.unsavedRoute.title;
- } else {
- $("geom_title").value = "";
- }
- this.unsavedRoute = null;
- }.bind(this)
- });
},
saveSuccess: function(transport) {
},
success: function(transport) {
- LoginMgr.login();
+ if (!transport.responseJSON ||
+ typeof transport.responseJSON.pseudo !== "string"
+ ) {
+ this.messenger.setMessage(SyjStrings.unknownError, "error");
+ return;
+ }
+
+ LoginMgr.login(transport.responseJSON.pseudo);
SYJView.messenger.setMessage(SyjStrings.userSuccess, "success");
this.modalbox.hide();
if (SYJView.needsFormResubmit) {
this.messenger.setMessage(SyjStrings.unknownError, "error");
return;
}
- LoginMgr.login(transport.responseJSON.iscreator);
- $$('.logged-pseudo').each(function(elt) {
- $A(elt.childNodes).filter(function(node) {
- return (node.nodeType === 3 || node.tagName.toLowerCase() === 'br');
- }).each(function(node) {
- node.nodeValue = node.nodeValue.replace('%s', transport.responseJSON.pseudo);
- });
- });
+ LoginMgr.login(transport.responseJSON.pseudo, transport.responseJSON.iscreator);
+
SYJView.messenger.setMessage(SyjStrings.loginSuccess, "success");
this.modalbox.hide();
if (SYJView.needsFormResubmit) {
}
},
- login: function(aIsCreator) {
+ login: function(aPseudo, aIsCreator) {
if (typeof aIsCreator === "boolean") {
this.iscreator = aIsCreator;
}
this.logged = true;
+ $$('.logged-pseudo').each(function(elt) {
+ $A(elt.childNodes).filter(function(node) {
+ return (node.nodeType === 3 || node.tagName.toLowerCase() === 'br');
+ }).each(function(node) {
+ node.nodeValue = node.nodeValue.replace('%s', aPseudo);
+ });
+ });
this.updateUI();
}
});
center = bounds.getCenterLonLat().wrapDateLine(maxExtent);
}
this.setCenter(center, this.getZoomForExtent(bounds), false, true);
- }
+ };
var success = function(transport) {
$("nominatim-throbber").hide();
};
};
- for (var i = 0; i < transport.responseJSON.length; i++) {
+ var i;
+ for (i = 0; i < transport.responseJSON.length; i++) {
var item = transport.responseJSON[i];
if (item.display_name && item.boundingbox && item.boundingbox.length === 4) {
var li = new Element("li");
});
anchor.observe('click', clickhandler(item.boundingbox));
+ Element.text(anchor, item.display_name);
- var text = document.createTextNode(item.display_name);
var icon = new Element("img", {
className: "nominatim-suggestions-icon",
src: item.icon || 'icons/world.png'
});
- anchor.appendChild(text); // insert does not work; see prototype #1125
li.insert(icon).insert(anchor);
$("nominatim-suggestions-list").insert(li);
if ($("nominatim-suggestions-list").childNodes.length >= 6) {
if ($("nominatim-suggestions-list").childNodes.length > 1) {
var bottomOffset = $('data_controls').measure('height') + 3;
$("nominatim-suggestions").setStyle({
- bottom: bottomOffset.toString() + 'px'
+ bottom: (document.viewport.getHeight() - $('data_controls').cumulativeOffset().top + 3).toString() + 'px'
}).show();
$("nominatim-suggestions-list").select("li:first-child")[0].addClassName('current');
} else {