1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
'use strict';
import {IWorkspaceViewModelScope} from "app/view-models/workspace/workspace-view-model";
import {Activity} from "app/models";
import {ActivityLogService} from "app/services";
export interface IActivityLogViewModelScope extends IWorkspaceViewModelScope {
activityDateArray:Array<any>; //this is in order to sort the dates
activityLog:Array<Activity>;
preVersion:string;
tableHeadersList:Array<any>;
reverse:boolean;
sortBy:string;
searchBind:string;
getActivityLog(uniqueId:string):void;
onVersionChanged(version:any):void;
parseAction(action:string):string;
sort(sortBy:string):void;
}
export class ActivityLogViewModel {
static '$inject' = [
'$scope',
'$state',
'Sdc.Services.ActivityLogService'
];
constructor(private $scope:IActivityLogViewModelScope,
private $state:ng.ui.IStateService,
private activityLogService:ActivityLogService) {
this.initScope();
this.$scope.setValidState(true);
this.initSortedTableScope();
this.$scope.updateSelectedMenuItem();
// Set default sorting
this.$scope.sortBy = 'logDate';
}
private initScope():void {
this.$scope.preVersion = this.$scope.component.version;
this.$scope.onVersionChanged = (version:any):void => {
if (version.versionNumber != this.$scope.component.version) {
this.$scope.isLoading = true;
this.$scope.getActivityLog(version.versionId);
}
};
this.$scope.getActivityLog = (uniqueId:any):void => {
let onError = (response) => {
this.$scope.isLoading = false;
console.info('onFaild', response);
};
let onSuccess = (response:Array<Activity>) => {
this.$scope.activityLog = _.sortBy(response, function (o) {
return o.TIMESTAMP;
}); //response; //
this.$scope.isLoading = false;
};
this.$scope.isLoading = true;
if (this.$scope.component.isResource()) {
this.activityLogService.getActivityLogService('resources', uniqueId).then(onSuccess, onError);
}
if (this.$scope.component.isService()) {
this.activityLogService.getActivityLogService('services', uniqueId).then(onSuccess, onError);
}
};
if (!this.$scope.activityLog || this.$scope.preVersion != this.$scope.component.version) {
this.$scope.getActivityLog(this.$scope.component.uniqueId);
}
this.$scope.parseAction = (action:string) => {
return action ? action.split(/(?=[A-Z])/).join(' ') : '';
};
}
private initSortedTableScope = ():void => {
this.$scope.tableHeadersList = [
{title: 'Date', property: 'dateFormat'},
{title: 'Action', property: 'ACTION'},
{title: 'Comment', property: 'COMMENT'},
{title: 'Username', property: 'MODIFIER'},
{title: 'Status', property: 'STATUS'}
];
this.$scope.sort = (sortBy:string):void => {
this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false;
this.$scope.sortBy = sortBy;
};
};
}
|