Преглед на файлове

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 години
родител
ревизия
a56da26

+ 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'
           });
         }
       });