mirror of
https://git.proxmox.com/git/proxmox-widget-toolkit
synced 2025-05-10 03:50:25 +00:00
add buttons for add/enable/disable
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
This commit is contained in:
parent
24313a9d80
commit
d76eedb46f
@ -63,6 +63,46 @@ Ext.define('Proxmox.node.APTRepositoriesGrid', {
|
|||||||
me.up('proxmoxNodeAPTRepositories').reload();
|
me.up('proxmoxNodeAPTRepositories').reload();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
text: gettext('Add'),
|
||||||
|
menu: {
|
||||||
|
plain: true,
|
||||||
|
itemId: "addMenu",
|
||||||
|
items: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'proxmoxButton',
|
||||||
|
text: gettext('Enable') + '/' + gettext('Disable'),
|
||||||
|
disabled: true,
|
||||||
|
handler: function(button, event, record) {
|
||||||
|
let me = this;
|
||||||
|
let panel = me.up('proxmoxNodeAPTRepositories');
|
||||||
|
|
||||||
|
let params = {
|
||||||
|
path: record.data.Path,
|
||||||
|
index: record.data.Index,
|
||||||
|
enabled: record.data.Enabled ? 0 : 1, // invert
|
||||||
|
};
|
||||||
|
|
||||||
|
if (panel.digest !== undefined) {
|
||||||
|
params.digest = panel.digest;
|
||||||
|
}
|
||||||
|
|
||||||
|
Proxmox.Utils.API2Request({
|
||||||
|
url: `/nodes/${panel.nodename}/apt/repositories`,
|
||||||
|
method: 'POST',
|
||||||
|
params: params,
|
||||||
|
failure: function(response, opts) {
|
||||||
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
|
panel.reload();
|
||||||
|
},
|
||||||
|
success: function(response, opts) {
|
||||||
|
panel.reload();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
sortableColumns: false,
|
sortableColumns: false,
|
||||||
@ -340,6 +380,9 @@ Ext.define('Proxmox.node.APTRepositories', {
|
|||||||
let me = this;
|
let me = this;
|
||||||
let vm = me.getViewModel();
|
let vm = me.getViewModel();
|
||||||
|
|
||||||
|
let menu = me.down('#addMenu');
|
||||||
|
menu.removeAll();
|
||||||
|
|
||||||
for (const standardRepo of standardRepos) {
|
for (const standardRepo of standardRepos) {
|
||||||
const handle = standardRepo.handle;
|
const handle = standardRepo.handle;
|
||||||
const status = standardRepo.status;
|
const status = standardRepo.status;
|
||||||
@ -349,6 +392,43 @@ Ext.define('Proxmox.node.APTRepositories', {
|
|||||||
} else if (handle === "no-subscription") {
|
} else if (handle === "no-subscription") {
|
||||||
vm.set('noSubscriptionRepo', status);
|
vm.set('noSubscriptionRepo', status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let status_text = '';
|
||||||
|
if (status !== undefined && status !== null) {
|
||||||
|
status_text = Ext.String.format(
|
||||||
|
' ({0}, {1})',
|
||||||
|
gettext('configured'),
|
||||||
|
status ? gettext('enabled') : gettext('disabled'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
menu.add({
|
||||||
|
text: standardRepo.name + status_text,
|
||||||
|
disabled: status !== undefined && status !== null,
|
||||||
|
repoHandle: handle,
|
||||||
|
handler: function(menuItem) {
|
||||||
|
let params = {
|
||||||
|
handle: menuItem.repoHandle,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (me.digest !== undefined) {
|
||||||
|
params.digest = me.digest;
|
||||||
|
}
|
||||||
|
|
||||||
|
Proxmox.Utils.API2Request({
|
||||||
|
url: `/nodes/${me.nodename}/apt/repositories`,
|
||||||
|
method: 'PUT',
|
||||||
|
params: params,
|
||||||
|
failure: function(response, opts) {
|
||||||
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
|
me.reload();
|
||||||
|
},
|
||||||
|
success: function(response, opts) {
|
||||||
|
me.reload();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user