proxmox-backup/www/window/NamespaceEdit.js

105 lines
2.4 KiB
JavaScript

Ext.define('PBS.window.NamespaceEdit', {
extend: 'Proxmox.window.Edit',
xtype: 'pbsNamespaceEdit', // for now rather "NamespaceAdd"
mixins: ['Proxmox.Mixin.CBind'],
//onlineHelp: 'namespaces', // TODO
isCreate: true,
subject: gettext('Namespace'),
// avoid that the trigger of the combogrid fields open on window show
defaultFocus: 'proxmoxtextfield[name=name]',
cbind: {
url: '/api2/extjs/admin/datastore/{datastore}/namespace',
},
method: 'POST',
width: 450,
fieldDefaults: {
labelWidth: 120,
},
items: {
xtype: 'inputpanel',
onGetValues: function(values) {
if (values.parent === '') {
delete values.parent;
}
return values;
},
items: [
{
xtype: 'pbsNamespaceSelector',
name: 'parent',
fieldLabel: gettext('Parent Namespace'),
cbind: {
value: '{namespace}',
datastore: '{datastore}',
},
},
{
xtype: 'proxmoxtextfield',
name: 'name',
fieldLabel: gettext('Namespace Name'),
value: '',
allowBlank: false,
maxLength: 31,
regex: PBS.Utils.SAFE_ID_RE,
regexText: gettext("Only alpha numerical, '_' and '-' (if not at start) allowed"),
},
],
},
});
Ext.define('PBS.window.NamespaceDelete', {
extend: 'Proxmox.window.SafeDestroy',
xtype: 'pbsNamespaceDelete',
mixins: ['Proxmox.Mixin.CBind'],
viewModel: {},
autoShow: true,
taskName: 'delete-namespace',
cbind: {
url: '/api2/extjs/admin/datastore/{datastore}/namespace',
},
additionalItems: [
{
xtype: 'proxmoxcheckbox',
name: 'delete-groups',
reference: 'rmGroups',
boxLabel: gettext('Delete all Backup Groups'),
value: false,
listeners: {
change: function(field, value) {
let win = field.up('proxmoxSafeDestroy');
if (value) {
win.params['delete-groups'] = value;
} else {
delete win.params['delete-groups'];
}
},
},
},
{
xtype: 'box',
padding: '5 0 0 0',
html: `<span class="pmx-hint">${gettext('Note')}</span>: `
+ gettext('This will permanently remove all backups from the current namespace and all namespaces below it!'),
bind: {
hidden: '{!rmGroups.checked}',
},
},
],
initComponent: function() {
let me = this;
me.title = Ext.String.format(gettext("Destroy Namespace '{0}'"), me.namespace);
me.params = { ns: me.namespace };
me.callParent();
},
});