]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/grid/PoolMembers.js
6c50fe7b6997659d810ddcd5a546cd3b6a579477
1 Ext
.define('PVE.pool.AddVM', {
2 extend
: 'PVE.window.Edit',
7 initComponent : function() {
12 throw "no pool specified";
15 me
.url
= "/pools/" + me
.pool
;
18 var vmsField
= Ext
.create('Ext.form.field.Text', {
24 var vmStore
= Ext
.create('Ext.data.Store', {
25 model
: 'PVEResources',
34 return ((item
.data
.type
=== 'lxc' || item
.data
.type
=== 'qemu') && item
.data
.pool
=== '');
39 var vmGrid
= Ext
.create('widget.grid',{
45 selType
: 'checkboxmodel',
48 selectionchange: function(model
, selected
, opts
) {
50 selected
.forEach(function(vm
) {
51 selectedVms
.push(vm
.data
.vmid
);
53 vmsField
.setValue(selectedVms
);
64 header
: gettext('Node'),
68 header
: gettext('Status'),
70 renderer: function(value
) {
72 return Proxmox
.Utils
.runningText
;
74 return Proxmox
.Utils
.stoppedText
;
79 header
: gettext('Name'),
84 header
: gettext('Type'),
90 subject
: gettext('Virtual Machine'),
91 items
: [ vmsField
, vmGrid
]
99 Ext
.define('PVE.pool.AddStorage', {
100 extend
: 'PVE.window.Edit',
102 initComponent : function() {
107 throw "no pool specified";
112 me
.url
= "/pools/" + me
.pool
;
116 subject
: gettext('Storage'),
120 xtype
: 'pveStorageSelector',
122 nodename
: 'localhost',
125 fieldLabel
: gettext("Storage")
134 Ext
.define('PVE.grid.PoolMembers', {
135 extend
: 'Ext.grid.GridPanel',
136 alias
: ['widget.pvePoolMembers'],
138 // fixme: dynamic status update ?
141 stateId
: 'grid-pool-members',
143 initComponent : function() {
147 throw "no pool specified";
150 var store
= Ext
.create('Ext.data.Store', {
151 model
: 'PVEResources',
160 root
: 'data.members',
161 url
: "/api2/json/pools/" + me
.pool
165 var coldef
= PVE
.data
.ResourceStore
.defaultColumns();
167 var reload = function() {
171 var sm
= Ext
.create('Ext.selection.RowModel', {});
173 var remove_btn
= new Proxmox
.button
.Button({
174 text
: gettext('Remove'),
177 confirmMsg: function (rec
) {
178 return Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
179 "'" + rec
.data
.id
+ "'");
181 handler: function(btn
, event
, rec
) {
182 var params
= { 'delete': 1 };
183 if (rec
.data
.type
=== 'storage') {
184 params
.storage
= rec
.data
.storage
;
185 } else if (rec
.data
.type
=== 'qemu' || rec
.data
.type
=== 'lxc' || rec
.data
.type
=== 'openvz') {
186 params
.vms
= rec
.data
.vmid
;
188 throw "unknown resource type";
191 Proxmox
.Utils
.API2Request({
192 url
: '/pools/' + me
.pool
,
196 callback: function() {
199 failure: function (response
, opts
) {
200 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
211 text
: gettext('Add'),
212 menu
: new Ext
.menu
.Menu({
215 text
: gettext('Virtual Machine'),
216 iconCls
: 'pve-itype-icon-qemu',
217 handler: function() {
218 var win
= Ext
.create('PVE.pool.AddVM', { pool
: me
.pool
});
219 win
.on('destroy', reload
);
224 text
: gettext('Storage'),
225 iconCls
: 'pve-itype-icon-storage',
226 handler: function() {
227 var win
= Ext
.create('PVE.pool.AddStorage', { pool
: me
.pool
});
228 win
.on('destroy', reload
);
242 itemcontextmenu
: PVE
.Utils
.createCmdMenu
,
243 itemdblclick: function(v
, record
) {
244 var ws
= me
.up('pveStdWorkspace');
245 ws
.selectById(record
.data
.id
);