mirror of https://github.com/apache/cloudstack.git
cloudstack 3.0 UI - (1) listView widget - add PreFilter() to exclude fields that shouldn't show upon conditions. (2) Instance page - add new field "Internal name" (e.g. "i-3-5-JW") that only shows for root-admin.
This commit is contained in:
parent
e152e64ac0
commit
4761b9ec58
|
|
@ -6,6 +6,7 @@ label.system.wide.capacity=System-wide capacity
|
|||
label.network.service.providers=Network Service Providers
|
||||
message.launch.zone=Zone is ready to launch; please proceed to the next step.
|
||||
error.unable.to.reach.management.server=Unable to reach Management Server
|
||||
label.internal.name=Internal name
|
||||
#new labels (end) ************************************************************************************************
|
||||
|
||||
label.add.compute.offering=Add compute offering
|
||||
|
|
|
|||
|
|
@ -2873,6 +2873,7 @@ dictionary = {
|
|||
'message.please.select.a.different.public.and.management.network.before.removing': '<fmt:message key="message.please.select.a.different.public.and.management.network.before.removing" />',
|
||||
'label.purpose': '<fmt:message key="label.purpose" />',
|
||||
'error.please.specify.physical.network.tags': '<fmt:message key="error.please.specify.physical.network.tags" />',
|
||||
'error.unable.to.reach.management.server': '<fmt:message key="error.unable.to.reach.management.server" />'
|
||||
'error.unable.to.reach.management.server': '<fmt:message key="error.unable.to.reach.management.server" />',
|
||||
'label.internal.name': '<fmt:message key="label.internal.name" />'
|
||||
};
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -23,9 +23,17 @@
|
|||
},
|
||||
label: 'state.Destroyed'
|
||||
}
|
||||
},
|
||||
},
|
||||
preFilter: function(args) {
|
||||
var hiddenFields = [];
|
||||
if(!isAdmin()) {
|
||||
hiddenFields.push('instancename');
|
||||
}
|
||||
return hiddenFields;
|
||||
},
|
||||
fields: {
|
||||
displayname: { label: 'label.display.name' },
|
||||
instancename: { label: 'label.internal.name' },
|
||||
zonename: { label: 'label.zone.name' },
|
||||
state: {
|
||||
label: 'label.state',
|
||||
|
|
@ -1495,14 +1503,19 @@
|
|||
if (!args.context.instances[0].publicip) {
|
||||
hiddenFields.push('publicip');
|
||||
}
|
||||
|
||||
|
||||
if(!isAdmin()) {
|
||||
hiddenFields.push('instancename');
|
||||
}
|
||||
|
||||
return hiddenFields;
|
||||
},
|
||||
|
||||
fields: [
|
||||
{
|
||||
id: { label: 'label.id', isEditable: false },
|
||||
displayname: { label: 'label.display.name', isEditable: true },
|
||||
displayname: { label: 'label.display.name', isEditable: true },
|
||||
instancename: { label: 'label.internal.name' },
|
||||
state: { label: 'label.state', isEditable: false },
|
||||
publicip: { label: 'label.public.ip', isEditable: false },
|
||||
zonename: { label: 'label.zone.name', isEditable: false },
|
||||
|
|
|
|||
|
|
@ -526,13 +526,19 @@
|
|||
).length;
|
||||
};
|
||||
|
||||
var createHeader = function(fields, $table, actions, options) {
|
||||
var createHeader = function(preFilter, fields, $table, actions, options) {
|
||||
if (!options) options = {};
|
||||
|
||||
var $thead = $('<thead>').prependTo($table).append($('<tr>'));
|
||||
var reorder = options.reorder;
|
||||
|
||||
$.each(fields, function(key) {
|
||||
var hiddenFields = [];
|
||||
if(preFilter != null)
|
||||
hiddenFields = preFilter();
|
||||
|
||||
$.each(fields, function(key) {
|
||||
if($.inArray(key, hiddenFields) != -1)
|
||||
return true;
|
||||
var field = this;
|
||||
var $th = $('<th>').addClass(key).appendTo($thead.find('tr'));
|
||||
|
||||
|
|
@ -702,7 +708,7 @@
|
|||
$detailsPanel = data.$browser.cloudBrowser('addPanel', panelArgs);
|
||||
};
|
||||
|
||||
var addTableRows = function(fields, data, $tbody, actions, options) {
|
||||
var addTableRows = function(preFilter, fields, data, $tbody, actions, options) {
|
||||
if (!options) options = {};
|
||||
var rows = [];
|
||||
var reorder = options.reorder;
|
||||
|
|
@ -734,9 +740,15 @@
|
|||
$tr.appendTo($tbody);
|
||||
}
|
||||
|
||||
var hiddenFields = [];
|
||||
if(preFilter != null)
|
||||
hiddenFields = preFilter();
|
||||
|
||||
// Add field data
|
||||
$.each(fields, function(key) {
|
||||
var field = this;
|
||||
$.each(fields, function(key) {
|
||||
if($.inArray(key, hiddenFields) != -1)
|
||||
return true;
|
||||
var field = this;
|
||||
var $td = $('<td>')
|
||||
.addClass(key)
|
||||
.data('list-view-item-field', key)
|
||||
|
|
@ -912,7 +924,7 @@
|
|||
});
|
||||
};
|
||||
|
||||
var loadBody = function($table, dataProvider, fields, append, loadArgs, actions, options) {
|
||||
var loadBody = function($table, dataProvider, preFilter, fields, append, loadArgs, actions, options) {
|
||||
if (!options) options = {};
|
||||
var context = options.context;
|
||||
var reorder = options.reorder;
|
||||
|
|
@ -941,8 +953,8 @@
|
|||
response: {
|
||||
success: function(args) {
|
||||
setLoadingArgs.loadingCompleted();
|
||||
|
||||
addTableRows(fields, args.data, $tbody, actions, {
|
||||
|
||||
addTableRows(preFilter, fields, args.data, $tbody, actions, {
|
||||
actionFilter: args.actionFilter,
|
||||
context: context,
|
||||
reorder: reorder
|
||||
|
|
@ -954,8 +966,8 @@
|
|||
});
|
||||
},
|
||||
error: function(args) {
|
||||
setLoadingArgs.loadingCompleted();
|
||||
addTableRows(fields, [], $tbody, actions);
|
||||
setLoadingArgs.loadingCompleted();
|
||||
addTableRows(preFilter, fields, [], $tbody, actions);
|
||||
$table.find('td:first').html(_l('ERROR'));
|
||||
$table.dataTable(null, { noSelect: uiCustom });
|
||||
}
|
||||
|
|
@ -1147,16 +1159,18 @@
|
|||
|
||||
$('<tbody>').appendTo($table);
|
||||
|
||||
createHeader(listViewData.fields,
|
||||
createHeader(listViewData.preFilter,
|
||||
listViewData.fields,
|
||||
$table,
|
||||
listViewData.actions,
|
||||
{ reorder: reorder });
|
||||
createFilters($toolbar, listViewData.filters);
|
||||
createSearchBar($toolbar);
|
||||
|
||||
|
||||
loadBody(
|
||||
$table,
|
||||
listViewData.dataProvider,
|
||||
listViewData.preFilter,
|
||||
listViewData.fields,
|
||||
false,
|
||||
{
|
||||
|
|
@ -1201,10 +1215,11 @@
|
|||
return true;
|
||||
});
|
||||
|
||||
var search = function() {
|
||||
var search = function() {
|
||||
loadBody(
|
||||
$table,
|
||||
$table,
|
||||
listViewData.dataProvider,
|
||||
listViewData.preFilter,
|
||||
listViewData.fields,
|
||||
false,
|
||||
{
|
||||
|
|
@ -1256,8 +1271,7 @@
|
|||
|
||||
if (loadMoreData) {
|
||||
page = page + 1;
|
||||
|
||||
loadBody($table, listViewData.dataProvider, listViewData.fields, true, {
|
||||
loadBody($table, listViewData.dataProvider, listViewData.preFilter, listViewData.fields, true, {
|
||||
context: context,
|
||||
page: page,
|
||||
filterBy: {
|
||||
|
|
@ -1408,8 +1422,8 @@
|
|||
listViewArgs.activeSection
|
||||
].listView : listViewArgs;
|
||||
var reorder = targetArgs.reorder;
|
||||
|
||||
var $tr = addTableRows(
|
||||
targetArgs.preFilter,
|
||||
targetArgs.fields,
|
||||
data,
|
||||
listView.find('table tbody'),
|
||||
|
|
@ -1441,6 +1455,7 @@
|
|||
var defaultActionFilter = $row.data('list-view-action-filter');
|
||||
|
||||
$newRow = addTableRows(
|
||||
targetArgs.preFilter,
|
||||
targetArgs.fields,
|
||||
data,
|
||||
$listView.find('table tbody'),
|
||||
|
|
@ -1482,6 +1497,7 @@
|
|||
loadBody(
|
||||
this.find('table:last'),
|
||||
listViewArgs.dataProvider,
|
||||
listViewArgs.preFilter,
|
||||
listViewArgs.fields,
|
||||
false,
|
||||
null,
|
||||
|
|
|
|||
Loading…
Reference in New Issue