From ed65c1ca642f1d8d9f3faf620c191affecd70d54 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 13 Jun 2023 10:44:01 +0200 Subject: [PATCH] ui: realm sync: add 'run now' button by simply passing the sync job config to the 'sync' api endpoint, like we do for vzdump jobs Signed-off-by: Dominik Csapak --- www/manager6/dc/RealmSyncJob.js | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/www/manager6/dc/RealmSyncJob.js b/www/manager6/dc/RealmSyncJob.js index 9541d732..bb2e8d2f 100644 --- a/www/manager6/dc/RealmSyncJob.js +++ b/www/manager6/dc/RealmSyncJob.js @@ -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: { -- 2.39.5