]> git.proxmox.com Git - pve-manager.git/blame - www/manager/panel/InputPanel.js
imported from svn 'pve-manager/pve2'
[pve-manager.git] / www / manager / panel / InputPanel.js
CommitLineData
aff192e6
DM
1Ext.define('PVE.panel.InputPanel', {
2 extend: 'Ext.panel.Panel',
3 requires: [
4 'PVE.Utils'
5 ],
6 alias: ['widget.inputpanel'],
7
8 border: false,
9
10 // overwrite this to modify submit data
11 onGetValues: function(values) {
12 return values;
13 },
14
15 getValues: function(dirtyOnly) {
16 var me = this;
17
18 if (Ext.isFunction(me.onGetValues)) {
19 dirtyOnly = false;
20 }
21
22 var values = {};
23
24 Ext.Array.each(me.query('[isFormField]'), function(field) {
25 if (!dirtyOnly || field.isDirty()) {
26 PVE.Utils.assemble_field_data(values, field.getSubmitData());
27 }
28 });
29
30 return me.onGetValues(values);
31 },
32
33 setValues: function(values) {
34 var me = this;
35
36 var form = me.up('form');
37
38 Ext.iterate(values, function(fieldId, val) {
39 var field = me.query('[isFormField][name=' + fieldId + ']')[0];
40 if (field) {
41 field.setValue(val);
42 if (form.trackResetOnLoad) {
43 field.resetOriginalValue();
44 }
45 }
46 });
47 },
48
49 initComponent: function() {
50 var me = this;
51
52 var items;
53
54 if (me.items) {
55 me.columns = 1;
56 items = [
57 {
58 columnWidth: 1,
59 layout: 'anchor',
60 items: me.items
61 }
62 ];
63 me.items = undefined;
64 } else if (me.column1) {
65 me.columns = 2;
66 items = [
67 {
68 columnWidth: 0.5,
69 padding: '0 10 0 0',
70 layout: 'anchor',
71 items: me.column1
72 },
73 {
74 columnWidth: 0.5,
75 padding: '0 0 0 10',
76 layout: 'anchor',
77 items: me.column2 || [] // allow empty column
78 }
79 ];
80 } else {
81 throw "unsupported config";
82 }
83
84 if (me.useFieldContainer) {
85 Ext.apply(me, {
86 layout: 'fit',
87 items: Ext.apply(me.useFieldContainer, {
88 layout: 'column',
89 defaultType: 'container',
90 items: items
91 })
92 });
93 } else {
94 Ext.apply(me, {
95 layout: 'column',
96 defaultType: 'container',
97 items: items
98 });
99 }
100
101 me.callParent();
102 }
103});