Skip to content

Commit 21a052e

Browse files
author
Anurag Awasthi
committed
Fixes in listView Needed for preFilter
1 parent 5af01e6 commit 21a052e

5 files changed

Lines changed: 73 additions & 60 deletions

File tree

ui/config.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ cloudStackOptions = {
2828
"jp": "label.japanese.keyboard",
2929
"sc": "label.simplified.chinese.keyboard"
3030
},
31-
metricsHidden: {
32-
zones:[], // Options - "name", "state", "clusters", "cpuused", "cpuallocated", "memused", "memallocated"
33-
clusters: [], // Options - "name", "state", "hosts", "cpuused", "cpuallocated", "memused", "memallocated"
34-
hosts: [], // Options - "name", "state", "powerstate", "instances", "cpuused", "memused", "network"
35-
storagepool: [], // Options - "name", "property", "disk",
36-
instances: [], // Options - "name", "state", "ipaddress", "zonename", "cpuused", "memused", "network", "disk"
37-
volumes: [] // Options - "name", "state", "vmname", "sizegb", "physicalsize", "utilization", "storagetype", "storage"
31+
hiddenFields: {
32+
"metrics.zones":[], // Options - "name", "state", "clusters", "cpuused", "cpuallocated", "memused", "memallocated"
33+
"metrics.clusters": [], // Options - "name", "state", "hosts", "cpuused", "cpuallocated", "memused", "memallocated"
34+
"metrics.hosts": [], // Options - "name", "state", "powerstate", "instances", "cpuused", "memused", "network"
35+
"metrics.storagepool": [], // Options - "name", "property", "disk",
36+
"metrics.instances": [], // Options - "name", "state", "ipaddress", "zonename", "cpuused", "memused", "network", "disk"
37+
"metrics.volumes": [] // Options - "name", "state", "vmname", "sizegb", "physicalsize", "utilization", "storagetype", "storage"
3838
}
3939
};

ui/index.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1900,6 +1900,8 @@ <h3><translate key="label.set.up.zone.type"/></h3>
19001900
<script type="text/javascript" src="plugins/plugins.js"></script>
19011901
<script type="text/javascript" src="modules/modules.js"></script>
19021902
<script type="text/javascript" src="scripts/plugins.js"></script>
1903-
<script type="text/javascript" src="scripts/configureHiddenColumns.js"></script>
1903+
1904+
<!-- Load this script after all scripts have executed to populate data -->
1905+
<script type="text/javascript" src="scripts/postLoad.js"></script>
19041906
</body>
19051907
</html>

ui/scripts/configureHiddenColumns.js

Lines changed: 0 additions & 26 deletions
This file was deleted.

ui/scripts/postLoad.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
18+
// Load this script after all scripts have executed to populate data
19+
(function(cloudStack) {
20+
21+
var loadListViewPreFilters = function(data, prefix) {
22+
$.each(Object.keys(data), function(idx, key) {
23+
if (key == "listView") {
24+
// Load config flags
25+
if (cloudStackOptions.hiddenFields[prefix]) {
26+
var oldPreFilter = data.listView.preFilter;
27+
data.listView.preFilter = function() {
28+
var hiddenFields = cloudStackOptions.hiddenFields[prefix];
29+
if (oldPreFilter) {
30+
return hiddenFields.concat(oldPreFilter());
31+
}
32+
return hiddenFields;
33+
}
34+
}
35+
} else if (data[key] && $.type(data[key]) == "object") {
36+
loadListViewPreFilters(data[key], (prefix != null && prefix.length > 0) ? prefix + "." + key : key);
37+
}
38+
});
39+
}
40+
41+
loadListViewPreFilters(cloudStack.sections, "");
42+
43+
})(cloudStack);

ui/scripts/ui/widgets/listView.js

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,9 @@
8888

8989
// Make sure the master checkbox is unselected
9090
if (multiSelect) {
91-
$instanceRow.closest('.list-view').find('input.multiSelectMasterCheckbox').attr('checked', false);
91+
var $listView = $instanceRow.closest('.list-view');
92+
$listView.find('input.multiSelectMasterCheckbox').prop('checked', false);
93+
toggleMultiSelectActions($listView, false);
9294
}
9395

9496
var externalLinkAction = action.externalLink;
@@ -762,7 +764,7 @@
762764
).length;
763765
};
764766

765-
var createHeader = function(preFilter, fields, forceHiddenFields, $table, actions, options) {
767+
var createHeader = function(preFilter, fields, $table, actions, options) {
766768
if (!options) options = {};
767769

768770
var $tr = $('<tr>');
@@ -773,10 +775,10 @@
773775
var groupableColumns = options.groupableColumns;
774776
var viewArgs = $table.closest('.list-view').data('view-args');
775777
var uiCustom = viewArgs.uiCustom;
776-
var hiddenFields = forceHiddenFields ? forceHiddenFields : [];
778+
var hiddenFields = [];
777779

778780
if (preFilter != null)
779-
hiddenFields = hiddenFields.concat(preFilter());
781+
hiddenFields = preFilter();
780782

781783
var addColumnToTr = function($tr, key, colspan, label, needsCollapsibleColumn) {
782784
var trText = _l(label);
@@ -884,15 +886,15 @@
884886

885887
if (multiSelect) {
886888
var $th = $('<th>').addClass('multiselect').appendTo($tr);
887-
var content = $('<input>')
889+
var $multiSelectMaster = $('<input>')
888890
.attr('type', 'checkbox')
889-
.addClass('multiSelectMasterCheckbox')
890-
.appendTo($th);
891+
.addClass('multiSelectMasterCheckbox');
892+
$multiSelectMaster.appendTo($th);
891893

892-
content.click(function() {
893-
var checked = $(this).is(':checked');
894-
$('.multiSelectCheckbox').attr('checked', checked);
895-
toggleMultiSelectActions($table.closest('.list-view'), checked);
894+
$multiSelectMaster.click(function() {
895+
var isMasterChecked = $(this).prop('checked');
896+
$('.multiSelectCheckbox').prop('checked', isMasterChecked);
897+
toggleMultiSelectActions($table.closest('.list-view'), isMasterChecked);
896898
});
897899
}
898900

@@ -1136,7 +1138,7 @@
11361138
}
11371139
};
11381140

1139-
var addTableRows = function(preFilter, fields, forceHiddenFields, data, $tbody, actions, options) {
1141+
var addTableRows = function(preFilter, fields, data, $tbody, actions, options) {
11401142
if (!options) options = {};
11411143
var rows = [];
11421144
var reorder = options.reorder;
@@ -1175,9 +1177,9 @@
11751177
$tr.appendTo($tbody);
11761178
}
11771179

1178-
var hiddenFields = forceHiddenFields ? forceHiddenFields : [];
1180+
var hiddenFields = [];
11791181
if (preFilter != null)
1180-
hiddenFields = hiddenFields.concat(preFilter());
1182+
hiddenFields = preFilter();
11811183

11821184
if (multiSelect) {
11831185
var $td = $('<td>')
@@ -1679,7 +1681,7 @@
16791681
});
16801682
};
16811683

1682-
var loadBody = function($table, dataProvider, preFilter, fields, forceHiddenFields, append, loadArgs, actions, options) {
1684+
var loadBody = function($table, dataProvider, preFilter, fields, append, loadArgs, actions, options) {
16831685
if (!options) options = {};
16841686
var context = options.context;
16851687
var reorder = options.reorder;
@@ -1716,7 +1718,7 @@
17161718
success: function(args) {
17171719
setLoadingArgs.loadingCompleted();
17181720

1719-
addTableRows(preFilter, fields, forceHiddenFields, args.data, $tbody, actions, {
1721+
addTableRows(preFilter, fields, args.data, $tbody, actions, {
17201722
actionFilter: args.actionFilter,
17211723
context: context,
17221724
reorder: reorder,
@@ -1734,7 +1736,7 @@
17341736
},
17351737
error: function(args) {
17361738
setLoadingArgs.loadingCompleted();
1737-
addTableRows(preFilter, fields, forceHiddenFields, [], $tbody, actions);
1739+
addTableRows(preFilter, fields, [], $tbody, actions);
17381740
$table.find('td:first').html(_l('ERROR'));
17391741
$table.dataTable(null, {
17401742
noSelect: uiCustom
@@ -1968,7 +1970,6 @@
19681970

19691971
createHeader(listViewData.preFilter,
19701972
listViewData.fields,
1971-
listViewData.hiddenFields,
19721973
$table,
19731974
listViewData.actions, {
19741975
reorder: reorder,
@@ -1998,7 +1999,6 @@
19981999
listViewData.dataProvider,
19992000
listViewData.preFilter,
20002001
listViewData.fields,
2001-
listViewData.hiddenFields,
20022002
false, {
20032003
page: $listView.data('page'),
20042004
filterBy: {
@@ -2054,7 +2054,6 @@
20542054
listViewData.dataProvider,
20552055
listViewData.preFilter,
20562056
listViewData.fields,
2057-
listViewData.hiddenFields,
20582057
false, {
20592058
page: $listView.data('page'),
20602059
filterBy: {
@@ -2107,7 +2106,6 @@
21072106
listViewData.dataProvider,
21082107
listViewData.preFilter,
21092108
listViewData.fields,
2110-
listViewData.hiddenFields,
21112109
false, {
21122110
page: $listView.data('page'),
21132111
filterBy: {
@@ -2215,8 +2213,7 @@
22152213
$table,
22162214
listViewData.dataProvider,
22172215
listViewData.preFilter,
2218-
listViewData.fields,
2219-
listViewData.hiddenFields, true, {
2216+
listViewData.fields, true, {
22202217
context: context,
22212218
page: $listView.data('page'),
22222219
filterBy: filterBy
@@ -2399,7 +2396,6 @@
23992396
var $tr = addTableRows(
24002397
targetArgs.preFilter,
24012398
targetArgs.fields,
2402-
targetArgs.hiddenFields,
24032399
data,
24042400
listView.find('table tbody'),
24052401
targetArgs.actions, {
@@ -2435,7 +2431,6 @@
24352431
$newRow = addTableRows(
24362432
targetArgs.preFilter,
24372433
targetArgs.fields,
2438-
targetArgs.hiddenFields,
24392434
data,
24402435
$listView.find('table tbody'),
24412436
targetArgs.actions, {
@@ -2511,7 +2506,6 @@
25112506
listViewArgs.dataProvider,
25122507
listViewArgs.preFilter,
25132508
listViewArgs.fields,
2514-
listViewArgs.hiddenFields,
25152509
false,
25162510
null,
25172511
listViewArgs.actions, {

0 commit comments

Comments
 (0)