浏览代码

AMBARI-4973. Mirroring: Cannot Suspend Dataset. (akovalenko)

Aleksandr Kovalenko 11 年之前
父节点
当前提交
c369133889

+ 0 - 14
ambari-web/app/controllers/main/mirroring/jobs_controller.js

@@ -31,20 +31,6 @@ App.MainDatasetJobsController = Em.Controller.extend({
         App.Dataset.find().findProperty('name', datasetName).get('datasetJobs') : [];
   }.property('content', 'isLoaded'),
 
-  actionDesc: function () {
-    var dataset_status = this.get('content.status');
-    if (dataset_status === "SCHEDULED") {
-      return "Suspend";
-    } else {
-      return "Schedule";
-    }
-  }.property('content.status'),
-
-  isScheduled: function () {
-    var dataset_status = this.get('content.status');
-    return dataset_status === "SCHEDULED";
-  }.property('content.status'),
-
   suspend: function () {
     App.ajax.send({
       name: 'mirroring.suspend_entity',

+ 1 - 1
ambari-web/app/models/dataset.js

@@ -47,7 +47,7 @@ App.Dataset = DS.Model.extend({
     return this.get('status') === 'SUSPENDED';
   }.property('status'),
 
-  isScheduled: function () {
+  isSubmitted: function () {
     return this.get('status') === 'SUBMITTED';
   }.property('status'),
 

+ 0 - 4
ambari-web/app/models/dataset_job.js

@@ -31,10 +31,6 @@ App.DataSetJob = DS.Model.extend({
     return this.get('status').toLowerCase().capitalize();
   }.property('status'),
 
-  isCompleted: function () {
-    return ['KILLED', 'FAILED', 'SUCCEEDED', 'ERROR'].contains(this.get('status'));
-  }.property('status'),
-
   isSuspended: function () {
     return this.get('status') === 'SUSPENDED';
   }.property('status'),

+ 6 - 5
ambari-web/app/templates/main/mirroring/jobs.hbs

@@ -48,7 +48,8 @@
                 {{t mirroring.dataset.schedule}}
               </a>
             </li>
-          {{else}}
+          {{/if}}
+          {{#if view.dataset.isRunning}}
             <li>
               <a href="javascript:void(null);" {{action suspend target="controller"}}>
                 {{t mirroring.dataset.suspend}}
@@ -67,7 +68,7 @@
           </li>
         </ul>
       </div>
-      <span {{bindAttr class=":label view.dataset.isRunning:label-info  view.dataset.isSuspended:label-warning  view.dataset.isScheduled:label-success :pull-right :dataset-status"}}>
+      <span {{bindAttr class=":label view.dataset.isRunning:label-info  view.dataset.isSuspended:label-warning  view.dataset.isSubmitted:label-success :pull-right :dataset-status"}}>
         {{view.dataset.statusFormatted}}</span>
     </div>
   {{/if}}
@@ -107,9 +108,7 @@
           <td>{{unbound job.startFormatted}}</td>
           <td>{{unbound job.endFormatted}}</td>
           <td>
-            {{#if job.isCompleted}}
-              {{job.statusFormatted}}
-            {{else}}
+            {{#if view.showActions}}
               <div class="btn-group display-inline-block">
                 <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
                   {{job.statusFormatted}}
@@ -130,6 +129,8 @@
                   </li>
                 </ul>
               </div>
+            {{else}}
+              {{job.statusFormatted}}
             {{/if}}
           </td>
           {{/view}}

+ 4 - 75
ambari-web/app/views/main/mirroring/jobs_view.js

@@ -64,7 +64,7 @@ App.MainDatasetJobsView = App.TableView.extend({
     fieldType: 'input-small',
     column: 1,
     onChangeValue: function () {
-      this.get('parentView').updateFilter(this.get('column'), this.get('value'), 'number');
+      this.get('parentView').updateFilter(this.get('column'), this.get('value'), 'string');
     }
   }),
 
@@ -107,78 +107,10 @@ App.MainDatasetJobsView = App.TableView.extend({
   JobView: Em.View.extend({
     content: null,
     tagName: 'tr',
-    canActionBeTaken: function () {
-      var job_status = this.get('content.status');
 
-      return job_status == "RUNNING" || job_status == "SUSPENDED";
-    }.property('content.status'),
-
-    isKilled: function () {
-      var job_status = this.get('content.status');
-      return job_status == 'KILLED';
-    }.property(),
-
-    statusClass: function () {
-      var job_status = this.get('content.status');
-      switch (job_status) {
-        case 'RUNNING' :
-          return "btn btn-success dropdown-toggle";
-          break;
-        case 'SUSPENDED' :
-          return "btn btn-warning dropdown-toggle";
-          break;
-        case 'SUCCEEDED' :
-          return "label label-success";
-          break;
-        case 'KILLED' :
-          return "label label-important";
-          break;
-        case 'WAITING' :
-          return "label";
-          break;
-        case 'FAILED' :
-        case 'ERROR' :
-          return "label label-important";
-          break;
-        default :
-          return "label";
-          break;
-      }
-    }.property('content.status'),
-
-    listOfOptions: function () {
-      var listOfActions = [];
-      var status = this.get('content.status');
-      switch (status) {
-        case 'RUNNING' :
-          listOfActions.push({title: 'Suspend', value: 'Suspend'});
-          listOfActions.push({title: 'Abort', value: 'Abort'});
-          break;
-        case 'SUSPENDED' :
-          listOfActions.push({title: 'Resume', value: 'Resume'});
-          listOfActions.push({title: 'Abort', value: 'Abort'});
-          break;
-      }
-      return listOfActions;
-    }.property('content.status'),
-
-    changeStatus: function (event) {
-      var selected = event.context;
-      var self = this;
-      App.showConfirmationPopup(function () {
-        switch (selected.title) {
-          case 'Suspend' :
-            self.set('content.status', 'SUSPENDED');
-            break;
-          case 'Resume' :
-            self.set('content.status', 'RUNNING');
-            break;
-          case 'Abort' :
-            self.set('content.status', 'KILLED');
-            break;
-        }
-      });
-    }
+    showActions: function () {
+      return ['RUNNING', 'SUSPENDED'].contains(this.get('content.status')) && App.get('isAdmin');
+    }.property('content.status')
   }),
 
   /**
@@ -192,7 +124,4 @@ App.MainDatasetJobsView = App.TableView.extend({
     associations[4] = 'statusFormatted';
     return associations;
   }.property()
-
-
-
 });