forked from proxmox-mirrors/proxmox-backup

Change the dialog of one-shot tape-backups in such a way that they use the same jargon as scheduled tape backup jobs. The width of the dialog is increased by 150px to 750px so that the slightly larger amount of text fits nicely. Signed-off-by: Lukas Wagner <l.wagner@proxmox.com> Link: https://lore.proxmox.com/20250623141315.288681-8-l.wagner@proxmox.com
139 lines
4.7 KiB
JavaScript
139 lines
4.7 KiB
JavaScript
Ext.define('PBS.TapeManagement.TapeBackupWindow', {
|
|
extend: 'Proxmox.window.Edit',
|
|
alias: 'pbsTapeBackupWindow',
|
|
|
|
subject: gettext('Backup'),
|
|
url: '/api2/extjs/tape/backup',
|
|
method: 'POST',
|
|
showTaskViewer: true,
|
|
isCreate: true,
|
|
|
|
width: 750,
|
|
|
|
viewModel: {
|
|
data: {
|
|
notificationMode: 'notification-system',
|
|
},
|
|
formulas: {
|
|
notificationSystemSelected: (get) => get('notificationMode') === 'notification-system',
|
|
},
|
|
},
|
|
|
|
items: [
|
|
{
|
|
xtype: 'inputpanel',
|
|
column1: [
|
|
{
|
|
xtype: 'pbsDataStoreSelector',
|
|
fieldLabel: gettext('Datastore'),
|
|
name: 'store',
|
|
listeners: {
|
|
change: function (_, value) {
|
|
let me = this;
|
|
if (value) {
|
|
let namespace = me.up('window').down('pbsNamespaceSelector');
|
|
namespace.setDatastore(value);
|
|
namespace.setDisabled(false);
|
|
me.up('window').down('pbsNamespaceMaxDepth').setDisabled(false);
|
|
}
|
|
},
|
|
},
|
|
},
|
|
{
|
|
xtype: 'pbsNamespaceSelector',
|
|
fieldLabel: gettext('Namespace'),
|
|
disabled: true,
|
|
name: 'ns',
|
|
},
|
|
{
|
|
xtype: 'pbsNamespaceMaxDepth',
|
|
fieldLabel: gettext('Max Depth'),
|
|
disabled: true,
|
|
name: 'max-depth',
|
|
deleteEmpty: false,
|
|
},
|
|
{
|
|
xtype: 'pbsMediaPoolSelector',
|
|
fieldLabel: gettext('Media Pool'),
|
|
name: 'pool',
|
|
},
|
|
{
|
|
xtype: 'pbsDriveSelector',
|
|
fieldLabel: gettext('Drive'),
|
|
name: 'drive',
|
|
},
|
|
],
|
|
|
|
column2: [
|
|
{
|
|
xtype: 'proxmoxcheckbox',
|
|
labelWidth: 150,
|
|
name: 'force-media-set',
|
|
fieldLabel: gettext('Force new Media-Set'),
|
|
},
|
|
{
|
|
xtype: 'proxmoxcheckbox',
|
|
labelWidth: 150,
|
|
name: 'export-media-set',
|
|
fieldLabel: gettext('Export Media-Set'),
|
|
listeners: {
|
|
change: function (cb, value) {
|
|
let me = this;
|
|
let eject = me.up('window').down('proxmoxcheckbox[name=eject-media]');
|
|
if (value) {
|
|
eject.setValue(false);
|
|
}
|
|
eject.setDisabled(!!value);
|
|
},
|
|
},
|
|
},
|
|
{
|
|
xtype: 'proxmoxcheckbox',
|
|
labelWidth: 150,
|
|
name: 'eject-media',
|
|
fieldLabel: gettext('Eject Media'),
|
|
},
|
|
{
|
|
xtype: 'proxmoxKVComboBox',
|
|
labelWidth: 150,
|
|
comboItems: [
|
|
['notification-system', gettext('Use global settings')],
|
|
['legacy-sendmail', gettext('Use sendmail (legacy)')],
|
|
],
|
|
fieldLabel: gettext('Notification'),
|
|
name: 'notification-mode',
|
|
bind: {
|
|
value: '{notificationMode}',
|
|
},
|
|
},
|
|
{
|
|
xtype: 'pmxUserSelector',
|
|
labelWidth: 150,
|
|
name: 'notify-user',
|
|
fieldLabel: gettext('Notify User'),
|
|
emptyText: 'root@pam',
|
|
value: null,
|
|
allowBlank: true,
|
|
skipEmptyText: true,
|
|
bind: {
|
|
hidden: '{notificationSystemSelected}',
|
|
},
|
|
renderer: Ext.String.htmlEncode,
|
|
},
|
|
],
|
|
|
|
advancedColumn1: [
|
|
{
|
|
xtype: 'proxmoxintegerfield',
|
|
name: 'worker-threads',
|
|
fieldLabel: gettext('# of Worker Threads'),
|
|
emptyText: '1',
|
|
skipEmptyText: true,
|
|
minValue: 1,
|
|
maxValue: 32,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|