]>
Commit | Line | Data |
---|---|---|
03862a2e DM |
1 | Ext.ns('PBS'); |
2 | ||
3 | console.log("Starting Backup Server GUI"); | |
4 | ||
5 | Ext.define('PBS.Utils', { | |
6 | singleton: true, | |
7 | ||
34f956bc | 8 | updateLoginData: function(data) { |
a0153b02 | 9 | Proxmox.Utils.setAuthData(data); |
34f956bc DM |
10 | }, |
11 | ||
c0ac2074 DC |
12 | dataStorePrefix: 'DataStore-', |
13 | ||
2774566b DC |
14 | cryptmap: [ |
15 | 'none', | |
16 | 'mixed', | |
17 | 'sign-only', | |
18 | 'encrypt', | |
19 | ], | |
20 | ||
21 | cryptText: [ | |
22 | Proxmox.Utils.noText, | |
23 | gettext('Mixed'), | |
24 | gettext('Signed'), | |
25 | gettext('Encrypted'), | |
26 | ], | |
27 | ||
28 | cryptIconCls: [ | |
29 | '', | |
30 | '', | |
3e395378 DC |
31 | 'lock faded', |
32 | 'lock good', | |
2774566b DC |
33 | ], |
34 | ||
106603c5 DC |
35 | calculateCryptMode: function(data) { |
36 | let mixed = data.mixed; | |
37 | let encrypted = data.encrypt; | |
38 | let signed = data['sign-only']; | |
39 | let files = data.count; | |
40 | if (mixed > 0) { | |
41 | return PBS.Utils.cryptmap.indexOf('mixed'); | |
02939e17 | 42 | } else if (files === encrypted && encrypted > 0) { |
2774566b | 43 | return PBS.Utils.cryptmap.indexOf('encrypt'); |
02939e17 | 44 | } else if (files === signed && signed > 0) { |
2774566b DC |
45 | return PBS.Utils.cryptmap.indexOf('sign-only'); |
46 | } else if ((signed+encrypted) === 0) { | |
47 | return PBS.Utils.cryptmap.indexOf('none'); | |
48 | } else { | |
49 | return PBS.Utils.cryptmap.indexOf('mixed'); | |
50 | } | |
51 | }, | |
52 | ||
c0ac2074 DC |
53 | getDataStoreFromPath: function(path) { |
54 | return path.slice(PBS.Utils.dataStorePrefix.length); | |
55 | }, | |
56 | ||
57 | isDataStorePath: function(path) { | |
58 | return path.indexOf(PBS.Utils.dataStorePrefix) === 0; | |
59 | }, | |
60 | ||
f68ae22c TL |
61 | render_datetime_utc: function(datetime) { |
62 | let pad = (number) => number < 10 ? '0' + number : number; | |
63 | return datetime.getUTCFullYear() + | |
64 | '-' + pad(datetime.getUTCMonth() + 1) + | |
65 | '-' + pad(datetime.getUTCDate()) + | |
66 | 'T' + pad(datetime.getUTCHours()) + | |
67 | ':' + pad(datetime.getUTCMinutes()) + | |
68 | ':' + pad(datetime.getUTCSeconds()) + | |
69 | 'Z'; | |
70 | }, | |
71 | ||
06c3dc8a | 72 | render_datastore_worker_id: function(id, what) { |
2162e2c1 | 73 | const res = id.match(/^(\S+?)_(\S+?)_(\S+?)(_(.+))?$/); |
dbd959d4 | 74 | if (res) { |
6ab77df3 | 75 | let datastore = res[1], backupGroup = `${res[2]}/${res[3]}`; |
2162e2c1 DM |
76 | if (res[4] !== undefined) { |
77 | let datetime = Ext.Date.parse(parseInt(res[5], 16), 'U'); | |
78 | let utctime = PBS.Utils.render_datetime_utc(datetime); | |
6ab77df3 | 79 | return `Datastore ${datastore} ${what} ${backupGroup}/${utctime}`; |
2162e2c1 | 80 | } else { |
6ab77df3 | 81 | return `Datastore ${datastore} ${what} ${backupGroup}`; |
2162e2c1 | 82 | } |
dbd959d4 | 83 | } |
2162e2c1 | 84 | return `Datastore ${what} ${id}`; |
dbd959d4 | 85 | }, |
06c3dc8a | 86 | |
03862a2e DM |
87 | constructor: function() { |
88 | var me = this; | |
89 | ||
90 | // do whatever you want here | |
9b1aa424 | 91 | Proxmox.Utils.override_task_descriptions({ |
6ab77df3 TL |
92 | garbage_collection: ['Datastore', gettext('Garbage collect')], |
93 | sync: ['Datastore', gettext('Remote Sync')], | |
94 | syncjob: [gettext('Sync Job'), gettext('Remote Sync')], | |
95 | prune: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Prune')), | |
96 | verify: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Verify')), | |
97 | backup: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Backup')), | |
98 | reader: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Read objects')), | |
0c41e0d0 | 99 | logrotate: [gettext('Log'), gettext('Rotation')], |
9b1aa424 | 100 | }); |
6ab77df3 | 101 | }, |
03862a2e | 102 | }); |