]> git.proxmox.com Git - proxmox-backup.git/blame - www/window/DataStoreEdit.js
ui: ds/content: show spinner for backups in progress
[proxmox-backup.git] / www / window / DataStoreEdit.js
CommitLineData
98ad58fb
DC
1Ext.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});