Browse Source

HUE-5500 [responsive] Embeddable oozie bundle editor

Enrico Berti 9 years ago
parent
commit
e854665831

+ 17 - 13
apps/oozie/src/oozie/templates/editor2/bundle_editor.mako

@@ -21,10 +21,11 @@ from django.utils.translation import ugettext as _
 <%namespace name="dashboard" file="/common_dashboard.mako" />
 <%namespace name="layout" file="../navigation-bar.mako" />
 
-
+% if not is_embeddable:
 ${ commonheader(_("Bundle Editor"), "Oozie", user, request) | n,unicode }
+% endif
 
-<div id="editor">
+<div id="oozie_bundleComponents">
 
 <%def name="buttons()">
   <div class="pull-right" style="padding-right: 10px">
@@ -37,20 +38,14 @@ ${ commonheader(_("Bundle Editor"), "Oozie", user, request) | n,unicode }
       <i class="fa fa-play"></i>
     </a>
 
-    &nbsp;&nbsp;&nbsp;
-
     <a title="${ _('Edit') }" rel="tooltip" data-placement="bottom" data-bind="click: toggleEditing, css: {'btn': true, 'btn-inverse': isEditing}, visible: canEdit">
       <i class="fa fa-pencil"></i>
     </a>
 
-    &nbsp;&nbsp;&nbsp;
-
     <a title="${ _('Settings') }" rel="tooltip" data-placement="bottom" data-toggle="modal" data-target="#settingsModal" data-bind="css: {'btn': true}, visible: canEdit">
       <i class="fa fa-cog"></i>
     </a>
 
-    &nbsp;&nbsp;&nbsp;
-
     <a type="button" title="${ _('Save') }" rel="tooltip" data-placement="bottom" data-loading-text="${ _("Saving...") }" data-bind="click: $root.save, css: {'btn': true, 'disabled': $root.isSaving()}, visible: canEdit() && bundle.coordinators().length > 0">
       <i class="fa fa-save"></i>
     </a>
@@ -62,12 +57,9 @@ ${ commonheader(_("Bundle Editor"), "Oozie", user, request) | n,unicode }
       <i class="fa fa-users"></i>
     </a>
 
-    &nbsp;&nbsp;&nbsp;
-
     <a class="btn" href="${ url('oozie:new_bundle') }" title="${ _('New') }" rel="tooltip" data-placement="bottom" data-bind="css: {'btn': true}">
       <i class="fa fa-file-o"></i>
     </a>
-
   </div>
 </%def>
 
@@ -146,9 +138,17 @@ ${ layout.menubar(section='bundles', is_editor=True, pullright=buttons) }
 </div>
 
 
-<div id="chooseCoordinatorDemiModal" class="demi-modal fade" data-backdrop="false">
+<div id="chooseCoordinatorDemiModal" class="${ is_embeddable and 'modal' or 'demi-modal' } fade" data-backdrop="false">
+  %if is_embeddable:
+    <div class="modal-header">
+      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+      <h3>${ _('Choose a coordinator') }</h3>
+    </div>
+  %endif
   <div class="modal-body">
+    %if not is_embeddable:
     <a href="javascript: void(0)" data-dismiss="modal" class="pull-right"><i class="fa fa-times"></i></a>
+    %endif
     <div style="float: left; margin-right: 10px;text-align: center">
       <input type="text" data-bind="clearable: $root.coordinatorModalFilter, valueUpdate:'afterkeydown'" placeholder="${_('Filter coordinators')}" class="input" style="float: left" /><br/>
     </div>
@@ -168,7 +168,9 @@ ${ layout.menubar(section='bundles', is_editor=True, pullright=buttons) }
       </div>
     </div>
   </div>
+  %if not is_embeddable:
   <div><a class="pointer demi-modal-chevron" data-dismiss="modal"><i class="fa fa-chevron-up"></i></a></div>
+  %endif
 </div>
 
 
@@ -272,7 +274,7 @@ ${ dashboard.import_bindings() }
 
 <script type="text/javascript">
   var viewModel = new BundleEditorViewModel(${ bundle_json | n,unicode }, ${ coordinators_json | n,unicode }, ${ can_edit_json | n,unicode });
-  ko.applyBindings(viewModel, $("#editor")[0]);
+  ko.applyBindings(viewModel, $("#oozie_bundleComponents")[0]);
 
   viewModel.bundle.tracker().markCurrentStateAsClean();
 
@@ -340,4 +342,6 @@ ${ dashboard.import_bindings() }
   });
 </script>
 
+% if not is_embeddable:
 ${ commonfooter(request, messages) | n,unicode }
+% endif

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

@@ -746,6 +746,7 @@ def edit_bundle(request):
       'bundle_json': bundle.to_json_for_html(),
       'coordinators_json': json.dumps(coordinators, cls=JSONEncoderForHTML),
       'doc_uuid': doc.uuid if doc else '',
+      'is_embeddable': request.GET.get('is_embeddable', False),
       'can_edit_json': json.dumps(doc is None or doc.doc.get().is_editable(request.user))
   })
 

+ 3 - 1
desktop/core/src/desktop/templates/responsive.mako

@@ -201,7 +201,7 @@ ${ hueIcons.symbols() }
               <ul class="dropdown-menu">
                 <li><a href="javascript: void(0)" data-bind="click: function(){ onePageViewModel.currentApp('oozie_workflow') }"><img src="${ static('oozie/art/icon_oozie_workflow_48.png') }" class="app-icon"/> ${_('Workflow')}</a></li>
                 <li><a href="javascript: void(0)" data-bind="click: function(){ onePageViewModel.currentApp('oozie_coordinator') }"><img src="${ static('oozie/art/icon_oozie_coordinator_48.png') }" class="app-icon" /> ${_('Schedule')}</a></li>
-                <li><a href="javascript: void(0)" data-bind="click: function(){ onePageViewModel.currentApp('oozie_bundle') }"/> ${_('Bundle')}</a></li>
+                <li><a href="javascript: void(0)" data-bind="click: function(){ onePageViewModel.currentApp('oozie_bundle') }"/><img src="${ static('oozie/art/icon_oozie_bundle_48.png') }" class="app-icon" /> ${_('Bundle')}</a></li>
               </ul>
             </li>
           % endif
@@ -360,6 +360,7 @@ ${ hueIcons.symbols() }
       <div id="embeddable_search" class="embeddable"></div>
       <div id="embeddable_oozie_workflow" class="embeddable"></div>
       <div id="embeddable_oozie_coordinator" class="embeddable"></div>
+      <div id="embeddable_oozie_bundle" class="embeddable"></div>
       <div id="embeddable_jobbrowser" class="embeddable"></div>
       <div id="embeddable_filebrowser" class="embeddable"></div>
       <div id="embeddable_filebrowser_s3" class="embeddable"></div>
@@ -482,6 +483,7 @@ ${ assist.assistPanel() }
           search: '/search/embeddable/new_search',
           oozie_workflow: '/oozie/editor/workflow/new/?is_embeddable=true',
           oozie_coordinator: '/oozie/editor/coordinator/new/?is_embeddable=true',
+          oozie_bundle: '/oozie/editor/bundle/new/?is_embeddable=true',
           jobbrowser: '/jobbrowser/apps?is_embeddable=true',
           filebrowser: '/filebrowser/?is_embeddable=true',
           filebrowser_s3: '/filebrowser/view=S3A://?is_embeddable=true',