@esfaenza/admin-module 15.2.26 → 15.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/admin-module.comms.service.mjs +4 -4
- package/esm2020/lib/admin-module.module.mjs +5 -5
- package/esm2020/lib/components/_shared/node_detail.component.loc.mjs +4 -4
- package/esm2020/lib/components/_shared/node_detail.component.mjs +4 -4
- package/esm2020/lib/components/audits/adm_audits.component.loc.mjs +4 -4
- package/esm2020/lib/components/audits/adm_audits.component.mjs +16 -19
- package/esm2020/lib/components/dynamic_views/adm_dynamic_views.component.loc.mjs +4 -4
- package/esm2020/lib/components/dynamic_views/adm_dynamic_views.component.mjs +18 -21
- package/esm2020/lib/components/enqueues/adm_enq.component.loc.mjs +4 -4
- package/esm2020/lib/components/enqueues/adm_enq.component.mjs +16 -18
- package/esm2020/lib/components/logs/adm_logs.component.loc.mjs +4 -4
- package/esm2020/lib/components/logs/adm_logs.component.mjs +12 -14
- package/esm2020/lib/components/metrics/metrics_search.component.loc.mjs +4 -4
- package/esm2020/lib/components/metrics/metrics_search.component.mjs +46 -50
- package/esm2020/lib/components/profiler/adm_profiler.component.loc.mjs +4 -4
- package/esm2020/lib/components/profiler/adm_profiler.component.mjs +24 -32
- package/esm2020/lib/components/topact/topact_search.component.loc.mjs +4 -4
- package/esm2020/lib/components/topact/topact_search.component.mjs +30 -35
- package/esm2020/lib/components/workers/adm_wrk.component.loc.mjs +4 -4
- package/esm2020/lib/components/workers/adm_wrk.component.mjs +29 -48
- package/esm2020/lib/models/components/ProfilerDataNode.loc.mjs +4 -4
- package/esm2020/lib/pipes/format_time.pipe.mjs +4 -4
- package/esm2020/lib/services/admin-module.base.service.mjs +131 -0
- package/fesm2015/esfaenza-admin-module.mjs +367 -241
- package/fesm2015/esfaenza-admin-module.mjs.map +1 -1
- package/fesm2020/esfaenza-admin-module.mjs +334 -268
- package/fesm2020/esfaenza-admin-module.mjs.map +1 -1
- package/lib/components/audits/adm_audits.component.d.ts +4 -4
- package/lib/components/dynamic_views/adm_dynamic_views.component.d.ts +5 -5
- package/lib/components/enqueues/adm_enq.component.d.ts +4 -4
- package/lib/components/logs/adm_logs.component.d.ts +4 -4
- package/lib/components/metrics/metrics_search.component.d.ts +5 -5
- package/lib/components/profiler/adm_profiler.component.d.ts +6 -7
- package/lib/components/topact/topact_search.component.d.ts +4 -4
- package/lib/components/workers/adm_wrk.component.d.ts +7 -5
- package/lib/services/admin-module.base.service.d.ts +41 -0
- package/package.json +5 -12
- package/esm2020/lib/models/externals/Repository.mjs +0 -25
- package/lib/models/externals/Repository.d.ts +0 -24
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i5$1 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i7 from '@angular/forms';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
@@ -11,28 +11,29 @@ import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
|
11
11
|
import { MatDayjsDateModule } from '@esfaenza/material-dayjs-adapter';
|
|
12
12
|
import { MatLegacyInputModule } from '@angular/material/legacy-input';
|
|
13
13
|
import { NgxMatDatetimePickerModule } from '@angular-material-components/datetime-picker';
|
|
14
|
-
import * as i8 from 'ngx-bootstrap/modal';
|
|
14
|
+
import * as i8$1 from 'ngx-bootstrap/modal';
|
|
15
15
|
import { ModalModule } from 'ngx-bootstrap/modal';
|
|
16
16
|
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
|
|
17
17
|
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
18
|
-
import * as
|
|
18
|
+
import * as i8 from '@esfaenza/es-table';
|
|
19
19
|
import { AppSearch, EsTableOperationDefinition, EsTableModule } from '@esfaenza/es-table';
|
|
20
|
-
import * as i9
|
|
20
|
+
import * as i9 from '@esfaenza/forms-and-validations';
|
|
21
21
|
import { FormsAndValidationsModule } from '@esfaenza/forms-and-validations';
|
|
22
22
|
import * as i3$1 from '@esfaenza/es-charts';
|
|
23
23
|
import { LineSerie, LineChartData, PieChartData, KeyValueColor, DateValue, Limit, EsChartsModule } from '@esfaenza/es-charts';
|
|
24
24
|
import { EsGertrudeModule } from '@esfaenza/gertrude';
|
|
25
|
-
import * as i1 from '@esfaenza/extensions';
|
|
26
|
-
import { InboundMessageTypes, Export, ExportLocalization, ExtensionsModule } from '@esfaenza/extensions';
|
|
27
|
-
import * as
|
|
25
|
+
import * as i1$1 from '@esfaenza/extensions';
|
|
26
|
+
import { MessageService, InboundMessageTypes, Export, ExportLocalization, ExtensionsModule } from '@esfaenza/extensions';
|
|
27
|
+
import * as i1 from '@esfaenza/localizations';
|
|
28
28
|
import { LocalizationService, LocalizationModule } from '@esfaenza/localizations';
|
|
29
29
|
import { ContextMenuModule } from '@esfaenza/ngx-contextmenu';
|
|
30
30
|
import { __awaiter, __decorate } from 'tslib';
|
|
31
31
|
import * as i3 from '@esfaenza/preferences';
|
|
32
|
-
import * as i4 from '@esfaenza/httpservice';
|
|
33
32
|
import { HttpParams } from '@angular/common/http';
|
|
34
|
-
import
|
|
35
|
-
import {
|
|
33
|
+
import * as i4 from '@esfaenza/httpservice';
|
|
34
|
+
import { HTTPService } from '@esfaenza/httpservice';
|
|
35
|
+
import { firstValueFrom, catchError, of, ReplaySubject, interval } from 'rxjs';
|
|
36
|
+
import { takeUntil } from 'rxjs/operators';
|
|
36
37
|
|
|
37
38
|
class AuditsView extends AppSearch {
|
|
38
39
|
constructor() {
|
|
@@ -42,31 +43,6 @@ class AuditsView extends AppSearch {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
const Repository = {
|
|
46
|
-
GET_Director_ChangeProcessConsumerGroup: "/api/Director/ChangeProcessConsumerGroup",
|
|
47
|
-
GET_Director_ClearAllCaches: "/api/Director/ClearAllCaches",
|
|
48
|
-
GET_Director_GetConsumerGroups: "/api/Director/GetConsumerGroups#cache",
|
|
49
|
-
GET_Director_GetInfos: "/api/Director/GetInfos",
|
|
50
|
-
GET_Director_GetMetrics: "/api/Director/GetMetrics",
|
|
51
|
-
POST_Director_GetMetrics: "/api/Director/GetMetrics",
|
|
52
|
-
POST_Director_GetProfilerDataNodes: "/api/Director/GetProfilerDataNodes",
|
|
53
|
-
POST_Director_GetServerAudits: "/api/Director/GetServerAudits",
|
|
54
|
-
POST_Director_GetDynamicViewData: "/api/Director/GetDynamicViewData",
|
|
55
|
-
POST_Director_GetServerLocks: "/api/Director/GetServerLocks",
|
|
56
|
-
GET_Director_GetServerLogs: "/api/Director/GetServerLogs",
|
|
57
|
-
GET_Director_GetDynamicViews: "/api/Director/GetDynamicViews",
|
|
58
|
-
POST_Director_GetServerWorkers: "/api/Director/GetServerWorkers",
|
|
59
|
-
POST_Director_GetTopActivities: "/api/Director/GetTopActivities",
|
|
60
|
-
GET_Director_GetWorkerStatus: "/api/Director/GetWorkerStatus",
|
|
61
|
-
GET_Director_InvalidateServerSideCache: "/api/Director/InvalidateServerSideCache",
|
|
62
|
-
GET_Director_KillProcess: "/api/Director/KillProcess",
|
|
63
|
-
GET_Director_SetProcessTracing: "/api/Director/SetProcessTracing",
|
|
64
|
-
GET_Director_StartWorker: "/api/Director/StartWorker",
|
|
65
|
-
GET_Director_StopWorker: "/api/Director/StopWorker",
|
|
66
|
-
GET_Director_GetNodeStats: "/api/Director/GetNodeStats",
|
|
67
|
-
GET_Director_GetSessionStats: "/api/Director/GetSessionStats",
|
|
68
|
-
};
|
|
69
|
-
|
|
70
46
|
const ADM_MODULE_PATH = new InjectionToken('ADM_MODULE_PATH');
|
|
71
47
|
const ADM_CONVERSATIONS = new InjectionToken('ADM_CONVERSATIONS');
|
|
72
48
|
|
|
@@ -92,20 +68,177 @@ class AdmAuditLoc extends LocalizationService {
|
|
|
92
68
|
super.set("it->en", "Cod. Conversation", ["Conversation ID"]);
|
|
93
69
|
}
|
|
94
70
|
}
|
|
95
|
-
AdmAuditLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
96
|
-
AdmAuditLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
71
|
+
AdmAuditLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmAuditLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
72
|
+
AdmAuditLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmAuditLoc });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmAuditLoc, decorators: [{
|
|
74
|
+
type: Injectable
|
|
75
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
76
|
+
|
|
77
|
+
// Chiamate ai Repository
|
|
78
|
+
const GET_Director_ChangeProcessConsumerGroup = "/api/Director/ChangeProcessConsumerGroup";
|
|
79
|
+
const GET_Director_ClearAllCaches = "/api/Director/ClearAllCaches";
|
|
80
|
+
const GET_Director_GetConsumerGroups = "/api/Director/GetConsumerGroups#cache";
|
|
81
|
+
const GET_Director_GetInfos = "/api/Director/GetInfos";
|
|
82
|
+
const GET_Director_GetMetrics = "/api/Director/GetMetrics";
|
|
83
|
+
const POST_Director_GetMetrics = "/api/Director/GetMetrics";
|
|
84
|
+
const POST_Director_GetProfilerDataNodes = "/api/Director/GetProfilerDataNodes";
|
|
85
|
+
const POST_Director_GetServerAudits = "/api/Director/GetServerAudits";
|
|
86
|
+
const POST_Director_GetDynamicViewData = "/api/Director/GetDynamicViewData";
|
|
87
|
+
const POST_Director_GetServerLocks = "/api/Director/GetServerLocks";
|
|
88
|
+
const GET_Director_GetServerLogs = "/api/Director/GetServerLogs";
|
|
89
|
+
const GET_Director_GetDynamicViews = "/api/Director/GetDynamicViews";
|
|
90
|
+
const POST_Director_GetServerWorkers = "/api/Director/GetServerWorkers";
|
|
91
|
+
const POST_Director_GetTopActivities = "/api/Director/GetTopActivities";
|
|
92
|
+
const GET_Director_GetWorkerStatus = "/api/Director/GetWorkerStatus";
|
|
93
|
+
const GET_Director_InvalidateServerSideCache = "/api/Director/InvalidateServerSideCache";
|
|
94
|
+
const GET_Director_KillProcess = "/api/Director/KillProcess";
|
|
95
|
+
const GET_Director_SetProcessTracing = "/api/Director/SetProcessTracing";
|
|
96
|
+
const GET_Director_StartWorker = "/api/Director/StartWorker";
|
|
97
|
+
const GET_Director_StopWorker = "/api/Director/StopWorker";
|
|
98
|
+
const GET_Director_GetNodeStats = "/api/Director/GetNodeStats";
|
|
99
|
+
const GET_Director_GetSessionStats = "/api/Director/GetSessionStats";
|
|
100
|
+
class AdminModuleBaseService {
|
|
101
|
+
constructor(injector) {
|
|
102
|
+
this.injector = injector;
|
|
103
|
+
this.http = this.injector.get(HTTPService);
|
|
104
|
+
this.msgExts = this.injector.get(MessageService);
|
|
105
|
+
}
|
|
106
|
+
getServerWorkers(sv) {
|
|
107
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
let ret = yield firstValueFrom(this.http.post(POST_Director_GetServerWorkers, sv));
|
|
109
|
+
return ret;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
doSetProcessTracing(instanceid, sid, serial, enable) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
var pars = new HttpParams()
|
|
115
|
+
.set("instanceid", instanceid)
|
|
116
|
+
.set("sid", sid)
|
|
117
|
+
.set("serial", serial)
|
|
118
|
+
.set("enable", enable);
|
|
119
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_SetProcessTracing, pars));
|
|
120
|
+
return ret;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
doKillProcess(instanceid, sid, serial) {
|
|
124
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
125
|
+
var pars = new HttpParams()
|
|
126
|
+
.set("instanceid", instanceid)
|
|
127
|
+
.set("sid", sid)
|
|
128
|
+
.set("serial", serial);
|
|
129
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_KillProcess, pars));
|
|
130
|
+
return ret;
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
doChangeProcessConsumerGroup(instanceid, sid, serial, consumerGroup) {
|
|
134
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
+
var pars = new HttpParams()
|
|
136
|
+
.set("instanceid", instanceid)
|
|
137
|
+
.set("sid", sid)
|
|
138
|
+
.set("serial", serial)
|
|
139
|
+
.set("consumer_group", consumerGroup);
|
|
140
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_ChangeProcessConsumerGroup, pars));
|
|
141
|
+
return ret;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
getConsumerGroups() {
|
|
145
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
146
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_GetConsumerGroups));
|
|
147
|
+
return ret;
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
getServerLogs() {
|
|
151
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_GetServerLogs));
|
|
153
|
+
return ret;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
getTopActivities(sv) {
|
|
157
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
158
|
+
let ret = yield firstValueFrom(this.http.post(POST_Director_GetTopActivities, sv));
|
|
159
|
+
return ret;
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
getInfos() {
|
|
163
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
164
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_GetInfos, null, null, false).pipe(catchError(_ => of(null))));
|
|
165
|
+
return ret;
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
getNodeStats(nodeId) {
|
|
169
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
170
|
+
let pars = new HttpParams().set("nodeId", nodeId);
|
|
171
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_GetNodeStats, pars));
|
|
172
|
+
return ret;
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
getSessionStats(sid, serial) {
|
|
176
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
177
|
+
let pars = new HttpParams().set('sid', sid).set('serial', serial);
|
|
178
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_GetSessionStats, pars));
|
|
179
|
+
return ret;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
getProfilerDataNodes(sv) {
|
|
183
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
184
|
+
let ret = yield firstValueFrom(this.http.post(POST_Director_GetProfilerDataNodes, sv));
|
|
185
|
+
return ret;
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
getMetrics(sv) {
|
|
189
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
190
|
+
let ret = yield firstValueFrom(this.http.post(POST_Director_GetMetrics, sv));
|
|
191
|
+
return ret;
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
getMetricsList(from, to) {
|
|
195
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
196
|
+
let pars = new HttpParams()
|
|
197
|
+
.set("from", from || "")
|
|
198
|
+
.set("to", to || "");
|
|
199
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_GetMetrics, pars));
|
|
200
|
+
return ret.sort((a, b) => a.name.localeCompare(b.name));
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
getServerLocks(sv) {
|
|
204
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
205
|
+
let ret = yield firstValueFrom(this.http.post(POST_Director_GetServerLocks, sv));
|
|
206
|
+
return ret;
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
getDynamicViewData(sv) {
|
|
210
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
+
let ret = yield firstValueFrom(this.http.post(POST_Director_GetDynamicViewData, sv));
|
|
212
|
+
return ret;
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
getDynamicViews() {
|
|
216
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
217
|
+
let ret = yield firstValueFrom(this.http.get(GET_Director_GetDynamicViews));
|
|
218
|
+
return ret;
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
getServerAudits(sv) {
|
|
222
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
223
|
+
let ret = yield firstValueFrom(this.http.post(POST_Director_GetServerAudits, sv));
|
|
224
|
+
return ret;
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
AdminModuleBaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdminModuleBaseService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
229
|
+
AdminModuleBaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdminModuleBaseService });
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdminModuleBaseService, decorators: [{
|
|
98
231
|
type: Injectable
|
|
99
232
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
100
233
|
|
|
101
234
|
class AdmAuditsComponent {
|
|
102
|
-
constructor(lc, intercom, localStorage,
|
|
235
|
+
constructor(lc, intercom, localStorage, route, location, adms, mod, usesConversations) {
|
|
103
236
|
this.lc = lc;
|
|
104
237
|
this.intercom = intercom;
|
|
105
238
|
this.localStorage = localStorage;
|
|
106
|
-
this.http = http;
|
|
107
239
|
this.route = route;
|
|
108
240
|
this.location = location;
|
|
241
|
+
this.adms = adms;
|
|
109
242
|
this.mod = mod;
|
|
110
243
|
this.usesConversations = usesConversations;
|
|
111
244
|
this.searchView = new AuditsView();
|
|
@@ -152,7 +285,7 @@ class AdmAuditsComponent {
|
|
|
152
285
|
//Altirmenti genero il modello nuovo normalmente
|
|
153
286
|
if (HotPotato) {
|
|
154
287
|
this.searchView = HotPotato;
|
|
155
|
-
this.POSTGetProcesses(
|
|
288
|
+
this.POSTGetProcesses(this.searchView);
|
|
156
289
|
}
|
|
157
290
|
else {
|
|
158
291
|
this.searchView = new AuditsView();
|
|
@@ -165,23 +298,23 @@ class AdmAuditsComponent {
|
|
|
165
298
|
this.searchInProgress = true;
|
|
166
299
|
if (resetPage)
|
|
167
300
|
this.searchView.page = 1;
|
|
168
|
-
this.POSTGetProcesses(
|
|
301
|
+
this.POSTGetProcesses(this.searchView);
|
|
169
302
|
}
|
|
170
|
-
POSTGetProcesses(
|
|
171
|
-
this
|
|
172
|
-
this.searchView =
|
|
303
|
+
POSTGetProcesses(data) {
|
|
304
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
305
|
+
this.searchView = yield this.adms.getServerAudits(data);
|
|
173
306
|
this.searchInProgress = false;
|
|
174
307
|
this.localStorage.setItem("HotAudittato", this.searchView).subscribe();
|
|
175
308
|
});
|
|
176
309
|
}
|
|
177
310
|
}
|
|
178
|
-
AdmAuditsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
179
|
-
AdmAuditsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmAuditsComponent, selector: "adm_audits", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Audit Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterda\" name=\"filterda\" [Placeholder]=\"'Da' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtera\" name=\"filtera\" [Placeholder]=\"'A' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filteruser\" [Placeholder]=\"'Utente' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteraddress\" name=\"filteraddress\" [Placeholder]=\"'Indirizzo' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterroute\" name=\"filterroute\" [Placeholder]=\"'Route' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Azione' | localize: lc\" [(ngModel)]=\"searchView.filteraction\" name=\"filteraction\" [Source]=\"Actions\"></form-select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Metodo HTTP' | localize: lc\" [(ngModel)]=\"searchView.filterhttp\" name=\"filterhttp\" [Source]=\"HttpMethods\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterargs\" name=\"filterargs\" [Placeholder]=\"'Argomenti' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjid\" name=\"filterobjid\" [Placeholder]=\"'ID Oggetto' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjtype\" name=\"filterobjtype\" [Placeholder]=\"'Tipo Oggetto' | localize: lc\"></form-input>\r\n </div>\r\n <!-- Per ora commentato -->\r\n <!-- <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\" *ngIf=\"usesConversations\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterconversationid\" name=\"filterconversationid\" [Placeholder]=\"'Cod. Conversation' | localize: lc\"></form-input>\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchInProgress\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico gli Audit dell\\'Applicazione' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [MultipleOrderingDirectives]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n\r\n <span *th=\"'Timestamp'\">{{'Data' | localize: lc}}</span>\r\n <span *th=\"'User'\">{{'Utente' | localize: lc}}</span>\r\n <span *th=\"'RemoteAddress'\">{{'Indirizzo' | localize: lc}}</span>\r\n <span *th=\"'Action'\">{{'Azione' | localize: lc}}</span>\r\n <span *th=\"'HttpMethod'\">{{'Metodo HTTP' | localize: lc}}</span>\r\n <span *th=\"'Route'\">{{'Route' | localize : lc}}</span>\r\n <span *th=\"'Args'\">{{'Argomenti' | localize: lc}}</span>\r\n <span *th=\"'HttpResponse'\">{{'Risposta HTTP' | localize: lc}}</span>\r\n <span *th=\"'NonStdErrorMessage'\">{{'Codice Errore Applicativo' | localize: lc}}</span>\r\n <span *th=\"'ConvId'; If: usesConversations\">{{'Cod. Conversation' | localize: lc}}</span>\r\n <span *th=\"'ObjectType'\">{{'Tipo Oggetto' | localize: lc}}</span>\r\n <span *th=\"'ObjectId'\">{{'ID Oggetto' | localize: lc}}</span>\r\n <span *th=\"'ObjectData'\">{{'Dati Oggetto' | localize: lc}}</span>\r\n\r\n <strong *td=\"'Timestamp'; let item\">{{item.timestamp | loc_date:'DD/MM/YYYY HH:mm:ss'}}</strong>\r\n <span *td=\"'User'; let item\">{{item.user}}</span>\r\n <span *td=\"'RemoteAddress'; let item\">{{item.address}}</span>\r\n <span *td=\"'Action'; let item\">{{item.action}}</span>\r\n <span *td=\"'HttpMethod'; let item\">{{item.httpmethod}}</span>\r\n <span *td=\"'Route'; let item\">{{item.route}}</span>\r\n <span *td=\"'Args'; let item\">{{item.args}}</span>\r\n <span *td=\"'HttpResponse'; let item\">{{item.httpresponse}}</span>\r\n <span *td=\"'NonStdErrorMessage'; let item\">{{item.mdmerrorcode}}</span>\r\n <span *td=\"'ConvId'; If: usesConversations; let item\">{{item.conversationid}}</span>\r\n <span *td=\"'ObjectType'; let item\">{{item.objecttype}}</span>\r\n <span *td=\"'ObjectId'; let item\">{{item.objectid}}</span>\r\n <span *td=\"'ObjectData'; let item\">{{item.objectdata}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdForProperty", "tdIf", "tdClass", "tdPropertyAccessor", "tdAlignment", "tdFormat", "tdIconClass", "tdConditionField", "tdConditionValue", "tdTitle", "tdContent"] }, { kind: "directive", type: i9.EsThDirective, selector: "[th]", inputs: ["th", "thPinned", "thPinnable", "thPinnedWidth", "thVisible", "thFixed", "thParent", "thOrder", "thOrderable", "thWrap", "thResizable", "thClass", "thShrink", "thGroupClass", "thIf", "thEmpty", "thGroup", "thAggregation", "thProperty", "thType", "thSource", "thMulti", "thStaticContent", "thBackgroundColor", "thAlignment", "thFormat", "thEditorName", "thEditorOptions", "thRendererName", "thRoutePath", "thRouteParameterProperties"] }, { kind: "component", type: i9.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i9$1.FormDateComponent, selector: "form-date", inputs: ["JsDates"] }, { kind: "component", type: i9$1.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i9$1.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }, { kind: "pipe", type: i1.LocDatePipe, name: "loc_date" }], viewProviders: [{ provide: LocalizationService, useClass: AdmAuditLoc }] });
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
311
|
+
AdmAuditsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmAuditsComponent, deps: [{ token: i1.LocalizationService }, { token: i1$1.InterComService }, { token: i3.PreferencesService }, { token: i5.ActivatedRoute }, { token: i5$1.Location }, { token: AdminModuleBaseService }, { token: ADM_MODULE_PATH }, { token: ADM_CONVERSATIONS }], target: i0.ɵɵFactoryTarget.Component });
|
|
312
|
+
AdmAuditsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmAuditsComponent, selector: "adm_audits", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Audit Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterda\" name=\"filterda\" [Placeholder]=\"'Da' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtera\" name=\"filtera\" [Placeholder]=\"'A' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filteruser\" [Placeholder]=\"'Utente' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteraddress\" name=\"filteraddress\" [Placeholder]=\"'Indirizzo' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterroute\" name=\"filterroute\" [Placeholder]=\"'Route' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Azione' | localize: lc\" [(ngModel)]=\"searchView.filteraction\" name=\"filteraction\" [Source]=\"Actions\"></form-select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Metodo HTTP' | localize: lc\" [(ngModel)]=\"searchView.filterhttp\" name=\"filterhttp\" [Source]=\"HttpMethods\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterargs\" name=\"filterargs\" [Placeholder]=\"'Argomenti' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjid\" name=\"filterobjid\" [Placeholder]=\"'ID Oggetto' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjtype\" name=\"filterobjtype\" [Placeholder]=\"'Tipo Oggetto' | localize: lc\"></form-input>\r\n </div>\r\n <!-- Per ora commentato -->\r\n <!-- <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\" *ngIf=\"usesConversations\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterconversationid\" name=\"filterconversationid\" [Placeholder]=\"'Cod. Conversation' | localize: lc\"></form-input>\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchInProgress\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico gli Audit dell\\'Applicazione' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [MultipleOrderingDirectives]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n\r\n <span *th=\"'Timestamp'\">{{'Data' | localize: lc}}</span>\r\n <span *th=\"'User'\">{{'Utente' | localize: lc}}</span>\r\n <span *th=\"'RemoteAddress'\">{{'Indirizzo' | localize: lc}}</span>\r\n <span *th=\"'Action'\">{{'Azione' | localize: lc}}</span>\r\n <span *th=\"'HttpMethod'\">{{'Metodo HTTP' | localize: lc}}</span>\r\n <span *th=\"'Route'\">{{'Route' | localize : lc}}</span>\r\n <span *th=\"'Args'\">{{'Argomenti' | localize: lc}}</span>\r\n <span *th=\"'HttpResponse'\">{{'Risposta HTTP' | localize: lc}}</span>\r\n <span *th=\"'NonStdErrorMessage'\">{{'Codice Errore Applicativo' | localize: lc}}</span>\r\n <span *th=\"'ConvId'; If: usesConversations\">{{'Cod. Conversation' | localize: lc}}</span>\r\n <span *th=\"'ObjectType'\">{{'Tipo Oggetto' | localize: lc}}</span>\r\n <span *th=\"'ObjectId'\">{{'ID Oggetto' | localize: lc}}</span>\r\n <span *th=\"'ObjectData'\">{{'Dati Oggetto' | localize: lc}}</span>\r\n\r\n <strong *td=\"'Timestamp'; let item\">{{item.timestamp | loc_date:'DD/MM/YYYY HH:mm:ss'}}</strong>\r\n <span *td=\"'User'; let item\">{{item.user}}</span>\r\n <span *td=\"'RemoteAddress'; let item\">{{item.address}}</span>\r\n <span *td=\"'Action'; let item\">{{item.action}}</span>\r\n <span *td=\"'HttpMethod'; let item\">{{item.httpmethod}}</span>\r\n <span *td=\"'Route'; let item\">{{item.route}}</span>\r\n <span *td=\"'Args'; let item\">{{item.args}}</span>\r\n <span *td=\"'HttpResponse'; let item\">{{item.httpresponse}}</span>\r\n <span *td=\"'NonStdErrorMessage'; let item\">{{item.mdmerrorcode}}</span>\r\n <span *td=\"'ConvId'; If: usesConversations; let item\">{{item.conversationid}}</span>\r\n <span *td=\"'ObjectType'; let item\">{{item.objecttype}}</span>\r\n <span *td=\"'ObjectId'; let item\">{{item.objectid}}</span>\r\n <span *td=\"'ObjectData'; let item\">{{item.objectdata}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdForProperty", "tdIf", "tdClass", "tdPropertyAccessor", "tdAlignment", "tdFormat", "tdIconClass", "tdConditionField", "tdConditionValue", "tdTitle", "tdContent"] }, { kind: "directive", type: i8.EsThDirective, selector: "[th]", inputs: ["th", "thPinned", "thPinnable", "thPinnedWidth", "thVisible", "thFixed", "thParent", "thOrder", "thOrderable", "thWrap", "thResizable", "thClass", "thShrink", "thGroupClass", "thIf", "thEmpty", "thGroup", "thAggregation", "thProperty", "thType", "thSource", "thMulti", "thStaticContent", "thBackgroundColor", "thAlignment", "thFormat", "thEditorName", "thEditorOptions", "thRendererName", "thRoutePath", "thRouteParameterProperties"] }, { kind: "component", type: i8.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i9.FormDateComponent, selector: "form-date", inputs: ["JsDates"] }, { kind: "component", type: i9.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i9.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }, { kind: "pipe", type: i1$1.LocDatePipe, name: "loc_date" }], viewProviders: [{ provide: LocalizationService, useClass: AdmAuditLoc }] });
|
|
313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmAuditsComponent, decorators: [{
|
|
181
314
|
type: Component,
|
|
182
315
|
args: [{ selector: "adm_audits", viewProviders: [{ provide: LocalizationService, useClass: AdmAuditLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Audit Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterda\" name=\"filterda\" [Placeholder]=\"'Da' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtera\" name=\"filtera\" [Placeholder]=\"'A' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filteruser\" [Placeholder]=\"'Utente' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteraddress\" name=\"filteraddress\" [Placeholder]=\"'Indirizzo' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterroute\" name=\"filterroute\" [Placeholder]=\"'Route' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Azione' | localize: lc\" [(ngModel)]=\"searchView.filteraction\" name=\"filteraction\" [Source]=\"Actions\"></form-select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [SelectLabel]=\"'Metodo HTTP' | localize: lc\" [(ngModel)]=\"searchView.filterhttp\" name=\"filterhttp\" [Source]=\"HttpMethods\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterargs\" name=\"filterargs\" [Placeholder]=\"'Argomenti' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjid\" name=\"filterobjid\" [Placeholder]=\"'ID Oggetto' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterobjtype\" name=\"filterobjtype\" [Placeholder]=\"'Tipo Oggetto' | localize: lc\"></form-input>\r\n </div>\r\n <!-- Per ora commentato -->\r\n <!-- <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\" *ngIf=\"usesConversations\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterconversationid\" name=\"filterconversationid\" [Placeholder]=\"'Cod. Conversation' | localize: lc\"></form-input>\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchInProgress\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico gli Audit dell\\'Applicazione' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [MultipleOrderingDirectives]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n\r\n <span *th=\"'Timestamp'\">{{'Data' | localize: lc}}</span>\r\n <span *th=\"'User'\">{{'Utente' | localize: lc}}</span>\r\n <span *th=\"'RemoteAddress'\">{{'Indirizzo' | localize: lc}}</span>\r\n <span *th=\"'Action'\">{{'Azione' | localize: lc}}</span>\r\n <span *th=\"'HttpMethod'\">{{'Metodo HTTP' | localize: lc}}</span>\r\n <span *th=\"'Route'\">{{'Route' | localize : lc}}</span>\r\n <span *th=\"'Args'\">{{'Argomenti' | localize: lc}}</span>\r\n <span *th=\"'HttpResponse'\">{{'Risposta HTTP' | localize: lc}}</span>\r\n <span *th=\"'NonStdErrorMessage'\">{{'Codice Errore Applicativo' | localize: lc}}</span>\r\n <span *th=\"'ConvId'; If: usesConversations\">{{'Cod. Conversation' | localize: lc}}</span>\r\n <span *th=\"'ObjectType'\">{{'Tipo Oggetto' | localize: lc}}</span>\r\n <span *th=\"'ObjectId'\">{{'ID Oggetto' | localize: lc}}</span>\r\n <span *th=\"'ObjectData'\">{{'Dati Oggetto' | localize: lc}}</span>\r\n\r\n <strong *td=\"'Timestamp'; let item\">{{item.timestamp | loc_date:'DD/MM/YYYY HH:mm:ss'}}</strong>\r\n <span *td=\"'User'; let item\">{{item.user}}</span>\r\n <span *td=\"'RemoteAddress'; let item\">{{item.address}}</span>\r\n <span *td=\"'Action'; let item\">{{item.action}}</span>\r\n <span *td=\"'HttpMethod'; let item\">{{item.httpmethod}}</span>\r\n <span *td=\"'Route'; let item\">{{item.route}}</span>\r\n <span *td=\"'Args'; let item\">{{item.args}}</span>\r\n <span *td=\"'HttpResponse'; let item\">{{item.httpresponse}}</span>\r\n <span *td=\"'NonStdErrorMessage'; let item\">{{item.mdmerrorcode}}</span>\r\n <span *td=\"'ConvId'; If: usesConversations; let item\">{{item.conversationid}}</span>\r\n <span *td=\"'ObjectType'; let item\">{{item.objecttype}}</span>\r\n <span *td=\"'ObjectId'; let item\">{{item.objectid}}</span>\r\n <span *td=\"'ObjectData'; let item\">{{item.objectdata}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
183
316
|
}], ctorParameters: function () {
|
|
184
|
-
return [{ type:
|
|
317
|
+
return [{ type: i1.LocalizationService }, { type: i1$1.InterComService }, { type: i3.PreferencesService }, { type: i5.ActivatedRoute }, { type: i5$1.Location }, { type: AdminModuleBaseService }, { type: undefined, decorators: [{
|
|
185
318
|
type: Inject,
|
|
186
319
|
args: [ADM_MODULE_PATH]
|
|
187
320
|
}] }, { type: undefined, decorators: [{
|
|
@@ -228,14 +361,14 @@ class AdmWrkLoc extends LocalizationService {
|
|
|
228
361
|
super.set("it->en", "Sei sicuro di voler Terminare il processo selezionato? L'utente relativo sara' disconnesso", ["Are you sure you wish to kill the selected process? The associated user will be disconnected"]);
|
|
229
362
|
}
|
|
230
363
|
}
|
|
231
|
-
AdmWrkLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
232
|
-
AdmWrkLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
364
|
+
AdmWrkLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmWrkLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
365
|
+
AdmWrkLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmWrkLoc });
|
|
366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmWrkLoc, decorators: [{
|
|
234
367
|
type: Injectable
|
|
235
368
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
236
369
|
|
|
237
370
|
class AdmWrkComponent {
|
|
238
|
-
constructor(utiExts, msgExts, lc, localStorage, intercom, http, route, location, mod) {
|
|
371
|
+
constructor(utiExts, msgExts, lc, localStorage, intercom, http, route, location, adms, mod) {
|
|
239
372
|
this.utiExts = utiExts;
|
|
240
373
|
this.msgExts = msgExts;
|
|
241
374
|
this.lc = lc;
|
|
@@ -244,6 +377,7 @@ class AdmWrkComponent {
|
|
|
244
377
|
this.http = http;
|
|
245
378
|
this.route = route;
|
|
246
379
|
this.location = location;
|
|
380
|
+
this.adms = adms;
|
|
247
381
|
this.mod = mod;
|
|
248
382
|
this.searchView = new ProcessesView();
|
|
249
383
|
this.DynamicOps = [];
|
|
@@ -297,7 +431,7 @@ class AdmWrkComponent {
|
|
|
297
431
|
init(HotPotato) {
|
|
298
432
|
if (HotPotato) {
|
|
299
433
|
this.searchView = HotPotato;
|
|
300
|
-
this.
|
|
434
|
+
this.POSTGetServerWorkers();
|
|
301
435
|
}
|
|
302
436
|
else {
|
|
303
437
|
this.searchView = new ProcessesView();
|
|
@@ -308,11 +442,11 @@ class AdmWrkComponent {
|
|
|
308
442
|
this.searchView.searchinprogress = true;
|
|
309
443
|
if (resetPage)
|
|
310
444
|
this.searchView.page = 1;
|
|
311
|
-
this.
|
|
445
|
+
this.POSTGetServerWorkers();
|
|
312
446
|
}
|
|
313
|
-
|
|
314
|
-
this
|
|
315
|
-
this.searchView =
|
|
447
|
+
POSTGetServerWorkers() {
|
|
448
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
449
|
+
this.searchView = yield this.adms.getServerWorkers(this.searchView);
|
|
316
450
|
this.searchView.searchinprogress = false;
|
|
317
451
|
this.localStorage.setItem("HotProcessato", this.searchView).subscribe();
|
|
318
452
|
});
|
|
@@ -337,25 +471,16 @@ class AdmWrkComponent {
|
|
|
337
471
|
}
|
|
338
472
|
}
|
|
339
473
|
toggleTracing(process, tracing) {
|
|
340
|
-
|
|
341
|
-
.
|
|
342
|
-
.
|
|
343
|
-
.set("serial", process.properties["serial"] || process.properties["SERIAL"])
|
|
344
|
-
.set("enable", tracing.toString());
|
|
345
|
-
this.http.get(Repository["GET_Director_SetProcessTracing"], pars).subscribe(t => {
|
|
346
|
-
this.msgExts.manageStringResponse(t, "", this.lc.loc("Errori nella modifica del Tracing del Processo"), () => this.sendSearch());
|
|
474
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
475
|
+
let res = yield this.adms.doSetProcessTracing(process.properties["inst_id"] || process.properties["INST_ID"], process.properties["sid"] || process.properties["SID"], process.properties["serial"] || process.properties["SERIAL"], tracing.toString());
|
|
476
|
+
this.msgExts.manageStringResponse(res, "", this.lc.loc("Errori nella modifica del Tracing del Processo"), () => this.sendSearch());
|
|
347
477
|
});
|
|
348
478
|
}
|
|
349
479
|
killProcess(process) {
|
|
350
|
-
this.msgExts.simpleWarningWithChoice(this.lc.loc("Conferma Terminazione del Processo"), this.lc.loc("Sei sicuro di voler Terminare il processo selezionato? L'utente relativo sara' disconnesso"), () => {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
.set("serial", process.properties["serial"] || process.properties["SERIAL"]);
|
|
355
|
-
this.http.get(Repository["GET_Director_KillProcess"], pars).subscribe(t => {
|
|
356
|
-
this.msgExts.manageStringResponse(t, this.lc.loc("Processo ucciso con successo"), this.lc.loc("Errori durante la Kill del Processo"), () => this.sendSearch());
|
|
357
|
-
});
|
|
358
|
-
});
|
|
480
|
+
this.msgExts.simpleWarningWithChoice(this.lc.loc("Conferma Terminazione del Processo"), this.lc.loc("Sei sicuro di voler Terminare il processo selezionato? L'utente relativo sara' disconnesso"), () => __awaiter(this, void 0, void 0, function* () {
|
|
481
|
+
let res = yield this.adms.doKillProcess(process.properties["inst_id"] || process.properties["INST_ID"], process.properties["sid"] || process.properties["SID"], process.properties["serial"] || process.properties["SERIAL"]);
|
|
482
|
+
this.msgExts.manageStringResponse(res, this.lc.loc("Processo ucciso con successo"), this.lc.loc("Errori durante la Kill del Processo"), () => this.sendSearch());
|
|
483
|
+
}));
|
|
359
484
|
}
|
|
360
485
|
changeProcessCg(process) {
|
|
361
486
|
this.ProcessOnEdit = process;
|
|
@@ -367,31 +492,29 @@ class AdmWrkComponent {
|
|
|
367
492
|
this.dlgChangeCg.show();
|
|
368
493
|
}
|
|
369
494
|
loadCgDictionaries() {
|
|
370
|
-
this
|
|
495
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
496
|
+
this.CGs = yield this.adms.getConsumerGroups();
|
|
497
|
+
});
|
|
371
498
|
}
|
|
372
499
|
setupChangeCg() {
|
|
373
500
|
this.utiExts.cleanForm(this.cgFrom);
|
|
374
501
|
setTimeout(() => { this.newCg = ""; });
|
|
375
502
|
}
|
|
376
503
|
doChangeCg() {
|
|
377
|
-
|
|
378
|
-
.
|
|
379
|
-
.
|
|
380
|
-
|
|
381
|
-
.set("consumer_group", this.newCg);
|
|
382
|
-
this.http.get(Repository["GET_Director_ChangeProcessConsumerGroup"], pars).subscribe(t => {
|
|
383
|
-
this.msgExts.manageStringResponse(t, this.lc.loc("Gruppo di Consumo modificato con successo"), this.lc.loc("Errori nella modifica del Gruppo di Consumo"), () => this.sendSearch());
|
|
504
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
505
|
+
let res = yield this.adms.doChangeProcessConsumerGroup(this.ProcessOnEdit.properties["inst_id"] || this.ProcessOnEdit.properties["INST_ID"], this.ProcessOnEdit.properties["sid"] || this.ProcessOnEdit.properties["SID"], this.ProcessOnEdit.properties["serial"] || this.ProcessOnEdit.properties["SERIAL"], this.newCg);
|
|
506
|
+
this.msgExts.manageStringResponse(res, this.lc.loc("Gruppo di Consumo modificato con successo"), this.lc.loc("Errori nella modifica del Gruppo di Consumo"), () => this.sendSearch());
|
|
507
|
+
return true;
|
|
384
508
|
});
|
|
385
|
-
return true;
|
|
386
509
|
}
|
|
387
510
|
}
|
|
388
|
-
AdmWrkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
389
|
-
AdmWrkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmWrkComponent, selector: "adm_wrk", viewQueries: [{ propertyName: "cgFrom", first: true, predicate: ["cgFrom"], descendants: true }, { propertyName: "dlgChangeCg", first: true, predicate: ["dlgChangeCg"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Processi Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertype\" name=\"filtertype\" [SelectLabel]=\"'Tipo' | localize: lc\" [Source]=\"Types\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertenant\" name=\"filterTenant\" [Placeholder]=\"'Operatore' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filterUser\" [Placeholder]=\"'Utente' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterstate\" name=\"filterState\" [SelectLabel]=\"'Stato' | localize: lc\" [Source]=\"States\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadtype\" name=\"filterthreadtype\" [SelectLabel]=\"'Tipo Thread' | localize: lc\" [Source]=\"ThreadTypes\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadstatus\" name=\"filterthreadstatus\" [SelectLabel]=\"'Stato Thread' | localize: lc\" [Source]=\"ThreadStatuses\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterglobal\" name=\"filterglobal\"></form-checkbox> \r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterglobal = !searchView.filterglobal\">{{'Globale' | localize: lc}}</span>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterinwait\" name=\"filterinwait\"></form-checkbox> \r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterinwait = !searchView.filterinwait\">{{'In Attesa' | localize: lc}}</span>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Processi Applicativi' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [DynamicOperations]=\"DynamicOps\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\" (onDynamicOperation)=\"onOperation($event)\">\r\n <span class=\"app-nowrap\" *td=\"'full_wait_stack'; let value\">\r\n <span class=\"fa fa-list app-pointer\" (click)=\"valueToShow = value; dlgValue.show();\"></span> \r\n {{value.length > 70 ? value.substr(0, 67) + '...' : value}}\r\n </span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\">\r\n <button class=\"btn btn-secondary pull-left\" type=\"button\" (click)=\"back()\">{{'Indietro' | localize: lc}}</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgChangeCg=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">{{'Modifica Gruppo di Consumo' | localize: lc}}</h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgChangeCg.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <form novalidate #cgFrom=\"ngForm\" (ngSubmit)=\"cgFrom.valid && doChangeCg() && dlgChangeCg.hide()\">\r\n <div class=\"modal-body\">\r\n <form-select [Label]=\"'Nuovo Gruppo di Consumo' | localize: lc\" [(ngModel)]=\"newCg\" name=\"newCg\" [Source]=\"CGs\" required [Last]=\"true\"></form-select>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-5\" (click)=\"dlgChangeCg.hide()\">{{'Chiudi' | localize: lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Conferma' | localize: lc}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div bsModal #dlgValue=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-xl\" app-draggable=\".modal-header\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title pull-left\">\r\n Full Wait Stack\r\n </h5>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgValue.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body app-padidng-bottom-20 app-padding-top-20\">\r\n <span class=\"app-wrap\">\r\n {{valueToShow}}\r\n </span>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgValue.hide()\">Chiudi</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "directive", type: i9.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdForProperty", "tdIf", "tdClass", "tdPropertyAccessor", "tdAlignment", "tdFormat", "tdIconClass", "tdConditionField", "tdConditionValue", "tdTitle", "tdContent"] }, { kind: "component", type: i9.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i9$1.FormCheckboxComponent, selector: "form-checkbox", inputs: ["SliderMode"] }, { kind: "component", type: i9$1.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i9$1.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: AdmWrkLoc }] });
|
|
390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
511
|
+
AdmWrkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmWrkComponent, deps: [{ token: i1$1.UtilityService }, { token: i1$1.MessageService }, { token: i1.LocalizationService }, { token: i3.PreferencesService }, { token: i1$1.InterComService }, { token: i4.HTTPService }, { token: i5.ActivatedRoute }, { token: i5$1.Location }, { token: AdminModuleBaseService }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
|
|
512
|
+
AdmWrkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmWrkComponent, selector: "adm_wrk", viewQueries: [{ propertyName: "cgFrom", first: true, predicate: ["cgFrom"], descendants: true }, { propertyName: "dlgChangeCg", first: true, predicate: ["dlgChangeCg"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Processi Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertype\" name=\"filtertype\" [SelectLabel]=\"'Tipo' | localize: lc\" [Source]=\"Types\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertenant\" name=\"filterTenant\" [Placeholder]=\"'Operatore' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filterUser\" [Placeholder]=\"'Utente' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterstate\" name=\"filterState\" [SelectLabel]=\"'Stato' | localize: lc\" [Source]=\"States\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadtype\" name=\"filterthreadtype\" [SelectLabel]=\"'Tipo Thread' | localize: lc\" [Source]=\"ThreadTypes\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadstatus\" name=\"filterthreadstatus\" [SelectLabel]=\"'Stato Thread' | localize: lc\" [Source]=\"ThreadStatuses\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterglobal\" name=\"filterglobal\"></form-checkbox> \r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterglobal = !searchView.filterglobal\">{{'Globale' | localize: lc}}</span>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterinwait\" name=\"filterinwait\"></form-checkbox> \r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterinwait = !searchView.filterinwait\">{{'In Attesa' | localize: lc}}</span>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Processi Applicativi' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [DynamicOperations]=\"DynamicOps\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\" (onDynamicOperation)=\"onOperation($event)\">\r\n <span class=\"app-nowrap\" *td=\"'full_wait_stack'; let value\">\r\n <span class=\"fa fa-list app-pointer\" (click)=\"valueToShow = value; dlgValue.show();\"></span> \r\n {{value.length > 70 ? value.substr(0, 67) + '...' : value}}\r\n </span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\">\r\n <button class=\"btn btn-secondary pull-left\" type=\"button\" (click)=\"back()\">{{'Indietro' | localize: lc}}</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgChangeCg=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">{{'Modifica Gruppo di Consumo' | localize: lc}}</h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgChangeCg.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <form novalidate #cgFrom=\"ngForm\" (ngSubmit)=\"cgFrom.valid && doChangeCg() && dlgChangeCg.hide()\">\r\n <div class=\"modal-body\">\r\n <form-select [Label]=\"'Nuovo Gruppo di Consumo' | localize: lc\" [(ngModel)]=\"newCg\" name=\"newCg\" [Source]=\"CGs\" required [Last]=\"true\"></form-select>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-5\" (click)=\"dlgChangeCg.hide()\">{{'Chiudi' | localize: lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Conferma' | localize: lc}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div bsModal #dlgValue=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-xl\" app-draggable=\".modal-header\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title pull-left\">\r\n Full Wait Stack\r\n </h5>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgValue.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body app-padidng-bottom-20 app-padding-top-20\">\r\n <span class=\"app-wrap\">\r\n {{valueToShow}}\r\n </span>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgValue.hide()\">Chiudi</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8$1.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "directive", type: i8.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdForProperty", "tdIf", "tdClass", "tdPropertyAccessor", "tdAlignment", "tdFormat", "tdIconClass", "tdConditionField", "tdConditionValue", "tdTitle", "tdContent"] }, { kind: "component", type: i8.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i9.FormCheckboxComponent, selector: "form-checkbox", inputs: ["SliderMode"] }, { kind: "component", type: i9.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i9.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: AdmWrkLoc }] });
|
|
513
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmWrkComponent, decorators: [{
|
|
391
514
|
type: Component,
|
|
392
515
|
args: [{ selector: "adm_wrk", viewProviders: [{ provide: LocalizationService, useClass: AdmWrkLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Processi Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertype\" name=\"filtertype\" [SelectLabel]=\"'Tipo' | localize: lc\" [Source]=\"Types\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertenant\" name=\"filterTenant\" [Placeholder]=\"'Operatore' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filterUser\" [Placeholder]=\"'Utente' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterstate\" name=\"filterState\" [SelectLabel]=\"'Stato' | localize: lc\" [Source]=\"States\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadtype\" name=\"filterthreadtype\" [SelectLabel]=\"'Tipo Thread' | localize: lc\" [Source]=\"ThreadTypes\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadstatus\" name=\"filterthreadstatus\" [SelectLabel]=\"'Stato Thread' | localize: lc\" [Source]=\"ThreadStatuses\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterglobal\" name=\"filterglobal\"></form-checkbox> \r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterglobal = !searchView.filterglobal\">{{'Globale' | localize: lc}}</span>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterinwait\" name=\"filterinwait\"></form-checkbox> \r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterinwait = !searchView.filterinwait\">{{'In Attesa' | localize: lc}}</span>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Processi Applicativi' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [DynamicOperations]=\"DynamicOps\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\" (onDynamicOperation)=\"onOperation($event)\">\r\n <span class=\"app-nowrap\" *td=\"'full_wait_stack'; let value\">\r\n <span class=\"fa fa-list app-pointer\" (click)=\"valueToShow = value; dlgValue.show();\"></span> \r\n {{value.length > 70 ? value.substr(0, 67) + '...' : value}}\r\n </span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\">\r\n <button class=\"btn btn-secondary pull-left\" type=\"button\" (click)=\"back()\">{{'Indietro' | localize: lc}}</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgChangeCg=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">{{'Modifica Gruppo di Consumo' | localize: lc}}</h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgChangeCg.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <form novalidate #cgFrom=\"ngForm\" (ngSubmit)=\"cgFrom.valid && doChangeCg() && dlgChangeCg.hide()\">\r\n <div class=\"modal-body\">\r\n <form-select [Label]=\"'Nuovo Gruppo di Consumo' | localize: lc\" [(ngModel)]=\"newCg\" name=\"newCg\" [Source]=\"CGs\" required [Last]=\"true\"></form-select>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-5\" (click)=\"dlgChangeCg.hide()\">{{'Chiudi' | localize: lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Conferma' | localize: lc}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div bsModal #dlgValue=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-xl\" app-draggable=\".modal-header\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title pull-left\">\r\n Full Wait Stack\r\n </h5>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgValue.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body app-padidng-bottom-20 app-padding-top-20\">\r\n <span class=\"app-wrap\">\r\n {{valueToShow}}\r\n </span>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgValue.hide()\">Chiudi</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
393
516
|
}], ctorParameters: function () {
|
|
394
|
-
return [{ type: i1.UtilityService }, { type: i1.MessageService }, { type:
|
|
517
|
+
return [{ type: i1$1.UtilityService }, { type: i1$1.MessageService }, { type: i1.LocalizationService }, { type: i3.PreferencesService }, { type: i1$1.InterComService }, { type: i4.HTTPService }, { type: i5.ActivatedRoute }, { type: i5$1.Location }, { type: AdminModuleBaseService }, { type: undefined, decorators: [{
|
|
395
518
|
type: Inject,
|
|
396
519
|
args: [ADM_MODULE_PATH]
|
|
397
520
|
}] }];
|
|
@@ -427,9 +550,9 @@ class ProfilerDataNodeLoc extends LocalizationService {
|
|
|
427
550
|
super.set("it->en", "Nome Classe Attesa", ["Wait Class Name"]);
|
|
428
551
|
}
|
|
429
552
|
}
|
|
430
|
-
ProfilerDataNodeLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
431
|
-
ProfilerDataNodeLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
432
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
553
|
+
ProfilerDataNodeLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ProfilerDataNodeLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
554
|
+
ProfilerDataNodeLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ProfilerDataNodeLoc });
|
|
555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ProfilerDataNodeLoc, decorators: [{
|
|
433
556
|
type: Injectable
|
|
434
557
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
435
558
|
|
|
@@ -525,9 +648,9 @@ class AdmProfilerComponentLoc extends LocalizationService {
|
|
|
525
648
|
super.set("it->en", "Nome Classe Attesa", ["Wait Class Name"]);
|
|
526
649
|
}
|
|
527
650
|
}
|
|
528
|
-
AdmProfilerComponentLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
529
|
-
AdmProfilerComponentLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
530
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
651
|
+
AdmProfilerComponentLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmProfilerComponentLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
652
|
+
AdmProfilerComponentLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmProfilerComponentLoc });
|
|
653
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmProfilerComponentLoc, decorators: [{
|
|
531
654
|
type: Injectable
|
|
532
655
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
533
656
|
|
|
@@ -546,9 +669,9 @@ class NodeDetailLoc extends LocalizationService {
|
|
|
546
669
|
super.set("it->en", "Dettaglio evento", ["Event detail"]);
|
|
547
670
|
}
|
|
548
671
|
}
|
|
549
|
-
NodeDetailLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
550
|
-
NodeDetailLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
551
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
672
|
+
NodeDetailLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeDetailLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
673
|
+
NodeDetailLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeDetailLoc });
|
|
674
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeDetailLoc, decorators: [{
|
|
552
675
|
type: Injectable
|
|
553
676
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
554
677
|
|
|
@@ -576,26 +699,25 @@ class NodeDetailComponent {
|
|
|
576
699
|
this.onClose.emit(true);
|
|
577
700
|
}
|
|
578
701
|
}
|
|
579
|
-
NodeDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
580
|
-
NodeDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
581
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
702
|
+
NodeDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeDetailComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
703
|
+
NodeDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NodeDetailComponent, selector: "node-detail", inputs: { NodeDetails: "NodeDetails" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"modal-dialog modal-xl\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">\r\n {{'Dettaglio Attivit\u00E0 Nodo' | localize: lc}}\r\n <span *ngIf=\"NodeDetails\"> {{NodeDetails.nodeid}}</span>\r\n </h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"closeDialog()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\" *ngIf=\"NodeDetails\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <strong>{{'Tipo Evento' | localize: lc}}</strong>: {{NodeDetails.eventtypedesc}} <strong>{{'Classe Attesa' | localize: lc}}</strong>: {{NodeDetails.waitclassname}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Tempo Trascorso (Con Figli)' | localize: lc}}</strong>: {{NodeDetails.elapsed}} s\r\n </div>\r\n <div class=\"col-md-6\">\r\n\t\t\t\t\t<strong>{{'Esecuzioni' | localize: lc}}</strong>: {{NodeDetails.executions}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Tempo Trascorso' | localize: lc}}</strong>: {{NodeDetails.elapsedlesschildren}} s\r\n </div>\r\n </div>\r\n\t\t\t<div>\r\n\t\t\t\t<h5 class=\"app-margin-top-10\"><strong>{{'Dettaglio evento' | localize: lc}}</strong></h5>\r\n\t\t\t\t{{NodeDetails.nodedescription}}\r\n\t\t\t</div>\r\n\t\t\t<div style=\"max-height: 200px; overflow: auto\" *ngIf=\"(NodeDetails?.waitstack?.length || 0) > 0\">\r\n <h5 class=\"app-margin-top-10\"><strong>{{'Stack di Attesa' | localize: lc}}</strong></h5>\r\n <div *ngFor=\"let wait of NodeDetails.waitstack; let i = index;\">\r\n <ng-container *ngFor=\"let _ of [].constructor(i+1)\">-</ng-container> {{wait.nodeid}} - {{wait.nodedescription}}: \r\n <strong>{{'Tipo Evento' | localize: lc}}</strong>: {{wait.eventtypedesc}} \r\n <strong>{{'Classe Attesa' | localize: lc}}</strong>: {{wait.waitclassname}}\r\n </div>\r\n </div>\r\n <div style=\"height: 200px;\">\r\n <h5 class=\"app-margin-top-10\"><strong>{{'Utilizzo Risorse' | localize: lc}}</strong></h5>\r\n <es-line-chart *ngIf=\"NodeDetails.sessionchart\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"NodeDetails.sessionchart\"\r\n [Legend]=\"true\" \r\n name=\"nodeDetailSessionChart\"\r\n [DataGroupingThreshold]=\"99999999\"></es-line-chart>\r\n </div>\r\n <div style=\"height: 200px;\">\r\n <es-pie-chart *ngIf=\"NodeDetails.loadchart\" [Legend]=\"true\" [Data]=\"NodeDetails.loadchart\" name=\"nodeDetailLoadChart\"></es-pie-chart>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"closeDialog()\">{{'Chiudi' | localize: lc}}</button>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill", "Stacked"] }, { kind: "component", type: i3$1.EsPieChartComponent, selector: "es-pie-chart", inputs: ["Data", "DataArray", "HideZeroes", "Mode3D", "DonutRadiusPercentage", "LabelsWrap", "LabelsTruncate", "LabelsWidth", "LabelsVisible"] }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: NodeDetailLoc }] });
|
|
704
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeDetailComponent, decorators: [{
|
|
582
705
|
type: Component,
|
|
583
706
|
args: [{ selector: "node-detail", viewProviders: [{ provide: LocalizationService, useClass: NodeDetailLoc }], template: "<div class=\"modal-dialog modal-xl\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">\r\n {{'Dettaglio Attivit\u00E0 Nodo' | localize: lc}}\r\n <span *ngIf=\"NodeDetails\"> {{NodeDetails.nodeid}}</span>\r\n </h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"closeDialog()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\" *ngIf=\"NodeDetails\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <strong>{{'Tipo Evento' | localize: lc}}</strong>: {{NodeDetails.eventtypedesc}} <strong>{{'Classe Attesa' | localize: lc}}</strong>: {{NodeDetails.waitclassname}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Tempo Trascorso (Con Figli)' | localize: lc}}</strong>: {{NodeDetails.elapsed}} s\r\n </div>\r\n <div class=\"col-md-6\">\r\n\t\t\t\t\t<strong>{{'Esecuzioni' | localize: lc}}</strong>: {{NodeDetails.executions}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Tempo Trascorso' | localize: lc}}</strong>: {{NodeDetails.elapsedlesschildren}} s\r\n </div>\r\n </div>\r\n\t\t\t<div>\r\n\t\t\t\t<h5 class=\"app-margin-top-10\"><strong>{{'Dettaglio evento' | localize: lc}}</strong></h5>\r\n\t\t\t\t{{NodeDetails.nodedescription}}\r\n\t\t\t</div>\r\n\t\t\t<div style=\"max-height: 200px; overflow: auto\" *ngIf=\"(NodeDetails?.waitstack?.length || 0) > 0\">\r\n <h5 class=\"app-margin-top-10\"><strong>{{'Stack di Attesa' | localize: lc}}</strong></h5>\r\n <div *ngFor=\"let wait of NodeDetails.waitstack; let i = index;\">\r\n <ng-container *ngFor=\"let _ of [].constructor(i+1)\">-</ng-container> {{wait.nodeid}} - {{wait.nodedescription}}: \r\n <strong>{{'Tipo Evento' | localize: lc}}</strong>: {{wait.eventtypedesc}} \r\n <strong>{{'Classe Attesa' | localize: lc}}</strong>: {{wait.waitclassname}}\r\n </div>\r\n </div>\r\n <div style=\"height: 200px;\">\r\n <h5 class=\"app-margin-top-10\"><strong>{{'Utilizzo Risorse' | localize: lc}}</strong></h5>\r\n <es-line-chart *ngIf=\"NodeDetails.sessionchart\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"NodeDetails.sessionchart\"\r\n [Legend]=\"true\" \r\n name=\"nodeDetailSessionChart\"\r\n [DataGroupingThreshold]=\"99999999\"></es-line-chart>\r\n </div>\r\n <div style=\"height: 200px;\">\r\n <es-pie-chart *ngIf=\"NodeDetails.loadchart\" [Legend]=\"true\" [Data]=\"NodeDetails.loadchart\" name=\"nodeDetailLoadChart\"></es-pie-chart>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"closeDialog()\">{{'Chiudi' | localize: lc}}</button>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
584
|
-
}], ctorParameters: function () { return [{ type:
|
|
707
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { NodeDetails: [{
|
|
585
708
|
type: Input
|
|
586
709
|
}], onClose: [{
|
|
587
710
|
type: Output
|
|
588
711
|
}] } });
|
|
589
712
|
|
|
590
713
|
class AdmProfilerComponent {
|
|
591
|
-
constructor(
|
|
592
|
-
this.expExts = expExts;
|
|
714
|
+
constructor(lc, localStorage, location, intercom, route, adms, mod) {
|
|
593
715
|
this.lc = lc;
|
|
594
716
|
this.localStorage = localStorage;
|
|
595
717
|
this.location = location;
|
|
596
718
|
this.intercom = intercom;
|
|
597
|
-
this.http = http;
|
|
598
719
|
this.route = route;
|
|
720
|
+
this.adms = adms;
|
|
599
721
|
this.mod = mod;
|
|
600
722
|
this.searchView = new ProfilerDataNodesView();
|
|
601
723
|
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
@@ -625,7 +747,7 @@ class AdmProfilerComponent {
|
|
|
625
747
|
init(HotPotato) {
|
|
626
748
|
if (HotPotato) {
|
|
627
749
|
this.searchView = HotPotato;
|
|
628
|
-
this.POSTGetItems(
|
|
750
|
+
this.POSTGetItems(this.searchView);
|
|
629
751
|
}
|
|
630
752
|
else {
|
|
631
753
|
this.searchView = new ProfilerDataNodesView();
|
|
@@ -640,39 +762,38 @@ class AdmProfilerComponent {
|
|
|
640
762
|
this.searchView.searchinprogress = true;
|
|
641
763
|
if (resetPage)
|
|
642
764
|
this.searchView.page = 1;
|
|
643
|
-
this.POSTGetItems(
|
|
765
|
+
this.POSTGetItems(this.searchView);
|
|
644
766
|
}
|
|
645
|
-
POSTGetItems(
|
|
646
|
-
this
|
|
647
|
-
this.searchView =
|
|
767
|
+
POSTGetItems(data) {
|
|
768
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
769
|
+
this.searchView = yield this.adms.getProfilerDataNodes(data);
|
|
648
770
|
this.searchView.searchinprogress = false;
|
|
649
771
|
this.localStorage.setItem("HotSearchProfilato", this.searchView).subscribe();
|
|
650
772
|
});
|
|
651
773
|
}
|
|
652
774
|
prepareExport(dataCallBack) {
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
let
|
|
658
|
-
dataCallBack(items);
|
|
775
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
776
|
+
var view = JSON.parse(JSON.stringify(this.searchView));
|
|
777
|
+
view.page = 1;
|
|
778
|
+
view.itemsperpageoverride = 9999999;
|
|
779
|
+
let res = yield this.adms.getProfilerDataNodes(view);
|
|
780
|
+
dataCallBack(res.items, ProfilerDataNode);
|
|
659
781
|
});
|
|
660
782
|
}
|
|
661
783
|
loadNodeDetails(nodeId) {
|
|
662
784
|
this.NodeDetails = null;
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
});
|
|
785
|
+
requestAnimationFrame(() => __awaiter(this, void 0, void 0, function* () {
|
|
786
|
+
this.NodeDetails = yield this.adms.getNodeStats(nodeId);
|
|
787
|
+
}));
|
|
667
788
|
}
|
|
668
789
|
}
|
|
669
|
-
AdmProfilerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
670
|
-
AdmProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
671
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
790
|
+
AdmProfilerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmProfilerComponent, deps: [{ token: i1.LocalizationService }, { token: i3.PreferencesService }, { token: i5$1.Location }, { token: i1$1.InterComService }, { token: i5.ActivatedRoute }, { token: AdminModuleBaseService }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
|
|
791
|
+
AdmProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmProfilerComponent, selector: "adm_profiler", providers: [{ provide: LocalizationService, useClass: AdmProfilerComponentLoc }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Profiler del Server' | localize: lc}}</span> \r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize : lc}}</span>\r\n <span *th=\"'2'\">{{'Descrizione' | localize: lc}}</span>\r\n <span *th=\"'3'\">{{'Chiamate' | localize: lc}}</span>\r\n <span *th=\"'4'\">{{'Tempo' | localize: lc}}</span>\r\n <span *th=\"'5'\">{{'Tempo Max' | localize: lc}}</span>\r\n <span *th=\"'6'\">{{'Tempo Min' | localize: lc}}</span>\r\n <span *th=\"'7'\">{{'Tempo Medio' | localize: lc}}</span>\r\n <span *th=\"'8'\">{{'Tempo Specifico' | localize: lc}}</span>\r\n <span *th=\"'9'\">{{'Percentuale' | localize: lc}}</span>\r\n <span *th=\"'10'\">{{'Chiamate Periodo' | localize: lc}}</span>\r\n <span *th=\"'11'\">{{'Tempo Periodo' | localize: lc}}</span>\r\n <span *th=\"'12'\">{{'Tempo Max Periodo' | localize: lc}}</span>\r\n <span *th=\"'13'\">{{'Tempo Min Periodo' | localize: lc}}</span>\r\n <span *th=\"'14'\">{{'Tempo Medio Periodo' | localize: lc}}</span>\r\n <span *th=\"'15'\">{{'Tempo Specifico Periodo' | localize: lc}}</span>\r\n <span *th=\"'16'\">{{'Percentuale Periodo' | localize: lc}}</span>\r\n <span *th=\"'17'\">{{'Nome Tipologia Evento' | localize: lc}}</span>\r\n <span *th=\"'18'\">{{'Nome Classe Attesa' | localize: lc}}</span>\r\n\r\n <span *td=\"'1'; let item\"><span class=\"app-link app-inline\" (click)=\"loadNodeDetails(item.id); dlgNodeDetails.show();\">{{item.id}}</span></span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren }}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n <span *td=\"'17' let item\">{{item.eventtypename}}</span>\r\n <span *td=\"'18' let item\">{{item.waitclassname}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>", dependencies: [{ kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8$1.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "directive", type: i8.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdForProperty", "tdIf", "tdClass", "tdPropertyAccessor", "tdAlignment", "tdFormat", "tdIconClass", "tdConditionField", "tdConditionValue", "tdTitle", "tdContent"] }, { kind: "directive", type: i8.EsThDirective, selector: "[th]", inputs: ["th", "thPinned", "thPinnable", "thPinnedWidth", "thVisible", "thFixed", "thParent", "thOrder", "thOrderable", "thWrap", "thResizable", "thClass", "thShrink", "thGroupClass", "thIf", "thEmpty", "thGroup", "thAggregation", "thProperty", "thType", "thSource", "thMulti", "thStaticContent", "thBackgroundColor", "thAlignment", "thFormat", "thEditorName", "thEditorOptions", "thRendererName", "thRoutePath", "thRouteParameterProperties"] }, { kind: "component", type: i8.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i9.FormDateComponent, selector: "form-date", inputs: ["JsDates"] }, { kind: "component", type: NodeDetailComponent, selector: "node-detail", inputs: ["NodeDetails"], outputs: ["onClose"] }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }] });
|
|
792
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmProfilerComponent, decorators: [{
|
|
672
793
|
type: Component,
|
|
673
794
|
args: [{ selector: "adm_profiler", providers: [{ provide: LocalizationService, useClass: AdmProfilerComponentLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Profiler del Server' | localize: lc}}</span> \r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize : lc}}</span>\r\n <span *th=\"'2'\">{{'Descrizione' | localize: lc}}</span>\r\n <span *th=\"'3'\">{{'Chiamate' | localize: lc}}</span>\r\n <span *th=\"'4'\">{{'Tempo' | localize: lc}}</span>\r\n <span *th=\"'5'\">{{'Tempo Max' | localize: lc}}</span>\r\n <span *th=\"'6'\">{{'Tempo Min' | localize: lc}}</span>\r\n <span *th=\"'7'\">{{'Tempo Medio' | localize: lc}}</span>\r\n <span *th=\"'8'\">{{'Tempo Specifico' | localize: lc}}</span>\r\n <span *th=\"'9'\">{{'Percentuale' | localize: lc}}</span>\r\n <span *th=\"'10'\">{{'Chiamate Periodo' | localize: lc}}</span>\r\n <span *th=\"'11'\">{{'Tempo Periodo' | localize: lc}}</span>\r\n <span *th=\"'12'\">{{'Tempo Max Periodo' | localize: lc}}</span>\r\n <span *th=\"'13'\">{{'Tempo Min Periodo' | localize: lc}}</span>\r\n <span *th=\"'14'\">{{'Tempo Medio Periodo' | localize: lc}}</span>\r\n <span *th=\"'15'\">{{'Tempo Specifico Periodo' | localize: lc}}</span>\r\n <span *th=\"'16'\">{{'Percentuale Periodo' | localize: lc}}</span>\r\n <span *th=\"'17'\">{{'Nome Tipologia Evento' | localize: lc}}</span>\r\n <span *th=\"'18'\">{{'Nome Classe Attesa' | localize: lc}}</span>\r\n\r\n <span *td=\"'1'; let item\"><span class=\"app-link app-inline\" (click)=\"loadNodeDetails(item.id); dlgNodeDetails.show();\">{{item.id}}</span></span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren }}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n <span *td=\"'17' let item\">{{item.eventtypename}}</span>\r\n <span *td=\"'18' let item\">{{item.waitclassname}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>" }]
|
|
674
795
|
}], ctorParameters: function () {
|
|
675
|
-
return [{ type: i1.
|
|
796
|
+
return [{ type: i1.LocalizationService }, { type: i3.PreferencesService }, { type: i5$1.Location }, { type: i1$1.InterComService }, { type: i5.ActivatedRoute }, { type: AdminModuleBaseService }, { type: undefined, decorators: [{
|
|
676
797
|
type: Inject,
|
|
677
798
|
args: [ADM_MODULE_PATH]
|
|
678
799
|
}] }];
|
|
@@ -709,21 +830,21 @@ class AdmTopActivitieLoc extends LocalizationService {
|
|
|
709
830
|
super.set("it->en", "Utente", ["User"]);
|
|
710
831
|
}
|
|
711
832
|
}
|
|
712
|
-
AdmTopActivitieLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
713
|
-
AdmTopActivitieLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
714
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
833
|
+
AdmTopActivitieLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmTopActivitieLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
834
|
+
AdmTopActivitieLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmTopActivitieLoc });
|
|
835
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmTopActivitieLoc, decorators: [{
|
|
715
836
|
type: Injectable
|
|
716
837
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
717
838
|
|
|
718
839
|
class AdmTopActivitiesComponent {
|
|
719
|
-
constructor(dateExts, lc, localStorage, location, intercom,
|
|
840
|
+
constructor(dateExts, lc, localStorage, location, intercom, route, adms, mod) {
|
|
720
841
|
this.dateExts = dateExts;
|
|
721
842
|
this.lc = lc;
|
|
722
843
|
this.localStorage = localStorage;
|
|
723
844
|
this.location = location;
|
|
724
845
|
this.intercom = intercom;
|
|
725
|
-
this.http = http;
|
|
726
846
|
this.route = route;
|
|
847
|
+
this.adms = adms;
|
|
727
848
|
this.mod = mod;
|
|
728
849
|
this.searchView = new TopActivitiesDataView();
|
|
729
850
|
this.autoUpdate = false;
|
|
@@ -756,7 +877,7 @@ class AdmTopActivitiesComponent {
|
|
|
756
877
|
updateRealTimeWindow() {
|
|
757
878
|
return __awaiter(this, void 0, void 0, function* () {
|
|
758
879
|
let data = new TopActivitiesDataView();
|
|
759
|
-
data = yield this.
|
|
880
|
+
data = yield this.adms.getTopActivities(data);
|
|
760
881
|
let reference = data.items[0];
|
|
761
882
|
for (let i = 0; i < reference.actsessions.length; i++) {
|
|
762
883
|
let itemref = reference.actsessions[i];
|
|
@@ -792,7 +913,7 @@ class AdmTopActivitiesComponent {
|
|
|
792
913
|
init(HotPotato) {
|
|
793
914
|
if (HotPotato) {
|
|
794
915
|
this.searchView = HotPotato;
|
|
795
|
-
this.POSTGetItems(
|
|
916
|
+
this.POSTGetItems(this.searchView, false);
|
|
796
917
|
}
|
|
797
918
|
else {
|
|
798
919
|
this.searchView = new TopActivitiesDataView();
|
|
@@ -814,28 +935,28 @@ class AdmTopActivitiesComponent {
|
|
|
814
935
|
sv.filterto && this.dateExts.getDateConvertion(sv.filterto).isBefore(this.rtWindow.to);
|
|
815
936
|
sv.filterrealtime = dateRequestOnRealtimeWindow;
|
|
816
937
|
sv.searchinprogress = true;
|
|
817
|
-
this.POSTGetItems(
|
|
938
|
+
this.POSTGetItems(sv, update);
|
|
818
939
|
});
|
|
819
940
|
}
|
|
820
|
-
POSTGetItems(
|
|
821
|
-
|
|
941
|
+
POSTGetItems(data, update) {
|
|
942
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
943
|
+
let res = yield this.adms.getTopActivities(data);
|
|
822
944
|
//Se sono in modalità di update non devo toccare la searchView attuale se non per il searchinprogress che viene messo dall'es table
|
|
823
945
|
if (!update) {
|
|
824
|
-
this.searchView =
|
|
946
|
+
this.searchView = res;
|
|
825
947
|
this.localStorage.setItem("HotSearchTopAct", this.searchView).subscribe();
|
|
826
948
|
}
|
|
827
949
|
// DirectorInfos anche se per qualche motivo crasha di brutto è comunque non obbligatorio, evito di non caricare la pagina solo perché lui scoppia
|
|
828
|
-
|
|
950
|
+
let dirinfos = yield this.adms.getInfos();
|
|
829
951
|
this.searchView.searchinprogress = false;
|
|
830
|
-
this.reviewBindings(update,
|
|
831
|
-
})
|
|
952
|
+
this.reviewBindings(update, res, dirinfos);
|
|
953
|
+
});
|
|
832
954
|
}
|
|
833
955
|
loadNodeDetails(nodeId) {
|
|
834
956
|
this.NodeDetails = null;
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
});
|
|
957
|
+
requestAnimationFrame(() => __awaiter(this, void 0, void 0, function* () {
|
|
958
|
+
this.NodeDetails = yield this.adms.getNodeStats(nodeId);
|
|
959
|
+
}));
|
|
839
960
|
}
|
|
840
961
|
reviewBindings(update, searchViewOverride, dirInfos) {
|
|
841
962
|
let reference = (searchViewOverride !== null && searchViewOverride !== void 0 ? searchViewOverride : this.searchView).items[0];
|
|
@@ -908,11 +1029,10 @@ class AdmTopActivitiesComponent {
|
|
|
908
1029
|
}
|
|
909
1030
|
loadSessionDetails(sessionId, serialNo) {
|
|
910
1031
|
this.SessionDetails = null;
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
this.SessionDetails = t;
|
|
1032
|
+
requestAnimationFrame(() => __awaiter(this, void 0, void 0, function* () {
|
|
1033
|
+
this.SessionDetails = yield this.adms.getSessionStats(sessionId === null || sessionId === void 0 ? void 0 : sessionId.toString(), serialNo === null || serialNo === void 0 ? void 0 : serialNo.toString());
|
|
914
1034
|
this.threadSelectionChanged(null);
|
|
915
|
-
});
|
|
1035
|
+
}));
|
|
916
1036
|
}
|
|
917
1037
|
threadSelectionChanged(selection) {
|
|
918
1038
|
this.SelectedTopNodes = null;
|
|
@@ -940,13 +1060,13 @@ class AdmTopActivitiesComponent {
|
|
|
940
1060
|
});
|
|
941
1061
|
}
|
|
942
1062
|
}
|
|
943
|
-
AdmTopActivitiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
944
|
-
AdmTopActivitiesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmTopActivitiesComponent, selector: "topact_search", providers: [{ provide: LocalizationService, useClass: AdmTopActivitieLoc }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Attivit\u00E0 Principali' | localize: lc}}\r\n <span *ngIf=\"DirInfos\"> - \r\n {{'' + DirInfos.cpus + ' ' + ('CPU' | localize: lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}} \r\n Load average: {{ DirInfos.lavg1 | number : '1.1-2' : 'it'}} {{ DirInfos.lavg5 | number : '1.1-2' : 'it'}} {{ DirInfos.lavg15 | number : '1.1-2' : 'it'}}\r\n </span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Aggiorna ogni' | localize: lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"seconds\" /> {{'secondo/i' | localize: lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" name=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [Stacked]=\"true\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Prime Istruzioni' | localize: lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Nodo' | localize: lc}}</th>\r\n <th>{{'Descrizione Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min\">{{'Attivit\u00E0' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Tipo Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Classe Attesa' | localize: lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Prime Sessioni' | localize: lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'Utente' | localize: lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Processo' | localize: lc}}</th>\r\n <th>{{'Attivit\u00E0' | localize: lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadSessionDetails(session.sid, session.serial); dlgSessionDetails.show();\">{{session.sid}}</span></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>\r\n\r\n<div bsModal #dlgSessionDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-feminist\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">{{'Dettaglio Sessione' | localize: lc}}<span *ngIf=\"SessionDetails\"> {{SessionDetails.sid}}</span></h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgSessionDetails.hide()\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\r\n </div>\r\n <div class=\"modal-body\" *ngIf=\"SessionDetails\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\"><strong>{{'Seriale' | localize: lc}}</strong>: {{SessionDetails.serial}} </div>\r\n <div class=\"col-md-6\"><strong>{{'Stato' | localize: lc}}</strong>: {{SessionDetails.status}} </div>\r\n <div class=\"col-md-6\"><strong>{{'Tipo' | localize: lc}}</strong>: {{SessionDetails.type}}</div>\r\n <div class=\"col-md-6\"><strong>{{'Utente' | localize: lc}}</strong>: {{SessionDetails.user}} <span *ngIf=\"SessionDetails.tenant\">({{SessionDetails.tenant}})</span></div>\r\n </div>\r\n\r\n <div style=\"display: flex; width: 100%; margin-top: 15px;\">\r\n <div style=\"flex-grow: 0;display: flex;flex-direction: column\">\r\n <h5>Prime Istruzioni</h5>\r\n <div *ngIf=\"SelectedTopNodes\">\r\n <es-table [(ngModel)]=\"SelectedTopNodes\" [ArraymodeItemsPerPage]=\"10\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Nodo' | localize: lc}}</th>\r\n <th>{{'Descrizione Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min\">{{'Attivit\u00E0' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Tipo Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Classe Attesa' | localize: lc}}</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\"(click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n <div style=\"width: 15px;\"></div>\r\n <div style=\"flex-grow: 2;display: flex;flex-direction: column\">\r\n <h5>Attivit\u00E0</h5>\r\n <div *ngIf=\"SelectedSessions\" style=\"width: 100%; height: 290px\">\r\n <es-line-chart [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [Stacked]=\"true\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"session_details\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (chartLoaded)=\"onChartLoaded($event, true)\">\r\n </es-line-chart>\r\n <!-- <es-table [(ngModel)]=\"SelectedSessions\" [ArraymodeItemsPerPage]=\"10\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">Timestamp</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Net</th>\r\n <th>IO</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-session>\r\n <td class=\"app-col-min\" style=\"text-wrap: nowrap;\"><strong>{{session.sampletime | loc_date: 'DD/MM/YYYY HH:mm:ss'}}</strong></td>\r\n <td>{{session.cputime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.waittime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.dbtime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.scripttime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.throttletime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.sleeptime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.nettime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.iotime | number : '1.1-2' : 'it'}}</td>\r\n </ng-template>\r\n </es-table> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"display: flex; width: 100%;\">\r\n <div style=\"flex-grow: 1;\">\r\n <h5>Statistiche Thread</h5>\r\n <div>\r\n <es-table [(ngModel)]=\"SessionDetails.threads\" [ArraymodeItemsPerPage]=\"10\" [Selection]=\"true\" [SingleSelection]=\"true\" (onSelectionChanged)=\"threadSelectionChanged($event)\">\r\n <ng-template #header>\r\n <th>Thread</th>\r\n <th>Stato</th>\r\n <th>Tipo</th>\r\n <th>API</th>\r\n <th>Attesa corrente</th>\r\n <th>Nodo di attesa</th>\r\n <th>Attesa su</th>\r\n <th>Classe</th>\r\n <th>Par. 1</th>\r\n <th>Par. 2</th>\r\n <th>Par. 3</th>\r\n <th>Tempo Attesa</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-thread>\r\n <td>{{thread.tid}}</td>\r\n <td>{{thread.status}}</td>\r\n <td>{{thread.type}}</td>\r\n <td>{{thread.api}}</td>\r\n <td>{{thread.wait}}</td>\r\n <td>{{thread.waitnode}}</td>\r\n <td>{{thread.waiteventtype}}</td>\r\n <td>{{thread.waitclassname}}</td>\r\n <td>{{thread.waitpar1}}</td>\r\n <td>{{thread.waitpar2}}</td>\r\n <td>{{thread.waitpar3}}</td>\r\n <td>{{thread.waittime | number : '1.1-2' : 'it'}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgSessionDetails.hide()\">{{'Chiudi' | localize: lc}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "component", type: i9.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i9$1.FormDateTimeComponent, selector: "form-datetime", inputs: ["JsDates"] }, { kind: "component", type: i3$1.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill", "Stacked"] }, { kind: "component", type: NodeDetailComponent, selector: "node-detail", inputs: ["NodeDetails"], outputs: ["onClose"] }, { kind: "pipe", type: i6.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }] });
|
|
945
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1063
|
+
AdmTopActivitiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmTopActivitiesComponent, deps: [{ token: i1$1.DateService }, { token: i1.LocalizationService }, { token: i3.PreferencesService }, { token: i5$1.Location }, { token: i1$1.InterComService }, { token: i5.ActivatedRoute }, { token: AdminModuleBaseService }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
|
|
1064
|
+
AdmTopActivitiesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmTopActivitiesComponent, selector: "topact_search", providers: [{ provide: LocalizationService, useClass: AdmTopActivitieLoc }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Attivit\u00E0 Principali' | localize: lc}}\r\n <span *ngIf=\"DirInfos\"> - \r\n {{'' + DirInfos.cpus + ' ' + ('CPU' | localize: lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}} \r\n Load average: {{ DirInfos.lavg1 | number : '1.1-2' : 'it'}} {{ DirInfos.lavg5 | number : '1.1-2' : 'it'}} {{ DirInfos.lavg15 | number : '1.1-2' : 'it'}}\r\n </span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Aggiorna ogni' | localize: lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"seconds\" /> {{'secondo/i' | localize: lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" name=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [Stacked]=\"true\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Prime Istruzioni' | localize: lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Nodo' | localize: lc}}</th>\r\n <th>{{'Descrizione Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min\">{{'Attivit\u00E0' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Tipo Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Classe Attesa' | localize: lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Prime Sessioni' | localize: lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'Utente' | localize: lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Processo' | localize: lc}}</th>\r\n <th>{{'Attivit\u00E0' | localize: lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadSessionDetails(session.sid, session.serial); dlgSessionDetails.show();\">{{session.sid}}</span></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>\r\n\r\n<div bsModal #dlgSessionDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-feminist\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">{{'Dettaglio Sessione' | localize: lc}}<span *ngIf=\"SessionDetails\"> {{SessionDetails.sid}}</span></h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgSessionDetails.hide()\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\r\n </div>\r\n <div class=\"modal-body\" *ngIf=\"SessionDetails\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\"><strong>{{'Seriale' | localize: lc}}</strong>: {{SessionDetails.serial}} </div>\r\n <div class=\"col-md-6\"><strong>{{'Stato' | localize: lc}}</strong>: {{SessionDetails.status}} </div>\r\n <div class=\"col-md-6\"><strong>{{'Tipo' | localize: lc}}</strong>: {{SessionDetails.type}}</div>\r\n <div class=\"col-md-6\"><strong>{{'Utente' | localize: lc}}</strong>: {{SessionDetails.user}} <span *ngIf=\"SessionDetails.tenant\">({{SessionDetails.tenant}})</span></div>\r\n </div>\r\n\r\n <div style=\"display: flex; width: 100%; margin-top: 15px;\">\r\n <div style=\"flex-grow: 0;display: flex;flex-direction: column\">\r\n <h5>Prime Istruzioni</h5>\r\n <div *ngIf=\"SelectedTopNodes\">\r\n <es-table [(ngModel)]=\"SelectedTopNodes\" [ArraymodeItemsPerPage]=\"10\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Nodo' | localize: lc}}</th>\r\n <th>{{'Descrizione Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min\">{{'Attivit\u00E0' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Tipo Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Classe Attesa' | localize: lc}}</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\"(click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n <div style=\"width: 15px;\"></div>\r\n <div style=\"flex-grow: 2;display: flex;flex-direction: column\">\r\n <h5>Attivit\u00E0</h5>\r\n <div *ngIf=\"SelectedSessions\" style=\"width: 100%; height: 290px\">\r\n <es-line-chart [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [Stacked]=\"true\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"session_details\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (chartLoaded)=\"onChartLoaded($event, true)\">\r\n </es-line-chart>\r\n <!-- <es-table [(ngModel)]=\"SelectedSessions\" [ArraymodeItemsPerPage]=\"10\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">Timestamp</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Net</th>\r\n <th>IO</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-session>\r\n <td class=\"app-col-min\" style=\"text-wrap: nowrap;\"><strong>{{session.sampletime | loc_date: 'DD/MM/YYYY HH:mm:ss'}}</strong></td>\r\n <td>{{session.cputime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.waittime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.dbtime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.scripttime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.throttletime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.sleeptime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.nettime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.iotime | number : '1.1-2' : 'it'}}</td>\r\n </ng-template>\r\n </es-table> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"display: flex; width: 100%;\">\r\n <div style=\"flex-grow: 1;\">\r\n <h5>Statistiche Thread</h5>\r\n <div>\r\n <es-table [(ngModel)]=\"SessionDetails.threads\" [ArraymodeItemsPerPage]=\"10\" [Selection]=\"true\" [SingleSelection]=\"true\" (onSelectionChanged)=\"threadSelectionChanged($event)\">\r\n <ng-template #header>\r\n <th>Thread</th>\r\n <th>Stato</th>\r\n <th>Tipo</th>\r\n <th>API</th>\r\n <th>Attesa corrente</th>\r\n <th>Nodo di attesa</th>\r\n <th>Attesa su</th>\r\n <th>Classe</th>\r\n <th>Par. 1</th>\r\n <th>Par. 2</th>\r\n <th>Par. 3</th>\r\n <th>Tempo Attesa</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-thread>\r\n <td>{{thread.tid}}</td>\r\n <td>{{thread.status}}</td>\r\n <td>{{thread.type}}</td>\r\n <td>{{thread.api}}</td>\r\n <td>{{thread.wait}}</td>\r\n <td>{{thread.waitnode}}</td>\r\n <td>{{thread.waiteventtype}}</td>\r\n <td>{{thread.waitclassname}}</td>\r\n <td>{{thread.waitpar1}}</td>\r\n <td>{{thread.waitpar2}}</td>\r\n <td>{{thread.waitpar3}}</td>\r\n <td>{{thread.waittime | number : '1.1-2' : 'it'}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgSessionDetails.hide()\">{{'Chiudi' | localize: lc}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8$1.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "component", type: i8.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i9.FormDateTimeComponent, selector: "form-datetime", inputs: ["JsDates"] }, { kind: "component", type: i3$1.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill", "Stacked"] }, { kind: "component", type: NodeDetailComponent, selector: "node-detail", inputs: ["NodeDetails"], outputs: ["onClose"] }, { kind: "pipe", type: i5$1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }] });
|
|
1065
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmTopActivitiesComponent, decorators: [{
|
|
946
1066
|
type: Component,
|
|
947
1067
|
args: [{ selector: "topact_search", providers: [{ provide: LocalizationService, useClass: AdmTopActivitieLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Attivit\u00E0 Principali' | localize: lc}}\r\n <span *ngIf=\"DirInfos\"> - \r\n {{'' + DirInfos.cpus + ' ' + ('CPU' | localize: lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}} \r\n Load average: {{ DirInfos.lavg1 | number : '1.1-2' : 'it'}} {{ DirInfos.lavg5 | number : '1.1-2' : 'it'}} {{ DirInfos.lavg15 | number : '1.1-2' : 'it'}}\r\n </span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Aggiorna ogni' | localize: lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"seconds\" /> {{'secondo/i' | localize: lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" name=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [Stacked]=\"true\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Prime Istruzioni' | localize: lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Nodo' | localize: lc}}</th>\r\n <th>{{'Descrizione Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min\">{{'Attivit\u00E0' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Tipo Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Classe Attesa' | localize: lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Prime Sessioni' | localize: lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'Utente' | localize: lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Processo' | localize: lc}}</th>\r\n <th>{{'Attivit\u00E0' | localize: lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadSessionDetails(session.sid, session.serial); dlgSessionDetails.show();\">{{session.sid}}</span></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>\r\n\r\n<div bsModal #dlgSessionDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-feminist\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">{{'Dettaglio Sessione' | localize: lc}}<span *ngIf=\"SessionDetails\"> {{SessionDetails.sid}}</span></h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgSessionDetails.hide()\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>\r\n </div>\r\n <div class=\"modal-body\" *ngIf=\"SessionDetails\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\"><strong>{{'Seriale' | localize: lc}}</strong>: {{SessionDetails.serial}} </div>\r\n <div class=\"col-md-6\"><strong>{{'Stato' | localize: lc}}</strong>: {{SessionDetails.status}} </div>\r\n <div class=\"col-md-6\"><strong>{{'Tipo' | localize: lc}}</strong>: {{SessionDetails.type}}</div>\r\n <div class=\"col-md-6\"><strong>{{'Utente' | localize: lc}}</strong>: {{SessionDetails.user}} <span *ngIf=\"SessionDetails.tenant\">({{SessionDetails.tenant}})</span></div>\r\n </div>\r\n\r\n <div style=\"display: flex; width: 100%; margin-top: 15px;\">\r\n <div style=\"flex-grow: 0;display: flex;flex-direction: column\">\r\n <h5>Prime Istruzioni</h5>\r\n <div *ngIf=\"SelectedTopNodes\">\r\n <es-table [(ngModel)]=\"SelectedTopNodes\" [ArraymodeItemsPerPage]=\"10\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Nodo' | localize: lc}}</th>\r\n <th>{{'Descrizione Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min\">{{'Attivit\u00E0' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Tipo Nodo' | localize: lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Classe Attesa' | localize: lc}}</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\"(click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n <div style=\"width: 15px;\"></div>\r\n <div style=\"flex-grow: 2;display: flex;flex-direction: column\">\r\n <h5>Attivit\u00E0</h5>\r\n <div *ngIf=\"SelectedSessions\" style=\"width: 100%; height: 290px\">\r\n <es-line-chart [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [Stacked]=\"true\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"session_details\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (chartLoaded)=\"onChartLoaded($event, true)\">\r\n </es-line-chart>\r\n <!-- <es-table [(ngModel)]=\"SelectedSessions\" [ArraymodeItemsPerPage]=\"10\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">Timestamp</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Net</th>\r\n <th>IO</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-session>\r\n <td class=\"app-col-min\" style=\"text-wrap: nowrap;\"><strong>{{session.sampletime | loc_date: 'DD/MM/YYYY HH:mm:ss'}}</strong></td>\r\n <td>{{session.cputime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.waittime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.dbtime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.scripttime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.throttletime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.sleeptime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.nettime | number : '1.1-2' : 'it'}}</td>\r\n <td>{{session.iotime | number : '1.1-2' : 'it'}}</td>\r\n </ng-template>\r\n </es-table> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"display: flex; width: 100%;\">\r\n <div style=\"flex-grow: 1;\">\r\n <h5>Statistiche Thread</h5>\r\n <div>\r\n <es-table [(ngModel)]=\"SessionDetails.threads\" [ArraymodeItemsPerPage]=\"10\" [Selection]=\"true\" [SingleSelection]=\"true\" (onSelectionChanged)=\"threadSelectionChanged($event)\">\r\n <ng-template #header>\r\n <th>Thread</th>\r\n <th>Stato</th>\r\n <th>Tipo</th>\r\n <th>API</th>\r\n <th>Attesa corrente</th>\r\n <th>Nodo di attesa</th>\r\n <th>Attesa su</th>\r\n <th>Classe</th>\r\n <th>Par. 1</th>\r\n <th>Par. 2</th>\r\n <th>Par. 3</th>\r\n <th>Tempo Attesa</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-thread>\r\n <td>{{thread.tid}}</td>\r\n <td>{{thread.status}}</td>\r\n <td>{{thread.type}}</td>\r\n <td>{{thread.api}}</td>\r\n <td>{{thread.wait}}</td>\r\n <td>{{thread.waitnode}}</td>\r\n <td>{{thread.waiteventtype}}</td>\r\n <td>{{thread.waitclassname}}</td>\r\n <td>{{thread.waitpar1}}</td>\r\n <td>{{thread.waitpar2}}</td>\r\n <td>{{thread.waitpar3}}</td>\r\n <td>{{thread.waittime | number : '1.1-2' : 'it'}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgSessionDetails.hide()\">{{'Chiudi' | localize: lc}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
948
1068
|
}], ctorParameters: function () {
|
|
949
|
-
return [{ type: i1.DateService }, { type:
|
|
1069
|
+
return [{ type: i1$1.DateService }, { type: i1.LocalizationService }, { type: i3.PreferencesService }, { type: i5$1.Location }, { type: i1$1.InterComService }, { type: i5.ActivatedRoute }, { type: AdminModuleBaseService }, { type: undefined, decorators: [{
|
|
950
1070
|
type: Inject,
|
|
951
1071
|
args: [ADM_MODULE_PATH]
|
|
952
1072
|
}] }];
|
|
@@ -965,21 +1085,21 @@ class AdmEnqLoc extends LocalizationService {
|
|
|
965
1085
|
super.set("it->en", "Globale", ["Global"]);
|
|
966
1086
|
}
|
|
967
1087
|
}
|
|
968
|
-
AdmEnqLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
969
|
-
AdmEnqLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
970
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1088
|
+
AdmEnqLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmEnqLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1089
|
+
AdmEnqLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmEnqLoc });
|
|
1090
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmEnqLoc, decorators: [{
|
|
971
1091
|
type: Injectable
|
|
972
1092
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
973
1093
|
|
|
974
1094
|
class AdmEnqComponent {
|
|
975
|
-
constructor(lc, localStorage, expExts, intercom,
|
|
1095
|
+
constructor(lc, localStorage, expExts, intercom, route, location, adms, mod) {
|
|
976
1096
|
this.lc = lc;
|
|
977
1097
|
this.localStorage = localStorage;
|
|
978
1098
|
this.expExts = expExts;
|
|
979
1099
|
this.intercom = intercom;
|
|
980
|
-
this.http = http;
|
|
981
1100
|
this.route = route;
|
|
982
1101
|
this.location = location;
|
|
1102
|
+
this.adms = adms;
|
|
983
1103
|
this.mod = mod;
|
|
984
1104
|
this.locksView = new LocksView();
|
|
985
1105
|
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
@@ -1008,7 +1128,7 @@ class AdmEnqComponent {
|
|
|
1008
1128
|
init(HotPotato) {
|
|
1009
1129
|
if (HotPotato) {
|
|
1010
1130
|
this.locksView = HotPotato;
|
|
1011
|
-
this.POSTGetProcesses(
|
|
1131
|
+
this.POSTGetProcesses(this.locksView);
|
|
1012
1132
|
}
|
|
1013
1133
|
else {
|
|
1014
1134
|
this.locksView = new LocksView();
|
|
@@ -1018,22 +1138,23 @@ class AdmEnqComponent {
|
|
|
1018
1138
|
sendSearch(resetPage = true) {
|
|
1019
1139
|
if (resetPage)
|
|
1020
1140
|
this.locksView.page = 1;
|
|
1021
|
-
this.POSTGetProcesses(
|
|
1141
|
+
this.POSTGetProcesses(this.locksView);
|
|
1022
1142
|
}
|
|
1023
|
-
POSTGetProcesses(
|
|
1024
|
-
this
|
|
1025
|
-
this.locksView =
|
|
1143
|
+
POSTGetProcesses(data) {
|
|
1144
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1145
|
+
this.locksView = yield this.adms.getServerLocks(data);
|
|
1146
|
+
this.locksView.searchinprogress = false;
|
|
1026
1147
|
this.localStorage.setItem("HotEnqueue", this.locksView).subscribe();
|
|
1027
1148
|
});
|
|
1028
1149
|
}
|
|
1029
1150
|
}
|
|
1030
|
-
AdmEnqComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1031
|
-
AdmEnqComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
1032
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1151
|
+
AdmEnqComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmEnqComponent, deps: [{ token: i1.LocalizationService }, { token: i3.PreferencesService }, { token: i1$1.ExportService }, { token: i1$1.InterComService }, { token: i5.ActivatedRoute }, { token: i5$1.Location }, { token: AdminModuleBaseService }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
|
|
1152
|
+
AdmEnqComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmEnqComponent, selector: "adm_enq", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Lock Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <form role=\"form\">\r\n <div class=\"col-md-12 row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filtersid\" name=\"filtersid\" [Placeholder]=\"'SID'\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filterlock\" name=\"filterlock\" [Placeholder]=\"'Nome' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"locksView.filterglobal\" name=\"filterglobal\"></form-checkbox> \r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"locksView.filterglobal = !locksView.filterglobal\">{{'Globale' | localize: lc}}</span>\r\n </div>\r\n <button class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!locksView\"><em>{{'Carico i Lock Applicativi' | localize: lc}}...</em></p>\r\n <div *ngIf=\"locksView\">\r\n <es-table [(ngModel)]=\"locksView\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\"></es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i9.FormCheckboxComponent, selector: "form-checkbox", inputs: ["SliderMode"] }, { kind: "component", type: i9.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: AdmEnqLoc }] });
|
|
1153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmEnqComponent, decorators: [{
|
|
1033
1154
|
type: Component,
|
|
1034
1155
|
args: [{ selector: "adm_enq", viewProviders: [{ provide: LocalizationService, useClass: AdmEnqLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Lock Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <form role=\"form\">\r\n <div class=\"col-md-12 row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filtersid\" name=\"filtersid\" [Placeholder]=\"'SID'\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filterlock\" name=\"filterlock\" [Placeholder]=\"'Nome' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"locksView.filterglobal\" name=\"filterglobal\"></form-checkbox> \r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"locksView.filterglobal = !locksView.filterglobal\">{{'Globale' | localize: lc}}</span>\r\n </div>\r\n <button class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!locksView\"><em>{{'Carico i Lock Applicativi' | localize: lc}}...</em></p>\r\n <div *ngIf=\"locksView\">\r\n <es-table [(ngModel)]=\"locksView\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\"></es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
1035
1156
|
}], ctorParameters: function () {
|
|
1036
|
-
return [{ type:
|
|
1157
|
+
return [{ type: i1.LocalizationService }, { type: i3.PreferencesService }, { type: i1$1.ExportService }, { type: i1$1.InterComService }, { type: i5.ActivatedRoute }, { type: i5$1.Location }, { type: AdminModuleBaseService }, { type: undefined, decorators: [{
|
|
1037
1158
|
type: Inject,
|
|
1038
1159
|
args: [ADM_MODULE_PATH]
|
|
1039
1160
|
}] }];
|
|
@@ -1056,21 +1177,21 @@ class AdmMetricsLoc extends LocalizationService {
|
|
|
1056
1177
|
super.set("it->en", "Istanza Metriche", ["Metrics Instance"]);
|
|
1057
1178
|
}
|
|
1058
1179
|
}
|
|
1059
|
-
AdmMetricsLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1060
|
-
AdmMetricsLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
1061
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1180
|
+
AdmMetricsLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmMetricsLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1181
|
+
AdmMetricsLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmMetricsLoc });
|
|
1182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmMetricsLoc, decorators: [{
|
|
1062
1183
|
type: Injectable
|
|
1063
1184
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
1064
1185
|
|
|
1065
1186
|
class AdmMetricsComponent {
|
|
1066
|
-
constructor(dateExts, lc, localStorage, location, intercom,
|
|
1187
|
+
constructor(dateExts, lc, localStorage, location, intercom, route, adms, mod) {
|
|
1067
1188
|
this.dateExts = dateExts;
|
|
1068
1189
|
this.lc = lc;
|
|
1069
1190
|
this.localStorage = localStorage;
|
|
1070
1191
|
this.location = location;
|
|
1071
1192
|
this.intercom = intercom;
|
|
1072
|
-
this.http = http;
|
|
1073
1193
|
this.route = route;
|
|
1194
|
+
this.adms = adms;
|
|
1074
1195
|
this.mod = mod;
|
|
1075
1196
|
this.MetricsChartCache = {};
|
|
1076
1197
|
this.searchView = new MetricsView();
|
|
@@ -1091,15 +1212,16 @@ class AdmMetricsComponent {
|
|
|
1091
1212
|
this.doInit(ignoreStore);
|
|
1092
1213
|
}
|
|
1093
1214
|
dateChanged() {
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1215
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1216
|
+
// Pulizia di tutti i parametri di ricerca dipendenti dalle date
|
|
1217
|
+
this.metricsToShow = [];
|
|
1218
|
+
this.Metrics = [];
|
|
1219
|
+
this.instanceRequired = false;
|
|
1220
|
+
this.Instances = [];
|
|
1221
|
+
this.selectedInstance = "";
|
|
1222
|
+
this.searchView.filtermetrics = [];
|
|
1223
|
+
this.Metrics = yield this.adms.getMetricsList(this.searchView.filterfrom || "", this.searchView.filterto || "");
|
|
1224
|
+
});
|
|
1103
1225
|
}
|
|
1104
1226
|
doInit(ignoreStorage) {
|
|
1105
1227
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1118,7 +1240,7 @@ class AdmMetricsComponent {
|
|
|
1118
1240
|
init(HotPotato) {
|
|
1119
1241
|
if (HotPotato) {
|
|
1120
1242
|
this.searchView = HotPotato;
|
|
1121
|
-
this.POSTGetItems(
|
|
1243
|
+
this.POSTGetItems(this.searchView, false);
|
|
1122
1244
|
}
|
|
1123
1245
|
else {
|
|
1124
1246
|
this.searchView = new MetricsView();
|
|
@@ -1138,16 +1260,17 @@ class AdmMetricsComponent {
|
|
|
1138
1260
|
this.searchView.itemsperpageoverride = 999999;
|
|
1139
1261
|
if (resetPage)
|
|
1140
1262
|
this.searchView.page = 1;
|
|
1141
|
-
this.POSTGetItems(
|
|
1263
|
+
this.POSTGetItems(searchViewOverride !== null && searchViewOverride !== void 0 ? searchViewOverride : this.searchView, update);
|
|
1142
1264
|
}
|
|
1143
|
-
POSTGetItems(
|
|
1144
|
-
|
|
1145
|
-
|
|
1265
|
+
POSTGetItems(data, update) {
|
|
1266
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1267
|
+
data.filterrealtime = update ? data.filterrealtime : !(!!data.filterfrom || !!data.filterto);
|
|
1268
|
+
let res = yield this.adms.getMetrics(data);
|
|
1146
1269
|
//Se sono in modalità di update non devo toccare la searchView attuale se non per il searchinprogress che viene messo dall'es table
|
|
1147
1270
|
if (!update) {
|
|
1148
1271
|
this.selectedInstance = "";
|
|
1149
1272
|
this.metricsToShow = [];
|
|
1150
|
-
this.searchView =
|
|
1273
|
+
this.searchView = res;
|
|
1151
1274
|
this.searchView.items.forEach(m => {
|
|
1152
1275
|
if (m.instance && !this.Instances.find(t => t.id == m.instance))
|
|
1153
1276
|
this.Instances.push(new KeyValue(m.instance, m.instance));
|
|
@@ -1163,7 +1286,7 @@ class AdmMetricsComponent {
|
|
|
1163
1286
|
}
|
|
1164
1287
|
else {
|
|
1165
1288
|
// Per ogni grafico di ogni metrica aggiungo tutti i valori che sono DOPO all'ultimo ts registrato per quel grafico
|
|
1166
|
-
|
|
1289
|
+
res.items.forEach(m => {
|
|
1167
1290
|
m.values.forEach(c => {
|
|
1168
1291
|
let refm = this.MetricsChartCache[this.metricKey(m, c)];
|
|
1169
1292
|
if (refm) {
|
|
@@ -1177,7 +1300,7 @@ class AdmMetricsComponent {
|
|
|
1177
1300
|
});
|
|
1178
1301
|
}
|
|
1179
1302
|
this.searchView.searchinprogress = false;
|
|
1180
|
-
})
|
|
1303
|
+
});
|
|
1181
1304
|
}
|
|
1182
1305
|
instanceSelected(allowNull = false) {
|
|
1183
1306
|
if (!this.selectedInstance && !allowNull)
|
|
@@ -1202,13 +1325,13 @@ class AdmMetricsComponent {
|
|
|
1202
1325
|
clearInterval(this.updateTimer);
|
|
1203
1326
|
}
|
|
1204
1327
|
}
|
|
1205
|
-
AdmMetricsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1206
|
-
AdmMetricsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmMetricsComponent, selector: "metrics_search", providers: [{ provide: LocalizationService, useClass: AdmMetricsLoc }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Metriche di Sistema' | localize: lc}}\r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtersid\" name=\"filtersid\" [Placeholder]=\"'Cod. Sessione' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterserial\" name=\"filterserial\" [Placeholder]=\"'Seriale Sessione' | localize: lc\"></form-input>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-12 app-filter-wrapper\">\r\n <form-multiselect [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtermetrics\" [IdField]=\"'name'\" [Display]=\"'{name}'\" name=\"filtermetrics\" [SelectLabel]=\"'Filtra Metriche...' | localize: lc\" [Source]=\"Metrics\"></form-multiselect>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </form>\r\n <div class=\"app-col-12 app-margin-top-15\">\r\n <div class=\"pull-right\">\r\n {{'Aggiorna ogni' | localize: lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"seconds\" /> {{'secondo/i' | localize: lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" name=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView && instanceRequired\">\r\n <form-select [Validation]=\"false\" [Label]=\"'Istanza Metriche' | localize: lc\" [(ngModel)]=\"selectedInstance\" name=\"instance\" [Source]=\"Instances\" (inputChange)=\"instanceSelected()\" required></form-select>\r\n </div>\r\n <div *ngIf=\"searchView && metricsToShow && metricsToShow.length > 0\">\r\n <div class=\"col-md-12 app-padding-right-0 row app-margin-top-15\">\r\n <ng-container *ngFor=\"let metric of metricsToShow; let i = index\">\r\n <div class=\"col-md-4 app-no-padding app-simple-border\" *ngFor=\"let chart of metric.values; let z = index\">\r\n <div style=\"width: 100%; height: 260px\">\r\n <es-line-chart [XTitle]=\"chart.xtitle\"\r\n [YTitle]=\"chart.ytitle\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"chart\"\r\n [Animations]=\"true\"\r\n [Legend]=\"chart.legend\"\r\n name=\"metric_{{i}}_chart_{{z}}\"\r\n (chartLoaded)=\"linkChartToMetric(metric, chart, $event);\"\r\n [DataGroupingThreshold]=\"99999999\">\r\n </es-line-chart>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i9$1.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i9$1.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "component", type: i9$1.FormMultiSelectComponent, selector: "form-multiselect", inputs: ["SelectLabel", "UseKeyValues", "UseCommaSeparatedList"] }, { kind: "component", type: i9$1.FormDateTimeComponent, selector: "form-datetime", inputs: ["JsDates"] }, { kind: "component", type: i3$1.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill", "Stacked"] }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }] });
|
|
1207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1328
|
+
AdmMetricsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmMetricsComponent, deps: [{ token: i1$1.DateService }, { token: i1.LocalizationService }, { token: i3.PreferencesService }, { token: i5$1.Location }, { token: i1$1.InterComService }, { token: i5.ActivatedRoute }, { token: AdminModuleBaseService }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
|
|
1329
|
+
AdmMetricsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmMetricsComponent, selector: "metrics_search", providers: [{ provide: LocalizationService, useClass: AdmMetricsLoc }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Metriche di Sistema' | localize: lc}}\r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtersid\" name=\"filtersid\" [Placeholder]=\"'Cod. Sessione' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterserial\" name=\"filterserial\" [Placeholder]=\"'Seriale Sessione' | localize: lc\"></form-input>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-12 app-filter-wrapper\">\r\n <form-multiselect [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtermetrics\" [IdField]=\"'name'\" [Display]=\"'{name}'\" name=\"filtermetrics\" [SelectLabel]=\"'Filtra Metriche...' | localize: lc\" [Source]=\"Metrics\"></form-multiselect>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </form>\r\n <div class=\"app-col-12 app-margin-top-15\">\r\n <div class=\"pull-right\">\r\n {{'Aggiorna ogni' | localize: lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"seconds\" /> {{'secondo/i' | localize: lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" name=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView && instanceRequired\">\r\n <form-select [Validation]=\"false\" [Label]=\"'Istanza Metriche' | localize: lc\" [(ngModel)]=\"selectedInstance\" name=\"instance\" [Source]=\"Instances\" (inputChange)=\"instanceSelected()\" required></form-select>\r\n </div>\r\n <div *ngIf=\"searchView && metricsToShow && metricsToShow.length > 0\">\r\n <div class=\"col-md-12 app-padding-right-0 row app-margin-top-15\">\r\n <ng-container *ngFor=\"let metric of metricsToShow; let i = index\">\r\n <div class=\"col-md-4 app-no-padding app-simple-border\" *ngFor=\"let chart of metric.values; let z = index\">\r\n <div style=\"width: 100%; height: 260px\">\r\n <es-line-chart [XTitle]=\"chart.xtitle\"\r\n [YTitle]=\"chart.ytitle\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"chart\"\r\n [Animations]=\"true\"\r\n [Legend]=\"chart.legend\"\r\n name=\"metric_{{i}}_chart_{{z}}\"\r\n (chartLoaded)=\"linkChartToMetric(metric, chart, $event);\"\r\n [DataGroupingThreshold]=\"99999999\">\r\n </es-line-chart>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i9.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i9.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "component", type: i9.FormMultiSelectComponent, selector: "form-multiselect", inputs: ["SelectLabel", "UseKeyValues", "UseCommaSeparatedList"] }, { kind: "component", type: i9.FormDateTimeComponent, selector: "form-datetime", inputs: ["JsDates"] }, { kind: "component", type: i3$1.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill", "Stacked"] }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }] });
|
|
1330
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmMetricsComponent, decorators: [{
|
|
1208
1331
|
type: Component,
|
|
1209
1332
|
args: [{ selector: "metrics_search", providers: [{ provide: LocalizationService, useClass: AdmMetricsLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Metriche di Sistema' | localize: lc}}\r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtersid\" name=\"filtersid\" [Placeholder]=\"'Cod. Sessione' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterserial\" name=\"filterserial\" [Placeholder]=\"'Seriale Sessione' | localize: lc\"></form-input>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-12 app-filter-wrapper\">\r\n <form-multiselect [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtermetrics\" [IdField]=\"'name'\" [Display]=\"'{name}'\" name=\"filtermetrics\" [SelectLabel]=\"'Filtra Metriche...' | localize: lc\" [Source]=\"Metrics\"></form-multiselect>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </form>\r\n <div class=\"app-col-12 app-margin-top-15\">\r\n <div class=\"pull-right\">\r\n {{'Aggiorna ogni' | localize: lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"seconds\" /> {{'secondo/i' | localize: lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" name=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView && instanceRequired\">\r\n <form-select [Validation]=\"false\" [Label]=\"'Istanza Metriche' | localize: lc\" [(ngModel)]=\"selectedInstance\" name=\"instance\" [Source]=\"Instances\" (inputChange)=\"instanceSelected()\" required></form-select>\r\n </div>\r\n <div *ngIf=\"searchView && metricsToShow && metricsToShow.length > 0\">\r\n <div class=\"col-md-12 app-padding-right-0 row app-margin-top-15\">\r\n <ng-container *ngFor=\"let metric of metricsToShow; let i = index\">\r\n <div class=\"col-md-4 app-no-padding app-simple-border\" *ngFor=\"let chart of metric.values; let z = index\">\r\n <div style=\"width: 100%; height: 260px\">\r\n <es-line-chart [XTitle]=\"chart.xtitle\"\r\n [YTitle]=\"chart.ytitle\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"chart\"\r\n [Animations]=\"true\"\r\n [Legend]=\"chart.legend\"\r\n name=\"metric_{{i}}_chart_{{z}}\"\r\n (chartLoaded)=\"linkChartToMetric(metric, chart, $event);\"\r\n [DataGroupingThreshold]=\"99999999\">\r\n </es-line-chart>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
1210
1333
|
}], ctorParameters: function () {
|
|
1211
|
-
return [{ type: i1.DateService }, { type:
|
|
1334
|
+
return [{ type: i1$1.DateService }, { type: i1.LocalizationService }, { type: i3.PreferencesService }, { type: i5$1.Location }, { type: i1$1.InterComService }, { type: i5.ActivatedRoute }, { type: AdminModuleBaseService }, { type: undefined, decorators: [{
|
|
1212
1335
|
type: Inject,
|
|
1213
1336
|
args: [ADM_MODULE_PATH]
|
|
1214
1337
|
}] }];
|
|
@@ -1220,31 +1343,32 @@ class AdmLogsLoc extends LocalizationService {
|
|
|
1220
1343
|
super.set("it->en", "Log del Server", ["Server Logs"]);
|
|
1221
1344
|
}
|
|
1222
1345
|
}
|
|
1223
|
-
AdmLogsLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1224
|
-
AdmLogsLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
1225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1346
|
+
AdmLogsLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmLogsLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1347
|
+
AdmLogsLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmLogsLoc });
|
|
1348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmLogsLoc, decorators: [{
|
|
1226
1349
|
type: Injectable
|
|
1227
1350
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
1228
1351
|
|
|
1229
|
-
// Angular
|
|
1230
1352
|
class AdmLogsComponent {
|
|
1231
|
-
constructor(intercom,
|
|
1353
|
+
constructor(intercom, lc, route, adms) {
|
|
1232
1354
|
this.intercom = intercom;
|
|
1233
|
-
this.http = http;
|
|
1234
1355
|
this.lc = lc;
|
|
1235
1356
|
this.route = route;
|
|
1357
|
+
this.adms = adms;
|
|
1236
1358
|
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
1237
1359
|
}
|
|
1238
1360
|
ngOnInit() {
|
|
1239
|
-
this
|
|
1361
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1362
|
+
this.Log = yield this.adms.getServerLogs();
|
|
1363
|
+
});
|
|
1240
1364
|
}
|
|
1241
1365
|
}
|
|
1242
|
-
AdmLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1243
|
-
AdmLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
1244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1366
|
+
AdmLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmLogsComponent, deps: [{ token: i1$1.InterComService }, { token: i1.LocalizationService }, { token: i5.ActivatedRoute }, { token: AdminModuleBaseService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1367
|
+
AdmLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmLogsComponent, selector: "adm_logs", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 bottom-15\">\r\n <p *ngIf=\"Log\" class=\"app-whitespace-prewrap\" [innerHTML]=\"Log\"></p>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], viewProviders: [{ provide: LocalizationService, useClass: AdmLogsLoc }] });
|
|
1368
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmLogsComponent, decorators: [{
|
|
1245
1369
|
type: Component,
|
|
1246
1370
|
args: [{ selector: "adm_logs", viewProviders: [{ provide: LocalizationService, useClass: AdmLogsLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12 bottom-15\">\r\n <p *ngIf=\"Log\" class=\"app-whitespace-prewrap\" [innerHTML]=\"Log\"></p>\r\n </div>\r\n</div>" }]
|
|
1247
|
-
}], ctorParameters: function () { return [{ type: i1.InterComService }, { type:
|
|
1371
|
+
}], ctorParameters: function () { return [{ type: i1$1.InterComService }, { type: i1.LocalizationService }, { type: i5.ActivatedRoute }, { type: AdminModuleBaseService }]; } });
|
|
1248
1372
|
|
|
1249
1373
|
class DynamicViewsView extends AppSearch {
|
|
1250
1374
|
constructor() { super(); }
|
|
@@ -1260,20 +1384,20 @@ class AdmDynamicViewsLoc extends LocalizationService {
|
|
|
1260
1384
|
super.set("it->en", "Nessun elemento trovato per la vista dinamica", ["No element found for Dynamic View"]);
|
|
1261
1385
|
}
|
|
1262
1386
|
}
|
|
1263
|
-
AdmDynamicViewsLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1264
|
-
AdmDynamicViewsLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
1265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1387
|
+
AdmDynamicViewsLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmDynamicViewsLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1388
|
+
AdmDynamicViewsLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmDynamicViewsLoc });
|
|
1389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmDynamicViewsLoc, decorators: [{
|
|
1266
1390
|
type: Injectable
|
|
1267
1391
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
1268
1392
|
|
|
1269
1393
|
class AdmDynamicViewsComponent {
|
|
1270
|
-
constructor(lc, intercom, localStorage,
|
|
1394
|
+
constructor(lc, intercom, localStorage, route, location, adms, mod) {
|
|
1271
1395
|
this.lc = lc;
|
|
1272
1396
|
this.intercom = intercom;
|
|
1273
1397
|
this.localStorage = localStorage;
|
|
1274
|
-
this.http = http;
|
|
1275
1398
|
this.route = route;
|
|
1276
1399
|
this.location = location;
|
|
1400
|
+
this.adms = adms;
|
|
1277
1401
|
this.mod = mod;
|
|
1278
1402
|
this.searchView = new DynamicViewsView();
|
|
1279
1403
|
this.Names = [];
|
|
@@ -1284,8 +1408,10 @@ class AdmDynamicViewsComponent {
|
|
|
1284
1408
|
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
1285
1409
|
}
|
|
1286
1410
|
ngOnInit() {
|
|
1287
|
-
this
|
|
1288
|
-
|
|
1411
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1412
|
+
this.Names = yield this.adms.getDynamicViews();
|
|
1413
|
+
this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params["ignoreStorage"]); });
|
|
1414
|
+
});
|
|
1289
1415
|
}
|
|
1290
1416
|
ngOnDestroy() {
|
|
1291
1417
|
if (this.storageSub)
|
|
@@ -1310,7 +1436,7 @@ class AdmDynamicViewsComponent {
|
|
|
1310
1436
|
//Altirmenti genero il modello nuovo normalmente
|
|
1311
1437
|
if (HotPotato) {
|
|
1312
1438
|
this.searchView = HotPotato;
|
|
1313
|
-
this.POSTGetItems(
|
|
1439
|
+
this.POSTGetItems();
|
|
1314
1440
|
}
|
|
1315
1441
|
else {
|
|
1316
1442
|
this.searchView = new DynamicViewsView();
|
|
@@ -1322,37 +1448,37 @@ class AdmDynamicViewsComponent {
|
|
|
1322
1448
|
if (resetPage)
|
|
1323
1449
|
this.searchView.page = 1;
|
|
1324
1450
|
this.searchView.filtername = this.filterName;
|
|
1325
|
-
this.POSTGetItems(
|
|
1326
|
-
}
|
|
1327
|
-
POSTGetItems(
|
|
1328
|
-
|
|
1329
|
-
this.
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
this.currentName
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
this.searchView =
|
|
1451
|
+
this.POSTGetItems();
|
|
1452
|
+
}
|
|
1453
|
+
POSTGetItems() {
|
|
1454
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1455
|
+
if (!this.searchView.filtername) {
|
|
1456
|
+
this.badSearch = true;
|
|
1457
|
+
AppSearch.reset(this.searchView);
|
|
1458
|
+
//Aggiorno il riferimento per refreshare la es-table
|
|
1459
|
+
this.searchView = JSON.parse(JSON.stringify(this.searchView));
|
|
1460
|
+
return;
|
|
1461
|
+
}
|
|
1462
|
+
else
|
|
1463
|
+
this.badSearch = false;
|
|
1464
|
+
// Per force-resettare l'estable
|
|
1465
|
+
if (this.currentName != this.searchView.filtername) {
|
|
1466
|
+
this.currentName = this.searchView.filtername;
|
|
1467
|
+
this.searchView = null;
|
|
1468
|
+
}
|
|
1469
|
+
this.searchView = yield this.adms.getDynamicViewData(this.searchView);
|
|
1344
1470
|
this.searchView.searchinprogress = false;
|
|
1345
1471
|
this.localStorage.setItem("HotDinamitato", this.searchView).subscribe();
|
|
1346
1472
|
});
|
|
1347
1473
|
}
|
|
1348
1474
|
}
|
|
1349
|
-
AdmDynamicViewsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1350
|
-
AdmDynamicViewsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
1351
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1475
|
+
AdmDynamicViewsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmDynamicViewsComponent, deps: [{ token: i1.LocalizationService }, { token: i1$1.InterComService }, { token: i3.PreferencesService }, { token: i5.ActivatedRoute }, { token: i5$1.Location }, { token: AdminModuleBaseService }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
|
|
1476
|
+
AdmDynamicViewsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmDynamicViewsComponent, selector: "adm_dynamic_views", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Viste Dinamiche Applicative' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"filterName\" name=\"filtername\" [Source]=\"Names\" [SelectLabel]=\"'Nome' | localize: lc\"></form-select>\r\n </div>\r\n <button class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div *ngIf=\"badSearch\" class=\"card card-info app-white-text app-padding-10\">{{'Il nome della vista \u00E8 obbligatorio per le operazioni di ricerca' | localize: lc}}</div>\r\n <ng-container *ngIf=\"!badSearch\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico le Viste Dinamiche Applicative' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView && searchView.items.length > 0\">\r\n <es-table [(ngModel)]=\"searchView\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\"></es-table>\r\n </div>\r\n <div *ngIf=\"searchView && searchView.items.length == 0 && !searchView.searchinprogress\" class=\"card card-info app-white-text app-padding-10\">\r\n {{'Nessun elemento trovato per la vista dinamica' | localize: lc}} <strong>{{searchView.filtername}}</strong>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i9.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: AdmDynamicViewsLoc }] });
|
|
1477
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmDynamicViewsComponent, decorators: [{
|
|
1352
1478
|
type: Component,
|
|
1353
1479
|
args: [{ selector: "adm_dynamic_views", viewProviders: [{ provide: LocalizationService, useClass: AdmDynamicViewsLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Viste Dinamiche Applicative' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"filterName\" name=\"filtername\" [Source]=\"Names\" [SelectLabel]=\"'Nome' | localize: lc\"></form-select>\r\n </div>\r\n <button class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div *ngIf=\"badSearch\" class=\"card card-info app-white-text app-padding-10\">{{'Il nome della vista \u00E8 obbligatorio per le operazioni di ricerca' | localize: lc}}</div>\r\n <ng-container *ngIf=\"!badSearch\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico le Viste Dinamiche Applicative' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView && searchView.items.length > 0\">\r\n <es-table [(ngModel)]=\"searchView\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\"></es-table>\r\n </div>\r\n <div *ngIf=\"searchView && searchView.items.length == 0 && !searchView.searchinprogress\" class=\"card card-info app-white-text app-padding-10\">\r\n {{'Nessun elemento trovato per la vista dinamica' | localize: lc}} <strong>{{searchView.filtername}}</strong>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
1354
1480
|
}], ctorParameters: function () {
|
|
1355
|
-
return [{ type:
|
|
1481
|
+
return [{ type: i1.LocalizationService }, { type: i1$1.InterComService }, { type: i3.PreferencesService }, { type: i5.ActivatedRoute }, { type: i5$1.Location }, { type: AdminModuleBaseService }, { type: undefined, decorators: [{
|
|
1356
1482
|
type: Inject,
|
|
1357
1483
|
args: [ADM_MODULE_PATH]
|
|
1358
1484
|
}] }];
|
|
@@ -1375,9 +1501,9 @@ class FormatTimePipe {
|
|
|
1375
1501
|
return hDisplay + mDisplay + sDisplay;
|
|
1376
1502
|
}
|
|
1377
1503
|
}
|
|
1378
|
-
FormatTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1379
|
-
FormatTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.
|
|
1380
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1504
|
+
FormatTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormatTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1505
|
+
FormatTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FormatTimePipe, name: "format_time" });
|
|
1506
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormatTimePipe, decorators: [{
|
|
1381
1507
|
type: Pipe,
|
|
1382
1508
|
args: [{ name: 'format_time' }]
|
|
1383
1509
|
}], ctorParameters: function () { return []; } });
|
|
@@ -1408,11 +1534,11 @@ class AdminModuleCommService {
|
|
|
1408
1534
|
}
|
|
1409
1535
|
}
|
|
1410
1536
|
}
|
|
1411
|
-
AdminModuleCommService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1412
|
-
AdminModuleCommService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
1413
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1537
|
+
AdminModuleCommService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdminModuleCommService, deps: [{ token: i1$1.InterComService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1538
|
+
AdminModuleCommService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdminModuleCommService });
|
|
1539
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdminModuleCommService, decorators: [{
|
|
1414
1540
|
type: Injectable
|
|
1415
|
-
}], ctorParameters: function () { return [{ type: i1.InterComService }]; } });
|
|
1541
|
+
}], ctorParameters: function () { return [{ type: i1$1.InterComService }]; } });
|
|
1416
1542
|
|
|
1417
1543
|
// Angular
|
|
1418
1544
|
const routeConfig = [
|
|
@@ -1474,8 +1600,8 @@ class AdmModule {
|
|
|
1474
1600
|
this.commService.register();
|
|
1475
1601
|
}
|
|
1476
1602
|
}
|
|
1477
|
-
AdmModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
1478
|
-
AdmModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
1603
|
+
AdmModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmModule, deps: [{ token: AdminModuleCommService }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1604
|
+
AdmModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AdmModule, declarations: [AdmWrkComponent,
|
|
1479
1605
|
AdmProfilerComponent,
|
|
1480
1606
|
AdmTopActivitiesComponent,
|
|
1481
1607
|
AdmDynamicViewsComponent,
|
|
@@ -1506,11 +1632,11 @@ AdmModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
1506
1632
|
EsChartsModule,
|
|
1507
1633
|
NgxMatDatetimePickerModule, i5.RouterModule
|
|
1508
1634
|
] });
|
|
1509
|
-
AdmModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
1635
|
+
AdmModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmModule, providers: [
|
|
1510
1636
|
AdminModuleCommService,
|
|
1511
1637
|
{ provide: ADM_CONVERSATIONS, useFactory: () => !!myconfig.TransactionTimeoutSeconds }
|
|
1512
1638
|
], imports: [MODULES] });
|
|
1513
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
1639
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmModule, decorators: [{
|
|
1514
1640
|
type: NgModule,
|
|
1515
1641
|
args: [{
|
|
1516
1642
|
imports: [...MODULES],
|