Browse Source

HUE-6254 [jb] Initial restructure of the schedule page

Enrico Berti 8 years ago
parent
commit
5578fca
1 changed files with 104 additions and 87 deletions
  1. 104 87
      apps/jobbrowser/src/jobbrowser/templates/job_browser.mako

+ 104 - 87
apps/jobbrowser/src/jobbrowser/templates/job_browser.mako

@@ -808,106 +808,123 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
       Log (if external id) | Child jobs
       Log (if external id) | Child jobs
     </div>
     </div>
   </div>
   </div>
-  
+
 </script>
 </script>
 
 
 
 
 <script type="text/html" id="schedule-page">
 <script type="text/html" id="schedule-page">
-  ${ _('Id') } <span data-bind="text: id"></span>
-  ${ _('Name') } <span data-bind="text: name"></span>
-  ${ _('Type') } <span data-bind="text: type"></span>
-  ${ _('Status') } <span data-bind="text: status"></span>
-  ${ _('User') } <span data-bind="text: user"></span>
-  ${ _('Progress') } <span data-bind="text: progress"></span>
-  ${ _('Duration') } <span data-bind="text: duration"></span>
-  ${ _('Submitted') } <span data-bind="text: submitted"></span>
-
-
-  <br><br>
-  Variables<br>
-  Duration 8s<br>
-  nextTime<span data-bind="text: properties['nextTime']"></span><br>
-  total_actions<span data-bind="text: properties['total_actions']"></span><br>
-  endTime<span data-bind="text: properties['endTime']"></span><br>
-  <br><br>
-
-  <div class="progress-job progress pull-left" style="background-color: #FFF; width: 100%" data-bind="css: {'progress-warning': progress() < 100, 'progress-success': progress() === 100}">
-    <div class="bar" data-bind="style: {'width': progress() + '%'}"></div>
-  </div>
 
 
-  <div data-bind="template: { name: 'job-actions' }"></div>
-
-  <br>
+  <div class="row-fluid">
+    <div class="span2">
+      <div class="sidebar-nav">
+        <ul class="nav nav-list">
+          <li class="nav-header">${ _('Id') }</li>
+          <li><span data-bind="text: id"></span></li>
+          <li class="nav-header">${ _('Name') }</li>
+          <li><span data-bind="text: name"></span></li>
+          <li class="nav-header">${ _('Type') }</li>
+          <li><span data-bind="text: type"></span></li>
+          <li class="nav-header">${ _('Status') }</li>
+          <li><span data-bind="text: status"></span></li>
+          <li class="nav-header">${ _('User') }</li>
+          <li><span data-bind="text: user"></span></li>
+          <li class="nav-header">${ _('Progress') }</li>
+          <li><span data-bind="text: progress"></span></li>
+          <li class="nav-header">${ _('Progress') }</li>
+          <li><span data-bind="text: progress"></span></li>
+          <li>
+            <div class="progress-job progress" style="background-color: #FFF; width: 100%" data-bind="css: {'progress-warning': isRunning(), 'progress-success': apiStatus() === 'SUCCEEDED', 'progress-danger': apiStatus() === 'FAILED'}">
+              <div class="bar" data-bind="style: {'width': progress() + '%'}"></div>
+            </div>
+          </li>
+          <li class="nav-header">${ _('Duration') }</li>
+          <li><span data-bind="text: duration"></span></li>
+          <li class="nav-header">${ _('Submitted') }</li>
+          <li><span data-bind="text: submitted"></span></li>
+          <li class="nav-header">${ _('Next Run') }</li>
+          <li><span data-bind="text: properties['nextTime']"></span></li>
+          <li class="nav-header">${ _('Total Actions') }</li>
+          <li><span data-bind="text: properties['total_actions']"></span></li>
+          <li class="nav-header">${ _('End time') }</li>
+          <li><span data-bind="text: properties['endTime']"></span></li>
+        </ul>
+      </div>
+    </div>
+    <div class="span10">
+      <div class="pull-right" data-bind="template: { name: 'job-actions' }"></div>
+      <div class="clearfix"></div>
 
 
-  <ul class="nav nav-tabs">
-    <li class="active"><a href="#schedule-page-task" data-toggle="tab">${ _('Tasks') }</a></li>
-    <li><a href="#schedule-page-logs" data-toggle="tab">${ _('Logs') }</a></li>
-    <li><a href="#schedule-page-metadata" data-bind="click: function(){ fetchProfile('properties'); $('a[href=\'#schedule-page-metadata\']').tab('show'); }">${ _('Properties') }</a></li>
-    <li><a href="#schedule-page-xml" data-bind="click: function(){ fetchProfile('xml'); $('a[href=\'#schedule-page-xml\']').tab('show'); }">${ _('XML') }</a></li>
-  </ul>
+      <ul class="nav nav-tabs">
+        <li class="active"><a href="#schedule-page-task" data-toggle="tab">${ _('Tasks') }</a></li>
+        <li><a href="#schedule-page-logs" data-toggle="tab">${ _('Logs') }</a></li>
+        <li><a href="#schedule-page-metadata" data-bind="click: function(){ fetchProfile('properties'); $('a[href=\'#schedule-page-metadata\']').tab('show'); }">${ _('Properties') }</a></li>
+        <li><a href="#schedule-page-xml" data-bind="click: function(){ fetchProfile('xml'); $('a[href=\'#schedule-page-xml\']').tab('show'); }">${ _('XML') }</a></li>
+      </ul>
 
 
-  <div class="tab-content">
-    <div class="tab-pane active" id="schedule-page-calendar">
-      <!-- ko with: coordinatorActions() -->
-      <div data-bind="template: { name: 'job-actions' }"></div>
+      <div class="tab-content">
+        <div class="tab-pane active" id="schedule-page-calendar">
+          <!-- ko with: coordinatorActions() -->
+          <div data-bind="template: { name: 'job-actions' }"></div>
 
 
-      ${_('Filter')}
-      <input data-bind="value: textFilter" type="text" class="input-xlarge search-query" placeholder="${_('Filter by name')}">
+          ${_('Filter')}
+          <input data-bind="value: textFilter" type="text" class="input-xlarge search-query" placeholder="${_('Filter by name')}">
 
 
-      <span data-bind="foreach: statesValuesFilter">
-        <label class="checkbox">
-          <input type="checkbox" data-bind="checked: checked, attr: {id: name}">
-          <span data-bind="text: name, attr: {for: name}"></span>
-        </label>
-      </span>
+          <span data-bind="foreach: statesValuesFilter">
+            <label class="checkbox">
+              <input type="checkbox" data-bind="checked: checked, attr: {id: name}">
+              <span data-bind="text: name, attr: {for: name}"></span>
+            </label>
+          </span>
 
 
-      <table id="schedulesTable" class="datatables table table-condensed">
-        <thead>
-        <tr>
-          <th width="1%"><div class="select-all hueCheckbox fa"></div></th>
-          <th>${_('Status')}</th>
-          <th>${_('Title')}</th>
-          <th>${_('type')}</th>
-          <th>${_('errorMessage')}</th>
-          <th>${_('missingDependencies')}</th>
-          <th>${_('number')}</th>
-          <th>${_('errorCode')}</th>
-          <th>${_('externalId')}</th>
-          <th>${_('id')}</th>
-          <th>${_('lastModifiedTime')}</th>
-        </tr>
-        </thead>
-        <tbody data-bind="foreach: apps">
-          <tr data-bind="click: function() {  if (properties.externalId()) { $root.job().id(properties.externalId()); $root.job().fetchJob();} }">
-            <td>
-              <div class="hueCheckbox fa" data-bind="click: function() {}, clickBubble: false, multiCheck: '#schedulesTable', value: $data, hueChecked: $parent.selectedJobs"></div>
-            </td>
-            <td data-bind="text: properties.status"></td>
-            <td data-bind="text: properties.title"></td>
-            <td data-bind="text: properties.type"></td>
-            <td data-bind="text: properties.errorMessage"></td>
-            <td data-bind="text: properties.missingDependencies"></td>
-            <td data-bind="text: properties.number"></td>
-            <td data-bind="text: properties.errorCode"></td>
-            <td data-bind="text: properties.externalId"></td>
-            <td data-bind="text: properties.id"></td>
-            <td data-bind="text: properties.lastModifiedTime"></td>
-          </tr>
-        </tbody>
-      </table>
-      <!-- /ko -->
-    </div>
+          <table id="schedulesTable" class="datatables table table-condensed">
+            <thead>
+            <tr>
+              <th width="1%"><div class="select-all hueCheckbox fa"></div></th>
+              <th>${_('Status')}</th>
+              <th>${_('Title')}</th>
+              <th>${_('type')}</th>
+              <th>${_('errorMessage')}</th>
+              <th>${_('missingDependencies')}</th>
+              <th>${_('number')}</th>
+              <th>${_('errorCode')}</th>
+              <th>${_('externalId')}</th>
+              <th>${_('id')}</th>
+              <th>${_('lastModifiedTime')}</th>
+            </tr>
+            </thead>
+            <tbody data-bind="foreach: apps">
+              <tr data-bind="click: function() {  if (properties.externalId()) { $root.job().id(properties.externalId()); $root.job().fetchJob();} }">
+                <td>
+                  <div class="hueCheckbox fa" data-bind="click: function() {}, clickBubble: false, multiCheck: '#schedulesTable', value: $data, hueChecked: $parent.selectedJobs"></div>
+                </td>
+                <td data-bind="text: properties.status"></td>
+                <td data-bind="text: properties.title"></td>
+                <td data-bind="text: properties.type"></td>
+                <td data-bind="text: properties.errorMessage"></td>
+                <td data-bind="text: properties.missingDependencies"></td>
+                <td data-bind="text: properties.number"></td>
+                <td data-bind="text: properties.errorCode"></td>
+                <td data-bind="text: properties.externalId"></td>
+                <td data-bind="text: properties.id"></td>
+                <td data-bind="text: properties.lastModifiedTime"></td>
+              </tr>
+            </tbody>
+          </table>
+          <!-- /ko -->
+        </div>
 
 
-    <div class="tab-pane" id="schedule-page-logs">
-      <pre data-bind="html: logs"></pre>
-    </div>
+        <div class="tab-pane" id="schedule-page-logs">
+          <pre data-bind="html: logs"></pre>
+        </div>
 
 
-    <div class="tab-pane" id="schedule-page-metadata">
-      <pre data-bind="text: ko.toJSON(properties['properties'], null, 2)"></pre>
-    </div>
+        <div class="tab-pane" id="schedule-page-metadata">
+          <pre data-bind="text: ko.toJSON(properties['properties'], null, 2)"></pre>
+        </div>
 
 
-    <div class="tab-pane" id="schedule-page-xml">
-      <div data-bind="readonlyXML: properties['xml'], path: 'xml'"></div>
+        <div class="tab-pane" id="schedule-page-xml">
+          <div data-bind="readonlyXML: properties['xml'], path: 'xml'"></div>
+        </div>
+      </div>
     </div>
     </div>
   </div>
   </div>
 </script>
 </script>