rolesList : {
},
- instanceId : {init:""},
- instanceLabel : {init:"Editor"},
+ instanceId : {
+ init:"",
+ event : "changeInstanceId"
+ },
+ instanceLabel : {
+ init:"Editor",
+ event : "changeInstanceLabel"
+ },
loaded : {
init : false
},
this.setCurrentNatureTabs([]);
this.naturesTab = new qx.ui.tabview.TabView("top");
- this.naturesTab.addListener("changeSelected", function(e){
- this.setSelectedNatureTab(e.getData());
+ this.naturesTab.addListener("changeSelection", function(e){
+ this.setSelectedNatureTab(e.getData()[0] || null);
this.getViewSelection().triggerEvent();
}, this);
saveUser : function(){
var user = this.getCurrentUser();
user.setName(this.usernameField.getValue());
- user.setRoles((this.rolesField.getValue()||"").split(","));
+ var roles = this.rolesField.getValue();
+ if(roles && roles != ""){
+ user.setRoles(roles.split(","));
+ }else{
+ user.setRoles([]);
+ }
+
// GO TO AND RETURN FROM SERVER
if(user.isCreate()){
+ if(!this.passPane.validate()){
+ this.error("Warning, passwords differ!");
+ return;
+ }
+ user.setPassword(this.passPane.getData());
+ var create = true;
var userExists = false;
var req = org.argeo.security.ria.SecurityAPI.getUserExistsService(user.getName());
req.addListener("completed", function(response){
this.error("User already exists, choose another name!");
return;
}
+ }else{
+ var pass = this.passPane.getData();
+ if(pass != null && !this.passPane.validate()){
+ this.error("Warning, passwords differ!");
+ return;
+ }
}
- var userService = user.getSaveService();
- userService.send();
- userService.addListener("completed", function(response){
- if(response.getContent().status && response.getContent().status == "ERROR"){
- return;
+ this.passPane.clear();
+ var saveCompletedCallback = qx.lang.Function.bind(function(){
+ if(create){
+ this.setInstanceLabel("User " + user.getName());
+ this.setInstanceId(user.getName());
}
this._setGuiInCreateMode(false);
- user.load(response.getContent(), "json");
this.partialRefreshUser(user, ["details","natures"]);
this.setModified(false);
this.getViewSelection().triggerEvent();
- this.fireDataEvent("savedUser", user);
+ this.fireDataEvent("savedUser", user);
}, this);
+ var userService = user.getSaveService();
+ userService.addListener("completed", function(response){
+ if(response.getContent().status && response.getContent().status == "ERROR"){
+ return;
+ }
+ user.load(response.getContent(), "json");
+ if(pass!=null){
+ var passService = org.argeo.security.ria.SecurityAPI.getUpdateUserPassService(user.getName(), pass);
+ passService.addListener("completed", function(response){
+ if(response.getContent().status){
+ this.info(response.getContent().message);
+ }
+ saveCompletedCallback();
+ }, this);
+ passService.send();
+ }else{
+ saveCompletedCallback();
+ }
+ }, this);
+ userService.send();
},
_addNatureTab : function(natureClass, natureData, select){
this.setNaturesModified(true);
}, this);
if(select){
- this.naturesTab.setSelected(page);
+ this.naturesTab.setSelection([page]);
}
return page;
},
},
removeSelectedTab : function(){
- var selected = this.naturesTab.getSelected();
+ if(this.naturesTab.isSelectionEmpty()) return;
+ var selected = this.naturesTab.getSelection()[0];
var tabClass = selected.getUserData("NATURE_CLASS");
var user = this.getCurrentUser();
user.removeNature(tabClass.NATURE_TYPE);
},
removeAllTabs : function(){
- while(this.naturesTab.getSelected()){
- this._removeNatureTab(this.naturesTab.getSelected().getUserData("NATURE_CLASS"));
+ while(!this.naturesTab.isSelectionEmpty()){
+ this._removeNatureTab(this.naturesTab.getSelection()[0].getUserData("NATURE_CLASS"));
}
},
},
partialRefreshUser : function(user, target){
- if(!qx.lang.Array.isArray(target)) target = [target];
+ if(!qx.lang.Type.isArray(target)) target = [target];
if(qx.lang.Array.contains(target,"natures")){
if(this.getSelectedNatureTab()){