You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2012/07/31 01:10:40 UTC

git commit: multiEdit widget: Support field pre-filter

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 <br...@citrix.com>
Authored: Mon Jul 30 16:08:41 2012 -0700
Committer: Brian Federle <br...@citrix.com>
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,