]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/grid/PoolMembers.js
4be2267c54225754e9670be3cfda2868c434e224
1 Ext
.define('PVE.pool.AddVM', {
2 extend
: 'Proxmox.window.Edit',
7 initComponent: function() {
11 throw "no pool specified";
14 me
.url
= "/pools/" + me
.pool
;
17 var vmsField
= Ext
.create('Ext.form.field.Text', {
23 var vmStore
= Ext
.create('Ext.data.Store', {
24 model
: 'PVEResources',
33 return ((item
.data
.type
=== 'lxc' || item
.data
.type
=== 'qemu') && item
.data
.pool
=== '');
38 var vmGrid
= Ext
.create('widget.grid', {
44 selType
: 'checkboxmodel',
47 selectionchange: function(model
, selected
, opts
) {
49 selected
.forEach(function(vm
) {
50 selectedVms
.push(vm
.data
.vmid
);
52 vmsField
.setValue(selectedVms
);
63 header
: gettext('Node'),
67 header
: gettext('Status'),
69 renderer: function(value
) {
71 return Proxmox
.Utils
.runningText
;
73 return Proxmox
.Utils
.stoppedText
;
78 header
: gettext('Name'),
83 header
: gettext('Type'),
89 subject
: gettext('Virtual Machine'),
90 items
: [vmsField
, vmGrid
],
98 Ext
.define('PVE.pool.AddStorage', {
99 extend
: 'Proxmox.window.Edit',
101 initComponent: function() {
105 throw "no pool specified";
110 me
.url
= "/pools/" + me
.pool
;
114 subject
: gettext('Storage'),
118 xtype
: 'pveStorageSelector',
120 nodename
: 'localhost',
123 fieldLabel
: gettext("Storage"),
132 Ext
.define('PVE.grid.PoolMembers', {
133 extend
: 'Ext.grid.GridPanel',
134 alias
: ['widget.pvePoolMembers'],
136 // fixme: dynamic status update ?
139 stateId
: 'grid-pool-members',
141 initComponent: function() {
145 throw "no pool specified";
148 var store
= Ext
.create('Ext.data.Store', {
149 model
: 'PVEResources',
158 root
: 'data.members',
159 url
: "/api2/json/pools/" + me
.pool
,
163 var coldef
= PVE
.data
.ResourceStore
.defaultColumns();
165 var reload = function() {
169 var sm
= Ext
.create('Ext.selection.RowModel', {});
171 var remove_btn
= new Proxmox
.button
.Button({
172 text
: gettext('Remove'),
175 confirmMsg: function(rec
) {
176 return Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
177 "'" + rec
.data
.id
+ "'");
179 handler: function(btn
, event
, rec
) {
180 var params
= { 'delete': 1 };
181 if (rec
.data
.type
=== 'storage') {
182 params
.storage
= rec
.data
.storage
;
183 } else if (rec
.data
.type
=== 'qemu' || rec
.data
.type
=== 'lxc' || rec
.data
.type
=== 'openvz') {
184 params
.vms
= rec
.data
.vmid
;
186 throw "unknown resource type";
189 Proxmox
.Utils
.API2Request({
190 url
: '/pools/' + me
.pool
,
194 callback: function() {
197 failure: function(response
, opts
) {
198 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
209 text
: gettext('Add'),
210 menu
: new Ext
.menu
.Menu({
213 text
: gettext('Virtual Machine'),
214 iconCls
: 'pve-itype-icon-qemu',
215 handler: function() {
216 var win
= Ext
.create('PVE.pool.AddVM', { pool
: me
.pool
});
217 win
.on('destroy', reload
);
222 text
: gettext('Storage'),
223 iconCls
: 'pve-itype-icon-storage',
224 handler: function() {
225 var win
= Ext
.create('PVE.pool.AddStorage', { pool
: me
.pool
});
226 win
.on('destroy', reload
);
240 itemcontextmenu
: PVE
.Utils
.createCmdMenu
,
241 itemdblclick: function(v
, record
) {
242 var ws
= me
.up('pveStdWorkspace');
243 ws
.selectById(record
.data
.id
);