]>
Commit | Line | Data |
---|---|---|
98ad58fb DC |
1 | Ext.define('PBS.DataStoreEdit', { |
2 | extend: 'Proxmox.window.Edit', | |
3 | alias: 'widget.pbsDataStoreEdit', | |
4 | mixins: ['Proxmox.Mixin.CBind'], | |
5 | ||
6 | subject: gettext('Datastore'), | |
7 | isAdd: true, | |
8 | ||
1278aeec DC |
9 | bodyPadding: 0, |
10 | ||
98ad58fb DC |
11 | cbindData: function(initialConfig) { |
12 | var me = this; | |
13 | ||
14 | let name = initialConfig.name; | |
15 | let baseurl = '/api2/extjs/config/datastore'; | |
16 | ||
17 | me.isCreate = !name; | |
18 | me.url = name ? baseurl + '/' + name : baseurl; | |
19 | me.method = name ? 'PUT' : 'POST'; | |
20 | me.autoLoad = !!name; | |
21 | return {}; | |
22 | }, | |
23 | ||
24 | items: [ | |
25 | { | |
1278aeec DC |
26 | xtype: 'tabpanel', |
27 | bodyPadding: 10, | |
28 | items: [ | |
98ad58fb | 29 | { |
1278aeec DC |
30 | title: gettext('General'), |
31 | xtype: 'inputpanel', | |
32 | column1: [ | |
33 | { | |
34 | xtype: 'pmxDisplayEditField', | |
35 | cbind: { | |
36 | editable: '{isCreate}', | |
37 | }, | |
38 | name: 'name', | |
39 | allowBlank: false, | |
40 | fieldLabel: gettext('Name'), | |
41 | }, | |
42 | { | |
43 | xtype: 'pmxDisplayEditField', | |
44 | cbind: { | |
45 | editable: '{isCreate}', | |
46 | }, | |
47 | name: 'path', | |
48 | allowBlank: false, | |
49 | fieldLabel: gettext('Backing Path'), | |
50 | emptyText: gettext('An absolute path'), | |
51 | }, | |
52 | ], | |
98ad58fb | 53 | |
1278aeec DC |
54 | column2: [ |
55 | { | |
56 | xtype: 'proxmoxtextfield', | |
57 | name: 'gc-schedule', | |
58 | fieldLabel: gettext("GC Schedule"), | |
59 | cbind: { | |
60 | deleteEmpty: '{!isCreate}', | |
61 | }, | |
62 | }, | |
63 | { | |
64 | xtype: 'proxmoxtextfield', | |
65 | name: 'prune-schedule', | |
66 | fieldLabel: gettext("Prune Schedule"), | |
67 | cbind: { | |
68 | deleteEmpty: '{!isCreate}', | |
69 | }, | |
70 | }, | |
71 | ], | |
98ad58fb | 72 | |
1278aeec DC |
73 | columnB: [ |
74 | { | |
75 | xtype: 'textfield', | |
76 | name: 'comment', | |
77 | fieldLabel: gettext('Comment'), | |
78 | }, | |
79 | ], | |
98ad58fb | 80 | }, |
1278aeec DC |
81 | { |
82 | title: gettext('Prune Options'), | |
83 | xtype: 'inputpanel', | |
84 | column1: [ | |
85 | { | |
86 | xtype: 'proxmoxintegerfield', | |
87 | fieldLabel: gettext('Keep Last'), | |
88 | name: 'keep-last', | |
89 | cbind: { | |
90 | deleteEmpty: '{!isCreate}', | |
91 | }, | |
92 | minValue: 1, | |
93 | allowBlank: true, | |
94 | }, | |
95 | { | |
96 | xtype: 'proxmoxintegerfield', | |
97 | fieldLabel: gettext('Keep Daily'), | |
98 | name: 'keep-daily', | |
99 | cbind: { | |
100 | deleteEmpty: '{!isCreate}', | |
101 | }, | |
102 | minValue: 1, | |
103 | allowBlank: true, | |
104 | }, | |
105 | { | |
106 | xtype: 'proxmoxintegerfield', | |
107 | fieldLabel: gettext('Keep Monthly'), | |
108 | name: 'keep-monthly', | |
109 | cbind: { | |
110 | deleteEmpty: '{!isCreate}', | |
111 | }, | |
112 | minValue: 1, | |
113 | allowBlank: true, | |
114 | }, | |
115 | ], | |
116 | ||
117 | column2: [ | |
118 | { | |
119 | xtype: 'proxmoxintegerfield', | |
120 | fieldLabel: gettext('Keep Hourly'), | |
121 | name: 'keep-hourly', | |
122 | cbind: { | |
123 | deleteEmpty: '{!isCreate}', | |
124 | }, | |
125 | minValue: 1, | |
126 | allowBlank: true, | |
127 | }, | |
128 | { | |
129 | xtype: 'proxmoxintegerfield', | |
130 | fieldLabel: gettext('Keep Weekly'), | |
131 | name: 'keep-weekly', | |
132 | cbind: { | |
133 | deleteEmpty: '{!isCreate}', | |
134 | }, | |
135 | minValue: 1, | |
136 | allowBlank: true, | |
137 | }, | |
138 | { | |
139 | xtype: 'proxmoxintegerfield', | |
140 | fieldLabel: gettext('Keep Yearly'), | |
141 | name: 'keep-yearly', | |
142 | cbind: { | |
143 | deleteEmpty: '{!isCreate}', | |
144 | }, | |
145 | minValue: 1, | |
146 | allowBlank: true, | |
147 | }, | |
148 | ], | |
149 | ||
150 | } | |
151 | ] | |
98ad58fb DC |
152 | } |
153 | ], | |
154 | }); |