*/
commands : {
init : {
+ "reload" : {
+ label : "Reload Data",
+ icon : "org.argeo.security.ria/view-refresh.png",
+ shortcut : "Control+h",
+ enabled : true,
+ menu : "Roles",
+ toolbar : "roles",
+ callback : function(e){
+ this.loadRolesList();
+ },
+ command : null
+ },
"new_role" : {
label : "Create Role",
icon : "org.argeo.security.ria/list-add.png",
- shortcut : "Control+n",
+ shortcut : null,
enabled : true,
menu : "Roles",
toolbar : null,
"delete_role" : {
label : "Delete Role",
icon : "org.argeo.security.ria/list-remove.png",
- shortcut : "Control+s",
+ shortcut : null,
enabled : true,
menu : "Roles",
toolbar : null,
callback : function(e){
// Call service to delete
var roles = this.getViewSelection().getNodes();
- for(var i=0;i<roles.length;i++){
- var service = org.argeo.security.ria.SecurityAPI.getDeleteRoleService(roles[i]);
- service.addListener("completed", function(response){
- this.loadRolesList();
- }, this);
- service.send();
- }
+ var modal = new org.argeo.ria.components.Modal("Delete");
+ modal.addConfirm("Are you sure you want to delete the selected roles?");
+ modal.addListener("ok", function(e){
+ for(var i=0;i<roles.length;i++){
+ var service = org.argeo.security.ria.SecurityAPI.getDeleteRoleService(roles[i]);
+ service.addListener("completed", function(response){
+ this.loadRolesList();
+ }, this);
+ service.send();
+ }
+ }, this);
+ modal.attachAndShow();
},
selectionChange : function(viewName, data){
if(viewName != "roles") return;
viewSel.removeListener("changeSelection", this.monitorChooserSelectionChanges, this);
}
selectionModel.addListener("changeSelection", this.selectionToFilter, this);
+ if(selectionModel.getSelectedCount()){
+ var orig = selectionModel.getSelectedRanges()[0].minIndex;
+ }
selectionModel.setSelectionMode(qx.ui.table.selection.Model.MULTIPLE_INTERVAL_SELECTION_TOGGLE);
+ if(orig){
+ selectionModel.addSelectionInterval(orig, orig);
+ }
this.selectionToFilter();
}else if(guiMode == "edit"){
if(!this.usersAppletReference) return;
}
this.table.setEnabled(true);
selectionModel.removeListener("changeSelection", this.selectionToFilter, this);
+ if(selectionModel.getSelectedCount()){
+ var orig = selectionModel.getSelectedRanges()[0].minIndex;
+ }
selectionModel.setSelectionMode(qx.ui.table.selection.Model.SINGLE_SELECTION);
+ if(orig){
+ selectionModel.addSelectionInterval(orig, orig);
+ }
}
},
saveRoleModifications : function(deltaPlus, deltaMinus){
- //console.log(deltaPlus);
- //console.log(deltaMinus);
// LOAD CONCERNED USERS
var selectionModel = this.table.getSelectionModel();
if(!selectionModel.getSelectedCount()){
var roleValue = this._selectionToValues(selectionModel)[0];
var users = deltaPlus.concat(deltaMinus);
+ var modal = new org.argeo.ria.components.Modal("Batch Update", "", "Please wait, updating roles for selected users");
+ modal.attachAndShow();
for(var i=0;i<users.length;i++){
var user = users[i];
var userDetailService = org.argeo.security.ria.SecurityAPI.getUserDetailsService(users[i]);
qx.lang.Array.remove(userRoles, roleValue);
}
var userSaveService = org.argeo.security.ria.SecurityAPI.getUpdateUserService(response.getContent());
- userSaveService.addListener("completed", function(e){
- this.fireDataEvent("changeRolesList", this.getRolesList());
- }, this);
+ userSaveService.setAsynchronous(false);
userSaveService.send();
}, this);
+ userDetailService.setAsynchronous(false);
userDetailService.send();
}
+ this.fireDataEvent("changeRolesList", this.getRolesList());
+ modal.hide();
+ modal.destroy();
},
monitorChooserSelectionChanges : function(event){