[pbs-devel] [PATCH proxmox-backup 4/4] ui: DataStoreList: add remove button

Thomas Lamprecht t.lamprecht at proxmox.com
Tue Jun 1 16:37:41 CEST 2021


On 01.06.21 14:13, Dominik Csapak wrote:
> so that a user can remove a datastore from the gui,
> though no data is deleted, this has to be done elsewhere (for now)
> 

we could move that one to options, it's not a frequent operation and moving out of
the probably more frequented views would seem reasonable.
It'd put it there at the right of the tbar 

And we may want to consider adding a "purge data" opt-in checkbox in the long run
(with some bells and whistles to ensure the user has feedback about the difference),
as I do not really see the use-case for just removing it from the config happen that
often in practice.

> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  www/Utils.js                   |  1 +
>  www/datastore/DataStoreList.js | 39 ++++++++++++++++++++++++++++++++++
>  2 files changed, 40 insertions(+)
> 
> diff --git a/www/Utils.js b/www/Utils.js
> index f614d77e..6b378355 100644
> --- a/www/Utils.js
> +++ b/www/Utils.js
> @@ -380,6 +380,7 @@ Ext.define('PBS.Utils', {
>  	    backup: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Backup')),
>  	    'barcode-label-media': [gettext('Drive'), gettext('Barcode-Label Media')],
>  	    'catalog-media': [gettext('Drive'), gettext('Catalog Media')],
> +	    'delete-datastore': [gettext('Datastore'), gettext('Remove Datastore')],
>  	    dircreate: [gettext('Directory Storage'), gettext('Create')],
>  	    dirremove: [gettext('Directory'), gettext('Remove')],
>  	    'eject-media': [gettext('Drive'), gettext('Eject Media')],
> diff --git a/www/datastore/DataStoreList.js b/www/datastore/DataStoreList.js
> index 353709d3..f81b25b7 100644
> --- a/www/datastore/DataStoreList.js
> +++ b/www/datastore/DataStoreList.js
> @@ -113,11 +113,50 @@ Ext.define('PBS.datastore.DataStoreList', {
>  
>  	me.datastores[data.store] = me.insert(i, {
>  	    datastore: data.store,
> +	    header: {
> +		padding: '6 6 7 9',
> +	    },
> +	    tools: [
> +		{
> +		    xtype: 'button',
> +		    text: gettext('Remove'),
> +		    iconCls: 'fa fa-trash-o',
> +		    handler: () => me.removeDatastore(data.store),
> +		    padding: 2,
> +		},
> +	    ],
>  	});
>  	me.datastores[data.store].setStatus(data);
>  	me.datastores[data.store].setTasks(me.tasks[data.store], me.since);
>      },
>  
> +    removeDatastore: function(datastore) {
> +	let me = this;
> +	Ext.create('Proxmox.window.SafeDestroy', {
> +	    url: `/config/datastore/${datastore}`,
> +	    item: {
> +		id: datastore,
> +	    },
> +	    note: gettext('Configuration change only, no data will be deleted.'),
> +	    autoShow: true,
> +	    taskName: 'delete-datastore',
> +	    listeners: {
> +		destroy: () => {
> +		    me.reload();
> +		    let navtree = Ext.ComponentQuery.query('navigationtree')[0];
> +		    navtree.rstore.load();
> +		},
> +	    },
> +	});
> +    },
> +
> +    reload: function() {
> +	let me = this;
> +	me.mask();
> +	me.usageStore.load();
> +	me.taskStore.load();
> +    },
> +
>      initComponent: function() {
>  	let me = this;
>  	me.items = [
> 






More information about the pbs-devel mailing list