return this;
},
- hide: function() {
- $("geom_submit").blur();
- $("geom_title").blur();
- $("geomform").hide();
- return this;
- },
-
- show: function() {
- $("geomform").show();
- return this;
- },
-
enable: function() {
if (this.status === "enabled") {
return this;
}
};
-var SyjEditUI = {
- hide: function() {
- $("data_controls_btns").blur();
- $("data_controls_btns").hide();
- return this;
- },
-
- show: function() {
- $("data_controls_btns").show();
- return this;
- }
-};
+var SYJDataUi = (function() {
+ var deck = null,
+ getdeck = function() {
+ if (!deck) {
+ deck = new Deck("data_controls");
+ }
+ return deck;
+ };
+ return {
+ viewmode: function() {
+ getdeck().setIndex(0);
+ },
+ editmode: function() {
+ getdeck().setIndex(1);
+ }
+ };
+}());
OpenLayers.Handler.SyjModifiablePath = OpenLayers.Class(OpenLayers.Handler.ModifiablePath, {
mouseup: function(evt) {
layerOptions = {format: OpenLayers.Format.WKT,
projection: WGS84,
- styleMap: styleMap.view};
- if (gLoggedInfo.creatorname) {
- layerOptions.attribution = SyjStrings.routeBy + ' ' + '<strong>' + gLoggedInfo.creatorname + '</strong>';
- }
+ styleMap: styleMap.view,
+ attribution: SyjStrings.geomAttribution };
this.viewLayer = new OpenLayers.Layer.Vector("View Layer", layerOptions);
this.map.addLayers([baseLayer, this.viewLayer]);
if ($("edit-btn")) {
- $("edit-btn").observe('click', (function() {
+ $("edit-btn").observe('click', function() {
$("geom_submit").value = SyjStrings.editAction;
this.messenger.hide();
this.editMode();
this.mode = 'edit';
- }).bind(this));
+ }.bind(this));
}
if ($("create-btn")) {
- $("create-btn").observe('click', (function() {
+ $("create-btn").observe('click', function() {
$("geom_submit").value = SyjStrings.createAction;
this.messenger.hide();
this.editMode();
this.mode = 'create';
- }).bind(this));
+ }.bind(this));
}
if ($("clone-btn")) {
- $("clone-btn").observe('click', (function() {
+ $("clone-btn").observe('click', function() {
$("geom_submit").value = SyjStrings.cloneAction;
$("geom_title").value = "";
this.messenger.hide();
this.editMode();
this.mode = 'create';
SyjSaveUI.enableSubmit();
- }).bind(this));
+ }.bind(this));
}
$("geomform").ajaxize({
onSuccess: this.saveSuccess.bind(this),
onFailure: this.saveFailure.bind(this)
});
- SyjSaveUI.init().hide();
+ SyjSaveUI.init();
this.messenger = $('message');
hidemessenger = this.messenger.empty();
this.messenger.hide();
}
- if ($("geom_data").value) {
- this.viewLayer.addFeatures([this.wkt.read($("geom_data").value)]);
+ 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.viewLayer.destroyFeatures();
- SyjEditUI.hide();
+ SYJDataUi.editmode();
if (this.editControl.handler.realPoints && this.editControl.handler.realPoints.length >= 2) {
- SyjSaveUI.show();
SyjSaveUI.disableSubmit();
} else {
- SyjSaveUI.show().disable();
+ SyjSaveUI.disable();
}
},
this.editControl = new OpenLayers.Control.DrawFeature(new OpenLayers.Layer.Vector(), OpenLayers.Handler.SyjModifiablePath, {
callbacks: {
modify: function(f, line) {
+ if (!SYJView.unsavedRoute) {
+ SYJView.unsavedRoute = {};
+ }
if (this.handler.realPoints.length < 2) {
- SyjSaveUI.show().disable();
+ SyjSaveUI.disable();
} else {
- SyjSaveUI.show().enable();
+ SyjSaveUI.enable();
}
}
},
callback: function(form) {
this.viewMode();
this.mode = 'view';
- SyjSaveUI.hide();
- SyjEditUI.show();
+ SYJDataUi.viewmode();
this.messenger.hide();
- if (typeof this.unsavedRoute.features !== "undefined") {
+ if (this.unsavedRoute && typeof this.unsavedRoute.features !== "undefined") {
this.viewLayer.addFeatures(this.unsavedRoute.features);
}
- if (typeof this.unsavedRoute.title !== "undefined") {
+ if (this.unsavedRoute && typeof this.unsavedRoute.title !== "undefined") {
$("geom_title").value = this.unsavedRoute.title;
} else {
$("geom_title").value = "";
},
saveSuccess: function(transport) {
+ this.unsavedRoute = null;
+
if (transport.responseJSON && (typeof transport.responseJSON.redirect === "string")) {
location = transport.responseJSON.redirect;
return;
}
this.messenger.setMessage(SyjStrings.saveSuccess, "success");
- SyjSaveUI.hide();
- SyjEditUI.show();
- this.unsavedRoute = null;
+ SYJDataUi.viewmode();
document.title = $('geom_title').value;
},
$$("#user_termsofuse_anchor, #geom_termsofuse_anchor").invoke('observe', "click", function(evt) {
if (!this.toubox) {
- $("termsofusearea").show();
- $("termsofuseiframe").setAttribute("src", evt.target.href);
this.toubox = new SimpleBox($("termsofusearea"), {
closeMethods: ["onescapekey", "onouterclick", "onbutton"]
});
}
this.toubox.show();
+ if (!$("termsofuseiframe").getAttribute("src")) {
+ $("termsofusearea").show();
+ $("termsofuseiframe").setAttribute("src", evt.target.href);
+ }
evt.stop();
}.bindAsEventListener(this));
},
success: function(transport) {
- if (transport.responseText === "1") {
- LoginMgr.login(true);
- } else {
- LoginMgr.login();
+ if (!transport.responseJSON ||
+ typeof transport.responseJSON.iscreator !== "boolean" ||
+ typeof transport.responseJSON.pseudo !== "string"
+ ) {
+ 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);
+ });
+ });
SYJView.messenger.setMessage(SyjStrings.loginSuccess, "success");
this.modalbox.hide();
if (SYJView.needsFormResubmit) {
document.observe("dom:loaded", function() {
SYJLogin.init();
SYJUser.init();
+ SYJDataUi.viewmode();
SYJView.init();
SYJNewpwd.init();
LoginMgr.updateUI();
});
+window.onbeforeunload = function() {
+ if (SYJView.unsavedRoute) {
+ return SyjStrings.unsavedConfirmExit;
+ } else {
+ return undefined;
+ }
+};