erp_app 3.0.13 → 3.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. data/app/controllers/erp_app/desktop/audit_log_viewer/base_controller.rb +1 -1
  2. data/app/controllers/erp_app/desktop/file_manager/base_controller.rb +5 -5
  3. data/app/controllers/erp_app/desktop/scaffold/role_controller.rb +1 -1
  4. data/app/controllers/erp_app/desktop/security_management/base_controller.rb +47 -0
  5. data/app/controllers/erp_app/desktop/security_management/capabilities_controller.rb +129 -0
  6. data/app/controllers/erp_app/desktop/security_management/groups_controller.rb +201 -0
  7. data/app/controllers/erp_app/desktop/security_management/roles_controller.rb +188 -0
  8. data/app/controllers/erp_app/desktop/security_management/users_controller.rb +145 -0
  9. data/app/controllers/erp_app/desktop/user_management/base_controller.rb +2 -2
  10. data/app/controllers/erp_app/desktop/user_management/role_management_controller.rb +6 -6
  11. data/app/controllers/erp_app/public_controller.rb +3 -14
  12. data/app/models/application.rb +1 -10
  13. data/app/models/configuration_item_type.rb +1 -1
  14. data/app/models/configuration_option.rb +1 -1
  15. data/app/models/widget.rb +2 -11
  16. data/config/routes.rb +6 -3
  17. data/db/data_migrations/20110728201729_erp_app_setup.rb +2 -48
  18. data/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.rb +4 -1
  19. data/db/data_migrations/20111108183739_add_default_capabilities.rb +11 -18
  20. data/db/data_migrations/20111108183740_add_new_contact_widgets.rb +4 -13
  21. data/db/data_migrations/20120229160222_add_userinfo_widget.rb +6 -8
  22. data/db/data_migrations/20120418164215_create_configuration_management_desktop_application.rb +4 -0
  23. data/db/data_migrations/20121130201859_upgrade_remove_system_mgmt_app.rb +15 -0
  24. data/db/data_migrations/20121218175028_create_security_management_desktop_application.rb +28 -0
  25. data/lib/erp_app/engine.rb +5 -5
  26. data/lib/erp_app/extensions/railties/action_view/helpers/include_helper.rb +4 -3
  27. data/lib/erp_app/extensions/railties/action_view/helpers/tag_helper.rb +8 -2
  28. data/lib/erp_app/version.rb +1 -1
  29. data/lib/erp_app/widgets/base.rb +4 -0
  30. data/lib/erp_app/widgets/loader.rb +40 -34
  31. data/public/images/icons/add/Thumbs.db +0 -0
  32. data/public/images/icons/calendar/Thumbs.db +0 -0
  33. data/public/images/icons/copy/Thumbs.db +0 -0
  34. data/public/images/icons/cut/Thumbs.db +0 -0
  35. data/public/images/icons/delete/Thumbs.db +0 -0
  36. data/public/images/icons/edit/Thumbs.db +0 -0
  37. data/public/images/icons/folder/Thumbs.db +0 -0
  38. data/public/images/icons/gear/Thumbs.db +0 -0
  39. data/public/images/icons/globe/Thumbs.db +0 -0
  40. data/public/images/icons/grid/Thumbs.db +0 -0
  41. data/public/images/icons/help/Thumbs.db +0 -0
  42. data/public/images/icons/information/Thumbs.db +0 -0
  43. data/public/images/icons/key/Thumbs.db +0 -0
  44. data/public/images/icons/log_out/Thumbs.db +0 -0
  45. data/public/images/icons/mail/Thumbs.db +0 -0
  46. data/public/images/icons/new/Thumbs.db +0 -0
  47. data/public/images/icons/next/Thumbs.db +0 -0
  48. data/public/images/icons/open/Thumbs.db +0 -0
  49. data/public/images/icons/paste/Thumbs.db +0 -0
  50. data/public/images/icons/picture/Thumbs.db +0 -0
  51. data/public/images/icons/presentation/Thumbs.db +0 -0
  52. data/public/images/icons/preview/Thumbs.db +0 -0
  53. data/public/images/icons/previous/Thumbs.db +0 -0
  54. data/public/images/icons/print/Thumbs.db +0 -0
  55. data/public/images/icons/properties/Thumbs.db +0 -0
  56. data/public/images/icons/redo/Thumbs.db +0 -0
  57. data/public/images/icons/refresh/Thumbs.db +0 -0
  58. data/public/images/icons/remove/Thumbs.db +0 -0
  59. data/public/images/icons/rename/Thumbs.db +0 -0
  60. data/public/images/icons/save/Thumbs.db +0 -0
  61. data/public/images/icons/search/Thumbs.db +0 -0
  62. data/public/images/icons/send/Thumbs.db +0 -0
  63. data/public/images/icons/settings/Thumbs.db +0 -0
  64. data/public/images/icons/synchronize/Thumbs.db +0 -0
  65. data/public/images/icons/undo/Thumbs.db +0 -0
  66. data/public/images/icons/upload/Thumbs.db +0 -0
  67. data/public/images/icons/user/Thumbs.db +0 -0
  68. data/public/images/icons/zoom_in/Thumbs.db +0 -0
  69. data/public/images/icons/zoom_out/Thumbs.db +0 -0
  70. data/public/javascripts/erp_app/authentication/compass_user.js +22 -19
  71. data/public/javascripts/erp_app/authentication/widget_manager.js +107 -107
  72. data/public/javascripts/erp_app/ckeditor/plugins/inlineeditsave/plugin.js +23 -23
  73. data/public/javascripts/erp_app/ckeditor/plugins/jwplayer/jwplayer/Thumbs.db +0 -0
  74. data/public/javascripts/erp_app/desktop/applications/file_manager/module.js +2 -2
  75. data/public/javascripts/erp_app/desktop/applications/security_management/capabilities_panel.js +82 -0
  76. data/public/javascripts/erp_app/desktop/applications/security_management/capabilities_widget.js +254 -0
  77. data/public/javascripts/erp_app/desktop/applications/security_management/groups_effective_security.js +98 -0
  78. data/public/javascripts/erp_app/desktop/applications/security_management/groups_panel.js +295 -0
  79. data/public/javascripts/erp_app/desktop/applications/security_management/groups_widget.js +254 -0
  80. data/public/javascripts/erp_app/desktop/applications/security_management/module.js +71 -0
  81. data/public/javascripts/erp_app/desktop/applications/security_management/roles_panel.js +298 -0
  82. data/public/javascripts/erp_app/desktop/applications/security_management/roles_widget.js +254 -0
  83. data/public/javascripts/erp_app/desktop/applications/security_management/users_effective_security.js +125 -0
  84. data/public/javascripts/erp_app/desktop/applications/security_management/users_panel.js +95 -0
  85. data/public/javascripts/erp_app/desktop/applications/security_management/users_widget.js +254 -0
  86. data/public/javascripts/erp_app/desktop/applications/user_management/module.js +38 -58
  87. data/public/javascripts/erp_app/organizer/applications/crm/base.js +698 -698
  88. data/public/javascripts/erp_app/organizer/applications/crm/contact_mechanism_grid.js +1 -4
  89. data/public/javascripts/erp_app/shared/compass_codemirror.js +1 -1
  90. data/public/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +1 -1
  91. data/public/javascripts/erp_app/shared/dynamic_forms/dynamic_form_fields.js +99 -0
  92. data/public/javascripts/erp_app/shared/file_manager_tree.js +1 -2
  93. data/public/javascripts/erp_app/shared/notes_grid.js +4 -13
  94. data/public/stylesheets/erp_app/shared/compass-ext-all.css +5 -0
  95. metadata +70 -20
  96. data/config/environment.rb +0 -0
  97. data/spec/dummy/db/schema.rb +0 -806
  98. data/spec/dummy/db/spec.sqlite3 +0 -0
  99. data/spec/dummy/log/adam.log +0 -1
  100. data/spec/dummy/log/spec.log +0 -92886
@@ -0,0 +1,125 @@
1
+ Ext.define("Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersEffectiveSecurity",{
2
+ extend:"Ext.panel.Panel",
3
+ alias:'widget.security_management_userseffectivesecurity',
4
+
5
+ initComponent: function() {
6
+ Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersEffectiveSecurity.superclass.initComponent.call(this, arguments);
7
+ },
8
+
9
+ updateTitle : function(){
10
+ if (this.assign_to_description){
11
+ this.down('#effective').setTitle('Effective Security for User '+this.assign_to_description);
12
+ }
13
+ },
14
+
15
+ refreshWidget : function(tab){
16
+ if (tab === undefined) tab = this;
17
+
18
+ if (tab.assign_to_id){
19
+
20
+ Ext.Ajax.request({
21
+ url: '/erp_app/desktop/security_management/users/effective_security',
22
+ method: 'POST',
23
+ params:{
24
+ id: tab.assign_to_id
25
+ },
26
+ success: function(response) {
27
+ var json_response = Ext.decode(response.responseText);
28
+ if (json_response.success){
29
+ if (json_response.capabilities.length > 0){
30
+ tab.down('#roles').update(json_response.roles);
31
+ }else{
32
+ tab.down('#roles').update("No roles.");
33
+ }
34
+ if (json_response.capabilities.length > 0){
35
+ tab.down('#capabilities').update(json_response.capabilities);
36
+ }else{
37
+ tab.down('#capabilities').update("No capabilities.");
38
+ }
39
+ }else{
40
+ Ext.Msg.alert('Error', Ext.decode(response.responseText).message);
41
+ }
42
+ },
43
+ failure: function(response) {
44
+ Ext.Msg.alert('Error', 'Error Retrieving Effective Security');
45
+ }
46
+ });
47
+
48
+ }
49
+ },
50
+
51
+ constructor : function(config) {
52
+ var self = this;
53
+
54
+ var roles_tpl = new Ext.XTemplate(
55
+ '<tpl for=".">',
56
+ '{description}<br />',
57
+ '</tpl>'
58
+ );
59
+
60
+ var roles = {
61
+ xtype: 'panel',
62
+ itemId: 'roles',
63
+ title: 'Roles',
64
+ layout: 'hbox',
65
+ autoScroll: true,
66
+ bodyPadding: 10,
67
+ tpl: roles_tpl,
68
+ listeners:{
69
+ 'afterrender':function(comp){
70
+ comp.update('Select a User');
71
+ }
72
+ }
73
+ };
74
+
75
+ var capabilities_tpl = new Ext.XTemplate(
76
+ '<tpl for=".">',
77
+ '{capability_type_iid} {capability_resource_type}<br />',
78
+ '</tpl>'
79
+ );
80
+
81
+ var capabilities = {
82
+ xtype: 'panel',
83
+ itemId: 'capabilities',
84
+ title: 'Capabilities',
85
+ layout: 'hbox',
86
+ autoScroll: true,
87
+ bodyPadding: 10,
88
+ tpl: capabilities_tpl,
89
+ listeners:{
90
+ 'afterrender':function(comp){
91
+ comp.update('Select a User');
92
+ }
93
+ }
94
+ };
95
+
96
+ var effective = {
97
+ xtype: 'panel',
98
+ itemId: 'effective',
99
+ title: 'Effective Security',
100
+ layout: 'hbox',
101
+ autoScroll: true,
102
+ bodyPadding: 10,
103
+ items:[
104
+ roles,
105
+ capabilities
106
+ ]
107
+ };
108
+
109
+ config = Ext.apply({
110
+ title:'Effective Security',
111
+ items:[
112
+ effective
113
+ ],
114
+ listeners:{
115
+ activate: function(tab){
116
+ self.refreshWidget(tab);
117
+ self.updateTitle();
118
+ }
119
+ }
120
+
121
+ }, config);
122
+
123
+ Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersEffectiveSecurity.superclass.constructor.call(this, config);
124
+ }
125
+ });
@@ -0,0 +1,95 @@
1
+ Ext.define("Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersPanel",{
2
+ extend:"Ext.panel.Panel",
3
+ alias:'widget.security_management_userspanel',
4
+
5
+ initComponent: function() {
6
+ Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersPanel.superclass.initComponent.call(this, arguments);
7
+ },
8
+
9
+ setUser : function(field){
10
+ var assign_to_id = field.getValue();
11
+ var assign_to_username = field.getStore().getById(assign_to_id).data.username;
12
+
13
+ var security_management_userspanel = field.findParentByType('security_management_userspanel');
14
+
15
+ var security_management_groupswidget = security_management_userspanel.down('security_management_groupswidget');
16
+ security_management_groupswidget.assign_to_id = assign_to_id;
17
+ security_management_groupswidget.assign_to_description = assign_to_username;
18
+
19
+ var security_management_roleswidget = security_management_userspanel.down('security_management_roleswidget');
20
+ security_management_roleswidget.assign_to_id = assign_to_id;
21
+ security_management_roleswidget.assign_to_description = assign_to_username;
22
+
23
+ var security_management_capabilitieswidget = security_management_userspanel.down('security_management_capabilitieswidget');
24
+ security_management_capabilitieswidget.assign_to_id = assign_to_id;
25
+ security_management_capabilitieswidget.assign_to_description = assign_to_username;
26
+
27
+ var security_management_userseffectivesecurity = security_management_userspanel.down('security_management_userseffectivesecurity');
28
+ security_management_userseffectivesecurity.assign_to_id = assign_to_id;
29
+ security_management_userseffectivesecurity.assign_to_description = assign_to_username;
30
+ },
31
+
32
+ constructor : function(config) {
33
+ var self = this;
34
+
35
+ config = Ext.apply({
36
+ width:460,
37
+ title:'Users',
38
+ autoScroll: true,
39
+ items:[{
40
+ xtype: 'form',
41
+ bodyPadding: 10,
42
+ items: [{
43
+ xtype:'related_searchbox',
44
+ fieldLabel: 'User',
45
+ width: 300,
46
+ url:'/erp_app/desktop/security_management/search',
47
+ extraParams: {
48
+ model: 'User',
49
+ search_fields: "username",
50
+ display_fields: "username"
51
+ },
52
+ fields: [{name: "id"}, {name:"username"}],
53
+ display_template: "{username}",
54
+ listeners:{
55
+ select: function(field, records, eOpts){
56
+ self.setUser(field);
57
+
58
+ // get active tabpanel
59
+ var activeTabPanel = field.findParentByType('security_management_userspanel').down('tabpanel').getActiveTab();
60
+ activeTabPanel.refreshWidget();
61
+ activeTabPanel.updateTitle();
62
+ }
63
+ }
64
+ }
65
+ ]
66
+ },
67
+ {
68
+ xtype: 'tabpanel',
69
+ items:[
70
+ {
71
+ xtype:'security_management_groupswidget',
72
+ assign_to: 'User'
73
+ },
74
+ {
75
+ xtype:'security_management_roleswidget',
76
+ assign_to: 'User'
77
+ },
78
+ {
79
+ xtype:'security_management_capabilitieswidget',
80
+ assign_to: 'User'
81
+ },
82
+ {
83
+ xtype:'security_management_userseffectivesecurity'
84
+ }
85
+
86
+ ]
87
+ }
88
+ ]
89
+
90
+ }, config);
91
+
92
+ Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersPanel.superclass.constructor.call(this, config);
93
+ }
94
+
95
+ });
@@ -0,0 +1,254 @@
1
+ Ext.define("Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersWidget",{
2
+ extend:"Ext.panel.Panel",
3
+ alias:'widget.security_management_userswidget',
4
+
5
+ initComponent: function() {
6
+ Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersWidget.superclass.initComponent.call(this, arguments);
7
+ },
8
+
9
+ updateTitle : function(){
10
+ if (this.assign_to_description){
11
+ this.down('#assignment').setTitle('Assign Users to '+this.assign_to+' '+this.assign_to_description);
12
+ }
13
+ },
14
+
15
+ refreshWidget : function(tab){
16
+ if (tab === undefined) tab = this;
17
+
18
+ if (tab.assign_to_id){
19
+ //need a delay to allow for rendering of shared_dynamiceditablegrid
20
+ setTimeout( function() {
21
+ var extraParams = {
22
+ assign_to: tab.assign_to,
23
+ id: tab.assign_to_id
24
+ };
25
+
26
+ var available_grid = tab.down('#available').down('shared_dynamiceditablegrid');
27
+ available_grid.getStore().getProxy().extraParams = extraParams;
28
+ available_grid.getStore().load();
29
+
30
+ var selected_grid = tab.down('#selected').down('shared_dynamiceditablegrid');
31
+ selected_grid.getStore().getProxy().extraParams = extraParams;
32
+ selected_grid.getStore().load();
33
+ }, 500 );
34
+ }
35
+ },
36
+
37
+ constructor : function(config) {
38
+ var self = this;
39
+
40
+ var available_grid = {
41
+ xtype: 'security_management_user_grid',
42
+ itemId: 'available',
43
+ title: 'Available Users',
44
+ width: 400,
45
+ height: 340,
46
+ region: 'west',
47
+ setupUrl: '/erp_app/desktop/security_management/users/available_setup',
48
+ dataUrl: '/erp_app/desktop/security_management/users/available',
49
+ autoLoad: false
50
+ };
51
+
52
+ var selected_grid = {
53
+ xtype: 'security_management_user_grid',
54
+ itemId: 'selected',
55
+ title: 'Selected Users',
56
+ width: 400,
57
+ height: 340,
58
+ region: 'east',
59
+ setupUrl: '/erp_app/desktop/security_management/users/selected_setup',
60
+ dataUrl: '/erp_app/desktop/security_management/users/selected',
61
+ autoLoad: false
62
+ };
63
+
64
+ var assignment = {
65
+ xtype: 'panel',
66
+ itemId: 'assignment',
67
+ title: 'Manage Users',
68
+ layout: 'table',
69
+ autoScroll: true,
70
+ height: 600,
71
+ bodyPadding: 10,
72
+ items:[
73
+ available_grid,
74
+ {
75
+ xtype: 'container',
76
+ width: 22,
77
+ bodyPadding: 5,
78
+ items:[
79
+ {xtype: 'SecurityManagement-AddUserButton'},
80
+ {xtype: 'SecurityManagement-RemoveUserButton'}
81
+ ]
82
+ },
83
+ selected_grid
84
+ ]
85
+ };
86
+
87
+ config = Ext.apply({
88
+ title:'Users',
89
+ assign_to: (config.assign_to || 'Group'),
90
+ items:[
91
+ assignment
92
+ ],
93
+ listeners:{
94
+ activate: function(tab){
95
+ self.refreshWidget(tab);
96
+ self.updateTitle();
97
+ }
98
+ }
99
+
100
+ }, config);
101
+
102
+ Compass.ErpApp.Desktop.Applications.SecurityManagement.UsersWidget.superclass.constructor.call(this, config);
103
+ }
104
+ });
105
+
106
+ Ext.define("Compass.ErpApp.Desktop.Applications.SecurityManagement.UserGrid",{
107
+ extend:"Compass.ErpApp.Shared.DynamicEditableGridLoaderPanel",
108
+ alias:'widget.security_management_user_grid',
109
+
110
+ constructor : function(config) {
111
+ config = Ext.apply({
112
+ id:config.id,
113
+ title: config.title,
114
+ editable:false,
115
+ page:true,
116
+ pageSize: 10,
117
+ multiSelect: true,
118
+ displayMsg:'Displaying {0} - {1} of {2}',
119
+ emptyMsg:'Empty',
120
+ tbar:[{
121
+ fieldLabel: '<span data-qtitle="Search" data-qwidth="200" data-qtip="">Search</span>',
122
+ labelWidth : 40,
123
+ itemId: 'searchValue',
124
+ xtype: 'textfield',
125
+ width: 180,
126
+ value: '',
127
+ listeners:{
128
+ specialkey: function(field, e){
129
+ if (e.getKey() == e.ENTER) {
130
+ var grid = field.findParentByType('security_management_user_grid');
131
+ var button = grid.query('#searchButton').first();
132
+ button.fireEvent('click', button);
133
+ }
134
+ }
135
+ }
136
+ },
137
+ {xtype: 'tbspacer', width: 1},
138
+ {
139
+ xtype: 'button',
140
+ itemId: 'searchButton',
141
+ iconCls: 'x-btn-icon icon-search',
142
+ listeners:{
143
+ click: function(button) {
144
+ if (button.findParentByType('security_management_userswidget') && !button.findParentByType('security_management_userswidget').assign_to_id) return;
145
+ var grid = button.findParentByType('security_management_user_grid');
146
+ var value = grid.query('#searchValue').first().getValue();
147
+ grid.query('shared_dynamiceditablegrid').first().getStore().load({
148
+ params: {query_filter: value}
149
+ });
150
+ }
151
+ }
152
+ }
153
+ ]
154
+ }, config);
155
+
156
+ this.callParent([config]);
157
+ }
158
+ });
159
+
160
+ Ext.define('Compass.ErpApp.Desktop.Applications.SecurityManagement.AddUserButton',{
161
+ extend: 'Ext.button.Button',
162
+ alias: 'widget.SecurityManagement-AddUserButton',
163
+ itemId: 'AddUserButton',
164
+ cls: 'x-btn-text-icon',
165
+ iconCls : 'icon-arrow-right-blue',
166
+ formBind: false,
167
+ tooltip: 'Add to Selected',
168
+ listeners: {
169
+ click: function(button) {
170
+ var security_management_userswidget = button.findParentByType('security_management_userswidget');
171
+ var available_grid = security_management_userswidget.query('#available').first().down('shared_dynamiceditablegrid');
172
+ var selected_grid = security_management_userswidget.query('#selected').first().down('shared_dynamiceditablegrid');
173
+ var selection = available_grid.getSelectionModel().getSelection();
174
+ if (selection.length > 0){
175
+ var selected = [];
176
+ Ext.each(selection, function(s){
177
+ selected.push(s.data.id);
178
+ });
179
+
180
+ Ext.Ajax.request({
181
+ url: '/erp_app/desktop/security_management/users/add',
182
+ method: 'POST',
183
+ params:{
184
+ assign_to: security_management_userswidget.assign_to,
185
+ id: security_management_userswidget.assign_to_id,
186
+ selection: Ext.encode(selected)
187
+ },
188
+ success: function(response) {
189
+ var json_response = Ext.decode(response.responseText);
190
+ if (json_response.success){
191
+ available_grid.getStore().load();
192
+ selected_grid.getStore().load();
193
+ }else{
194
+ Ext.Msg.alert('Error', Ext.decode(response.responseText).message);
195
+ }
196
+ },
197
+ failure: function(response) {
198
+ Ext.Msg.alert('Error', 'Error Adding User');
199
+ }
200
+ });
201
+ }else{
202
+ Ext.Msg.alert('Error', 'Please make a selection.');
203
+ }
204
+ }
205
+ }
206
+ });
207
+
208
+ Ext.define('Compass.ErpApp.Desktop.Applications.SecurityManagement.RemoveUserButton',{
209
+ extend: 'Ext.button.Button',
210
+ alias: 'widget.SecurityManagement-RemoveUserButton',
211
+ itemId: 'RemoveUserButton',
212
+ cls: 'x-btn-text-icon',
213
+ iconCls : 'icon-arrow-left-blue',
214
+ formBind: false,
215
+ tooltip: 'Remove from Selected',
216
+ listeners: {
217
+ click: function(button) {
218
+ var security_management_userswidget = button.findParentByType('security_management_userswidget');
219
+ var available_grid = security_management_userswidget.query('#available').first().down('shared_dynamiceditablegrid');
220
+ var selected_grid = security_management_userswidget.query('#selected').first().down('shared_dynamiceditablegrid');
221
+ var selection = selected_grid.getSelectionModel().getSelection();
222
+ if (selection.length > 0){
223
+ var selected = [];
224
+ Ext.each(selection, function(s){
225
+ selected.push(s.data.id);
226
+ });
227
+
228
+ Ext.Ajax.request({
229
+ url: '/erp_app/desktop/security_management/users/remove',
230
+ method: 'POST',
231
+ params:{
232
+ assign_to: security_management_userswidget.assign_to,
233
+ id: security_management_userswidget.assign_to_id,
234
+ selection: Ext.encode(selected)
235
+ },
236
+ success: function(response) {
237
+ var json_response = Ext.decode(response.responseText);
238
+ if (json_response.success){
239
+ available_grid.getStore().load();
240
+ selected_grid.getStore().load();
241
+ }else{
242
+ Ext.Msg.alert('Error', Ext.decode(response.responseText).message);
243
+ }
244
+ },
245
+ failure: function(response) {
246
+ Ext.Msg.alert('Error', 'Error Removing User');
247
+ }
248
+ });
249
+ }else{
250
+ Ext.Msg.alert('Error', 'Please make a selection.');
251
+ }
252
+ }
253
+ }
254
+ });