]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/grid/PoolMembers.js
1 Ext
.define('PVE.pool.AddVM', {
2 extend
: 'PVE.window.Edit',
7 initComponent : function() {
8 /*jslint confusion: true */
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',
32 return ((item
.data
.type
=== 'lxc' || item
.data
.type
=== 'qemu') && item
.data
.pool
=== '');
37 var vmGrid
= Ext
.create('widget.grid',{
43 selType
: 'checkboxmodel',
46 selectionchange: function(model
, selected
, opts
) {
48 selected
.forEach(function(vm
) {
49 selectedVms
.push(vm
.data
.vmid
);
51 vmsField
.setValue(selectedVms
);
62 header
: gettext('Node'),
66 header
: gettext('Status'),
68 renderer: function(value
) {
70 return PVE
.Utils
.runningText
;
72 return PVE
.Utils
.stoppedText
;
77 header
: gettext('Name'),
82 header
: gettext('Type'),
88 subject
: gettext('Virtual Machine'),
89 items
: [ vmsField
, vmGrid
]
97 Ext
.define('PVE.pool.AddStorage', {
98 extend
: 'PVE.window.Edit',
100 initComponent : function() {
101 /*jslint confusion: true */
105 throw "no pool specified";
110 me
.url
= "/pools/" + me
.pool
;
114 subject
: gettext('Storage'),
118 xtype
: 'PVE.form.StorageSelector',
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 ?
138 initComponent : function() {
142 throw "no pool specified";
145 var store
= Ext
.create('Ext.data.Store', {
146 model
: 'PVEResources',
155 root
: 'data.members',
156 url
: "/api2/json/pools/" + me
.pool
160 var coldef
= PVE
.data
.ResourceStore
.defaultColums();
162 var reload = function() {
166 var sm
= Ext
.create('Ext.selection.RowModel', {});
168 var remove_btn
= new PVE
.button
.Button({
169 text
: gettext('Remove'),
172 confirmMsg: function (rec
) {
173 return Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
174 "'" + rec
.data
.id
+ "'");
176 handler: function(btn
, event
, rec
) {
177 var params
= { 'delete': 1 };
178 if (rec
.data
.type
=== 'storage') {
179 params
.storage
= rec
.data
.storage
;
180 } else if (rec
.data
.type
=== 'qemu' || rec
.data
.type
=== 'lxc' || rec
.data
.type
=== 'openvz') {
181 params
.vms
= rec
.data
.vmid
;
183 throw "unknown resource type";
186 PVE
.Utils
.API2Request({
187 url
: '/pools/' + me
.pool
,
191 callback: function() {
194 failure: function (response
, opts
) {
195 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
206 text
: gettext('Add'),
207 menu
: new Ext
.menu
.Menu({
210 text
: gettext('Virtual Machine'),
211 iconCls
: 'pve-itype-icon-qemu',
212 handler: function() {
213 var win
= Ext
.create('PVE.pool.AddVM', { pool
: me
.pool
});
214 win
.on('destroy', reload
);
219 text
: gettext('Storage'),
220 iconCls
: 'pve-itype-icon-storage',
221 handler: function() {
222 var win
= Ext
.create('PVE.pool.AddStorage', { pool
: me
.pool
});
223 win
.on('destroy', reload
);