]> git.proxmox.com Git - proxmox-widget-toolkit.git/blame - form/DisplayEdit.js
bump version to 2.2-2
[proxmox-widget-toolkit.git] / form / DisplayEdit.js
CommitLineData
a46c2eb1
TL
1Ext.define('Proxmox.form.field.DisplayEdit', {
2 extend: 'Ext.form.FieldContainer',
3 alias: ['widget.pmxDisplayEditField'],
4
5 viewModel: {
6 data: {
7 editable: false,
8 },
9 },
10
11 displayType: 'displayfield',
12
13 editConfig: {},
14 editable: false,
15 setEditable: function(editable) {
16 let me = this;
17 let vm = me.getViewModel();
18
19 me.editable = editable;
20 vm.set('editable', editable);
21 },
22
23 layout: 'hbox',
24 defaults: {
25 hideLabel: true
26 },
27
a46c2eb1
TL
28 initComponent: function() {
29 let me = this;
30
31 let displayConfig = {
32 xtype: me.displayType,
33 bind: {
34 hidden: '{editable}',
35 disabled: '{editable}',
36 },
37 };
38 Ext.applyIf(displayConfig, me.initialConfig);
39 delete displayConfig.editConfig;
40 delete displayConfig.editable;
41
42 let editConfig = Ext.apply({}, me.editConfig); // clone, not reference!
43 Ext.applyIf(editConfig, {
44 xtype: 'textfield',
45 bind: {
46 hidden: '{!editable}',
47 disabled: '{!editable}',
48 },
49 });
50 Ext.applyIf(editConfig, displayConfig);
51
52 // avoid glitch, start off correct even before viewmodel fixes it
53 editConfig.disabled = editConfig.hidden = !me.editable;
54 displayConfig.disabled = displayConfig.hidden = !!me.editable;
55
56 editConfig.name = displayConfig.name = me.name;
57
58 Ext.apply(me, {
59 items: [
60 displayConfig,
61 editConfig,
62 ],
63 });
64
65 me.callParent();
66
67 me.getViewModel().set('editable', me.editable);
68 },
69
70});