Updated Branches:
  refs/heads/master 15f6fbbee -> f7667e8a8

cloudstack UI - dialog widget - (1) extend field's isHidden property to have 
function type other than boolean type. (2) do not call field's select function 
if field's isHidden property is false.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/f7667e8a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/f7667e8a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/f7667e8a

Branch: refs/heads/master
Commit: f7667e8a885246eb71b1722b0189ef06338075a4
Parents: 15f6fbb
Author: Jessica Wang <[email protected]>
Authored: Thu Oct 4 11:57:18 2012 -0700
Committer: Jessica Wang <[email protected]>
Committed: Thu Oct 4 12:12:19 2012 -0700

----------------------------------------------------------------------
 ui/scripts/instances.js |   38 +++++++++++++++++++++++++++++++++++++-
 ui/scripts/ui/dialog.js |   32 +++++++++++++++++++-------------
 2 files changed, 56 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f7667e8a/ui/scripts/instances.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index 725c1b3..d0675ac 100644
--- a/ui/scripts/instances.js
+++ b/ui/scripts/instances.js
@@ -81,7 +81,43 @@
                                                        }
                                                });
                                        }                                       
        
-                               },                                              
                        
+                               },      
+                               
+                               domainid: {                                     
+                                 label: 'Domain',                              
        
+                                       select: function(args) {
+                                               $.ajax({
+                                                       url: 
createURL('listDomains'),
+                                                       data: { listAll: true },
+                                                       success: function(json) 
{
+                                                               
args.response.success({
+                                                                       data: 
$.map(json.listdomainsresponse.domain, function(domain) {
+                                                                               
return {
+                                                                               
        id: domain.id,
+                                                                               
        description: domain.path
+                                                                               
};
+                                                                       })
+                                                               });
+                                                       }
+                                               });
+                                       },
+                                       isHidden: function(args) {
+                                         if(isAdmin() || isDomainAdmin())
+                                                 return false;
+                                               else
+                                                 return true;
+                                       }
+                               },              
+        account: { 
+                                 label: 'Account',
+          isHidden: function(args) {
+                                         if(isAdmin() || isDomainAdmin())
+                                                 return false;
+                                               else
+                                                 return true;
+                                       }                       
+                               },
+                               
                                tagKey: { label: 'Tag Key' },
                                tagValue: { label: 'Tag Value' }                
                                
                        },                                              

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f7667e8a/ui/scripts/ui/dialog.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/dialog.js b/ui/scripts/ui/dialog.js
index 2d22637..0aa2ac5 100644
--- a/ui/scripts/ui/dialog.js
+++ b/ui/scripts/ui/dialog.js
@@ -65,9 +65,14 @@
         var $formItem = $('<div>')
               .addClass('form-item')
               .attr({ rel: key });
-
-        if (field.hidden || field.isHidden) $formItem.hide();
-
+                                                                               
        
+        if(field.isHidden != null) {
+                                       if (typeof(field.isHidden) == 'boolean' 
&& field.isHidden == true) 
+                                               $formItem.hide();
+                                       else if (typeof(field.isHidden) == 
'function' && field.isHidden() == true) 
+                                               $formItem.hide();
+        }
+                               
         $formItem.appendTo($form);
 
         //Handling Escape KeyPress events
@@ -91,10 +96,7 @@
          closeOnEscape: false
          }); */
         // Label field
-                               
-                               //if( field.label == 'label.network.offering' 
|| field.label == 'label.guest.gateway')
-                               //  debugger;
-                               
+                                                               
         var $name = $('<div>').addClass('name')
               .appendTo($formItem)
               .append(
@@ -198,9 +200,9 @@
           selectFn = field.select;
           $input = $('<select>')
             .attr({ name: key })
-            .data('dialog-select-fn', function(args) {
-              selectFn(args ?
-                       $.extend(true, {}, selectArgs, args) : selectArgs);
+            .data('dialog-select-fn', function(args) {                         
                                
+              if((field.isHidden == null) || (typeof(field.isHidden) == 
'boolean' && field.isHidden == false) || (typeof(field.isHidden) == 'function' 
&& field.isHidden() == false))                  
+                selectFn(args ? $.extend(true, {}, selectArgs, args) : 
selectArgs);
             })
             .appendTo($value);
 
@@ -224,16 +226,20 @@
               if (!$target.children().size()) return true;
 
               dependsOnArgs[dependsOn] = $target.val();
-              selectFn($.extend(selectArgs, dependsOnArgs));
+                                                       
+                                                       if((field.isHidden == 
null) || (typeof(field.isHidden) == 'boolean' && field.isHidden == false) || 
(typeof(field.isHidden) == 'function' && field.isHidden() == false))            
                                     
+                selectFn($.extend(selectArgs, dependsOnArgs));
 
               return true;
             });
 
             if (!$dependsOn.is('select')) {
-              selectFn(selectArgs);
+                                                 if((field.isHidden == null) 
|| (typeof(field.isHidden) == 'boolean' && field.isHidden == false) || 
(typeof(field.isHidden) == 'function' && field.isHidden() == false))            
           
+                selectFn(selectArgs);
             }
           } else {
-            selectFn(selectArgs);
+                                         if((field.isHidden == null) || 
(typeof(field.isHidden) == 'boolean' && field.isHidden == false) || 
(typeof(field.isHidden) == 'function' && field.isHidden() == false))            
           
+              selectFn(selectArgs);
           }
         } else if (field.isBoolean) {
           if (field.multiArray) {

Reply via email to