@esfaenza/admin-module 11.2.27 → 11.2.29

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.
@@ -1 +1 @@
1
- {"version":3,"file":"esfaenza-admin-module.js","sources":["../../../projects/admin-module/src/lib/models/components/AuditsView.ts","../../../projects/admin-module/src/lib/models/externals/Repository.ts","../../../projects/admin-module/src/lib/tokens.ts","../../../projects/admin-module/src/lib/components/audits/adm_audits.component.loc.ts","../../../projects/admin-module/src/lib/components/audits/adm_audits.component.ts","../../../projects/admin-module/src/lib/models/shared/KeyValue.ts","../../../projects/admin-module/src/lib/models/components/ProcessesView.ts","../../../projects/admin-module/src/lib/components/workers/adm_wrk.component.loc.ts","../../../projects/admin-module/src/lib/components/workers/adm_wrk.component.ts","../../../projects/admin-module/src/lib/models/shared/Locale.ts","../../../projects/admin-module/src/lib/models/components/ProfilerDataNode.loc.ts","../../../projects/admin-module/src/lib/models/components/ProfilerDataNode.ts","../../../projects/admin-module/src/lib/models/components/ProfilerDataNodesView.ts","../../../projects/admin-module/src/lib/components/profiler/adm_profiler.component.loc.ts","../../../projects/admin-module/src/lib/components/profiler/adm_profiler.component.ts","../../../projects/admin-module/src/lib/models/components/TopActivitiesDataView.ts","../../../projects/admin-module/src/lib/components/topact/topact_search.component.loc.ts","../../../projects/admin-module/src/lib/components/topact/topact_search.component.ts","../../../projects/admin-module/src/lib/models/components/LocksView.ts","../../../projects/admin-module/src/lib/components/enqueues/adm_enq.component.loc.ts","../../../projects/admin-module/src/lib/components/enqueues/adm_enq.component.ts","../../../projects/admin-module/src/lib/models/components/MetricsView.ts","../../../projects/admin-module/src/lib/components/metrics/metrics_search.component.loc.ts","../../../projects/admin-module/src/lib/components/metrics/metrics_search.component.ts","../../../projects/admin-module/src/lib/components/logs/adm_logs.component.loc.ts","../../../projects/admin-module/src/lib/components/logs/adm_logs.component.ts","../../../projects/admin-module/src/lib/components/_shared/node_detail.component.loc.ts","../../../projects/admin-module/src/lib/components/_shared/node_detail.component.ts","../../../projects/admin-module/src/lib/models/components/DynamicViewsView.ts","../../../projects/admin-module/src/lib/components/dynamic_views/adm_dynamic_views.component.loc.ts","../../../projects/admin-module/src/lib/components/dynamic_views/adm_dynamic_views.component.ts","../../../projects/admin-module/src/lib/pipes/format_time.pipe.ts","../../../projects/admin-module/src/lib/admin-module-messages.ts","../../../projects/admin-module/src/lib/admin-module.comms.service.ts","../../../projects/admin-module/src/lib/admin-module.module.ts","../../../projects/admin-module/src/esfaenza-admin-module.ts"],"sourcesContent":["import { AppSearch } from \"@esfaenza/es-table\";\r\nimport { Audit } from \"./Audit\";\r\n\r\nexport class AuditsView extends AppSearch<Audit> {\r\n constructor() {\r\n super();\r\n this.filteraction = '';\r\n this.filterhttp = '';\r\n }\r\n\r\n filterda: string;\r\n filtera: string;\r\n filteruser: string;\r\n filterroute: string;\r\n filteraction: string;\r\n filteraddress: string;\r\n filterhttp: string;\r\n filterargs: string;\r\n filterobjid: string;\r\n filterobjtype: string;\r\n filterconversationid: string;\r\n}","export const Repository = {\r\n GET_Adm_ChangeProcessConsumerGroup: \"/api/Adm/ChangeProcessConsumerGroup\",\r\n GET_Adm_ClearAllCaches: \"/api/Adm/ClearAllCaches\",\r\n GET_Adm_GetConsumerGroups: \"/api/Adm/GetConsumerGroups#cache\",\r\n GET_Adm_GetInfos: \"/api/Adm/GetInfos\",\r\n GET_Adm_GetMetrics: \"/api/Adm/GetMetrics\",\r\n POST_Adm_GetMetrics: \"/api/Adm/GetMetrics\",\r\n POST_Adm_GetProfilerDataNodes: \"/api/Adm/GetProfilerDataNodes\",\r\n POST_Adm_GetServerAudits: \"/api/Adm/GetServerAudits\",\r\n POST_Adm_GetDynamicViewData: \"/api/Adm/GetDynamicViewData\",\r\n POST_Adm_GetServerLocks: \"/api/Adm/GetServerLocks\",\r\n GET_Adm_GetServerLogs: \"/api/Adm/GetServerLogs\",\r\n GET_Adm_GetDynamicViews: \"/api/Adm/GetDynamicViews\",\r\n POST_Adm_GetServerWorkers: \"/api/Adm/GetServerWorkers\",\r\n POST_Adm_GetTopActivities: \"/api/Adm/GetTopActivities\",\r\n GET_Adm_GetWorkerStatus: \"/api/Adm/GetWorkerStatus\",\r\n GET_Adm_InvalidateServerSideCache: \"/api/Adm/InvalidateServerSideCache\",\r\n GET_Adm_KillProcess: \"/api/Adm/KillProcess\",\r\n GET_Adm_SetProcessTracing: \"/api/Adm/SetProcessTracing\",\r\n GET_Adm_StartWorker: \"/api/Adm/StartWorker\",\r\n GET_Adm_StopWorker: \"/api/Adm/StopWorker\",\r\n GET_Adm_GetNodeStats: \"/api/Adm/GetNodeStats\",\r\n}","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const ADM_LOCALE: InjectionToken<string> = new InjectionToken<string>('ADM_LOCALE');\r\nexport const ADM_BACKEND_URL: InjectionToken<string> = new InjectionToken<string>('ADM_BACKEND_URL');\r\nexport const ADM_MODULE_PATH: InjectionToken<string> = new InjectionToken<string>('ADM_MODULE_PATH');\r\nexport const ADM_CONVERSATIONS: InjectionToken<boolean> = new InjectionToken<boolean>('ADM_CONVERSATIONS');","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmAuditLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Search Application Audits\", [\"Ricerca Audit Applicativi\"]);\r\n super.set(\"en->it\", \"User\", [\"Utente\"]);\r\n super.set(\"en->it\", \"REST Call\", [\"Chiamata REST\"]);\r\n super.set(\"en->it\", \"Update\", [\"Aggiornamento\"]);\r\n super.set(\"en->it\", \"Route\", [\"Route\"]);\r\n super.set(\"en->it\", \"Action\", [\"Azione\"]);\r\n super.set(\"en->it\", \"HTTP Method\", [\"Metodo HTTP\"]);\r\n super.set(\"en->it\", \"Arguments\", [\"Argomenti\"]);\r\n super.set(\"en->it\", \"Object ID\", [\"ID Oggetto\"]);\r\n super.set(\"en->it\", \"Object Type\", [\"Tipo Oggetto\"]);\r\n super.set(\"en->it\", \"Object Data\", [\"Dati Oggetto\"]);\r\n super.set(\"en->it\", \"Loading Application Audits\", [\"Carico gli Audit dell'Applicazione\"]);\r\n super.set(\"en->it\", \"Date\", [\"Data\"]);\r\n super.set(\"en->it\", \"Address\", [\"Indirizzo\"]);\r\n super.set(\"en->it\", \"HTTP Response\", [\"Risposta HTTP\"]);\r\n super.set(\"en->it\", \"Application Error Code\", [\"Codice Errore Applicativo\"]);\r\n super.set(\"en->it\", \"Conversation ID\", [\"Cod. Conversation\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { InterComService, InboundMessageTypes } from \"@esfaenza/extensions\";\r\n\r\n// Applicazione\r\nimport { AuditsView } from \"../../models/components/AuditsView\";\r\nimport { KeyValue } from \"../../models/shared/KeyValue\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH, ADM_CONVERSATIONS } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmAuditLoc } from \"./adm_audits.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_audits\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmAuditLoc }],\r\n templateUrl: \"./adm_audits.component.html\"\r\n})\r\nexport class AdmAuditsComponent {\r\n\r\n public searchView: AuditsView = new AuditsView();\r\n public Actions: KeyValue[] = [];\r\n public HttpMethods: KeyValue[] = [];\r\n public searchInProgress: boolean = false;\r\n public storageSub: any;\r\n\r\n constructor(\r\n public lc: LocalizationService,\r\n private intercom: InterComService,\r\n private localStorage: PreferencesService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string,\r\n @Inject(ADM_CONVERSATIONS) public usesConversations: boolean) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n\r\n this.HttpMethods = [\r\n { id: \"GET\", description: \"GET\" },\r\n { id: \"POST\", description: \"POST\" },\r\n { id: \"PUT\", description: \"PUT\" },\r\n { id: \"PATCH\", description: \"PATCH\" },\r\n { id: \"DELETE\", description: \"DELETE\" }\r\n ];\r\n\r\n this.Actions = [\r\n { id: \"C\", description: this.lc.loc(\"REST Call\") },\r\n { id: \"U\", description: this.lc.loc(\"Update\") },\r\n { id: \"D\", description: this.lc.loc(\"Delete\") }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params[\"ignoreStorage\"]); });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n async Init(ignoreStorage) {\r\n let item = await this.localStorage.getItem<AuditsView>(\"HotAudittato\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/serveraudits`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotAudittato\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: AuditsView) {\r\n //Se ho la HotPotato vuol dire che sono appena tornato dall'edit/nuovo. Rifaccio la ricerca in base ai filtri precedenti\r\n //Altirmenti genero il modello nuovo normalmente\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerAudits\"], this.searchView);\r\n }\r\n else {\r\n this.searchView = new AuditsView();\r\n this.searchView.filterda = dayjs().add(-1, \"month\").format(this.lc.token(\"getSmallDateFormat\"));\r\n this.searchView.filtera = dayjs().format(this.lc.token(\"getSmallDateFormat\"));\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n this.searchInProgress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerAudits\"], this.searchView);\r\n }\r\n\r\n POSTGetProcesses(url: string, data: AuditsView) {\r\n this.http.post<AuditsView>(url, data).subscribe(t => {\r\n this.searchView = t;\r\n this.searchInProgress = false;\r\n this.localStorage.setItem(\"HotAudittato\", this.searchView).subscribe();\r\n });\r\n }\r\n}","export class KeyValue {\r\n constructor(public id: string, public description: string) { }\r\n}","import { AppSearch, GenericItem } from \"@esfaenza/es-table\";\r\n\r\nexport class ProcessesView extends AppSearch<GenericItem> {\r\n constructor() { super(); }\r\n\r\n filtertenant: string;\r\n filteruser: string;\r\n filterstate: string;\r\n filterglobal: boolean;\r\n filtertype: string;\r\n filterthreadtype: string;\r\n filterthreadstatus: string;\r\n filterinwait: boolean;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmWrkLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Consumer Group succesfully changed\", [\"Gruppo di Consumo modificato con successo\"]);\r\n super.set(\"en->it\", \"Errors changing Consumer Group\", [\"Errori nella modifica del Gruppo di Consumo\"]);\r\n super.set(\"en->it\", \"Change Consumer Group\", [\"Modifica Gruppo di Consumo\"]);\r\n super.set(\"en->it\", \"New Consumer Group\", [\"Nuovo Gruppo di Consumo\"]);\r\n super.set(\"en->it\", \"Thread Type\", [\"Tipo Thread\"]);\r\n super.set(\"en->it\", \"Thread Status\", [\"Stato Thread\"]);\r\n super.set(\"en->it\", \"Type\", [\"Tipo\"]);\r\n super.set(\"en->it\", \"State\", [\"Stato\"]);\r\n super.set(\"en->it\", \"In Wait\", [\"In Attesa\"]);\r\n super.set(\"en->it\", \"Global\", [\"Globale\"]);\r\n super.set(\"en->it\", \"Search Application Processes\", [\"Ricerca Processi Applicativi\"]);\r\n super.set(\"en->it\", \"Tenant\", [\"Operatore\"]);\r\n super.set(\"en->it\", \"Errors toggling Process Tracing\", [\"Errori nella modifica del Tracing del Processo\"]);\r\n super.set(\"en->it\", \"User\", [\"Utente\"]);\r\n super.set(\"en->it\", \"Loading Application Processes\", [\"Carico i Processi Applicativi\"]);\r\n super.set(\"en->it\", \"Activate Process Tracing\", [\"Attiva Tracing Processo\"]);\r\n super.set(\"en->it\", \"Deactivate Process Tracing\", [\"Disattiva Tracing Progetto\"]);\r\n super.set(\"en->it\", \"Kill Process\", [\"Ammazza Processo\"]);\r\n super.set(\"en->it\", \"Errors killing the Process\", [\"Errori durante la Kill del Processo\"]);\r\n super.set(\"en->it\", \"Process succesfully killed\", [\"Processo ucciso con successo\"]);\r\n super.set(\"en->it\", \"Confirm Process Kill\", [\"Conferma Terminazione del Processo\"]);\r\n super.set(\"en->it\", \"Are you sure you wish to kill the selected process? The associated user will be disconnected\", [\"Sei sicuro di voler Terminare il processo selezionato? L'utente relativo sara' disconnesso\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject, ViewChild } from \"@angular/core\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\nimport { NgForm } from \"@angular/forms\";\r\n\r\n// Configurazioni\r\nimport { InboundMessageTypes, InterComService, MessageService, UtilityService } from \"@esfaenza/extensions\";\r\nimport { EsTableOperationDefinition } from \"@esfaenza/es-table\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { ModalDirective } from \"ngx-bootstrap/modal\";\r\n\r\n// Applicazione\r\nimport { KeyValue } from \"../../models/shared/KeyValue\";\r\nimport { ProcessesView } from \"../../models/components/ProcessesView\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmWrkLoc } from \"./adm_wrk.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_wrk\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmWrkLoc }],\r\n templateUrl: \"./adm_wrk.component.html\"\r\n})\r\nexport class AdmWrkComponent {\r\n\r\n public searchView: ProcessesView = new ProcessesView();\r\n public DynamicOps: EsTableOperationDefinition[] = [];\r\n public storageSub: any;\r\n public valueToShow: string = \"\";\r\n\r\n public Types: KeyValue[] = [];\r\n public States: KeyValue[] = [];\r\n public ThreadTypes: KeyValue[] = [];\r\n public ThreadStatuses: KeyValue[] = [];\r\n\r\n constructor(\r\n private utiExts: UtilityService,\r\n private msgExts: MessageService,\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n\r\n this.DynamicOps = [\r\n new EsTableOperationDefinition(\"trace_on\", this.lc.loc(\"Activate Process Tracing\"), \"fa fa-circle text-danger\", \"\", \"trace_enabled\", \"N\"),\r\n new EsTableOperationDefinition(\"trace_off\", this.lc.loc(\"Deactivate Process Tracing\"), \"fa fa-circle text-success\", \"\", \"trace_enabled\", \"Y\"),\r\n new EsTableOperationDefinition(\"kill\", this.lc.loc(\"Kill Process\"), \"fa fa-ban text-danger\"),\r\n new EsTableOperationDefinition(\"change_cg\", this.lc.loc(\"Change Consumer Group\"), \"fa fa-edit text-info\")\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => {\r\n this.Init(params[\"ignoreStorage\"]);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n Init(ignoreStorage) {\r\n this.Types = [new KeyValue(\"USER\", \"USER\"), new KeyValue(\"BACKGROUND\", \"BACKGROUND\"), new KeyValue(\"JOB\", \"JOB\")];\r\n this.States = [new KeyValue(\"ACTIVE\", \"ACTIVE\"), new KeyValue(\"INACTIVE\", \"INACTIVE\"), new KeyValue(\"KILLED\", \"KILLED\")];\r\n this.ThreadTypes = [\"APITHREAD\", \"APIPUSHTHREAD\", \"BACKGROUNDTHREAD\", \"JOBTHREAD\", \"PARALLELSLAVETHREAD\"].map(t => new KeyValue(t, t));\r\n this.ThreadStatuses = [\"ACTIVE\", \"IDLE\", \"THROTTLING\", \"KILLED\"].map(t => new KeyValue(t, t));\r\n this.doInit(ignoreStorage);\r\n }\r\n\r\n async doInit(ignoreStorage) {\r\n let item = await this.localStorage.getItem<ProcessesView>(\"HotProcessato\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/serverworkers`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotProcessato\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: ProcessesView) {\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerWorkers\"], this.searchView);\r\n }\r\n else {\r\n this.searchView = new ProcessesView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n this.searchView.searchinprogress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerWorkers\"], this.searchView);\r\n }\r\n\r\n POSTGetProcesses(url: string, data: ProcessesView) {\r\n this.http.post<ProcessesView>(url, data).subscribe(t => {\r\n this.searchView = t;\r\n this.searchView.searchinprogress = false;\r\n this.localStorage.setItem(\"HotProcessato\", this.searchView).subscribe();\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n onOperation(event: { id: string, item: any }) {\r\n switch (event.id) {\r\n case \"trace_on\": this.toggleTracing(event.item, true); break;\r\n case \"trace_off\": this.toggleTracing(event.item, false); break;\r\n case \"kill\": this.killProcess(event.item); break;\r\n case \"change_cg\": this.changeProcessCg(event.item); break;\r\n }\r\n }\r\n\r\n toggleTracing(process: any, tracing: boolean) {\r\n var pars = new HttpParams()\r\n .set(\"instanceid\", process.properties[\"inst_id\"] || process.properties[\"INST_ID\"])\r\n .set(\"sid\", process.properties[\"sid\"] || process.properties[\"SID\"])\r\n .set(\"serial\", process.properties[\"serial\"] || process.properties[\"SERIAL\"])\r\n .set(\"enable\", tracing.toString());\r\n this.http.get<string>(this.backend + Repository[\"GET_Adm_SetProcessTracing\"], pars).subscribe(t => {\r\n this.msgExts.manageStringResponse(t, \"\", this.lc.loc(\"Errors toggling Process Tracing\"), () => this.sendSearch());\r\n });\r\n }\r\n\r\n killProcess(process: any) {\r\n this.msgExts.simpleWarningWithChoice(\r\n this.lc.loc(\"Confirm Process Kill\"),\r\n this.lc.loc(\"Are you sure you wish to kill the selected process? The associated user will be disconnected\"),\r\n () => {\r\n var pars = new HttpParams()\r\n .set(\"instanceid\", process.properties[\"inst_id\"] || process.properties[\"INST_ID\"])\r\n .set(\"sid\", process.properties[\"sid\"] || process.properties[\"SID\"])\r\n .set(\"serial\", process.properties[\"serial\"] || process.properties[\"SERIAL\"]);\r\n this.http.get<string>(this.backend + Repository[\"GET_Adm_KillProcess\"], pars).subscribe(t => {\r\n this.msgExts.manageStringResponse(t, this.lc.loc(\"Process succesfully killed\"), this.lc.loc(\"Errors killing the Process\"), () => this.sendSearch());\r\n });\r\n });\r\n }\r\n\r\n //********************************************** Gestione modifica Consumer Group ***************************************\r\n\r\n newCg: string = \"\";\r\n CGs: KeyValue[] = [];\r\n CgDictionariesLoaded: boolean = false;\r\n ProcessOnEdit: any;\r\n\r\n @ViewChild(\"cgFrom\") cgFrom: NgForm;\r\n @ViewChild(\"dlgChangeCg\") dlgChangeCg: ModalDirective;\r\n\r\n changeProcessCg(process: any) {\r\n this.ProcessOnEdit = process;\r\n if (!this.CgDictionariesLoaded) {\r\n this.loadCgDictionaries();\r\n this.CgDictionariesLoaded = true;\r\n }\r\n this.setupChangeCg();\r\n this.dlgChangeCg.show();\r\n }\r\n\r\n loadCgDictionaries() {\r\n this.http.get<KeyValue[]>(this.backend + Repository[\"GET_Adm_GetConsumerGroups\"]).subscribe(t => this.CGs = t);\r\n }\r\n\r\n setupChangeCg() {\r\n this.utiExts.cleanForm(this.cgFrom)\r\n setTimeout(() => { this.newCg = \"\" });\r\n }\r\n\r\n doChangeCg() {\r\n var pars = new HttpParams()\r\n .set(\"instanceid\", this.ProcessOnEdit.properties[\"inst_id\"] || this.ProcessOnEdit.properties[\"INST_ID\"])\r\n .set(\"sid\", this.ProcessOnEdit.properties[\"sid\"] || this.ProcessOnEdit.properties[\"SID\"])\r\n .set(\"serial\", this.ProcessOnEdit.properties[\"serial\"] || this.ProcessOnEdit.properties[\"SERIAL\"])\r\n .set(\"consumer_group\", this.newCg);\r\n this.http.get<string>(this.backend + Repository[\"GET_Adm_ChangeProcessConsumerGroup\"], pars).subscribe(t => {\r\n this.msgExts.manageStringResponse(t, this.lc.loc(\"Consumer Group succesfully changed\"), this.lc.loc(\"Errors changing Consumer Group\"), () => this.sendSearch());\r\n });\r\n\r\n return true;\r\n }\r\n}","export const Locale: string = localStorage.getItem(\"LOCALE\") || myconfig.LOCALE;","export const ProfilerDataNode_loc = {\r\n 'Parent ID': { 'en-US': \"Parent ID\", 'it-IT': \"ID Padre\" },\r\n 'ID': { 'en-US': \"ID\", 'it-IT': \"ID\" },\r\n 'Description': { 'en-US': \"Description\", 'it-IT': \"Descrizione\" },\r\n 'Calls': { 'en-US': \"Calls\", 'it-IT': \"Chiamate\" },\r\n 'Time': { 'en-US': \"Time\", 'it-IT': \"Tempo\" },\r\n 'Peak Time': { 'en-US': \"Peak Time\", 'it-IT': \"Tempo Max\" },\r\n 'Min. Time': { 'en-US': \"Min. Time\", 'it-IT': \"Tempo Min\" },\r\n 'Avg. Time': { 'en-US': \"Avg. Time\", 'it-IT': \"Tempo Medio\" },\r\n 'Specific Time': { 'en-US': \"Specific Time\", 'it-IT': \"Tempo Specifico\" },\r\n 'Percentage': { 'en-US': \"Percentage\", 'it-IT': \"Percentuale\" },\r\n 'Calls for Period': { 'en-US': \"Calls for Period\", 'it-IT': \"Chiamate Periodo\" },\r\n 'Time for Period': { 'en-US': \"Time for Period\", 'it-IT': \"Tempo Periodo\" },\r\n 'Peak Time for Period': { 'en-US': \"Peak Time for Period\", 'it-IT': \"Tempo Max Periodo\" },\r\n 'Min. Time for Period': { 'en-US': \"Min. Time for Period\", 'it-IT': \"Tempo Min Periodo\" },\r\n 'Avg. Time for Period': { 'en-US': \"Avg. Time for Period\", 'it-IT': \"Tempo Medio Periodo\" },\r\n 'Specific Time for Period': { 'en-US': \"Specific Time for Period\", 'it-IT': \"Tempo Specifico Periodo\" },\r\n 'Percentage for Period': { 'en-US': \"Percentage for Period\", 'it-IT': \"Percentuale Periodo\" },\r\n 'Event Type Name': { 'en-US': \"Event Type Name\", 'it-IT': \"Nome Tipologia Evento\" },\r\n 'Wait Class Name': { 'en-US': \"Wait Class Name\", 'it-IT': \"Nome Classe Attesa\" }\r\n}","import { autoserialize } from \"cerialize\";\r\nimport { Export } from \"@esfaenza/extensions\";\r\n\r\nimport { Locale } from \"../shared/Locale\";\r\nimport { ProfilerDataNode_loc } from \"./ProfilerDataNode.loc\";\r\n\r\nexport class ProfilerDataNode {\r\n @Export(10, ProfilerDataNode_loc[\"Parent ID\"][Locale])\r\n @autoserialize parentid: string;\r\n @Export(20, ProfilerDataNode_loc[\"ID\"][Locale])\r\n @autoserialize id: string;\r\n @Export(30, ProfilerDataNode_loc[\"Description\"][Locale])\r\n @autoserialize description: string;\r\n @Export(40, ProfilerDataNode_loc[\"Calls\"][Locale])\r\n @autoserialize calls: number;\r\n @Export(50, ProfilerDataNode_loc[\"Time\"][Locale])\r\n @autoserialize time: number;\r\n @Export(60, ProfilerDataNode_loc[\"Peak Time\"][Locale])\r\n @autoserialize peaktime: number;\r\n @Export(70, ProfilerDataNode_loc[\"Min. Time\"][Locale])\r\n @autoserialize mintime: number;\r\n @Export(80, ProfilerDataNode_loc[\"Avg. Time\"][Locale])\r\n @autoserialize avgtime: number;\r\n @Export(90, ProfilerDataNode_loc[\"Specific Time\"][Locale])\r\n @autoserialize timewithoutchildren: number;\r\n @Export(100, ProfilerDataNode_loc[\"Percentage\"][Locale])\r\n @autoserialize percentage: number;\r\n @Export(110, ProfilerDataNode_loc[\"Calls for Period\"][Locale])\r\n @autoserialize snapdeltacalls: number;\r\n @Export(120, ProfilerDataNode_loc[\"Time for Period\"][Locale])\r\n @autoserialize snapdeltatime: number;\r\n @Export(130, ProfilerDataNode_loc[\"Peak Time for Period\"][Locale])\r\n @autoserialize snappeaktime: number;\r\n @Export(140, ProfilerDataNode_loc[\"Min. Time for Period\"][Locale])\r\n @autoserialize snapmintime: number;\r\n @Export(150, ProfilerDataNode_loc[\"Avg. Time for Period\"][Locale])\r\n @autoserialize snapavgtime: number;\r\n @Export(160, ProfilerDataNode_loc[\"Specific Time for Period\"][Locale])\r\n @autoserialize snaptimewithoutchildren: number;\r\n @Export(170, ProfilerDataNode_loc[\"Percentage for Period\"][Locale])\r\n @autoserialize snappercentage: number;\r\n @Export(180, ProfilerDataNode_loc[\"Event Type Name\"][Locale])\r\n @autoserialize eventtypename: string;\r\n @Export(190, ProfilerDataNode_loc[\"Wait Class Name\"][Locale])\r\n @autoserialize waitclassname: string;\r\n}","import { AppSearch } from \"@esfaenza/es-table\";\r\nimport { ProfilerDataNode } from \"./ProfilerDataNode\";\r\n\r\nexport class ProfilerDataNodesView extends AppSearch<ProfilerDataNode>{\r\n constructor() { super(); }\r\n\r\n filterfrom: string;\r\n filterto: string;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmProfilerComponentLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Server Profiler\", [\"Profiler del Server\"]);\r\n super.set(\"en->it\", \"Loading Data\", [\"Carico i Dati\"]);\r\n super.set(\"en->it\", \"ID\", [\"ID\"]);\r\n super.set(\"en->it\", \"Description\", [\"Descrizione\"]);\r\n super.set(\"en->it\", \"Calls\", [\"Chiamate\"]);\r\n super.set(\"en->it\", \"Time\", [\"Tempo\"]);\r\n super.set(\"en->it\", \"Peak Time\", [\"Tempo Max\"]);\r\n super.set(\"en->it\", \"Min. Time\", [\"Tempo Min\"]);\r\n super.set(\"en->it\", \"Avg. Time\", [\"Tempo Medio\"]);\r\n super.set(\"en->it\", \"Specific Time\", [\"Tempo Specifico\"]);\r\n super.set(\"en->it\", \"Percentage\", [\"Percentuale\"]);\r\n super.set(\"en->it\", \"Calls for Period\", [\"Chiamate Periodo\"]);\r\n super.set(\"en->it\", \"Time for Period\", [\"Tempo Periodo\"]);\r\n super.set(\"en->it\", \"Peak Time for Period\", [\"Tempo Max Periodo\"]);\r\n super.set(\"en->it\", \"Min. Time for Period\", [\"Tempo Min Periodo\"]);\r\n super.set(\"en->it\", \"Avg. Time for Period\", [\"Tempo Medio Periodo\"]);\r\n super.set(\"en->it\", \"Specific Time for Period\", [\"Tempo Specifico Periodo\"]);\r\n super.set(\"en->it\", \"Percentage for Period\", [\"Percentuale Periodo\"]);\r\n super.set(\"en->it\", \"Event Type Name\", [\"Nome Tipologia Evento\"]);\r\n super.set(\"en->it\", \"Wait Class Name\", [\"Nome Classe Attesa\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { ExportService, InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// Applicazione\r\nimport { ProfilerDataNode } from \"../../models/components/ProfilerDataNode\";\r\nimport { ProfilerDataNodesView } from \"../../models/components/ProfilerDataNodesView\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { NodeStats } from \"../../models/components/NodeStats\";\r\n\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmProfilerComponentLoc } from \"./adm_profiler.component.loc\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\n\r\n@Component({\r\n selector: \"adm_profiler\",\r\n providers: [{ provide: LocalizationService, useClass: AdmProfilerComponentLoc }],\r\n templateUrl: \"./adm_profiler.component.html\"\r\n})\r\nexport class AdmProfilerComponent {\r\n public searchView: ProfilerDataNodesView = new ProfilerDataNodesView();\r\n public storageSub: any;\r\n\r\n public NodeDetails: NodeStats;\r\n \r\n constructor(\r\n private expExts: ExportService,\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n private location: Location,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => {\r\n this.Init(params[\"ignoreStorage\"]);\r\n });\r\n }\r\n\r\n Init(ignoreStore) {\r\n this.doInit(ignoreStore);\r\n }\r\n\r\n async doInit(ignoreStorage) {\r\n let item = await this.localStorage.getItem<ProfilerDataNodesView>(\"HotSearchProfilato\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/profiler`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotSearchProfilato\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: ProfilerDataNodesView) {\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetItems(this.backend + Repository[\"POST_Adm_GetProfilerDataNodes\"], this.searchView);\r\n }\r\n else {\r\n this.searchView = new ProfilerDataNodesView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n this.searchView.searchinprogress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetItems(this.backend + Repository[\"POST_Adm_GetProfilerDataNodes\"], this.searchView);\r\n }\r\n\r\n POSTGetItems(url: string, data: ProfilerDataNodesView) {\r\n this.http.post<ProfilerDataNodesView>(url, data).subscribe(t => {\r\n this.searchView = t;\r\n this.searchView.searchinprogress = false;\r\n this.localStorage.setItem(\"HotSearchProfilato\", this.searchView).subscribe();\r\n });\r\n }\r\n\r\n prepareExport(dataCallBack) {\r\n var view = JSON.parse(JSON.stringify(this.searchView));\r\n view.page = 1;\r\n view.itemsperpageoverride = 9999999;\r\n this.http.post<ProfilerDataNodesView>(this.backend + Repository[\"POST_Adm_GetProfilerDataNodes\"], view).subscribe(t => {\r\n let items: ProfilerDataNode[] = this.expExts.deserializeForExport(t.items, ProfilerDataNode);\r\n dataCallBack(items);\r\n });\r\n }\r\n\r\n loadNodeDetails(nodeId: string) {\r\n this.NodeDetails = null;\r\n let pars = new HttpParams().set('nodeId', nodeId);\r\n this.http.get<NodeStats>(this.backend + Repository.GET_Adm_GetNodeStats, pars).subscribe(t => {\r\n this.NodeDetails = t;\r\n });\r\n }\r\n}","import { AppSearch } from \"@esfaenza/es-table\";\r\nimport { TopActivity } from \"./TopActivity\";\r\n\r\nexport class TopActivitiesDataView extends AppSearch<TopActivity>{\r\n constructor() { super(); }\r\n\r\n filterfrom: string;\r\n filterto: string;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmTopActivitieLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n super.set(\"en->it\", \"Active Sessions\", [\"Sessioni Attive\"]);\r\n super.set(\"en->it\", \"Top Nodes\", [\"Prime Istruzioni\"]);\r\n super.set(\"en->it\", \"Top Sessions\", [\"Prime Sessioni\"]);\r\n super.set(\"en->it\", \"Loading Data\", [\"Carico i Dati\"]);\r\n super.set(\"en->it\", \"Top Activities\", [\"Attivita' Principali\"]);\r\n super.set(\"en->it\", \"Node Description\", [\"Descrizione Nodo\"]);\r\n super.set(\"en->it\", \"Node\", [\"Nodo\"]);\r\n super.set(\"en->it\", \"Activity\", [\"Attivita'\"]);\r\n super.set(\"en->it\", \"Limit\", [\"Limite\"]);\r\n super.set(\"en->it\", \"Node Type\", [\"Tipo Nodo\"]);\r\n super.set(\"en->it\", \"User\", [\"Utente\"]);\r\n super.set(\"en->it\", \"Tenant\", [\"Tenant\"]);\r\n super.set(\"en->it\", \"Process\", [\"Processo\"]);\r\n super.set(\"en->it\", \"Update every\", [\"Aggiorna ogni\"]);\r\n super.set(\"en->it\", \"second/s\", [\"secondo/i\"]);\r\n super.set(\"en->it\", \"Maximum Threads\", [\"Thread Massimi\"]);\r\n super.set(\"en->it\", \"CPUs\", [\"CPU\"]);\r\n super.set(\"en->it\", \"Wait Class Name\", [\"Nome Classe Attesa\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { BaseChartComponent, DateValue, KeyValueColor, Limit, LineChartData, LineSerie, PieChartData } from \"@esfaenza/es-charts\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { DateService, InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n// Modelli\r\nimport { DirectorInfos } from \"../../models/components/DirectorInfos\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { TopActivitiesDataView } from \"../../models/components/TopActivitiesDataView\";\r\nimport { TopNode } from \"../../models/components/TopNode\";\r\nimport { TopSession } from \"../../models/components/TopSession\";\r\nimport { NodeStats } from \"../../models/components/NodeStats\";\r\n\r\n// Applicazione\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmTopActivitieLoc } from \"./topact_search.component.loc\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\n\r\n@Component({\r\n selector: \"topact_search\",\r\n providers: [\r\n { provide: LocalizationService, useClass: AdmTopActivitieLoc }\r\n ],\r\n templateUrl: \"./topact_search.component.html\"\r\n})\r\nexport class AdmTopActivitiesComponent {\r\n public searchView: TopActivitiesDataView = new TopActivitiesDataView();\r\n public storageSub: any;\r\n private LastDataPoint: any;\r\n\r\n public autoUpdate: boolean = false;\r\n public seconds: string = \"5\";\r\n\r\n private ChartInstance: BaseChartComponent;\r\n public NodeDetails: NodeStats;\r\n\r\n constructor(\r\n public dateExts: DateService,\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n private location: Location,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => {\r\n this.Init(params[\"ignoreStorage\"]);\r\n });\r\n }\r\n\r\n Init(ignoreStore) {\r\n this.doInit(ignoreStore);\r\n }\r\n\r\n async doInit(ignoreStorage) {\r\n let item = await this.localStorage.getItem<TopActivitiesDataView>(\"HotSearchTopAct\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/topact`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotSearchTopAct\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: TopActivitiesDataView) {\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetItems(this.backend + Repository.POST_Adm_GetTopActivities, this.searchView, false);\r\n }\r\n else {\r\n this.searchView = new TopActivitiesDataView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n sendSearch(resetPage: boolean = true, update: boolean = false, searchViewOverride: TopActivitiesDataView = null) {\r\n this.searchView.searchinprogress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetItems(this.backend + Repository.POST_Adm_GetTopActivities, searchViewOverride ?? this.searchView, update);\r\n }\r\n\r\n POSTGetItems(url: string, data: TopActivitiesDataView, update: boolean) {\r\n\r\n this.http.post<TopActivitiesDataView>(url, data).subscribe(async (t) => {\r\n //Se sono in modalità di update non devo toccare la searchView attuale se non per il searchinprogress che viene messo dall'es table\r\n if (!update) {\r\n this.searchView = t;\r\n this.localStorage.setItem(\"HotSearchTopAct\", this.searchView).subscribe();\r\n }\r\n var dirinfos = await this.getDirectorInfos();\r\n this.searchView.searchinprogress = false;\r\n this.reviewBindings(update, t, dirinfos);\r\n });\r\n }\r\n\r\n getDirectorInfos(): Promise<DirectorInfos> {\r\n return this.http.get<DirectorInfos>(this.backend + Repository.GET_Adm_GetInfos).pipe(map(res => { return res; })).toPromise();\r\n }\r\n\r\n loadNodeDetails(nodeId: string) {\r\n this.NodeDetails = null;\r\n let pars = new HttpParams().set('nodeId', nodeId);\r\n this.http.get<NodeStats>(this.backend + Repository.GET_Adm_GetNodeStats, pars).subscribe(t => {\r\n this.NodeDetails = t;\r\n });\r\n }\r\n\r\n // **************************************************** Trasformazione da searchview con unico elemento con tutto ai 3 elementi:\r\n // **************************************************** Grafico, TopNodes e TopSessions\r\n TopActiveSessions: LineChartData;\r\n TopNodes: TopNode[];\r\n TopSessions: TopSession[];\r\n DirInfos: DirectorInfos;\r\n seriesPropertiesMapping: { [index: string]: LineSerie } = {};\r\n propertiesSeriesMapping: { [index: string]: string } = {\r\n [\"cputime\"]: \"CPU\",\r\n [\"waittime\"]: \"Wait\",\r\n [\"scripttime\"]: \"Scripting\",\r\n [\"dbtime\"]: \"DB\",\r\n [\"nettime\"]: \"Network\",\r\n [\"throttletime\"]: \"Throttling\",\r\n [\"sleeptime\"]: \"Sleep\",\r\n [\"iotime\"]: \"IO\"\r\n };\r\n\r\n reviewBindings(update: boolean, searchViewOverride?, dirInfos?: DirectorInfos) {\r\n let reference = (searchViewOverride ?? this.searchView).items[0];\r\n this.TopNodes = reference.topnodes;\r\n this.TopSessions = reference.topsessions;\r\n this.DirInfos = dirInfos;\r\n\r\n if (!reference.actsessions || reference.actsessions.length == 0) {\r\n this.TopActiveSessions = null;\r\n return;\r\n }\r\n\r\n let series: LineSerie[] = [];\r\n let props = Object.keys(reference.actsessions[0]);\r\n for (let i = 0; i < props.length; i++) {\r\n if (props[i] != 'sampletime') {\r\n let s = new LineSerie(this.propertiesSeriesMapping[props[i]], [], null, null, \"sessions\");\r\n series.push(s);\r\n this.seriesPropertiesMapping[props[i]] = s;\r\n }\r\n }\r\n\r\n for (let i = 0; i < reference.actsessions.length; i++) {\r\n let itemref = reference.actsessions[i];\r\n let theD = new Date(itemref.sampletime);\r\n\r\n for (let i = 0; i < props.length; i++)\r\n if (props[i] != 'sampletime' && (!update || this.dateExts.getDateConvertion(theD).isAfter(this.LastDataPoint)))\r\n this.seriesPropertiesMapping[props[i]].values.push(new DateValue(theD, itemref[props[i]]));\r\n }\r\n\r\n if (update && this.ChartInstance) {\r\n let data = new LineChartData(series, new Limit(dirInfos?.threads, this.lc.loc(\"Maximum Threads\")));\r\n if (series.some(t => t.values.length > 0)) {\r\n this.ChartInstance.addData(data);\r\n this.LastDataPoint = series.map(t => dayjs.max(t.values.map(v => this.dateExts.getDateConvertion(v.d))))[0];\r\n }\r\n }\r\n else {\r\n this.TopActiveSessions = new LineChartData(series, new Limit(dirInfos?.threads, this.lc.loc(\"Maximum Threads\")));\r\n this.LastDataPoint = series.map(t => dayjs.max(t.values.map(v => this.dateExts.getDateConvertion(v.d))))[0];\r\n }\r\n }\r\n\r\n // #region Gestione update automatico\r\n updateTimer: any;\r\n autoUpdateChanged() {\r\n if (!/^[1-9]\\d*$/.test(this.seconds))\r\n this.seconds = '10';\r\n const secondsInMs = parseInt(this.seconds, null) * 1000;\r\n if (this.autoUpdate) {\r\n this.sendSearch(false, true);\r\n this.updateTimer = setInterval(() => { this.sendSearch(false, true); }, secondsInMs);\r\n }\r\n else\r\n clearInterval(this.updateTimer);\r\n }\r\n // #endregion\r\n\r\n private from: Date;\r\n private to: Date;\r\n\r\n dataSelectionChanged(event: { from: Date, to: Date, initial: boolean }) {\r\n this.from = event.initial ? (this.searchView.filterfrom ? this.dateExts.getDateConvertion(this.searchView.filterfrom).toDate() : \"\") : event.from;\r\n this.to = event.initial ? (this.searchView.filterto ? this.dateExts.getDateConvertion(this.searchView.filterto).toDate() : \"\") : event.to;\r\n\r\n var pseudoSearchView: TopActivitiesDataView = JSON.parse(JSON.stringify(this.searchView));\r\n pseudoSearchView.filterfrom = this.from ? dayjs(this.from).format(this.lc.token(\"getFullDateDisplayFormat\")) : \"\";\r\n pseudoSearchView.filterto = this.to ? dayjs(this.to).format(this.lc.token(\"getFullDateDisplayFormat\")) : \"\";\r\n this.sendSearch(true, true, pseudoSearchView);\r\n }\r\n\r\n onChartLoaded(chart: BaseChartComponent) {\r\n this.ChartInstance = chart;\r\n chart.Chart.events.on(\"ready\", () => {\r\n (<am4charts.XYChart>chart.Chart).xAxes.each(x => x.zoom({ start: 0, end: 1 }, true, true));\r\n (<am4charts.XYChart>chart.Chart).yAxes.each(y => y.zoom({ start: 0, end: 1 }, true, true));\r\n setTimeout(() => {\r\n (<am4charts.XYChart>chart.Chart).xAxes.each(x => x.zoom({ start: 0, end: 1 }, true, true));\r\n (<am4charts.XYChart>chart.Chart).yAxes.each(y => y.zoom({ start: 0, end: 1 }, true, true));\r\n\r\n // 500 millisecondi è più o meno il tempo di prima animazione del grafico. Finito questo si resetta lo zoom\r\n }, 500);\r\n });\r\n }\r\n}","import { AppSearch, GenericItem } from \"@esfaenza/es-table\";\r\n\r\nexport class LocksView extends AppSearch<GenericItem>{\r\n constructor() { super(); }\r\n\r\n filtersid: string;\r\n filterlock: string;\r\n filterglobal: boolean;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmEnqLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n super.set(\"en->it\", \"Search Application Locks\", [\"Ricerca Lock Applicativi\"]);\r\n super.set(\"en->it\", \"Name\", [\"Nome\"]);\r\n super.set(\"en->it\", \"Loading Application Locks\", [\"Carico i Lock Applicativi\"]);\r\n super.set(\"en->it\", \"Global\", [\"Globale\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { ExportService, InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// Applicazione\r\nimport { LocksView } from \"../../models/components/LocksView\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmEnqLoc } from \"./adm_enq.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_enq\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmEnqLoc }],\r\n templateUrl: \"./adm_enq.component.html\"\r\n})\r\nexport class AdmEnqComponent {\r\n public locksView: LocksView = new LocksView();\r\n public storageSub: any;\r\n\r\n constructor(\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n public expExts: ExportService,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params[\"ignoreStorage\"]); });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n async Init(ignoreStorage) {\r\n let item = await this.localStorage.getItem<LocksView>(\"HotEnqueue\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/serverenqueues`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotEnqueue\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: LocksView) {\r\n if (HotPotato) {\r\n this.locksView = HotPotato;\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerLocks\"], this.locksView);\r\n }\r\n else {\r\n this.locksView = new LocksView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n if (resetPage)\r\n this.locksView.page = 1;\r\n\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerLocks\"], this.locksView);\r\n }\r\n\r\n POSTGetProcesses(url: string, data: LocksView) {\r\n this.http.post<LocksView>(url, data).subscribe(t => {\r\n this.locksView = t;\r\n this.localStorage.setItem(\"HotEnqueue\", this.locksView).subscribe();\r\n });\r\n }\r\n}","import { AppSearch } from \"@esfaenza/es-table\";\r\nimport { Metric } from \"./Metric\";\r\n\r\nexport class MetricsView extends AppSearch<Metric> {\r\n constructor() { super(); }\r\n\r\n filterfrom: string;\r\n filterto: string;\r\n filtersid: string;\r\n filterserial: string;\r\n filtermetrics: string[];\r\n filterrealtime: boolean;\r\n fitlerinstance: string;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmMetricsLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n super.set(\"en->it\", \"System Metrics\", [\"Metriche di Sistema\"]);\r\n super.set(\"en->it\", \"Session ID\", [\"Cod. Sessione\"]);\r\n super.set(\"en->it\", \"Session Serial\", [\"Seriale Sessione\"]);\r\n super.set(\"en->it\", \"Filter Metrics...\", [\"Filtra Metriche...\"]);\r\n super.set(\"en->it\", \"Loading Data\", [\"Carico i Dati\"]);\r\n super.set(\"en->it\", \"Update every\", [\"Aggiorna ogni\"]);\r\n super.set(\"en->it\", \"second/s\", [\"secondo/i\"]);\r\n super.set(\"en->it\", \"Metrics Instance\", [\"Istanza Metriche\"]);\r\n }\r\n}","// Angular\r\nimport { HttpParams } from \"@angular/common/http\";\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { BaseChartComponent } from \"@esfaenza/es-charts\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { DateService, InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\n\r\n// Applicazione\r\nimport { KeyValue } from \"../../models/shared/KeyValue\";\r\nimport { Metric } from \"../../models/components/Metric\";\r\nimport { MetricChart } from \"../../models/components/MetricChart\";\r\nimport { MetricsView } from \"../../models/components/MetricsView\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmMetricsLoc } from \"./metrics_search.component.loc\";\r\n\r\n@Component({\r\n selector: \"metrics_search\",\r\n providers: [\r\n { provide: LocalizationService, useClass: AdmMetricsLoc }\r\n ],\r\n templateUrl: \"./metrics_search.component.html\"\r\n})\r\nexport class AdmMetricsComponent {\r\n\r\n public Metrics: Metric[];\r\n private MetricsChartCache: { [name: string]: { chart: BaseChartComponent, lastTs: Date } } = {};\r\n\r\n public searchView: MetricsView = new MetricsView();\r\n public storageSub: any;\r\n\r\n public autoUpdate: boolean = false;\r\n public seconds: string = \"5\";\r\n\r\n constructor(\r\n public dateExts: DateService,\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n private location: Location,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => {\r\n this.Init(params[\"ignoreStorage\"]);\r\n });\r\n }\r\n\r\n Init(ignoreStore) {\r\n this.doInit(ignoreStore);\r\n }\r\n\r\n dateChanged() {\r\n // Pulizia di tutti i parametri di ricerca dipendenti dalle date\r\n this.metricsToShow = [];\r\n this.Metrics = [];\r\n this.instanceRequired = false;\r\n this.Instances = [];\r\n this.selectedInstance = \"\";\r\n this.searchView.filtermetrics = [];\r\n\r\n var pars = new HttpParams().set(\"from\", this.searchView.filterfrom || \"\").set(\"to\", this.searchView.filterto || \"\")\r\n this.http.get<Metric[]>(this.backend + Repository[\"GET_Adm_GetMetrics\"], pars).subscribe(t => this.Metrics = t);\r\n }\r\n\r\n async doInit(ignoreStorage) {\r\n let item = await this.localStorage.getItem<MetricsView>(\"HotSearchMetrics\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/metrics`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotSearchMetrics\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: MetricsView) {\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetItems(this.backend + Repository[\"POST_Adm_GetMetrics\"], this.searchView, false);\r\n }\r\n else {\r\n this.searchView = new MetricsView();\r\n this.sendSearch();\r\n }\r\n this.dateChanged();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n sendSearch(resetPage: boolean = true, update: boolean = false, searchViewOverride: MetricsView = null) {\r\n if (!update)\r\n this.MetricsChartCache = {};\r\n\r\n this.searchView.searchinprogress = true;\r\n // Questa ricerca prende i nomi distinct delle metriche quindi devo prendere tutto per forza\r\n this.searchView.itemsperpageoverride = 999999;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetItems(this.backend + Repository[\"POST_Adm_GetMetrics\"], searchViewOverride ?? this.searchView, update);\r\n }\r\n\r\n public Instances: KeyValue[] = []\r\n public selectedInstance = \"\";\r\n public instanceRequired: boolean = false;\r\n public metricsToShow: Metric[] = [];\r\n\r\n POSTGetItems(url: string, data: MetricsView, update: boolean) {\r\n data.filterrealtime = update ? data.filterrealtime : !(!!data.filterfrom || !!data.filterto);\r\n\r\n this.http.post<MetricsView>(url, data).subscribe(async (t) => {\r\n //Se sono in modalità di update non devo toccare la searchView attuale se non per il searchinprogress che viene messo dall'es table\r\n if (!update) {\r\n this.selectedInstance = \"\";\r\n this.metricsToShow = [];\r\n this.searchView = t;\r\n this.searchView.items.forEach(m => {\r\n if (!this.Instances.find(t => t.id == m.instance))\r\n this.Instances.push(new KeyValue(m.instance, m.instance));\r\n });\r\n this.instanceRequired = this.Instances.length > 1;\r\n if (this.Instances.length == 1) {\r\n this.selectedInstance = this.Instances[0].id;\r\n this.instanceSelected();\r\n }\r\n this.localStorage.setItem(\"HotSearchMetrics\", this.searchView).subscribe();\r\n }\r\n else {\r\n // Per ogni grafico di ogni metrica aggiungo tutti i valori che sono DOPO all'ultimo ts registrato per quel grafico\r\n t.items.forEach(m => {\r\n m.values.forEach(c => {\r\n let refm = this.MetricsChartCache[this.metricKey(m, c)];\r\n if (refm) {\r\n c.series.forEach(s => { s.values = s.values.filter(v => this.dateExts.getDateConvertion(v.d).isAfter(refm.lastTs)); });\r\n if (c.series.some(t => t.values.length > 0)) {\r\n refm.lastTs = c.series.map(t => dayjs.max(t.values.map(v => this.dateExts.getDateConvertion(v.d))))[0];\r\n refm.chart.addData(c);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n this.searchView.searchinprogress = false;\r\n });\r\n }\r\n\r\n instanceSelected() {\r\n if (!this.selectedInstance)\r\n return;\r\n\r\n this.metricsToShow = this.searchView.items.filter(t => t.instance == this.selectedInstance);\r\n }\r\n\r\n linkChartToMetric(metric: Metric, metricChart: MetricChart, chartComp: BaseChartComponent) {\r\n this.MetricsChartCache[this.metricKey(metric, metricChart)] = { chart: chartComp, lastTs: metricChart.series.map(t => dayjs.max(t.values.map(v => this.dateExts.getDateConvertion(v.d))))[0] };\r\n }\r\n\r\n private metricKey(metric: Metric, value: MetricChart): string {\r\n return metric.name + \" - \" + value.xtitle + \" - \" + metric.instance;\r\n }\r\n\r\n // #region Gestione update automatico\r\n updateTimer: any;\r\n autoUpdateChanged() {\r\n if (!/^[1-9]\\d*$/.test(this.seconds))\r\n this.seconds = '10';\r\n const secondsInMs = parseInt(this.seconds, null) * 1000;\r\n if (this.autoUpdate) {\r\n this.sendSearch(false, true);\r\n this.updateTimer = setInterval(() => { this.sendSearch(false, true); }, secondsInMs);\r\n }\r\n else\r\n clearInterval(this.updateTimer);\r\n }\r\n // #endregion\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmLogsLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n super.set(\"en->it\", \"Server Logs\", [\"Log del Server\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\n\r\n// Applicazione\r\nimport { ADM_BACKEND_URL } from \"../../tokens\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\n\r\n// Localizzazione\r\nimport { AdmLogsLoc } from \"./adm_logs.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_logs\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmLogsLoc }],\r\n templateUrl: \"./adm_logs.component.html\"\r\n})\r\nexport class AdmLogsComponent {\r\n public Log: string;\r\n\r\n constructor(\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private lc: LocalizationService,\r\n private route: ActivatedRoute,\r\n @Inject(ADM_BACKEND_URL) private backend: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.http.get<string>(this.backend + Repository[\"GET_Adm_GetServerLogs\"]).subscribe(t => { this.Log = t; });\r\n }\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class NodeDetailLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Active Sessions\", [\"Sessioni Attive\"]);\r\n super.set(\"en->it\", \"Activity Node Details\", [\"Dettaglio Attività Nodo\"]);\r\n super.set(\"en->it\", \"Event Type\", [\"Tipo Evento\"]);\r\n super.set(\"en->it\", \"Elapsed (With Children)\", [\"Tempo Trascorso (Con Figli)\"]);\r\n super.set(\"en->it\", \"Wait Class\", [\"Classe Attesa\"]);\r\n super.set(\"en->it\", \"Elapsed (No Children)\", [\"Tempo Trascorso\"]);\r\n super.set(\"en->it\", \"Wait Stack\", [\"Stack di Attesa\"]);\r\n super.set(\"en->it\", \"Resources Usage\", [\"Utilizzo Risorse\"]);\r\n super.set(\"en->it\", \"Executions\", [\"Esecuzioni\"]);\r\n\t\tsuper.set(\"en->it\", \"Event detail\", [\"Dettaglio evento\"]);\r\n }\r\n}","// Angular\r\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { KeyValueColor, LineChartData, LineSerie, PieChartData } from \"@esfaenza/es-charts\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\n// Applicazione\r\nimport { NodeStats } from \"../../models/components/NodeStats\";\r\n\r\n// Localizzazione\r\nimport { NodeDetailLoc } from \"./node_detail.component.loc\";\r\n\r\n@Component({\r\n selector: \"node-detail\",\r\n viewProviders: [{ provide: LocalizationService, useClass: NodeDetailLoc }],\r\n templateUrl: \"./node_detail.component.html\"\r\n})\r\nexport class NodeDetailComponent {\r\n\r\n @Input() NodeDetails: NodeStats;\r\n\r\n @Output() onClose: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n \r\n constructor(public lc: LocalizationService) { }\r\n\r\n ngOnInit() {\r\n let serie = new LineSerie(this.lc.loc(\"Active Sessions\"), this.NodeDetails.activesessions);\r\n this.NodeDetails.sessionchart = new LineChartData([serie]);\r\n this.NodeDetails.loadchart = new PieChartData([\r\n new KeyValueColor(\"CPU\", this.NodeDetails.cpuperc),\r\n new KeyValueColor(\"Wait\", this.NodeDetails.waitperc),\r\n new KeyValueColor(\"DB\", this.NodeDetails.dbperc),\r\n new KeyValueColor(\"Script\", this.NodeDetails.scriptperc),\r\n new KeyValueColor(\"Throttle\", this.NodeDetails.throttleperc),\r\n new KeyValueColor(\"Sleep\", this.NodeDetails.sleepperc),\r\n new KeyValueColor(\"Networking\", this.NodeDetails.networkperc),\r\n new KeyValueColor(\"IO\", this.NodeDetails.ioperc)\r\n ]);\r\n }\r\n\r\n closeDialog() {\r\n this.onClose.emit(true);\r\n }\r\n}","import { AppSearch, GenericItem } from \"@esfaenza/es-table\";\r\n\r\nexport class DynamicViewsView extends AppSearch<GenericItem> {\r\n constructor() { super(); }\r\n\r\n filtername: string;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmDynamicViewsLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Search Application Dynamic Views\", [\"Ricerca Viste Dinamiche Applicative\"]);\r\n super.set(\"en->it\", \"Name\", [\"Nome\"]);\r\n super.set(\"en->it\", \"Loading Application Dynamic Views\", [\"Carico le Viste Dinamiche Applicative\"]);\r\n super.set(\"en->it\", \"View Name is mandatory for search operations\", [\"Il nome della vista è obbligatorio per le operazioni di ricerca\"]);\r\n super.set(\"en->it\", \"No element found for Dynamic View\", [\"Nessun elemento trovato per la vista dinamica\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { AppSearch } from \"@esfaenza/es-table\";\r\n\r\n// Applicazione\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { DynamicViewsView } from \"../../models/components/DynamicViewsView\";\r\nimport { KeyValue } from \"../../models/shared/KeyValue\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmDynamicViewsLoc } from \"./adm_dynamic_views.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_dynamic_views\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmDynamicViewsLoc }],\r\n templateUrl: \"./adm_dynamic_views.component.html\"\r\n})\r\nexport class AdmDynamicViewsComponent {\r\n\r\n public searchView: DynamicViewsView = new DynamicViewsView();\r\n public Names: KeyValue[] = [];\r\n public storageSub: any;\r\n public badSearch: boolean = false;\r\n\r\n public currentName: string = \"\";\r\n\r\n // Staccato dalla view perché deve essere distrutta e ricreata di continuo\r\n public filterName:string = \"\";\r\n\r\n constructor(\r\n public lc: LocalizationService,\r\n private intercom: InterComService,\r\n private localStorage: PreferencesService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.http.get<KeyValue[]>(Repository.GET_Adm_GetDynamicViews).subscribe(t => { this.Names = t });\r\n this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params[\"ignoreStorage\"]); });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n async Init(ignoreStorage) {\r\n let item = await this.localStorage.getItem<DynamicViewsView>(\"HotDinamitato\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/serverviews`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotDinamitato\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: DynamicViewsView) {\r\n //Se ho la HotPotato vuol dire che sono appena tornato dall'edit/nuovo. Rifaccio la ricerca in base ai filtri precedenti\r\n //Altirmenti genero il modello nuovo normalmente\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetItems(this.backend + Repository.POST_Adm_GetDynamicViewData, this.searchView);\r\n }\r\n else {\r\n this.searchView = new DynamicViewsView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n this.searchView.searchinprogress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.searchView.filtername = this.filterName;\r\n this.POSTGetItems(this.backend + Repository.POST_Adm_GetDynamicViewData, this.searchView);\r\n }\r\n\r\n POSTGetItems(url: string, data: DynamicViewsView) {\r\n if (!this.searchView.filtername) {\r\n this.badSearch = true;\r\n AppSearch.reset(this.searchView);\r\n\r\n //Aggiorno il riferimento per refreshare la es-table\r\n this.searchView = JSON.parse(JSON.stringify(this.searchView));\r\n return;\r\n }\r\n else\r\n this.badSearch = false;\r\n\r\n // Per force-resettare l'estable\r\n if (this.currentName != this.searchView.filtername) {\r\n this.currentName = this.searchView.filtername;\r\n this.searchView = null;\r\n }\r\n\r\n this.http.post<DynamicViewsView>(url, data).subscribe(t => {\r\n this.searchView = t;\r\n this.searchView.searchinprogress = false;\r\n this.localStorage.setItem(\"HotDinamitato\", this.searchView).subscribe();\r\n });\r\n }\r\n\r\n}","// Angular\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({ name: 'format_time' })\r\nexport class FormatTimePipe implements PipeTransform {\r\n\r\n constructor() { }\r\n\r\n transform(value: number | string) {\r\n return this.secondsToHms(value);\r\n }\r\n\r\n secondsToHms(d: number | string): string {\r\n d = Number(d);\r\n var h = Math.floor(d / 3600);\r\n var m = Math.floor(d % 3600 / 60);\r\n var s = Math.floor(d % 3600 % 60);\r\n \r\n var hDisplay = h > 0 ? h + \" h, \" : \"\";\r\n var mDisplay = m > 0 ? m + \" min, \" : \"\";\r\n var sDisplay = s > 0 ? s + \" sec\" : \"\";\r\n return hDisplay + mDisplay + sDisplay; \r\n }\r\n}","/** Chiave di questo modulo, da utilizzare per i messaggi */\r\nexport const MK_ADM = \"EsAdminModule\";\r\n\r\n/** Messaggi gestiti da questo modulo */\r\nexport enum AdmMessageTypes{\r\n Message\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { InterComService, InterComMessage } from \"@esfaenza/extensions\";\r\n\r\n// Modelli\r\nimport { AdmMessageTypes, MK_ADM } from \"./admin-module-messages\";\r\n\r\n@Injectable()\r\nexport class AdminModuleCommService {\r\n\r\n constructor(private intercom: InterComService) { }\r\n\r\n public register() {\r\n this.intercom.register(MK_ADM);\r\n this.intercom.outbounds[MK_ADM].subscribe((t: InterComMessage) => { this.handleOutbound(t.type, t.message); });\r\n }\r\n\r\n private handleOutbound(type: AdmMessageTypes, message: any) {\r\n switch (type) {\r\n case AdmMessageTypes.Message:\r\n if (myconfig.DEBUG_MODE)\r\n console.log(\"@admin-module outbound message: \" + message);\r\n break;\r\n }\r\n }\r\n}","// Angular\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule } from \"@angular/core\";\nimport { RouterModule } from \"@angular/router\";\n\n// Material\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDayjsDateModule } from \"@esfaenza/material-dayjs-adapter\";\nimport { MatInputModule } from \"@angular/material/input\";\n\n// Libs\nimport { NgxMatDatetimePickerModule } from '@angular-material-components/datetime-picker';\nimport { ModalModule } from \"ngx-bootstrap/modal\";\nimport { CsvModule } from \"@ctrl/ngx-csv\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\n\n// Esfaenza\n import { EsTableModule } from \"@esfaenza/es-table\";\n import { FormsAndValidationsModule } from \"@esfaenza/forms-and-validations\";\n import { EsChartsModule } from \"@esfaenza/es-charts\";\n import { EsGertrudeModule } from \"@esfaenza/gertrude\";\n import { LocalizationModule } from \"@esfaenza/localizations\";\n import { ContextMenuModule } from \"@esfaenza/ngx-contextmenu\";\n\n// Components\nimport { AdmAuditsComponent } from \"./components/audits/adm_audits.component\";\nimport { AdmWrkComponent } from \"./components/workers/adm_wrk.component\";\nimport { AdmProfilerComponent } from \"./components/profiler/adm_profiler.component\";\nimport { AdmTopActivitiesComponent } from \"./components/topact/topact_search.component\";\nimport { AdmEnqComponent } from \"./components/enqueues/adm_enq.component\";\nimport { AdmMetricsComponent } from \"./components/metrics/metrics_search.component\";\nimport { AdmLogsComponent } from \"./components/logs/adm_logs.component\";\nimport { NodeDetailComponent } from \"./components/_shared/node_detail.component\";\nimport { AdmDynamicViewsComponent } from \"./components/dynamic_views/adm_dynamic_views.component\";\n\n// Pipes\nimport { FormatTimePipe } from \"./pipes/format_time.pipe\";\n\n// Communication Service\nimport { AdminModuleCommService } from \"./admin-module.comms.service\";\n\n// Tokens\nimport { ADM_BACKEND_URL, ADM_CONVERSATIONS, ADM_LOCALE } from \"./tokens\";\n\nexport const routeConfig = [\n {\n path: \"\", children: [\n { path: \"serverworkers\", component: AdmWrkComponent, data: { title: \"Search Application Processes\", internalNavigation: false } },\n { path: \"profiler\", component: AdmProfilerComponent, data: { title: \"Server Profiler\", internalNavigation: false } },\n { path: \"topact\", component: AdmTopActivitiesComponent, data: { title: \"Top Activities\", internalNavigation: false } },\n { path: \"metrics\", component: AdmMetricsComponent, data: { title: \"System Metrics\", internalNavigation: false } },\n { path: \"serverlogs\", component: AdmLogsComponent, data: { title: \"Server Logs\", internalNavigation: false } },\n { path: \"serveraudits\", component: AdmAuditsComponent, data: { title: \"Search Application Audits\", internalNavigation: false } },\n { path: \"serverenqueues\", component: AdmEnqComponent, data: { title: \"Search Application Locks\", internalNavigation: false } },\n { path: \"serverviews\", component: AdmDynamicViewsComponent, data: { title: \"Search Application Dynamic Views\", internalNavigation: false } }\n ]\n }\n];\n\nconst MODULES = [\n // Base\n CommonModule,\n FormsModule,\n\n // Material\n MatDatepickerModule,\n MatDayjsDateModule,\n MatIconModule,\n MatInputModule,\n\n // Bootstrap\n ModalModule,\n TooltipModule,\n BsDropdownModule,\n CsvModule,\n\n // Esfaenza e componenti visuali\n ContextMenuModule,\n LocalizationModule,\n EsTableModule,\n FormsAndValidationsModule,\n EsGertrudeModule,\n EsChartsModule,\n NgxMatDatetimePickerModule,\n\n RouterModule.forChild(routeConfig),\n];\n\nconst COMPONENTS = [\n AdmWrkComponent,\n AdmProfilerComponent,\n AdmTopActivitiesComponent,\n AdmDynamicViewsComponent,\n AdmLogsComponent,\n AdmAuditsComponent,\n AdmEnqComponent,\n AdmMetricsComponent,\n NodeDetailComponent\n];\n\nconst PIPES = [\n FormatTimePipe\n]\n\n@NgModule({\n imports: [...MODULES],\n declarations: [...COMPONENTS, ...PIPES],\n providers: [\n AdminModuleCommService,\n { provide: ADM_LOCALE, useValue: myconfig.LOCALE },\n { provide: ADM_BACKEND_URL, useValue: myconfig.BACKEND_URL },\n { provide: ADM_CONVERSATIONS, useValue: !!myconfig.TRANSACTIONS_TIMEOUT_S }\n ]\n})\nexport class AdmModule {\n constructor(private commService: AdminModuleCommService) {\n console.log(\"@esfaenza/admin-module: BOOTSTRAP\");\n this.commService.register();\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AdminModuleCommService as ɵt} from './lib/admin-module.comms.service';\nexport {NodeDetailComponent as ɵq} from './lib/components/_shared/node_detail.component';\nexport {NodeDetailLoc as ɵr} from './lib/components/_shared/node_detail.component.loc';\nexport {AdmAuditsComponent as ɵk} from './lib/components/audits/adm_audits.component';\nexport {AdmAuditLoc as ɵl} from './lib/components/audits/adm_audits.component.loc';\nexport {AdmDynamicViewsComponent as ɵo} from './lib/components/dynamic_views/adm_dynamic_views.component';\nexport {AdmDynamicViewsLoc as ɵp} from './lib/components/dynamic_views/adm_dynamic_views.component.loc';\nexport {AdmEnqComponent as ɵm} from './lib/components/enqueues/adm_enq.component';\nexport {AdmEnqLoc as ɵn} from './lib/components/enqueues/adm_enq.component.loc';\nexport {AdmLogsComponent as ɵi} from './lib/components/logs/adm_logs.component';\nexport {AdmLogsLoc as ɵj} from './lib/components/logs/adm_logs.component.loc';\nexport {AdmMetricsComponent as ɵg} from './lib/components/metrics/metrics_search.component';\nexport {AdmMetricsLoc as ɵh} from './lib/components/metrics/metrics_search.component.loc';\nexport {AdmProfilerComponent as ɵc} from './lib/components/profiler/adm_profiler.component';\nexport {AdmProfilerComponentLoc as ɵd} from './lib/components/profiler/adm_profiler.component.loc';\nexport {AdmTopActivitiesComponent as ɵe} from './lib/components/topact/topact_search.component';\nexport {AdmTopActivitieLoc as ɵf} from './lib/components/topact/topact_search.component.loc';\nexport {AdmWrkComponent as ɵa} from './lib/components/workers/adm_wrk.component';\nexport {AdmWrkLoc as ɵb} from './lib/components/workers/adm_wrk.component.loc';\nexport {FormatTimePipe as ɵs} from './lib/pipes/format_time.pipe';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"esfaenza-admin-module.js","sources":["../../../projects/admin-module/src/lib/models/components/AuditsView.ts","../../../projects/admin-module/src/lib/models/externals/Repository.ts","../../../projects/admin-module/src/lib/tokens.ts","../../../projects/admin-module/src/lib/components/audits/adm_audits.component.loc.ts","../../../projects/admin-module/src/lib/components/audits/adm_audits.component.ts","../../../projects/admin-module/src/lib/models/shared/KeyValue.ts","../../../projects/admin-module/src/lib/models/components/ProcessesView.ts","../../../projects/admin-module/src/lib/components/workers/adm_wrk.component.loc.ts","../../../projects/admin-module/src/lib/components/workers/adm_wrk.component.ts","../../../projects/admin-module/src/lib/models/shared/Locale.ts","../../../projects/admin-module/src/lib/models/components/ProfilerDataNode.loc.ts","../../../projects/admin-module/src/lib/models/components/ProfilerDataNode.ts","../../../projects/admin-module/src/lib/models/components/ProfilerDataNodesView.ts","../../../projects/admin-module/src/lib/components/profiler/adm_profiler.component.loc.ts","../../../projects/admin-module/src/lib/components/profiler/adm_profiler.component.ts","../../../projects/admin-module/src/lib/models/components/TopActivitiesDataView.ts","../../../projects/admin-module/src/lib/components/topact/topact_search.component.loc.ts","../../../projects/admin-module/src/lib/components/topact/topact_search.component.ts","../../../projects/admin-module/src/lib/models/components/LocksView.ts","../../../projects/admin-module/src/lib/components/enqueues/adm_enq.component.loc.ts","../../../projects/admin-module/src/lib/components/enqueues/adm_enq.component.ts","../../../projects/admin-module/src/lib/models/components/MetricsView.ts","../../../projects/admin-module/src/lib/components/metrics/metrics_search.component.loc.ts","../../../projects/admin-module/src/lib/components/metrics/metrics_search.component.ts","../../../projects/admin-module/src/lib/components/logs/adm_logs.component.loc.ts","../../../projects/admin-module/src/lib/components/logs/adm_logs.component.ts","../../../projects/admin-module/src/lib/components/_shared/node_detail.component.loc.ts","../../../projects/admin-module/src/lib/components/_shared/node_detail.component.ts","../../../projects/admin-module/src/lib/models/components/DynamicViewsView.ts","../../../projects/admin-module/src/lib/components/dynamic_views/adm_dynamic_views.component.loc.ts","../../../projects/admin-module/src/lib/components/dynamic_views/adm_dynamic_views.component.ts","../../../projects/admin-module/src/lib/pipes/format_time.pipe.ts","../../../projects/admin-module/src/lib/admin-module-messages.ts","../../../projects/admin-module/src/lib/admin-module.comms.service.ts","../../../projects/admin-module/src/lib/admin-module.module.ts","../../../projects/admin-module/src/esfaenza-admin-module.ts"],"sourcesContent":["import { AppSearch } from \"@esfaenza/es-table\";\r\nimport { Audit } from \"./Audit\";\r\n\r\nexport class AuditsView extends AppSearch<Audit> {\r\n constructor() {\r\n super();\r\n this.filteraction = '';\r\n this.filterhttp = '';\r\n }\r\n\r\n filterda: string;\r\n filtera: string;\r\n filteruser: string;\r\n filterroute: string;\r\n filteraction: string;\r\n filteraddress: string;\r\n filterhttp: string;\r\n filterargs: string;\r\n filterobjid: string;\r\n filterobjtype: string;\r\n filterconversationid: string;\r\n}","export const Repository = {\r\n GET_Adm_ChangeProcessConsumerGroup: \"/api/Adm/ChangeProcessConsumerGroup\",\r\n GET_Adm_ClearAllCaches: \"/api/Adm/ClearAllCaches\",\r\n GET_Adm_GetConsumerGroups: \"/api/Adm/GetConsumerGroups#cache\",\r\n GET_Adm_GetInfos: \"/api/Adm/GetInfos\",\r\n GET_Adm_GetMetrics: \"/api/Adm/GetMetrics\",\r\n POST_Adm_GetMetrics: \"/api/Adm/GetMetrics\",\r\n POST_Adm_GetProfilerDataNodes: \"/api/Adm/GetProfilerDataNodes\",\r\n POST_Adm_GetServerAudits: \"/api/Adm/GetServerAudits\",\r\n POST_Adm_GetDynamicViewData: \"/api/Adm/GetDynamicViewData\",\r\n POST_Adm_GetServerLocks: \"/api/Adm/GetServerLocks\",\r\n GET_Adm_GetServerLogs: \"/api/Adm/GetServerLogs\",\r\n GET_Adm_GetDynamicViews: \"/api/Adm/GetDynamicViews\",\r\n POST_Adm_GetServerWorkers: \"/api/Adm/GetServerWorkers\",\r\n POST_Adm_GetTopActivities: \"/api/Adm/GetTopActivities\",\r\n GET_Adm_GetWorkerStatus: \"/api/Adm/GetWorkerStatus\",\r\n GET_Adm_InvalidateServerSideCache: \"/api/Adm/InvalidateServerSideCache\",\r\n GET_Adm_KillProcess: \"/api/Adm/KillProcess\",\r\n GET_Adm_SetProcessTracing: \"/api/Adm/SetProcessTracing\",\r\n GET_Adm_StartWorker: \"/api/Adm/StartWorker\",\r\n GET_Adm_StopWorker: \"/api/Adm/StopWorker\",\r\n GET_Adm_GetNodeStats: \"/api/Adm/GetNodeStats\",\r\n}","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const ADM_LOCALE: InjectionToken<string> = new InjectionToken<string>('ADM_LOCALE');\r\nexport const ADM_BACKEND_URL: InjectionToken<string> = new InjectionToken<string>('ADM_BACKEND_URL');\r\nexport const ADM_MODULE_PATH: InjectionToken<string> = new InjectionToken<string>('ADM_MODULE_PATH');\r\nexport const ADM_CONVERSATIONS: InjectionToken<boolean> = new InjectionToken<boolean>('ADM_CONVERSATIONS');","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmAuditLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Search Application Audits\", [\"Ricerca Audit Applicativi\"]);\r\n super.set(\"en->it\", \"User\", [\"Utente\"]);\r\n super.set(\"en->it\", \"REST Call\", [\"Chiamata REST\"]);\r\n super.set(\"en->it\", \"Update\", [\"Aggiornamento\"]);\r\n super.set(\"en->it\", \"Route\", [\"Route\"]);\r\n super.set(\"en->it\", \"Action\", [\"Azione\"]);\r\n super.set(\"en->it\", \"HTTP Method\", [\"Metodo HTTP\"]);\r\n super.set(\"en->it\", \"Arguments\", [\"Argomenti\"]);\r\n super.set(\"en->it\", \"Object ID\", [\"ID Oggetto\"]);\r\n super.set(\"en->it\", \"Object Type\", [\"Tipo Oggetto\"]);\r\n super.set(\"en->it\", \"Object Data\", [\"Dati Oggetto\"]);\r\n super.set(\"en->it\", \"Loading Application Audits\", [\"Carico gli Audit dell'Applicazione\"]);\r\n super.set(\"en->it\", \"Date\", [\"Data\"]);\r\n super.set(\"en->it\", \"Address\", [\"Indirizzo\"]);\r\n super.set(\"en->it\", \"HTTP Response\", [\"Risposta HTTP\"]);\r\n super.set(\"en->it\", \"Application Error Code\", [\"Codice Errore Applicativo\"]);\r\n super.set(\"en->it\", \"Conversation ID\", [\"Cod. Conversation\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { InterComService, InboundMessageTypes } from \"@esfaenza/extensions\";\r\n\r\n// Applicazione\r\nimport { AuditsView } from \"../../models/components/AuditsView\";\r\nimport { KeyValue } from \"../../models/shared/KeyValue\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH, ADM_CONVERSATIONS } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmAuditLoc } from \"./adm_audits.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_audits\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmAuditLoc }],\r\n templateUrl: \"./adm_audits.component.html\"\r\n})\r\nexport class AdmAuditsComponent {\r\n\r\n public searchView: AuditsView = new AuditsView();\r\n public Actions: KeyValue[] = [];\r\n public HttpMethods: KeyValue[] = [];\r\n public searchInProgress: boolean = false;\r\n public storageSub: any;\r\n\r\n constructor(\r\n public lc: LocalizationService,\r\n private intercom: InterComService,\r\n private localStorage: PreferencesService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string,\r\n @Inject(ADM_CONVERSATIONS) public usesConversations: boolean) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n\r\n this.HttpMethods = [\r\n { id: \"GET\", description: \"GET\" },\r\n { id: \"POST\", description: \"POST\" },\r\n { id: \"PUT\", description: \"PUT\" },\r\n { id: \"PATCH\", description: \"PATCH\" },\r\n { id: \"DELETE\", description: \"DELETE\" }\r\n ];\r\n\r\n this.Actions = [\r\n { id: \"C\", description: this.lc.loc(\"REST Call\") },\r\n { id: \"U\", description: this.lc.loc(\"Update\") },\r\n { id: \"D\", description: this.lc.loc(\"Delete\") }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params[\"ignoreStorage\"]); });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n async Init(ignoreStorage) {\r\n let item = await this.localStorage.getItem<AuditsView>(\"HotAudittato\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/serveraudits`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotAudittato\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: AuditsView) {\r\n //Se ho la HotPotato vuol dire che sono appena tornato dall'edit/nuovo. Rifaccio la ricerca in base ai filtri precedenti\r\n //Altirmenti genero il modello nuovo normalmente\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerAudits\"], this.searchView);\r\n }\r\n else {\r\n this.searchView = new AuditsView();\r\n this.searchView.filterda = dayjs().add(-1, \"month\").format(this.lc.token(\"getSmallDateFormat\"));\r\n this.searchView.filtera = dayjs().format(this.lc.token(\"getSmallDateFormat\"));\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n this.searchInProgress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerAudits\"], this.searchView);\r\n }\r\n\r\n POSTGetProcesses(url: string, data: AuditsView) {\r\n this.http.post<AuditsView>(url, data).subscribe(t => {\r\n this.searchView = t;\r\n this.searchInProgress = false;\r\n this.localStorage.setItem(\"HotAudittato\", this.searchView).subscribe();\r\n });\r\n }\r\n}","export class KeyValue {\r\n constructor(public id: string, public description: string) { }\r\n}","import { AppSearch, GenericItem } from \"@esfaenza/es-table\";\r\n\r\nexport class ProcessesView extends AppSearch<GenericItem> {\r\n constructor() { super(); }\r\n\r\n filtertenant: string;\r\n filteruser: string;\r\n filterstate: string;\r\n filterglobal: boolean;\r\n filtertype: string;\r\n filterthreadtype: string;\r\n filterthreadstatus: string;\r\n filterinwait: boolean;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmWrkLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Consumer Group succesfully changed\", [\"Gruppo di Consumo modificato con successo\"]);\r\n super.set(\"en->it\", \"Errors changing Consumer Group\", [\"Errori nella modifica del Gruppo di Consumo\"]);\r\n super.set(\"en->it\", \"Change Consumer Group\", [\"Modifica Gruppo di Consumo\"]);\r\n super.set(\"en->it\", \"New Consumer Group\", [\"Nuovo Gruppo di Consumo\"]);\r\n super.set(\"en->it\", \"Thread Type\", [\"Tipo Thread\"]);\r\n super.set(\"en->it\", \"Thread Status\", [\"Stato Thread\"]);\r\n super.set(\"en->it\", \"Type\", [\"Tipo\"]);\r\n super.set(\"en->it\", \"State\", [\"Stato\"]);\r\n super.set(\"en->it\", \"In Wait\", [\"In Attesa\"]);\r\n super.set(\"en->it\", \"Global\", [\"Globale\"]);\r\n super.set(\"en->it\", \"Search Application Processes\", [\"Ricerca Processi Applicativi\"]);\r\n super.set(\"en->it\", \"Tenant\", [\"Operatore\"]);\r\n super.set(\"en->it\", \"Errors toggling Process Tracing\", [\"Errori nella modifica del Tracing del Processo\"]);\r\n super.set(\"en->it\", \"User\", [\"Utente\"]);\r\n super.set(\"en->it\", \"Loading Application Processes\", [\"Carico i Processi Applicativi\"]);\r\n super.set(\"en->it\", \"Activate Process Tracing\", [\"Attiva Tracing Processo\"]);\r\n super.set(\"en->it\", \"Deactivate Process Tracing\", [\"Disattiva Tracing Progetto\"]);\r\n super.set(\"en->it\", \"Kill Process\", [\"Ammazza Processo\"]);\r\n super.set(\"en->it\", \"Errors killing the Process\", [\"Errori durante la Kill del Processo\"]);\r\n super.set(\"en->it\", \"Process succesfully killed\", [\"Processo ucciso con successo\"]);\r\n super.set(\"en->it\", \"Confirm Process Kill\", [\"Conferma Terminazione del Processo\"]);\r\n super.set(\"en->it\", \"Are you sure you wish to kill the selected process? The associated user will be disconnected\", [\"Sei sicuro di voler Terminare il processo selezionato? L'utente relativo sara' disconnesso\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject, ViewChild } from \"@angular/core\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\nimport { NgForm } from \"@angular/forms\";\r\n\r\n// Configurazioni\r\nimport { InboundMessageTypes, InterComService, MessageService, UtilityService } from \"@esfaenza/extensions\";\r\nimport { EsTableOperationDefinition } from \"@esfaenza/es-table\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { ModalDirective } from \"ngx-bootstrap/modal\";\r\n\r\n// Applicazione\r\nimport { KeyValue } from \"../../models/shared/KeyValue\";\r\nimport { ProcessesView } from \"../../models/components/ProcessesView\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmWrkLoc } from \"./adm_wrk.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_wrk\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmWrkLoc }],\r\n templateUrl: \"./adm_wrk.component.html\"\r\n})\r\nexport class AdmWrkComponent {\r\n\r\n public searchView: ProcessesView = new ProcessesView();\r\n public DynamicOps: EsTableOperationDefinition[] = [];\r\n public storageSub: any;\r\n public valueToShow: string = \"\";\r\n\r\n public Types: KeyValue[] = [];\r\n public States: KeyValue[] = [];\r\n public ThreadTypes: KeyValue[] = [];\r\n public ThreadStatuses: KeyValue[] = [];\r\n\r\n constructor(\r\n private utiExts: UtilityService,\r\n private msgExts: MessageService,\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n\r\n this.DynamicOps = [\r\n new EsTableOperationDefinition(\"trace_on\", this.lc.loc(\"Activate Process Tracing\"), \"fa fa-circle text-danger\", \"\", \"trace_enabled\", \"N\"),\r\n new EsTableOperationDefinition(\"trace_off\", this.lc.loc(\"Deactivate Process Tracing\"), \"fa fa-circle text-success\", \"\", \"trace_enabled\", \"Y\"),\r\n new EsTableOperationDefinition(\"kill\", this.lc.loc(\"Kill Process\"), \"fa fa-ban text-danger\"),\r\n new EsTableOperationDefinition(\"change_cg\", this.lc.loc(\"Change Consumer Group\"), \"fa fa-edit text-info\")\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => {\r\n this.Init(params[\"ignoreStorage\"]);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n Init(ignoreStorage) {\r\n this.Types = [new KeyValue(\"USER\", \"USER\"), new KeyValue(\"BACKGROUND\", \"BACKGROUND\"), new KeyValue(\"JOB\", \"JOB\")];\r\n this.States = [new KeyValue(\"ACTIVE\", \"ACTIVE\"), new KeyValue(\"INACTIVE\", \"INACTIVE\"), new KeyValue(\"KILLED\", \"KILLED\")];\r\n this.ThreadTypes = [\"APITHREAD\", \"APIPUSHTHREAD\", \"BACKGROUNDTHREAD\", \"JOBTHREAD\", \"PARALLELSLAVETHREAD\"].map(t => new KeyValue(t, t));\r\n this.ThreadStatuses = [\"ACTIVE\", \"IDLE\", \"THROTTLING\", \"KILLED\"].map(t => new KeyValue(t, t));\r\n this.doInit(ignoreStorage);\r\n }\r\n\r\n async doInit(ignoreStorage) {\r\n let item = await this.localStorage.getItem<ProcessesView>(\"HotProcessato\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/serverworkers`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotProcessato\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: ProcessesView) {\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerWorkers\"], this.searchView);\r\n }\r\n else {\r\n this.searchView = new ProcessesView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n this.searchView.searchinprogress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerWorkers\"], this.searchView);\r\n }\r\n\r\n POSTGetProcesses(url: string, data: ProcessesView) {\r\n this.http.post<ProcessesView>(url, data).subscribe(t => {\r\n this.searchView = t;\r\n this.searchView.searchinprogress = false;\r\n this.localStorage.setItem(\"HotProcessato\", this.searchView).subscribe();\r\n });\r\n }\r\n\r\n back() {\r\n this.location.back();\r\n }\r\n\r\n onOperation(event: { id: string, item: any }) {\r\n switch (event.id) {\r\n case \"trace_on\": this.toggleTracing(event.item, true); break;\r\n case \"trace_off\": this.toggleTracing(event.item, false); break;\r\n case \"kill\": this.killProcess(event.item); break;\r\n case \"change_cg\": this.changeProcessCg(event.item); break;\r\n }\r\n }\r\n\r\n toggleTracing(process: any, tracing: boolean) {\r\n var pars = new HttpParams()\r\n .set(\"instanceid\", process.properties[\"inst_id\"] || process.properties[\"INST_ID\"])\r\n .set(\"sid\", process.properties[\"sid\"] || process.properties[\"SID\"])\r\n .set(\"serial\", process.properties[\"serial\"] || process.properties[\"SERIAL\"])\r\n .set(\"enable\", tracing.toString());\r\n this.http.get<string>(this.backend + Repository[\"GET_Adm_SetProcessTracing\"], pars).subscribe(t => {\r\n this.msgExts.manageStringResponse(t, \"\", this.lc.loc(\"Errors toggling Process Tracing\"), () => this.sendSearch());\r\n });\r\n }\r\n\r\n killProcess(process: any) {\r\n this.msgExts.simpleWarningWithChoice(\r\n this.lc.loc(\"Confirm Process Kill\"),\r\n this.lc.loc(\"Are you sure you wish to kill the selected process? The associated user will be disconnected\"),\r\n () => {\r\n var pars = new HttpParams()\r\n .set(\"instanceid\", process.properties[\"inst_id\"] || process.properties[\"INST_ID\"])\r\n .set(\"sid\", process.properties[\"sid\"] || process.properties[\"SID\"])\r\n .set(\"serial\", process.properties[\"serial\"] || process.properties[\"SERIAL\"]);\r\n this.http.get<string>(this.backend + Repository[\"GET_Adm_KillProcess\"], pars).subscribe(t => {\r\n this.msgExts.manageStringResponse(t, this.lc.loc(\"Process succesfully killed\"), this.lc.loc(\"Errors killing the Process\"), () => this.sendSearch());\r\n });\r\n });\r\n }\r\n\r\n //********************************************** Gestione modifica Consumer Group ***************************************\r\n\r\n newCg: string = \"\";\r\n CGs: KeyValue[] = [];\r\n CgDictionariesLoaded: boolean = false;\r\n ProcessOnEdit: any;\r\n\r\n @ViewChild(\"cgFrom\") cgFrom: NgForm;\r\n @ViewChild(\"dlgChangeCg\") dlgChangeCg: ModalDirective;\r\n\r\n changeProcessCg(process: any) {\r\n this.ProcessOnEdit = process;\r\n if (!this.CgDictionariesLoaded) {\r\n this.loadCgDictionaries();\r\n this.CgDictionariesLoaded = true;\r\n }\r\n this.setupChangeCg();\r\n this.dlgChangeCg.show();\r\n }\r\n\r\n loadCgDictionaries() {\r\n this.http.get<KeyValue[]>(this.backend + Repository[\"GET_Adm_GetConsumerGroups\"]).subscribe(t => this.CGs = t);\r\n }\r\n\r\n setupChangeCg() {\r\n this.utiExts.cleanForm(this.cgFrom)\r\n setTimeout(() => { this.newCg = \"\" });\r\n }\r\n\r\n doChangeCg() {\r\n var pars = new HttpParams()\r\n .set(\"instanceid\", this.ProcessOnEdit.properties[\"inst_id\"] || this.ProcessOnEdit.properties[\"INST_ID\"])\r\n .set(\"sid\", this.ProcessOnEdit.properties[\"sid\"] || this.ProcessOnEdit.properties[\"SID\"])\r\n .set(\"serial\", this.ProcessOnEdit.properties[\"serial\"] || this.ProcessOnEdit.properties[\"SERIAL\"])\r\n .set(\"consumer_group\", this.newCg);\r\n this.http.get<string>(this.backend + Repository[\"GET_Adm_ChangeProcessConsumerGroup\"], pars).subscribe(t => {\r\n this.msgExts.manageStringResponse(t, this.lc.loc(\"Consumer Group succesfully changed\"), this.lc.loc(\"Errors changing Consumer Group\"), () => this.sendSearch());\r\n });\r\n\r\n return true;\r\n }\r\n}","export const Locale: string = localStorage.getItem(\"LOCALE\") || myconfig.LOCALE;","export const ProfilerDataNode_loc = {\r\n 'Parent ID': { 'en-US': \"Parent ID\", 'it-IT': \"ID Padre\" },\r\n 'ID': { 'en-US': \"ID\", 'it-IT': \"ID\" },\r\n 'Description': { 'en-US': \"Description\", 'it-IT': \"Descrizione\" },\r\n 'Calls': { 'en-US': \"Calls\", 'it-IT': \"Chiamate\" },\r\n 'Time': { 'en-US': \"Time\", 'it-IT': \"Tempo\" },\r\n 'Peak Time': { 'en-US': \"Peak Time\", 'it-IT': \"Tempo Max\" },\r\n 'Min. Time': { 'en-US': \"Min. Time\", 'it-IT': \"Tempo Min\" },\r\n 'Avg. Time': { 'en-US': \"Avg. Time\", 'it-IT': \"Tempo Medio\" },\r\n 'Specific Time': { 'en-US': \"Specific Time\", 'it-IT': \"Tempo Specifico\" },\r\n 'Percentage': { 'en-US': \"Percentage\", 'it-IT': \"Percentuale\" },\r\n 'Calls for Period': { 'en-US': \"Calls for Period\", 'it-IT': \"Chiamate Periodo\" },\r\n 'Time for Period': { 'en-US': \"Time for Period\", 'it-IT': \"Tempo Periodo\" },\r\n 'Peak Time for Period': { 'en-US': \"Peak Time for Period\", 'it-IT': \"Tempo Max Periodo\" },\r\n 'Min. Time for Period': { 'en-US': \"Min. Time for Period\", 'it-IT': \"Tempo Min Periodo\" },\r\n 'Avg. Time for Period': { 'en-US': \"Avg. Time for Period\", 'it-IT': \"Tempo Medio Periodo\" },\r\n 'Specific Time for Period': { 'en-US': \"Specific Time for Period\", 'it-IT': \"Tempo Specifico Periodo\" },\r\n 'Percentage for Period': { 'en-US': \"Percentage for Period\", 'it-IT': \"Percentuale Periodo\" },\r\n 'Event Type Name': { 'en-US': \"Event Type Name\", 'it-IT': \"Nome Tipologia Evento\" },\r\n 'Wait Class Name': { 'en-US': \"Wait Class Name\", 'it-IT': \"Nome Classe Attesa\" }\r\n}","import { autoserialize } from \"cerialize\";\r\nimport { Export } from \"@esfaenza/extensions\";\r\n\r\nimport { Locale } from \"../shared/Locale\";\r\nimport { ProfilerDataNode_loc } from \"./ProfilerDataNode.loc\";\r\n\r\nexport class ProfilerDataNode {\r\n @Export(10, ProfilerDataNode_loc[\"Parent ID\"][Locale])\r\n @autoserialize parentid: string;\r\n @Export(20, ProfilerDataNode_loc[\"ID\"][Locale])\r\n @autoserialize id: string;\r\n @Export(30, ProfilerDataNode_loc[\"Description\"][Locale])\r\n @autoserialize description: string;\r\n @Export(40, ProfilerDataNode_loc[\"Calls\"][Locale])\r\n @autoserialize calls: number;\r\n @Export(50, ProfilerDataNode_loc[\"Time\"][Locale])\r\n @autoserialize time: number;\r\n @Export(60, ProfilerDataNode_loc[\"Peak Time\"][Locale])\r\n @autoserialize peaktime: number;\r\n @Export(70, ProfilerDataNode_loc[\"Min. Time\"][Locale])\r\n @autoserialize mintime: number;\r\n @Export(80, ProfilerDataNode_loc[\"Avg. Time\"][Locale])\r\n @autoserialize avgtime: number;\r\n @Export(90, ProfilerDataNode_loc[\"Specific Time\"][Locale])\r\n @autoserialize timewithoutchildren: number;\r\n @Export(100, ProfilerDataNode_loc[\"Percentage\"][Locale])\r\n @autoserialize percentage: number;\r\n @Export(110, ProfilerDataNode_loc[\"Calls for Period\"][Locale])\r\n @autoserialize snapdeltacalls: number;\r\n @Export(120, ProfilerDataNode_loc[\"Time for Period\"][Locale])\r\n @autoserialize snapdeltatime: number;\r\n @Export(130, ProfilerDataNode_loc[\"Peak Time for Period\"][Locale])\r\n @autoserialize snappeaktime: number;\r\n @Export(140, ProfilerDataNode_loc[\"Min. Time for Period\"][Locale])\r\n @autoserialize snapmintime: number;\r\n @Export(150, ProfilerDataNode_loc[\"Avg. Time for Period\"][Locale])\r\n @autoserialize snapavgtime: number;\r\n @Export(160, ProfilerDataNode_loc[\"Specific Time for Period\"][Locale])\r\n @autoserialize snaptimewithoutchildren: number;\r\n @Export(170, ProfilerDataNode_loc[\"Percentage for Period\"][Locale])\r\n @autoserialize snappercentage: number;\r\n @Export(180, ProfilerDataNode_loc[\"Event Type Name\"][Locale])\r\n @autoserialize eventtypename: string;\r\n @Export(190, ProfilerDataNode_loc[\"Wait Class Name\"][Locale])\r\n @autoserialize waitclassname: string;\r\n}","import { AppSearch } from \"@esfaenza/es-table\";\r\nimport { ProfilerDataNode } from \"./ProfilerDataNode\";\r\n\r\nexport class ProfilerDataNodesView extends AppSearch<ProfilerDataNode>{\r\n constructor() { super(); }\r\n\r\n filterfrom: string;\r\n filterto: string;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmProfilerComponentLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Server Profiler\", [\"Profiler del Server\"]);\r\n super.set(\"en->it\", \"Loading Data\", [\"Carico i Dati\"]);\r\n super.set(\"en->it\", \"ID\", [\"ID\"]);\r\n super.set(\"en->it\", \"Description\", [\"Descrizione\"]);\r\n super.set(\"en->it\", \"Calls\", [\"Chiamate\"]);\r\n super.set(\"en->it\", \"Time\", [\"Tempo\"]);\r\n super.set(\"en->it\", \"Peak Time\", [\"Tempo Max\"]);\r\n super.set(\"en->it\", \"Min. Time\", [\"Tempo Min\"]);\r\n super.set(\"en->it\", \"Avg. Time\", [\"Tempo Medio\"]);\r\n super.set(\"en->it\", \"Specific Time\", [\"Tempo Specifico\"]);\r\n super.set(\"en->it\", \"Percentage\", [\"Percentuale\"]);\r\n super.set(\"en->it\", \"Calls for Period\", [\"Chiamate Periodo\"]);\r\n super.set(\"en->it\", \"Time for Period\", [\"Tempo Periodo\"]);\r\n super.set(\"en->it\", \"Peak Time for Period\", [\"Tempo Max Periodo\"]);\r\n super.set(\"en->it\", \"Min. Time for Period\", [\"Tempo Min Periodo\"]);\r\n super.set(\"en->it\", \"Avg. Time for Period\", [\"Tempo Medio Periodo\"]);\r\n super.set(\"en->it\", \"Specific Time for Period\", [\"Tempo Specifico Periodo\"]);\r\n super.set(\"en->it\", \"Percentage for Period\", [\"Percentuale Periodo\"]);\r\n super.set(\"en->it\", \"Event Type Name\", [\"Nome Tipologia Evento\"]);\r\n super.set(\"en->it\", \"Wait Class Name\", [\"Nome Classe Attesa\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { ExportService, InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// Applicazione\r\nimport { ProfilerDataNode } from \"../../models/components/ProfilerDataNode\";\r\nimport { ProfilerDataNodesView } from \"../../models/components/ProfilerDataNodesView\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { NodeStats } from \"../../models/components/NodeStats\";\r\n\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmProfilerComponentLoc } from \"./adm_profiler.component.loc\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\n\r\n@Component({\r\n selector: \"adm_profiler\",\r\n providers: [{ provide: LocalizationService, useClass: AdmProfilerComponentLoc }],\r\n templateUrl: \"./adm_profiler.component.html\"\r\n})\r\nexport class AdmProfilerComponent {\r\n public searchView: ProfilerDataNodesView = new ProfilerDataNodesView();\r\n public storageSub: any;\r\n\r\n public NodeDetails: NodeStats;\r\n \r\n constructor(\r\n private expExts: ExportService,\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n private location: Location,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => {\r\n this.Init(params[\"ignoreStorage\"]);\r\n });\r\n }\r\n\r\n Init(ignoreStore) {\r\n this.doInit(ignoreStore);\r\n }\r\n\r\n async doInit(ignoreStorage) {\r\n let item = await this.localStorage.getItem<ProfilerDataNodesView>(\"HotSearchProfilato\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/profiler`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotSearchProfilato\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: ProfilerDataNodesView) {\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetItems(this.backend + Repository[\"POST_Adm_GetProfilerDataNodes\"], this.searchView);\r\n }\r\n else {\r\n this.searchView = new ProfilerDataNodesView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n this.searchView.searchinprogress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetItems(this.backend + Repository[\"POST_Adm_GetProfilerDataNodes\"], this.searchView);\r\n }\r\n\r\n POSTGetItems(url: string, data: ProfilerDataNodesView) {\r\n this.http.post<ProfilerDataNodesView>(url, data).subscribe(t => {\r\n this.searchView = t;\r\n this.searchView.searchinprogress = false;\r\n this.localStorage.setItem(\"HotSearchProfilato\", this.searchView).subscribe();\r\n });\r\n }\r\n\r\n prepareExport(dataCallBack) {\r\n var view = JSON.parse(JSON.stringify(this.searchView));\r\n view.page = 1;\r\n view.itemsperpageoverride = 9999999;\r\n this.http.post<ProfilerDataNodesView>(this.backend + Repository[\"POST_Adm_GetProfilerDataNodes\"], view).subscribe(t => {\r\n let items: ProfilerDataNode[] = this.expExts.deserializeForExport(t.items, ProfilerDataNode);\r\n dataCallBack(items);\r\n });\r\n }\r\n\r\n loadNodeDetails(nodeId: string) {\r\n this.NodeDetails = null;\r\n let pars = new HttpParams().set('nodeId', nodeId);\r\n this.http.get<NodeStats>(this.backend + Repository.GET_Adm_GetNodeStats, pars).subscribe(t => {\r\n this.NodeDetails = t;\r\n });\r\n }\r\n}","import { AppSearch } from \"@esfaenza/es-table\";\r\nimport { TopActivity } from \"./TopActivity\";\r\n\r\nexport class TopActivitiesDataView extends AppSearch<TopActivity>{\r\n constructor() { super(); }\r\n\r\n filterfrom: string;\r\n filterto: string;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmTopActivitieLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n super.set(\"en->it\", \"Active Sessions\", [\"Sessioni Attive\"]);\r\n super.set(\"en->it\", \"Top Nodes\", [\"Prime Istruzioni\"]);\r\n super.set(\"en->it\", \"Top Sessions\", [\"Prime Sessioni\"]);\r\n super.set(\"en->it\", \"Loading Data\", [\"Carico i Dati\"]);\r\n super.set(\"en->it\", \"Top Activities\", [\"Attivita' Principali\"]);\r\n super.set(\"en->it\", \"Node Description\", [\"Descrizione Nodo\"]);\r\n super.set(\"en->it\", \"Node\", [\"Nodo\"]);\r\n super.set(\"en->it\", \"Activity\", [\"Attivita'\"]);\r\n super.set(\"en->it\", \"Limit\", [\"Limite\"]);\r\n super.set(\"en->it\", \"Node Type\", [\"Tipo Nodo\"]);\r\n super.set(\"en->it\", \"User\", [\"Utente\"]);\r\n super.set(\"en->it\", \"Tenant\", [\"Tenant\"]);\r\n super.set(\"en->it\", \"Process\", [\"Processo\"]);\r\n super.set(\"en->it\", \"Update every\", [\"Aggiorna ogni\"]);\r\n super.set(\"en->it\", \"second/s\", [\"secondo/i\"]);\r\n super.set(\"en->it\", \"Maximum Threads\", [\"Thread Massimi\"]);\r\n super.set(\"en->it\", \"CPUs\", [\"CPU\"]);\r\n super.set(\"en->it\", \"Wait Class Name\", [\"Nome Classe Attesa\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { BaseChartComponent, DateValue, KeyValueColor, Limit, LineChartData, LineSerie, PieChartData } from \"@esfaenza/es-charts\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { DateService, InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n// Modelli\r\nimport { DirectorInfos } from \"../../models/components/DirectorInfos\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { TopActivitiesDataView } from \"../../models/components/TopActivitiesDataView\";\r\nimport { TopNode } from \"../../models/components/TopNode\";\r\nimport { TopSession } from \"../../models/components/TopSession\";\r\nimport { NodeStats } from \"../../models/components/NodeStats\";\r\n\r\n// Applicazione\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmTopActivitieLoc } from \"./topact_search.component.loc\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\n\r\n@Component({\r\n selector: \"topact_search\",\r\n providers: [\r\n { provide: LocalizationService, useClass: AdmTopActivitieLoc }\r\n ],\r\n templateUrl: \"./topact_search.component.html\"\r\n})\r\nexport class AdmTopActivitiesComponent {\r\n public searchView: TopActivitiesDataView = new TopActivitiesDataView();\r\n public storageSub: any;\r\n private LastDataPoint: any;\r\n\r\n public autoUpdate: boolean = false;\r\n public seconds: string = \"5\";\r\n\r\n private ChartInstance: BaseChartComponent;\r\n public NodeDetails: NodeStats;\r\n\r\n constructor(\r\n public dateExts: DateService,\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n private location: Location,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => {\r\n this.Init(params[\"ignoreStorage\"]);\r\n });\r\n }\r\n\r\n Init(ignoreStore) {\r\n this.doInit(ignoreStore);\r\n }\r\n\r\n async doInit(ignoreStorage) {\r\n let item = await this.localStorage.getItem<TopActivitiesDataView>(\"HotSearchTopAct\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/topact`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotSearchTopAct\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: TopActivitiesDataView) {\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetItems(this.backend + Repository.POST_Adm_GetTopActivities, this.searchView, false);\r\n }\r\n else {\r\n this.searchView = new TopActivitiesDataView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n sendSearch(resetPage: boolean = true, update: boolean = false, searchViewOverride: TopActivitiesDataView = null) {\r\n this.searchView.searchinprogress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetItems(this.backend + Repository.POST_Adm_GetTopActivities, searchViewOverride ?? this.searchView, update);\r\n }\r\n\r\n POSTGetItems(url: string, data: TopActivitiesDataView, update: boolean) {\r\n\r\n this.http.post<TopActivitiesDataView>(url, data).subscribe(async (t) => {\r\n //Se sono in modalità di update non devo toccare la searchView attuale se non per il searchinprogress che viene messo dall'es table\r\n if (!update) {\r\n this.searchView = t;\r\n this.localStorage.setItem(\"HotSearchTopAct\", this.searchView).subscribe();\r\n }\r\n var dirinfos = await this.getDirectorInfos();\r\n this.searchView.searchinprogress = false;\r\n this.reviewBindings(update, t, dirinfos);\r\n });\r\n }\r\n\r\n getDirectorInfos(): Promise<DirectorInfos> {\r\n return this.http.get<DirectorInfos>(this.backend + Repository.GET_Adm_GetInfos).pipe(map(res => { return res; })).toPromise();\r\n }\r\n\r\n loadNodeDetails(nodeId: string) {\r\n this.NodeDetails = null;\r\n let pars = new HttpParams().set('nodeId', nodeId);\r\n this.http.get<NodeStats>(this.backend + Repository.GET_Adm_GetNodeStats, pars).subscribe(t => {\r\n this.NodeDetails = t;\r\n });\r\n }\r\n\r\n // **************************************************** Trasformazione da searchview con unico elemento con tutto ai 3 elementi:\r\n // **************************************************** Grafico, TopNodes e TopSessions\r\n TopActiveSessions: LineChartData;\r\n TopNodes: TopNode[];\r\n TopSessions: TopSession[];\r\n DirInfos: DirectorInfos;\r\n seriesPropertiesMapping: { [index: string]: LineSerie } = {};\r\n propertiesSeriesMapping: { [index: string]: string } = {\r\n [\"cputime\"]: \"CPU\",\r\n [\"waittime\"]: \"Wait\",\r\n [\"scripttime\"]: \"Scripting\",\r\n [\"dbtime\"]: \"DB\",\r\n [\"nettime\"]: \"Network\",\r\n [\"throttletime\"]: \"Throttling\",\r\n [\"sleeptime\"]: \"Sleep\",\r\n [\"iotime\"]: \"IO\"\r\n };\r\n\r\n reviewBindings(update: boolean, searchViewOverride?, dirInfos?: DirectorInfos) {\r\n let reference = (searchViewOverride ?? this.searchView).items[0];\r\n this.TopNodes = reference.topnodes;\r\n this.TopSessions = reference.topsessions;\r\n this.DirInfos = dirInfos;\r\n\r\n if (!reference.actsessions || reference.actsessions.length == 0) {\r\n this.TopActiveSessions = null;\r\n return;\r\n }\r\n\r\n let series: LineSerie[] = [];\r\n let props = Object.keys(reference.actsessions[0]);\r\n for (let i = 0; i < props.length; i++) {\r\n if (props[i] != 'sampletime') {\r\n let s = new LineSerie(this.propertiesSeriesMapping[props[i]], [], null, null, \"sessions\");\r\n series.push(s);\r\n this.seriesPropertiesMapping[props[i]] = s;\r\n }\r\n }\r\n\r\n for (let i = 0; i < reference.actsessions.length; i++) {\r\n let itemref = reference.actsessions[i];\r\n let theD = new Date(itemref.sampletime);\r\n\r\n for (let i = 0; i < props.length; i++)\r\n if (props[i] != 'sampletime' && (!update || this.dateExts.getDateConvertion(theD).isAfter(this.LastDataPoint)))\r\n this.seriesPropertiesMapping[props[i]].values.push(new DateValue(theD, itemref[props[i]]));\r\n }\r\n\r\n if (update && this.ChartInstance) {\r\n let data = new LineChartData(series, new Limit(dirInfos?.threads, this.lc.loc(\"Maximum Threads\")));\r\n if (series.some(t => t.values.length > 0)) {\r\n this.ChartInstance.addData(data);\r\n this.LastDataPoint = series.map(t => dayjs.max(t.values.map(v => this.dateExts.getDateConvertion(v.d))))[0];\r\n }\r\n }\r\n else {\r\n this.TopActiveSessions = new LineChartData(series, new Limit(dirInfos?.threads, this.lc.loc(\"Maximum Threads\")));\r\n this.LastDataPoint = series.map(t => dayjs.max(t.values.map(v => this.dateExts.getDateConvertion(v.d))))[0];\r\n }\r\n }\r\n\r\n // #region Gestione update automatico\r\n updateTimer: any;\r\n autoUpdateChanged() {\r\n if (!/^[1-9]\\d*$/.test(this.seconds))\r\n this.seconds = '10';\r\n const secondsInMs = parseInt(this.seconds, null) * 1000;\r\n if (this.autoUpdate) {\r\n this.sendSearch(false, true);\r\n this.updateTimer = setInterval(() => { this.sendSearch(false, true); }, secondsInMs);\r\n }\r\n else\r\n clearInterval(this.updateTimer);\r\n }\r\n // #endregion\r\n\r\n private from: Date;\r\n private to: Date;\r\n\r\n dataSelectionChanged(event: { from: Date, to: Date, initial: boolean }) {\r\n this.from = event.initial ? (this.searchView.filterfrom ? this.dateExts.getDateConvertion(this.searchView.filterfrom).toDate() : \"\") : event.from;\r\n this.to = event.initial ? (this.searchView.filterto ? this.dateExts.getDateConvertion(this.searchView.filterto).toDate() : \"\") : event.to;\r\n\r\n var pseudoSearchView: TopActivitiesDataView = JSON.parse(JSON.stringify(this.searchView));\r\n pseudoSearchView.filterfrom = this.from ? dayjs(this.from).format(this.lc.token(\"getFullDateDisplayFormat\")) : \"\";\r\n pseudoSearchView.filterto = this.to ? dayjs(this.to).format(this.lc.token(\"getFullDateDisplayFormat\")) : \"\";\r\n this.sendSearch(true, true, pseudoSearchView);\r\n }\r\n\r\n onChartLoaded(chart: BaseChartComponent) {\r\n this.ChartInstance = chart;\r\n chart.Chart.events.on(\"ready\", () => {\r\n (<am4charts.XYChart>chart.Chart).xAxes.each(x => x.zoom({ start: 0, end: 1 }, true, true));\r\n (<am4charts.XYChart>chart.Chart).yAxes.each(y => y.zoom({ start: 0, end: 1 }, true, true));\r\n setTimeout(() => {\r\n (<am4charts.XYChart>chart.Chart).xAxes.each(x => x.zoom({ start: 0, end: 1 }, true, true));\r\n (<am4charts.XYChart>chart.Chart).yAxes.each(y => y.zoom({ start: 0, end: 1 }, true, true));\r\n\r\n // 500 millisecondi è più o meno il tempo di prima animazione del grafico. Finito questo si resetta lo zoom\r\n }, 500);\r\n });\r\n }\r\n}","import { AppSearch, GenericItem } from \"@esfaenza/es-table\";\r\n\r\nexport class LocksView extends AppSearch<GenericItem>{\r\n constructor() { super(); }\r\n\r\n filtersid: string;\r\n filterlock: string;\r\n filterglobal: boolean;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmEnqLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n super.set(\"en->it\", \"Search Application Locks\", [\"Ricerca Lock Applicativi\"]);\r\n super.set(\"en->it\", \"Name\", [\"Nome\"]);\r\n super.set(\"en->it\", \"Loading Application Locks\", [\"Carico i Lock Applicativi\"]);\r\n super.set(\"en->it\", \"Global\", [\"Globale\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { ExportService, InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// Applicazione\r\nimport { LocksView } from \"../../models/components/LocksView\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmEnqLoc } from \"./adm_enq.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_enq\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmEnqLoc }],\r\n templateUrl: \"./adm_enq.component.html\"\r\n})\r\nexport class AdmEnqComponent {\r\n public locksView: LocksView = new LocksView();\r\n public storageSub: any;\r\n\r\n constructor(\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n public expExts: ExportService,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params[\"ignoreStorage\"]); });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n async Init(ignoreStorage) {\r\n let item = await this.localStorage.getItem<LocksView>(\"HotEnqueue\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/serverenqueues`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotEnqueue\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: LocksView) {\r\n if (HotPotato) {\r\n this.locksView = HotPotato;\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerLocks\"], this.locksView);\r\n }\r\n else {\r\n this.locksView = new LocksView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n if (resetPage)\r\n this.locksView.page = 1;\r\n\r\n this.POSTGetProcesses(this.backend + Repository[\"POST_Adm_GetServerLocks\"], this.locksView);\r\n }\r\n\r\n POSTGetProcesses(url: string, data: LocksView) {\r\n this.http.post<LocksView>(url, data).subscribe(t => {\r\n this.locksView = t;\r\n this.localStorage.setItem(\"HotEnqueue\", this.locksView).subscribe();\r\n });\r\n }\r\n}","import { AppSearch } from \"@esfaenza/es-table\";\r\nimport { Metric } from \"./Metric\";\r\n\r\nexport class MetricsView extends AppSearch<Metric> {\r\n constructor() { super(); }\r\n\r\n filterfrom: string;\r\n filterto: string;\r\n filtersid: string;\r\n filterserial: string;\r\n filtermetrics: string[];\r\n filterrealtime: boolean;\r\n fitlerinstance: string;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmMetricsLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n super.set(\"en->it\", \"System Metrics\", [\"Metriche di Sistema\"]);\r\n super.set(\"en->it\", \"Session ID\", [\"Cod. Sessione\"]);\r\n super.set(\"en->it\", \"Session Serial\", [\"Seriale Sessione\"]);\r\n super.set(\"en->it\", \"Filter Metrics...\", [\"Filtra Metriche...\"]);\r\n super.set(\"en->it\", \"Loading Data\", [\"Carico i Dati\"]);\r\n super.set(\"en->it\", \"Update every\", [\"Aggiorna ogni\"]);\r\n super.set(\"en->it\", \"second/s\", [\"secondo/i\"]);\r\n super.set(\"en->it\", \"Metrics Instance\", [\"Istanza Metriche\"]);\r\n }\r\n}","// Angular\r\nimport { HttpParams } from \"@angular/common/http\";\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { BaseChartComponent } from \"@esfaenza/es-charts\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { DateService, InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\n\r\n// Applicazione\r\nimport { KeyValue } from \"../../models/shared/KeyValue\";\r\nimport { Metric } from \"../../models/components/Metric\";\r\nimport { MetricChart } from \"../../models/components/MetricChart\";\r\nimport { MetricsView } from \"../../models/components/MetricsView\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmMetricsLoc } from \"./metrics_search.component.loc\";\r\n\r\n@Component({\r\n selector: \"metrics_search\",\r\n providers: [\r\n { provide: LocalizationService, useClass: AdmMetricsLoc }\r\n ],\r\n templateUrl: \"./metrics_search.component.html\"\r\n})\r\nexport class AdmMetricsComponent {\r\n\r\n public Metrics: Metric[];\r\n private MetricsChartCache: { [name: string]: { chart: BaseChartComponent, lastTs: Date } } = {};\r\n\r\n public searchView: MetricsView = new MetricsView();\r\n public storageSub: any;\r\n\r\n public autoUpdate: boolean = false;\r\n public seconds: string = \"5\";\r\n\r\n constructor(\r\n public dateExts: DateService,\r\n public lc: LocalizationService,\r\n private localStorage: PreferencesService,\r\n private location: Location,\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.storageSub = this.route.queryParams.subscribe(params => {\r\n this.Init(params[\"ignoreStorage\"]);\r\n });\r\n }\r\n\r\n Init(ignoreStore) {\r\n this.doInit(ignoreStore);\r\n }\r\n\r\n dateChanged() {\r\n // Pulizia di tutti i parametri di ricerca dipendenti dalle date\r\n this.metricsToShow = [];\r\n this.Metrics = [];\r\n this.instanceRequired = false;\r\n this.Instances = [];\r\n this.selectedInstance = \"\";\r\n this.searchView.filtermetrics = [];\r\n\r\n var pars = new HttpParams().set(\"from\", this.searchView.filterfrom || \"\").set(\"to\", this.searchView.filterto || \"\")\r\n this.http.get<Metric[]>(this.backend + Repository[\"GET_Adm_GetMetrics\"], pars).subscribe(t => this.Metrics = t);\r\n }\r\n\r\n async doInit(ignoreStorage) {\r\n let item = await this.localStorage.getItem<MetricsView>(\"HotSearchMetrics\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/metrics`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotSearchMetrics\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: MetricsView) {\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetItems(this.backend + Repository[\"POST_Adm_GetMetrics\"], this.searchView, false);\r\n }\r\n else {\r\n this.searchView = new MetricsView();\r\n this.sendSearch();\r\n }\r\n this.dateChanged();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n sendSearch(resetPage: boolean = true, update: boolean = false, searchViewOverride: MetricsView = null) {\r\n if (!update)\r\n this.MetricsChartCache = {};\r\n\r\n this.searchView.searchinprogress = true;\r\n // Questa ricerca prende i nomi distinct delle metriche quindi devo prendere tutto per forza\r\n this.searchView.itemsperpageoverride = 999999;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.POSTGetItems(this.backend + Repository[\"POST_Adm_GetMetrics\"], searchViewOverride ?? this.searchView, update);\r\n }\r\n\r\n public Instances: KeyValue[] = []\r\n public selectedInstance = \"\";\r\n public instanceRequired: boolean = false;\r\n public metricsToShow: Metric[] = [];\r\n\r\n POSTGetItems(url: string, data: MetricsView, update: boolean) {\r\n data.filterrealtime = update ? data.filterrealtime : !(!!data.filterfrom || !!data.filterto);\r\n\r\n this.http.post<MetricsView>(url, data).subscribe(async (t) => {\r\n //Se sono in modalità di update non devo toccare la searchView attuale se non per il searchinprogress che viene messo dall'es table\r\n if (!update) {\r\n this.selectedInstance = \"\";\r\n this.metricsToShow = [];\r\n this.searchView = t;\r\n this.searchView.items.forEach(m => {\r\n if (!this.Instances.find(t => t.id == m.instance))\r\n this.Instances.push(new KeyValue(m.instance, m.instance));\r\n });\r\n this.instanceRequired = this.Instances.length > 1;\r\n if (this.Instances.length == 1) {\r\n this.selectedInstance = this.Instances[0].id;\r\n this.instanceSelected();\r\n }\r\n this.localStorage.setItem(\"HotSearchMetrics\", this.searchView).subscribe();\r\n }\r\n else {\r\n // Per ogni grafico di ogni metrica aggiungo tutti i valori che sono DOPO all'ultimo ts registrato per quel grafico\r\n t.items.forEach(m => {\r\n m.values.forEach(c => {\r\n let refm = this.MetricsChartCache[this.metricKey(m, c)];\r\n if (refm) {\r\n c.series.forEach(s => { s.values = s.values.filter(v => this.dateExts.getDateConvertion(v.d).isAfter(refm.lastTs)); });\r\n if (c.series.some(t => t.values.length > 0)) {\r\n refm.lastTs = c.series.map(t => dayjs.max(t.values.map(v => this.dateExts.getDateConvertion(v.d))))[0];\r\n refm.chart.addData(c);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n this.searchView.searchinprogress = false;\r\n });\r\n }\r\n\r\n instanceSelected() {\r\n if (!this.selectedInstance)\r\n return;\r\n\r\n this.metricsToShow = this.searchView.items.filter(t => t.instance == this.selectedInstance);\r\n }\r\n\r\n linkChartToMetric(metric: Metric, metricChart: MetricChart, chartComp: BaseChartComponent) {\r\n this.MetricsChartCache[this.metricKey(metric, metricChart)] = { chart: chartComp, lastTs: metricChart.series.map(t => dayjs.max(t.values.map(v => this.dateExts.getDateConvertion(v.d))))[0] };\r\n }\r\n\r\n private metricKey(metric: Metric, value: MetricChart): string {\r\n return metric.name + \" - \" + value.xtitle + \" - \" + metric.instance;\r\n }\r\n\r\n // #region Gestione update automatico\r\n updateTimer: any;\r\n autoUpdateChanged() {\r\n if (!/^[1-9]\\d*$/.test(this.seconds))\r\n this.seconds = '10';\r\n const secondsInMs = parseInt(this.seconds, null) * 1000;\r\n if (this.autoUpdate) {\r\n this.sendSearch(false, true);\r\n this.updateTimer = setInterval(() => { this.sendSearch(false, true); }, secondsInMs);\r\n }\r\n else\r\n clearInterval(this.updateTimer);\r\n }\r\n // #endregion\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmLogsLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n super.set(\"en->it\", \"Server Logs\", [\"Log del Server\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\n\r\n// Applicazione\r\nimport { ADM_BACKEND_URL } from \"../../tokens\";\r\nimport { Repository } from \"../../models/externals/Repository\";\r\n\r\n// Localizzazione\r\nimport { AdmLogsLoc } from \"./adm_logs.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_logs\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmLogsLoc }],\r\n templateUrl: \"./adm_logs.component.html\"\r\n})\r\nexport class AdmLogsComponent {\r\n public Log: string;\r\n\r\n constructor(\r\n private intercom: InterComService,\r\n private http: HTTPService,\r\n private lc: LocalizationService,\r\n private route: ActivatedRoute,\r\n @Inject(ADM_BACKEND_URL) private backend: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.http.get<string>(this.backend + Repository[\"GET_Adm_GetServerLogs\"]).subscribe(t => { this.Log = t; });\r\n }\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class NodeDetailLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Active Sessions\", [\"Sessioni Attive\"]);\r\n super.set(\"en->it\", \"Activity Node Details\", [\"Dettaglio Attività Nodo\"]);\r\n super.set(\"en->it\", \"Event Type\", [\"Tipo Evento\"]);\r\n super.set(\"en->it\", \"Elapsed (With Children)\", [\"Tempo Trascorso (Con Figli)\"]);\r\n super.set(\"en->it\", \"Wait Class\", [\"Classe Attesa\"]);\r\n super.set(\"en->it\", \"Elapsed (No Children)\", [\"Tempo Trascorso\"]);\r\n super.set(\"en->it\", \"Wait Stack\", [\"Stack di Attesa\"]);\r\n super.set(\"en->it\", \"Resources Usage\", [\"Utilizzo Risorse\"]);\r\n super.set(\"en->it\", \"Executions\", [\"Esecuzioni\"]);\r\n\t\tsuper.set(\"en->it\", \"Event detail\", [\"Dettaglio evento\"]);\r\n }\r\n}","// Angular\r\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { KeyValueColor, LineChartData, LineSerie, PieChartData } from \"@esfaenza/es-charts\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\n// Applicazione\r\nimport { NodeStats } from \"../../models/components/NodeStats\";\r\n\r\n// Localizzazione\r\nimport { NodeDetailLoc } from \"./node_detail.component.loc\";\r\n\r\n@Component({\r\n selector: \"node-detail\",\r\n viewProviders: [{ provide: LocalizationService, useClass: NodeDetailLoc }],\r\n templateUrl: \"./node_detail.component.html\"\r\n})\r\nexport class NodeDetailComponent {\r\n\r\n @Input() NodeDetails: NodeStats;\r\n\r\n @Output() onClose: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n \r\n constructor(public lc: LocalizationService) { }\r\n\r\n ngOnInit() {\r\n let serie = new LineSerie(this.lc.loc(\"Active Sessions\"), this.NodeDetails.activesessions);\r\n this.NodeDetails.sessionchart = new LineChartData([serie]);\r\n this.NodeDetails.loadchart = new PieChartData([\r\n new KeyValueColor(\"CPU\", this.NodeDetails.cpuperc),\r\n new KeyValueColor(\"Wait\", this.NodeDetails.waitperc),\r\n new KeyValueColor(\"DB\", this.NodeDetails.dbperc),\r\n new KeyValueColor(\"Script\", this.NodeDetails.scriptperc),\r\n new KeyValueColor(\"Throttle\", this.NodeDetails.throttleperc),\r\n new KeyValueColor(\"Sleep\", this.NodeDetails.sleepperc),\r\n new KeyValueColor(\"Networking\", this.NodeDetails.networkperc),\r\n new KeyValueColor(\"IO\", this.NodeDetails.ioperc)\r\n ]);\r\n }\r\n\r\n closeDialog() {\r\n this.onClose.emit(true);\r\n }\r\n}","import { AppSearch, GenericItem } from \"@esfaenza/es-table\";\r\n\r\nexport class DynamicViewsView extends AppSearch<GenericItem> {\r\n constructor() { super(); }\r\n\r\n filtername: string;\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\nimport { ADM_LOCALE } from \"../../tokens\";\r\n\r\n@Injectable()\r\nexport class AdmDynamicViewsLoc extends LocalizationService {\r\n constructor(@Inject(ADM_LOCALE) LOC_LOCALE: string) {\r\n super(LOC_LOCALE);\r\n\r\n super.set(\"en->it\", \"Search Application Dynamic Views\", [\"Ricerca Viste Dinamiche Applicative\"]);\r\n super.set(\"en->it\", \"Name\", [\"Nome\"]);\r\n super.set(\"en->it\", \"Loading Application Dynamic Views\", [\"Carico le Viste Dinamiche Applicative\"]);\r\n super.set(\"en->it\", \"View Name is mandatory for search operations\", [\"Il nome della vista è obbligatorio per le operazioni di ricerca\"]);\r\n super.set(\"en->it\", \"No element found for Dynamic View\", [\"Nessun elemento trovato per la vista dinamica\"]);\r\n }\r\n}","// Angular\r\nimport { Component, Inject } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Location } from \"@angular/common\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { PreferencesService } from \"@esfaenza/preferences\";\r\nimport { InboundMessageTypes, InterComService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\nimport { AppSearch } from \"@esfaenza/es-table\";\r\n\r\n// Applicazione\r\nimport { Repository } from \"../../models/externals/Repository\";\r\nimport { DynamicViewsView } from \"../../models/components/DynamicViewsView\";\r\nimport { KeyValue } from \"../../models/shared/KeyValue\";\r\nimport { ADM_BACKEND_URL, ADM_MODULE_PATH } from \"../../tokens\";\r\n\r\n// Localizzazione\r\nimport { AdmDynamicViewsLoc } from \"./adm_dynamic_views.component.loc\";\r\n\r\n@Component({\r\n selector: \"adm_dynamic_views\",\r\n viewProviders: [{ provide: LocalizationService, useClass: AdmDynamicViewsLoc }],\r\n templateUrl: \"./adm_dynamic_views.component.html\"\r\n})\r\nexport class AdmDynamicViewsComponent {\r\n\r\n public searchView: DynamicViewsView = new DynamicViewsView();\r\n public Names: KeyValue[] = [];\r\n public storageSub: any;\r\n public badSearch: boolean = false;\r\n\r\n public currentName: string = \"\";\r\n\r\n // Staccato dalla view perché deve essere distrutta e ricreata di continuo\r\n public filterName:string = \"\";\r\n\r\n constructor(\r\n public lc: LocalizationService,\r\n private intercom: InterComService,\r\n private localStorage: PreferencesService,\r\n private http: HTTPService,\r\n private route: ActivatedRoute,\r\n private location: Location,\r\n @Inject(ADM_BACKEND_URL) private backend: string,\r\n @Inject(ADM_MODULE_PATH) private mod: string) {\r\n\r\n this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data[\"title\"]) });\r\n }\r\n\r\n ngOnInit() {\r\n this.http.get<KeyValue[]>(Repository.GET_Adm_GetDynamicViews).subscribe(t => { this.Names = t });\r\n this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params[\"ignoreStorage\"]); });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.storageSub)\r\n this.storageSub.unsubscribe();\r\n }\r\n\r\n async Init(ignoreStorage) {\r\n let item = await this.localStorage.getItem<DynamicViewsView>(\"HotDinamitato\").toPromise();\r\n if (!ignoreStorage && item) {\r\n this.init(item);\r\n } else {\r\n this.init(null);\r\n this.location.replaceState(`/pages/${this.mod}/serverviews`);\r\n this.route.snapshot.queryParams = [];\r\n await this.localStorage.removeItem(\"HotDinamitato\").toPromise();\r\n }\r\n }\r\n\r\n init(HotPotato: DynamicViewsView) {\r\n //Se ho la HotPotato vuol dire che sono appena tornato dall'edit/nuovo. Rifaccio la ricerca in base ai filtri precedenti\r\n //Altirmenti genero il modello nuovo normalmente\r\n if (HotPotato) {\r\n this.searchView = HotPotato;\r\n this.POSTGetItems(this.backend + Repository.POST_Adm_GetDynamicViewData, this.searchView);\r\n }\r\n else {\r\n this.searchView = new DynamicViewsView();\r\n this.sendSearch();\r\n }\r\n }\r\n\r\n sendSearch(resetPage: boolean = true) {\r\n this.searchView.searchinprogress = true;\r\n if (resetPage)\r\n this.searchView.page = 1;\r\n\r\n this.searchView.filtername = this.filterName;\r\n this.POSTGetItems(this.backend + Repository.POST_Adm_GetDynamicViewData, this.searchView);\r\n }\r\n\r\n POSTGetItems(url: string, data: DynamicViewsView) {\r\n if (!this.searchView.filtername) {\r\n this.badSearch = true;\r\n AppSearch.reset(this.searchView);\r\n\r\n //Aggiorno il riferimento per refreshare la es-table\r\n this.searchView = JSON.parse(JSON.stringify(this.searchView));\r\n return;\r\n }\r\n else\r\n this.badSearch = false;\r\n\r\n // Per force-resettare l'estable\r\n if (this.currentName != this.searchView.filtername) {\r\n this.currentName = this.searchView.filtername;\r\n this.searchView = null;\r\n }\r\n\r\n this.http.post<DynamicViewsView>(url, data).subscribe(t => {\r\n this.searchView = t;\r\n this.searchView.searchinprogress = false;\r\n this.localStorage.setItem(\"HotDinamitato\", this.searchView).subscribe();\r\n });\r\n }\r\n\r\n}","// Angular\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({ name: 'format_time' })\r\nexport class FormatTimePipe implements PipeTransform {\r\n\r\n constructor() { }\r\n\r\n transform(value: number | string) {\r\n return this.secondsToHms(value);\r\n }\r\n\r\n secondsToHms(d: number | string): string {\r\n d = Number(d);\r\n var h = Math.floor(d / 3600);\r\n var m = Math.floor(d % 3600 / 60);\r\n var s = Math.floor(d % 3600 % 60);\r\n \r\n var hDisplay = h > 0 ? h + \" h, \" : \"\";\r\n var mDisplay = m > 0 ? m + \" min, \" : \"\";\r\n var sDisplay = s > 0 ? s + \" sec\" : \"\";\r\n return hDisplay + mDisplay + sDisplay; \r\n }\r\n}","/** Chiave di questo modulo, da utilizzare per i messaggi */\r\nexport const MK_ADM = \"EsAdminModule\";\r\n\r\n/** Messaggi gestiti da questo modulo */\r\nexport enum AdmMessageTypes{\r\n Message\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { InterComService, InterComMessage } from \"@esfaenza/extensions\";\r\n\r\n// Modelli\r\nimport { AdmMessageTypes, MK_ADM } from \"./admin-module-messages\";\r\n\r\n@Injectable()\r\nexport class AdminModuleCommService {\r\n\r\n constructor(private intercom: InterComService) { }\r\n\r\n public register() {\r\n this.intercom.register(MK_ADM);\r\n this.intercom.outbounds[MK_ADM].subscribe((t: InterComMessage) => { this.handleOutbound(t.type, t.message); });\r\n }\r\n\r\n private handleOutbound(type: AdmMessageTypes, message: any) {\r\n switch (type) {\r\n case AdmMessageTypes.Message:\r\n if (myconfig.DEBUG_MODE)\r\n console.log(\"@admin-module outbound message: \" + message);\r\n break;\r\n }\r\n }\r\n}","// Angular\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule } from \"@angular/core\";\nimport { RouterModule } from \"@angular/router\";\n\n// Material\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDayjsDateModule } from \"@esfaenza/material-dayjs-adapter\";\nimport { MatInputModule } from \"@angular/material/input\";\n\n// Libs\nimport { NgxMatDatetimePickerModule } from '@angular-material-components/datetime-picker';\nimport { ModalModule } from \"ngx-bootstrap/modal\";\nimport { CsvModule } from \"@ctrl/ngx-csv\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\n\n// Esfaenza\n import { EsTableModule } from \"@esfaenza/es-table\";\n import { FormsAndValidationsModule } from \"@esfaenza/forms-and-validations\";\n import { EsChartsModule } from \"@esfaenza/es-charts\";\n import { EsGertrudeModule } from \"@esfaenza/gertrude\";\n import { LocalizationModule } from \"@esfaenza/localizations\";\n import { ContextMenuModule } from \"@esfaenza/ngx-contextmenu\";\n\n// Components\nimport { AdmAuditsComponent } from \"./components/audits/adm_audits.component\";\nimport { AdmWrkComponent } from \"./components/workers/adm_wrk.component\";\nimport { AdmProfilerComponent } from \"./components/profiler/adm_profiler.component\";\nimport { AdmTopActivitiesComponent } from \"./components/topact/topact_search.component\";\nimport { AdmEnqComponent } from \"./components/enqueues/adm_enq.component\";\nimport { AdmMetricsComponent } from \"./components/metrics/metrics_search.component\";\nimport { AdmLogsComponent } from \"./components/logs/adm_logs.component\";\nimport { NodeDetailComponent } from \"./components/_shared/node_detail.component\";\nimport { AdmDynamicViewsComponent } from \"./components/dynamic_views/adm_dynamic_views.component\";\n\n// Pipes\nimport { FormatTimePipe } from \"./pipes/format_time.pipe\";\n\n// Communication Service\nimport { AdminModuleCommService } from \"./admin-module.comms.service\";\n\n// Tokens\nimport { ADM_BACKEND_URL, ADM_CONVERSATIONS, ADM_LOCALE } from \"./tokens\";\n\nexport const routeConfig = [\n {\n path: \"\", children: [\n { path: \"serverworkers\", component: AdmWrkComponent, data: { title: \"Search Application Processes\", internalNavigation: false } },\n { path: \"profiler\", component: AdmProfilerComponent, data: { title: \"Server Profiler\", internalNavigation: false } },\n { path: \"topact\", component: AdmTopActivitiesComponent, data: { title: \"Top Activities\", internalNavigation: false } },\n { path: \"metrics\", component: AdmMetricsComponent, data: { title: \"System Metrics\", internalNavigation: false } },\n { path: \"serverlogs\", component: AdmLogsComponent, data: { title: \"Server Logs\", internalNavigation: false } },\n { path: \"serveraudits\", component: AdmAuditsComponent, data: { title: \"Search Application Audits\", internalNavigation: false } },\n { path: \"serverenqueues\", component: AdmEnqComponent, data: { title: \"Search Application Locks\", internalNavigation: false } },\n { path: \"serverviews\", component: AdmDynamicViewsComponent, data: { title: \"Search Application Dynamic Views\", internalNavigation: false } }\n ]\n }\n];\n\nconst MODULES = [\n // Base\n CommonModule,\n FormsModule,\n\n // Material\n MatDatepickerModule,\n MatDayjsDateModule,\n MatIconModule,\n MatInputModule,\n\n // Bootstrap\n ModalModule,\n TooltipModule,\n BsDropdownModule,\n CsvModule,\n\n // Esfaenza e componenti visuali\n ContextMenuModule,\n LocalizationModule,\n EsTableModule,\n FormsAndValidationsModule,\n EsGertrudeModule,\n EsChartsModule,\n NgxMatDatetimePickerModule,\n\n RouterModule.forChild(routeConfig),\n];\n\nconst COMPONENTS = [\n AdmWrkComponent,\n AdmProfilerComponent,\n AdmTopActivitiesComponent,\n AdmDynamicViewsComponent,\n AdmLogsComponent,\n AdmAuditsComponent,\n AdmEnqComponent,\n AdmMetricsComponent,\n NodeDetailComponent\n];\n\nconst PIPES = [\n FormatTimePipe\n]\n\n@NgModule({\n imports: [...MODULES],\n declarations: [...COMPONENTS, ...PIPES],\n providers: [\n AdminModuleCommService,\n { provide: ADM_LOCALE, useValue: myconfig.LOCALE },\n { provide: ADM_BACKEND_URL, useValue: myconfig.BACKEND_URL },\n { provide: ADM_CONVERSATIONS, useValue: !!myconfig.TRANSACTIONS_TIMEOUT_S }\n ]\n})\nexport class AdmModule {\n constructor(private commService: AdminModuleCommService) {\n console.log(\"@esfaenza/admin-module: BOOTSTRAP\");\n this.commService.register();\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AdminModuleCommService as ɵt} from './lib/admin-module.comms.service';\nexport {NodeDetailComponent as ɵq} from './lib/components/_shared/node_detail.component';\nexport {NodeDetailLoc as ɵr} from './lib/components/_shared/node_detail.component.loc';\nexport {AdmAuditsComponent as ɵk} from './lib/components/audits/adm_audits.component';\nexport {AdmAuditLoc as ɵl} from './lib/components/audits/adm_audits.component.loc';\nexport {AdmDynamicViewsComponent as ɵo} from './lib/components/dynamic_views/adm_dynamic_views.component';\nexport {AdmDynamicViewsLoc as ɵp} from './lib/components/dynamic_views/adm_dynamic_views.component.loc';\nexport {AdmEnqComponent as ɵm} from './lib/components/enqueues/adm_enq.component';\nexport {AdmEnqLoc as ɵn} from './lib/components/enqueues/adm_enq.component.loc';\nexport {AdmLogsComponent as ɵi} from './lib/components/logs/adm_logs.component';\nexport {AdmLogsLoc as ɵj} from './lib/components/logs/adm_logs.component.loc';\nexport {AdmMetricsComponent as ɵg} from './lib/components/metrics/metrics_search.component';\nexport {AdmMetricsLoc as ɵh} from './lib/components/metrics/metrics_search.component.loc';\nexport {AdmProfilerComponent as ɵc} from './lib/components/profiler/adm_profiler.component';\nexport {AdmProfilerComponentLoc as ɵd} from './lib/components/profiler/adm_profiler.component.loc';\nexport {AdmTopActivitiesComponent as ɵe} from './lib/components/topact/topact_search.component';\nexport {AdmTopActivitieLoc as ɵf} from './lib/components/topact/topact_search.component.loc';\nexport {AdmWrkComponent as ɵa} from './lib/components/workers/adm_wrk.component';\nexport {AdmWrkLoc as ɵb} from './lib/components/workers/adm_wrk.component.loc';\nexport {FormatTimePipe as ɵs} from './lib/pipes/format_time.pipe';"],"names":[],"mappings":"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"}