diff --git a/ui/scripts/projects.js b/ui/scripts/projects.js
index 155906041d0..b3ddfbc02ad 100644
--- a/ui/scripts/projects.js
+++ b/ui/scripts/projects.js
@@ -106,6 +106,7 @@
noSelect: true,
fields: {
'username': { edit: true, label: 'Account' },
+ 'role': { edit: 'ignore', label: 'Role' },
'add-user': { addButton: true, label: '' }
},
add: {
@@ -222,6 +223,7 @@
data: $.map(data.listprojectaccountsresponse.projectaccount, function(elem) {
return {
id: elem.accountid,
+ role: elem.role,
username: elem.role == 'Owner' ?
elem.account + ' (owner)' : elem.account
};
diff --git a/ui/scripts/ui/multiEdit.js b/ui/scripts/ui/multiEdit.js
index f5f9cab04f0..b14a3021226 100644
--- a/ui/scripts/ui/multiEdit.js
+++ b/ui/scripts/ui/multiEdit.js
@@ -173,6 +173,8 @@
}
});
}
+
+ $(window).trigger('cloudStack.fullRefresh');
},
error: cloudStack.dialog.error
}
@@ -385,7 +387,7 @@
error: function(args) { }
}
});
- } else if (field.edit) {
+ } else if (field.edit && field.edit != 'ignore') {
if (field.range) {
var $range = $('
').addClass('range').appendTo($td);
@@ -482,7 +484,7 @@
// Loading appearance
var $loading = _medit.loadingItem($multi, 'Adding...');
- $dataBody.append($loading);
+ $dataBody.prepend($loading);
// Clear out fields
$multi.find('input').val('');
@@ -510,21 +512,6 @@
complete: function(completeArgs) {
complete(args);
$loading.remove();
-
- _medit.addItem(
- data,
- args.fields,
- $multi,
- itemData,
- args.actions,
- {
- multipleAdd: multipleAdd,
- noSelect: noSelect,
- context: context,
- ignoreEmptyFields: ignoreEmptyFields,
- preFilter: actionPreFilter
- }
- ).appendTo($dataBody);
},
error: function(args) {
@@ -538,7 +525,7 @@
});
}
- _medit.refreshItemWidths($multi);
+ $(window).trigger('cloudStack.fullRefresh');
},
error: cloudStack.dialog.error(function() {
@@ -599,34 +586,43 @@
return true;
});
- // Get existing data
- dataProvider({
- context: context,
- response: {
- success: function(args) {
- $(args.data).each(function() {
- var data = this;
- var itemData = this._itemData;
- _medit.addItem(
- data,
- fields,
- $multi,
- itemData,
- actions,
- {
- multipleAdd: multipleAdd,
- noSelect: noSelect,
- context: $.extend(true, {}, context, this._context),
- ignoreEmptyFields: ignoreEmptyFields,
- preFilter: actionPreFilter
- }
- ).appendTo($dataBody);
- });
+ var getData = function() {
+ $multi.find('.data-item').remove();
+ dataProvider({
+ context: context,
+ response: {
+ success: function(args) {
+ $(args.data).each(function() {
+ var data = this;
+ var itemData = this._itemData;
+ _medit.addItem(
+ data,
+ fields,
+ $multi,
+ itemData,
+ actions,
+ {
+ multipleAdd: multipleAdd,
+ noSelect: noSelect,
+ context: $.extend(true, {}, context, this._context),
+ ignoreEmptyFields: ignoreEmptyFields,
+ preFilter: actionPreFilter
+ }
+ ).appendTo($dataBody);
+ });
- _medit.refreshItemWidths($multi);
- },
- error: cloudStack.dialog.error
- }
+ _medit.refreshItemWidths($multi);
+ },
+ error: cloudStack.dialog.error
+ }
+ });
+ };
+
+ // Get existing data
+ getData();
+
+ $(window).bind('cloudStack.fullRefresh', function(event) {
+ getData();
});
$multi.bind('change select', function() {