]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/ImageView.js
1 Ext
.define('PVE.storage.ImageView', {
2 extend
: 'PVE.storage.ContentView',
4 alias
: 'widget.pveStorageImageView',
6 initComponent: function() {
9 var nodename
= me
.nodename
= me
.pveSelNode
.data
.node
;
11 throw "no node name specified";
14 var storage
= me
.storage
= me
.pveSelNode
.data
.storage
;
16 throw "no storage ID specified";
19 if (!me
.content
|| (me
.content
!== 'images' && me
.content
!== 'rootdir')) {
20 throw "content needs to be either 'images' or 'rootdir'";
23 var sm
= me
.sm
= Ext
.create('Ext.selection.RowModel', {});
25 var reload = function() {
31 xtype
: 'proxmoxButton',
33 text
: gettext('Remove'),
35 handler: function(btn
, event
, rec
) {
36 let url
= `/nodes/${nodename}/storage/${storage}/content/${rec.data.volid}`;
37 var vmid
= rec
.data
.vmid
;
39 var store
= PVE
.data
.ResourceStore
;
41 if (vmid
&& store
.findVMID(vmid
)) {
42 var guest_node
= store
.guestNode(vmid
);
43 var storage_path
= 'storage/' + nodename
+ '/' + storage
;
45 // allow to delete local backed images if a VMID exists on another node.
46 if (store
.storageIsShared(storage_path
) || guest_node
=== nodename
) {
47 var msg
= Ext
.String
.format(
48 gettext("Cannot remove image, a guest with VMID '{0}' exists!"), vmid
);
49 msg
+= '<br />' + gettext("You can delete the image from the guest's hardware pane");
52 title
: gettext('Cannot remove disk image.'),
59 var win
= Ext
.create('Proxmox.window.SafeDestroy', {
60 title
: Ext
.String
.format(gettext("Destroy '{0}'"), rec
.data
.volid
),
63 item
: { type
: 'Image', id
: vmid
},
64 taskName
: 'unknownimgdel',
66 win
.on('destroy', reload
);
70 me
.useCustomRemoveButton
= true;