]> git.proxmox.com Git - proxmox-widget-toolkit.git/commitdiff
task view, progress: add taskDone callback
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 27 Mar 2018 12:00:49 +0000 (14:00 +0200)
committerDominik Csapak <d.csapak@proxmox.com>
Tue, 27 Mar 2018 12:03:14 +0000 (14:03 +0200)
and integrate it into the edit window

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
window/Edit.js
window/TaskViewer.js

index 75fce396a816366b81ae184eb4262ed48495b636..f72bee0d3c6f84ad5a6a934bbff39f70414bcb29 100644 (file)
@@ -40,6 +40,10 @@ Ext.define('Proxmox.window.Edit', {
 
     showTaskViewer: false,
 
+    // gets called if we have a progress bar or taskview and it detected that
+    // the task finished. function(success)
+    taskDone: Ext.emptyFn,
+
     // assign a reference from docs, to add a help button docked to the
     // bottom of the window. If undefined we magically fall back to the
     // onlineHelp of our first item, if set.
@@ -144,6 +148,7 @@ Ext.define('Proxmox.window.Edit', {
                    var viewerClass = me.showTaskViewer ? 'Viewer' : 'Progress';
                    var win = Ext.create('Proxmox.window.Task' + viewerClass, {
                        upid: upid,
+                       taskDone: me.taskDone,
                        listeners: {
                            destroy: function () {
                                me.close();
index c6bb370ff050529a9251d703da5141d454b79095..39f42ad39b5b1aab618d20a1b45c252877ba5d68 100644 (file)
@@ -2,6 +2,8 @@ Ext.define('Proxmox.window.TaskProgress', {
     extend: 'Ext.window.Window',
     alias: 'widget.proxmoxTaskProgress',
 
+    taskDone: Ext.emptyFn,
+
     initComponent: function() {
         var me = this;
 
@@ -44,6 +46,7 @@ Ext.define('Proxmox.window.TaskProgress', {
                    me.close();
                    Ext.Msg.alert('Task failed', exitstatus);
                }
+               me.taskDone(exitstatus == 'OK');
            }
        });
 
@@ -61,6 +64,7 @@ Ext.define('Proxmox.window.TaskProgress', {
                    text: gettext('Details'),
                    handler: function() {                       
                        var win = Ext.create('Proxmox.window.TaskViewer', { 
+                           taskDone: me.taskDone,
                            upid: me.upid
                        });
                        win.show();
@@ -87,6 +91,8 @@ Ext.define('Proxmox.window.TaskViewer', {
 
     extraTitle: '', // string to prepend after the generic task title
 
+    taskDone: Ext.emptyFn,
+
     initComponent: function() {
         var me = this;
 
@@ -195,6 +201,7 @@ Ext.define('Proxmox.window.TaskViewer', {
                logView.requestUpdate(undefined, true);
                logView.scrollToEnd = false;
                statstore.stopUpdate();
+               me.taskDone(statgrid.getObjectValue('exitstatus') == 'OK');
            }
 
            stop_btn1.setDisabled(status !== 'running');