proxmox-backup/www/tape/window/TapeBackup.js
Lukas Wagner 82963b7d4b ui: one-shot tape backup: use same wording as tape-backup jobs
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
2025-07-16 01:12:56 +02:00

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,
},
],
},
],
});