Browse Source

[oozie] Cleaning up the UI

Removing unused buttons
Moving toggle for now into Settings and do not persist its state
Adding links to script files when possible
Romain Rigaux 11 years ago
parent
commit
8660e83c6b

+ 13 - 19
apps/oozie/src/oozie/templates/editor/workflow_editor.mako

@@ -142,20 +142,7 @@ ${ commonheader(_("Workflow Editor"), "Oozie", user, "40px") | n,unicode }
 
 
 <div class="search-bar">
 <div class="search-bar">
   <div class="pull-right" style="padding-right:50px">
   <div class="pull-right" style="padding-right:50px">
-    [
-    <a title="${ _('Gen XML') }" rel="tooltip" data-placement="bottom" data-bind="click: gen_xml, css: {'btn': true}">
-      <i class="fa fa-fw fa-file-code-o"></i>
-    </a>
-    <a title="${ _('Import workflows') }" rel="tooltip" data-placement="bottom" data-bind="click: import_workflows, css: {'btn': true}">
-      <i class="fa fa-fw fa-download"></i>
-    </a>
-    <a title="${ _('Toggle arrows') }" rel="tooltip" data-placement="bottom" data-bind="click: toggleArrows, css: {'btn': true, 'btn-inverse': hasArrows}">
-      <i class="fa fa-fw fa-long-arrow-down"></i>
-    </a>
-    ]
 
 
-    &nbsp;&nbsp;&nbsp;
-    
     <a title="${ _('Submit') }" rel="tooltip" data-placement="bottom" data-bind="click: showSubmitPopup, css: {'btn': true}">
     <a title="${ _('Submit') }" rel="tooltip" data-placement="bottom" data-bind="click: showSubmitPopup, css: {'btn': true}">
       <i class="fa fa-fw fa-play"></i>
       <i class="fa fa-fw fa-play"></i>
     </a>
     </a>
@@ -329,8 +316,10 @@ ${ commonheader(_("Workflow Editor"), "Oozie", user, "40px") | n,unicode }
 </script>
 </script>
 
 
 <script type="text/html" id="widget-template">
 <script type="text/html" id="widget-template">
-  <div data-bind="attr: {'id': 'wdg_'+ id(),}, css: klass() + (ooziePropertiesExpanded()?' expanded-widget':''), draggable: {data: $data, isEnabled: true, options: {'handle': '.move-widget', 'opacity': 0.7, 'refreshPositions': true, 'start': function(event, ui){ $root.setCurrentlyDraggedWidget($data, event.toElement); }, 'stop': function(event, ui){ $root.enableSideDrop($data); }, 'helper': function(event){lastWindowScrollPosition = $(window).scrollTop();  var _par = $('<div>');_par.addClass('card card-widget');var _title = $('<h2>');_title.addClass('card-heading simple');_title.text($(event.currentTarget).find('h2').text());_title.appendTo(_par);_par.css('minHeight', '10px');_par.width(120);return _par;}}}">
-    <h2 class="card-heading simple" data-bind="visible: widgetType() != 'start-widget' && widgetType() != 'end-widget'  && id() != '17c9c895-5a16-7443-bb81-f34b30b21548'">
+  <div data-bind="attr: {'id': 'wdg_'+ id(),}, css: klass() + (ooziePropertiesExpanded()?' expanded-widget':''),
+      draggable: {data: $data, isEnabled: true, options: {'handle': '.move-widget', 'opacity': 0.7, 'refreshPositions': true, 'start': function(event, ui){ $root.setCurrentlyDraggedWidget($data, event.toElement); }, 'stop': function(event, ui){ $root.enableSideDrop($data); }, 'helper': function(event){lastWindowScrollPosition = $(window).scrollTop();  var _par = $('<div>');_par.addClass('card card-widget');var _title = $('<h2>');_title.addClass('card-heading simple');_title.text($(event.currentTarget).find('h2').text());_title.appendTo(_par);_par.css('minHeight', '10px');_par.width(120);return _par;}}}">
+    <h2 class="card-heading simple" data-bind="visible: widgetType() != 'start-widget' && widgetType() != 'end-widget' && 
+        id() != '17c9c895-5a16-7443-bb81-f34b30b21548' && (['fork-widget', 'join-widget', 'decision-widget'].indexOf(widgetType()) == -1 || $root.isEditing())">
       
       
       <span data-bind="visible: $root.isEditing() && oozieMovable() && ! oozieExpanded() && ! ooziePropertiesExpanded() && $root.newAction() == null">
       <span data-bind="visible: $root.isEditing() && oozieMovable() && ! oozieExpanded() && ! ooziePropertiesExpanded() && $root.newAction() == null">
         <a href="javascript:void(0)" class="move-widget"><i class="fa fa-arrows"></i></a>
         <a href="javascript:void(0)" class="move-widget"><i class="fa fa-arrows"></i></a>
@@ -429,7 +418,7 @@ ${ commonheader(_("Workflow Editor"), "Oozie", user, "40px") | n,unicode }
   <!-- ko if: $root.workflow.getNodeById(id()) -->
   <!-- ko if: $root.workflow.getNodeById(id()) -->
   <div class="row-fluid" data-bind="with: $root.workflow.getNodeById(id())" style="min-height: 40px">
   <div class="row-fluid" data-bind="with: $root.workflow.getNodeById(id())" style="min-height: 40px">
     <div class="big-icon"><i class="fa fa-sitemap"></i></div>
     <div class="big-icon"><i class="fa fa-sitemap"></i></div>
-    <div data-bind="visible: $root.isEditing" style="padding: 10px">
+    <div data-bind="visible: $root.isEditing" style="padding-left: 10px; padding-bottom: 10px">
       <a class="pointer" data-bind="click: function() { $root.convertToDecision($parent, $data) }">${_('Convert to Decision')} <i class="fa fa-wrench"></i></a>
       <a class="pointer" data-bind="click: function() { $root.convertToDecision($parent, $data) }">${_('Convert to Decision')} <i class="fa fa-wrench"></i></a>
     </div>
     </div>
   </div>
   </div>
@@ -472,7 +461,7 @@ ${ commonheader(_("Workflow Editor"), "Oozie", user, "40px") | n,unicode }
 <script type="text/html" id="kill-widget">
 <script type="text/html" id="kill-widget">
   <!-- ko if: $root.workflow.getNodeById(id()) -->
   <!-- ko if: $root.workflow.getNodeById(id()) -->
   <div class="row-fluid" data-bind="with: $root.workflow.getNodeById(id())" style="min-height: 40px">
   <div class="row-fluid" data-bind="with: $root.workflow.getNodeById(id())" style="min-height: 40px">
-    <div class="big-icon" data-bind="visible: id() == '17c9c895-5a16-7443-bb81-f34b30b21548'"><i class="fa fa-stop"></i></div>
+    <div class="big-icon" data-bind="visible: id() == '17c9c895-5a16-7443-bb81-f34b30b21548'" title="${ _('It is where we finish if failure!') }"><i class="fa fa-stop"></i></div>
 
 
     <div data-bind="visible: $root.isEditing">
     <div data-bind="visible: $root.isEditing">
       <div data-bind="visible: $parent.ooziePropertiesExpanded">
       <div data-bind="visible: $parent.ooziePropertiesExpanded">
@@ -488,7 +477,7 @@ ${ commonheader(_("Workflow Editor"), "Oozie", user, "40px") | n,unicode }
 <script type="text/html" id="start-widget">
 <script type="text/html" id="start-widget">
   <!-- ko if: $root.workflow.getNodeById(id()) -->
   <!-- ko if: $root.workflow.getNodeById(id()) -->
   <div class="row-fluid" data-bind="with: $root.workflow.getNodeById(id())" style="min-height: 40px;">
   <div class="row-fluid" data-bind="with: $root.workflow.getNodeById(id())" style="min-height: 40px;">
-    <div class="big-icon"><i class="fa fa-flag-checkered"></i></div>
+    <div class="big-icon" title="${ _('It is where we start!') }"><i class="fa fa-flag-checkered"></i></div>
   </div>
   </div>
   <!-- /ko -->
   <!-- /ko -->
 </script>
 </script>
@@ -497,7 +486,7 @@ ${ commonheader(_("Workflow Editor"), "Oozie", user, "40px") | n,unicode }
 <script type="text/html" id="end-widget">
 <script type="text/html" id="end-widget">
   <!-- ko if: $root.workflow.getNodeById(id()) -->
   <!-- ko if: $root.workflow.getNodeById(id()) -->
   <div class="row-fluid" data-bind="with: $root.workflow.getNodeById(id())" style="min-height: 40px">
   <div class="row-fluid" data-bind="with: $root.workflow.getNodeById(id())" style="min-height: 40px">
-    <div class="big-icon"><i class="fa fa-dot-circle-o"></i></div>
+    <div class="big-icon" title="${ _('It is where we successfully finish!') }"><i class="fa fa-dot-circle-o"></i></div>
   </div>
   </div>
   <!-- /ko -->
   <!-- /ko -->
 </script>
 </script>
@@ -1553,6 +1542,11 @@ ${ commonheader(_("Workflow Editor"), "Oozie", user, "40px") | n,unicode }
         <i class="fa fa-plus"></i> ${ _('Add property') }
         <i class="fa fa-plus"></i> ${ _('Add property') }
       </a>
       </a>
 
 
+      <h4>${ _("Toggle arrows") }</h4>
+      <a title="${ _('Toggle arrow showing') }" rel="tooltip" data-placement="bottom" data-bind="click: toggleArrows, css: {'btn': true, 'btn-inverse': hasArrows}">
+        <i class="fa fa-fw fa-long-arrow-down"></i>
+      </a>
+
       <h4>${ _("Job XML") }</h4>
       <h4>${ _("Job XML") }</h4>
       <input type="text" class="input-xlarge filechooser-input" data-bind="filechooser: $root.workflow.properties.job_xml"/>
       <input type="text" class="input-xlarge filechooser-input" data-bind="filechooser: $root.workflow.properties.job_xml"/>
 
 

+ 0 - 1
apps/oozie/src/oozie/urls.py

@@ -80,7 +80,6 @@ urlpatterns += patterns(
   url(r'^editor/workflow/parameters/$', 'workflow_parameters', name='workflow_parameters'),
   url(r'^editor/workflow/parameters/$', 'workflow_parameters', name='workflow_parameters'),
   url(r'^editor/workflow/action/parameters/$', 'action_parameters', name='action_parameters'),
   url(r'^editor/workflow/action/parameters/$', 'action_parameters', name='action_parameters'),
   url(r'^editor/workflow/gen_xml/$', 'gen_xml_workflow', name='gen_xml_workflow'), # Temporary
   url(r'^editor/workflow/gen_xml/$', 'gen_xml_workflow', name='gen_xml_workflow'), # Temporary
-  url(r'^editor/workflow/import_workflows/$', 'import_hue_3_7_workflows', name='import_hue_3_7_workflows'), # Temporary
   
   
   url(r'^editor/coordinator/list/$', 'list_editor_coordinators', name='list_editor_coordinators'),
   url(r'^editor/coordinator/list/$', 'list_editor_coordinators', name='list_editor_coordinators'),
   url(r'^editor/coordinator/edit/$', 'edit_coordinator', name='edit_coordinator'),
   url(r'^editor/coordinator/edit/$', 'edit_coordinator', name='edit_coordinator'),

+ 0 - 13
apps/oozie/src/oozie/views/editor2.py

@@ -267,19 +267,6 @@ def _submit_workflow(user, fs, jt, workflow, mapping):
   return redirect(reverse('oozie:list_oozie_workflow', kwargs={'job_id': job_id}))
   return redirect(reverse('oozie:list_oozie_workflow', kwargs={'job_id': job_id}))
 
 
 
 
-def import_hue_3_7_workflows(request):
-  response = {'status': -1}
-
-  try:
-    response['status'] = 0
-    response['json'] = import_workflows_from_hue_3_7().to_xml()
-  except Exception, e:
-    response['message'] = str(e)
-    
-  return HttpResponse(json.dumps(response), mimetype="application/json") 
-
-
-
 def list_editor_coordinators(request):
 def list_editor_coordinators(request):
   coordinators = Document2.objects.filter(type='oozie-coordinator2', owner=request.user)
   coordinators = Document2.objects.filter(type='oozie-coordinator2', owner=request.user)
 
 

+ 4 - 16
apps/oozie/static/js/workflow-editor.ko.js

@@ -218,7 +218,9 @@ var Workflow = function (vm, workflow) {
       success: function (data) {
       success: function (data) {
         if (data.status == 0) {
         if (data.status == 0) {
           viewModel.addActionProperties(data.properties);
           viewModel.addActionProperties(data.properties);
-          viewModel.addActionWorkflows(data.workflows);
+          if (data.workflows.length > 0) {
+            viewModel.addActionWorkflows(data.workflows);
+          }
           if (callback) {
           if (callback) {
             callback(widget);
             callback(widget);
           }
           }
@@ -435,7 +437,7 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
     }
     }
   });
   });
   self.toggleArrows = function () {
   self.toggleArrows = function () {
-    self.hasArrows(!self.hasArrows());
+    self.hasArrows(! self.hasArrows());
   };
   };
 
 
   self.newAction = ko.observable();
   self.newAction = ko.observable();
@@ -994,20 +996,6 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
     });
     });
   };
   };
 
 
-  self.import_workflows = function () {
-    $.post("/oozie/editor/workflow/import_workflows/", {
-    }, function (data) {
-      if (data.status == 0) {
-        console.log(data.json);
-      }
-      else {
-        $(document).trigger("error", data.message);
-      }
-    }).fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
-    });
-  };
-
   self.showSubmitPopup = function () {
   self.showSubmitPopup = function () {
     // If self.workflow.id() == null, need to save wf for now
     // If self.workflow.id() == null, need to save wf for now