*/
commands : {
init : {
+ "new_role" : {
+ label : "Create Role",
+ icon : "org.argeo.security.ria/list-add.png",
+ shortcut : "Control+n",
+ enabled : true,
+ menu : "Roles",
+ toolbar : "role",
+ callback : function(e){
+ // Prompt for new name
+ },
+ command : null
+ },
+ "delete_role" : {
+ label : "Delete Role",
+ icon : "org.argeo.security.ria/list-remove.png",
+ shortcut : "Control+s",
+ enabled : true,
+ menu : "Roles",
+ toolbar : "role",
+ callback : function(e){
+ // Call service to delete
+ var crtUsers = this.getViewSelection().getNodes();
+ for(var i=0;i<crtUsers.length;i++){
+ alert("Delete " + crtUsers[i]);
+ }
+ },
+ selectionChange : function(viewName, data){
+ if(viewName != "role") return;
+ this.setEnabled(!(data == null || !data.length));
+ },
+ command : null
+ },
"edit_role" : {
label : "Edit Role",
- icon : "ria/window-close.png",
+ icon : "org.argeo.security.ria/document-properties.png",
shortcut : "Control+r",
enabled : true,
menu : "Roles",
if(this.getView().headerLabel) this.getView().headerLabel.setMargin(8);
this.getView().header.add(buttonPane, {edge:"east"});
- this.toggleButton = new qx.ui.form.ToggleButton("Filter", "ria/go-right.png");
+ this.toggleButton = new qx.ui.form.ToggleButton("Filter", "org.argeo.security.ria/go-next.png");
this.toggleButton.set({
show:"icon",
margin:2,
this.setGuiMode(event.getData()?"filter":"clear");
}, this);
- this.saveButton = new qx.ui.form.Button("Save");
+ this.saveButton = new qx.ui.form.Button("Save", "org.argeo.security.ria/document-save.png");
this.saveButton.set({
- show:"label",
+ show:"icon",
margin:2,
toolTip :new qx.ui.tooltip.ToolTip("Save changes"),
visibility : "excluded"
});
buttonPane.add(this.saveButton);
- this.cancelButton = new qx.ui.form.Button("Cancel");
+ this.cancelButton = new qx.ui.form.Button("Cancel", "org.argeo.security.ria/window-close.png");
this.cancelButton.set({
- show:"label",
+ show:"icon",
margin:2,
toolTip :new qx.ui.tooltip.ToolTip("Cancel changes"),
visibility : "excluded"
});
buttonPane.add(this.cancelButton);
- var listener = function(){
+ this.saveButton.addListener("execute", function(){
+ alert("Saving changes...");
this.setGuiMode(this.initialState);
- };
- this.saveButton.addListener("execute", listener, this);
- this.cancelButton.addListener("execute", listener, this);
+ }, this);
+ this.cancelButton.addListener("execute", function(){
+ if(!this.getChooserSelectionModified()){
+ this.setGuiMode(this.initialState);
+ 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.setGuiMode(this.initialState);
+ }, this);
+ modal.attachAndShow();
+ }, this);
this.table.addListener("cellDblclick", function(cellEvent){
this.setGuiMode("edit");
* 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",
{
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",
},
"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
}
// 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.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);
this.usernameField.setValue(userData);
}
this.setRolesList(["ROLE_ADMIN", "ROLE_USER"]);
+ this._attachListeners();
},
addScroll : function(){
* 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.UsersApplet",
{
commands : {
init : {
"new_user" : {
- label : "Create User",
- icon : "ria/window-close.png",
+ label : "New User",
+ icon : "org.argeo.security.ria/list-add.png",
shortcut : "Control+n",
enabled : true,
menu : "Users",
- toolbar : "user",
+ toolbar : "userslist",
callback : function(e){
// Call service to delete
var classObj = org.argeo.security.ria.UserEditorApplet;
iView.load();
},
command : null
- },
- "edit_user" : {
- label : "Edit User",
- icon : "ria/window-close.png",
- shortcut : "Control+u",
+ },
+ "delete_user" : {
+ label : "Delete User",
+ icon : "org.argeo.security.ria/list-remove.png",
+ shortcut : "Control+s",
enabled : true,
menu : "Users",
- toolbar : "user",
+ toolbar : "userslist",
callback : function(e){
// Call service to delete
- var crtUser = this.getViewSelection().getNodes()[0];
- var classObj = org.argeo.security.ria.UserEditorApplet;
- var iView = org.argeo.ria.components.ViewsManager.getInstance().initIViewClass(classObj, "editor", crtUser);
- iView.load(crtUser);
+ var crtUsers = this.getViewSelection().getNodes();
+ for(var i=0;i<crtUsers.length;i++){
+ alert("Delete " + crtUsers[i]);
+ }
},
selectionChange : function(viewName, data){
if(viewName != "users") return;
- this.setEnabled(!(data == null || !data.length || data.length > 1));
+ this.setEnabled(!(data == null || !data.length));
},
command : null
- },
- "delete_user" : {
- label : "Delete User",
- icon : "ria/window-close.png",
- shortcut : "Control+s",
+ },
+ "edit_user" : {
+ label : "Edit User",
+ icon : "org.argeo.security.ria/document-properties.png",
+ shortcut : "Control+u",
enabled : true,
menu : "Users",
- toolbar : "user",
+ toolbar : "userslist",
callback : function(e){
// Call service to delete
- var crtUsers = this.getViewSelection().getNodes();
- for(var i=0;i<crtUsers.length;i++){
- alert("Delete " + crtUsers[i]);
- }
+ var crtUser = this.getViewSelection().getNodes()[0];
+ var classObj = org.argeo.security.ria.UserEditorApplet;
+ var iView = org.argeo.ria.components.ViewsManager.getInstance().initIViewClass(classObj, "editor", crtUser);
+ iView.load(crtUser);
},
selectionChange : function(viewName, data){
if(viewName != "users") return;
- this.setEnabled(!(data == null || !data.length));
+ this.setEnabled(!(data == null || !data.length || data.length > 1));
},
command : null
- }
+ }
}
},
qx.Interface.define("org.argeo.security.ria.components.INaturePane", {\r
extend : org.argeo.security.ria.components.IUserDataPane,\r
+ properties : {\r
+ natureUuid : {},\r
+ natureType : {}\r
+ },\r
members : {\r
getNatureLabel : function(){return true},\r
setData : function(dataMap, format){return true;}\r
getData : function(format){return true;},\r
validate : function(){return true;}\r
},\r
+ properties : {\r
+ valid : {}\r
+ },\r
events : {\r
- "modified" : "qx.event.type.Event"\r
- \r
+ "modified" : "qx.event.type.Event" \r
}\r
});
\ No newline at end of file
events : {\r
"modified" : "qx.event.type.Event" \r
},\r
+ properties : {\r
+ valid : {\r
+ init : false\r
+ }\r
+ },\r
\r
construct : function(){\r
this.base(arguments);\r
this.setLayout(new qx.ui.layout.HBox(5, "center"));\r
this.add(new qx.ui.basic.Label("Password"), {flex:1});\r
- this.add(new qx.ui.form.TextField(), {flex:2});\r
+ this.pass1 = new qx.ui.form.PasswordField();\r
+ this.add(this.pass1, {flex:2});\r
this.add(new qx.ui.basic.Label("Confirm Password"), {flex:1});\r
- this.add(new qx.ui.form.TextField(), {flex:2});\r
+ this.pass2 = new qx.ui.form.PasswordField();\r
+ this.add(this.pass2, {flex:2});\r
+ this.pass1.addListener("changeValue", function(){this.fireEvent("modified");}, this);\r
+ this.pass2.addListener("changeValue", function(){this.fireEvent("modified");}, this);\r
+ this.pass2.addListener("changeValue", this.validate, this);\r
},\r
\r
members : {\r
return this;\r
},\r
getData : function(format){return true;},\r
- validate : function(){return true;},\r
+ validate : function(){\r
+ if(this.pass1.getValue() == this.pass2.getValue()){\r
+ this.setValid(true);\r
+ }else{\r
+ // TODO WHEN TESTING 0.8.3\r
+ //this.pass1.setValid(false);\r
+ //this.pass2.setValid(false); \r
+ this.setValid(false);\r
+ }\r
+ return this.getValid();\r
+ },\r
setEditMode : function(editMode){return true;} \r
}\r
});
\ No newline at end of file
events : {\r
"modified" : "qx.event.type.Event" \r
},\r
+ properties : {\r
+ valid : {\r
+ init : false\r
+ },\r
+ natureUuid : {\r
+ init : ""\r
+ },\r
+ natureType : {\r
+ init : "SimpleUser"\r
+ },\r
+ dataMap : {\r
+ \r
+ }\r
+ },\r
\r
construct : function(){\r
- this.base(arguments);\r
- this.setLayout(new qx.ui.layout.Grid());\r
+ this.base(arguments); \r
+ var grid = new qx.ui.layout.Grid(5,5);\r
+ this.setLayout(grid);\r
+ grid.setColumnFlex(0,1);\r
+ grid.setColumnAlign(0,"right", "middle");\r
+ grid.setColumnFlex(1,3);\r
+ \r
+ this.mailField = new qx.ui.form.TextField();\r
+ this.fNameField = new qx.ui.form.TextField();\r
+ this.nameField = new qx.ui.form.TextField();\r
+ \r
+ var labels = ["Email", "First Name", "Last Name"]; \r
+ this.fields = {\r
+ "email" : this.mailField, \r
+ "firstName": this.fNameField, \r
+ "lastName" : this.nameField\r
+ };\r
+ \r
+ for(var i=0;i<labels.length;i++){\r
+ this.add(new qx.ui.basic.Label(labels[i]), {row:i,column:0});\r
+ }\r
+ var j=0;\r
+ for(var key in this.fields){ \r
+ this.fields[key].addListener("changeValue", function(e){this.fireEvent("modified");}, this);\r
+ this.add(this.fields[key], {row:j,column:1});\r
+ j++;\r
+ }\r
+ \r
},\r
\r
members : {\r
return this;\r
},\r
getNatureLabel : function(){\r
- return "Basic User";\r
+ return "Simple User";\r
+ },\r
+ setData : function(dataMap, format){\r
+ this.setNatureUuid(dataMap["uuid"]);\r
+ this.setNatureType(dataMap["type"]);\r
+ for(var key in this.fields){\r
+ if(dataMap[key]){\r
+ this.fields[key].setValue(dataMap[key]);\r
+ }\r
+ }\r
+ this.setDataMap(dataMap);\r
+ },\r
+ getData : function(format){\r
+ var dataMap = this.getDataMap();\r
+ for(var key in dataMap){\r
+ if(this.fields[key]){\r
+ dataMap[key] = this.fields[key].getValue();\r
+ }\r
+ }\r
+ this.setDataMap(dataMap);\r
+ return dataMap;\r
},\r
- setData : function(dataMap, format){return true;},\r
- getData : function(format){return true;},\r
validate : function(){return true;}\r
}\r
});
\ No newline at end of file