@esfaenza/admin-module 11.2.12 → 11.2.15
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/bundles/esfaenza-admin-module.umd.js +190 -12
- package/bundles/esfaenza-admin-module.umd.js.map +1 -1
- package/bundles/esfaenza-admin-module.umd.min.js +2 -2
- package/bundles/esfaenza-admin-module.umd.min.js.map +1 -1
- package/esfaenza-admin-module.d.ts +6 -3
- package/esfaenza-admin-module.metadata.json +1 -1
- package/esm2015/esfaenza-admin-module.js +7 -4
- package/esm2015/lib/admin-module.module.js +17 -9
- package/esm2015/lib/components/_shared/node_detail.component.js +2 -2
- package/esm2015/lib/components/_shared/node_detail.component.loc.js +3 -1
- package/esm2015/lib/components/dynamic_views/adm_dynamic_views.component.js +116 -0
- package/esm2015/lib/components/dynamic_views/adm_dynamic_views.component.loc.js +19 -0
- package/esm2015/lib/components/profiler/adm_profiler.component.js +2 -2
- package/esm2015/lib/models/components/DynamicViewsView.js +5 -0
- package/esm2015/lib/models/components/NodeStats.js +1 -1
- package/esm2015/lib/models/components/NodeWaitStack.js +3 -0
- package/esm2015/lib/models/externals/Repository.js +3 -1
- package/esm2015/lib/pipes/format_time.pipe.js +23 -0
- package/fesm2015/esfaenza-admin-module.js +162 -11
- package/fesm2015/esfaenza-admin-module.js.map +1 -1
- package/lib/admin-module.module.d.ts +8 -0
- package/lib/components/dynamic_views/adm_dynamic_views.component.d.ts +32 -0
- package/lib/components/dynamic_views/adm_dynamic_views.component.loc.d.ts +4 -0
- package/lib/models/components/DynamicViewsView.d.ts +5 -0
- package/lib/models/components/NodeStats.d.ts +2 -0
- package/lib/models/components/NodeWaitStack.d.ts +6 -0
- package/lib/models/externals/Repository.d.ts +2 -0
- package/lib/pipes/format_time.pipe.d.ts +6 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Location, CommonModule } from '@angular/common';
|
|
2
2
|
import { FormsModule } from '@angular/forms';
|
|
3
|
-
import { InjectionToken, Injectable, Inject, Component, ViewChild, EventEmitter, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import { InjectionToken, Injectable, Inject, Component, ViewChild, EventEmitter, Input, Output, Pipe, NgModule } from '@angular/core';
|
|
4
4
|
import { ActivatedRoute, RouterModule } from '@angular/router';
|
|
5
5
|
import { MatIconModule } from '@angular/material/icon';
|
|
6
6
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
@@ -42,8 +42,10 @@ const Repository = {
|
|
|
42
42
|
POST_Adm_GetMetrics: "/api/Adm/GetMetrics",
|
|
43
43
|
POST_Adm_GetProfilerDataNodes: "/api/Adm/GetProfilerDataNodes",
|
|
44
44
|
POST_Adm_GetServerAudits: "/api/Adm/GetServerAudits",
|
|
45
|
+
POST_Adm_GetDynamicViewData: "/api/Adm/GetDynamicViewData",
|
|
45
46
|
POST_Adm_GetServerLocks: "/api/Adm/GetServerLocks",
|
|
46
47
|
GET_Adm_GetServerLogs: "/api/Adm/GetServerLogs",
|
|
48
|
+
GET_Adm_GetDynamicViews: "/api/Adm/GetDynamicViews",
|
|
47
49
|
POST_Adm_GetServerWorkers: "/api/Adm/GetServerWorkers",
|
|
48
50
|
POST_Adm_GetTopActivities: "/api/Adm/GetTopActivities",
|
|
49
51
|
GET_Adm_GetWorkerStatus: "/api/Adm/GetWorkerStatus",
|
|
@@ -608,7 +610,7 @@ AdmProfilerComponent.decorators = [
|
|
|
608
610
|
{ type: Component, args: [{
|
|
609
611
|
selector: "adm_profiler",
|
|
610
612
|
providers: [{ provide: LocalizationService, useClass: AdmProfilerComponentLoc }],
|
|
611
|
-
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\">{{'Server Profiler' | 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]=\"'From' | 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]=\"'To' | 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>{{'Loading Data' | 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'\">{{'Description' | localize : lc}}</span>\r\n <span *th=\"'3'\">{{'Calls' | localize : lc}}</span>\r\n <span *th=\"'4'\">{{'Time' | localize : lc}}</span>\r\n <span *th=\"'5'\">{{'Peak Time' | localize : lc}}</span>\r\n <span *th=\"'6'\">{{'Min. Time' | localize : lc}}</span>\r\n <span *th=\"'7'\">{{'Avg. Time' | localize : lc}}</span>\r\n <span *th=\"'8'\">{{'Specific Time' | localize : lc}}</span>\r\n <span *th=\"'9'\">{{'Percentage' | localize : lc}}</span>\r\n <span *th=\"'10'\">{{'Calls for Period' | localize : lc}}</span>\r\n <span *th=\"'11'\">{{'Time for Period' | localize : lc}}</span>\r\n <span *th=\"'12'\">{{'Peak Time for Period' | localize : lc}}</span>\r\n <span *th=\"'13'\">{{'Min. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'14'\">{{'Avg. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'15'\">{{'Specific Time for Period' | localize : lc}}</span>\r\n <span *th=\"'16'\">{{'Percentage for Period' | localize : lc}}</span>\r\n <span *th=\"'17'\">{{'Event Type Name' | localize : lc}}</span>\r\n <span *th=\"'18'\">{{'Wait Class Name' | 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>"
|
|
613
|
+
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\">{{'Server Profiler' | 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]=\"'From' | 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]=\"'To' | 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>{{'Loading Data' | 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'\">{{'Description' | localize : lc}}</span>\r\n <span *th=\"'3'\">{{'Calls' | localize : lc}}</span>\r\n <span *th=\"'4'\">{{'Time' | localize : lc}}</span>\r\n <span *th=\"'5'\">{{'Peak Time' | localize : lc}}</span>\r\n <span *th=\"'6'\">{{'Min. Time' | localize : lc}}</span>\r\n <span *th=\"'7'\">{{'Avg. Time' | localize : lc}}</span>\r\n <span *th=\"'8'\">{{'Specific Time' | localize : lc}}</span>\r\n <span *th=\"'9'\">{{'Percentage' | localize : lc}}</span>\r\n <span *th=\"'10'\">{{'Calls for Period' | localize : lc}}</span>\r\n <span *th=\"'11'\">{{'Time for Period' | localize : lc}}</span>\r\n <span *th=\"'12'\">{{'Peak Time for Period' | localize : lc}}</span>\r\n <span *th=\"'13'\">{{'Min. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'14'\">{{'Avg. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'15'\">{{'Specific Time for Period' | localize : lc}}</span>\r\n <span *th=\"'16'\">{{'Percentage for Period' | localize : lc}}</span>\r\n <span *th=\"'17'\">{{'Event Type Name' | localize : lc}}</span>\r\n <span *th=\"'18'\">{{'Wait Class Name' | 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 | format_time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime | format_time}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime | format_time}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime | format_time}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren | format_time}}</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 | format_time}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime | format_time}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime | format_time}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren | format_time}}</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>"
|
|
612
614
|
},] }
|
|
613
615
|
];
|
|
614
616
|
AdmProfilerComponent.ctorParameters = () => [
|
|
@@ -1176,6 +1178,8 @@ class NodeDetailLoc extends LocalizationService {
|
|
|
1176
1178
|
super.set("en->it", "Elapsed (With Children)", ["Tempo Trascorso (Con Figli)"]);
|
|
1177
1179
|
super.set("en->it", "Wait Class", ["Classe Attesa"]);
|
|
1178
1180
|
super.set("en->it", "Elapsed (No Children)", ["Tempo Trascorso (Non Figli)"]);
|
|
1181
|
+
super.set("en->it", "Wait Stack", ["Stack di Attesa"]);
|
|
1182
|
+
super.set("en->it", "Resources Usage", ["Utilizzo Risorse"]);
|
|
1179
1183
|
}
|
|
1180
1184
|
}
|
|
1181
1185
|
NodeDetailLoc.decorators = [
|
|
@@ -1213,7 +1217,7 @@ NodeDetailComponent.decorators = [
|
|
|
1213
1217
|
{ type: Component, args: [{
|
|
1214
1218
|
selector: "node-detail",
|
|
1215
1219
|
viewProviders: [{ provide: LocalizationService, useClass: NodeDetailLoc }],
|
|
1216
|
-
template: "<div class=\"modal-dialog modal-
|
|
1220
|
+
template: "<div class=\"modal-dialog modal-xl\" cdkDrag>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\" cdkDragHandle>\r\n <h4 class=\"modal-title pull-left\">\r\n {{'Activity Node Details' | localize : lc}}\r\n <span *ngIf=\"NodeDetails\"> {{NodeDetails.nodeid}} - {{NodeDetails.nodedescription}}</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>{{'Event Type' | localize: lc}}</strong>: {{NodeDetails.eventtypedesc}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Elapsed (With Children)' | localize: lc}}</strong>: {{NodeDetails.elapsed}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Wait Class' | localize: lc}}</strong>: {{NodeDetails.waitclassname}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Elapsed (No Children)' | localize: lc}}</strong>: {{NodeDetails.elapsedlesschildren}}\r\n </div>\r\n </div>\r\n <div class=\"row\" style=\"max-height: 200px; overflow: auto\" *ngIf=\"(NodeDetails?.waitstack?.length || 0) > 0\">\r\n <h5 class=\"app-margin-top-10\"><strong>{{'Wait Stack' | localize: lc}}</strong></h5>\r\n <div *ngFor=\"let wait of NodeDetails.waitstack\">\r\n > {{wait.nodeid}} - {{wait.nodedescription}}: \r\n <strong>{{'Event Type' | localize: lc}}</strong>: {{wait.eventtypedesc}} \r\n <strong>{{'Wait Class' | 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>{{'Resources Usage' | 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()\">{{'Close' | localize : lc}}</button>\r\n </div>\r\n </div>\r\n</div>"
|
|
1217
1221
|
},] }
|
|
1218
1222
|
];
|
|
1219
1223
|
NodeDetailComponent.ctorParameters = () => [
|
|
@@ -1224,6 +1228,148 @@ NodeDetailComponent.propDecorators = {
|
|
|
1224
1228
|
onClose: [{ type: Output }]
|
|
1225
1229
|
};
|
|
1226
1230
|
|
|
1231
|
+
class DynamicViewsView extends AppSearch {
|
|
1232
|
+
constructor() { super(); }
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
class AdmDynamicViewsLoc extends LocalizationService {
|
|
1236
|
+
constructor(LOC_LOCALE) {
|
|
1237
|
+
super(LOC_LOCALE);
|
|
1238
|
+
super.set("en->it", "Search Application Dynamic Views", ["Ricerca Viste Dinamiche Applicative"]);
|
|
1239
|
+
super.set("en->it", "Name", ["Nome"]);
|
|
1240
|
+
super.set("en->it", "Loading Application Dynamic Views", ["Carico le Viste Dinamiche Applicative"]);
|
|
1241
|
+
super.set("en->it", "View Name is mandatory for search operations", ["Il nome della vista è obbligatorio per le operazioni di ricerca"]);
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1244
|
+
AdmDynamicViewsLoc.decorators = [
|
|
1245
|
+
{ type: Injectable }
|
|
1246
|
+
];
|
|
1247
|
+
AdmDynamicViewsLoc.ctorParameters = () => [
|
|
1248
|
+
{ type: String, decorators: [{ type: Inject, args: [ADM_LOCALE,] }] }
|
|
1249
|
+
];
|
|
1250
|
+
|
|
1251
|
+
class AdmDynamicViewsComponent {
|
|
1252
|
+
constructor(lc, intercom, localStorage, http, route, location, backend, mod) {
|
|
1253
|
+
this.lc = lc;
|
|
1254
|
+
this.intercom = intercom;
|
|
1255
|
+
this.localStorage = localStorage;
|
|
1256
|
+
this.http = http;
|
|
1257
|
+
this.route = route;
|
|
1258
|
+
this.location = location;
|
|
1259
|
+
this.backend = backend;
|
|
1260
|
+
this.mod = mod;
|
|
1261
|
+
this.searchView = new DynamicViewsView();
|
|
1262
|
+
this.Names = [];
|
|
1263
|
+
this.searchInProgress = false;
|
|
1264
|
+
this.badSearch = false;
|
|
1265
|
+
this.currentName = "";
|
|
1266
|
+
// Staccato dalla view perché deve essere distrutta e ricreata di continuo
|
|
1267
|
+
this.filterName = "";
|
|
1268
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
1269
|
+
}
|
|
1270
|
+
ngOnInit() {
|
|
1271
|
+
this.http.get(Repository.GET_Adm_GetDynamicViews).subscribe(t => { this.Names = t; });
|
|
1272
|
+
this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params["ignoreStorage"]); });
|
|
1273
|
+
}
|
|
1274
|
+
ngOnDestroy() {
|
|
1275
|
+
if (this.storageSub)
|
|
1276
|
+
this.storageSub.unsubscribe();
|
|
1277
|
+
}
|
|
1278
|
+
Init(ignoreStorage) {
|
|
1279
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1280
|
+
let item = yield this.localStorage.getItem("HotDinamitato").toPromise();
|
|
1281
|
+
if (!ignoreStorage && item) {
|
|
1282
|
+
this.init(item);
|
|
1283
|
+
}
|
|
1284
|
+
else {
|
|
1285
|
+
this.init(null);
|
|
1286
|
+
this.location.replaceState(`/pages/${this.mod}/serverviews`);
|
|
1287
|
+
this.route.snapshot.queryParams = [];
|
|
1288
|
+
yield this.localStorage.removeItem("HotDinamitato").toPromise();
|
|
1289
|
+
}
|
|
1290
|
+
});
|
|
1291
|
+
}
|
|
1292
|
+
init(HotPotato) {
|
|
1293
|
+
//Se ho la HotPotato vuol dire che sono appena tornato dall'edit/nuovo. Rifaccio la ricerca in base ai filtri precedenti
|
|
1294
|
+
//Altirmenti genero il modello nuovo normalmente
|
|
1295
|
+
if (HotPotato) {
|
|
1296
|
+
this.searchView = HotPotato;
|
|
1297
|
+
this.POSTGetItems(this.backend + Repository.POST_Adm_GetDynamicViewData, this.searchView);
|
|
1298
|
+
}
|
|
1299
|
+
else {
|
|
1300
|
+
this.searchView = new DynamicViewsView();
|
|
1301
|
+
this.sendSearch();
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
sendSearch(resetPage = true) {
|
|
1305
|
+
this.searchInProgress = true;
|
|
1306
|
+
if (resetPage)
|
|
1307
|
+
this.searchView.page = 1;
|
|
1308
|
+
this.searchView.filtername = this.filterName;
|
|
1309
|
+
this.POSTGetItems(this.backend + Repository.POST_Adm_GetDynamicViewData, this.searchView);
|
|
1310
|
+
}
|
|
1311
|
+
POSTGetItems(url, data) {
|
|
1312
|
+
if (!this.searchView.filtername) {
|
|
1313
|
+
this.badSearch = true;
|
|
1314
|
+
this.searchView.reset();
|
|
1315
|
+
//Aggiorno il riferimento per refreshare la es-table
|
|
1316
|
+
this.searchView = JSON.parse(JSON.stringify(this.searchView));
|
|
1317
|
+
return;
|
|
1318
|
+
}
|
|
1319
|
+
else
|
|
1320
|
+
this.badSearch = false;
|
|
1321
|
+
// Per force-resettare l'estable
|
|
1322
|
+
if (this.currentName != this.searchView.filtername) {
|
|
1323
|
+
this.searchView = null;
|
|
1324
|
+
this.currentName = this.searchView.filtername;
|
|
1325
|
+
}
|
|
1326
|
+
this.http.post(url, data).subscribe(t => {
|
|
1327
|
+
this.searchView = t;
|
|
1328
|
+
this.searchInProgress = false;
|
|
1329
|
+
this.localStorage.setItem("HotDinamitato", this.searchView).subscribe();
|
|
1330
|
+
});
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1333
|
+
AdmDynamicViewsComponent.decorators = [
|
|
1334
|
+
{ type: Component, args: [{
|
|
1335
|
+
selector: "adm_dynamic_views",
|
|
1336
|
+
viewProviders: [{ provide: LocalizationService, useClass: AdmDynamicViewsLoc }],
|
|
1337
|
+
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\">{{'Search Application Dynamic Views' | 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]=\"'Name' | 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\">{{'View Name is mandatory for search operations' | localize : lc}}</div>\r\n <ng-container *ngIf=\"!badSearch\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Application Dynamic Views' | localize : lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\"></es-table>\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>"
|
|
1338
|
+
},] }
|
|
1339
|
+
];
|
|
1340
|
+
AdmDynamicViewsComponent.ctorParameters = () => [
|
|
1341
|
+
{ type: LocalizationService },
|
|
1342
|
+
{ type: InterComService },
|
|
1343
|
+
{ type: PreferencesService },
|
|
1344
|
+
{ type: HTTPService },
|
|
1345
|
+
{ type: ActivatedRoute },
|
|
1346
|
+
{ type: Location },
|
|
1347
|
+
{ type: String, decorators: [{ type: Inject, args: [ADM_BACKEND_URL,] }] },
|
|
1348
|
+
{ type: String, decorators: [{ type: Inject, args: [ADM_MODULE_PATH,] }] }
|
|
1349
|
+
];
|
|
1350
|
+
|
|
1351
|
+
// Angular
|
|
1352
|
+
class FormatTimePipe {
|
|
1353
|
+
constructor() { }
|
|
1354
|
+
transform(value) {
|
|
1355
|
+
return this.secondsToHms(value);
|
|
1356
|
+
}
|
|
1357
|
+
secondsToHms(d) {
|
|
1358
|
+
d = Number(d);
|
|
1359
|
+
var h = Math.floor(d / 3600);
|
|
1360
|
+
var m = Math.floor(d % 3600 / 60);
|
|
1361
|
+
var s = Math.floor(d % 3600 % 60);
|
|
1362
|
+
var hDisplay = h > 0 ? h + " h, " : "";
|
|
1363
|
+
var mDisplay = m > 0 ? m + " min, " : "";
|
|
1364
|
+
var sDisplay = s > 0 ? s + " sec" : "";
|
|
1365
|
+
return hDisplay + mDisplay + sDisplay;
|
|
1366
|
+
}
|
|
1367
|
+
}
|
|
1368
|
+
FormatTimePipe.decorators = [
|
|
1369
|
+
{ type: Pipe, args: [{ name: 'format_time' },] }
|
|
1370
|
+
];
|
|
1371
|
+
FormatTimePipe.ctorParameters = () => [];
|
|
1372
|
+
|
|
1227
1373
|
/** Chiave di questo modulo, da utilizzare per i messaggi */
|
|
1228
1374
|
const MK_ADM = "EsAdminModule";
|
|
1229
1375
|
/** Messaggi gestiti da questo modulo */
|
|
@@ -1258,7 +1404,7 @@ AdminModuleCommService.ctorParameters = () => [
|
|
|
1258
1404
|
];
|
|
1259
1405
|
|
|
1260
1406
|
// Angular
|
|
1261
|
-
const ɵ0 = { title: "Search Application Processes", internalNavigation: false }, ɵ1 = { title: "Server Profiler", internalNavigation: false }, ɵ2 = { title: "Top Activities", internalNavigation: false }, ɵ3 = { title: "System Metrics", internalNavigation: false }, ɵ4 = { title: "Server Logs", internalNavigation: false }, ɵ5 = { title: "Search Application Audits", internalNavigation: false }, ɵ6 = { title: "Search Application Locks", internalNavigation: false };
|
|
1407
|
+
const ɵ0 = { title: "Search Application Processes", internalNavigation: false }, ɵ1 = { title: "Server Profiler", internalNavigation: false }, ɵ2 = { title: "Top Activities", internalNavigation: false }, ɵ3 = { title: "System Metrics", internalNavigation: false }, ɵ4 = { title: "Server Logs", internalNavigation: false }, ɵ5 = { title: "Search Application Audits", internalNavigation: false }, ɵ6 = { title: "Search Application Locks", internalNavigation: false }, ɵ7 = { title: "Search Application Dynamic Views", internalNavigation: false };
|
|
1262
1408
|
const routeConfig = [
|
|
1263
1409
|
{
|
|
1264
1410
|
path: "",
|
|
@@ -1269,7 +1415,8 @@ const routeConfig = [
|
|
|
1269
1415
|
{ path: "metrics", component: AdmMetricsComponent, data: ɵ3 },
|
|
1270
1416
|
{ path: "serverlogs", component: AdmLogsComponent, data: ɵ4 },
|
|
1271
1417
|
{ path: "serveraudits", component: AdmAuditsComponent, data: ɵ5 },
|
|
1272
|
-
{ path: "serverenqueues", component: AdmEnqComponent, data: ɵ6 }
|
|
1418
|
+
{ path: "serverenqueues", component: AdmEnqComponent, data: ɵ6 },
|
|
1419
|
+
{ path: "serverviews", component: AdmDynamicViewsComponent, data: ɵ7 }
|
|
1273
1420
|
]
|
|
1274
1421
|
}
|
|
1275
1422
|
];
|
|
@@ -1301,13 +1448,17 @@ const COMPONENTS = [
|
|
|
1301
1448
|
AdmWrkComponent,
|
|
1302
1449
|
AdmProfilerComponent,
|
|
1303
1450
|
AdmTopActivitiesComponent,
|
|
1451
|
+
AdmDynamicViewsComponent,
|
|
1304
1452
|
AdmLogsComponent,
|
|
1305
1453
|
AdmAuditsComponent,
|
|
1306
1454
|
AdmEnqComponent,
|
|
1307
1455
|
AdmMetricsComponent,
|
|
1308
1456
|
NodeDetailComponent
|
|
1309
1457
|
];
|
|
1310
|
-
const
|
|
1458
|
+
const PIPES = [
|
|
1459
|
+
FormatTimePipe
|
|
1460
|
+
];
|
|
1461
|
+
const ɵ8 = myconfig.LOCALE, ɵ9 = myconfig.BACKEND_URL, ɵ10 = !!myconfig.TRANSACTIONS_TIMEOUT_S;
|
|
1311
1462
|
class AdmModule {
|
|
1312
1463
|
constructor(commService) {
|
|
1313
1464
|
this.commService = commService;
|
|
@@ -1318,12 +1469,12 @@ class AdmModule {
|
|
|
1318
1469
|
AdmModule.decorators = [
|
|
1319
1470
|
{ type: NgModule, args: [{
|
|
1320
1471
|
imports: [...MODULES],
|
|
1321
|
-
declarations: [...COMPONENTS],
|
|
1472
|
+
declarations: [...COMPONENTS, ...PIPES],
|
|
1322
1473
|
providers: [
|
|
1323
1474
|
AdminModuleCommService,
|
|
1324
|
-
{ provide: ADM_LOCALE, useValue: ɵ
|
|
1325
|
-
{ provide: ADM_BACKEND_URL, useValue: ɵ
|
|
1326
|
-
{ provide: ADM_CONVERSATIONS, useValue: ɵ
|
|
1475
|
+
{ provide: ADM_LOCALE, useValue: ɵ8 },
|
|
1476
|
+
{ provide: ADM_BACKEND_URL, useValue: ɵ9 },
|
|
1477
|
+
{ provide: ADM_CONVERSATIONS, useValue: ɵ10 }
|
|
1327
1478
|
]
|
|
1328
1479
|
},] }
|
|
1329
1480
|
];
|
|
@@ -1335,5 +1486,5 @@ AdmModule.ctorParameters = () => [
|
|
|
1335
1486
|
* Generated bundle index. Do not edit.
|
|
1336
1487
|
*/
|
|
1337
1488
|
|
|
1338
|
-
export { ADM_BACKEND_URL, ADM_CONVERSATIONS, ADM_LOCALE, ADM_MODULE_PATH, AdmMessageTypes, AdmModule, MK_ADM, routeConfig, ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9, AdmWrkComponent as ɵa, AdmWrkLoc as ɵb, AdmProfilerComponent as ɵc, AdmProfilerComponentLoc as ɵd, AdmTopActivitiesComponent as ɵe, AdmTopActivitieLoc as ɵf, AdmMetricsComponent as ɵg, AdmMetricsLoc as ɵh, AdmLogsComponent as ɵi, AdmLogsLoc as ɵj, AdmAuditsComponent as ɵk, AdmAuditLoc as ɵl, AdmEnqComponent as ɵm, AdmEnqLoc as ɵn,
|
|
1489
|
+
export { ADM_BACKEND_URL, ADM_CONVERSATIONS, ADM_LOCALE, ADM_MODULE_PATH, AdmMessageTypes, AdmModule, MK_ADM, routeConfig, ɵ0, ɵ1, ɵ10, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9, AdmWrkComponent as ɵa, AdmWrkLoc as ɵb, AdmProfilerComponent as ɵc, AdmProfilerComponentLoc as ɵd, AdmTopActivitiesComponent as ɵe, AdmTopActivitieLoc as ɵf, AdmMetricsComponent as ɵg, AdmMetricsLoc as ɵh, AdmLogsComponent as ɵi, AdmLogsLoc as ɵj, AdmAuditsComponent as ɵk, AdmAuditLoc as ɵl, AdmEnqComponent as ɵm, AdmEnqLoc as ɵn, AdmDynamicViewsComponent as ɵo, AdmDynamicViewsLoc as ɵp, NodeDetailComponent as ɵq, NodeDetailLoc as ɵr, FormatTimePipe as ɵs, AdminModuleCommService as ɵt };
|
|
1339
1490
|
//# sourceMappingURL=esfaenza-admin-module.js.map
|