2018-12-05 12:39:40 +01:00
Ext . ns ( 'PBS' ) ;
console . log ( "Starting Backup Server GUI" ) ;
Ext . define ( 'PBS.Utils' , {
singleton : true ,
2019-01-30 15:14:20 +01:00
updateLoginData : function ( data ) {
2020-05-29 16:22:14 +02:00
Proxmox . Utils . setAuthData ( data ) ;
2019-01-30 15:14:20 +01:00
} ,
2020-05-20 12:15:38 +02:00
dataStorePrefix : 'DataStore-' ,
2020-07-08 13:32:20 +02:00
cryptmap : [
'none' ,
'mixed' ,
'sign-only' ,
'encrypt' ,
] ,
cryptText : [
Proxmox . Utils . noText ,
gettext ( 'Mixed' ) ,
gettext ( 'Signed' ) ,
gettext ( 'Encrypted' ) ,
] ,
cryptIconCls : [
'' ,
'' ,
2020-07-23 13:03:49 +02:00
'lock faded' ,
'lock good' ,
2020-07-08 13:32:20 +02:00
] ,
2020-07-09 16:50:24 +02:00
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' ) ;
2020-09-09 16:18:11 +02:00
} else if ( files === encrypted && encrypted > 0 ) {
2020-07-08 13:32:20 +02:00
return PBS . Utils . cryptmap . indexOf ( 'encrypt' ) ;
2020-09-09 16:18:11 +02:00
} else if ( files === signed && signed > 0 ) {
2020-07-08 13:32:20 +02:00
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' ) ;
}
} ,
2020-05-20 12:15:38 +02:00
getDataStoreFromPath : function ( path ) {
return path . slice ( PBS . Utils . dataStorePrefix . length ) ;
} ,
isDataStorePath : function ( path ) {
return path . indexOf ( PBS . Utils . dataStorePrefix ) === 0 ;
} ,
2020-05-26 18:16:38 +02:00
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' ;
} ,
2020-05-26 13:37:57 +02:00
render _datastore _worker _id : function ( id , what ) {
2020-06-30 13:11:22 +02:00
const res = id . match ( /^(\S+?)_(\S+?)_(\S+?)(_(.+))?$/ ) ;
2020-05-26 18:17:01 +02:00
if ( res ) {
2020-09-25 18:40:03 +02:00
let datastore = res [ 1 ] , backupGroup = ` ${ res [ 2 ] } / ${ res [ 3 ] } ` ;
2020-06-30 13:11:22 +02:00
if ( res [ 4 ] !== undefined ) {
let datetime = Ext . Date . parse ( parseInt ( res [ 5 ] , 16 ) , 'U' ) ;
let utctime = PBS . Utils . render _datetime _utc ( datetime ) ;
2020-09-25 18:40:03 +02:00
return ` Datastore ${ datastore } ${ what } ${ backupGroup } / ${ utctime } ` ;
2020-06-30 13:11:22 +02:00
} else {
2020-09-25 18:40:03 +02:00
return ` Datastore ${ datastore } ${ what } ${ backupGroup } ` ;
2020-06-30 13:11:22 +02:00
}
2020-05-26 18:17:01 +02:00
}
2020-06-30 13:11:22 +02:00
return ` Datastore ${ what } ${ id } ` ;
2020-05-26 18:17:01 +02:00
} ,
2020-05-26 13:37:57 +02:00
2020-10-22 11:40:43 +02:00
extractTokenUser : function ( tokenid ) {
return tokenid . match ( /^(.+)!([^!]+)$/ ) [ 1 ] ;
} ,
extractTokenName : function ( tokenid ) {
return tokenid . match ( /^(.+)!([^!]+)$/ ) [ 2 ] ;
} ,
2018-12-05 12:39:40 +01:00
constructor : function ( ) {
var me = this ;
// do whatever you want here
2020-05-25 19:06:47 +02:00
Proxmox . Utils . override _task _descriptions ( {
2020-10-30 14:02:58 +01:00
backup : ( type , id ) => PBS . Utils . render _datastore _worker _id ( id , gettext ( 'Backup' ) ) ,
dircreate : [ gettext ( 'Directory Storage' ) , gettext ( 'Create' ) ] ,
dirremove : [ gettext ( 'Directory' ) , gettext ( 'Remove' ) ] ,
2020-09-25 18:40:03 +02:00
garbage _collection : [ 'Datastore' , gettext ( 'Garbage collect' ) ] ,
2020-10-30 14:02:58 +01:00
logrotate : [ gettext ( 'Log' ) , gettext ( 'Rotation' ) ] ,
prune : ( type , id ) => PBS . Utils . render _datastore _worker _id ( id , gettext ( 'Prune' ) ) ,
reader : ( type , id ) => PBS . Utils . render _datastore _worker _id ( id , gettext ( 'Read objects' ) ) ,
2020-09-25 18:40:03 +02:00
sync : [ 'Datastore' , gettext ( 'Remote Sync' ) ] ,
2020-10-30 14:02:58 +01:00
syncjob : [ gettext ( 'Sync Job' ) , gettext ( 'Remote Sync' ) ] ,
2020-10-20 11:10:10 +02:00
verify : [ 'Datastore' , gettext ( 'Verification' ) ] ,
verify _group : [ 'Group' , gettext ( 'Verification' ) ] ,
verify _snapshot : [ 'Snapshot' , gettext ( 'Verification' ) ] ,
verifyjob : [ gettext ( 'Verify Job' ) , gettext ( 'Scheduled Verification' ) ] ,
2020-10-30 14:02:58 +01:00
zfscreate : [ gettext ( 'ZFS Storage' ) , gettext ( 'Create' ) ] ,
2020-05-25 19:06:47 +02:00
} ) ;
2020-09-25 18:40:03 +02:00
} ,
2018-12-05 12:39:40 +01:00
} ) ;