fixes on annotation service status-icons configuration
This commit is contained in:
parent
194887d9ab
commit
cad0c34434
|
@ -1,46 +0,0 @@
|
|||
import { InternalStatus } from "@annotation-service/core/enum/internal-status.enum";
|
||||
|
||||
export class ExtendedInternalStatus {
|
||||
|
||||
private _extendedInternalStatustems: ExtendedInternalStatusItem[];
|
||||
get extendedInternalStatustems(): ExtendedInternalStatusItem[] {
|
||||
return this._extendedInternalStatustems;
|
||||
}
|
||||
|
||||
public static parseValue(value: any): ExtendedInternalStatus {
|
||||
const extendedInternalStatusObj: ExtendedInternalStatus = new ExtendedInternalStatus();
|
||||
|
||||
extendedInternalStatusObj._extendedInternalStatustems = [];
|
||||
for (let item of value) {
|
||||
const extendedInternalStatusItemObj: ExtendedInternalStatusItem = ExtendedInternalStatusItem.parseValue(item);
|
||||
extendedInternalStatusObj._extendedInternalStatustems.push(extendedInternalStatusItemObj);
|
||||
}
|
||||
|
||||
return extendedInternalStatusObj;
|
||||
}
|
||||
|
||||
getIcon(status?: InternalStatus): string {
|
||||
const extendedInternalStatus = this.extendedInternalStatustems?.find(s => s.InternalStatus == status);
|
||||
|
||||
return extendedInternalStatus?.icon == null || extendedInternalStatus?.icon == '' ? 'animation' : extendedInternalStatus?.icon;
|
||||
}
|
||||
}
|
||||
|
||||
export class ExtendedInternalStatusItem {
|
||||
private _internalStatus: InternalStatus;
|
||||
get InternalStatus(): InternalStatus {
|
||||
return this._internalStatus;
|
||||
}
|
||||
|
||||
private _icon: string;
|
||||
get icon(): string {
|
||||
return this._icon;
|
||||
}
|
||||
|
||||
public static parseValue(value: any): ExtendedInternalStatusItem {
|
||||
const obj: ExtendedInternalStatusItem = new ExtendedInternalStatusItem();
|
||||
obj._internalStatus = value.internalStatus;
|
||||
obj._icon = value.icon;
|
||||
return obj;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
import { InternalStatus } from "@annotation-service/core/enum/internal-status.enum";
|
||||
|
||||
export class StatusIcon {
|
||||
private _internalStatus: InternalStatus;
|
||||
get InternalStatus(): InternalStatus {
|
||||
return this._internalStatus;
|
||||
}
|
||||
|
||||
private _icon: string;
|
||||
get icon(): string {
|
||||
return this._icon;
|
||||
}
|
||||
|
||||
private _id: string;
|
||||
get id(): string {
|
||||
return this._id;
|
||||
}
|
||||
|
||||
public static parseValue(value: any): StatusIcon {
|
||||
const obj: StatusIcon = new StatusIcon();
|
||||
obj._internalStatus = value.internalStatus;
|
||||
obj._icon = value.icon;
|
||||
obj._id = value.id;
|
||||
return obj;
|
||||
}
|
||||
}
|
|
@ -13,7 +13,7 @@ import { AuthProviders } from '@app/core/model/configuration-models/auth-provide
|
|||
import { AnalyticsProviders } from '@app/core/model/configuration-models/analytics-providers.model';
|
||||
import { CssColorsTenantConfiguration } from '@app/core/model/tenant-configuaration/tenant-configuration';
|
||||
import { Sidebar } from '@app/core/model/configuration-models/sidebar.model';
|
||||
import { ExtendedInternalStatus } from '@app/core/model/configuration-models/extended-internal-status.model';
|
||||
import { StatusIcon } from '@app/core/model/configuration-models/status-icon.model';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
|
@ -123,9 +123,14 @@ export class ConfigurationService extends BaseComponent {
|
|||
return this._notificationServiceEnabled;
|
||||
}
|
||||
|
||||
private _extendedInternalStatus: ExtendedInternalStatus;
|
||||
get extendedInternalStatus(): ExtendedInternalStatus {
|
||||
return this._extendedInternalStatus;
|
||||
private _statusIcons: StatusIcon[];
|
||||
get statusIcons(): StatusIcon[] {
|
||||
return this._statusIcons;
|
||||
}
|
||||
|
||||
private _defaultStatusIcon: string;
|
||||
get defaultStatusIcon(): string {
|
||||
return this._defaultStatusIcon || 'animation';
|
||||
}
|
||||
|
||||
private _annotationServiceAddress: string;
|
||||
|
@ -269,7 +274,9 @@ export class ConfigurationService extends BaseComponent {
|
|||
if (config.annotation_service) {
|
||||
this._annotationServiceEnabled = config.annotation_service.enabled;
|
||||
this._annotationServiceAddress = config.annotation_service.address;
|
||||
this._extendedInternalStatus = ExtendedInternalStatus.parseValue(config.annotation_service.extendedInternalStatus);
|
||||
this._statusIcons = [];
|
||||
config.annotation_service?.statusIcons?.forEach(statusIcon => this._statusIcons.push(StatusIcon.parseValue(statusIcon)));
|
||||
this._defaultStatusIcon = config.annotation_service.defaultStatusIcon;
|
||||
}
|
||||
this._inAppNotificationsCountInterval = config.inAppNotificationsCountInterval;
|
||||
this._newReleaseNotificationExpires = config.newReleaseNotification?.expires;
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
[ngClass]="{'selected': status?.id == getAnnotationStatusFormControl(annotationStatusFormGroup.get('annotationsStatusArray'), getParentAnnotation(thread).id).get('statusId')?.value}"
|
||||
(click)="setAnnotationStatus(annotationStatusFormGroup?.get('annotationsStatusArray'), getParentAnnotation(thread).id, status?.id); persistAnnotationStatus(annotationStatusFormGroup.get('annotationsStatusArray'), getParentAnnotation(thread).id)"
|
||||
>
|
||||
<mat-icon>{{getStatusIcon(status?.internalStatus)}}</mat-icon>
|
||||
<mat-icon>{{getStatusIcon(status)}}</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -205,8 +205,20 @@ export class AnnotationDialogComponent extends BaseComponent {
|
|||
return !isNullOrUndefined(text) && text.length !== 0 && text !== '';
|
||||
}
|
||||
|
||||
getStatusIcon(status?: InternalStatus): string {
|
||||
return this.configurationService.extendedInternalStatus?.getIcon(status);
|
||||
getStatusIcon(status: Status): string {
|
||||
let icon = this.configurationService.defaultStatusIcon;
|
||||
|
||||
if (status) {
|
||||
if (status.internalStatus != null) {
|
||||
const statusConfiguration = this.configurationService.statusIcons?.find(s => s.InternalStatus == status.internalStatus);
|
||||
if (statusConfiguration?.icon != null && statusConfiguration?.icon != '') icon = statusConfiguration?.icon;
|
||||
} else if (status.id) {
|
||||
const statusConfiguration = this.configurationService.statusIcons?.find(s => s.id == status.id.toString());
|
||||
if (statusConfiguration?.icon != null && statusConfiguration?.icon != '') icon = statusConfiguration?.icon;
|
||||
}
|
||||
}
|
||||
|
||||
return icon
|
||||
}
|
||||
|
||||
public isFormValid(value: any) {
|
||||
|
|
|
@ -27,12 +27,17 @@
|
|||
"annotation_service": {
|
||||
"enabled": true,
|
||||
"address": "http://localhost:8087/api/",
|
||||
"extendedInternalStatus": [
|
||||
"statusIcons": [
|
||||
{
|
||||
"internalStatus": "0",
|
||||
"icon": "check"
|
||||
},
|
||||
{
|
||||
"id": "948fdf9c-6b84-467c-884b-5323c5ea15d7",
|
||||
"icon": "done_all"
|
||||
}
|
||||
]
|
||||
],
|
||||
"defaultStatusIcon": "animation"
|
||||
},
|
||||
"logging": {
|
||||
"enabled": true,
|
||||
|
|
Loading…
Reference in New Issue