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