]> git.proxmox.com Git - proxmox-backup.git/blob - www/tape/window/TapeBackupJob.js
9902a45411742b1e84019751d8246b0257180240
[proxmox-backup.git] / www / tape / window / TapeBackupJob.js
1 Ext.define('PBS.TapeManagement.BackupJobEdit', {
2 extend: 'Proxmox.window.Edit',
3 alias: 'widget.pbsTapeBackupJobEdit',
4 mixins: ['Proxmox.Mixin.CBind'],
5
6 userid: undefined,
7
8 isAdd: true,
9
10 subject: gettext('Tape Backup Job'),
11
12 fieldDefaults: { labelWidth: 120 },
13
14 cbindData: function(initialConfig) {
15 let me = this;
16
17 let baseurl = '/api2/extjs/config/tape-backup-job';
18 let id = initialConfig.id;
19
20 me.isCreate = !id;
21 me.url = id ? `${baseurl}/${id}` : baseurl;
22 me.method = id ? 'PUT' : 'POST';
23 me.autoLoad = !!id;
24 me.scheduleValue = id ? null : 'daily';
25 me.authid = id ? null : Proxmox.UserName;
26 me.editDatastore = me.datastore === undefined && me.isCreate;
27 return { };
28 },
29
30 items: {
31 xtype: 'inputpanel',
32 onGetValues: function(values) {
33 let me = this;
34
35 if (!values.id && me.up('pbsTapeBackupJobEdit').isCreate) {
36 values.id = 's-' + Ext.data.identifier.Uuid.Global.generate().slice(0, 13);
37 }
38 return values;
39 },
40 column1: [
41 {
42 xtype: 'pbsDataStoreSelector',
43 fieldLabel: gettext('Local Datastore'),
44 name: 'store',
45 },
46 {
47 xtype: 'pbsMediaPoolSelector',
48 fieldLabel: gettext('Media Pool'),
49 name: 'pool',
50 },
51 {
52 xtype: 'pbsDriveSelector',
53 fieldLabel: gettext('Drive'),
54 name: 'drive',
55 },
56 ],
57
58 column2: [
59 {
60 fieldLabel: gettext('Schedule'),
61 xtype: 'pbsCalendarEvent',
62 name: 'schedule',
63 emptyText: gettext('none (disabled)'),
64 cbind: {
65 deleteEmpty: '{!isCreate}',
66 value: '{scheduleValue}',
67 },
68 },
69 ],
70
71 columnB: [
72 {
73 fieldLabel: gettext('Comment'),
74 xtype: 'proxmoxtextfield',
75 name: 'comment',
76 cbind: {
77 deleteEmpty: '{!isCreate}',
78 },
79 },
80 ],
81 },
82 });