X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=security%2Fruntime%2Forg.argeo.security.ria%2Fsrc%2Fargeo-ria-lib%2Fsecurity%2Fclass%2Forg%2Fargeo%2Fsecurity%2Fria%2FUserEditorApplet.js;fp=security%2Fruntime%2Forg.argeo.security.ria%2Fsrc%2Fargeo-ria-lib%2Fsecurity%2Fclass%2Forg%2Fargeo%2Fsecurity%2Fria%2FUserEditorApplet.js;h=7f18caaed2e49245245013ef2315273c636feb2e;hb=81579a12a1b3fa8a21e1ad7944e5dccaa8beeadf;hp=0000000000000000000000000000000000000000;hpb=e241a5585404c07bea8351c4112be64512ad7fb9;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 new file mode 100644 index 000000000..7f18caaed --- /dev/null +++ b/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/UserEditorApplet.js @@ -0,0 +1,171 @@ +/** + * A simple Hello World applet for documentation purpose. + * The only associated command is the "Close" command. + */ +/* ************************************************* +#asset(resource/org.argeo.ria.sample/window-close.png) +****************************************************/ +qx.Class.define("org.argeo.security.ria.UserEditorApplet", +{ + extend : qx.ui.container.Composite, + implement : [org.argeo.ria.components.IView], + + construct : function(){ + this.base(arguments); + this.setLayout(new qx.ui.layout.VBox()); + //this.setDecorator("tabview-pane"); + }, + + properties : + { + /** + * The viewPane inside which this applet is added. + */ + view : { + init : null + }, + /** + * Commands definition, see {@link org.argeo.ria.event.CommandsManager#definitions} + */ + commands : { + init : { + "save_user" : { + label : "Save", + icon : "ria/window-close.png", + shortcut : "Control+s", + enabled : true, + menu : "Users", + toolbar : "user", + callback : function(e){ + + }, + selectionChange : function(viewName, data){ + if(viewName != "editor") return; + var iApplet = org.argeo.ria.components.ViewsManager.getInstance().getViewPaneById("editor").getContent(); + if(iApplet == null) this.setEnabled(true); + this.setEnabled(iApplet.getModified()); + //this.setEnabled(!(data == null || !data.length || data.length > 1)); + }, + command : null + }, + "close" : { + label : "Close", + icon : "org.argeo.ria.sample/window-close.png", + shortcut : "Control+w", + enabled : true, + menu : "Users", + toolbar : "user", + callback : function(e){ + // Call service to delete + this.getView().closeCurrent(); + }, + command : null + } + } + }, + viewSelection : { + nullable:false, + check:"org.argeo.ria.components.ViewSelection" + }, + modified : { + init : false + }, + rolesList : { + + }, + instanceId : {init:""}, + instanceLabel : {init:"Editor"} + }, + + members : + { + /** + * Called at applet creation. Just registers viewPane. + * @param viewPane {org.argeo.ria.components.ViewPane} The viewPane. + */ + init : function(viewPane, data){ + if(!data){ + var now = new Date(); + this.setInstanceId(now.getTime()); + this.setInstanceLabel("New User"); + }else{ + this.setInstanceId(data); + this.setInstanceLabel("User " + data); + } + this.setView(viewPane); + this.setViewSelection(new org.argeo.ria.components.ViewSelection(viewPane.getViewId())); + + // GROUPBOXES + this.basicGB = new qx.ui.groupbox.GroupBox("Base Informations"); + var grid = new qx.ui.layout.Grid(5,5); + this.basicGB.setLayout(grid); + grid.setColumnFlex(0,1); + grid.setColumnAlign(0,"right", "middle"); + grid.setColumnFlex(1,2); + this._initializeGroupBox(this.basicGB); + + this.passGB = new qx.ui.groupbox.GroupBox("Set/Modify Password"); + this.passGB.setLayout(new qx.ui.layout.VBox()); + this._initializeGroupBox(this.passGB); + + this.naturesGB = new qx.ui.groupbox.GroupBox("User Natures"); + this.naturesGB.setLayout(new qx.ui.layout.Dock()); + this._initializeGroupBox(this.naturesGB); + + this.add(this.basicGB); + this.add(this.passGB); + this.add(this.naturesGB, {flex:1}); + + // 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}); + + this.rolesField = new org.argeo.ria.components.ui.MultipleComboBox(); + this.rolesField.setChoiceValues(["ROLE_ADMIN", "ROLE_USER", "ROLE_USER1"]); + this.basicGB.add(new qx.ui.basic.Label("Roles"), {row:1,column:0}); + this.basicGB.add(this.rolesField, {row:1,column:1}); + + this.passPane = new org.argeo.security.ria.components.PasswordCredentialImpl(); + this.passGB.add(this.passPane.getContainer()); + + 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"}); + + }, + + _initializeGroupBox: function(groupBox){ + groupBox.setPadding(0); + groupBox.getChildrenContainer().setPadding(8); + }, + + /** + * Load a given row : the data passed must be a simple data array. + * @param data {Element} The text xml description. + */ + load : function(userData){ + if(userData){ + this.usernameField.setValue(userData); + } + this.setRolesList(["ROLE_ADMIN", "ROLE_USER"]); + }, + + addScroll : function(){ + return false; + }, + + close : function(){ + return false; + } + + } +}); \ No newline at end of file