浏览代码

[oozie] Added confirmation popups for some actions

abec 13 年之前
父节点
当前提交
f440beb

+ 33 - 5
apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinator.mako

@@ -78,10 +78,16 @@ ${ layout.menubar(section='dashboard') }
             <td>
             <form action="${ url('oozie:resubmit_coordinator', oozie_coord_id=oozie_coordinator.id) }" method="post">
             % if oozie_coordinator.is_running():
-              <button type="button" class="btn manage-oozie-job-btn" data-url="${ url('oozie:manage_oozie_jobs', job_id=oozie_coordinator.id, action='kill') }"
-                data-message="The coordinator was killed!">
-                ${ _('Kill') }
-              </button>
+              <a title="${_('Kill %(coordinator)s') % dict(coordinator=coordinator.id)}"
+                id="kill-coordinator"
+                class="btn small confirmationModal"
+                alt="${ _('Are you sure you want to kill coordinator %s?') % coordinator.id }"
+                href="javascript:void(0)"
+                data-url="${ url('oozie:manage_oozie_jobs', job_id=oozie_coordinator.id, action='kill') }"
+                data-message="${ _('The coordinator was killed!') }"
+                data-confirmation-message="${ _('Are you sure you\'d like to kill this job?') }">
+                  ${_('Kill')}
+              </a>
             % else:
               <button type="submit" class="btn">
                 ${ _('Resubmit') }
@@ -197,11 +203,33 @@ ${ layout.menubar(section='dashboard') }
   </div>
 
   <a href="${ url('oozie:list_oozie_coordinators') }" class="btn">${ _('Back') }</a>
+
+</div>
+
+<div id="confirmation" class="modal hide">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3 class="message"></h3>
+  </div>
+  <div class="modal-footer">
+    <a class="btn primary" href="javascript:void(0);">${_('Yes')}</a>
+    <a href="#" class="btn secondary" data-dismiss="modal">${_('No')}</a>
+  </div>
 </div>
 
 <script>
   $("a[data-row-selector='true']").jHueRowSelector();
-  $(".manage-oozie-job-btn").click(function() {
+
+  $(".confirmationModal").click(function(){
+    var _this = $(this);
+    $("#confirmation .message").text(_this.attr("data-confirmation-message"));
+    $("#confirmation").modal("show");
+    $("#confirmation a.primary").click(function() {
+      _this.trigger('confirmation');
+    });
+  });
+
+  $("#kill-coordinator").bind('confirmation', function() {
     var _this = this;
     $.post($(this).attr("data-url"),
       { 'notification': $(this).attr("data-message") },

+ 44 - 17
apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinators.mako

@@ -80,8 +80,14 @@ ${layout.menubar(section='dashboard')}
             <td>${ job.user }</td>
             <td><a href="${ job.get_absolute_url() }" data-row-selector="true"></a>${ job.id }</td>
             <td>
-              <a type="button" class="btn manage-oozie-job-btn" data-url="${ url('oozie:manage_oozie_jobs', job_id=job.id, action='kill') }">
-                ${ _('Kill') }
+              <a title="${_('Kill %(coordinator)s') % dict(coordinator=job.id)}"
+                class="btn small confirmationModal"
+                alt="${ _('Are you sure you want to kill coordinator %s?') % job.id }"
+                href="javascript:void(0)"
+                data-message="${ _('The coordinator was killed!') }"
+                data-confirmation-message="${ _('Are you sure you\'d like to kill this job?') }"
+                data-url="${ url('oozie:manage_oozie_jobs', job_id=job.id, action='kill') }">
+                  ${ _('Kill') }
               </button>
            </td>
           </tr>
@@ -132,6 +138,18 @@ ${layout.menubar(section='dashboard')}
 </div>
 
 
+<div id="confirmation" class="modal hide">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3 class="message"></h3>
+  </div>
+  <div class="modal-footer">
+    <a class="btn primary" href="javascript:void(0);">${_('Yes')}</a>
+    <a href="#" class="btn secondary" data-dismiss="modal">${_('No')}</a>
+  </div>
+</div>
+
+
 <script src="/static/ext/js/datatables-paging-0.1.js" type="text/javascript" charset="utf-8"></script>
 
 <script type="text/javascript" charset="utf-8">
@@ -223,21 +241,30 @@ ${layout.menubar(section='dashboard')}
 
     $("a[data-row-selector='true']").jHueRowSelector();
 
-    $(".manage-oozie-job-btn").click(function() {
-        // are you sure?
-        var row = $(this).closest("tr");
-        $.post($(this).attr("data-url"),
-           function(response) {
-             if (response['status'] != 0) {
-               $.jHueNotify.error('${ _('Problem :') }' + response['data']);
-             } else {
-               $.jHueNotify.info('${ _('Killed !') }');
-               row.remove();
-             }
-           }
-         );
-         return false;
-     });
+    $(".confirmationModal").click(function(){
+      var _this = $(this);
+      $("#confirmation .message").text(_this.attr("data-confirmation-message"));
+      $("#confirmation").modal("show");
+      $("#confirmation a.primary").click(function() {
+        _this.trigger('confirmation');
+      });
+    });
+
+    $(".confirmationModal").bind('confirmation', function() {
+      var _this = this;
+      $.post($(this).attr("data-url"),
+        { 'notification': $(this).attr("data-message") },
+        function(response) {
+          if (response['status'] != 0) {
+            $.jHueNotify.error("${ _('Problem: ') }" + response['data']);
+          } else {
+            window.location.reload();
+          }
+        }
+      );
+      return false;
+    });
+
   });
 </script>
 

+ 31 - 5
apps/oozie/src/oozie/templates/dashboard/list_oozie_workflow.mako

@@ -114,10 +114,16 @@ ${ layout.menubar(section='dashboard') }
     <div class="span3">
       <form action="${ url('oozie:resubmit_workflow', oozie_wf_id=oozie_workflow.id) }" method="post">
       % if oozie_workflow.is_running():
-        <button type="button" class="btn manage-oozie-job-btn" data-url="${ url('oozie:manage_oozie_jobs', job_id=oozie_workflow.id, action='kill') }"
-            data-message="The workflow was killed!">
-          ${ _('Kill') }
-        </button>
+        <a title="${_('Kill %(workflow)s') % dict(workflow=oozie_workflow.id)}"
+          id="kill-workflow"
+          class="btn small confirmationModal"
+          alt="${ _('Are you sure you want to kill workflow %s?') %  oozie_workflow.id }"
+          href="javascript:void(0)"
+          data-url="${ url('oozie:manage_oozie_jobs', job_id=oozie_workflow.id, action='kill') }"
+          data-message="${ _('The workflow was killed!') }"
+          data-confirmation-message="${ _('Are you sure you\'d like to kill this job?') }">
+            ${_('Kill')}
+        </a>
       % else:
         <button type="submit" class="btn">
           ${ _('Resubmit') }
@@ -264,6 +270,16 @@ ${ layout.menubar(section='dashboard') }
   <a class="btn" onclick="history.back()">${ _('Back') }</a>
 </div>
 
+<div id="confirmation" class="modal hide">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3 class="message"></h3>
+  </div>
+  <div class="modal-footer">
+    <a class="btn primary" href="javascript:void(0);">${_('Yes')}</a>
+    <a href="#" class="btn secondary" data-dismiss="modal">${_('No')}</a>
+  </div>
+</div>
 
 <script src="/static/ext/js/datatables-paging-0.1.js" type="text/javascript" charset="utf-8"></script>
 
@@ -272,7 +288,17 @@ ${ layout.menubar(section='dashboard') }
     $(".action-link").click(function(){
       window.location = $(this).attr('data-edit');
     });
-    $(".manage-oozie-job-btn").click(function() {
+
+    $(".confirmationModal").click(function(){
+      var _this = $(this);
+      $("#confirmation .message").text(_this.attr("data-confirmation-message"));
+      $("#confirmation").modal("show");
+      $("#confirmation a.primary").click(function() {
+        _this.trigger('confirmation');
+      });
+    });
+
+    $("#kill-workflow").bind('confirmation', function() {
       var _this = this;
       $.post($(this).attr("data-url"),
         { 'notification': $(this).attr("data-message") },

+ 43 - 16
apps/oozie/src/oozie/templates/dashboard/list_oozie_workflows.mako

@@ -80,9 +80,15 @@ ${ layout.menubar(section='dashboard') }
             <td>${ job.user }</td>
             <td><a href="${ job.get_absolute_url() }" data-row-selector="true"></a>${ job.id }</td>
             <td>
-              <a type="button" class="btn manage-oozie-job-btn" data-url="${ url('oozie:manage_oozie_jobs', job_id=job.id, action='kill') }">
-                ${ _('Kill') }
-              </button>
+              <a title="${_('Kill %(workflow)s') % dict(workflow=job.id)}"
+                class="btn small confirmationModal"
+                alt="${ _('Are you sure you want to kill workflow %s?') %  job.id }"
+                href="javascript:void(0)"
+                data-url="${ url('oozie:manage_oozie_jobs', job_id=job.id, action='kill') }"
+                data-message="${ _('The workflow was killed!') }"
+                data-confirmation-message="${ _('Are you sure you\'d like to kill this job?') }">
+                  ${ _('Kill') }
+              </a>
            </td>
           </tr>
         % endfor
@@ -132,6 +138,18 @@ ${ layout.menubar(section='dashboard') }
 </div>
 
 
+<div id="confirmation" class="modal hide">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3 class="message"></h3>
+  </div>
+  <div class="modal-footer">
+    <a class="btn primary" href="javascript:void(0);">${_('Yes')}</a>
+    <a href="#" class="btn secondary" data-dismiss="modal">${_('No')}</a>
+  </div>
+</div>
+
+
 <script src="/static/ext/js/datatables-paging-0.1.js" type="text/javascript" charset="utf-8"></script>
 
 <script type="text/javascript" charset="utf-8">
@@ -222,21 +240,30 @@ ${ layout.menubar(section='dashboard') }
 
     $("a[data-row-selector='true']").jHueRowSelector();
 
-    $(".manage-oozie-job-btn").click(function() {
-       // are you sure?
-       var row = $(this).closest("tr");
-       $.post($(this).attr("data-url"),
-          function(response) {
-            if (response['status'] != 0) {
-              $.jHueNotify.error('${ _('Problem :') }' + response['data']);
-            } else {
-              $.jHueNotify.info('${ _('Killed !') }');
-              row.remove();
-            }
+    $(".confirmationModal").click(function(){
+      var _this = $(this);
+      $("#confirmation .message").text(_this.attr("data-confirmation-message"));
+      $("#confirmation").modal("show");
+      $("#confirmation a.primary").click(function() {
+        _this.trigger('confirmation');
+      });
+    });
+
+    $(".confirmationModal").bind('confirmation', function() {
+      var _this = this;
+      $.post($(this).attr("data-url"),
+        { 'notification': $(this).attr("data-message") },
+        function(response) {
+          if (response['status'] != 0) {
+            $.jHueNotify.error("${ _('Problem: ') }" + response['data']);
+          } else {
+            window.location.reload();
           }
-        );
-        return false;
+        }
+      );
+      return false;
     });
+
   });
 </script>
 

+ 30 - 4
apps/oozie/src/oozie/templates/editor/edit_workflow.mako

@@ -180,24 +180,50 @@ ${ layout.menubar(section='workflows') }
 </div>
 
 
+<div id="confirmation" class="modal hide fade">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3 class="message"></h3>
+  </div>
+  <div class="modal-footer">
+    <a class="btn primary" href="javascript:void(0);">${_('Yes')}</a>
+    <a href="#" class="btn secondary" data-dismiss="modal">${_('No')}</a>
+  </div>
+</div>
+
+
 <div id="modal-window" class="modal hide fade"></div>
 
 
 <style type="text/css">
-  #modal-window .modal-content {
-    height: 300px;
-    overflow: auto;
-  }
+modal-window .modal-content {
+  height: 300px;
+  overflow: auto;
+}
 </style>
 
 <script src="/static/ext/js/knockout-2.0.0.js" type="text/javascript" charset="utf-8"></script>
 
 <script type="text/javascript">
+  confirmed = false;
   $(document).ready(function(){
     $(".action-link").click(function(){
       window.location = $(this).attr('data-edit');
     });
 
+    $("*[name=delete_action]").click(function(){
+      if (!confirmed) {
+        var _this = $(this);
+        $("#confirmation .message").text('${ _("Are you sure you would like to delete this action?") }');
+        $("#confirmation").modal("show");
+        $("#confirmation a.primary").click(function() {
+          confirmed = true;
+          _this.trigger('click');
+        });
+      }
+      return confirmed;
+    });
+
     $(".modalWindow").click(function(){
       var _this = $(this);
       $.ajax({