@esfaenza/admin-module 11.2.12 → 11.2.13

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.
Files changed (29) hide show
  1. package/bundles/esfaenza-admin-module.umd.js +181 -12
  2. package/bundles/esfaenza-admin-module.umd.js.map +1 -1
  3. package/bundles/esfaenza-admin-module.umd.min.js +2 -2
  4. package/bundles/esfaenza-admin-module.umd.min.js.map +1 -1
  5. package/esfaenza-admin-module.d.ts +6 -3
  6. package/esfaenza-admin-module.metadata.json +1 -1
  7. package/esm2015/esfaenza-admin-module.js +7 -4
  8. package/esm2015/lib/admin-module.module.js +17 -9
  9. package/esm2015/lib/components/_shared/node_detail.component.js +2 -2
  10. package/esm2015/lib/components/_shared/node_detail.component.loc.js +3 -1
  11. package/esm2015/lib/components/dynamic_views/adm_dynamic_views.component.js +107 -0
  12. package/esm2015/lib/components/dynamic_views/adm_dynamic_views.component.loc.js +19 -0
  13. package/esm2015/lib/components/profiler/adm_profiler.component.js +2 -2
  14. package/esm2015/lib/models/components/DynamicViewsView.js +5 -0
  15. package/esm2015/lib/models/components/NodeStats.js +1 -1
  16. package/esm2015/lib/models/components/NodeWaitStack.js +3 -0
  17. package/esm2015/lib/models/externals/Repository.js +3 -1
  18. package/esm2015/lib/pipes/format_time.pipe.js +23 -0
  19. package/fesm2015/esfaenza-admin-module.js +153 -11
  20. package/fesm2015/esfaenza-admin-module.js.map +1 -1
  21. package/lib/admin-module.module.d.ts +8 -0
  22. package/lib/components/dynamic_views/adm_dynamic_views.component.d.ts +30 -0
  23. package/lib/components/dynamic_views/adm_dynamic_views.component.loc.d.ts +4 -0
  24. package/lib/models/components/DynamicViewsView.d.ts +5 -0
  25. package/lib/models/components/NodeStats.d.ts +2 -0
  26. package/lib/models/components/NodeWaitStack.d.ts +6 -0
  27. package/lib/models/externals/Repository.d.ts +2 -0
  28. package/lib/pipes/format_time.pipe.d.ts +6 -0
  29. 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>&nbsp;\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>&nbsp;\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-lg\" 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\">&nbsp;{{NodeDetails.nodeid}}&nbsp;-&nbsp;{{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\">&times;</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>:&nbsp;{{NodeDetails.eventtypedesc}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Elapsed (With Children)' | localize: lc}}</strong>:&nbsp;{{NodeDetails.elapsed}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Wait Class' | localize: lc}}</strong>:&nbsp;{{NodeDetails.waitclassname}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Elapsed (No Children)' | localize: lc}}</strong>:&nbsp;{{NodeDetails.elapsedlesschildren}}\r\n </div>\r\n </div>\r\n <div style=\"height: 200px;\">\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>"
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\">&nbsp;{{NodeDetails.nodeid}}&nbsp;-&nbsp;{{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\">&times;</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>:&nbsp;{{NodeDetails.eventtypedesc}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Elapsed (With Children)' | localize: lc}}</strong>:&nbsp;{{NodeDetails.elapsed}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Wait Class' | localize: lc}}</strong>:&nbsp;{{NodeDetails.waitclassname}}\r\n </div>\r\n <div class=\"col-md-6\">\r\n <strong>{{'Elapsed (No Children)' | localize: lc}}</strong>:&nbsp;{{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 <h6>{{'Wait Stack' | localize: lc}}</h6>\r\n <div *ngFor=\"let wait of NodeDetails.waitstack\">\r\n >&nbsp;{{wait.nodeid}}&nbsp;-&nbsp;{{wait.nodedescription}}:&nbsp;\r\n <strong>{{'Event Type' | localize: lc}}</strong>:&nbsp;{{wait.eventtypedesc}}&nbsp;\r\n <strong>{{'Wait Class' | localize: lc}}</strong>:&nbsp;{{wait.waitclassname}}\r\n </div>\r\n </div>\r\n <div style=\"height: 200px;\">\r\n <h6>{{'Resources Usage' | localize: lc}}</h6>\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,139 @@ 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.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
1266
+ }
1267
+ ngOnInit() {
1268
+ this.http.get(Repository.GET_Adm_GetDynamicViews).subscribe(t => { this.Names = t; });
1269
+ this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params["ignoreStorage"]); });
1270
+ }
1271
+ ngOnDestroy() {
1272
+ if (this.storageSub)
1273
+ this.storageSub.unsubscribe();
1274
+ }
1275
+ Init(ignoreStorage) {
1276
+ return __awaiter(this, void 0, void 0, function* () {
1277
+ let item = yield this.localStorage.getItem("HotDinamitato").toPromise();
1278
+ if (!ignoreStorage && item) {
1279
+ this.init(item);
1280
+ }
1281
+ else {
1282
+ this.init(null);
1283
+ this.location.replaceState(`/pages/${this.mod}/serverviews`);
1284
+ this.route.snapshot.queryParams = [];
1285
+ yield this.localStorage.removeItem("HotDinamitato").toPromise();
1286
+ }
1287
+ });
1288
+ }
1289
+ init(HotPotato) {
1290
+ //Se ho la HotPotato vuol dire che sono appena tornato dall'edit/nuovo. Rifaccio la ricerca in base ai filtri precedenti
1291
+ //Altirmenti genero il modello nuovo normalmente
1292
+ if (HotPotato) {
1293
+ this.searchView = HotPotato;
1294
+ this.POSTGetItems(this.backend + Repository.POST_Adm_GetDynamicViewData, this.searchView);
1295
+ }
1296
+ else {
1297
+ this.searchView = new DynamicViewsView();
1298
+ this.sendSearch();
1299
+ }
1300
+ }
1301
+ sendSearch(resetPage = true) {
1302
+ this.searchInProgress = true;
1303
+ if (resetPage)
1304
+ this.searchView.page = 1;
1305
+ this.POSTGetItems(this.backend + Repository.POST_Adm_GetDynamicViewData, this.searchView);
1306
+ }
1307
+ POSTGetItems(url, data) {
1308
+ if (!this.searchView.filtername) {
1309
+ this.badSearch = true;
1310
+ this.searchView.reset();
1311
+ //Aggiorno il riferimento per refreshare la es-table
1312
+ this.searchView = JSON.parse(JSON.stringify(this.searchView));
1313
+ return;
1314
+ }
1315
+ else
1316
+ this.badSearch = false;
1317
+ this.http.post(url, data).subscribe(t => {
1318
+ this.searchView = t;
1319
+ this.searchInProgress = false;
1320
+ this.localStorage.setItem("HotDinamitato", this.searchView).subscribe();
1321
+ });
1322
+ }
1323
+ }
1324
+ AdmDynamicViewsComponent.decorators = [
1325
+ { type: Component, args: [{
1326
+ selector: "adm_dynamic_views",
1327
+ viewProviders: [{ provide: LocalizationService, useClass: AdmDynamicViewsLoc }],
1328
+ 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=\"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-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtername\" name=\"filtername\" [Source]=\"Names\" [Placeholder]=\"'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 <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 </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>"
1329
+ },] }
1330
+ ];
1331
+ AdmDynamicViewsComponent.ctorParameters = () => [
1332
+ { type: LocalizationService },
1333
+ { type: InterComService },
1334
+ { type: PreferencesService },
1335
+ { type: HTTPService },
1336
+ { type: ActivatedRoute },
1337
+ { type: Location },
1338
+ { type: String, decorators: [{ type: Inject, args: [ADM_BACKEND_URL,] }] },
1339
+ { type: String, decorators: [{ type: Inject, args: [ADM_MODULE_PATH,] }] }
1340
+ ];
1341
+
1342
+ // Angular
1343
+ class FormatTimePipe {
1344
+ constructor() { }
1345
+ transform(value) {
1346
+ return this.secondsToHms(value);
1347
+ }
1348
+ secondsToHms(d) {
1349
+ d = Number(d);
1350
+ var h = Math.floor(d / 3600);
1351
+ var m = Math.floor(d % 3600 / 60);
1352
+ var s = Math.floor(d % 3600 % 60);
1353
+ var hDisplay = h > 0 ? h + " h, " : "";
1354
+ var mDisplay = m > 0 ? m + " min, " : "";
1355
+ var sDisplay = s > 0 ? s + " sec" : "";
1356
+ return hDisplay + mDisplay + sDisplay;
1357
+ }
1358
+ }
1359
+ FormatTimePipe.decorators = [
1360
+ { type: Pipe, args: [{ name: 'format_time' },] }
1361
+ ];
1362
+ FormatTimePipe.ctorParameters = () => [];
1363
+
1227
1364
  /** Chiave di questo modulo, da utilizzare per i messaggi */
1228
1365
  const MK_ADM = "EsAdminModule";
1229
1366
  /** Messaggi gestiti da questo modulo */
@@ -1258,7 +1395,7 @@ AdminModuleCommService.ctorParameters = () => [
1258
1395
  ];
1259
1396
 
1260
1397
  // 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 };
1398
+ 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
1399
  const routeConfig = [
1263
1400
  {
1264
1401
  path: "",
@@ -1269,7 +1406,8 @@ const routeConfig = [
1269
1406
  { path: "metrics", component: AdmMetricsComponent, data: ɵ3 },
1270
1407
  { path: "serverlogs", component: AdmLogsComponent, data: ɵ4 },
1271
1408
  { path: "serveraudits", component: AdmAuditsComponent, data: ɵ5 },
1272
- { path: "serverenqueues", component: AdmEnqComponent, data: ɵ6 }
1409
+ { path: "serverenqueues", component: AdmEnqComponent, data: ɵ6 },
1410
+ { path: "serverviews", component: AdmDynamicViewsComponent, data: ɵ7 }
1273
1411
  ]
1274
1412
  }
1275
1413
  ];
@@ -1301,13 +1439,17 @@ const COMPONENTS = [
1301
1439
  AdmWrkComponent,
1302
1440
  AdmProfilerComponent,
1303
1441
  AdmTopActivitiesComponent,
1442
+ AdmDynamicViewsComponent,
1304
1443
  AdmLogsComponent,
1305
1444
  AdmAuditsComponent,
1306
1445
  AdmEnqComponent,
1307
1446
  AdmMetricsComponent,
1308
1447
  NodeDetailComponent
1309
1448
  ];
1310
- const ɵ7 = myconfig.LOCALE, ɵ8 = myconfig.BACKEND_URL, ɵ9 = !!myconfig.TRANSACTIONS_TIMEOUT_S;
1449
+ const PIPES = [
1450
+ FormatTimePipe
1451
+ ];
1452
+ const ɵ8 = myconfig.LOCALE, ɵ9 = myconfig.BACKEND_URL, ɵ10 = !!myconfig.TRANSACTIONS_TIMEOUT_S;
1311
1453
  class AdmModule {
1312
1454
  constructor(commService) {
1313
1455
  this.commService = commService;
@@ -1318,12 +1460,12 @@ class AdmModule {
1318
1460
  AdmModule.decorators = [
1319
1461
  { type: NgModule, args: [{
1320
1462
  imports: [...MODULES],
1321
- declarations: [...COMPONENTS],
1463
+ declarations: [...COMPONENTS, ...PIPES],
1322
1464
  providers: [
1323
1465
  AdminModuleCommService,
1324
- { provide: ADM_LOCALE, useValue: ɵ7 },
1325
- { provide: ADM_BACKEND_URL, useValue: ɵ8 },
1326
- { provide: ADM_CONVERSATIONS, useValue: ɵ9 }
1466
+ { provide: ADM_LOCALE, useValue: ɵ8 },
1467
+ { provide: ADM_BACKEND_URL, useValue: ɵ9 },
1468
+ { provide: ADM_CONVERSATIONS, useValue: ɵ10 }
1327
1469
  ]
1328
1470
  },] }
1329
1471
  ];
@@ -1335,5 +1477,5 @@ AdmModule.ctorParameters = () => [
1335
1477
  * Generated bundle index. Do not edit.
1336
1478
  */
1337
1479
 
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, NodeDetailComponent as ɵo, NodeDetailLoc as ɵp, AdminModuleCommService as ɵq };
1480
+ 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
1481
  //# sourceMappingURL=esfaenza-admin-module.js.map