Updated Branches: refs/heads/autoscale 93e7b86c4 -> 8551a0752
multiEdit widget: Support field pre-filter If adding a 'fieldPreFilter' option to a multiEdit, the returned array specifies field IDs to be hidden. Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/8551a075 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/8551a075 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/8551a075 Branch: refs/heads/autoscale Commit: 8551a075259dd662c96071c0ed85655ac40e3476 Parents: 93e7b86 Author: Brian Federle <[email protected]> Authored: Mon Jul 30 16:08:41 2012 -0700 Committer: Brian Federle <[email protected]> Committed: Mon Jul 30 16:10:23 2012 -0700 ---------------------------------------------------------------------- ui/scripts/network.js | 7 +++++++ ui/scripts/ui/widgets/multiEdit.js | 18 ++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8551a075/ui/scripts/network.js ---------------------------------------------------------------------- diff --git a/ui/scripts/network.js b/ui/scripts/network.js index 812991a..e2cbf6e 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -2013,6 +2013,13 @@ } }, multipleAdd: true, + fieldPreFilter: function(args) { + var context = args.context; + var fields = args.fields; + + // Returns fields to be hidden + return []; + }, fields: { 'name': { edit: true, label: 'label.name', isEditable: true }, 'publicport': { edit: true, label: 'label.public.port' }, http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8551a075/ui/scripts/ui/widgets/multiEdit.js ---------------------------------------------------------------------- diff --git a/ui/scripts/ui/widgets/multiEdit.js b/ui/scripts/ui/widgets/multiEdit.js index c139c42..cac0466 100644 --- a/ui/scripts/ui/widgets/multiEdit.js +++ b/ui/scripts/ui/widgets/multiEdit.js @@ -23,7 +23,7 @@ /** * Append item to list */ - addItem: function(data, fields, $multi, itemData, actions, options) { + addItem: function(data, fields, hiddenFields, $multi, itemData, actions, options) { if (!options) options = {}; var $tr; @@ -39,7 +39,8 @@ // Setup columns $.each(fields, function(fieldName, field) { - if (options.ignoreEmptyFields && !data[fieldName]) { + if ((options.ignoreEmptyFields && !data[fieldName]) || + $.inArray(fieldName.toString(), hiddenFields) > -1) { return true; } @@ -687,6 +688,16 @@ var context = args.context; var ignoreEmptyFields = args.ignoreEmptyFields; var actionPreFilter = args.actionPreFilter; + var fieldPreFilter = args.fieldPreFilter; + var hiddenFields = []; + + if (fieldPreFilter) { + hiddenFields = fieldPreFilter({ + fields: $.map(fields, function(v, k) { return k; }), + context: context, + $multi: $multi + }); + } var $thead = $('<tr>').appendTo( $('<thead>').appendTo($inputTable) @@ -698,6 +709,8 @@ // Setup input table headers $.each(args.fields, function(fieldName, field) { + if ($.inArray(fieldName.toString(), hiddenFields) > -1) return true; + var $th = $('<th>').addClass(fieldName).html(_l(field.label.toString())); $th.attr('rel', fieldName); $th.appendTo($thead); @@ -934,6 +947,7 @@ _medit.addItem( data, fields, + hiddenFields, $multi, itemData, actions,
