X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.ria%2Fsrc%2Fargeo-ria-lib%2Fsecurity%2Fclass%2Forg%2Fargeo%2Fsecurity%2Fria%2FUserEditorApplet.js;h=1960ff8dc65bd89b27e915db01660dbfc4bec9f2;hb=92d921b154323c10abfe751d0b3df2bd3e7c97be;hp=7f18caaed2e49245245013ef2315273c636feb2e;hpb=81579a12a1b3fa8a21e1ad7944e5dccaa8beeadf;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/UserEditorApplet.js b/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/UserEditorApplet.js index 7f18caaed..1960ff8dc 100644 --- a/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/UserEditorApplet.js +++ b/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/UserEditorApplet.js @@ -3,7 +3,7 @@ * The only associated command is the "Close" command. */ /* ************************************************* -#asset(resource/org.argeo.ria.sample/window-close.png) +#asset(resource/org.argeo.security.ria/*) ****************************************************/ qx.Class.define("org.argeo.security.ria.UserEditorApplet", { @@ -12,8 +12,7 @@ qx.Class.define("org.argeo.security.ria.UserEditorApplet", construct : function(){ this.base(arguments); - this.setLayout(new qx.ui.layout.VBox()); - //this.setDecorator("tabview-pane"); + this.setLayout(new qx.ui.layout.VBox(5)); }, properties : @@ -31,7 +30,7 @@ qx.Class.define("org.argeo.security.ria.UserEditorApplet", init : { "save_user" : { label : "Save", - icon : "ria/window-close.png", + icon : "org.argeo.security.ria/document-save.png", shortcut : "Control+s", enabled : true, menu : "Users", @@ -50,14 +49,24 @@ qx.Class.define("org.argeo.security.ria.UserEditorApplet", }, "close" : { label : "Close", - icon : "org.argeo.ria.sample/window-close.png", + icon : "org.argeo.security.ria/window-close.png", shortcut : "Control+w", enabled : true, menu : "Users", toolbar : "user", callback : function(e){ // Call service to delete - this.getView().closeCurrent(); + var iApplet = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("editor").getContent(); + if(!iApplet.getModified()){ + this.getView().closeCurrent(); + return; + } + var modal = new org.argeo.ria.components.Modal("Warning"); + modal.addConfirm("There are unsaved changes!\n Are you sure you want to close?"); + modal.addListener("ok", function(){ + this.getView().closeCurrent(); + }, this); + modal.attachAndShow(); }, command : null } @@ -68,13 +77,17 @@ qx.Class.define("org.argeo.security.ria.UserEditorApplet", check:"org.argeo.ria.components.ViewSelection" }, modified : { - init : false + init : false, + apply : "_applyModified" }, rolesList : { }, instanceId : {init:""}, - instanceLabel : {init:"Editor"} + instanceLabel : {init:"Editor"}, + loaded : { + init : false + } }, members : @@ -93,7 +106,11 @@ qx.Class.define("org.argeo.security.ria.UserEditorApplet", this.setInstanceLabel("User " + data); } this.setView(viewPane); - this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId())); + this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId())); + + // TOOLBAR + this.buttonGB = new qx.ui.container.Composite(new qx.ui.layout.HBox(5, "right")); + this.add(this.buttonGB); // GROUPBOXES this.basicGB = new qx.ui.groupbox.GroupBox("Base Informations"); @@ -118,10 +135,6 @@ qx.Class.define("org.argeo.security.ria.UserEditorApplet", // FIELDS this.usernameField = new qx.ui.form.TextField(); - this.usernameField.addListener("changeValue", function(){ - this.setModified(true); - this.getViewSelection().triggerEvent(); - }, this); this.basicGB.add(new qx.ui.basic.Label("Username"), {row:0,column:0}); this.basicGB.add(this.usernameField, {row:0,column:1}); @@ -135,28 +148,63 @@ qx.Class.define("org.argeo.security.ria.UserEditorApplet", this.naturesTab = new qx.ui.tabview.TabView("top"); this.simpleNature = new org.argeo.security.ria.components.SimpleUserNatureImpl(); + var page1 = new qx.ui.tabview.Page(this.simpleNature.getNatureLabel()); page1.setLayout(new qx.ui.layout.Dock()); page1.add(this.simpleNature.getContainer(), {edge:"center"}); this.naturesTab.add(page1); this.naturesGB.add(this.naturesTab, {edge:"center"}); - + }, + _attachListeners : function(){ + this.usernameField.addListener("changeValue", function(){ + this.setModified(true); + }, this); + this.rolesField.addListener("changeValue", function(){ + this.setModified(true); + }, this); + this.passPane.addListener("modified", function(){ + this.setModified(true); + }, this); + this.simpleNature.addListener("modified", function(){ + this.setModified(true); + }, this); + }, + _initializeGroupBox: function(groupBox){ groupBox.setPadding(0); groupBox.getChildrenContainer().setPadding(8); }, + _applyModified : function(value){ + if(value) this.getViewSelection().triggerEvent(); + }, + /** * Load a given row : the data passed must be a simple data array. * @param data {Element} The text xml description. */ load : function(userData){ + if(this.getLoaded()){ + return; + } if(userData){ this.usernameField.setValue(userData); } this.setRolesList(["ROLE_ADMIN", "ROLE_USER"]); + this._attachListeners(); + var title = new qx.ui.basic.Atom(this.getInstanceLabel(), "org.argeo.security.ria/preferences-user.png"); + title.setFont(qx.bom.Font.fromString("16px sans-serif bold")); + this.buttonGB.add(title); + this.buttonGB.add(new qx.ui.core.Spacer(), {flex:1}); + var commands = this.getCommands(); + var button = new qx.ui.form.Button("Save", "org.argeo.security.ria/document-save.png", commands["save_user"].command); + var button2 = new qx.ui.form.Button("Close", "org.argeo.security.ria/window-close.png", commands["close"].command); + this.buttonGB.add(button); + this.buttonGB.add(button2); + this.setLoaded(true); + }, addScroll : function(){