@ -5,9 +5,11 @@ import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service' ;
import { UserService } from '@ghostfolio/client/services/user/user.service' ;
import {
import {
DEFAULT_DATE_FORMAT ,
DEFAULT_DATE_FORMAT ,
PROPERTY_CURRENCIES
PROPERTY_CURRENCIES ,
PROPERTY_SYSTEM_MESSAGE
} from '@ghostfolio/common/config' ;
} from '@ghostfolio/common/config' ;
import { User } from '@ghostfolio/common/interfaces' ;
import { InfoItem , User } from '@ghostfolio/common/interfaces' ;
import { hasPermission , permissions } from '@ghostfolio/common/permissions' ;
import {
import {
differenceInSeconds ,
differenceInSeconds ,
formatDistanceToNowStrict ,
formatDistanceToNowStrict ,
@ -29,6 +31,8 @@ export class AdminOverviewComponent implements OnDestroy, OnInit {
public dataGatheringProgress : number ;
public dataGatheringProgress : number ;
public defaultDateFormat = DEFAULT_DATE_FORMAT ;
public defaultDateFormat = DEFAULT_DATE_FORMAT ;
public exchangeRates : { label1 : string ; label2 : string ; value : number } [ ] ;
public exchangeRates : { label1 : string ; label2 : string ; value : number } [ ] ;
public hasPermissionForSystemMessage : boolean ;
public info : InfoItem ;
public lastDataGathering : string ;
public lastDataGathering : string ;
public transactionCount : number ;
public transactionCount : number ;
public userCount : number ;
public userCount : number ;
@ -45,7 +49,14 @@ export class AdminOverviewComponent implements OnDestroy, OnInit {
private changeDetectorRef : ChangeDetectorRef ,
private changeDetectorRef : ChangeDetectorRef ,
private dataService : DataService ,
private dataService : DataService ,
private userService : UserService
private userService : UserService
) { }
) {
this . info = this . dataService . fetchInfo ( ) ;
this . hasPermissionForSystemMessage = hasPermission (
this . info . globalPermissions ,
permissions . enableSystemMessage
) ;
}
/ * *
/ * *
* Initializes the controller
* Initializes the controller
@ -62,6 +73,21 @@ export class AdminOverviewComponent implements OnDestroy, OnInit {
} ) ;
} ) ;
}
}
public formatDistanceToNow ( aDateString : string ) {
if ( aDateString ) {
const distanceString = formatDistanceToNowStrict ( parseISO ( aDateString ) , {
addSuffix : true
} ) ;
return Math . abs ( differenceInSeconds ( parseISO ( aDateString ) , new Date ( ) ) ) <
60
? 'just now'
: distanceString ;
}
return '' ;
}
public onAddCurrency() {
public onAddCurrency() {
const currency = prompt ( 'Please add a currency:' ) ;
const currency = prompt ( 'Please add a currency:' ) ;
@ -82,6 +108,10 @@ export class AdminOverviewComponent implements OnDestroy, OnInit {
}
}
}
}
public onDeleteSystemMessage() {
this . putSystemMessage ( '' ) ;
}
public onFlushCache() {
public onFlushCache() {
this . cacheService
this . cacheService
. flush ( )
. flush ( )
@ -117,19 +147,12 @@ export class AdminOverviewComponent implements OnDestroy, OnInit {
. subscribe ( ( ) = > { } ) ;
. subscribe ( ( ) = > { } ) ;
}
}
public formatDistanceToNow ( aDateString : string ) {
public onSetSystemMessage() {
if ( aDateString ) {
const systemMessage = prompt ( 'Please set your system message:' ) ;
const distanceString = formatDistanceToNowStrict ( parseISO ( aDateString ) , {
addSuffix : true
} ) ;
return Math . abs ( differenceInSeconds ( parseISO ( aDateString ) , new Date ( ) ) ) <
if ( systemMessage ) {
60
this . putSystemMessage ( systemMessage ) ;
? 'just now'
: distanceString ;
}
}
return '' ;
}
}
public ngOnDestroy() {
public ngOnDestroy() {
@ -187,4 +210,17 @@ export class AdminOverviewComponent implements OnDestroy, OnInit {
} , 300 ) ;
} , 300 ) ;
} ) ;
} ) ;
}
}
private putSystemMessage ( aSystemMessage : string ) {
this . dataService
. putAdminSetting ( PROPERTY_SYSTEM_MESSAGE , {
value : aSystemMessage
} )
. pipe ( takeUntil ( this . unsubscribeSubject ) )
. subscribe ( ( ) = > {
setTimeout ( ( ) = > {
window . location . reload ( ) ;
} , 300 ) ;
} ) ;
}
}
}