]> git.proxmox.com Git - pve-manager.git/commitdiff
ui: realm sync: add 'run now' button
authorDominik Csapak <d.csapak@proxmox.com>
Tue, 13 Jun 2023 08:44:01 +0000 (10:44 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 14 Jun 2023 15:23:22 +0000 (17:23 +0200)
by simply passing the sync job config to the 'sync' api endpoint, like
we do for vzdump jobs

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
www/manager6/dc/RealmSyncJob.js

index 9541d7324a114f4adfb88f8e1de2a509c80cc019..bb2e8d2f6b9af10a7ba05520a6f4706d0bdf318e 100644 (file)
@@ -35,6 +35,41 @@ Ext.define('PVE.dc.RealmSyncJobView', {
            });
        },
 
+       runNow: function() {
+           let me = this;
+           let view = me.getView();
+           let selection = view.getSelection();
+           if (!selection || selection.length < 1) {
+               return;
+           }
+
+           let params = selection[0].data;
+           let realm = params.realm;
+
+           let propertiesToDelete = ['comment', 'realm', 'id', 'type', 'schedule', 'last-run', 'next-run', 'enabled'];
+           for (const prop of propertiesToDelete) {
+               delete params[prop];
+           }
+
+           Proxmox.Utils.API2Request({
+               url: `/access/domains/${realm}/sync`,
+               params,
+               waitMsgTarget: view,
+               method: 'POST',
+               success: function(response, options) {
+                   let upid = response.result.data;
+                   let win = Ext.create('Proxmox.window.TaskProgress', {
+                       upid: upid,
+                       taskDone: () => { me.reload(); },
+                   });
+                   win.show();
+               },
+               failure: function(response, opts) {
+                   Ext.Msg.alert(gettext('Error'), response.htmlStatus);
+               },
+           });
+       },
+
        reload: function() {
            this.getView().getStore().load();
        },
@@ -110,6 +145,12 @@ Ext.define('PVE.dc.RealmSyncJobView', {
            baseurl: `/api2/extjs/cluster/jobs/realm-sync`,
            callback: 'reload',
        },
+       {
+           xtype: 'proxmoxButton',
+           handler: 'runNow',
+           disabled: true,
+           text: gettext('Run Now'),
+       },
     ],
 
     listeners: {