all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH manager] ui: Remove pveACMEPluginView in favor of pmxACMEPluginView
@ 2023-08-29 11:00 Filip Schauer
  2024-04-29 10:22 ` Filip Schauer
  2024-04-29 11:14 ` Thomas Lamprecht
  0 siblings, 2 replies; 4+ messages in thread
From: Filip Schauer @ 2023-08-29 11:00 UTC (permalink / raw)
  To: pve-devel

Remove pveACMEPluginView and use the ACMEPluginView from the
proxmox-widget-toolkit instead. This leaves pveACMEPluginEditor unused,
so remove it as well.

Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
---
 www/manager6/dc/ACMEClusterView.js | 100 +------------
 www/manager6/dc/ACMEPluginEdit.js  | 223 -----------------------------
 2 files changed, 2 insertions(+), 321 deletions(-)
 delete mode 100644 www/manager6/dc/ACMEPluginEdit.js

diff --git a/www/manager6/dc/ACMEClusterView.js b/www/manager6/dc/ACMEClusterView.js
index d02aeef0..3d7adbf8 100644
--- a/www/manager6/dc/ACMEClusterView.js
+++ b/www/manager6/dc/ACMEClusterView.js
@@ -119,103 +119,6 @@ Ext.define('PVE.dc.ACMEAccountView', {
     },
 });
 
-Ext.define('PVE.dc.ACMEPluginView', {
-    extend: 'Ext.grid.Panel',
-    alias: 'widget.pveACMEPluginView',
-
-    title: gettext('Challenge Plugins'),
-
-    controller: {
-	xclass: 'Ext.app.ViewController',
-
-	addPlugin: function() {
-	    let me = this;
-	    Ext.create('PVE.dc.ACMEPluginEditor', {
-		isCreate: true,
-		apiCallDone: function() {
-		    me.reload();
-		},
-	    }).show();
-	},
-
-	editPlugin: function() {
-	    let me = this;
-	    let view = me.getView();
-	    let selection = view.getSelection();
-	    if (selection.length < 1) return;
-	    let plugin = selection[0].data.plugin;
-	    Ext.create('PVE.dc.ACMEPluginEditor', {
-		url: `/cluster/acme/plugins/${plugin}`,
-		apiCallDone: function() {
-		    me.reload();
-		},
-	    }).show();
-	},
-
-	reload: function() {
-	    let me = this;
-	    let view = me.getView();
-	    view.getStore().rstore.load();
-	},
-    },
-
-    minHeight: 150,
-    emptyText: gettext('No Plugins configured'),
-
-    columns: [
-	{
-	    dataIndex: 'plugin',
-	    text: gettext('Plugin'),
-	    renderer: Ext.String.htmlEncode,
-	    flex: 1,
-	},
-	{
-	    dataIndex: 'api',
-	    text: 'API',
-	    renderer: Ext.String.htmlEncode,
-	    flex: 1,
-	},
-    ],
-
-    tbar: [
-	{
-	    xtype: 'proxmoxButton',
-	    text: gettext('Add'),
-	    handler: 'addPlugin',
-	    selModel: false,
-	},
-	{
-	    xtype: 'proxmoxButton',
-	    text: gettext('Edit'),
-	    handler: 'editPlugin',
-	    disabled: true,
-	},
-	{
-	    xtype: 'proxmoxStdRemoveButton',
-	    baseurl: '/cluster/acme/plugins',
-	    callback: 'reload',
-	},
-    ],
-
-    listeners: {
-	itemdblclick: 'editPlugin',
-    },
-
-    store: {
-	type: 'diff',
-	autoDestroy: true,
-	autoDestroyRstore: true,
-	rstore: {
-	    type: 'update',
-	    storeid: 'pve-acme-plugins',
-	    model: 'pve-acme-plugins',
-	    autoStart: true,
-	    filters: item => !!item.data.api,
-	},
-	sorters: 'plugin',
-    },
-});
-
 Ext.define('PVE.dc.ACMEClusterView', {
     extend: 'Ext.panel.Panel',
     alias: 'widget.pveACMEClusterView',
@@ -231,7 +134,8 @@ Ext.define('PVE.dc.ACMEClusterView', {
 	{
 	    region: 'center',
 	    border: false,
-	    xtype: 'pveACMEPluginView',
+	    xtype: 'pmxACMEPluginView',
+	    acmeUrl: '/config/acme',
 	},
     ],
 });
diff --git a/www/manager6/dc/ACMEPluginEdit.js b/www/manager6/dc/ACMEPluginEdit.js
deleted file mode 100644
index 570b4dd2..00000000
--- a/www/manager6/dc/ACMEPluginEdit.js
+++ /dev/null
@@ -1,223 +0,0 @@
-Ext.define('PVE.dc.ACMEPluginEditor', {
-    extend: 'Proxmox.window.Edit',
-    xtype: 'pveACMEPluginEditor',
-    mixins: ['Proxmox.Mixin.CBind'],
-
-    onlineHelp: 'sysadmin_certs_acme_plugins',
-
-    isAdd: true,
-    isCreate: false,
-
-    width: 550,
-    url: '/cluster/acme/plugins/',
-
-    subject: 'ACME DNS Plugin',
-
-    items: [
-	{
-	    xtype: 'inputpanel',
-	    // we dynamically create fields from the given schema
-	    // things we have to do here:
-	    // * save which fields we created to remove them again
-	    // * split the data from the generic 'data' field into the boxes
-	    // * on deletion collect those values again
-	    // * save the original values of the data field
-	    createdFields: {},
-	    createdInitially: false,
-	    originalValues: {},
-	    createSchemaFields: function(schema) {
-		let me = this;
-		// we know where to add because we define it right below
-		let container = me.down('container');
-		let datafield = me.down('field[name=data]');
-		let hintfield = me.down('field[name=hint]');
-		if (!me.createdInitially) {
-		    [me.originalValues] = PVE.Parser.parseACMEPluginData(datafield.getValue());
-		}
-
-		// collect values from custom fields and add it to 'data'',
-		// then remove the custom fields
-		let data = [];
-		for (const [name, field] of Object.entries(me.createdFields)) {
-		    let value = field.getValue();
-		    if (value !== undefined && value !== null && value !== '') {
-			data.push(`${name}=${value}`);
-		    }
-		    container.remove(field);
-		}
-		let datavalue = datafield.getValue();
-		if (datavalue !== undefined && datavalue !== null && datavalue !== '') {
-		    data.push(datavalue);
-		}
-		datafield.setValue(data.join('\n'));
-
-		me.createdFields = {};
-
-		if (typeof schema.fields !== 'object') {
-		    schema.fields = {};
-		}
-		// create custom fields according to schema
-		let gotSchemaField = false;
-		let cmp = (a, b) => a[0].localeCompare(b[0]);
-		for (const [name, definition] of Object.entries(schema.fields).sort(cmp)) {
-		    let xtype;
-		    switch (definition.type) {
-			case 'string':
-			    xtype = 'proxmoxtextfield';
-			    break;
-			case 'integer':
-			    xtype = 'proxmoxintegerfield';
-			    break;
-			case 'number':
-			    xtype = 'numberfield';
-			    break;
-			default:
-			    console.warn(`unknown type '${definition.type}'`);
-			    xtype = 'proxmoxtextfield';
-			    break;
-		    }
-
-		    let label = name;
-		    if (typeof definition.name === "string") {
-			label = definition.name;
-		    }
-
-		    let field = Ext.create({
-			xtype,
-			name: `custom_${name}`,
-			fieldLabel: label,
-			width: '100%',
-			labelWidth: 150,
-			labelSeparator: '=',
-			emptyText: definition.default || '',
-			autoEl: definition.description ? {
-			    tag: 'div',
-			    'data-qtip': definition.description,
-			} : undefined,
-		    });
-
-		    me.createdFields[name] = field;
-		    container.add(field);
-		    gotSchemaField = true;
-		}
-		datafield.setHidden(gotSchemaField); // prefer schema-fields
-
-		if (schema.description) {
-		    hintfield.setValue(schema.description);
-		    hintfield.setHidden(false);
-		} else {
-		    hintfield.setValue('');
-		    hintfield.setHidden(true);
-		}
-
-		// parse data from field and set it to the custom ones
-		let extradata = [];
-		[data, extradata] = PVE.Parser.parseACMEPluginData(datafield.getValue());
-		for (const [key, value] of Object.entries(data)) {
-		    if (me.createdFields[key]) {
-			me.createdFields[key].setValue(value);
-			me.createdFields[key].originalValue = me.originalValues[key];
-		    } else {
-			extradata.push(`${key}=${value}`);
-		    }
-		}
-		datafield.setValue(extradata.join('\n'));
-		if (!me.createdInitially) {
-		    datafield.resetOriginalValue();
-		    me.createdInitially = true; // save that we initally set that
-		}
-	    },
-	    onGetValues: function(values) {
-		let me = this;
-		let win = me.up('pveACMEPluginEditor');
-		if (win.isCreate) {
-		    values.id = values.plugin;
-		    values.type = 'dns'; // the only one for now
-		}
-		delete values.plugin;
-
-		PVE.Utils.delete_if_default(values, 'validation-delay', '30', win.isCreate);
-
-		let data = '';
-		for (const [name, field] of Object.entries(me.createdFields)) {
-		    let value = field.getValue();
-		    if (value !== null && value !== undefined && value !== '') {
-			data += `${name}=${value}\n`;
-		    }
-		    delete values[`custom_${name}`];
-		}
-		values.data = Ext.util.Base64.encode(data + values.data);
-		return values;
-	    },
-	    items: [
-		{
-		    xtype: 'pmxDisplayEditField',
-		    cbind: {
-			editable: (get) => get('isCreate'),
-			submitValue: (get) => get('isCreate'),
-		    },
-		    editConfig: {
-			flex: 1,
-			xtype: 'proxmoxtextfield',
-			allowBlank: false,
-		    },
-		    name: 'plugin',
-		    labelWidth: 150,
-		    fieldLabel: gettext('Plugin ID'),
-		},
-		{
-		    xtype: 'proxmoxintegerfield',
-		    name: 'validation-delay',
-		    labelWidth: 150,
-		    fieldLabel: gettext('Validation Delay'),
-		    emptyText: 30,
-		    cbind: {
-			deleteEmpty: '{!isCreate}',
-		    },
-		    minValue: 0,
-		    maxValue: 48*60*60,
-		},
-		{
-		    xtype: 'pveACMEApiSelector',
-		    name: 'api',
-		    labelWidth: 150,
-		    listeners: {
-			change: function(selector) {
-			    let schema = selector.getSchema();
-			    selector.up('inputpanel').createSchemaFields(schema);
-			},
-		    },
-		},
-		{
-		    xtype: 'textarea',
-		    fieldLabel: gettext('API Data'),
-		    labelWidth: 150,
-		    name: 'data',
-		},
-		{
-		    xtype: 'displayfield',
-		    fieldLabel: gettext('Hint'),
-		    labelWidth: 150,
-		    name: 'hint',
-		    hidden: true,
-		},
-	    ],
-	},
-    ],
-
-    initComponent: function() {
-	var me = this;
-
-	me.callParent();
-
-	if (!me.isCreate) {
-	    me.load({
-		success: function(response, opts) {
-		    me.setValues(response.result.data);
-		},
-	    });
-	} else {
-	    me.method = 'POST';
-	}
-    },
-});
-- 
2.39.2





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [pve-devel] [PATCH manager] ui: Remove pveACMEPluginView in favor of pmxACMEPluginView
  2023-08-29 11:00 [pve-devel] [PATCH manager] ui: Remove pveACMEPluginView in favor of pmxACMEPluginView Filip Schauer
@ 2024-04-29 10:22 ` Filip Schauer
  2024-04-29 11:14 ` Thomas Lamprecht
  1 sibling, 0 replies; 4+ messages in thread
From: Filip Schauer @ 2024-04-29 10:22 UTC (permalink / raw)
  To: pve-devel

bump

On 29/08/2023 13:00, Filip Schauer wrote:
> Remove pveACMEPluginView and use the ACMEPluginView from the 
> proxmox-widget-toolkit instead. This leaves pveACMEPluginEditor 
> unused, so remove it as well. Signed-off-by: Filip Schauer 
> <f.schauer@proxmox.com>--- www/manager6/dc/ACMEClusterView.js | 100 
> +------------ www/manager6/dc/ACMEPluginEdit.js | 223 
> ----------------------------- 2 files changed, 2 insertions(+), 321 
> deletions(-) delete mode 100644 www/manager6/dc/ACMEPluginEdit.js


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [pve-devel] [PATCH manager] ui: Remove pveACMEPluginView in favor of pmxACMEPluginView
  2023-08-29 11:00 [pve-devel] [PATCH manager] ui: Remove pveACMEPluginView in favor of pmxACMEPluginView Filip Schauer
  2024-04-29 10:22 ` Filip Schauer
@ 2024-04-29 11:14 ` Thomas Lamprecht
  2024-04-30 11:18   ` Filip Schauer
  1 sibling, 1 reply; 4+ messages in thread
From: Thomas Lamprecht @ 2024-04-29 11:14 UTC (permalink / raw)
  To: Proxmox VE development discussion, Filip Schauer

subject:

ui: acme: switch plugin view over to the one from widget-toolkit


(having internal xtypes in the subject already is not really that
useful)

Am 29/08/2023 um 13:00 schrieb Filip Schauer:
> Remove pveACMEPluginView and use the ACMEPluginView from the
> proxmox-widget-toolkit instead. This leaves pveACMEPluginEditor unused,
> so remove it as well.

when got this moved, would be good to have some references here, which would
it also make it easier to decide if we need a new bump of the verisoned
dependency in d/control.




_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [pve-devel] [PATCH manager] ui: Remove pveACMEPluginView in favor of pmxACMEPluginView
  2024-04-29 11:14 ` Thomas Lamprecht
@ 2024-04-30 11:18   ` Filip Schauer
  0 siblings, 0 replies; 4+ messages in thread
From: Filip Schauer @ 2024-04-30 11:18 UTC (permalink / raw)
  To: Thomas Lamprecht, Proxmox VE development discussion

Sent a patch v2:
https://lists.proxmox.com/pipermail/pve-devel/2024-April/063764.html

On 29/04/2024 13:14, Thomas Lamprecht wrote:
> subject:
>
> ui: acme: switch plugin view over to the one from widget-toolkit
>
>
> (having internal xtypes in the subject already is not really that
> useful)
>
> Am 29/08/2023 um 13:00 schrieb Filip Schauer:
>> Remove pveACMEPluginView and use the ACMEPluginView from the
>> proxmox-widget-toolkit instead. This leaves pveACMEPluginEditor unused,
>> so remove it as well.
> when got this moved, would be good to have some references here, which would
> it also make it easier to decide if we need a new bump of the verisoned
> dependency in d/control.
>
>


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-04-30 11:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-29 11:00 [pve-devel] [PATCH manager] ui: Remove pveACMEPluginView in favor of pmxACMEPluginView Filip Schauer
2024-04-29 10:22 ` Filip Schauer
2024-04-29 11:14 ` Thomas Lamprecht
2024-04-30 11:18   ` Filip Schauer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal