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