]> git.proxmox.com Git - proxmox-backup.git/blob - www/window/DataStoreEdit.js
ui: add calendar event selector
[proxmox-backup.git] / www / window / DataStoreEdit.js
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
9 bodyPadding: 0,
10
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 if (!me.isCreate) {
19 me.defaultFocus = 'textfield[name=comment]';
20 }
21 me.url = name ? baseurl + '/' + name : baseurl;
22 me.method = name ? 'PUT' : 'POST';
23 me.autoLoad = !!name;
24 return {};
25 },
26
27 items: {
28 xtype: 'tabpanel',
29 bodyPadding: 10,
30 items: [
31 {
32 title: gettext('General'),
33 xtype: 'inputpanel',
34 column1: [
35 {
36 xtype: 'pmxDisplayEditField',
37 cbind: {
38 editable: '{isCreate}',
39 },
40 name: 'name',
41 allowBlank: false,
42 fieldLabel: gettext('Name'),
43 },
44 {
45 xtype: 'pmxDisplayEditField',
46 cbind: {
47 editable: '{isCreate}',
48 },
49 name: 'path',
50 allowBlank: false,
51 fieldLabel: gettext('Backing Path'),
52 emptyText: gettext('An absolute path'),
53 },
54 ],
55 column2: [
56 {
57 xtype: 'pbsCalendarEvent',
58 name: 'gc-schedule',
59 fieldLabel: gettext("GC Schedule"),
60 emptyText: gettext('none'),
61 cbind: {
62 deleteEmpty: '{!isCreate}',
63 },
64 },
65 {
66 xtype: 'pbsCalendarEvent',
67 name: 'prune-schedule',
68 fieldLabel: gettext("Prune Schedule"),
69 emptyText: gettext('none'),
70 cbind: {
71 deleteEmpty: '{!isCreate}',
72 },
73 },
74 ],
75 columnB: [
76 {
77 xtype: 'textfield',
78 name: 'comment',
79 fieldLabel: gettext('Comment'),
80 },
81 ],
82 },
83 {
84 title: gettext('Prune Options'),
85 xtype: 'inputpanel',
86 column1: [
87 {
88 xtype: 'proxmoxintegerfield',
89 fieldLabel: gettext('Keep Last'),
90 name: 'keep-last',
91 cbind: {
92 deleteEmpty: '{!isCreate}',
93 },
94 minValue: 1,
95 allowBlank: true,
96 },
97 {
98 xtype: 'proxmoxintegerfield',
99 fieldLabel: gettext('Keep Daily'),
100 name: 'keep-daily',
101 cbind: {
102 deleteEmpty: '{!isCreate}',
103 },
104 minValue: 1,
105 allowBlank: true,
106 },
107 {
108 xtype: 'proxmoxintegerfield',
109 fieldLabel: gettext('Keep Monthly'),
110 name: 'keep-monthly',
111 cbind: {
112 deleteEmpty: '{!isCreate}',
113 },
114 minValue: 1,
115 allowBlank: true,
116 },
117 ],
118 column2: [
119 {
120 xtype: 'proxmoxintegerfield',
121 fieldLabel: gettext('Keep Hourly'),
122 name: 'keep-hourly',
123 cbind: {
124 deleteEmpty: '{!isCreate}',
125 },
126 minValue: 1,
127 allowBlank: true,
128 },
129 {
130 xtype: 'proxmoxintegerfield',
131 fieldLabel: gettext('Keep Weekly'),
132 name: 'keep-weekly',
133 cbind: {
134 deleteEmpty: '{!isCreate}',
135 },
136 minValue: 1,
137 allowBlank: true,
138 },
139 {
140 xtype: 'proxmoxintegerfield',
141 fieldLabel: gettext('Keep Yearly'),
142 name: 'keep-yearly',
143 cbind: {
144 deleteEmpty: '{!isCreate}',
145 },
146 minValue: 1,
147 allowBlank: true,
148 },
149 ],
150 },
151 ],
152 },
153 });