From d185730673dc19a6983168a58afaaac918a286e1 Mon Sep 17 00:00:00 2001
From: Robert Anderson <randerson@lbsd.net>
Date: Mon, 12 Apr 2010 07:02:35 +0000
Subject: [PATCH] Reload store on add, edit and remove Use window name on all
 removes

---
 .../js/app/windows/AdminClientAttributes.js   | 76 +++++++++++++------
 webgui/js/app/windows/AdminClientRealms.js    | 64 +++++++++++-----
 webgui/js/app/windows/AdminClients.js         | 66 +++++++++++-----
 webgui/js/app/windows/AdminGroupAttributes.js | 76 +++++++++++++------
 webgui/js/app/windows/AdminGroupMembers.js    | 18 +++--
 webgui/js/app/windows/AdminGroups.js          | 62 ++++++++++-----
 webgui/js/app/windows/AdminRealmAttributes.js | 76 +++++++++++++------
 webgui/js/app/windows/AdminRealmMembers.js    | 18 +++--
 webgui/js/app/windows/AdminRealms.js          | 62 ++++++++++-----
 webgui/js/app/windows/AdminUserAttributes.js  | 76 +++++++++++++------
 webgui/js/app/windows/AdminUserGroups.js      | 62 ++++++++++-----
 webgui/js/app/windows/AdminUserTopups.js      | 64 +++++++++++-----
 webgui/js/app/windows/AdminUsers.js           | 60 +++++++++++----
 webgui/js/app/windows/WiSPLocationMembers.js  | 18 +++--
 webgui/js/app/windows/WiSPLocations.js        | 60 +++++++++++----
 webgui/js/app/windows/WiSPUserTopups.js       | 66 +++++++++++-----
 webgui/js/app/windows/WiSPUsers.js            | 42 +++++++---
 17 files changed, 689 insertions(+), 277 deletions(-)

diff --git a/webgui/js/app/windows/AdminClientAttributes.js b/webgui/js/app/windows/AdminClientAttributes.js
index 72a26c03..12cdb1ae 100644
--- a/webgui/js/app/windows/AdminClientAttributes.js
+++ b/webgui/js/app/windows/AdminClientAttributes.js
@@ -41,7 +41,7 @@ function showAdminClientAttributesWindow(clientID) {
 					tooltip:'Add attribute',
 					iconCls:'silk-table_add',
 					handler: function() {
-						showAdminClientAttributeAddEditWindow(clientID);
+						showAdminClientAttributeAddEditWindow(AdminClientAttributesWindow,clientID);
 					}
 				}, 
 				'-', 
@@ -54,7 +54,7 @@ function showAdminClientAttributesWindow(clientID) {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showAdminClientAttributeAddEditWindow(clientID,selectedItem.data.ID);
+							showAdminClientAttributeAddEditWindow(AdminClientAttributesWindow,clientID,selectedItem.data.ID);
 						} else {
 							AdminClientAttributesWindow.getEl().mask();
 
@@ -161,7 +161,7 @@ function showAdminClientAttributesWindow(clientID) {
 
 
 // Display edit/add form
-function showAdminClientAttributeAddEditWindow(clientID,attrID) {
+function showAdminClientAttributeAddEditWindow(AdminClientAttributesWindow,clientID,attrID) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -171,28 +171,48 @@ function showAdminClientAttributeAddEditWindow(clientID,attrID) {
 	if (attrID) {
 		icon = 'silk-table_edit';
 		submitAjaxConfig = {
-			ID: attrID,
-			SOAPFunction: 'updateAdminClientAttribute',
-			SOAPParams: 
-				'0:ID,'+
-				'0:Name,'+
-				'0:Operator,'+
-				'0:Value,'+
-				'0:Disabled:boolean'
+			params: {
+				ID: attrID,
+				SOAPFunction: 'updateAdminClientAttribute',
+				SOAPParams: 
+					'0:ID,'+
+					'0:Name,'+
+					'0:Operator,'+
+					'0:Value,'+
+					'0:Disabled:boolean'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminClientAttributesWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-table_add';
 		submitAjaxConfig = {
-			ClientID: clientID,
-			SOAPFunction: 'addAdminClientAttribute',
-			SOAPParams: 
-				'0:ClientID,'+
-				'0:Name,'+
-				'0:Operator,'+
-				'0:Value,'+
-				'0:Disabled:boolean'
+			params: {
+				ClientID: clientID,
+				SOAPFunction: 'addAdminClientAttribute',
+				SOAPParams: 
+					'0:ClientID,'+
+					'0:Name,'+
+					'0:Operator,'+
+					'0:Value,'+
+					'0:Disabled:boolean'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminClientAttributesWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 	
@@ -290,9 +310,9 @@ function showAdminClientAttributeAddEditWindow(clientID,attrID) {
 
 
 // Display remove form
-function showAdminClientAttributeRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showAdminClientAttributeRemoveWindow(AdminClientAttributesWindow,id) {
+	// Mask AdminClientAttributesWindow window
+	AdminClientAttributesWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -306,7 +326,7 @@ function showAdminClientAttributeRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminClientAttributesWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -315,13 +335,21 @@ function showAdminClientAttributeRemoveWindow(parent,id) {
 						SOAPModule: 'AdminClientAttributes',
 						SOAPFunction: 'removeAdminClientAttribute',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminClientAttributesWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminClientAttributesWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminClientRealms.js b/webgui/js/app/windows/AdminClientRealms.js
index c70d47a6..ced53925 100644
--- a/webgui/js/app/windows/AdminClientRealms.js
+++ b/webgui/js/app/windows/AdminClientRealms.js
@@ -41,7 +41,7 @@ function showAdminClientRealmsWindow(clientID) {
 					tooltip:'Add realm',
 					iconCls: 'silk-world_add',
 					handler: function() {
-						showAdminClientRealmAddWindow(clientID);
+						showAdminClientRealmAddWindow(AdminClientRealmsWindow,clientID);
 					}
 				}, 
 				'-', 
@@ -115,7 +115,7 @@ function showAdminClientRealmsWindow(clientID) {
 
 
 // Display edit/add form
-function showAdminClientRealmAddWindow(clientID,id) {
+function showAdminClientRealmAddWindow(AdminClientRealmsWindow,clientID,id) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -124,22 +124,42 @@ function showAdminClientRealmAddWindow(clientID,id) {
 	if (id) {
 		icon = 'silk-world_edit',
 		submitAjaxConfig = {
-			ID: id,
-			SOAPFunction: 'updateAdminRealm',
-			SOAPParams: 
-				'0:ID,'+
-				'0:RealmID'
+			params: {
+				ID: id,
+				SOAPFunction: 'updateAdminRealm',
+				SOAPParams: 
+					'0:ID,'+
+					'0:RealmID'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminClientRealmsWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-world_add',
 		submitAjaxConfig = {
-			ClientID: clientID,
-			SOAPFunction: 'addAdminClientRealm',
-			SOAPParams: 
-				'0:ClientID,'+
-				'0:RealmID'
+			params: {
+				ClientID: clientID,
+				SOAPFunction: 'addAdminClientRealm',
+				SOAPParams: 
+					'0:ClientID,'+
+					'0:RealmID'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminClientRealmsWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 	
@@ -218,10 +238,10 @@ function showAdminClientRealmAddWindow(clientID,id) {
 
 
 
-// Display edit/add form
-function showAdminClientRealmRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+// Display remove form
+function showAdminClientRealmRemoveWindow(AdminClientRealmsWindow,id) {
+	// Mask AdminClientRealmsWindow window
+	AdminClientRealmsWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -235,7 +255,7 @@ function showAdminClientRealmRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminClientRealmsWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -244,13 +264,21 @@ function showAdminClientRealmRemoveWindow(parent,id) {
 						SOAPModule: 'AdminClientRealms',
 						SOAPFunction: 'removeAdminClientRealm',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminClientRealmsWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminClientRealmsWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminClients.js b/webgui/js/app/windows/AdminClients.js
index a40d843a..7a832dcb 100644
--- a/webgui/js/app/windows/AdminClients.js
+++ b/webgui/js/app/windows/AdminClients.js
@@ -40,7 +40,7 @@ function showAdminClientWindow() {
 					tooltip:'Add client',
 					iconCls:'silk-server_add',
 					handler: function() {
-						showAdminClientAddEditWindow();
+						showAdminClientAddEditWindow(AdminClientWindow);
 					}
 				}, 
 				'-',
@@ -53,7 +53,7 @@ function showAdminClientWindow() {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showAdminClientAddEditWindow(selectedItem.data.ID);
+							showAdminClientAddEditWindow(AdminClientWindow,selectedItem.data.ID);
 						} else {
 							AdminClientWindow.getEl().mask();
 
@@ -202,7 +202,7 @@ function showAdminClientWindow() {
 
 
 // Display edit/add form
-function showAdminClientAddEditWindow(id) {
+function showAdminClientAddEditWindow(AdminClientWindow,id) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -211,22 +211,42 @@ function showAdminClientAddEditWindow(id) {
 	if (id) {
 		icon = 'silk-server_edit';
 		submitAjaxConfig = {
-			ID: id,
-			SOAPFunction: 'updateAdminClient',
-			SOAPParams: 
-				'0:ID,'+
-				'0:Name,'+
-				'0:AccessList'
+			params: {
+				ID: id,
+				SOAPFunction: 'updateAdminClient',
+				SOAPParams: 
+					'0:ID,'+
+					'0:Name,'+
+					'0:AccessList'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminClientWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-server_add';
 		submitAjaxConfig = {
-			SOAPFunction: 'createAdminClient',
-			SOAPParams: 
-				'0:Name,'+
-				'0:AccessList'
+			params: {
+				SOAPFunction: 'createAdminClient',
+				SOAPParams: 
+					'0:Name,'+
+					'0:AccessList'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminClientWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 
@@ -287,10 +307,10 @@ function showAdminClientAddEditWindow(id) {
 }
 
 
-// Display edit/add form
-function showAdminClientRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+// Display remove form
+function showAdminClientRemoveWindow(AdminClientWindow,id) {
+	// Mask AdminClientWindow window
+	AdminClientWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -304,7 +324,7 @@ function showAdminClientRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminClientWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -313,13 +333,21 @@ function showAdminClientRemoveWindow(parent,id) {
 						SOAPModule: 'AdminClients',
 						SOAPFunction: 'removeAdminClient',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminClientWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminClientWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminGroupAttributes.js b/webgui/js/app/windows/AdminGroupAttributes.js
index 63f75e10..ab894865 100644
--- a/webgui/js/app/windows/AdminGroupAttributes.js
+++ b/webgui/js/app/windows/AdminGroupAttributes.js
@@ -41,7 +41,7 @@ function showAdminGroupAttributesWindow(groupID) {
 					tooltip:'Add attribute',
 					iconCls:'silk-table_add',
 					handler: function() {
-						showAdminGroupAttributeAddEditWindow(groupID);
+						showAdminGroupAttributeAddEditWindow(AdminGroupAttributesWindow,groupID);
 					}
 				}, 
 				'-', 
@@ -54,7 +54,7 @@ function showAdminGroupAttributesWindow(groupID) {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showAdminGroupAttributeAddEditWindow(groupID,selectedItem.data.ID);
+							showAdminGroupAttributeAddEditWindow(AdminGroupAttributesWindow,groupID,selectedItem.data.ID);
 						} else {
 							AdminGroupAttributesWindow.getEl().mask();
 
@@ -161,7 +161,7 @@ function showAdminGroupAttributesWindow(groupID) {
 
 
 // Display edit/add form
-function showAdminGroupAttributeAddEditWindow(groupID,attrID) {
+function showAdminGroupAttributeAddEditWindow(AdminGroupAttributesWindow,groupID,attrID) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -170,28 +170,48 @@ function showAdminGroupAttributeAddEditWindow(groupID,attrID) {
 	if (attrID) {
 		icon = 'silk-table_edit';
 		submitAjaxConfig = {
-			ID: attrID,
-			SOAPFunction: 'updateAdminGroupAttribute',
-			SOAPParams: 
-				'0:ID,'+
-				'0:Name,'+
-				'0:Operator,'+
-				'0:Value,'+
-				'0:Disabled:boolean'
+			params: {
+				ID: attrID,
+				SOAPFunction: 'updateAdminGroupAttribute',
+				SOAPParams: 
+					'0:ID,'+
+					'0:Name,'+
+					'0:Operator,'+
+					'0:Value,'+
+					'0:Disabled:boolean'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminGroupAttributesWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-table_add';
 		submitAjaxConfig = {
-			GroupID: groupID,
-			SOAPFunction: 'addAdminGroupAttribute',
-			SOAPParams: 
-				'0:GroupID,'+
-				'0:Name,'+
-				'0:Operator,'+
-				'0:Value,'+
-				'0:Disabled:boolean'
+			params: {
+				GroupID: groupID,
+				SOAPFunction: 'addAdminGroupAttribute',
+				SOAPParams: 
+					'0:GroupID,'+
+					'0:Name,'+
+					'0:Operator,'+
+					'0:Value,'+
+					'0:Disabled:boolean'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminGroupAttributesWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 	
@@ -289,9 +309,9 @@ function showAdminGroupAttributeAddEditWindow(groupID,attrID) {
 
 
 // Display remove form
-function showAdminGroupAttributeRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showAdminGroupAttributeRemoveWindow(AdminGroupAttributesWindow,id) {
+	// Mask AdminGroupAttributesWindow window
+	AdminGroupAttributesWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -305,7 +325,7 @@ function showAdminGroupAttributeRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminGroupAttributesWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -314,13 +334,21 @@ function showAdminGroupAttributeRemoveWindow(parent,id) {
 						SOAPModule: 'AdminGroupAttributes',
 						SOAPFunction: 'removeAdminGroupAttribute',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminGroupAttributesWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminGroupAttributesWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminGroupMembers.js b/webgui/js/app/windows/AdminGroupMembers.js
index 401b050e..97244066 100644
--- a/webgui/js/app/windows/AdminGroupMembers.js
+++ b/webgui/js/app/windows/AdminGroupMembers.js
@@ -112,9 +112,9 @@ function showAdminGroupMembersWindow(groupID) {
 
 
 // Display remove form
-function showAdminGroupMemberRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showAdminGroupMemberRemoveWindow(AdminGroupMembersWindow,id) {
+	// Mask AdminGroupMembersWindow window
+	AdminGroupMembersWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -128,7 +128,7 @@ function showAdminGroupMemberRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminGroupMembersWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -137,13 +137,21 @@ function showAdminGroupMemberRemoveWindow(parent,id) {
 						SOAPModule: 'AdminGroupMembers',
 						SOAPFunction: 'removeAdminGroupMember',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminGroupMembersWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminGroupMembersWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminGroups.js b/webgui/js/app/windows/AdminGroups.js
index c261c717..5f1f137a 100644
--- a/webgui/js/app/windows/AdminGroups.js
+++ b/webgui/js/app/windows/AdminGroups.js
@@ -41,7 +41,7 @@ function showAdminGroupWindow() {
 					tooltip:'Add group',
 					iconCls:'silk-group_add',
 					handler: function() {
-						showAdminGroupAddEditWindow();
+						showAdminGroupAddEditWindow(AdminGroupWindow);
 					}
 				}, 
 				'-', 
@@ -54,7 +54,7 @@ function showAdminGroupWindow() {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showAdminGroupAddEditWindow(selectedItem.data.ID);
+							showAdminGroupAddEditWindow(AdminGroupWindow,selectedItem.data.ID);
 						} else {
 							AdminGroupWindow.getEl().mask();
 
@@ -216,7 +216,7 @@ function showAdminGroupWindow() {
 
 
 // Display edit/add form
-function showAdminGroupAddEditWindow(id) {
+function showAdminGroupAddEditWindow(AdminGroupWindow,id) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -226,20 +226,40 @@ function showAdminGroupAddEditWindow(id) {
 	if (id) {
 		icon = 'silk-group_edit';
 		submitAjaxConfig = {
-			ID: id,
-			SOAPFunction: 'updateAdminGroup',
-			SOAPParams: 
-				'0:ID,'+
-				'0:Name'
+			params: {
+				ID: id,
+				SOAPFunction: 'updateAdminGroup',
+				SOAPParams: 
+					'0:ID,'+
+					'0:Name'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminGroupWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-group_add';
 		submitAjaxConfig = {
-			SOAPFunction: 'createAdminGroup',
-			SOAPParams: 
-				'0:Name'
+			params: {
+				SOAPFunction: 'createAdminGroup',
+				SOAPParams: 
+					'0:Name'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminGroupWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 	
@@ -299,10 +319,10 @@ function showAdminGroupAddEditWindow(id) {
 
 
 
-// Display edit/add form
-function showAdminGroupRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+// Display remove form
+function showAdminGroupRemoveWindow(AdminGroupWindow,id) {
+	// Mask AdminGroupWindow window
+	AdminGroupWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -316,7 +336,7 @@ function showAdminGroupRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminGroupWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -325,13 +345,21 @@ function showAdminGroupRemoveWindow(parent,id) {
 						SOAPModule: 'AdminGroups',
 						SOAPFunction: 'removeAdminGroup',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminGroupWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminGroupWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminRealmAttributes.js b/webgui/js/app/windows/AdminRealmAttributes.js
index 830bc103..1f0e679f 100644
--- a/webgui/js/app/windows/AdminRealmAttributes.js
+++ b/webgui/js/app/windows/AdminRealmAttributes.js
@@ -41,7 +41,7 @@ function showAdminRealmAttributesWindow(realmID) {
 					tooltip:'Add attribute',
 					iconCls:'silk-table_add',
 					handler: function() {
-						showAdminRealmAttributeAddEditWindow(realmID);
+						showAdminRealmAttributeAddEditWindow(AdminRealmAttributesWindow,realmID);
 					}
 				}, 
 				'-', 
@@ -54,7 +54,7 @@ function showAdminRealmAttributesWindow(realmID) {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showAdminRealmAttributeAddEditWindow(realmID,selectedItem.data.ID);
+							showAdminRealmAttributeAddEditWindow(AdminRealmAttributesWindow,realmID,selectedItem.data.ID);
 						} else {
 							AdminRealmAttributesWindow.getEl().mask();
 
@@ -161,7 +161,7 @@ function showAdminRealmAttributesWindow(realmID) {
 
 
 // Display edit/add form
-function showAdminRealmAttributeAddEditWindow(realmID,attrID) {
+function showAdminRealmAttributeAddEditWindow(AdminRealmAttributesWindow,realmID,attrID) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -171,28 +171,48 @@ function showAdminRealmAttributeAddEditWindow(realmID,attrID) {
 	if (attrID) {
 		icon = 'silk-table_edit';
 		submitAjaxConfig = {
-			ID: attrID,
-			SOAPFunction: 'updateAdminRealmAttribute',
-			SOAPParams: 
-				'0:ID,'+
-				'0:Name,'+
-				'0:Operator,'+
-				'0:Value,'+
-				'0:Disabled:boolean'
+			params: {
+				ID: attrID,
+				SOAPFunction: 'updateAdminRealmAttribute',
+				SOAPParams: 
+					'0:ID,'+
+					'0:Name,'+
+					'0:Operator,'+
+					'0:Value,'+
+					'0:Disabled:boolean'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminRealmAttributesWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-table_add';
 		submitAjaxConfig = {
-			RealmID: realmID,
-			SOAPFunction: 'addAdminRealmAttribute',
-			SOAPParams: 
-				'0:RealmID,'+
-				'0:Name,'+
-				'0:Operator,'+
-				'0:Value,'+
-				'0:Disabled:boolean'
+			params: {
+				RealmID: realmID,
+				SOAPFunction: 'addAdminRealmAttribute',
+				SOAPParams: 
+					'0:RealmID,'+
+					'0:Name,'+
+					'0:Operator,'+
+					'0:Value,'+
+					'0:Disabled:boolean'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminRealmAttributesWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 	
@@ -290,9 +310,9 @@ function showAdminRealmAttributeAddEditWindow(realmID,attrID) {
 
 
 // Display remove form
-function showAdminRealmAttributeRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showAdminRealmAttributeRemoveWindow(AdminRealmAttributesWindow,id) {
+	// Mask AdminRealmAttributesWindow window
+	AdminRealmAttributesWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -306,7 +326,7 @@ function showAdminRealmAttributeRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminRealmAttributesWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -315,13 +335,21 @@ function showAdminRealmAttributeRemoveWindow(parent,id) {
 						SOAPModule: 'AdminRealmAttributes',
 						SOAPFunction: 'removeAdminRealmAttribute',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminRealmAttributesWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminRealmAttributesWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminRealmMembers.js b/webgui/js/app/windows/AdminRealmMembers.js
index f15f9388..191d8a3f 100644
--- a/webgui/js/app/windows/AdminRealmMembers.js
+++ b/webgui/js/app/windows/AdminRealmMembers.js
@@ -106,9 +106,9 @@ function showAdminRealmMembersWindow(realmID) {
 
 
 // Display remove form
-function showAdminRealmMemberRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showAdminRealmMemberRemoveWindow(AdminRealmMembersWindow,id) {
+	// Mask AdminRealmMembersWindow window
+	AdminRealmMembersWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -122,7 +122,7 @@ function showAdminRealmMemberRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminRealmMembersWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -131,13 +131,21 @@ function showAdminRealmMemberRemoveWindow(parent,id) {
 						SOAPModule: 'AdminRealmMembers',
 						SOAPFunction: 'removeAdminRealmMember',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminRealmMembersWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminRealmMembersWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminRealms.js b/webgui/js/app/windows/AdminRealms.js
index 6d67d23c..065b63f5 100644
--- a/webgui/js/app/windows/AdminRealms.js
+++ b/webgui/js/app/windows/AdminRealms.js
@@ -41,7 +41,7 @@ function showAdminRealmWindow() {
 					tooltip:'Add realm',
 					iconCls:'silk-world_add',
 					handler: function() {
-						showAdminRealmAddEditWindow();
+						showAdminRealmAddEditWindow(AdminRealmWindow);
 					}
 				}, 
 				'-',
@@ -54,7 +54,7 @@ function showAdminRealmWindow() {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showAdminRealmAddEditWindow(selectedItem.data.ID);
+							showAdminRealmAddEditWindow(AdminRealmWindow,selectedItem.data.ID);
 						} else {
 							AdminRealmWindow.getEl().mask();
 
@@ -204,7 +204,7 @@ function showAdminRealmWindow() {
 
 
 // Display edit/add form
-function showAdminRealmAddEditWindow(id) {
+function showAdminRealmAddEditWindow(AdminRealmWindow,id) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -214,20 +214,40 @@ function showAdminRealmAddEditWindow(id) {
 	if (id) {
 		icon = 'silk-world_edit';
 		submitAjaxConfig = {
-			ID: id,
-			SOAPFunction: 'updateAdminRealm',
-			SOAPParams: 
-				'0:ID,'+
-				'0:Name'
+			params: {
+				ID: id,
+				SOAPFunction: 'updateAdminRealm',
+				SOAPParams: 
+					'0:ID,'+
+					'0:Name'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminRealmWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-world_add';
 		submitAjaxConfig = {
-			SOAPFunction: 'createAdminRealm',
-			SOAPParams: 
-				'0:Name'
+			params: {
+				SOAPFunction: 'createAdminRealm',
+				SOAPParams: 
+					'0:Name'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminRealmWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 
@@ -285,10 +305,10 @@ function showAdminRealmAddEditWindow(id) {
 
 
 
-// Display edit/add form
-function showAdminRealmRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+// Display remove form
+function showAdminRealmRemoveWindow(AdminRealmWindow,id) {
+	// Mask AdminRealmWindow window
+	AdminRealmWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -302,7 +322,7 @@ function showAdminRealmRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminRealmWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -311,13 +331,21 @@ function showAdminRealmRemoveWindow(parent,id) {
 						SOAPModule: 'AdminRealms',
 						SOAPFunction: 'removeAdminRealm',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminRealmWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminRealmWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminUserAttributes.js b/webgui/js/app/windows/AdminUserAttributes.js
index 718a45ff..4ca1490d 100644
--- a/webgui/js/app/windows/AdminUserAttributes.js
+++ b/webgui/js/app/windows/AdminUserAttributes.js
@@ -41,7 +41,7 @@ function showAdminUserAttributesWindow(userID) {
 					tooltip:'Add attribute',
 					iconCls:'silk-table_add',
 					handler: function() {
-						showAdminUserAttributeAddEditWindow(userID);
+						showAdminUserAttributeAddEditWindow(AdminUserAttributesWindow,userID);
 					}
 				}, 
 				'-', 
@@ -54,7 +54,7 @@ function showAdminUserAttributesWindow(userID) {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showAdminUserAttributeAddEditWindow(userID,selectedItem.data.ID);
+							showAdminUserAttributeAddEditWindow(AdminUserAttributesWindow,userID,selectedItem.data.ID);
 						} else {
 							AdminUserAttributesWindow.getEl().mask();
 
@@ -161,7 +161,7 @@ function showAdminUserAttributesWindow(userID) {
 
 
 // Display edit/add form
-function showAdminUserAttributeAddEditWindow(userID,attrID) {
+function showAdminUserAttributeAddEditWindow(AdminUserAttributesWindow,userID,attrID) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -171,28 +171,48 @@ function showAdminUserAttributeAddEditWindow(userID,attrID) {
 	if (attrID) {
 		icon = 'silk-table_edit';
 		submitAjaxConfig = {
-			ID: attrID,
-			SOAPFunction: 'updateAdminUserAttribute',
-			SOAPParams: 
-				'0:ID,'+
-				'0:Name,'+
-				'0:Operator,'+
-				'0:Value,'+
-				'0:Disabled:boolean'
+			params: {
+				ID: attrID,
+				SOAPFunction: 'updateAdminUserAttribute',
+				SOAPParams: 
+					'0:ID,'+
+					'0:Name,'+
+					'0:Operator,'+
+					'0:Value,'+
+					'0:Disabled:boolean'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminUserAttributesWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-table_add';
 		submitAjaxConfig = {
-			UserID: userID,
-			SOAPFunction: 'addAdminUserAttribute',
-			SOAPParams: 
-				'0:UserID,'+
-				'0:Name,'+
-				'0:Operator,'+
-				'0:Value,'+
-				'0:Disabled:boolean'
+			params: {
+				UserID: userID,
+				SOAPFunction: 'addAdminUserAttribute',
+				SOAPParams: 
+					'0:UserID,'+
+					'0:Name,'+
+					'0:Operator,'+
+					'0:Value,'+
+					'0:Disabled:boolean'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminUserAttributesWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 	
@@ -292,9 +312,9 @@ function showAdminUserAttributeAddEditWindow(userID,attrID) {
 
 
 // Display remove form
-function showAdminUserAttributeRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showAdminUserAttributeRemoveWindow(AdminUserAttributesWindow,id) {
+	// Mask AdminUserAttributesWindow window
+	AdminUserAttributesWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -308,7 +328,7 @@ function showAdminUserAttributeRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminUserAttributesWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -317,13 +337,21 @@ function showAdminUserAttributeRemoveWindow(parent,id) {
 						SOAPModule: 'AdminUserAttributes',
 						SOAPFunction: 'removeAdminUserAttribute',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminUserAttributesWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminUserAttributesWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminUserGroups.js b/webgui/js/app/windows/AdminUserGroups.js
index 3323b140..890a5c93 100644
--- a/webgui/js/app/windows/AdminUserGroups.js
+++ b/webgui/js/app/windows/AdminUserGroups.js
@@ -41,7 +41,7 @@ function showAdminUserGroupsWindow(userID) {
 					tooltip:'Add group',
 					iconCls:'silk-group_add',
 					handler: function() {
-						showAdminUserGroupAddWindow(userID);
+						showAdminUserGroupAddWindow(AdminUserGroupsWindow,userID);
 					}
 				}, 
 				'-', 
@@ -115,7 +115,7 @@ function showAdminUserGroupsWindow(userID) {
 
 
 // Display edit/add form
-function showAdminUserGroupAddWindow(userID,id) {
+function showAdminUserGroupAddWindow(AdminUserGroupsWindow,userID,id) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -125,22 +125,42 @@ function showAdminUserGroupAddWindow(userID,id) {
 	if (id) {
 		icon = 'silk-group_edit';
 		submitAjaxConfig = {
-			ID: id,
-			SOAPFunction: 'updateAdminGroup',
-			SOAPParams: 
-				'0:ID,'+
-				'0:GroupID'
+			params: {
+				ID: id,
+				SOAPFunction: 'updateAdminGroup',
+				SOAPParams: 
+					'0:ID,'+
+					'0:GroupID'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminUserGroupsWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-group_add';
 		submitAjaxConfig = {
-			UserID: userID,
-			SOAPFunction: 'addAdminUserGroup',
-			SOAPParams: 
-				'0:UserID,'+
-				'0:GroupID'
+			params: {
+				UserID: userID,
+				SOAPFunction: 'addAdminUserGroup',
+				SOAPParams: 
+					'0:UserID,'+
+					'0:GroupID'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminUserGroupsWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 	
@@ -220,9 +240,9 @@ function showAdminUserGroupAddWindow(userID,id) {
 
 
 // Display edit/add form
-function showAdminUserGroupRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showAdminUserGroupRemoveWindow(AdminUserGroupsWindow,id) {
+	// Mask AdminUserGroupsWindow window
+	AdminUserGroupsWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -236,7 +256,7 @@ function showAdminUserGroupRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminUserGroupsWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -245,13 +265,21 @@ function showAdminUserGroupRemoveWindow(parent,id) {
 						SOAPModule: 'AdminUserGroups',
 						SOAPFunction: 'removeAdminUserGroup',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminUserGroupsWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminUserGroupsWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminUserTopups.js b/webgui/js/app/windows/AdminUserTopups.js
index 04f231b3..e41a5d53 100644
--- a/webgui/js/app/windows/AdminUserTopups.js
+++ b/webgui/js/app/windows/AdminUserTopups.js
@@ -40,7 +40,7 @@ function showAdminUserTopupsWindow(userID) {
 					tooltip:'Add topup',
 					iconCls:'silk-chart_bar_add',
 					handler: function() {
-						showAdminUserTopupAddEditWindow(userID,0);
+						showAdminUserTopupAddEditWindow(adminUserTopupsWindow,userID,0);
 					}
 				},
 				'-',
@@ -53,7 +53,7 @@ function showAdminUserTopupsWindow(userID) {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showAdminUserTopupAddEditWindow(userID,selectedItem.data.ID);
+							showAdminUserTopupAddEditWindow(adminUserTopupsWindow,userID,selectedItem.data.ID);
 						} else {
 							adminUserTopupsWindow.getEl().mask();
 
@@ -166,7 +166,7 @@ function showAdminUserTopupsWindow(userID) {
 
 
 // Display edit/add form
-function showAdminUserTopupAddEditWindow(userID,topupID) {
+function showAdminUserTopupAddEditWindow(adminUserTopupsWindow,userID,topupID) {
 	var today = new Date();
 	var firstOfMonth = today.getFirstDateOfMonth();
 	var firstOfNext = today.getLastDateOfMonth().add(Date.DAY, 1);
@@ -178,21 +178,41 @@ function showAdminUserTopupAddEditWindow(userID,topupID) {
 	if (topupID) {
 		icon = 'silk-chart_bar_edit';
 		submitAjaxConfig = {
-			ID: topupID,
-			SOAPFunction: 'updateAdminUserTopup',
-			SOAPParams: 
-				'0:ID,0:Value,0:Type,'+
-				'0:ValidFrom,0:ValidTo'
+			params: {
+				ID: topupID,
+				SOAPFunction: 'updateAdminUserTopup',
+				SOAPParams: 
+					'0:ID,0:Value,0:Type,'+
+					'0:ValidFrom,0:ValidTo'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(adminUserTopupsWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	// We doing an Add
 	} else {
 		icon = 'silk-chart_bar_add';
 		submitAjaxConfig = {
-			UserID: userID,
-			SOAPFunction: 'createAdminUserTopup',
-			SOAPParams:
-				'0:UserID,0:Value,0:Type,'+
-				'0:ValidFrom,0:ValidTo'
+			params: {
+				UserID: userID,
+				SOAPFunction: 'createAdminUserTopup',
+				SOAPParams:
+					'0:UserID,0:Value,0:Type,'+
+					'0:ValidFrom,0:ValidTo'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(adminUserTopupsWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 
@@ -291,9 +311,9 @@ function showAdminUserTopupAddEditWindow(userID,topupID) {
 
 
 // Display edit/add form
-function showAdminUserTopupRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showAdminUserTopupRemoveWindow(adminUserTopupsWindow,id) {
+	// Mask adminUserTopupsWindow window
+	adminUserTopupsWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -307,7 +327,7 @@ function showAdminUserTopupRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(adminUserTopupsWindow,{
 					params: {
 						id: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -316,13 +336,21 @@ function showAdminUserTopupRemoveWindow(parent,id) {
 						SOAPModule: 'AdminUsers',
 						SOAPFunction: 'removeAdminUserTopup',
 						SOAPParams: 'id'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(adminUserTopupsWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				adminUserTopupsWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/AdminUsers.js b/webgui/js/app/windows/AdminUsers.js
index aa29db98..3a0c3ff7 100644
--- a/webgui/js/app/windows/AdminUsers.js
+++ b/webgui/js/app/windows/AdminUsers.js
@@ -41,7 +41,7 @@ function showAdminUserWindow() {
 					tooltip:'Add user',
 					iconCls:'silk-user_add',
 					handler: function() {
-						showAdminUserAddEditWindow();
+						showAdminUserAddEditWindow(AdminUserWindow);
 					}
 				}, 
 				'-', 
@@ -54,7 +54,7 @@ function showAdminUserWindow() {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showAdminUserAddEditWindow(selectedItem.data.ID);
+							showAdminUserAddEditWindow(AdminUserWindow,selectedItem.data.ID);
 						} else {
 							AdminUserWindow.getEl().mask();
 
@@ -260,7 +260,7 @@ function showAdminUserWindow() {
 
 
 // Display edit/add form
-function showAdminUserAddEditWindow(id) {
+function showAdminUserAddEditWindow(AdminUserWindow,id) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -269,20 +269,40 @@ function showAdminUserAddEditWindow(id) {
 	if (id) {
 		icon = 'silk-user_edit';
 		submitAjaxConfig = {
-			ID: id,
-			SOAPFunction: 'updateAdminUser',
-			SOAPParams: 
-				'0:ID,'+
-				'0:Username'
+			params: {
+				ID: id,
+				SOAPFunction: 'updateAdminUser',
+				SOAPParams: 
+					'0:ID,'+
+					'0:Username'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminUserWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-user_add';
 		submitAjaxConfig = {
-			SOAPFunction: 'createAdminUser',
-			SOAPParams: 
-				'0:Username'
+			params: {
+				SOAPFunction: 'createAdminUser',
+				SOAPParams: 
+					'0:Username'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(AdminUserWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 
@@ -343,9 +363,9 @@ function showAdminUserAddEditWindow(id) {
 
 
 // Display edit/add form
-function showAdminUserRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showAdminUserRemoveWindow(AdminUserWindow,id) {
+	// Mask AdminUserWindow window
+	AdminUserWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -359,7 +379,7 @@ function showAdminUserRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(AdminUserWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -368,13 +388,21 @@ function showAdminUserRemoveWindow(parent,id) {
 						SOAPModule: 'AdminUsers',
 						SOAPFunction: 'removeAdminUser',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(AdminUserWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				AdminUserWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/WiSPLocationMembers.js b/webgui/js/app/windows/WiSPLocationMembers.js
index 71ddb201..cc46e967 100644
--- a/webgui/js/app/windows/WiSPLocationMembers.js
+++ b/webgui/js/app/windows/WiSPLocationMembers.js
@@ -105,9 +105,9 @@ function showWiSPLocationMembersWindow(locationID) {
 
 
 // Display remove form
-function showWiSPLocationMemberRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showWiSPLocationMemberRemoveWindow(WiSPLocationMembersWindow,id) {
+	// Mask WiSPLocationMembersWindow window
+	WiSPLocationMembersWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -121,7 +121,7 @@ function showWiSPLocationMemberRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(WiSPLocationMembersWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -130,13 +130,21 @@ function showWiSPLocationMemberRemoveWindow(parent,id) {
 						SOAPModule: 'WiSPLocationMembers',
 						SOAPFunction: 'removeWiSPLocationMember',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(WiSPLocationMembersWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				WiSPLocationMembersWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/WiSPLocations.js b/webgui/js/app/windows/WiSPLocations.js
index 6b2f94e5..f01e6e37 100644
--- a/webgui/js/app/windows/WiSPLocations.js
+++ b/webgui/js/app/windows/WiSPLocations.js
@@ -41,7 +41,7 @@ function showWiSPLocationWindow() {
 					tooltip:'Add location',
 					iconCls:'silk-map_add',
 					handler: function() {
-						showWiSPLocationAddEditWindow();
+						showWiSPLocationAddEditWindow(WiSPLocationWindow);
 					}
 				}, 
 				'-',
@@ -54,7 +54,7 @@ function showWiSPLocationWindow() {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showWiSPLocationAddEditWindow(selectedItem.data.ID);
+							showWiSPLocationAddEditWindow(WiSPLocationWindow,selectedItem.data.ID);
 						} else {
 							WiSPLocationWindow.getEl().mask();
 
@@ -170,7 +170,7 @@ function showWiSPLocationWindow() {
 
 
 // Display edit/add form
-function showWiSPLocationAddEditWindow(id) {
+function showWiSPLocationAddEditWindow(WiSPLocationWindow,id) {
 
 	var submitAjaxConfig;
 	var icon;
@@ -179,20 +179,40 @@ function showWiSPLocationAddEditWindow(id) {
 	if (id) {
 		icon = 'silk-map_edit';
 		submitAjaxConfig = {
-			ID: id,
-			SOAPFunction: 'updateWiSPLocation',
-			SOAPParams: 
-				'0:ID,'+
-				'0:Name'
+			params: {
+				ID: id,
+				SOAPFunction: 'updateWiSPLocation',
+				SOAPParams: 
+					'0:ID,'+
+					'0:Name'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(WiSPLocationWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 
 	// We doing an Add
 	} else {
 		icon = 'silk-map_add';
 		submitAjaxConfig = {
-			SOAPFunction: 'createWiSPLocation',
-			SOAPParams: 
-				'0:Name'
+			params: {
+				SOAPFunction: 'createWiSPLocation',
+				SOAPParams: 
+					'0:Name'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(WiSPLocationWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 	
@@ -249,9 +269,9 @@ function showWiSPLocationAddEditWindow(id) {
 
 
 // Display remove form
-function showWiSPLocationRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+function showWiSPLocationRemoveWindow(WiSPLocationWindow,id) {
+	// Mask WiSPLocationWindow window
+	WiSPLocationWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -265,7 +285,7 @@ function showWiSPLocationRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(WiSPLocationWindow,{
 					params: {
 						id: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -274,13 +294,21 @@ function showWiSPLocationRemoveWindow(parent,id) {
 						SOAPModule: 'WiSPLocations',
 						SOAPFunction: 'removeWiSPLocation',
 						SOAPParams: 'id'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(WiSPLocationWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				WiSPLocationWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/WiSPUserTopups.js b/webgui/js/app/windows/WiSPUserTopups.js
index 7077ba6d..a42841e9 100644
--- a/webgui/js/app/windows/WiSPUserTopups.js
+++ b/webgui/js/app/windows/WiSPUserTopups.js
@@ -40,7 +40,7 @@ function showWiSPUserTopupsWindow(userID) {
 					tooltip:'Add topup',
 					iconCls:'silk-chart_bar_add',
 					handler: function() {
-						showWiSPUserTopupAddEditWindow(userID,0);
+						showWiSPUserTopupAddEditWindow(wispUserTopupsWindow,userID,0);
 					}
 				}, 
 				'-',
@@ -53,7 +53,7 @@ function showWiSPUserTopupsWindow(userID) {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showWiSPUserTopupAddEditWindow(userID,selectedItem.data.ID);
+							showWiSPUserTopupAddEditWindow(wispUserTopupsWindow,userID,selectedItem.data.ID);
 						} else {
 							wispUserTopupsWindow.getEl().mask();
 
@@ -166,7 +166,7 @@ function showWiSPUserTopupsWindow(userID) {
 
 
 // Display edit/add form
-function showWiSPUserTopupAddEditWindow(userID,topupID) {
+function showWiSPUserTopupAddEditWindow(wispUserTopupsWindow,userID,topupID) {
 	var today = new Date();
 	var firstOfMonth = today.getFirstDateOfMonth();
 	var firstOfNext = today.getLastDateOfMonth().add(Date.DAY, 1);
@@ -178,21 +178,41 @@ function showWiSPUserTopupAddEditWindow(userID,topupID) {
 	if (topupID) {
 		icon = 'silk-chart_bar_edit';
 		submitAjaxConfig = {
-			ID: topupID,
-			SOAPFunction: 'updateWiSPUserTopup',
-			SOAPParams: 
-				'0:ID,0:Value,0:Type,'+
-				'0:ValidFrom,0:ValidTo'
+			params: {
+				ID: topupID,
+				SOAPFunction: 'updateWiSPUserTopup',
+				SOAPParams: 
+					'0:ID,0:Value,0:Type,'+
+					'0:ValidFrom,0:ValidTo'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(wispUserTopupsWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	// We doing an Add
 	} else {
 		icon = 'silk-chart_bar_add';
 		submitAjaxConfig = {
-			UserID: userID,
-			SOAPFunction: 'createWiSPUserTopup',
-			SOAPParams: 
-				'0:UserID,0:Value,0:Type,'+
-				'0:ValidFrom,0:ValidTo'
+			params: {
+				UserID: userID,
+				SOAPFunction: 'createWiSPUserTopup',
+				SOAPParams: 
+					'0:UserID,0:Value,0:Type,'+
+					'0:ValidFrom,0:ValidTo'
+			},
+			onSuccess: function() {
+				var store = Ext.getCmp(wispUserTopupsWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			}
 		};
 	}
 
@@ -290,10 +310,10 @@ function showWiSPUserTopupAddEditWindow(userID,topupID) {
 
 
 
-// Display edit/add form
-function showWiSPUserTopupRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+// Display remove form
+function showWiSPUserTopupRemoveWindow(wispUserTopupsWindow,id) {
+	// Mask wispUserTopupsWindow window
+	wispUserTopupsWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -307,7 +327,7 @@ function showWiSPUserTopupRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(wispUserTopupsWindow,{
 					params: {
 						id: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -316,13 +336,21 @@ function showWiSPUserTopupRemoveWindow(parent,id) {
 						SOAPModule: 'WiSPUsers',
 						SOAPFunction: 'removeWiSPUserTopup',
 						SOAPParams: 'id'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(wispUserTopupsWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				wispUserTopupsWindow.getEl().unmask();
 			}
 		}
 	});
diff --git a/webgui/js/app/windows/WiSPUsers.js b/webgui/js/app/windows/WiSPUsers.js
index 67108b3d..1d73dc9f 100644
--- a/webgui/js/app/windows/WiSPUsers.js
+++ b/webgui/js/app/windows/WiSPUsers.js
@@ -41,7 +41,7 @@ function showWiSPUserWindow() {
 					tooltip:'Add user',
 					iconCls:'silk-user_add',
 					handler: function() {
-						showWiSPUserAddEditWindow();
+						showWiSPUserAddEditWindow(WiSPUserWindow);
 					}
 				},
 				'-',
@@ -54,7 +54,7 @@ function showWiSPUserWindow() {
 						// Check if we have selected item
 						if (selectedItem) {
 							// If so display window
-							showWiSPUserAddEditWindow(selectedItem.data.ID);
+							showWiSPUserAddEditWindow(WiSPUserWindow,selectedItem.data.ID);
 						} else {
 							WiSPUserWindow.getEl().mask();
 
@@ -228,7 +228,7 @@ function showWiSPUserWindow() {
 
 
 // Display edit/add form
-function showWiSPUserAddEditWindow(id) {
+function showWiSPUserAddEditWindow(WiSPUserWindow,id) {
 
 	var submitAjaxConfig;
 	var editMode;
@@ -325,6 +325,14 @@ function showWiSPUserAddEditWindow(id) {
 					'0:RGroups,'+
 					'0:RAttributes'
 			},
+			onSuccess: function() {
+				var store = Ext.getCmp(WiSPUserWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			},
 
 			hook: function() {
 				// Get modified attribute records
@@ -400,6 +408,14 @@ function showWiSPUserAddEditWindow(id) {
 					'0:Number,'+
 					'0:Prefix'
 			},
+			onSuccess: function() {
+				var store = Ext.getCmp(WiSPUserWindow.gridPanelID).getStore();
+				store.load({
+					params: {
+						limit: 25
+					}
+				});
+			},
 
 			hook: function() {
 				// Get modified attribute records
@@ -858,10 +874,10 @@ function showWiSPUserAddEditWindow(id) {
 
 
 
-// Display edit/add form
-function showWiSPUserRemoveWindow(parent,id) {
-	// Mask parent window
-	parent.getEl().mask();
+// Display remove form
+function showWiSPUserRemoveWindow(WiSPUserWindow,id) {
+	// Mask WiSPUserWindow window
+	WiSPUserWindow.getEl().mask();
 
 	// Display remove confirm window
 	Ext.Msg.show({
@@ -875,7 +891,7 @@ function showWiSPUserRemoveWindow(parent,id) {
 			if (buttonId == 'yes') {
 
 				// Do ajax request
-				uxAjaxRequest(parent,{
+				uxAjaxRequest(WiSPUserWindow,{
 					params: {
 						ID: id,
 						SOAPUsername: globalConfig.soap.username,
@@ -884,13 +900,21 @@ function showWiSPUserRemoveWindow(parent,id) {
 						SOAPModule: 'WiSPUsers',
 						SOAPFunction: 'removeWiSPUser',
 						SOAPParams: 'ID'
+					},
+					customSuccess: function() {
+						var store = Ext.getCmp(WiSPUserWindow.gridPanelID).getStore();
+						store.load({
+							params: {
+								limit: 25
+							}
+						});
 					}
 				});
 
 
 			// Unmask if user answered no
 			} else {
-				parent.getEl().unmask();
+				WiSPUserWindow.getEl().unmask();
 			}
 		}
 	});
-- 
GitLab