singleton: true,
updateLoginData: function(data) {
- Proxmox.CSRFPreventionToken = data.CSRFPreventionToken;
- Proxmox.UserName = data.username;
- //console.log(data.ticket);
- // fixme: use secure flag once we have TLS
- //Ext.util.Cookies.set('PBSAuthCookie', data.ticket, null, '/', null, true );
- Ext.util.Cookies.set('PBSAuthCookie', data.ticket, null, '/', null, false);
+
+ Proxmox.Utils.setAuthData(data);
},
dataStorePrefix: 'DataStore-',
+ cryptmap: [
+ 'none',
+ 'mixed',
+ 'sign-only',
+ 'encrypt',
+ ],
+
+ cryptText: [
+ Proxmox.Utils.noText,
+ gettext('Mixed'),
+ gettext('Signed'),
+ gettext('Encrypted'),
+ ],
+
+ cryptIconCls: [
+ '',
+ '',
+ 'certificate',
+ 'lock',
+ ],
+
+ calculateCryptMode: function(data) {
+ let mixed = data.mixed;
+ let encrypted = data.encrypt;
+ let signed = data['sign-only'];
+ let files = data.count;
+ if (mixed > 0) {
+ return PBS.Utils.cryptmap.indexOf('mixed');
+ } else if (files === encrypted) {
+ return PBS.Utils.cryptmap.indexOf('encrypt');
+ } else if (files === signed) {
+ return PBS.Utils.cryptmap.indexOf('sign-only');
+ } else if ((signed+encrypted) === 0) {
+ return PBS.Utils.cryptmap.indexOf('none');
+ } else {
+ return PBS.Utils.cryptmap.indexOf('mixed');
+ }
+ },
+
getDataStoreFromPath: function(path) {
return path.slice(PBS.Utils.dataStorePrefix.length);
},
return path.indexOf(PBS.Utils.dataStorePrefix) === 0;
},
+ render_datetime_utc: function(datetime) {
+ let pad = (number) => number < 10 ? '0' + number : number;
+ return datetime.getUTCFullYear() +
+ '-' + pad(datetime.getUTCMonth() + 1) +
+ '-' + pad(datetime.getUTCDate()) +
+ 'T' + pad(datetime.getUTCHours()) +
+ ':' + pad(datetime.getUTCMinutes()) +
+ ':' + pad(datetime.getUTCSeconds()) +
+ 'Z';
+ },
+
render_datastore_worker_id: function(id, what) {
- const result = id.match(/^(\S+)_([^_\s]+)_([^_\s]+)$/);
- if (result) {
- let datastore = result[1], type = result[2], id = result[3];
- return `Datastore ${datastore} - ${what} ${type}/${id}`;
+ const res = id.match(/^(\S+?)_(\S+?)_(\S+?)(_(.+))?$/);
+ if (res) {
+ let datastore = res[1], type = res[2], id = res[3];
+ if (res[4] !== undefined) {
+ let datetime = Ext.Date.parse(parseInt(res[5], 16), 'U');
+ let utctime = PBS.Utils.render_datetime_utc(datetime);
+ return `Datastore ${datastore} ${what} ${type}/${id}/${utctime}`;
+ } else {
+ return `Datastore ${datastore} ${what} ${type}/${id}`;
+ }
}
- return what;
+ return `Datastore ${what} ${id}`;
},
constructor: function() {
// do whatever you want here
Proxmox.Utils.override_task_descriptions({
garbage_collection: ['Datastore', gettext('Garbage collect') ],
+ sync: ['Datastore', gettext('Remote Sync') ],
+ syncjob: [gettext('Sync Job'), gettext('Remote Sync') ],
prune: (type, id) => {
return PBS.Utils.render_datastore_worker_id(id, gettext('Prune'));
},
+ verify: (type, id) => {
+ return PBS.Utils.render_datastore_worker_id(id, gettext('Verify'));
+ },
backup: (type, id) => {
return PBS.Utils.render_datastore_worker_id(id, gettext('Backup'));
},
- reader: [ '', gettext('Read datastore objects') ], // FIXME: better one
+ reader: (type, id) => {
+ return PBS.Utils.render_datastore_worker_id(id, gettext('Read objects'));
+ },
});
}
});