]> git.proxmox.com Git - pmg-gui.git/blame - js/PBSConfig.js
dashboard: increase height of node-info and top-receiver panel to 300
[pmg-gui.git] / js / PBSConfig.js
CommitLineData
d944805a
SI
1Ext.define('PMG.PBSScheduleEdit', {
2 extend: 'Proxmox.window.Edit',
3 xtype: 'pmgPBSScheduleEdit',
afb34731 4 onlineHelp: 'pmgbackup_pbs_schedule',
d944805a
SI
5
6 isAdd: true,
45dad584
TL
7 isCreate: true,
8 submitText: gettext('Set'),
9
d944805a 10 method: 'POST',
45dad584 11 title: gettext('Configure Scheduled Backup'),
d944805a
SI
12 autoLoad: true,
13 items: [
14 {
15 xtype: 'proxmoxKVComboBox',
16 name: 'schedule',
17 fieldLabel: gettext('Schedule'),
18 comboItems: [
d944805a 19 ['hourly', 'hourly'],
45dad584 20 ['daily', 'daily'],
d944805a
SI
21 ['weekly', 'weekly'],
22 ['monthly', 'monthly'],
23 ],
24 editable: true,
45dad584
TL
25 deleteEmpty: false,
26 emptyText: gettext('daily'),
d944805a
SI
27 },
28 {
29 xtype: 'proxmoxKVComboBox',
30 name: 'delay',
31 fieldLabel: gettext('Random Delay'),
32 comboItems: [
45dad584 33 ['0s', gettext('No Delay')],
d944805a
SI
34 ['15 minutes', '15 Minutes'],
35 ['6 hours', '6 hours'],
36 ],
37 editable: true,
45dad584
TL
38 deleteEmpty: false,
39 emptyText: gettext('5 Minutes'),
d944805a
SI
40 },
41 ],
42 initComponent: function() {
43 let me = this;
44
2df1316d 45 me.url = `/nodes/${Proxmox.NodeName}/pbs/${me.remote}/timer`;
d944805a
SI
46 me.callParent();
47 },
48});
49
d944805a
SI
50Ext.define('pmg-pbs-config', {
51 extend: 'Ext.data.Model',
52 fields: ['remote', 'server', 'datastore', 'username', 'disabled'],
53 proxy: {
54 type: 'proxmox',
55 url: '/api2/json/config/pbs',
56 },
57 idProperty: 'remote',
58});
59
60Ext.define('PMG.PBSConfigGrid', {
61 extend: 'Ext.grid.GridPanel',
62 xtype: 'pmgPBSConfigGrid',
63
64 controller: {
65 xclass: 'Ext.app.ViewController',
66
67 run_editor: function() {
68 let me = this;
69 let view = me.getView();
70 let rec = view.getSelection()[0];
71 if (!rec) {
72 return;
73 }
74
75 let win = Ext.createWidget('pmgPBSEdit', {
76 remoteId: rec.data.remote,
d2b8eac4
TL
77 autoLoad: true,
78 autoShow: true,
d944805a
SI
79 });
80 win.on('destroy', me.reload, me);
d944805a
SI
81 },
82
83 newRemote: function() {
84 let me = this;
85 let win = Ext.createWidget('pmgPBSEdit', {});
86 win.on('destroy', me.reload, me);
87 win.show();
88 },
89
d944805a
SI
90 reload: function() {
91 let me = this;
92 let view = me.getView();
93 view.getStore().load();
d944805a
SI
94 },
95
96 init: function(view) {
97 let me = this;
98 Proxmox.Utils.monStoreErrors(view, view.getStore(), true);
99 },
d944805a
SI
100 },
101
102 store: {
103 model: 'pmg-pbs-config',
104 sorters: [{
105 property: 'remote',
18722987 106 direction: 'ASC',
d944805a
SI
107 }],
108 },
109
110 tbar: [
53dea017
TL
111 {
112 text: gettext('Add Remote'),
113 handler: 'newRemote',
114 },
115 '-',
d944805a
SI
116 {
117 xtype: 'proxmoxButton',
118 text: gettext('Edit'),
119 disabled: true,
120 handler: 'run_editor',
121 },
d944805a
SI
122 {
123 xtype: 'proxmoxStdRemoveButton',
124 baseurl: '/config/pbs',
125 callback: 'reload',
126 },
d2b8eac4 127 '->',
d944805a 128 {
d2b8eac4
TL
129 text: gettext('Reload'),
130 iconCls: 'fa fa-refresh',
131 handler: 'reload',
d944805a
SI
132 },
133 ],
134
135 listeners: {
136 itemdblclick: 'run_editor',
137 activate: 'reload',
138 },
139
140 columns: [
141 {
2df1316d 142 header: gettext('Remote'),
d944805a
SI
143 sortable: true,
144 dataIndex: 'remote',
145 flex: 2,
146 },
147 {
148 header: gettext('Server'),
149 sortable: true,
150 dataIndex: 'server',
151 flex: 2,
152 },
153 {
154 header: gettext('Datastore'),
155 sortable: true,
156 dataIndex: 'datastore',
157 flex: 1,
158 },
159 {
160 header: gettext('User ID'),
161 sortable: true,
162 dataIndex: 'username',
163 flex: 1,
164 },
165 {
166 header: gettext('Encryption'),
167 width: 80,
168 sortable: true,
1415738c 169 hidden: true, // for now
d944805a
SI
170 dataIndex: 'encryption-key',
171 renderer: Proxmox.Utils.format_boolean,
172 },
173 {
174 header: gettext('Enabled'),
175 width: 80,
176 sortable: true,
177 dataIndex: 'disable',
178 renderer: Proxmox.Utils.format_neg_boolean,
179 },
180 ],
181
182});