Browse Source

HUE-989 [oozie] Action management is broken

Fixed action buttons
Added delete confirmation
Disabled drag on action bar
Added bootstrap.min.js dependency to Jasmine test
Enrico Berti 13 năm trước cách đây
mục cha
commit
a56da26369

+ 18 - 9
apps/oozie/src/oozie/templates/editor/edit_workflow.mako

@@ -280,6 +280,8 @@ ${ layout.menubar(section='workflows') }
     <a href="#" class="close" data-dismiss="modal">&times;</a>
     <h3 class="message"></h3>
   </div>
+  <div class="modal-body">
+  </div>
   <div class="modal-footer">
     <a href="#" class="btn" data-dismiss="modal">${_('No')}</a>
     <a class="btn btn-primary" href="javascript:void(0);">${_('Yes')}</a>
@@ -332,8 +334,8 @@ ${ controls.decision_form(link_form, default_link_form, 'decision', True) }
       <div class="row-fluid node-action-bar">
         <div class="span12" style="text-align:right">
           <a class="btn btn-mini edit-node-link" title="${ _('Edit') }" rel="tooltip" data-bind="attr: { 'data-node-type': node_type() }"><i class="icon-pencil"></i></a>
-          <button class="btn btn-mini clone-node-btn" title="${ _('Clone') }" rel="tooltip"><i class="icon-retweet"></i></button>
-          <button class="btn btn-mini delete-node-btn" title="${ _('Delete') }" rel="tooltip"><i class="icon-remove"></i></button>
+          <a class="btn btn-mini clone-node-btn" title="${ _('Clone') }" rel="tooltip"><i class="icon-retweet"></i></a>
+          <a class="btn btn-mini delete-node-btn" title="${ _('Delete') }" rel="tooltip"><i class="icon-trash"></i></a>
           &nbsp;
         </div>
       </div>
@@ -615,13 +617,20 @@ $('#workflow').on('click', '.clone-node-btn', function(e) {
 
 $('#workflow').on('click', '.delete-node-btn', function(e) {
   var node = ko.contextFor(this).$data;
-
-  node.detach();
-  node.erase();
-
-  workflow.rebuild();
-
-  workflow.is_dirty( true );
+  $('#confirmation').find('h3').text('${ _('Confirm Delete') }');
+  $('#confirmation').find('.modal-body').html('${ _('Are you sure you want to delete ') }<strong>' + node.name() + '</strong>?');
+  $('#confirmation').find('.btn-primary').removeClass('btn-primary').addClass('btn-danger');
+  $('#confirmation').find('.btn-danger').on('click', function () {
+    node.detach();
+    node.erase();
+    workflow.rebuild();
+    workflow.is_dirty(true);
+    $('#confirmation').modal('hide');
+    $('#confirmation').find('h3').text('');
+    $('#confirmation').find('.modal-body').text('');
+    $('#confirmation').find('.btn-danger').removeClass('btn-danger').addClass('btn-primary');
+  });
+  $('#confirmation').modal('show');
 });
 
 /**

+ 1 - 0
apps/oozie/src/oozie/templates/editor/jasmine.mako

@@ -3,6 +3,7 @@
 <%block name="specs">
   <script src="/static/ext/js/knockout.mapping-2.3.2.js" type="text/javascript" charset="utf-8"></script>
   <script src="/static/ext/js/moment.min.js" type="text/javascript" charset="utf-8"></script>
+  <script src="/static/ext/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
   <script src="static/js/workflow.js" type="text/javascript" charset="utf-8"></script>
   <script src="static/jasmine/workflow.js" type="text/javascript" charset="utf-8"></script>
 </%block>

+ 3 - 2
apps/oozie/static/js/workflow.js

@@ -2095,14 +2095,15 @@ var WorkflowModule = function($, NodeModelChooser, Node, ForkNode, DecisionNode,
 
       self.el.find('.node-action').each(function(index, el) {
         if (!$(el).hasClass('ui-draggable')) {
-          $(el).css("cursor", "move");
+          $(el).find('.row-fluid').eq(0).css('cursor', 'move');
           $(el).draggable({
             containment: [ self.el.offset().left - 10, self.el.offset().top - 10,
                            self.el.offset().left + self.el.outerWidth(), self.el.offset().top + self.el.outerHeight() ],
             refreshPositions: true,
             revert: true,
             zIndex: 1000,
-            opacity: 0.45
+            opacity: 0.45,
+            cancel: '.node-action-bar'
           });
         }
       });