window/BackupGroupChangeOwner.js \
window/CreateDirectory.js \
window/DataStoreEdit.js \
+ window/NamespaceEdit.js \
window/MaintenanceOptions.js \
window/NotesEdit.js \
window/RemoteEdit.js \
});
},
+ addNS: function() {
+ let me = this;
+ let view = me.getView();
+ if (!view.datastore) return;
+
+ Ext.create('PBS.window.NamespaceEdit', {
+ autoShow: true,
+ datastore: view.datastore,
+ listeners: {
+ destroy: () => view.down('pbsNamespaceSelector').store?.load(),
+ },
+ });
+ },
+
+
onVerify: function(view, rI, cI, item, e, rec) {
let me = this;
view = me.getView();
},
{
xtype: 'pbsNamespaceSelector',
+ width: 200,
cbind: {
datastore: '{datastore}',
},
},
+ {
+ xtype: 'proxmoxButton',
+ text: gettext('Add NS'),
+ iconCls: 'fa fa-plus-square',
+ handler: 'addNS',
+ },
'-',
{
xtype: 'tbtext',
--- /dev/null
+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: 'proxmoxHelpButton',
+
+ 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: {
+ 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"),
+ },
+ ],
+ },
+});