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 2013/07/08 20:33:58 UTC

[1/5] git commit: updated refs/heads/4.2 to 39d68b4

Updated Branches:
  refs/heads/4.2 8c34f35a3 -> 39d68b40b


CLOUDSTACK-3170: Support editing ACL rule items

Conflicts:
	ui/scripts/vpc.js


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

Branch: refs/heads/4.2
Commit: b48d99b51821d8cbcb0a4e45ae7e3e42341ab775
Parents: 8c34f35
Author: Brian Federle <br...@citrix.com>
Authored: Wed Jun 26 12:07:52 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Mon Jul 8 11:33:27 2013 -0700

----------------------------------------------------------------------
 ui/scripts/ui/dialog.js            |   4 +-
 ui/scripts/ui/widgets/multiEdit.js |   5 +-
 ui/scripts/vpc.js                  | 291 ++++++++++++++++++++++----------
 3 files changed, 204 insertions(+), 96 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b48d99b5/ui/scripts/ui/dialog.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/dialog.js b/ui/scripts/ui/dialog.js
index 6f05af2..e4ca389 100644
--- a/ui/scripts/ui/dialog.js
+++ b/ui/scripts/ui/dialog.js
@@ -236,7 +236,7 @@
             response: {
               success: function(args) {
                 $(args.data).each(function() {
-                  var id = this.id;
+                  var id = this.id ? this.id : this.name;
                   var description = this.description;
 
                   if (args.descriptionField)
@@ -272,7 +272,7 @@
             .appendTo($value);
 
           // Pass form item to provider for additional manipulation
-          $.extend(selectArgs, { $select: $input });
+          $.extend(selectArgs, { $select: $input, $form: $form, type: 'createForm' });
 
           if (dependsOn) {
             $dependsOn = $input.closest('form').find('input, select').filter(function() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b48d99b5/ui/scripts/ui/widgets/multiEdit.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/multiEdit.js b/ui/scripts/ui/widgets/multiEdit.js
index 37c5abf..08bd0bf 100755
--- a/ui/scripts/ui/widgets/multiEdit.js
+++ b/ui/scripts/ui/widgets/multiEdit.js
@@ -336,8 +336,7 @@
                             },
                             error: function(args) {
                               error(args);
-                              $loading.remove();
-                              $dataItem.show();
+                              $multi.trigger('refresh');
 
                               return cloudStack.dialog.error;
                             }
@@ -402,6 +401,8 @@
               var editableFields = {};
 
               $.each(fields, function(key, field) {
+                field.isDisabled = false;
+                
                 if (field && field.isEditable) editableFields[key] = $.extend(true, {}, field, {
                   defaultValue: data[key]
                 });

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b48d99b5/ui/scripts/vpc.js
----------------------------------------------------------------------
diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js
index 4add0be..e31121e 100644
--- a/ui/scripts/vpc.js
+++ b/ui/scripts/vpc.js
@@ -62,13 +62,15 @@
 
        'number':{
            label:'Rule Number',
-           edit:true
+           edit:true,
+         isEditable: true
 
        },
 
-      'cidrlist': { edit: true, label: 'label.cidr' },
+      'cidrlist': { edit: true, label: 'label.cidr', isEditable: true },
       action: {
         label: 'Action',
+        isEditable: true,
         select: function(args) {
           args.response.success({
             data: [
@@ -80,67 +82,125 @@
       },
       'protocol': {
         label: 'label.protocol',
+        isEditable: true,
         select: function(args) {
+          var isEditDialog = args.type === 'createForm';
+          
           args.$select.change(function() {
-            var $inputs = args.$form.find('input');
-            var $icmpFields = $inputs.filter(function() {
-              var name = $(this).attr('name');
-
-              return $.inArray(name, [
-                'icmptype',
-                'icmpcode'
-              ]) > -1;
-            });
-            var $otherFields = $inputs.filter(function() {
-              var name = $(this).attr('name');
-
-              return name != 'protocolnumber' &&
-                     name != 'icmptype' &&
-                     name != 'icmpcode' &&
-                     name != 'cidrlist' &&
-                     name != 'number';
-            });
-            var $portFields = $inputs.filter(function() {
-              var name = $(this).attr('name');
-              return $.inArray(name, [
-                'startport',
-                'endport'
-              ]) > -1;
-            });
+            var $inputs, $icmpFields, $otherFields, $portFields, $protocolFields, $protocolinput;
+            
+            //
+            // Editing existing rules in createForm dialog
+            //
+            if (isEditDialog) {
+              $inputs = args.$form.find('.form-item');
+              $icmpFields = $inputs.filter(function() {
+                var name = $(this).attr('rel');
+
+                return $.inArray(name, [
+                  'icmptype',
+                  'icmpcode'
+                ]) > -1;
+              });
+              $otherFields = $inputs.filter(function() {
+                var name = $(this).attr('rel');
 
-            var $protocolinput = args.$form.find('td input');
-            var $protocolFields = $protocolinput.filter(function(){
-             var name = $(this).attr('name');
+                return name != 'protocolnumber' &&
+                  name != 'icmptype' &&
+                  name != 'icmpcode' &&
+                  name != 'cidrlist';
+              });
+              $portFields = $inputs.filter(function() {
+                var name = $(this).attr('rel');
+                return $.inArray(name, [
+                  'startport',
+                  'endport'
+                ]) > -1;
+              });
+              $protocolFields = $inputs.filter(function(){
+                var name = $(this).attr('rel');
 
-             return  $.inArray(name,['protocolnumber']) > -1;
-            });
+                return $.inArray(name,['protocolnumber']) > -1;
+              });
 
-            if ($(this).val() == 'protocolnumber' ){
-              $icmpFields.hide();
-              $otherFields.hide();
-              $protocolFields.show().addClass('required');
-              $portFields.show();
-            } else if ($(this).val() == 'icmp') {
-              $icmpFields.show();
-              $icmpFields.attr('disabled', false);
-              $protocolFields.hide().removeClass('required');
-              $otherFields.attr('disabled', 'disabled');
-              $otherFields.hide();
-              $otherFields.parent().find('label.error').hide();
-            }
-            else if ($(this).val() == 'all'){
-                $portFields.attr('disabled', 'disabled');
+              if ($(this).val() == 'protocolnumber' ){
+                $icmpFields.hide();
+                $portFields.show();
+                $protocolFields.show();
+              } else if ($(this).val() == 'icmp') {
+                $icmpFields.show();
+                $protocolFields.hide();
                 $portFields.hide();
-              }
+              } else {
+                $otherFields.show();
+                $icmpFields.hide();
+                $protocolFields.hide();
+                
+                if ($(this).val() == 'all') {
+                  $portFields.hide();
+                }
+              }              
+            } else {
+              //
+              // Add new form
+              //
+              $inputs = args.$form.find('input');
+              $icmpFields = $inputs.filter(function() {
+                var name = $(this).attr('name');
+
+                return $.inArray(name, [
+                  'icmptype',
+                  'icmpcode'
+                ]) > -1;
+              });
+              $otherFields = $inputs.filter(function() {
+                var name = $(this).attr('name');
+
+                return name != 'protocolnumber' &&
+                  name != 'icmptype' &&
+                  name != 'icmpcode' &&
+                  name != 'cidrlist' &&
+                  name != 'number';
+              });
+              $portFields = $inputs.filter(function() {
+                var name = $(this).attr('name');
+                return $.inArray(name, [
+                  'startport',
+                  'endport'
+                ]) > -1;
+              });
+
+              $protocolinput = args.$form.find('td input');
+              $protocolFields = $protocolinput.filter(function(){
+                var name = $(this).attr('name');
+
+                return  $.inArray(name,['protocolnumber']) > -1;
+              });
 
-            else {
-              $otherFields.show();
-              $otherFields.parent().find('label.error').hide();
-              $otherFields.attr('disabled', false);
-              $icmpFields.attr('disabled', 'disabled');
-              $icmpFields.hide();
-              $icmpFields.parent().find('label.error').hide();
-              $protocolFields.hide().removeClass('required');
+              if ($(this).val() == 'protocolnumber' ){
+                $icmpFields.hide();
+                $otherFields.hide();
+                $protocolFields.show().addClass('required');
+              } else if ($(this).val() == 'icmp') {
+                $icmpFields.show();
+                $icmpFields.attr('disabled', false);
+                $protocolFields.hide().removeClass('required');
+                $otherFields.attr('disabled', 'disabled');
+                $otherFields.hide();
+                $otherFields.parent().find('label.error').hide();
+              } else {
+                $otherFields.show();
+                $otherFields.parent().find('label.error').hide();
+                $otherFields.attr('disabled', false);
+                $icmpFields.attr('disabled', 'disabled');
+                $icmpFields.hide();
+                $icmpFields.parent().find('label.error').hide();
+                $protocolFields.hide().removeClass('required');
+                if ($(this).val() == 'all'){
+                  $portFields.attr('disabled', 'disabled');
+                  $portFields.hide();
+                }
+              }              
             }
           });
 
@@ -159,9 +219,9 @@
         }
       },
 
-      'protocolnumber': {label:'Protocol Number',edit:true},
-      'startport': { edit: true, label: 'label.start.port', isOptional: true },
-      'endport': { edit: true, label: 'label.end.port', isOptional: true },
+      'protocolnumber': {label:'Protocol Number',edit:true, isEditable: true},
+      'startport': { edit: true, label: 'label.start.port', isOptional: true, isEditable: true },
+      'endport': { edit: true, label: 'label.end.port', isOptional: true, isEditable: true },
       'networkid': {
         label: 'Select Tier',
         select: function(args) {
@@ -198,10 +258,11 @@
           });
         }
       },
-      'icmptype': { edit: true, label: 'ICMP.type', isDisabled: true, desc:'Please specify -1 if you want to allow all ICMP types', defaultValue:'-1' },
-      'icmpcode': { edit: true, label: 'ICMP.code', isDisabled: true, desc:'Please specify -1 if you want to allow all ICMP codes', defaultValue:'-1' },
+      'icmptype': { edit: true, label: 'ICMP.type', isDisabled: true, desc:'Please specify -1 if you want to allow all ICMP types', defaultValue:'-1', isEditable: true },
+      'icmpcode': { edit: true, label: 'ICMP.code', isDisabled: true, desc:'Please specify -1 if you want to allow all ICMP codes', defaultValue:'-1', isEditable: true },
       'traffictype' : {
         label: 'label.traffic.type',
+        isEditable: true,
         select: function(args) {
           args.response.success({
             data: [
@@ -225,54 +286,100 @@
         var $multi = args.$multi;
         //Support for Protocol Number between 0 to 255
         if(args.data.protocol == 'protocolnumber'){
-            $.extend(args.data,{protocol:args.data.protocolnumber});
-            delete args.data.protocolnumber;
+          $.extend(args.data,{protocol:args.data.protocolnumber});
+          delete args.data.protocolnumber;
         }
         else
           delete args.data.protocolnumber;
 
 
-       
+        
         if((args.data.protocol == 'tcp' || args.data.protocol == 'udp') && (args.data.startport=="" || args.data.startport == undefined)){
-         cloudStack.dialog.notice({message:_l('Start Port or End Port value should not be blank')});
+          cloudStack.dialog.notice({message:_l('Start Port or End Port value should not be blank')});
           $(window).trigger('cloudStack.fullRefresh');
         }
         else if((args.data.protocol == 'tcp' || args.data.protocol == 'udp')  && (args.data.endport=="" || args.data.endport == undefined)){
-         cloudStack.dialog.notice({message:_l('Start Port or End Port value should not be blank')});
+          cloudStack.dialog.notice({message:_l('Start Port or End Port value should not be blank')});
           $(window).trigger('cloudStack.fullRefresh');
         }
 
-       else{       
-        $.ajax({
-          url: createURL('createNetworkACL'),
-          data: $.extend(args.data, {
-            aclid: args.context.aclLists[0].id
-          }),
-          dataType: 'json',
-          success: function(data) {
-            args.response.success({
-              _custom: {
-                jobId: data.createnetworkaclresponse.jobid,
-                getUpdatedItem: function(json) {
-                  $(window).trigger('cloudStack.fullRefresh');
+        else{       
+          $.ajax({
+            url: createURL('createNetworkACL'),
+            data: $.extend(args.data, {
+              aclid: args.context.aclLists[0].id
+            }),
+            dataType: 'json',
+            success: function(data) {
+              args.response.success({
+                _custom: {
+                  jobId: data.createnetworkaclresponse.jobid,
+                  getUpdatedItem: function(json) {
+                    $(window).trigger('cloudStack.fullRefresh');
 
-                  return data;
+                    return data;
+                  }
+                },
+                notification: {
+                  label: 'label.add.ACL',
+                  poll: pollAsyncJobResult
                 }
-              },
-              notification: {
-                label: 'label.add.ACL',
-                poll: pollAsyncJobResult
-              }
-            });
-          },
-          error: function(data) {
-            args.response.error(parseXMLHttpResponse(data));
-          }
-        });
-      }
+              });
+            },
+            error: function(data) {
+              args.response.error(parseXMLHttpResponse(data));
+            }
+          });
+        }
       }
     },
     actions: {
+      edit: {
+        label: 'label.edit',
+        action: function(args) {
+          var data = {
+            id: args.context.multiRule[0].id,
+            cidrlist: args.data.cidrlist,
+            number: args.data.number,
+            protocol: args.data.protocol,
+            traffictype: args.data.traffictype,
+            action: args.data.action
+          };
+
+          if (data.protocol === 'tcp' || data.protocol === 'udp') {
+            $.extend(data, {
+              startport: args.data.startport,
+              endport: args.data.endport
+            });
+          } else if (data.protocol === 'icmp') {
+            $.extend(data, {
+              icmptype: args.data.icmptype,
+              icmpcode: args.data.icmpcode
+            });
+          } else if (data.protocol === 'protocolnumber') {
+            $.extend(data, {
+              protocolnumber: args.data.protocolnumber
+            });
+          }
+
+          $.ajax({
+            url: createURL('updateNetworkACLItem'),
+            data: data,
+            success: function(json) {
+              args.response.success({
+                _custom: { jobId: json.createnetworkaclresponse.jobid }, // API response obj name needs to be fixed
+                notification: {
+                  label: 'Edit ACL rule',
+                  poll: pollAsyncJobResult
+                }
+              });
+            },
+            error: function(error) {
+              args.response.error(parseXMLHttpResponse(error));
+            }
+          });         
+        }
+      },
       destroy: {
         label: 'label.remove.ACL',
         action: function(args) {


[4/5] git commit: updated refs/heads/4.2 to 39d68b4

Posted by bf...@apache.org.
Region selector UI: Fix overlap issue with other dialogs

Remove z-index from region select button, to prevent overlap with other dialogs.


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

Branch: refs/heads/4.2
Commit: 39d68b40b4e989378f7266b7a33fcde6303f587d
Parents: 2f3c9a0
Author: Brian Federle <br...@citrix.com>
Authored: Tue Jul 2 13:31:28 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Mon Jul 8 11:33:28 2013 -0700

----------------------------------------------------------------------
 ui/css/cloudstack3.css | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/39d68b40/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index e4459a1..50a36f0 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -11624,7 +11624,6 @@ div.ui-dialog div.autoscaler div.field-group div.form-container form div.form-it
 /*Regions*/
 .region-switcher {
   display: inline-block;
-  z-index: 2002;
   position: relative;
   background: url(../images/bg-gradients.png) repeat-x 0px -867px;
   border: 1px solid #5E5E5E;


[5/5] git commit: updated refs/heads/4.2 to 39d68b4

Posted by bf...@apache.org.
Multi-edit: edit rule UI: fix regression and restore functionality

Conflicts:
	ui/scripts/ui/dialog.js


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

Branch: refs/heads/4.2
Commit: f2391366053dda2a26ea8570269101bc1d828d78
Parents: b48d99b
Author: Brian Federle <br...@citrix.com>
Authored: Mon Jul 1 14:28:52 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Mon Jul 8 11:33:28 2013 -0700

----------------------------------------------------------------------
 ui/scripts/ui/dialog.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f2391366/ui/scripts/ui/dialog.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/dialog.js b/ui/scripts/ui/dialog.js
index e4ca389..7f82eea 100644
--- a/ui/scripts/ui/dialog.js
+++ b/ui/scripts/ui/dialog.js
@@ -236,7 +236,7 @@
             response: {
               success: function(args) {
                 $(args.data).each(function() {
-                  var id = this.id ? this.id : this.name;
+                  var id = this.id !== undefined ? this.id : this.name;
                   var description = this.description;
 
                   if (args.descriptionField)


[2/5] git commit: updated refs/heads/4.2 to 39d68b4

Posted by bf...@apache.org.
UI: Localize app name and 'about' window


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

Branch: refs/heads/4.2
Commit: 33c144a463090f0ab053023c61cc036ae62cca1d
Parents: f239136
Author: Brian Federle <br...@citrix.com>
Authored: Tue Jul 2 11:58:57 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Mon Jul 8 11:33:28 2013 -0700

----------------------------------------------------------------------
 client/WEB-INF/classes/resources/messages.properties | 3 +++
 ui/dictionary.jsp                                    | 3 +++
 ui/scripts/cloudStack.js                             | 4 ++--
 ui/scripts/ui/core.js                                | 8 ++++----
 4 files changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33c144a4/client/WEB-INF/classes/resources/messages.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties
index b1a09b1..fab8dbd 100644
--- a/client/WEB-INF/classes/resources/messages.properties
+++ b/client/WEB-INF/classes/resources/messages.properties
@@ -14,6 +14,9 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+label.about=About
+label.app.name=CloudStack
+label.about.app=About CloudStack
 label.custom.disk.iops=Custom IOPS
 label.disk.iops.min=Min IOPS
 label.disk.iops.max=Max IOPS

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33c144a4/ui/dictionary.jsp
----------------------------------------------------------------------
diff --git a/ui/dictionary.jsp b/ui/dictionary.jsp
index af64228..748cc7d 100644
--- a/ui/dictionary.jsp
+++ b/ui/dictionary.jsp
@@ -25,6 +25,9 @@ under the License.
 <% long now = System.currentTimeMillis(); %>
 <script language="javascript">
 dictionary = {
+'label.about': '<fmt:message key="label.about" />',
+'label.about.app': '<fmt:message key="label.about.app" />',
+'label.app.name': '<fmt:message key="label.app.name" />',
 'label.custom.disk.iops': '<fmt:message key="label.custom.disk.iops" />',
 'label.disk.iops.min': '<fmt:message key="label.disk.iops.min" />',
 'label.disk.iops.max': '<fmt:message key="label.disk.iops.max" />',

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33c144a4/ui/scripts/cloudStack.js
----------------------------------------------------------------------
diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js
index b06cf5c..739ac7e 100644
--- a/ui/scripts/cloudStack.js
+++ b/ui/scripts/cloudStack.js
@@ -475,8 +475,6 @@
         };
       }
     };
-		
-    document.title = 'CloudStack';
 
     if ($.urlParam('loginUrl') != 0
 		||(window.name != null && window.name.indexOf("&domain=") != -1)) {
@@ -490,5 +488,7 @@
     cloudStack.localizationFn = function(str) {
       return dictionary[str];
     };
+
+    document.title = _l('label.app.name');
   });
 })(cloudStack, jQuery);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33c144a4/ui/scripts/ui/core.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/core.js b/ui/scripts/ui/core.js
index de86e51..18c3363 100644
--- a/ui/scripts/ui/core.js
+++ b/ui/scripts/ui/core.js
@@ -275,7 +275,7 @@
     var $options = $('<div>').attr({ id: 'user-options' })
           .appendTo($('#header'));
     
-    $(['label.logout', 'label.help', 'About']).each(function() {
+    $(['label.logout', 'label.help', 'label.about']).each(function() {
       var $link = $('<a>')
             .attr({ href: '#' })
             .html(_l(this.toString()))
@@ -290,15 +290,15 @@
           return false;
         });
       }
-      if (this == 'About') {
+      if (this == 'label.about') {
         $link.click(function() {
-          var $logo = $('<div>').addClass('logo').html('CloudStack'),
+          var $logo = $('<div>').addClass('logo').html(_l('label.app.name')),
           $version = $('<div>').addClass('version').html(g_cloudstackversion),
           $about = $('<div>').addClass('about').append($logo).append($version);
           $about.dialog({
             modal: true,
             width: 300,
-            title: 'About CloudStack',
+            title: _l('label.about.app'),
             closeOnEscape: false,
             dialogClass: 'dialog-about',
             buttons: {


[3/5] git commit: updated refs/heads/4.2 to 39d68b4

Posted by bf...@apache.org.
Project switcher: Fix select height


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

Branch: refs/heads/4.2
Commit: 2f3c9a085a284aea183355d987319833c1863d37
Parents: 33c144a
Author: Brian Federle <br...@citrix.com>
Authored: Tue Jul 2 12:49:30 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Mon Jul 8 11:33:28 2013 -0700

----------------------------------------------------------------------
 ui/css/cloudstack3.css | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2f3c9a08/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index b994c8a..e4459a1 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -9155,6 +9155,7 @@ div.ui-dialog div.multi-edit-add-list div.view div.data-table table.body tbody t
   margin-left: 53px;
   background: url(../images/bg-gradients.png) 0px -867px;
   padding: 5px;
+  height: 28px;
 }
 
 .project-switcher select:hover {