all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup 1/2] api2/config/tape_backup_job: enable update api call
@ 2021-02-23 10:58 Dominik Csapak
  2021-02-23 10:58 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/BackupJobs: add CRUD functions Dominik Csapak
  2021-02-23 12:25 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] api2/config/tape_backup_job: enable update api call Dietmar Maurer
  0 siblings, 2 replies; 3+ messages in thread
From: Dominik Csapak @ 2021-02-23 10:58 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 src/api2/config/tape_backup_job.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/api2/config/tape_backup_job.rs b/src/api2/config/tape_backup_job.rs
index 8b898bf8..a9edc00f 100644
--- a/src/api2/config/tape_backup_job.rs
+++ b/src/api2/config/tape_backup_job.rs
@@ -217,7 +217,7 @@ pub fn delete_tape_backup_job(
 
 const ITEM_ROUTER: Router = Router::new()
     .get(&API_METHOD_READ_TAPE_BACKUP_JOB)
-//.put(&API_METHOD_UPDATE_TAPE_BACKUP_JOB)
+    .put(&API_METHOD_UPDATE_TAPE_BACKUP_JOB)
     .delete(&API_METHOD_DELETE_TAPE_BACKUP_JOB);
 
 pub const ROUTER: Router = Router::new()
-- 
2.20.1





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/BackupJobs: add CRUD functions
  2021-02-23 10:58 [pbs-devel] [PATCH proxmox-backup 1/2] api2/config/tape_backup_job: enable update api call Dominik Csapak
@ 2021-02-23 10:58 ` Dominik Csapak
  2021-02-23 12:25 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] api2/config/tape_backup_job: enable update api call Dietmar Maurer
  1 sibling, 0 replies; 3+ messages in thread
From: Dominik Csapak @ 2021-02-23 10:58 UTC (permalink / raw)
  To: pbs-devel

similar to the other jobs grids (add/edit/remove etc.)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 www/Makefile                     |   1 +
 www/tape/BackupJobs.js           | 106 ++++++++++++++++++++++++++++++-
 www/tape/window/TapeBackupJob.js |  82 ++++++++++++++++++++++++
 3 files changed, 188 insertions(+), 1 deletion(-)
 create mode 100644 www/tape/window/TapeBackupJob.js

diff --git a/www/Makefile b/www/Makefile
index 9f9b46aa..11858f98 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -23,6 +23,7 @@ TAPE_UI_FILES=						\
 	tape/window/LabelMedia.js			\
 	tape/window/PoolEdit.js				\
 	tape/window/TapeBackup.js			\
+	tape/window/TapeBackupJob.js			\
 	tape/window/TapeRestore.js			\
 	tape/BackupOverview.js				\
 	tape/ChangerConfig.js				\
diff --git a/www/tape/BackupJobs.js b/www/tape/BackupJobs.js
index 7c23864f..2532fb38 100644
--- a/www/tape/BackupJobs.js
+++ b/www/tape/BackupJobs.js
@@ -34,6 +34,75 @@ Ext.define('PBS.config.TapeBackupJobView', {
     controller: {
 	xclass: 'Ext.app.ViewController',
 
+	addJob: function() {
+	    let me = this;
+	    Ext.create('PBS.TapeManagement.BackupJobEdit', {
+		autoShow: true,
+		listeners: {
+		    destroy: function() {
+			me.reload();
+		    },
+		},
+	    }).show();
+	},
+
+	editJob: function() {
+	    let me = this;
+	    let view = me.getView();
+	    let selection = view.getSelection();
+	    if (!selection || selection.length < 1) {
+		return;
+	    }
+
+	    Ext.create('PBS.TapeManagement.BackupJobEdit', {
+		id: selection[0].data.id,
+		autoShow: true,
+		listeners: {
+		    destroy: function() {
+			me.reload();
+		    },
+		},
+	    }).show();
+	},
+
+	openTaskLog: function() {
+	    let me = this;
+	    let view = me.getView();
+	    let selection = view.getSelection();
+	    if (selection.length < 1) return;
+
+	    let upid = selection[0].data['last-run-upid'];
+	    if (!upid) return;
+
+	    Ext.create('Proxmox.window.TaskViewer', {
+		upid,
+	    }).show();
+	},
+
+	runJob: function() {
+	    let me = this;
+	    let view = me.getView();
+	    let selection = view.getSelection();
+	    if (selection.length < 1) return;
+
+	    let id = selection[0].data.id;
+	    Proxmox.Utils.API2Request({
+		method: 'POST',
+		url: `/tape/backup/${id}`,
+		success: function(response, opt) {
+		    Ext.create('Proxmox.window.TaskViewer', {
+		        upid: response.result.data,
+		        taskDone: function(success) {
+			    me.reload();
+		        },
+		    }).show();
+		},
+		failure: function(response, opt) {
+		    Ext.Msg.alert(gettext('Error'), response.htmlStatus);
+		},
+	    });
+	},
+
 	startStore: function() { this.getView().getStore().rstore.startUpdate(); },
 
 	stopStore: function() { this.getView().getStore().rstore.stopUpdate(); },
@@ -48,7 +117,7 @@ Ext.define('PBS.config.TapeBackupJobView', {
     listeners: {
 	activate: 'startStore',
 	deactivate: 'stopStore',
-	//itemdblclick: 'editSyncJob',
+	itemdblclick: 'editJob',
     },
 
     store: {
@@ -68,6 +137,41 @@ Ext.define('PBS.config.TapeBackupJobView', {
 	trackOver: false,
     },
 
+    tbar: [
+	{
+	    xtype: 'proxmoxButton',
+	    text: gettext('Add'),
+	    selModel: false,
+	    handler: 'addJob',
+	},
+	{
+	    xtype: 'proxmoxButton',
+	    text: gettext('Edit'),
+	    handler: 'editJob',
+	    disabled: true,
+	},
+	{
+	    xtype: 'proxmoxStdRemoveButton',
+	    baseurl: '/config/tape-backup-job/',
+	    confirmMsg: gettext('Remove entry?'),
+	    callback: 'reload',
+	},
+	'-',
+	{
+	    xtype: 'proxmoxButton',
+	    text: gettext('Show Log'),
+	    handler: 'openTaskLog',
+	    enableFn: (rec) => !!rec.data['last-run-upid'],
+	    disabled: true,
+	},
+	{
+	    xtype: 'proxmoxButton',
+	    text: gettext('Run now'),
+	    handler: 'runJob',
+	    disabled: true,
+	},
+    ],
+
     columns: [
 	{
 	    header: gettext('Job ID'),
diff --git a/www/tape/window/TapeBackupJob.js b/www/tape/window/TapeBackupJob.js
new file mode 100644
index 00000000..9902a454
--- /dev/null
+++ b/www/tape/window/TapeBackupJob.js
@@ -0,0 +1,82 @@
+Ext.define('PBS.TapeManagement.BackupJobEdit', {
+    extend: 'Proxmox.window.Edit',
+    alias: 'widget.pbsTapeBackupJobEdit',
+    mixins: ['Proxmox.Mixin.CBind'],
+
+    userid: undefined,
+
+    isAdd: true,
+
+    subject: gettext('Tape Backup Job'),
+
+    fieldDefaults: { labelWidth: 120 },
+
+    cbindData: function(initialConfig) {
+	let me = this;
+
+	let baseurl = '/api2/extjs/config/tape-backup-job';
+	let id = initialConfig.id;
+
+	me.isCreate = !id;
+	me.url = id ? `${baseurl}/${id}` : baseurl;
+	me.method = id ? 'PUT' : 'POST';
+	me.autoLoad = !!id;
+	me.scheduleValue = id ? null : 'daily';
+	me.authid = id ? null : Proxmox.UserName;
+	me.editDatastore = me.datastore === undefined && me.isCreate;
+	return { };
+    },
+
+    items: {
+	xtype: 'inputpanel',
+	onGetValues: function(values) {
+	    let me = this;
+
+	    if (!values.id && me.up('pbsTapeBackupJobEdit').isCreate) {
+		values.id = 's-' + Ext.data.identifier.Uuid.Global.generate().slice(0, 13);
+	    }
+	    return values;
+	},
+	column1: [
+	    {
+		xtype: 'pbsDataStoreSelector',
+		fieldLabel: gettext('Local Datastore'),
+		name: 'store',
+	    },
+	    {
+		xtype: 'pbsMediaPoolSelector',
+		fieldLabel: gettext('Media Pool'),
+		name: 'pool',
+	    },
+	    {
+		xtype: 'pbsDriveSelector',
+		fieldLabel: gettext('Drive'),
+		name: 'drive',
+	    },
+	],
+
+	column2: [
+	    {
+		fieldLabel: gettext('Schedule'),
+		xtype: 'pbsCalendarEvent',
+		name: 'schedule',
+		emptyText: gettext('none (disabled)'),
+		cbind: {
+		    deleteEmpty: '{!isCreate}',
+		    value: '{scheduleValue}',
+		},
+	    },
+	],
+
+	columnB: [
+	    {
+		fieldLabel: gettext('Comment'),
+		xtype: 'proxmoxtextfield',
+		name: 'comment',
+		cbind: {
+		    deleteEmpty: '{!isCreate}',
+		},
+	    },
+	],
+    },
+});
-- 
2.20.1





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup 1/2] api2/config/tape_backup_job: enable update api call
  2021-02-23 10:58 [pbs-devel] [PATCH proxmox-backup 1/2] api2/config/tape_backup_job: enable update api call Dominik Csapak
  2021-02-23 10:58 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/BackupJobs: add CRUD functions Dominik Csapak
@ 2021-02-23 12:25 ` Dietmar Maurer
  1 sibling, 0 replies; 3+ messages in thread
From: Dietmar Maurer @ 2021-02-23 12:25 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

applied both patches

> On 02/23/2021 11:58 AM Dominik Csapak <d.csapak@proxmox.com> wrote:
> 
>  
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
>  src/api2/config/tape_backup_job.rs | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/api2/config/tape_backup_job.rs b/src/api2/config/tape_backup_job.rs
> index 8b898bf8..a9edc00f 100644
> --- a/src/api2/config/tape_backup_job.rs
> +++ b/src/api2/config/tape_backup_job.rs
> @@ -217,7 +217,7 @@ pub fn delete_tape_backup_job(
>  
>  const ITEM_ROUTER: Router = Router::new()
>      .get(&API_METHOD_READ_TAPE_BACKUP_JOB)
> -//.put(&API_METHOD_UPDATE_TAPE_BACKUP_JOB)
> +    .put(&API_METHOD_UPDATE_TAPE_BACKUP_JOB)
>      .delete(&API_METHOD_DELETE_TAPE_BACKUP_JOB);
>  
>  pub const ROUTER: Router = Router::new()
> -- 
> 2.20.1
> 
> 
> 
> _______________________________________________
> pbs-devel mailing list
> pbs-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-02-23 12:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-23 10:58 [pbs-devel] [PATCH proxmox-backup 1/2] api2/config/tape_backup_job: enable update api call Dominik Csapak
2021-02-23 10:58 ` [pbs-devel] [PATCH proxmox-backup 2/2] ui: tape/BackupJobs: add CRUD functions Dominik Csapak
2021-02-23 12:25 ` [pbs-devel] applied: [PATCH proxmox-backup 1/2] api2/config/tape_backup_job: enable update api call Dietmar Maurer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal