Ext.define('PBS.form.NamespaceMaxDepth', {
    extend: 'Proxmox.form.field.Integer',
    alias: 'widget.pbsNamespaceMaxDepth',

    allowBlank: true,

    emptyText: gettext('Full'),
    fieldLabel: gettext('Max. Depth'),
    deleteEmpty: true,

    minValue: 0,
    maxValue: 7,

    triggers: {
	clear: {
	    cls: 'pmx-clear-trigger',
	    weight: -1,
	    hidden: true,
	    handler: function() {
		this.triggers.clear.setVisible(false);
		this.setValue('');
	    },
	},
    },

    listeners: {
	change: function(field, value) {
	    let canClear = value !== '';
	    field.triggers.clear.setVisible(canClear);
	},
    },
});

Ext.define('PBS.form.NamespaceMaxDepthReduced', {
    extend: 'PBS.form.NamespaceMaxDepth',
    alias: 'widget.pbsNamespaceMaxDepthReduced',

	setLimit: function(maxPrefixLength) {
		let me = this;
		if (maxPrefixLength !== undefined) {
			me.maxValue = 7-maxPrefixLength;
		} else {
			me.maxValue = 7;
		}
	},
});