[pve-devel] r6342 - in pve-manager/pve2: . www/manager www/manager/dc www/manager/storage www/manager/window
svn-commits at proxmox.com
svn-commits at proxmox.com
Thu Jul 21 12:23:41 CEST 2011
Author: dietmar
Date: 2011-07-21 12:23:41 +0200 (Thu, 21 Jul 2011)
New Revision: 6342
Added:
pve-manager/pve2/www/manager/storage/NFSEdit.js
Modified:
pve-manager/pve2/ChangeLog
pve-manager/pve2/www/manager/Makefile.am
pve-manager/pve2/www/manager/Utils.js
pve-manager/pve2/www/manager/dc/StorageView.js
pve-manager/pve2/www/manager/storage/DirEdit.js
pve-manager/pve2/www/manager/window/Edit.js
Log:
* www/manager/storage/NFSEdit.js: impl.
* www/manager/Utils.js: new waitMsgTarget option (mask el), better
error messages
Modified: pve-manager/pve2/ChangeLog
===================================================================
--- pve-manager/pve2/ChangeLog 2011-07-21 08:10:31 UTC (rev 6341)
+++ pve-manager/pve2/ChangeLog 2011-07-21 10:23:41 UTC (rev 6342)
@@ -1,5 +1,10 @@
2011-07-21 Proxmox Support Team <support at proxmox.com>
+ * www/manager/storage/NFSEdit.js: impl.
+
+ * www/manager/Utils.js: new waitMsgTarget option (mask el), better
+ error messages
+
* www/manager/form/StorageSelector.js: display 'avail' instead of
'used'
Modified: pve-manager/pve2/www/manager/Makefile.am
===================================================================
--- pve-manager/pve2/www/manager/Makefile.am 2011-07-21 08:10:31 UTC (rev 6341)
+++ pve-manager/pve2/www/manager/Makefile.am 2011-07-21 10:23:41 UTC (rev 6342)
@@ -84,6 +84,7 @@
storage/Summary.js \
storage/Browser.js \
storage/DirEdit.js \
+ storage/NFSEdit.js \
dc/StorageView.js \
dc/UserEdit.js \
dc/UserView.js \
Modified: pve-manager/pve2/www/manager/Utils.js
===================================================================
--- pve-manager/pve2/www/manager/Utils.js 2011-07-21 08:10:31 UTC (rev 6341)
+++ pve-manager/pve2/www/manager/Utils.js 2011-07-21 10:23:41 UTC (rev 6342)
@@ -249,16 +249,21 @@
// Ext.Ajax.request
API2Request: function(reqOpts) {
- var newopts = Ext.apply({}, reqOpts);
+ var newopts = Ext.apply({
+ waitMsg: 'Please wait...'
+ }, reqOpts);
if (!newopts.url.match(/^\/api2/)) {
newopts.url = '/api2/extjs' + newopts.url;
}
delete newopts.callback;
- var createWrapper = function(successFn, callbackFn, failureFn) {
+ var createWrapper = function(successFn, callbackFn, failureFn) {
Ext.apply(newopts, {
success: function(response, options) {
+ if (options.waitMsgTarget) {
+ options.waitMsgTarget.unmask();
+ }
var result = Ext.decode(response.responseText);
response.result = result;
if (!result.success) {
@@ -271,9 +276,18 @@
Ext.callback(successFn, options.scope, [response, options]);
},
failure: function(response, options) {
+ if (options.waitMsgTarget) {
+ options.waitMsgTarget.unmask();
+ }
+ var result = Ext.decode(response.responseText);
+ response.result = result || {};
var msg = "Connection error - server offline?";
- if (response.status && response.statusText) {
- msg = "Connection error " + response.status + ": " + response.statusText;
+ if (response.aborted) {
+ msg = 'Transaction aborted.';
+ } else if (response.timedout) {
+ msg = 'Communication failure: Timeout.';
+ } else if (response.status && response.statusText) {
+ msg = 'Connection error ' + response.status + ': ' + response.statusText;
}
response.htmlStatus = msg;
Ext.callback(callbackFn, options.scope, [options, false, response]);
@@ -284,6 +298,9 @@
createWrapper(reqOpts.success, reqOpts.callback, reqOpts.failure);
+ if (newopts.waitMsgTarget) {
+ newopts.waitMsgTarget.mask(newopts.waitMsg, 'x-mask-loading');
+ }
Ext.Ajax.request(newopts);
},
Modified: pve-manager/pve2/www/manager/dc/StorageView.js
===================================================================
--- pve-manager/pve2/www/manager/dc/StorageView.js 2011-07-21 08:10:31 UTC (rev 6341)
+++ pve-manager/pve2/www/manager/dc/StorageView.js 2011-07-21 10:23:41 UTC (rev 6342)
@@ -33,6 +33,8 @@
var editor;
if (type === 'dir') {
editor = 'PVE.storage.DirEdit';
+ } else if (type === 'nfs') {
+ editor = 'PVE.storage.NFSEdit';
} else {
return;
}
@@ -125,7 +127,12 @@
},
{
text: 'NFS share',
- iconCls: 'pve-itype-icon-node'
+ iconCls: 'pve-itype-icon-node',
+ handler: function() {
+ var win = Ext.create('PVE.storage.NFSEdit', {});
+ win.on('destroy', reload);
+ win.show();
+ }
},
{
text: 'iSCSI target',
@@ -172,11 +179,11 @@
renderer: PVE.Utils.format_boolean
},
{
- header: 'Disable',
+ header: 'Enable',
width: 80,
sortable: true,
dataIndex: 'disable',
- renderer: PVE.Utils.format_boolean
+ renderer: PVE.Utils.format_neg_boolean
}
],
listeners: {
Modified: pve-manager/pve2/www/manager/storage/DirEdit.js
===================================================================
--- pve-manager/pve2/www/manager/storage/DirEdit.js 2011-07-21 08:10:31 UTC (rev 6341)
+++ pve-manager/pve2/www/manager/storage/DirEdit.js 2011-07-21 10:23:41 UTC (rev 6342)
@@ -4,13 +4,15 @@
onGetValues: function(values) {
var me = this;
- values.type = 'dir';
-
- if (!me.create) {
- delete values.type;
+ if (me.create) {
+ values.type = 'dir';
+ } else {
delete values.storage;
}
-
+
+ values.disable = values.enable ? 0 : 1;
+ delete values.enable;
+
return values;
},
@@ -49,9 +51,10 @@
me.column2 = [
{
xtype: 'pvecheckbox',
- name: 'disable',
+ name: 'enable',
+ checked: true,
uncheckedValue: 0,
- fieldLabel: 'Disable'
+ fieldLabel: 'Enable'
},
{
xtype: 'pvecheckbox',
@@ -103,6 +106,7 @@
if (values.storage === 'local') {
values.content = ctypes.split(',');
}
+ values.enable = values.disable ? 0 : 1;
ipanel.setValues(values);
}
Added: pve-manager/pve2/www/manager/storage/NFSEdit.js
===================================================================
--- pve-manager/pve2/www/manager/storage/NFSEdit.js (rev 0)
+++ pve-manager/pve2/www/manager/storage/NFSEdit.js 2011-07-21 10:23:41 UTC (rev 6342)
@@ -0,0 +1,117 @@
+Ext.define('PVE.storage.NFSInputPanel', {
+ extend: 'PVE.panel.InputPanel',
+
+ onGetValues: function(values) {
+ var me = this;
+
+ if (me.create) {
+ values.type = 'nfs';
+ } else {
+ delete values.storage;
+ }
+
+ values.disable = values.enable ? 0 : 1;
+ delete values.enable;
+
+ return values;
+ },
+
+ initComponent : function() {
+ var me = this;
+
+
+ me.column1 = [
+ {
+ xtype: me.create ? 'textfield' : 'displayfield',
+ name: 'storage',
+ height: 22, // hack: set same height as text fields
+ value: me.storageId || '',
+ fieldLabel: 'Storage ID',
+ vtype: 'StorageId',
+ allowBlank: false
+ },
+ {
+ xtype: me.create ? 'textfield' : 'displayfield',
+ height: 22, // hack: set same height as text fields
+ name: 'server',
+ value: '',
+ fieldLabel: 'Server',
+ allowBlank: false
+ },
+ {
+ xtype: me.create ? 'textfield' : 'displayfield',
+ height: 22, // hack: set same height as text fields
+ name: 'export',
+ value: '',
+ fieldLabel: 'Export',
+ allowBlank: false
+ },
+ {
+ xtype: 'pveContentTypeSelector',
+ name: 'content',
+ value: 'images',
+ multiSelect: me.storageId === 'local',
+ fieldLabel: 'Content',
+ allowBlank: false
+ }
+ ];
+
+ me.column2 = [
+ {
+ xtype: 'pvecheckbox',
+ name: 'enable',
+ checked: true,
+ uncheckedValue: 0,
+ fieldLabel: 'Enable'
+ }
+ ];
+
+ me.callParent();
+ }
+});
+
+Ext.define('PVE.storage.NFSEdit', {
+ extend: 'PVE.window.Edit',
+
+ initComponent : function() {
+ var me = this;
+
+ me.create = !me.storageId;
+
+ if (me.create) {
+ me.url = '/api2/extjs/storage';
+ me.method = 'POST';
+ } else {
+ me.url = '/api2/extjs/storage/' + me.storageId;
+ me.method = 'PUT';
+ }
+
+ var ipanel = Ext.create('PVE.storage.NFSInputPanel', {
+ create: me.create,
+ storageId: me.storageId
+ });
+
+ Ext.apply(me, {
+ title: me.create ? "Create NFS storage" :
+ "Edit NFS storage '" + me.storageId + "'",
+ items: [ ipanel ]
+ });
+
+ me.callParent();
+
+ if (!me.create) {
+ me.load({
+ success: function(response, options) {
+ var values = response.result.data;
+ var ctypes = values.content || '';
+
+ if (values.storage === 'local') {
+ values.content = ctypes.split(',');
+ }
+ values.enable = values.disable ? 0 : 1;
+ ipanel.setValues(values);
+ }
+ });
+ }
+ }
+});
Modified: pve-manager/pve2/www/manager/window/Edit.js
===================================================================
--- pve-manager/pve2/www/manager/window/Edit.js 2011-07-21 08:10:31 UTC (rev 6341)
+++ pve-manager/pve2/www/manager/window/Edit.js 2011-07-21 10:23:41 UTC (rev 6342)
@@ -68,6 +68,7 @@
PVE.Utils.API2Request({
url: me.url,
+ waitMsgTarget: me.getTargetEl(),
method: me.method || 'PUT',
params: values,
failure: function(response, options) {
@@ -89,7 +90,9 @@
options = options || {};
- var newopts = Ext.apply({}, options);
+ var newopts = Ext.apply({
+ waitMsgTarget: me.getTargetEl()
+ }, options);
var createWrapper = function(successFn) {
Ext.apply(newopts, {
More information about the pve-devel
mailing list