multiEdit: support validate on custom action

If requireValidation: true is set for a custom action, then only
perform action if multiEdit's form fields are valid. This does not
apply to clicking on existing rules' action buttons.

Syntax:

multiEdit: {
  fields: {
    testField: {
      custom: {
        requireValidation: true,
        ...
      },
      ...
    },
    ...
  }
}

Conflicts:
        ui/scripts/ui/widgets/multiEdit.js


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

Branch: refs/heads/autoscale
Commit: fff857674bca34c92a09ef6b11427b2bcb3f56e1
Parents: 7dbdf1f
Author: Brian Federle <[email protected]>
Authored: Tue Aug 7 13:45:37 2012 -0700
Committer: Brian Federle <[email protected]>
Committed: Tue Aug 7 13:53:53 2012 -0700

----------------------------------------------------------------------
 ui/scripts/ui/widgets/multiEdit.js |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/fff85767/ui/scripts/ui/widgets/multiEdit.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/multiEdit.js 
b/ui/scripts/ui/widgets/multiEdit.js
index cac0466..bc970ff 100644
--- a/ui/scripts/ui/widgets/multiEdit.js
+++ b/ui/scripts/ui/widgets/multiEdit.js
@@ -779,6 +779,9 @@
         $('<div>').addClass('button add-vm custom-action')
           .html(_l(field.custom.buttonLabel))
           .click(function() {
+            if (field.custom.requireValidation &&
+                !$multiForm.valid()) return false;
+            
             var formData = getMultiData($multi);
             
             field.custom.action({
@@ -791,6 +794,8 @@
                 }
               }
             });
+
+            return false;
           }).appendTo($td);
       } else if (field.addButton) {
         $addVM = $('<div>').addClass('button add-vm').html(

Reply via email to