@esfaenza/admin-module 11.2.38 → 11.2.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/esfaenza-admin-module.umd.js +2 -2
- package/bundles/esfaenza-admin-module.umd.js.map +1 -1
- package/bundles/esfaenza-admin-module.umd.min.js +1 -1
- package/bundles/esfaenza-admin-module.umd.min.js.map +1 -1
- package/esfaenza-admin-module.metadata.json +1 -1
- package/esm2015/lib/components/_shared/node_detail.component.js +2 -2
- package/esm2015/lib/components/topact/topact_search.component.js +2 -2
- package/fesm2015/esfaenza-admin-module.js +2 -2
- package/fesm2015/esfaenza-admin-module.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/forms"),require("@angular/core"),require("@angular/router"),require("@angular/material/icon"),require("@angular/material/datepicker"),require("@esfaenza/material-dayjs-adapter"),require("@angular/material/input"),require("@angular-material-components/datetime-picker"),require("ngx-bootstrap/modal"),require("@ctrl/ngx-csv"),require("ngx-bootstrap/dropdown"),require("ngx-bootstrap/tooltip"),require("@esfaenza/es-table"),require("@esfaenza/forms-and-validations"),require("@esfaenza/es-charts"),require("@esfaenza/gertrude"),require("@esfaenza/localizations"),require("@esfaenza/ngx-contextmenu"),require("@esfaenza/preferences"),require("@esfaenza/httpservice"),require("@esfaenza/extensions"),require("@angular/common/http"),require("cerialize"),require("rxjs/operators"),require("rxjs")):"function"==typeof define&&define.amd?define("@esfaenza/admin-module",["exports","@angular/common","@angular/forms","@angular/core","@angular/router","@angular/material/icon","@angular/material/datepicker","@esfaenza/material-dayjs-adapter","@angular/material/input","@angular-material-components/datetime-picker","ngx-bootstrap/modal","@ctrl/ngx-csv","ngx-bootstrap/dropdown","ngx-bootstrap/tooltip","@esfaenza/es-table","@esfaenza/forms-and-validations","@esfaenza/es-charts","@esfaenza/gertrude","@esfaenza/localizations","@esfaenza/ngx-contextmenu","@esfaenza/preferences","@esfaenza/httpservice","@esfaenza/extensions","@angular/common/http","cerialize","rxjs/operators","rxjs"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).esfaenza=e.esfaenza||{},e.esfaenza["admin-module"]={}),e.ng.common,e.ng.forms,e.ng.core,e.ng.router,e.ng.material.icon,e.ng.material.datepicker,e.materialDayjsAdapter,e.ng.material.input,e.datetimePicker,e.modal,e.ngxCsv,e.dropdown,e.tooltip,e.esTable,e.formsAndValidations,e.esCharts,e.gertrude,e.localizations,e.ngxContextmenu,e.preferences,e.httpservice,e.extensions,e.ng.common.http,e.cerialize,e.rxjs.operators,e.rxjs)}(this,(function(e,t,i,r,n,s,a,o,l,c,p,d,h,u,m,f,g,v,y,b,S,w,T,P,I,D,C){"use strict";var V=function(e,t){return(V=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])})(e,t)};function z(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}V(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}function A(e,t,i,r){var n,s=arguments.length,a=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;o>=0;o--)(n=e[o])&&(a=(s<3?n(a):s>3?n(t,i,a):n(t,i))||a);return s>3&&a&&Object.defineProperty(t,i,a),a}function x(e,t,i,r){return new(i||(i=Promise))((function(n,s){function a(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,o)}l((r=r.apply(e,t||[])).next())}))}function M(e,t){var i,r,n,s,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(s){return function(o){return function(s){if(i)throw new TypeError("Generator is already executing.");for(;a;)try{if(i=1,r&&(n=2&s[0]?r.return:s[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,s[1])).done)return n;switch(r=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(n=a.trys,(n=n.length>0&&n[n.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]<n[3])){a.label=s[1];break}if(6===s[0]&&a.label<n[1]){a.label=n[1],n=s;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(s);break}n[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{i=n=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,o])}}}Object.create;function L(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var r,n,s=i.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=s.next()).done;)a.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return a}function k(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(L(arguments[t]));return e}Object.create;var N=function(e){function t(){var t=e.call(this)||this;return t.filteraction="",t.filterhttp="",t}return z(t,e),t}(m.AppSearch),E="/api/Adm/ChangeProcessConsumerGroup",O="/api/Adm/GetConsumerGroups#cache",U="/api/Adm/GetInfos",j="/api/Adm/GetMetrics",R="/api/Adm/GetMetrics",G="/api/Adm/GetProfilerDataNodes",H="/api/Adm/GetServerAudits",F="/api/Adm/GetDynamicViewData",_="/api/Adm/GetServerLocks",q="/api/Adm/GetServerLogs",W="/api/Adm/GetDynamicViews",K="/api/Adm/GetServerWorkers",B="/api/Adm/GetTopActivities",$="/api/Adm/KillProcess",Y="/api/Adm/SetProcessTracing",J="/api/Adm/GetNodeStats",X="/api/Adm/GetSessionStats",Q=new r.InjectionToken("ADM_LOCALE"),Z=new r.InjectionToken("ADM_BACKEND_URL"),ee=new r.InjectionToken("ADM_MODULE_PATH"),te=new r.InjectionToken("ADM_CONVERSATIONS"),ie=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Search Application Audits",["Ricerca Audit Applicativi"]),e.prototype.set.call(i,"en->it","User",["Utente"]),e.prototype.set.call(i,"en->it","REST Call",["Chiamata REST"]),e.prototype.set.call(i,"en->it","Update",["Aggiornamento"]),e.prototype.set.call(i,"en->it","Route",["Route"]),e.prototype.set.call(i,"en->it","Action",["Azione"]),e.prototype.set.call(i,"en->it","HTTP Method",["Metodo HTTP"]),e.prototype.set.call(i,"en->it","Arguments",["Argomenti"]),e.prototype.set.call(i,"en->it","Object ID",["ID Oggetto"]),e.prototype.set.call(i,"en->it","Object Type",["Tipo Oggetto"]),e.prototype.set.call(i,"en->it","Object Data",["Dati Oggetto"]),e.prototype.set.call(i,"en->it","Loading Application Audits",["Carico gli Audit dell'Applicazione"]),e.prototype.set.call(i,"en->it","Date",["Data"]),e.prototype.set.call(i,"en->it","Address",["Indirizzo"]),e.prototype.set.call(i,"en->it","HTTP Response",["Risposta HTTP"]),e.prototype.set.call(i,"en->it","Application Error Code",["Codice Errore Applicativo"]),e.prototype.set.call(i,"en->it","Conversation ID",["Cod. Conversation"]),i}return z(t,e),t}(y.LocalizationService);ie.decorators=[{type:r.Injectable}],ie.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var re=function(){function e(e,t,i,r,n,s,a,o,l){this.lc=e,this.intercom=t,this.localStorage=i,this.http=r,this.route=n,this.location=s,this.backend=a,this.mod=o,this.usesConversations=l,this.searchView=new N,this.Actions=[],this.HttpMethods=[],this.searchInProgress=!1,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)}),this.HttpMethods=[{id:"GET",description:"GET"},{id:"POST",description:"POST"},{id:"PUT",description:"PUT"},{id:"PATCH",description:"PATCH"},{id:"DELETE",description:"DELETE"}],this.Actions=[{id:"C",description:this.lc.loc("REST Call")},{id:"U",description:this.lc.loc("Update")},{id:"D",description:this.lc.loc("Delete")}]}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.Init=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotAudittato").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/serveraudits"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotAudittato").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetProcesses(this.backend+H,this.searchView)):(this.searchView=new N,this.searchView.filterda=dayjs().add(-1,"month").format(this.lc.token("getSmallDateFormat")),this.searchView.filtera=dayjs().format(this.lc.token("getSmallDateFormat")),this.sendSearch())},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),this.searchInProgress=!0,e&&(this.searchView.page=1),this.POSTGetProcesses(this.backend+H,this.searchView)},e.prototype.POSTGetProcesses=function(e,t){var i=this;this.http.post(e,t).subscribe((function(e){i.searchView=e,i.searchInProgress=!1,i.localStorage.setItem("HotAudittato",i.searchView).subscribe()}))},e}();re.decorators=[{type:r.Component,args:[{selector:"adm_audits",viewProviders:[{provide:y.LocalizationService,useClass:ie}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Search Application Audits\' | localize : lc}}</span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12 bottom-15">\r\n <form role="form">\r\n <div class="row">\r\n <div class="col-md-11">\r\n <div class="col-md-12 row app-no-padding app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-date [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterda" name="filterda" [Placeholder]="\'From\' | localize : lc"></form-date>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-date [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtera" name="filtera" [Placeholder]="\'To\' | localize : lc"></form-date>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filteruser" name="filteruser" [Placeholder]="\'User\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filteraddress" name="filteraddress" [Placeholder]="\'Address\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterroute" name="filterroute" [Placeholder]="\'Route\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [SelectLabel]="\'Action\' | localize : lc" [(ngModel)]="searchView.filteraction" name="filteraction" [Source]="Actions"></form-select>\r\n </div>\r\n </div>\r\n <div class="col-md-12 row app-no-padding">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [SelectLabel]="\'HTTP Method\' | localize : lc" [(ngModel)]="searchView.filterhttp" name="filterhttp" [Source]="HttpMethods"></form-select>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterargs" name="filterargs" [Placeholder]="\'Arguments\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterobjid" name="filterobjid" [Placeholder]="\'Object ID\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterobjtype" name="filterobjtype" [Placeholder]="\'Object Type\' | localize : lc"></form-input>\r\n </div>\r\n \x3c!-- Per ora commentato --\x3e\r\n \x3c!-- <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper" *ngIf="usesConversations">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterconversationid" name="filterconversationid" [Placeholder]="\'Conversation ID\' | localize : lc"></form-input>\r\n </div> --\x3e\r\n </div>\r\n </div>\r\n <div class="col-md-1 app-no-padding">\r\n <button [disabled]="searchInProgress" class="input-group-addon btn app-btn-search" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!searchView"><em>{{\'Loading Application Audits\' | localize : lc}}...</em></p>\r\n <div *ngIf="searchView">\r\n <es-table [(ngModel)]="searchView" [MultipleOrderingDirectives]="true" (onSearchRequest)="sendSearch($event);">\r\n\r\n <span *th="\'Timestamp\'">{{\'Date\' | localize : lc}}</span>\r\n <span *th="\'User\'">{{\'User\' | localize : lc}}</span>\r\n <span *th="\'RemoteAddress\'">{{\'Address\' | localize : lc}}</span>\r\n <span *th="\'Action\'">{{\'Action\' | localize : lc}}</span>\r\n <span *th="\'HttpMethod\'">{{\'HTTP Method\' | localize : lc}}</span>\r\n <span *th="\'Route\'">{{\'Route\' | localize : lc}}</span>\r\n <span *th="\'Args\'">{{\'Arguments\' | localize : lc}}</span>\r\n <span *th="\'HttpResponse\'">{{\'HTTP Response\' | localize : lc}}</span>\r\n <span *th="\'NonStdErrorMessage\'">{{\'Application Error Code\' | localize : lc}}</span>\r\n <span *th="\'ConvId\'; If: usesConversations">{{\'Conversation ID\' | localize : lc}}</span>\r\n <span *th="\'ObjectType\'">{{\'Object Type\' | localize : lc}}</span>\r\n <span *th="\'ObjectId\'">{{\'Object ID\' | localize : lc}}</span>\r\n <span *th="\'ObjectData\'">{{\'Object Data\' | localize : lc}}</span>\r\n\r\n <strong *td="\'Timestamp\'; let item">{{item.timestamp | loc_date:\'DD/MM/YYYY HH:mm:ss\'}}</strong>\r\n <span *td="\'User\'; let item">{{item.user}}</span>\r\n <span *td="\'RemoteAddress\'; let item">{{item.address}}</span>\r\n <span *td="\'Action\'; let item">{{item.action}}</span>\r\n <span *td="\'HttpMethod\'; let item">{{item.httpmethod}}</span>\r\n <span *td="\'Route\'; let item">{{item.route}}</span>\r\n <span *td="\'Args\'; let item">{{item.args}}</span>\r\n <span *td="\'HttpResponse\'; let item">{{item.httpresponse}}</span>\r\n <span *td="\'NonStdErrorMessage\'; let item">{{item.mdmerrorcode}}</span>\r\n <span *td="\'ConvId\'; If: usesConversations; let item">{{item.conversationid}}</span>\r\n <span *td="\'ObjectType\'; let item">{{item.objecttype}}</span>\r\n <span *td="\'ObjectId\'; let item">{{item.objectid}}</span>\r\n <span *td="\'ObjectData\'; let item">{{item.objectdata}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],re.ctorParameters=function(){return[{type:y.LocalizationService},{type:T.InterComService},{type:S.PreferencesService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:t.Location},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]},{type:Boolean,decorators:[{type:r.Inject,args:[te]}]}]};var ne=function(e,t){this.id=e,this.description=t},se=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),ae=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Consumer Group succesfully changed",["Gruppo di Consumo modificato con successo"]),e.prototype.set.call(i,"en->it","Errors changing Consumer Group",["Errori nella modifica del Gruppo di Consumo"]),e.prototype.set.call(i,"en->it","Change Consumer Group",["Modifica Gruppo di Consumo"]),e.prototype.set.call(i,"en->it","New Consumer Group",["Nuovo Gruppo di Consumo"]),e.prototype.set.call(i,"en->it","Thread Type",["Tipo Thread"]),e.prototype.set.call(i,"en->it","Thread Status",["Stato Thread"]),e.prototype.set.call(i,"en->it","Type",["Tipo"]),e.prototype.set.call(i,"en->it","State",["Stato"]),e.prototype.set.call(i,"en->it","In Wait",["In Attesa"]),e.prototype.set.call(i,"en->it","Global",["Globale"]),e.prototype.set.call(i,"en->it","Search Application Processes",["Ricerca Processi Applicativi"]),e.prototype.set.call(i,"en->it","Tenant",["Operatore"]),e.prototype.set.call(i,"en->it","Errors toggling Process Tracing",["Errori nella modifica del Tracing del Processo"]),e.prototype.set.call(i,"en->it","User",["Utente"]),e.prototype.set.call(i,"en->it","Loading Application Processes",["Carico i Processi Applicativi"]),e.prototype.set.call(i,"en->it","Activate Process Tracing",["Attiva Tracing Processo"]),e.prototype.set.call(i,"en->it","Deactivate Process Tracing",["Disattiva Tracing Progetto"]),e.prototype.set.call(i,"en->it","Kill Process",["Ammazza Processo"]),e.prototype.set.call(i,"en->it","Errors killing the Process",["Errori durante la Kill del Processo"]),e.prototype.set.call(i,"en->it","Process succesfully killed",["Processo ucciso con successo"]),e.prototype.set.call(i,"en->it","Confirm Process Kill",["Conferma Terminazione del Processo"]),e.prototype.set.call(i,"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"]),i}return z(t,e),t}(y.LocalizationService);ae.decorators=[{type:r.Injectable}],ae.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var oe=function(){function e(e,t,i,r,n,s,a,o,l,c){this.utiExts=e,this.msgExts=t,this.lc=i,this.localStorage=r,this.intercom=n,this.http=s,this.route=a,this.location=o,this.backend=l,this.mod=c,this.searchView=new se,this.DynamicOps=[],this.valueToShow="",this.Types=[],this.States=[],this.ThreadTypes=[],this.ThreadStatuses=[],this.newCg="",this.CGs=[],this.CgDictionariesLoaded=!1,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)}),this.DynamicOps=[new m.EsTableOperationDefinition("trace_on",this.lc.loc("Activate Process Tracing"),"fa fa-circle text-danger","","trace_enabled","N"),new m.EsTableOperationDefinition("trace_off",this.lc.loc("Deactivate Process Tracing"),"fa fa-circle text-success","","trace_enabled","Y"),new m.EsTableOperationDefinition("kill",this.lc.loc("Kill Process"),"fa fa-ban text-danger"),new m.EsTableOperationDefinition("change_cg",this.lc.loc("Change Consumer Group"),"fa fa-edit text-info")]}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.Init=function(e){this.Types=[new ne("USER","USER"),new ne("BACKGROUND","BACKGROUND"),new ne("JOB","JOB")],this.States=[new ne("ACTIVE","ACTIVE"),new ne("INACTIVE","INACTIVE"),new ne("KILLED","KILLED")],this.ThreadTypes=["APITHREAD","APIPUSHTHREAD","BACKGROUNDTHREAD","JOBTHREAD","PARALLELSLAVETHREAD"].map((function(e){return new ne(e,e)})),this.ThreadStatuses=["ACTIVE","IDLE","THROTTLING","KILLED"].map((function(e){return new ne(e,e)})),this.doInit(e)},e.prototype.doInit=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotProcessato").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/serverworkers"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotProcessato").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetProcesses(this.backend+K,this.searchView)):(this.searchView=new se,this.sendSearch())},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),this.searchView.searchinprogress=!0,e&&(this.searchView.page=1),this.POSTGetProcesses(this.backend+K,this.searchView)},e.prototype.POSTGetProcesses=function(e,t){var i=this;this.http.post(e,t).subscribe((function(e){i.searchView=e,i.searchView.searchinprogress=!1,i.localStorage.setItem("HotProcessato",i.searchView).subscribe()}))},e.prototype.back=function(){this.location.back()},e.prototype.onOperation=function(e){switch(e.id){case"trace_on":this.toggleTracing(e.item,!0);break;case"trace_off":this.toggleTracing(e.item,!1);break;case"kill":this.killProcess(e.item);break;case"change_cg":this.changeProcessCg(e.item)}},e.prototype.toggleTracing=function(e,t){var i=this,r=(new P.HttpParams).set("instanceid",e.properties.inst_id||e.properties.INST_ID).set("sid",e.properties.sid||e.properties.SID).set("serial",e.properties.serial||e.properties.SERIAL).set("enable",t.toString());this.http.get(this.backend+Y,r).subscribe((function(e){i.msgExts.manageStringResponse(e,"",i.lc.loc("Errors toggling Process Tracing"),(function(){return i.sendSearch()}))}))},e.prototype.killProcess=function(e){var t=this;this.msgExts.simpleWarningWithChoice(this.lc.loc("Confirm Process Kill"),this.lc.loc("Are you sure you wish to kill the selected process? The associated user will be disconnected"),(function(){var i=(new P.HttpParams).set("instanceid",e.properties.inst_id||e.properties.INST_ID).set("sid",e.properties.sid||e.properties.SID).set("serial",e.properties.serial||e.properties.SERIAL);t.http.get(t.backend+$,i).subscribe((function(e){t.msgExts.manageStringResponse(e,t.lc.loc("Process succesfully killed"),t.lc.loc("Errors killing the Process"),(function(){return t.sendSearch()}))}))}))},e.prototype.changeProcessCg=function(e){this.ProcessOnEdit=e,this.CgDictionariesLoaded||(this.loadCgDictionaries(),this.CgDictionariesLoaded=!0),this.setupChangeCg(),this.dlgChangeCg.show()},e.prototype.loadCgDictionaries=function(){var e=this;this.http.get(this.backend+O).subscribe((function(t){return e.CGs=t}))},e.prototype.setupChangeCg=function(){var e=this;this.utiExts.cleanForm(this.cgFrom),setTimeout((function(){e.newCg=""}))},e.prototype.doChangeCg=function(){var e=this,t=(new P.HttpParams).set("instanceid",this.ProcessOnEdit.properties.inst_id||this.ProcessOnEdit.properties.INST_ID).set("sid",this.ProcessOnEdit.properties.sid||this.ProcessOnEdit.properties.SID).set("serial",this.ProcessOnEdit.properties.serial||this.ProcessOnEdit.properties.SERIAL).set("consumer_group",this.newCg);return this.http.get(this.backend+E,t).subscribe((function(t){e.msgExts.manageStringResponse(t,e.lc.loc("Consumer Group succesfully changed"),e.lc.loc("Errors changing Consumer Group"),(function(){return e.sendSearch()}))})),!0},e}();oe.decorators=[{type:r.Component,args:[{selector:"adm_wrk",viewProviders:[{provide:y.LocalizationService,useClass:ae}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Search Application Processes\' | localize : lc}}</span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12">\r\n <form role="form">\r\n <div class="row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtertype" name="filtertype" [SelectLabel]="\'Type\' | localize : lc" [Source]="Types"></form-select>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtertenant" name="filterTenant" [Placeholder]="\'Tenant\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filteruser" name="filterUser" [Placeholder]="\'User\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterstate" name="filterState" [SelectLabel]="\'State\' | localize : lc" [Source]="States"></form-select>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterthreadtype" name="filterthreadtype" [SelectLabel]="\'Thread Type\' | localize : lc" [Source]="ThreadTypes"></form-select>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterthreadstatus" name="filterthreadstatus" [SelectLabel]="\'Thread Status\' | localize : lc" [Source]="ThreadStatuses"></form-select>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper" style="display: flex; height: 38px;">\r\n <form-checkbox [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterglobal" name="filterglobal"></form-checkbox> \r\n <span class="app-pointer app-padding-top-5 app-padding-left-5" (click)="searchView.filterglobal = !searchView.filterglobal">{{\'Global\' | localize : lc}}</span>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper" style="display: flex; height: 38px;">\r\n <form-checkbox [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterinwait" name="filterinwait"></form-checkbox> \r\n <span class="app-pointer app-padding-top-5 app-padding-left-5" (click)="searchView.filterinwait = !searchView.filterinwait">{{\'In Wait\' | localize : lc}}</span>\r\n </div>\r\n <button [disabled]="searchView.searchinprogress" class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!searchView"><em>{{\'Loading Application Processes\' | localize : lc}}...</em></p>\r\n <div *ngIf="searchView">\r\n <es-table [(ngModel)]="searchView" [DynamicOperations]="DynamicOps" [AutoUpdate]="true" [OrderByColumn]="true" (onSearchRequest)="sendSearch($event);" (onDynamicOperation)="onOperation($event)">\r\n <span class="app-nowrap" *td="\'full_wait_stack\'; let value">\r\n <span class="fa fa-list app-pointer" (click)="valueToShow = value; dlgValue.show();"></span> \r\n {{value.length > 70 ? value.substr(0, 67) + \'...\' : value}}\r\n </span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="app-margin-top-15">\r\n <button class="btn btn-secondary pull-left" type="button" (click)="back()">{{\'Back\' | localize : lc}}</button>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgChangeCg="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <div class="modal-dialog modal-lg" cdkDrag>\r\n <div class="modal-content">\r\n <div class="modal-header" cdkDragHandle>\r\n <h4 class="modal-title pull-left">{{\'Change Consumer Group\' | localize : lc}}</h4>\r\n <button type="button" class="close pull-right" (click)="dlgChangeCg.hide()" aria-label="Close">\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <form novalidate #cgFrom="ngForm" (ngSubmit)="cgFrom.valid && doChangeCg() && dlgChangeCg.hide()">\r\n <div class="modal-body">\r\n <form-select [Label]="\'New Consumer Group\' | localize : lc" [(ngModel)]="newCg" name="newcg" [Source]="CGs" required [Last]="true"></form-select>\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-secondary app-margin-right-5" (click)="dlgChangeCg.hide()">{{\'Close\' | localize : lc}}</button>\r\n <button type="submit" class="btn btn-primary">{{\'Confirm\' | localize : lc}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgValue="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <div class="modal-dialog modal-xl" app-draggable=".modal-header">\r\n <div class="modal-content">\r\n <div class="modal-header">\r\n <h5 class="modal-title pull-left">\r\n Full Wait Stack\r\n </h5>\r\n <button type="button" class="close pull-right" (click)="dlgValue.hide()" aria-label="Close">\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <div class="modal-body app-padidng-bottom-20 app-padding-top-20">\r\n <span class="app-wrap">\r\n {{valueToShow}}\r\n </span>\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-primary" (click)="dlgValue.hide()">Chiudi</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],oe.ctorParameters=function(){return[{type:T.UtilityService},{type:T.MessageService},{type:y.LocalizationService},{type:S.PreferencesService},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:t.Location},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]},oe.propDecorators={cgFrom:[{type:r.ViewChild,args:["cgFrom"]}],dlgChangeCg:[{type:r.ViewChild,args:["dlgChangeCg"]}]};var le=localStorage.getItem("LOCALE")||myconfig.LOCALE,ce={"Parent ID":{"en-US":"Parent ID","it-IT":"ID Padre"},ID:{"en-US":"ID","it-IT":"ID"},Description:{"en-US":"Description","it-IT":"Descrizione"},Calls:{"en-US":"Calls","it-IT":"Chiamate"},Time:{"en-US":"Time","it-IT":"Tempo"},"Peak Time":{"en-US":"Peak Time","it-IT":"Tempo Max"},"Min. Time":{"en-US":"Min. Time","it-IT":"Tempo Min"},"Avg. Time":{"en-US":"Avg. Time","it-IT":"Tempo Medio"},"Specific Time":{"en-US":"Specific Time","it-IT":"Tempo Specifico"},Percentage:{"en-US":"Percentage","it-IT":"Percentuale"},"Calls for Period":{"en-US":"Calls for Period","it-IT":"Chiamate Periodo"},"Time for Period":{"en-US":"Time for Period","it-IT":"Tempo Periodo"},"Peak Time for Period":{"en-US":"Peak Time for Period","it-IT":"Tempo Max Periodo"},"Min. Time for Period":{"en-US":"Min. Time for Period","it-IT":"Tempo Min Periodo"},"Avg. Time for Period":{"en-US":"Avg. Time for Period","it-IT":"Tempo Medio Periodo"},"Specific Time for Period":{"en-US":"Specific Time for Period","it-IT":"Tempo Specifico Periodo"},"Percentage for Period":{"en-US":"Percentage for Period","it-IT":"Percentuale Periodo"},"Event Type Name":{"en-US":"Event Type Name","it-IT":"Nome Tipologia Evento"},"Wait Class Name":{"en-US":"Wait Class Name","it-IT":"Nome Classe Attesa"}},pe=function(){};A([T.Export(10,ce["Parent ID"][le]),I.autoserialize],pe.prototype,"parentid",void 0),A([T.Export(20,ce.ID[le]),I.autoserialize],pe.prototype,"id",void 0),A([T.Export(30,ce.Description[le]),I.autoserialize],pe.prototype,"description",void 0),A([T.Export(40,ce.Calls[le]),I.autoserialize],pe.prototype,"calls",void 0),A([T.Export(50,ce.Time[le]),I.autoserialize],pe.prototype,"time",void 0),A([T.Export(60,ce["Peak Time"][le]),I.autoserialize],pe.prototype,"peaktime",void 0),A([T.Export(70,ce["Min. Time"][le]),I.autoserialize],pe.prototype,"mintime",void 0),A([T.Export(80,ce["Avg. Time"][le]),I.autoserialize],pe.prototype,"avgtime",void 0),A([T.Export(90,ce["Specific Time"][le]),I.autoserialize],pe.prototype,"timewithoutchildren",void 0),A([T.Export(100,ce.Percentage[le]),I.autoserialize],pe.prototype,"percentage",void 0),A([T.Export(110,ce["Calls for Period"][le]),I.autoserialize],pe.prototype,"snapdeltacalls",void 0),A([T.Export(120,ce["Time for Period"][le]),I.autoserialize],pe.prototype,"snapdeltatime",void 0),A([T.Export(130,ce["Peak Time for Period"][le]),I.autoserialize],pe.prototype,"snappeaktime",void 0),A([T.Export(140,ce["Min. Time for Period"][le]),I.autoserialize],pe.prototype,"snapmintime",void 0),A([T.Export(150,ce["Avg. Time for Period"][le]),I.autoserialize],pe.prototype,"snapavgtime",void 0),A([T.Export(160,ce["Specific Time for Period"][le]),I.autoserialize],pe.prototype,"snaptimewithoutchildren",void 0),A([T.Export(170,ce["Percentage for Period"][le]),I.autoserialize],pe.prototype,"snappercentage",void 0),A([T.Export(180,ce["Event Type Name"][le]),I.autoserialize],pe.prototype,"eventtypename",void 0),A([T.Export(190,ce["Wait Class Name"][le]),I.autoserialize],pe.prototype,"waitclassname",void 0);var de=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),he=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Server Profiler",["Profiler del Server"]),e.prototype.set.call(i,"en->it","Loading Data",["Carico i Dati"]),e.prototype.set.call(i,"en->it","ID",["ID"]),e.prototype.set.call(i,"en->it","Description",["Descrizione"]),e.prototype.set.call(i,"en->it","Calls",["Chiamate"]),e.prototype.set.call(i,"en->it","Time",["Tempo"]),e.prototype.set.call(i,"en->it","Peak Time",["Tempo Max"]),e.prototype.set.call(i,"en->it","Min. Time",["Tempo Min"]),e.prototype.set.call(i,"en->it","Avg. Time",["Tempo Medio"]),e.prototype.set.call(i,"en->it","Specific Time",["Tempo Specifico"]),e.prototype.set.call(i,"en->it","Percentage",["Percentuale"]),e.prototype.set.call(i,"en->it","Calls for Period",["Chiamate Periodo"]),e.prototype.set.call(i,"en->it","Time for Period",["Tempo Periodo"]),e.prototype.set.call(i,"en->it","Peak Time for Period",["Tempo Max Periodo"]),e.prototype.set.call(i,"en->it","Min. Time for Period",["Tempo Min Periodo"]),e.prototype.set.call(i,"en->it","Avg. Time for Period",["Tempo Medio Periodo"]),e.prototype.set.call(i,"en->it","Specific Time for Period",["Tempo Specifico Periodo"]),e.prototype.set.call(i,"en->it","Percentage for Period",["Percentuale Periodo"]),e.prototype.set.call(i,"en->it","Event Type Name",["Nome Tipologia Evento"]),e.prototype.set.call(i,"en->it","Wait Class Name",["Nome Classe Attesa"]),i}return z(t,e),t}(y.LocalizationService);he.decorators=[{type:r.Injectable}],he.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var ue=function(){function e(e,t,i,r,n,s,a,o,l){this.expExts=e,this.lc=t,this.localStorage=i,this.location=r,this.intercom=n,this.http=s,this.route=a,this.backend=o,this.mod=l,this.searchView=new de,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.Init=function(e){this.doInit(e)},e.prototype.doInit=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotSearchProfilato").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/profiler"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotSearchProfilato").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetItems(this.backend+G,this.searchView)):(this.searchView=new de,this.sendSearch())},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),this.searchView.searchinprogress=!0,e&&(this.searchView.page=1),this.POSTGetItems(this.backend+G,this.searchView)},e.prototype.POSTGetItems=function(e,t){var i=this;this.http.post(e,t).subscribe((function(e){i.searchView=e,i.searchView.searchinprogress=!1,i.localStorage.setItem("HotSearchProfilato",i.searchView).subscribe()}))},e.prototype.prepareExport=function(e){var t=this,i=JSON.parse(JSON.stringify(this.searchView));i.page=1,i.itemsperpageoverride=9999999,this.http.post(this.backend+G,i).subscribe((function(i){var r=t.expExts.deserializeForExport(i.items,pe);e(r)}))},e.prototype.loadNodeDetails=function(e){var t=this;this.NodeDetails=null;var i=(new P.HttpParams).set("nodeId",e);this.http.get(this.backend+J,i).subscribe((function(e){t.NodeDetails=e}))},e}();ue.decorators=[{type:r.Component,args:[{selector:"adm_profiler",providers:[{provide:y.LocalizationService,useClass:he}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Server Profiler\' | localize : lc}}</span> \r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12 bottom-15">\r\n <form role="form">\r\n <div class="row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-date [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterfrom" name="filterfrom" [Placeholder]="\'From\' | localize : lc"></form-date>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-date [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterto" name="filterto" [Placeholder]="\'To\' | localize : lc"></form-date>\r\n </div>\r\n <button [disabled]="searchView.searchinprogress" class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!searchView"><em>{{\'Loading Data\' | localize : lc}}</em></p>\r\n <div *ngIf="searchView">\r\n <es-table [(ngModel)]="searchView" [Hierarchy]="true" [OrderByColumn]="false" [ParentKey]="\'parentid\'"\r\n [OwnKey]="\'id\'" [StartsExpanded]="false" [ExportFunction]="prepareExport.bind(this)" [Export]="true"\r\n [ExportFileName]="\'Profiler Export.csv\'" [HidePaging]="true" (onSearchRequest)="sendSearch($event);">\r\n \r\n <span *th="\'1\'">{{\'ID\' | localize : lc}}</span>\r\n <span *th="\'2\'">{{\'Description\' | localize : lc}}</span>\r\n <span *th="\'3\'">{{\'Calls\' | localize : lc}}</span>\r\n <span *th="\'4\'">{{\'Time\' | localize : lc}}</span>\r\n <span *th="\'5\'">{{\'Peak Time\' | localize : lc}}</span>\r\n <span *th="\'6\'">{{\'Min. Time\' | localize : lc}}</span>\r\n <span *th="\'7\'">{{\'Avg. Time\' | localize : lc}}</span>\r\n <span *th="\'8\'">{{\'Specific Time\' | localize : lc}}</span>\r\n <span *th="\'9\'">{{\'Percentage\' | localize : lc}}</span>\r\n <span *th="\'10\'">{{\'Calls for Period\' | localize : lc}}</span>\r\n <span *th="\'11\'">{{\'Time for Period\' | localize : lc}}</span>\r\n <span *th="\'12\'">{{\'Peak Time for Period\' | localize : lc}}</span>\r\n <span *th="\'13\'">{{\'Min. Time for Period\' | localize : lc}}</span>\r\n <span *th="\'14\'">{{\'Avg. Time for Period\' | localize : lc}}</span>\r\n <span *th="\'15\'">{{\'Specific Time for Period\' | localize : lc}}</span>\r\n <span *th="\'16\'">{{\'Percentage for Period\' | localize : lc}}</span>\r\n <span *th="\'17\'">{{\'Event Type Name\' | localize : lc}}</span>\r\n <span *th="\'18\'">{{\'Wait Class Name\' | localize : lc}}</span>\r\n\r\n <span *td="\'1\'; let item"><span class="app-link app-inline" (click)="loadNodeDetails(item.id); dlgNodeDetails.show();">{{item.id}}</span></span>\r\n <span *td="\'2\'; let item" title="{{item.description}}">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + "[...]" }}</span>\r\n <span *td="\'3\'; let item">{{item.calls}}</span>\r\n <span *td="\'4\'; let item">{{item.time}}</span>\r\n <span *td="\'5\'; let item">{{item.peaktime}}</span>\r\n <span *td="\'6\'; let item">{{item.mintime}}</span>\r\n <span *td="\'7\'; let item">{{item.avgtime}}</span>\r\n <span *td="\'8\'; let item">{{item.timewithoutchildren }}</span>\r\n <span *td="\'9\'; let item">{{item.percentage}}</span>\r\n <span *td="\'10\' let item">{{item.snapdeltacalls}}</span>\r\n <span *td="\'11\' let item">{{item.snapdeltatime}}</span>\r\n <span *td="\'12\' let item">{{item.snappeaktime}}</span>\r\n <span *td="\'13\' let item">{{item.snapmintime}}</span>\r\n <span *td="\'14\' let item">{{item.snapavgtime}}</span>\r\n <span *td="\'15\' let item">{{item.snaptimewithoutchildren}}</span>\r\n <span *td="\'16\' let item">{{item.snappercentage}}</span>\r\n <span *td="\'17\' let item">{{item.eventtypename}}</span>\r\n <span *td="\'18\' let item">{{item.waitclassname}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <node-detail *ngIf="NodeDetails" [NodeDetails]="NodeDetails" (onClose)="dlgNodeDetails.hide()"></node-detail>\r\n</div>'}]}],ue.ctorParameters=function(){return[{type:T.ExportService},{type:y.LocalizationService},{type:S.PreferencesService},{type:t.Location},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var me=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),fe=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Active Sessions",["Sessioni Attive"]),e.prototype.set.call(i,"en->it","Top Nodes",["Prime Istruzioni"]),e.prototype.set.call(i,"en->it","Top Sessions",["Prime Sessioni"]),e.prototype.set.call(i,"en->it","Loading Data",["Carico i Dati"]),e.prototype.set.call(i,"en->it","Top Activities",["Attivita' Principali"]),e.prototype.set.call(i,"en->it","Node Description",["Descrizione Nodo"]),e.prototype.set.call(i,"en->it","Node",["Nodo"]),e.prototype.set.call(i,"en->it","Activity",["Attivita'"]),e.prototype.set.call(i,"en->it","Limit",["Limite"]),e.prototype.set.call(i,"en->it","Node Type",["Tipo Nodo"]),e.prototype.set.call(i,"en->it","User",["Utente"]),e.prototype.set.call(i,"en->it","Tenant",["Tenant"]),e.prototype.set.call(i,"en->it","Process",["Processo"]),e.prototype.set.call(i,"en->it","Update every",["Aggiorna ogni"]),e.prototype.set.call(i,"en->it","second/s",["secondo/i"]),e.prototype.set.call(i,"en->it","Maximum Threads",["Thread Massimi"]),e.prototype.set.call(i,"en->it","CPUs",["CPU"]),e.prototype.set.call(i,"en->it","Wait Class Name",["Nome Classe Attesa"]),e.prototype.set.call(i,"it->en","Seriale",["Serial"]),e.prototype.set.call(i,"it->en","Stato",["Status"]),e.prototype.set.call(i,"it->en","Tipo",["Type"]),e.prototype.set.call(i,"it->en","Utente",["User"]),e.prototype.set.call(i,"it->en","Dettaglio Sessione",["Session Detail"]),e.prototype.set.call(i,"it->en","Chiudi",["Close"]),e.prototype.set.call(i,"en->it","CPU",["CPU"]),i}return z(t,e),t}(y.LocalizationService);fe.decorators=[{type:r.Injectable}],fe.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var ge=function(){function e(e,t,i,r,n,s,a,o,l){var c;this.dateExts=e,this.lc=t,this.localStorage=i,this.location=r,this.intercom=n,this.http=s,this.route=a,this.backend=o,this.mod=l,this.searchView=new me,this.autoUpdate=!1,this.seconds="5",this.rtWindow=null,this.destroyed$=new C.ReplaySubject(1),this.seriesPropertiesMapping={},this.propertiesSeriesMapping=((c={}).cputime="CPU",c.waittime="Wait",c.scripttime="Scripting",c.dbtime="DB",c.nettime="Network",c.throttletime="Throttling",c.sleeptime="Sleep",c.iotime="IO",c),this.seriesPropertiesMapping2={},this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;C.interval(6e4).pipe(D.takeUntil(this.destroyed$)).subscribe((function(t){e.updateRealTimeWindow()})),this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.updateRealTimeWindow=function(){return x(this,void 0,void 0,(function(){var e,t,i,r,n;return M(this,(function(s){switch(s.label){case 0:return e=new me,[4,this.http.post(this.backend+B,e).toPromise()];case 1:for(e=s.sent(),t=e.items[0],i=0;i<t.actsessions.length;i++)r=t.actsessions[i],n=this.dateExts.getDateConvertion(r.sampletime),this.rtWindow?(n.isBefore(this.rtWindow.from)&&(this.rtWindow.from=n),n.isAfter(this.rtWindow.to)&&(this.rtWindow.to=n)):this.rtWindow={from:n,to:n};return[2]}}))}))},e.prototype.Init=function(e){this.doInit(e)},e.prototype.doInit=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotSearchTopAct").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/topact"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotSearchTopAct").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetItems(this.backend+B,this.searchView,!1)):(this.searchView=new me,this.sendSearch())},e.prototype.ngOnDestroy=function(){this.destroyed$.next(!0),this.destroyed$.complete(),this.storageSub&&this.storageSub.unsubscribe()},e.prototype.sendSearch=function(e,t,i){return void 0===e&&(e=!0),void 0===t&&(t=!1),void 0===i&&(i=null),x(this,void 0,void 0,(function(){var e,r;return M(this,(function(n){switch(n.label){case 0:return!(e=null!=i?i:this.searchView).filterfrom&&!e.filterto||this.rtWindow?[3,2]:[4,this.updateRealTimeWindow()];case 1:n.sent(),n.label=2;case 2:return r=e.filterfrom&&this.dateExts.getDateConvertion(e.filterfrom).isAfter(this.rtWindow.from)&&e.filterto&&this.dateExts.getDateConvertion(e.filterto).isBefore(this.rtWindow.to),e.filterrealtime=r,e.searchinprogress=!0,this.POSTGetItems(this.backend+B,e,t),[2]}}))}))},e.prototype.POSTGetItems=function(e,t,i){var r=this;this.http.post(e,t).subscribe((function(e){return x(r,void 0,void 0,(function(){var t;return M(this,(function(r){switch(r.label){case 0:return i||(this.searchView=e,this.localStorage.setItem("HotSearchTopAct",this.searchView).subscribe()),[4,this.getDirectorInfos()];case 1:return t=r.sent(),this.searchView.searchinprogress=!1,this.reviewBindings(i,e,t),[2]}}))}))}))},e.prototype.getDirectorInfos=function(){return this.http.get(this.backend+U).pipe(D.map((function(e){return e}))).toPromise()},e.prototype.loadNodeDetails=function(e){var t=this;this.NodeDetails=null;var i=(new P.HttpParams).set("nodeId",e);this.http.get(this.backend+J,i).subscribe((function(e){t.NodeDetails=e}))},e.prototype.reviewBindings=function(e,t,i){var r=this,n=(null!=t?t:this.searchView).items[0];if(this.TopNodes=n.topnodes,this.TopSessions=n.topsessions,this.DirInfos=i,n.actsessions&&0!=n.actsessions.length){for(var s=[],a=Object.keys(n.actsessions[0]),o=0;o<a.length;o++)if("sampletime"!=a[o]){var l=new g.LineSerie(this.propertiesSeriesMapping[a[o]],[],null,null,"sessions");s.push(l),this.seriesPropertiesMapping[a[o]]=l}for(o=0;o<n.actsessions.length;o++)for(var c=n.actsessions[o],p=new Date(c.sampletime),d=0;d<a.length;d++)"sampletime"==a[d]||e&&!this.dateExts.getDateConvertion(p).isAfter(this.LastDataPoint)||this.seriesPropertiesMapping[a[d]].values.push(new g.DateValue(p,c[a[d]]));if(e&&this.ChartInstance){var h=new g.LineChartData(s,new g.Limit(null==i?void 0:i.threads,this.lc.loc("Maximum Threads")));s.some((function(e){return e.values.length>0}))&&(this.ChartInstance.addData(h),this.LastDataPoint=s.map((function(e){return dayjs.max(e.values.map((function(e){return r.dateExts.getDateConvertion(e.d)})))}))[0])}else this.TopActiveSessions=new g.LineChartData(s,new g.Limit(null==i?void 0:i.threads,this.lc.loc("Maximum Threads"))),this.LastDataPoint=s.map((function(e){return dayjs.max(e.values.map((function(e){return r.dateExts.getDateConvertion(e.d)})))}))[0]}else this.TopActiveSessions=null},e.prototype.autoUpdateChanged=function(){var e=this;/^[1-9]\d*$/.test(this.seconds)||(this.seconds="10");var t=1e3*parseInt(this.seconds,null);this.autoUpdate?(this.sendSearch(!1,!0),this.updateTimer=setInterval((function(){e.sendSearch(!1,!0)}),t)):clearInterval(this.updateTimer)},e.prototype.dataSelectionChanged=function(e){this.from=e.initial?this.searchView.filterfrom?this.dateExts.getDateConvertion(this.searchView.filterfrom).toDate():"":e.from,this.to=e.initial?this.searchView.filterto?this.dateExts.getDateConvertion(this.searchView.filterto).toDate():"":e.to;var t=JSON.parse(JSON.stringify(this.searchView));t.filterfrom=this.from?dayjs(this.from).format(this.lc.token("getFullDateDisplayFormat")):"",t.filterto=this.to?dayjs(this.to).format(this.lc.token("getFullDateDisplayFormat")):"",this.sendSearch(!0,!0,t)},e.prototype.onChartLoaded=function(e,t){void 0===t&&(t=!0),t&&(this.ChartInstance=e),e.Chart.events.on("ready",(function(){e.Chart.xAxes.each((function(e){return e.zoom({start:0,end:1},!0,!0)})),e.Chart.yAxes.each((function(e){return e.zoom({start:0,end:1},!0,!0)})),setTimeout((function(){e.Chart.xAxes.each((function(e){return e.zoom({start:0,end:1},!0,!0)})),e.Chart.yAxes.each((function(e){return e.zoom({start:0,end:1},!0,!0)}))}),500)}))},e.prototype.loadSessionDetails=function(e,t){var i=this;this.SessionDetails=null;var r=(new P.HttpParams).set("sid",e.toString()).set("serial",t.toString());this.http.get(X,r).subscribe((function(e){i.SessionDetails=e,i.threadSelectionChanged(null)}))},e.prototype.threadSelectionChanged=function(e){var t=this;this.SelectedTopNodes=null,this.SelectedSessions=null,requestAnimationFrame((function(){var i=(null==e?void 0:e.count)?e.items[0]:t.SessionDetails;t.SelectedTopNodes=i.nodes;for(var r=[],n=Object.keys(i.sessions[0]),s=0;s<n.length;s++)if("sampletime"!=n[s]){var a=new g.LineSerie(t.propertiesSeriesMapping[n[s]],[],null,null,"sessions");r.push(a),t.seriesPropertiesMapping2[n[s]]=a}for(s=0;s<i.sessions.length;s++)for(var o=i.sessions[s],l=new Date(o.sampletime),c=0;c<n.length;c++)"sampletime"!=n[c]&&t.seriesPropertiesMapping2[n[c]].values.push(new g.DateValue(l,o[n[c]]));t.SelectedSessions=new g.LineChartData(r)}))},e}();ge.decorators=[{type:r.Component,args:[{selector:"topact_search",providers:[{provide:y.LocalizationService,useClass:fe}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">\r\n {{\'Top Activities\' | localize: lc}}\r\n <span *ngIf="DirInfos"> - \r\n {{\'\' + DirInfos.cpus + \' \' + (\'CPU\' | localize: lc) + (DirInfos.rssplan ? \' - \' + DirInfos.rssplan : \'\')}} \r\n Load average: {{ DirInfos.lavg1 | number : \'1.1-2\' : \'it\'}} {{ DirInfos.lavg5 | number : \'1.1-2\' : \'it\'}} {{ DirInfos.lavg15 | number : \'1.1-2\' : \'it\'}}\r\n </span> \r\n </span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12 app-relative">\r\n <form role="form">\r\n <div class="row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-datetime [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterfrom" name="filterfrom" [Placeholder]="\'From\' | localize : lc"></form-datetime>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-datetime [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterto" name="filterto" [Placeholder]="\'To\' | localize : lc"></form-datetime>\r\n </div>\r\n <button [disabled]="searchView.searchinprogress || autoUpdate" class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n\r\n <div class="app-absolute app-right-25 app-top-40">\r\n <div class="pull-right">\r\n {{\'Update every\' | localize : lc}} <input [readonly]="autoUpdate" maxlength="3" class="form-control app-updevery-input" type="text" [(ngModel)]="seconds" name="secs" /> {{\'second/s\' | localize : lc}}\r\n </div>\r\n <div class="pull-right m-t-2 app-margin-right-5">\r\n <label class="switch">\r\n <input type="checkbox" [(ngModel)]="autoUpdate" (ngModelChange)="autoUpdateChanged();" />\r\n <div class="slider round"></div>\r\n </label>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12 app-margin-top-5">\r\n <p *ngIf="!searchView"><em>{{\'Loading Data\' | localize : lc}}</em></p>\r\n <div *ngIf="searchView" class="row">\r\n <div class="col-md-12 app-no-padding">\r\n <div style="width: 100%; height: 290px">\r\n <es-line-chart *ngIf="TopActiveSessions"\r\n [MinGridDistance]="65"\r\n [Timeline]="false"\r\n [FinalInstants]="false"\r\n [LegendPadding]="{top: 0, bottom: 7, right: 0, left: 10}"\r\n [Fill]="true"\r\n [MergeDatasets]="true"\r\n [Stacked]="true"\r\n [Data]="TopActiveSessions"\r\n [Legend]="true" \r\n name="topactsession"\r\n [DataGroupingThreshold]="99999999"\r\n (onSelectionChanged)="dataSelectionChanged($event)" (chartLoaded)="onChartLoaded($event)"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class="col-md-5">\r\n <h5>{{\'Top Nodes\' | localize : lc}}</h5>\r\n <es-table [(ngModel)]="TopNodes" [HidePaging]="true">\r\n <ng-template #header>\r\n <th class="app-col-min">{{\'Node\' | localize : lc}}</th>\r\n <th>{{\'Node Description\' | localize : lc}}</th>\r\n <th class="app-col-min">{{\'Activity\' | localize : lc}}</th>\r\n <th class="app-col-min app-nowrap">{{\'Node Type\' | localize : lc}}</th>\r\n <th class="app-col-min app-nowrap">{{\'Wait Class Name\' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class="app-col-min"><span class="app-link" (click)="loadNodeDetails(node.profnodeid); dlgNodeDetails.show();">{{node.profnodeid}}</span></td>\r\n <td><span title="{{node.profnodedesc}}">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + "..." : node.profnodedesc}}</span></td>\r\n <td class="app-nowrap">{{node.activity | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class="col-md-7">\r\n <h5>{{\'Top Sessions\' | localize : lc}}</h5>\r\n <es-table [(ngModel)]="TopSessions" [HidePaging]="true">\r\n <ng-template #header>\r\n <th class="app-col-min">ID</th>\r\n <th>{{\'User\' | localize : lc}}</th>\r\n <th>{{\'Tenant\' | localize : lc}}</th>\r\n <th>{{\'Process\' | localize : lc}}</th>\r\n <th>{{\'Activity\' | localize : lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td class="app-col-min"><span class="app-link" (click)="loadSessionDetails(session.sid, session.serial); dlgSessionDetails.show();">{{session.sid}}</span></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.cpu | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.wait | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.db | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.script | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.throttle | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.sleep | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.net | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.io | number : \'1.1-2\' : \'it\'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <node-detail *ngIf="NodeDetails" [NodeDetails]="NodeDetails" (onClose)="dlgNodeDetails.hide()"></node-detail>\r\n</div>\r\n\r\n<div bsModal #dlgSessionDetails="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <div class="modal-dialog modal-feminist" emaDraggable>\r\n <div class="modal-content">\r\n <div class="modal-header">\r\n <h4 class="modal-title pull-left">{{\'Dettaglio Sessione\' | localize: lc}}<span *ngIf="SessionDetails"> {{SessionDetails.sid}}</span></h4>\r\n <button type="button" class="close pull-right" (click)="dlgSessionDetails.hide()" aria-label="Close"><span aria-hidden="true">×</span></button>\r\n </div>\r\n <div class="modal-body" *ngIf="SessionDetails">\r\n <div class="row">\r\n <div class="col-md-6"><strong>{{\'Seriale\' | localize: lc}}</strong>: {{SessionDetails.serial}} </div>\r\n <div class="col-md-6"><strong>{{\'Stato\' | localize: lc}}</strong>: {{SessionDetails.status}} </div>\r\n <div class="col-md-6"><strong>{{\'Tipo\' | localize: lc}}</strong>: {{SessionDetails.type}}</div>\r\n <div class="col-md-6"><strong>{{\'Utente\' | localize: lc}}</strong>: {{SessionDetails.user}} <span *ngIf="SessionDetails.tenant">({{SessionDetails.tenant}})</span></div>\r\n </div>\r\n\r\n <div style="display: flex; width: 100%; margin-top: 15px;">\r\n <div style="flex-grow: 0;display: flex;flex-direction: column">\r\n <h5>Prime Istruzioni</h5>\r\n <div *ngIf="SelectedTopNodes">\r\n <es-table [(ngModel)]="SelectedTopNodes" [ArraymodeItemsPerPage]="10">\r\n <ng-template #header>\r\n <th class="app-col-min">{{\'Nodo\' | localize: lc}}</th>\r\n <th>{{\'Descrizione Nodo\' | localize: lc}}</th>\r\n <th class="app-col-min">{{\'Attività\' | localize: lc}}</th>\r\n <th class="app-col-min app-nowrap">{{\'Tipo Nodo\' | localize: lc}}</th>\r\n <th class="app-col-min app-nowrap">{{\'Classe Attesa\' | localize: lc}}</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-node>\r\n <td class="app-col-min"><span class="app-link"(click)="loadNodeDetails(node.profnodeid); dlgNodeDetails.show();">{{node.profnodeid}}</span></td>\r\n <td><span title="{{node.profnodedesc}}">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + "..." : node.profnodedesc}}</span></td>\r\n <td class="app-nowrap">{{node.activity | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n <div style="width: 15px;"></div>\r\n <div style="flex-grow: 2;display: flex;flex-direction: column">\r\n <h5>Attività</h5>\r\n <div *ngIf="SelectedSessions" style="width: 100%; height: 290px">\r\n <es-line-chart [MinGridDistance]="65"\r\n [Timeline]="false"\r\n [FinalInstants]="false"\r\n [Stacked]="true"\r\n [LegendPadding]="{top: 0, bottom: 7, right: 0, left: 10}"\r\n [Fill]="true"\r\n [MergeDatasets]="true"\r\n [Data]="TopActiveSessions"\r\n [Legend]="true" \r\n name="session_details"\r\n [DataGroupingThreshold]="99999999"\r\n (chartLoaded)="onChartLoaded($event, true)">\r\n </es-line-chart>\r\n \x3c!-- <es-table [(ngModel)]="SelectedSessions" [ArraymodeItemsPerPage]="10">\r\n <ng-template #header>\r\n <th class="app-col-min">Timestamp</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Net</th>\r\n <th>IO</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-session>\r\n <td class="app-col-min" style="text-wrap: nowrap;"><strong>{{session.sampletime | loc_date: \'DD/MM/YYYY HH:mm:ss\'}}</strong></td>\r\n <td>{{session.cputime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.waittime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.dbtime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.scripttime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.throttletime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.sleeptime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.nettime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.iotime | number : \'1.1-2\' : \'it\'}}</td>\r\n </ng-template>\r\n </es-table> --\x3e\r\n </div>\r\n </div>\r\n </div>\r\n <div style="display: flex; width: 100%;">\r\n <div style="flex-grow: 1;">\r\n <h5>Statistiche Thread</h5>\r\n <div>\r\n <es-table [(ngModel)]="SessionDetails.threads" [ArraymodeItemsPerPage]="10" [Selection]="true" [SingleSelection]="true" (onSelectionChanged)="threadSelectionChanged($event)">\r\n <ng-template #header>\r\n <th>Thread</th>\r\n <th>Stato</th>\r\n <th>Tipo</th>\r\n <th>API</th>\r\n <th>Attesa corrente</th>\r\n <th>Nodo di attesa</th>\r\n <th>Attesa su</th>\r\n <th>Classe</th>\r\n <th>Par. 1</th>\r\n <th>Par. 2</th>\r\n <th>Par. 3</th>\r\n <th>Tempo Attesa</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-thread>\r\n <td>{{thread.tid}}</td>\r\n <td>{{thread.status}}</td>\r\n <td>{{thread.type}}</td>\r\n <td>{{thread.api}}</td>\r\n <td>{{thread.wait}}</td>\r\n <td>{{thread.waitnode}}</td>\r\n <td>{{thread.waiteventtype}}</td>\r\n <td>{{thread.waitclassname}}</td>\r\n <td>{{thread.waitpar1}}</td>\r\n <td>{{thread.waitpar2}}</td>\r\n <td>{{thread.waitpar3}}</td>\r\n <td>{{thread.waittime | number : \'1.1-2\' : \'it\'}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-primary" (click)="dlgSessionDetails.hide()">{{\'Chiudi\' | localize: lc}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],ge.ctorParameters=function(){return[{type:T.DateService},{type:y.LocalizationService},{type:S.PreferencesService},{type:t.Location},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var ve=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),ye=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Search Application Locks",["Ricerca Lock Applicativi"]),e.prototype.set.call(i,"en->it","Name",["Nome"]),e.prototype.set.call(i,"en->it","Loading Application Locks",["Carico i Lock Applicativi"]),e.prototype.set.call(i,"en->it","Global",["Globale"]),i}return z(t,e),t}(y.LocalizationService);ye.decorators=[{type:r.Injectable}],ye.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var be=function(){function e(e,t,i,r,n,s,a,o,l){this.lc=e,this.localStorage=t,this.expExts=i,this.intercom=r,this.http=n,this.route=s,this.location=a,this.backend=o,this.mod=l,this.locksView=new ve,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.Init=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotEnqueue").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/serverenqueues"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotEnqueue").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.locksView=e,this.POSTGetProcesses(this.backend+_,this.locksView)):(this.locksView=new ve,this.sendSearch())},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),e&&(this.locksView.page=1),this.POSTGetProcesses(this.backend+_,this.locksView)},e.prototype.POSTGetProcesses=function(e,t){var i=this;this.http.post(e,t).subscribe((function(e){i.locksView=e,i.localStorage.setItem("HotEnqueue",i.locksView).subscribe()}))},e}();be.decorators=[{type:r.Component,args:[{selector:"adm_enq",viewProviders:[{provide:y.LocalizationService,useClass:ye}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Search Application Locks\' | localize : lc}}</span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <form role="form">\r\n <div class="col-md-12 row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="locksView.filtersid" name="filtersid" [Placeholder]="\'SID\'"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="locksView.filterlock" name="filterlock" [Placeholder]="\'Name\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper app-padding-top-10">\r\n <form-checkbox [FormLayout]="false" [Validation]="false" [(ngModel)]="locksView.filterglobal" name="filterglobal"></form-checkbox> \r\n <span class="app-pointer" (click)="locksView.filterglobal = !locksView.filterglobal">{{\'Global\' | localize : lc}}</span>\r\n </div>\r\n <button class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </form>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!locksView"><em>{{\'Loading Application Locks\' | localize : lc}}...</em></p>\r\n <div *ngIf="locksView">\r\n <es-table [(ngModel)]="locksView" [AutoUpdate]="true" [OrderByColumn]="true" (onSearchRequest)="sendSearch($event);"></es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],be.ctorParameters=function(){return[{type:y.LocalizationService},{type:S.PreferencesService},{type:T.ExportService},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:t.Location},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var Se=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),we=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","System Metrics",["Metriche di Sistema"]),e.prototype.set.call(i,"en->it","Session ID",["Cod. Sessione"]),e.prototype.set.call(i,"en->it","Session Serial",["Seriale Sessione"]),e.prototype.set.call(i,"en->it","Filter Metrics...",["Filtra Metriche..."]),e.prototype.set.call(i,"en->it","Loading Data",["Carico i Dati"]),e.prototype.set.call(i,"en->it","Update every",["Aggiorna ogni"]),e.prototype.set.call(i,"en->it","second/s",["secondo/i"]),e.prototype.set.call(i,"en->it","Metrics Instance",["Istanza Metriche"]),i}return z(t,e),t}(y.LocalizationService);we.decorators=[{type:r.Injectable}],we.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var Te=function(){function e(e,t,i,r,n,s,a,o,l){this.dateExts=e,this.lc=t,this.localStorage=i,this.location=r,this.intercom=n,this.http=s,this.route=a,this.backend=o,this.mod=l,this.MetricsChartCache={},this.searchView=new Se,this.autoUpdate=!1,this.seconds="5",this.Instances=[],this.selectedInstance="",this.instanceRequired=!1,this.metricsToShow=[],this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.Init=function(e){this.doInit(e)},e.prototype.dateChanged=function(){var e=this;this.metricsToShow=[],this.Metrics=[],this.instanceRequired=!1,this.Instances=[],this.selectedInstance="",this.searchView.filtermetrics=[];var t=(new P.HttpParams).set("from",this.searchView.filterfrom||"").set("to",this.searchView.filterto||"");this.http.get(this.backend+j,t).subscribe((function(t){return e.Metrics=t}))},e.prototype.doInit=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotSearchMetrics").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/metrics"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotSearchMetrics").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetItems(this.backend+R,this.searchView,!1)):(this.searchView=new Se,this.sendSearch()),this.dateChanged()},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.sendSearch=function(e,t,i){void 0===e&&(e=!0),void 0===t&&(t=!1),void 0===i&&(i=null),t||(this.MetricsChartCache={}),this.searchView.searchinprogress=!0,this.searchView.itemsperpageoverride=999999,e&&(this.searchView.page=1),this.POSTGetItems(this.backend+R,null!=i?i:this.searchView,t)},e.prototype.POSTGetItems=function(e,t,i){var r=this;t.filterrealtime=i?t.filterrealtime:!(t.filterfrom||t.filterto),this.http.post(e,t).subscribe((function(e){return x(r,void 0,void 0,(function(){var t=this;return M(this,(function(r){return i?e.items.forEach((function(e){e.values.forEach((function(i){var r=t.MetricsChartCache[t.metricKey(e,i)];r&&(i.series.forEach((function(e){e.values=e.values.filter((function(e){return t.dateExts.getDateConvertion(e.d).isAfter(r.lastTs)}))})),i.series.some((function(e){return e.values.length>0}))&&(r.lastTs=i.series.map((function(e){return dayjs.max(e.values.map((function(e){return t.dateExts.getDateConvertion(e.d)})))}))[0],r.chart.addData(i)))}))})):(this.selectedInstance="",this.metricsToShow=[],this.searchView=e,this.searchView.items.forEach((function(e){e.instance&&!t.Instances.find((function(t){return t.id==e.instance}))&&t.Instances.push(new ne(e.instance,e.instance))})),this.instanceRequired=this.Instances.length>1,1==this.Instances.length?(this.selectedInstance=this.Instances[0].id,this.instanceSelected()):this.instanceSelected(!0),this.localStorage.setItem("HotSearchMetrics",this.searchView).subscribe()),this.searchView.searchinprogress=!1,[2]}))}))}))},e.prototype.instanceSelected=function(e){var t=this;void 0===e&&(e=!1),(this.selectedInstance||e)&&(this.metricsToShow=this.searchView.items.filter((function(e){return!t.selectedInstance||e.instance==t.selectedInstance})))},e.prototype.linkChartToMetric=function(e,t,i){var r=this;this.MetricsChartCache[this.metricKey(e,t)]={chart:i,lastTs:t.series.map((function(e){return dayjs.max(e.values.map((function(e){return r.dateExts.getDateConvertion(e.d)})))}))[0]}},e.prototype.metricKey=function(e,t){return e.name+" - "+t.xtitle+(e.instance?" - "+e.instance:"")},e.prototype.autoUpdateChanged=function(){var e=this;/^[1-9]\d*$/.test(this.seconds)||(this.seconds="10");var t=1e3*parseInt(this.seconds,null);this.autoUpdate?(this.sendSearch(!1,!0),this.updateTimer=setInterval((function(){e.sendSearch(!1,!0)}),t)):clearInterval(this.updateTimer)},e}();Te.decorators=[{type:r.Component,args:[{selector:"metrics_search",providers:[{provide:y.LocalizationService,useClass:we}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">\r\n {{\'System Metrics\' | localize : lc}}\r\n </span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12">\r\n <form role="form">\r\n <div class="row">\r\n <div class="col-md-11">\r\n <div class="col-md-12 row app-no-padding app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-datetime [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterfrom" name="filterfrom" [Placeholder]="\'From\' | localize : lc" (inputChange)="dateChanged();"></form-datetime>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-datetime [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterto" name="filterto" [Placeholder]="\'To\' | localize : lc" (inputChange)="dateChanged();"></form-datetime>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtersid" name="filtersid" [Placeholder]="\'Session ID\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterserial" name="filterserial" [Placeholder]="\'Session Serial\' | localize : lc"></form-input>\r\n </div>\r\n </div>\r\n <div class="col-md-12 row app-no-padding">\r\n <div class="col-12 app-filter-wrapper">\r\n <form-multiselect [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtermetrics" [IdField]="\'name\'" [Display]="\'{name}\'" name="filtermetrics" [SelectLabel]="\'Filter Metrics...\' | localize : lc" [Source]="Metrics"></form-multiselect>\r\n </div>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n <div class="col-md-1 app-no-padding">\r\n <button [disabled]="searchView.searchinprogress || autoUpdate" class="input-group-addon btn app-btn-search" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </form>\r\n <div class="app-col-12 app-margin-top-15">\r\n <div class="pull-right">\r\n {{\'Update every\' | localize : lc}} <input [readonly]="autoUpdate" maxlength="3" class="form-control app-updevery-input" type="text" [(ngModel)]="seconds" /> {{\'second/s\' | localize : lc}}\r\n </div>\r\n <div class="pull-right m-t-2 app-margin-right-5">\r\n <label class="switch">\r\n <input type="checkbox" [(ngModel)]="autoUpdate" (ngModelChange)="autoUpdateChanged();" />\r\n <div class="slider round"></div>\r\n </label>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!searchView"><em>{{\'Loading Data\' | localize : lc}}</em></p>\r\n <div *ngIf="searchView && instanceRequired">\r\n <form-select [Validation]="false" [Label]="\'Metrics Instance\' | localize : lc" [(ngModel)]="selectedInstance" name="instance" [Source]="Instances" (inputChange)="instanceSelected()" required></form-select>\r\n </div>\r\n <div *ngIf="searchView && metricsToShow && metricsToShow.length > 0">\r\n <div class="col-md-12 app-padding-right-0 row app-margin-top-15">\r\n <ng-container *ngFor="let metric of metricsToShow; let i = index">\r\n <div class="col-md-4 app-no-padding app-simple-border" *ngFor="let chart of metric.values; let z = index">\r\n <div style="width: 100%; height: 260px">\r\n <es-line-chart [XTitle]="chart.xtitle"\r\n [YTitle]="chart.ytitle"\r\n [MinGridDistance]="65"\r\n [Timeline]="false"\r\n [LegendPadding]="{top: 0, bottom: 7, right: 0, left: 10}"\r\n [MergeDatasets]="true"\r\n [Data]="chart"\r\n [Animations]="true"\r\n [Legend]="chart.legend"\r\n name="metric_{{i}}_chart_{{z}}"\r\n (chartLoaded)="linkChartToMetric(metric, chart, $event);"\r\n [DataGroupingThreshold]="99999999">\r\n </es-line-chart>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],Te.ctorParameters=function(){return[{type:T.DateService},{type:y.LocalizationService},{type:S.PreferencesService},{type:t.Location},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var Pe=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Server Logs",["Log del Server"]),i}return z(t,e),t}(y.LocalizationService);Pe.decorators=[{type:r.Injectable}],Pe.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var Ie=function(){function e(e,t,i,r,n){this.intercom=e,this.http=t,this.lc=i,this.route=r,this.backend=n,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.http.get(this.backend+q).subscribe((function(t){e.Log=t}))},e}();Ie.decorators=[{type:r.Component,args:[{selector:"adm_logs",viewProviders:[{provide:y.LocalizationService,useClass:Pe}],template:'<div class="row">\r\n <div class="col-12 bottom-15">\r\n <p *ngIf="Log" class="app-whitespace-prewrap" [innerHTML]="Log"></p>\r\n </div>\r\n</div>'}]}],Ie.ctorParameters=function(){return[{type:T.InterComService},{type:w.HTTPService},{type:y.LocalizationService},{type:n.ActivatedRoute},{type:String,decorators:[{type:r.Inject,args:[Z]}]}]};var De=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Active Sessions",["Sessioni Attive"]),e.prototype.set.call(i,"en->it","Activity Node Details",["Dettaglio Attività Nodo"]),e.prototype.set.call(i,"en->it","Event Type",["Tipo Evento"]),e.prototype.set.call(i,"en->it","Elapsed (With Children)",["Tempo Trascorso (Con Figli)"]),e.prototype.set.call(i,"en->it","Wait Class",["Classe Attesa"]),e.prototype.set.call(i,"en->it","Elapsed (No Children)",["Tempo Trascorso"]),e.prototype.set.call(i,"en->it","Wait Stack",["Stack di Attesa"]),e.prototype.set.call(i,"en->it","Resources Usage",["Utilizzo Risorse"]),e.prototype.set.call(i,"en->it","Executions",["Esecuzioni"]),e.prototype.set.call(i,"en->it","Event detail",["Dettaglio evento"]),i}return z(t,e),t}(y.LocalizationService);De.decorators=[{type:r.Injectable}],De.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var Ce=function(){function e(e){this.lc=e,this.onClose=new r.EventEmitter}return e.prototype.ngOnInit=function(){var e=new g.LineSerie(this.lc.loc("Active Sessions"),this.NodeDetails.activesessions);this.NodeDetails.sessionchart=new g.LineChartData([e]),this.NodeDetails.loadchart=new g.PieChartData([new g.KeyValueColor("CPU",this.NodeDetails.cpuperc),new g.KeyValueColor("Wait",this.NodeDetails.waitperc),new g.KeyValueColor("DB",this.NodeDetails.dbperc),new g.KeyValueColor("Script",this.NodeDetails.scriptperc),new g.KeyValueColor("Throttle",this.NodeDetails.throttleperc),new g.KeyValueColor("Sleep",this.NodeDetails.sleepperc),new g.KeyValueColor("Networking",this.NodeDetails.networkperc),new g.KeyValueColor("IO",this.NodeDetails.ioperc)])},e.prototype.closeDialog=function(){this.onClose.emit(!0)},e}();Ce.decorators=[{type:r.Component,args:[{selector:"node-detail",viewProviders:[{provide:y.LocalizationService,useClass:De}],template:'<div class="modal-dialog modal-xl" emaDraggable>\r\n <div class="modal-content">\r\n <div class="modal-header">\r\n <h4 class="modal-title pull-left">\r\n {{\'Activity Node Details\' | localize : lc}}\r\n <span *ngIf="NodeDetails"> {{NodeDetails.nodeid}}</span>\r\n </h4>\r\n <button type="button" class="close pull-right" (click)="closeDialog()" aria-label="Close">\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <div class="modal-body" *ngIf="NodeDetails">\r\n <div class="row">\r\n <div class="col-md-6">\r\n <strong>{{\'Event Type\' | localize: lc}}</strong>: {{NodeDetails.eventtypedesc}} <strong>{{\'Wait Class\' | localize: lc}}</strong>: {{NodeDetails.waitclassname}}\r\n </div>\r\n <div class="col-md-6">\r\n <strong>{{\'Elapsed (With Children)\' | localize: lc}}</strong>: {{NodeDetails.elapsed}} s\r\n </div>\r\n <div class="col-md-6">\r\n\t\t\t\t\t<strong>{{\'Executions\' | localize: lc}}</strong>: {{NodeDetails.executions}}\r\n </div>\r\n <div class="col-md-6">\r\n <strong>{{\'Elapsed (No Children)\' | localize: lc}}</strong>: {{NodeDetails.elapsedlesschildren}} s\r\n </div>\r\n </div>\r\n\t\t\t<div>\r\n\t\t\t\t<h5 class="app-margin-top-10"><strong>{{\'Event detail\' | localize: lc}}</strong></h5>\r\n\t\t\t\t{{NodeDetails.nodedescription}}\r\n\t\t\t</div>\r\n\t\t\t<div style="max-height: 200px; overflow: auto" *ngIf="(NodeDetails?.waitstack?.length || 0) > 0">\r\n <h5 class="app-margin-top-10"><strong>{{\'Wait Stack\' | localize: lc}}</strong></h5>\r\n <div *ngFor="let wait of NodeDetails.waitstack; let i = index;">\r\n <ng-container *ngFor="let _ of [].constructor(i+1)">-</ng-container> {{wait.nodeid}} - {{wait.nodedescription}}: \r\n <strong>{{\'Event Type\' | localize: lc}}</strong>: {{wait.eventtypedesc}} \r\n <strong>{{\'Wait Class\' | localize: lc}}</strong>: {{wait.waitclassname}}\r\n </div>\r\n </div>\r\n <div style="height: 200px;">\r\n <h5 class="app-margin-top-10"><strong>{{\'Resources Usage\' | localize: lc}}</strong></h5>\r\n <es-line-chart *ngIf="NodeDetails.sessionchart"\r\n [MinGridDistance]="65"\r\n [Timeline]="false"\r\n [FinalInstants]="false"\r\n [LegendPadding]="{top: 0, bottom: 7, right: 0, left: 10}"\r\n [Fill]="true"\r\n [MergeDatasets]="true"\r\n [Data]="NodeDetails.sessionchart"\r\n [Legend]="true" \r\n name="nodeDetailSessionChart"\r\n [DataGroupingThreshold]="99999999"></es-line-chart>\r\n </div>\r\n <div style="height: 200px;">\r\n <es-pie-chart *ngIf="NodeDetails.loadchart" [Legend]="true" [Data]="NodeDetails.loadchart" name="nodeDetailLoadChart"></es-pie-chart>\r\n </div>\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-primary" (click)="closeDialog()">{{\'Close\' | localize : lc}}</button>\r\n </div>\r\n </div>\r\n</div>'}]}],Ce.ctorParameters=function(){return[{type:y.LocalizationService}]},Ce.propDecorators={NodeDetails:[{type:r.Input}],onClose:[{type:r.Output}]};var Ve=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),ze=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Search Application Dynamic Views",["Ricerca Viste Dinamiche Applicative"]),e.prototype.set.call(i,"en->it","Name",["Nome"]),e.prototype.set.call(i,"en->it","Loading Application Dynamic Views",["Carico le Viste Dinamiche Applicative"]),e.prototype.set.call(i,"en->it","View Name is mandatory for search operations",["Il nome della vista è obbligatorio per le operazioni di ricerca"]),e.prototype.set.call(i,"en->it","No element found for Dynamic View",["Nessun elemento trovato per la vista dinamica"]),i}return z(t,e),t}(y.LocalizationService);ze.decorators=[{type:r.Injectable}],ze.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var Ae=function(){function e(e,t,i,r,n,s,a,o){this.lc=e,this.intercom=t,this.localStorage=i,this.http=r,this.route=n,this.location=s,this.backend=a,this.mod=o,this.searchView=new Ve,this.Names=[],this.badSearch=!1,this.currentName="",this.filterName="",this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.http.get(W).subscribe((function(t){e.Names=t})),this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.Init=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotDinamitato").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/serverviews"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotDinamitato").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetItems(this.backend+F,this.searchView)):(this.searchView=new Ve,this.sendSearch())},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),this.searchView.searchinprogress=!0,e&&(this.searchView.page=1),this.searchView.filtername=this.filterName,this.POSTGetItems(this.backend+F,this.searchView)},e.prototype.POSTGetItems=function(e,t){var i=this;if(!this.searchView.filtername)return this.badSearch=!0,m.AppSearch.reset(this.searchView),void(this.searchView=JSON.parse(JSON.stringify(this.searchView)));this.badSearch=!1,this.currentName!=this.searchView.filtername&&(this.currentName=this.searchView.filtername,this.searchView=null),this.http.post(e,t).subscribe((function(e){i.searchView=e,i.searchView.searchinprogress=!1,i.localStorage.setItem("HotDinamitato",i.searchView).subscribe()}))},e}();Ae.decorators=[{type:r.Component,args:[{selector:"adm_dynamic_views",viewProviders:[{provide:y.LocalizationService,useClass:ze}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Search Application Dynamic Views\' | localize : lc}}</span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12 bottom-15">\r\n <form role="form">\r\n <div class="row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="filterName" name="filtername" [Source]="Names" [SelectLabel]="\'Name\' | localize : lc"></form-select>\r\n </div>\r\n <button class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <div class="row">\r\n <div class="col-md-12">\r\n <div *ngIf="badSearch" class="card card-info app-white-text app-padding-10">{{\'View Name is mandatory for search operations\' | localize : lc}}</div>\r\n <ng-container *ngIf="!badSearch">\r\n <p *ngIf="!searchView"><em>{{\'Loading Application Dynamic Views\' | localize : lc}}...</em></p>\r\n <div *ngIf="searchView && searchView.items.length > 0">\r\n <es-table [(ngModel)]="searchView" [AutoUpdate]="true" [OrderByColumn]="true" (onSearchRequest)="sendSearch($event);"></es-table>\r\n </div>\r\n <div *ngIf="searchView && searchView.items.length == 0 && !searchView.searchinprogress" class="card card-info app-white-text app-padding-10">\r\n {{\'No element found for Dynamic View\' | localize : lc}} <strong>{{searchView.filtername}}</strong>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],Ae.ctorParameters=function(){return[{type:y.LocalizationService},{type:T.InterComService},{type:S.PreferencesService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:t.Location},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var xe=function(){function e(){}return e.prototype.transform=function(e){return this.secondsToHms(e)},e.prototype.secondsToHms=function(e){e=Number(e);var t=Math.floor(e/3600),i=Math.floor(e%3600/60),r=Math.floor(e%3600%60);return(t>0?t+" h, ":"")+(i>0?i+" min, ":"")+(r>0?r+" sec":"")},e}();xe.decorators=[{type:r.Pipe,args:[{name:"format_time"}]}],xe.ctorParameters=function(){return[]};var Me,Le="EsAdminModule";(Me=e.AdmMessageTypes||(e.AdmMessageTypes={}))[Me.Message=0]="Message";var ke=function(){function t(e){this.intercom=e}return t.prototype.register=function(){var e=this;this.intercom.register(Le),this.intercom.outbounds[Le].subscribe((function(t){e.handleOutbound(t.type,t.message)}))},t.prototype.handleOutbound=function(t,i){switch(t){case e.AdmMessageTypes.Message:myconfig.DEBUG_MODE&&console.log("@admin-module outbound message: "+i)}},t}();ke.decorators=[{type:r.Injectable}],ke.ctorParameters=function(){return[{type:T.InterComService}]};var Ne={title:"Search Application Processes",internalNavigation:!1},Ee={title:"Server Profiler",internalNavigation:!1},Oe={title:"Top Activities",internalNavigation:!1},Ue={title:"System Metrics",internalNavigation:!1},je={title:"Server Logs",internalNavigation:!1},Re={title:"Search Application Audits",internalNavigation:!1},Ge={title:"Search Application Locks",internalNavigation:!1},He={title:"Search Application Dynamic Views",internalNavigation:!1},Fe=[{path:"",children:[{path:"serverworkers",component:oe,data:Ne},{path:"profiler",component:ue,data:Ee},{path:"topact",component:ge,data:Oe},{path:"metrics",component:Te,data:Ue},{path:"serverlogs",component:Ie,data:je},{path:"serveraudits",component:re,data:Re},{path:"serverenqueues",component:be,data:Ge},{path:"serverviews",component:Ae,data:He}]}],_e=[t.CommonModule,i.FormsModule,a.MatDatepickerModule,o.MatDayjsDateModule,s.MatIconModule,l.MatInputModule,p.ModalModule,u.TooltipModule,h.BsDropdownModule,d.CsvModule,b.ContextMenuModule,y.LocalizationModule,m.EsTableModule,f.FormsAndValidationsModule,v.EsGertrudeModule,g.EsChartsModule,c.NgxMatDatetimePickerModule,n.RouterModule.forChild(Fe)],qe=[oe,ue,ge,Ae,Ie,re,be,Te,Ce],We=[xe],Ke=myconfig.LOCALE,Be=myconfig.BACKEND_URL,$e=!!myconfig.TRANSACTIONS_TIMEOUT_S,Ye=function(e){this.commService=e,console.log("@esfaenza/admin-module: BOOTSTRAP"),this.commService.register()};Ye.decorators=[{type:r.NgModule,args:[{imports:k(_e),declarations:k(qe,We),providers:[ke,{provide:Q,useValue:Ke},{provide:Z,useValue:Be},{provide:te,useValue:$e}]}]}],Ye.ctorParameters=function(){return[{type:ke}]},e.ADM_BACKEND_URL=Z,e.ADM_CONVERSATIONS=te,e.ADM_LOCALE=Q,e.ADM_MODULE_PATH=ee,e.AdmModule=Ye,e.MK_ADM=Le,e.routeConfig=Fe,e.ɵ0=Ne,e.ɵ1=Ee,e.ɵ10=$e,e.ɵ2=Oe,e.ɵ3=Ue,e.ɵ4=je,e.ɵ5=Re,e.ɵ6=Ge,e.ɵ7=He,e.ɵ8=Ke,e.ɵ9=Be,e.ɵa=oe,e.ɵb=ae,e.ɵc=ue,e.ɵd=he,e.ɵe=ge,e.ɵf=fe,e.ɵg=Te,e.ɵh=we,e.ɵi=Ie,e.ɵj=Pe,e.ɵk=re,e.ɵl=ie,e.ɵm=be,e.ɵn=ye,e.ɵo=Ae,e.ɵp=ze,e.ɵq=Ce,e.ɵr=De,e.ɵs=xe,e.ɵt=ke,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/forms"),require("@angular/core"),require("@angular/router"),require("@angular/material/icon"),require("@angular/material/datepicker"),require("@esfaenza/material-dayjs-adapter"),require("@angular/material/input"),require("@angular-material-components/datetime-picker"),require("ngx-bootstrap/modal"),require("@ctrl/ngx-csv"),require("ngx-bootstrap/dropdown"),require("ngx-bootstrap/tooltip"),require("@esfaenza/es-table"),require("@esfaenza/forms-and-validations"),require("@esfaenza/es-charts"),require("@esfaenza/gertrude"),require("@esfaenza/localizations"),require("@esfaenza/ngx-contextmenu"),require("@esfaenza/preferences"),require("@esfaenza/httpservice"),require("@esfaenza/extensions"),require("@angular/common/http"),require("cerialize"),require("rxjs/operators"),require("rxjs")):"function"==typeof define&&define.amd?define("@esfaenza/admin-module",["exports","@angular/common","@angular/forms","@angular/core","@angular/router","@angular/material/icon","@angular/material/datepicker","@esfaenza/material-dayjs-adapter","@angular/material/input","@angular-material-components/datetime-picker","ngx-bootstrap/modal","@ctrl/ngx-csv","ngx-bootstrap/dropdown","ngx-bootstrap/tooltip","@esfaenza/es-table","@esfaenza/forms-and-validations","@esfaenza/es-charts","@esfaenza/gertrude","@esfaenza/localizations","@esfaenza/ngx-contextmenu","@esfaenza/preferences","@esfaenza/httpservice","@esfaenza/extensions","@angular/common/http","cerialize","rxjs/operators","rxjs"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).esfaenza=e.esfaenza||{},e.esfaenza["admin-module"]={}),e.ng.common,e.ng.forms,e.ng.core,e.ng.router,e.ng.material.icon,e.ng.material.datepicker,e.materialDayjsAdapter,e.ng.material.input,e.datetimePicker,e.modal,e.ngxCsv,e.dropdown,e.tooltip,e.esTable,e.formsAndValidations,e.esCharts,e.gertrude,e.localizations,e.ngxContextmenu,e.preferences,e.httpservice,e.extensions,e.ng.common.http,e.cerialize,e.rxjs.operators,e.rxjs)}(this,(function(e,t,i,r,n,s,a,o,l,c,p,d,h,u,m,f,g,v,y,b,S,w,T,P,I,D,C){"use strict";var V=function(e,t){return(V=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])})(e,t)};function z(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}V(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}function A(e,t,i,r){var n,s=arguments.length,a=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;o>=0;o--)(n=e[o])&&(a=(s<3?n(a):s>3?n(t,i,a):n(t,i))||a);return s>3&&a&&Object.defineProperty(t,i,a),a}function x(e,t,i,r){return new(i||(i=Promise))((function(n,s){function a(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,o)}l((r=r.apply(e,t||[])).next())}))}function M(e,t){var i,r,n,s,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(s){return function(o){return function(s){if(i)throw new TypeError("Generator is already executing.");for(;a;)try{if(i=1,r&&(n=2&s[0]?r.return:s[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,s[1])).done)return n;switch(r=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(n=a.trys,(n=n.length>0&&n[n.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]<n[3])){a.label=s[1];break}if(6===s[0]&&a.label<n[1]){a.label=n[1],n=s;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(s);break}n[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{i=n=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,o])}}}Object.create;function k(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var r,n,s=i.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=s.next()).done;)a.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return a}function L(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(k(arguments[t]));return e}Object.create;var N=function(e){function t(){var t=e.call(this)||this;return t.filteraction="",t.filterhttp="",t}return z(t,e),t}(m.AppSearch),E="/api/Adm/ChangeProcessConsumerGroup",O="/api/Adm/GetConsumerGroups#cache",U="/api/Adm/GetInfos",j="/api/Adm/GetMetrics",R="/api/Adm/GetMetrics",G="/api/Adm/GetProfilerDataNodes",H="/api/Adm/GetServerAudits",F="/api/Adm/GetDynamicViewData",_="/api/Adm/GetServerLocks",q="/api/Adm/GetServerLogs",W="/api/Adm/GetDynamicViews",K="/api/Adm/GetServerWorkers",B="/api/Adm/GetTopActivities",$="/api/Adm/KillProcess",Y="/api/Adm/SetProcessTracing",J="/api/Adm/GetNodeStats",X="/api/Adm/GetSessionStats",Q=new r.InjectionToken("ADM_LOCALE"),Z=new r.InjectionToken("ADM_BACKEND_URL"),ee=new r.InjectionToken("ADM_MODULE_PATH"),te=new r.InjectionToken("ADM_CONVERSATIONS"),ie=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Search Application Audits",["Ricerca Audit Applicativi"]),e.prototype.set.call(i,"en->it","User",["Utente"]),e.prototype.set.call(i,"en->it","REST Call",["Chiamata REST"]),e.prototype.set.call(i,"en->it","Update",["Aggiornamento"]),e.prototype.set.call(i,"en->it","Route",["Route"]),e.prototype.set.call(i,"en->it","Action",["Azione"]),e.prototype.set.call(i,"en->it","HTTP Method",["Metodo HTTP"]),e.prototype.set.call(i,"en->it","Arguments",["Argomenti"]),e.prototype.set.call(i,"en->it","Object ID",["ID Oggetto"]),e.prototype.set.call(i,"en->it","Object Type",["Tipo Oggetto"]),e.prototype.set.call(i,"en->it","Object Data",["Dati Oggetto"]),e.prototype.set.call(i,"en->it","Loading Application Audits",["Carico gli Audit dell'Applicazione"]),e.prototype.set.call(i,"en->it","Date",["Data"]),e.prototype.set.call(i,"en->it","Address",["Indirizzo"]),e.prototype.set.call(i,"en->it","HTTP Response",["Risposta HTTP"]),e.prototype.set.call(i,"en->it","Application Error Code",["Codice Errore Applicativo"]),e.prototype.set.call(i,"en->it","Conversation ID",["Cod. Conversation"]),i}return z(t,e),t}(y.LocalizationService);ie.decorators=[{type:r.Injectable}],ie.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var re=function(){function e(e,t,i,r,n,s,a,o,l){this.lc=e,this.intercom=t,this.localStorage=i,this.http=r,this.route=n,this.location=s,this.backend=a,this.mod=o,this.usesConversations=l,this.searchView=new N,this.Actions=[],this.HttpMethods=[],this.searchInProgress=!1,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)}),this.HttpMethods=[{id:"GET",description:"GET"},{id:"POST",description:"POST"},{id:"PUT",description:"PUT"},{id:"PATCH",description:"PATCH"},{id:"DELETE",description:"DELETE"}],this.Actions=[{id:"C",description:this.lc.loc("REST Call")},{id:"U",description:this.lc.loc("Update")},{id:"D",description:this.lc.loc("Delete")}]}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.Init=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotAudittato").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/serveraudits"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotAudittato").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetProcesses(this.backend+H,this.searchView)):(this.searchView=new N,this.searchView.filterda=dayjs().add(-1,"month").format(this.lc.token("getSmallDateFormat")),this.searchView.filtera=dayjs().format(this.lc.token("getSmallDateFormat")),this.sendSearch())},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),this.searchInProgress=!0,e&&(this.searchView.page=1),this.POSTGetProcesses(this.backend+H,this.searchView)},e.prototype.POSTGetProcesses=function(e,t){var i=this;this.http.post(e,t).subscribe((function(e){i.searchView=e,i.searchInProgress=!1,i.localStorage.setItem("HotAudittato",i.searchView).subscribe()}))},e}();re.decorators=[{type:r.Component,args:[{selector:"adm_audits",viewProviders:[{provide:y.LocalizationService,useClass:ie}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Search Application Audits\' | localize : lc}}</span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12 bottom-15">\r\n <form role="form">\r\n <div class="row">\r\n <div class="col-md-11">\r\n <div class="col-md-12 row app-no-padding app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-date [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterda" name="filterda" [Placeholder]="\'From\' | localize : lc"></form-date>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-date [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtera" name="filtera" [Placeholder]="\'To\' | localize : lc"></form-date>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filteruser" name="filteruser" [Placeholder]="\'User\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filteraddress" name="filteraddress" [Placeholder]="\'Address\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterroute" name="filterroute" [Placeholder]="\'Route\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [SelectLabel]="\'Action\' | localize : lc" [(ngModel)]="searchView.filteraction" name="filteraction" [Source]="Actions"></form-select>\r\n </div>\r\n </div>\r\n <div class="col-md-12 row app-no-padding">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [SelectLabel]="\'HTTP Method\' | localize : lc" [(ngModel)]="searchView.filterhttp" name="filterhttp" [Source]="HttpMethods"></form-select>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterargs" name="filterargs" [Placeholder]="\'Arguments\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterobjid" name="filterobjid" [Placeholder]="\'Object ID\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterobjtype" name="filterobjtype" [Placeholder]="\'Object Type\' | localize : lc"></form-input>\r\n </div>\r\n \x3c!-- Per ora commentato --\x3e\r\n \x3c!-- <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper" *ngIf="usesConversations">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterconversationid" name="filterconversationid" [Placeholder]="\'Conversation ID\' | localize : lc"></form-input>\r\n </div> --\x3e\r\n </div>\r\n </div>\r\n <div class="col-md-1 app-no-padding">\r\n <button [disabled]="searchInProgress" class="input-group-addon btn app-btn-search" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!searchView"><em>{{\'Loading Application Audits\' | localize : lc}}...</em></p>\r\n <div *ngIf="searchView">\r\n <es-table [(ngModel)]="searchView" [MultipleOrderingDirectives]="true" (onSearchRequest)="sendSearch($event);">\r\n\r\n <span *th="\'Timestamp\'">{{\'Date\' | localize : lc}}</span>\r\n <span *th="\'User\'">{{\'User\' | localize : lc}}</span>\r\n <span *th="\'RemoteAddress\'">{{\'Address\' | localize : lc}}</span>\r\n <span *th="\'Action\'">{{\'Action\' | localize : lc}}</span>\r\n <span *th="\'HttpMethod\'">{{\'HTTP Method\' | localize : lc}}</span>\r\n <span *th="\'Route\'">{{\'Route\' | localize : lc}}</span>\r\n <span *th="\'Args\'">{{\'Arguments\' | localize : lc}}</span>\r\n <span *th="\'HttpResponse\'">{{\'HTTP Response\' | localize : lc}}</span>\r\n <span *th="\'NonStdErrorMessage\'">{{\'Application Error Code\' | localize : lc}}</span>\r\n <span *th="\'ConvId\'; If: usesConversations">{{\'Conversation ID\' | localize : lc}}</span>\r\n <span *th="\'ObjectType\'">{{\'Object Type\' | localize : lc}}</span>\r\n <span *th="\'ObjectId\'">{{\'Object ID\' | localize : lc}}</span>\r\n <span *th="\'ObjectData\'">{{\'Object Data\' | localize : lc}}</span>\r\n\r\n <strong *td="\'Timestamp\'; let item">{{item.timestamp | loc_date:\'DD/MM/YYYY HH:mm:ss\'}}</strong>\r\n <span *td="\'User\'; let item">{{item.user}}</span>\r\n <span *td="\'RemoteAddress\'; let item">{{item.address}}</span>\r\n <span *td="\'Action\'; let item">{{item.action}}</span>\r\n <span *td="\'HttpMethod\'; let item">{{item.httpmethod}}</span>\r\n <span *td="\'Route\'; let item">{{item.route}}</span>\r\n <span *td="\'Args\'; let item">{{item.args}}</span>\r\n <span *td="\'HttpResponse\'; let item">{{item.httpresponse}}</span>\r\n <span *td="\'NonStdErrorMessage\'; let item">{{item.mdmerrorcode}}</span>\r\n <span *td="\'ConvId\'; If: usesConversations; let item">{{item.conversationid}}</span>\r\n <span *td="\'ObjectType\'; let item">{{item.objecttype}}</span>\r\n <span *td="\'ObjectId\'; let item">{{item.objectid}}</span>\r\n <span *td="\'ObjectData\'; let item">{{item.objectdata}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],re.ctorParameters=function(){return[{type:y.LocalizationService},{type:T.InterComService},{type:S.PreferencesService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:t.Location},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]},{type:Boolean,decorators:[{type:r.Inject,args:[te]}]}]};var ne=function(e,t){this.id=e,this.description=t},se=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),ae=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Consumer Group succesfully changed",["Gruppo di Consumo modificato con successo"]),e.prototype.set.call(i,"en->it","Errors changing Consumer Group",["Errori nella modifica del Gruppo di Consumo"]),e.prototype.set.call(i,"en->it","Change Consumer Group",["Modifica Gruppo di Consumo"]),e.prototype.set.call(i,"en->it","New Consumer Group",["Nuovo Gruppo di Consumo"]),e.prototype.set.call(i,"en->it","Thread Type",["Tipo Thread"]),e.prototype.set.call(i,"en->it","Thread Status",["Stato Thread"]),e.prototype.set.call(i,"en->it","Type",["Tipo"]),e.prototype.set.call(i,"en->it","State",["Stato"]),e.prototype.set.call(i,"en->it","In Wait",["In Attesa"]),e.prototype.set.call(i,"en->it","Global",["Globale"]),e.prototype.set.call(i,"en->it","Search Application Processes",["Ricerca Processi Applicativi"]),e.prototype.set.call(i,"en->it","Tenant",["Operatore"]),e.prototype.set.call(i,"en->it","Errors toggling Process Tracing",["Errori nella modifica del Tracing del Processo"]),e.prototype.set.call(i,"en->it","User",["Utente"]),e.prototype.set.call(i,"en->it","Loading Application Processes",["Carico i Processi Applicativi"]),e.prototype.set.call(i,"en->it","Activate Process Tracing",["Attiva Tracing Processo"]),e.prototype.set.call(i,"en->it","Deactivate Process Tracing",["Disattiva Tracing Progetto"]),e.prototype.set.call(i,"en->it","Kill Process",["Ammazza Processo"]),e.prototype.set.call(i,"en->it","Errors killing the Process",["Errori durante la Kill del Processo"]),e.prototype.set.call(i,"en->it","Process succesfully killed",["Processo ucciso con successo"]),e.prototype.set.call(i,"en->it","Confirm Process Kill",["Conferma Terminazione del Processo"]),e.prototype.set.call(i,"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"]),i}return z(t,e),t}(y.LocalizationService);ae.decorators=[{type:r.Injectable}],ae.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var oe=function(){function e(e,t,i,r,n,s,a,o,l,c){this.utiExts=e,this.msgExts=t,this.lc=i,this.localStorage=r,this.intercom=n,this.http=s,this.route=a,this.location=o,this.backend=l,this.mod=c,this.searchView=new se,this.DynamicOps=[],this.valueToShow="",this.Types=[],this.States=[],this.ThreadTypes=[],this.ThreadStatuses=[],this.newCg="",this.CGs=[],this.CgDictionariesLoaded=!1,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)}),this.DynamicOps=[new m.EsTableOperationDefinition("trace_on",this.lc.loc("Activate Process Tracing"),"fa fa-circle text-danger","","trace_enabled","N"),new m.EsTableOperationDefinition("trace_off",this.lc.loc("Deactivate Process Tracing"),"fa fa-circle text-success","","trace_enabled","Y"),new m.EsTableOperationDefinition("kill",this.lc.loc("Kill Process"),"fa fa-ban text-danger"),new m.EsTableOperationDefinition("change_cg",this.lc.loc("Change Consumer Group"),"fa fa-edit text-info")]}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.Init=function(e){this.Types=[new ne("USER","USER"),new ne("BACKGROUND","BACKGROUND"),new ne("JOB","JOB")],this.States=[new ne("ACTIVE","ACTIVE"),new ne("INACTIVE","INACTIVE"),new ne("KILLED","KILLED")],this.ThreadTypes=["APITHREAD","APIPUSHTHREAD","BACKGROUNDTHREAD","JOBTHREAD","PARALLELSLAVETHREAD"].map((function(e){return new ne(e,e)})),this.ThreadStatuses=["ACTIVE","IDLE","THROTTLING","KILLED"].map((function(e){return new ne(e,e)})),this.doInit(e)},e.prototype.doInit=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotProcessato").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/serverworkers"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotProcessato").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetProcesses(this.backend+K,this.searchView)):(this.searchView=new se,this.sendSearch())},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),this.searchView.searchinprogress=!0,e&&(this.searchView.page=1),this.POSTGetProcesses(this.backend+K,this.searchView)},e.prototype.POSTGetProcesses=function(e,t){var i=this;this.http.post(e,t).subscribe((function(e){i.searchView=e,i.searchView.searchinprogress=!1,i.localStorage.setItem("HotProcessato",i.searchView).subscribe()}))},e.prototype.back=function(){this.location.back()},e.prototype.onOperation=function(e){switch(e.id){case"trace_on":this.toggleTracing(e.item,!0);break;case"trace_off":this.toggleTracing(e.item,!1);break;case"kill":this.killProcess(e.item);break;case"change_cg":this.changeProcessCg(e.item)}},e.prototype.toggleTracing=function(e,t){var i=this,r=(new P.HttpParams).set("instanceid",e.properties.inst_id||e.properties.INST_ID).set("sid",e.properties.sid||e.properties.SID).set("serial",e.properties.serial||e.properties.SERIAL).set("enable",t.toString());this.http.get(this.backend+Y,r).subscribe((function(e){i.msgExts.manageStringResponse(e,"",i.lc.loc("Errors toggling Process Tracing"),(function(){return i.sendSearch()}))}))},e.prototype.killProcess=function(e){var t=this;this.msgExts.simpleWarningWithChoice(this.lc.loc("Confirm Process Kill"),this.lc.loc("Are you sure you wish to kill the selected process? The associated user will be disconnected"),(function(){var i=(new P.HttpParams).set("instanceid",e.properties.inst_id||e.properties.INST_ID).set("sid",e.properties.sid||e.properties.SID).set("serial",e.properties.serial||e.properties.SERIAL);t.http.get(t.backend+$,i).subscribe((function(e){t.msgExts.manageStringResponse(e,t.lc.loc("Process succesfully killed"),t.lc.loc("Errors killing the Process"),(function(){return t.sendSearch()}))}))}))},e.prototype.changeProcessCg=function(e){this.ProcessOnEdit=e,this.CgDictionariesLoaded||(this.loadCgDictionaries(),this.CgDictionariesLoaded=!0),this.setupChangeCg(),this.dlgChangeCg.show()},e.prototype.loadCgDictionaries=function(){var e=this;this.http.get(this.backend+O).subscribe((function(t){return e.CGs=t}))},e.prototype.setupChangeCg=function(){var e=this;this.utiExts.cleanForm(this.cgFrom),setTimeout((function(){e.newCg=""}))},e.prototype.doChangeCg=function(){var e=this,t=(new P.HttpParams).set("instanceid",this.ProcessOnEdit.properties.inst_id||this.ProcessOnEdit.properties.INST_ID).set("sid",this.ProcessOnEdit.properties.sid||this.ProcessOnEdit.properties.SID).set("serial",this.ProcessOnEdit.properties.serial||this.ProcessOnEdit.properties.SERIAL).set("consumer_group",this.newCg);return this.http.get(this.backend+E,t).subscribe((function(t){e.msgExts.manageStringResponse(t,e.lc.loc("Consumer Group succesfully changed"),e.lc.loc("Errors changing Consumer Group"),(function(){return e.sendSearch()}))})),!0},e}();oe.decorators=[{type:r.Component,args:[{selector:"adm_wrk",viewProviders:[{provide:y.LocalizationService,useClass:ae}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Search Application Processes\' | localize : lc}}</span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12">\r\n <form role="form">\r\n <div class="row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtertype" name="filtertype" [SelectLabel]="\'Type\' | localize : lc" [Source]="Types"></form-select>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtertenant" name="filterTenant" [Placeholder]="\'Tenant\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filteruser" name="filterUser" [Placeholder]="\'User\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterstate" name="filterState" [SelectLabel]="\'State\' | localize : lc" [Source]="States"></form-select>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterthreadtype" name="filterthreadtype" [SelectLabel]="\'Thread Type\' | localize : lc" [Source]="ThreadTypes"></form-select>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterthreadstatus" name="filterthreadstatus" [SelectLabel]="\'Thread Status\' | localize : lc" [Source]="ThreadStatuses"></form-select>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper" style="display: flex; height: 38px;">\r\n <form-checkbox [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterglobal" name="filterglobal"></form-checkbox> \r\n <span class="app-pointer app-padding-top-5 app-padding-left-5" (click)="searchView.filterglobal = !searchView.filterglobal">{{\'Global\' | localize : lc}}</span>\r\n </div>\r\n <div class="col-xl-1 col-lg-1 col-md-12 app-filter-wrapper" style="display: flex; height: 38px;">\r\n <form-checkbox [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterinwait" name="filterinwait"></form-checkbox> \r\n <span class="app-pointer app-padding-top-5 app-padding-left-5" (click)="searchView.filterinwait = !searchView.filterinwait">{{\'In Wait\' | localize : lc}}</span>\r\n </div>\r\n <button [disabled]="searchView.searchinprogress" class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!searchView"><em>{{\'Loading Application Processes\' | localize : lc}}...</em></p>\r\n <div *ngIf="searchView">\r\n <es-table [(ngModel)]="searchView" [DynamicOperations]="DynamicOps" [AutoUpdate]="true" [OrderByColumn]="true" (onSearchRequest)="sendSearch($event);" (onDynamicOperation)="onOperation($event)">\r\n <span class="app-nowrap" *td="\'full_wait_stack\'; let value">\r\n <span class="fa fa-list app-pointer" (click)="valueToShow = value; dlgValue.show();"></span> \r\n {{value.length > 70 ? value.substr(0, 67) + \'...\' : value}}\r\n </span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="app-margin-top-15">\r\n <button class="btn btn-secondary pull-left" type="button" (click)="back()">{{\'Back\' | localize : lc}}</button>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgChangeCg="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <div class="modal-dialog modal-lg" cdkDrag>\r\n <div class="modal-content">\r\n <div class="modal-header" cdkDragHandle>\r\n <h4 class="modal-title pull-left">{{\'Change Consumer Group\' | localize : lc}}</h4>\r\n <button type="button" class="close pull-right" (click)="dlgChangeCg.hide()" aria-label="Close">\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <form novalidate #cgFrom="ngForm" (ngSubmit)="cgFrom.valid && doChangeCg() && dlgChangeCg.hide()">\r\n <div class="modal-body">\r\n <form-select [Label]="\'New Consumer Group\' | localize : lc" [(ngModel)]="newCg" name="newcg" [Source]="CGs" required [Last]="true"></form-select>\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-secondary app-margin-right-5" (click)="dlgChangeCg.hide()">{{\'Close\' | localize : lc}}</button>\r\n <button type="submit" class="btn btn-primary">{{\'Confirm\' | localize : lc}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgValue="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <div class="modal-dialog modal-xl" app-draggable=".modal-header">\r\n <div class="modal-content">\r\n <div class="modal-header">\r\n <h5 class="modal-title pull-left">\r\n Full Wait Stack\r\n </h5>\r\n <button type="button" class="close pull-right" (click)="dlgValue.hide()" aria-label="Close">\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <div class="modal-body app-padidng-bottom-20 app-padding-top-20">\r\n <span class="app-wrap">\r\n {{valueToShow}}\r\n </span>\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-primary" (click)="dlgValue.hide()">Chiudi</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],oe.ctorParameters=function(){return[{type:T.UtilityService},{type:T.MessageService},{type:y.LocalizationService},{type:S.PreferencesService},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:t.Location},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]},oe.propDecorators={cgFrom:[{type:r.ViewChild,args:["cgFrom"]}],dlgChangeCg:[{type:r.ViewChild,args:["dlgChangeCg"]}]};var le=localStorage.getItem("LOCALE")||myconfig.LOCALE,ce={"Parent ID":{"en-US":"Parent ID","it-IT":"ID Padre"},ID:{"en-US":"ID","it-IT":"ID"},Description:{"en-US":"Description","it-IT":"Descrizione"},Calls:{"en-US":"Calls","it-IT":"Chiamate"},Time:{"en-US":"Time","it-IT":"Tempo"},"Peak Time":{"en-US":"Peak Time","it-IT":"Tempo Max"},"Min. Time":{"en-US":"Min. Time","it-IT":"Tempo Min"},"Avg. Time":{"en-US":"Avg. Time","it-IT":"Tempo Medio"},"Specific Time":{"en-US":"Specific Time","it-IT":"Tempo Specifico"},Percentage:{"en-US":"Percentage","it-IT":"Percentuale"},"Calls for Period":{"en-US":"Calls for Period","it-IT":"Chiamate Periodo"},"Time for Period":{"en-US":"Time for Period","it-IT":"Tempo Periodo"},"Peak Time for Period":{"en-US":"Peak Time for Period","it-IT":"Tempo Max Periodo"},"Min. Time for Period":{"en-US":"Min. Time for Period","it-IT":"Tempo Min Periodo"},"Avg. Time for Period":{"en-US":"Avg. Time for Period","it-IT":"Tempo Medio Periodo"},"Specific Time for Period":{"en-US":"Specific Time for Period","it-IT":"Tempo Specifico Periodo"},"Percentage for Period":{"en-US":"Percentage for Period","it-IT":"Percentuale Periodo"},"Event Type Name":{"en-US":"Event Type Name","it-IT":"Nome Tipologia Evento"},"Wait Class Name":{"en-US":"Wait Class Name","it-IT":"Nome Classe Attesa"}},pe=function(){};A([T.Export(10,ce["Parent ID"][le]),I.autoserialize],pe.prototype,"parentid",void 0),A([T.Export(20,ce.ID[le]),I.autoserialize],pe.prototype,"id",void 0),A([T.Export(30,ce.Description[le]),I.autoserialize],pe.prototype,"description",void 0),A([T.Export(40,ce.Calls[le]),I.autoserialize],pe.prototype,"calls",void 0),A([T.Export(50,ce.Time[le]),I.autoserialize],pe.prototype,"time",void 0),A([T.Export(60,ce["Peak Time"][le]),I.autoserialize],pe.prototype,"peaktime",void 0),A([T.Export(70,ce["Min. Time"][le]),I.autoserialize],pe.prototype,"mintime",void 0),A([T.Export(80,ce["Avg. Time"][le]),I.autoserialize],pe.prototype,"avgtime",void 0),A([T.Export(90,ce["Specific Time"][le]),I.autoserialize],pe.prototype,"timewithoutchildren",void 0),A([T.Export(100,ce.Percentage[le]),I.autoserialize],pe.prototype,"percentage",void 0),A([T.Export(110,ce["Calls for Period"][le]),I.autoserialize],pe.prototype,"snapdeltacalls",void 0),A([T.Export(120,ce["Time for Period"][le]),I.autoserialize],pe.prototype,"snapdeltatime",void 0),A([T.Export(130,ce["Peak Time for Period"][le]),I.autoserialize],pe.prototype,"snappeaktime",void 0),A([T.Export(140,ce["Min. Time for Period"][le]),I.autoserialize],pe.prototype,"snapmintime",void 0),A([T.Export(150,ce["Avg. Time for Period"][le]),I.autoserialize],pe.prototype,"snapavgtime",void 0),A([T.Export(160,ce["Specific Time for Period"][le]),I.autoserialize],pe.prototype,"snaptimewithoutchildren",void 0),A([T.Export(170,ce["Percentage for Period"][le]),I.autoserialize],pe.prototype,"snappercentage",void 0),A([T.Export(180,ce["Event Type Name"][le]),I.autoserialize],pe.prototype,"eventtypename",void 0),A([T.Export(190,ce["Wait Class Name"][le]),I.autoserialize],pe.prototype,"waitclassname",void 0);var de=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),he=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Server Profiler",["Profiler del Server"]),e.prototype.set.call(i,"en->it","Loading Data",["Carico i Dati"]),e.prototype.set.call(i,"en->it","ID",["ID"]),e.prototype.set.call(i,"en->it","Description",["Descrizione"]),e.prototype.set.call(i,"en->it","Calls",["Chiamate"]),e.prototype.set.call(i,"en->it","Time",["Tempo"]),e.prototype.set.call(i,"en->it","Peak Time",["Tempo Max"]),e.prototype.set.call(i,"en->it","Min. Time",["Tempo Min"]),e.prototype.set.call(i,"en->it","Avg. Time",["Tempo Medio"]),e.prototype.set.call(i,"en->it","Specific Time",["Tempo Specifico"]),e.prototype.set.call(i,"en->it","Percentage",["Percentuale"]),e.prototype.set.call(i,"en->it","Calls for Period",["Chiamate Periodo"]),e.prototype.set.call(i,"en->it","Time for Period",["Tempo Periodo"]),e.prototype.set.call(i,"en->it","Peak Time for Period",["Tempo Max Periodo"]),e.prototype.set.call(i,"en->it","Min. Time for Period",["Tempo Min Periodo"]),e.prototype.set.call(i,"en->it","Avg. Time for Period",["Tempo Medio Periodo"]),e.prototype.set.call(i,"en->it","Specific Time for Period",["Tempo Specifico Periodo"]),e.prototype.set.call(i,"en->it","Percentage for Period",["Percentuale Periodo"]),e.prototype.set.call(i,"en->it","Event Type Name",["Nome Tipologia Evento"]),e.prototype.set.call(i,"en->it","Wait Class Name",["Nome Classe Attesa"]),i}return z(t,e),t}(y.LocalizationService);he.decorators=[{type:r.Injectable}],he.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var ue=function(){function e(e,t,i,r,n,s,a,o,l){this.expExts=e,this.lc=t,this.localStorage=i,this.location=r,this.intercom=n,this.http=s,this.route=a,this.backend=o,this.mod=l,this.searchView=new de,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.Init=function(e){this.doInit(e)},e.prototype.doInit=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotSearchProfilato").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/profiler"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotSearchProfilato").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetItems(this.backend+G,this.searchView)):(this.searchView=new de,this.sendSearch())},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),this.searchView.searchinprogress=!0,e&&(this.searchView.page=1),this.POSTGetItems(this.backend+G,this.searchView)},e.prototype.POSTGetItems=function(e,t){var i=this;this.http.post(e,t).subscribe((function(e){i.searchView=e,i.searchView.searchinprogress=!1,i.localStorage.setItem("HotSearchProfilato",i.searchView).subscribe()}))},e.prototype.prepareExport=function(e){var t=this,i=JSON.parse(JSON.stringify(this.searchView));i.page=1,i.itemsperpageoverride=9999999,this.http.post(this.backend+G,i).subscribe((function(i){var r=t.expExts.deserializeForExport(i.items,pe);e(r)}))},e.prototype.loadNodeDetails=function(e){var t=this;this.NodeDetails=null;var i=(new P.HttpParams).set("nodeId",e);this.http.get(this.backend+J,i).subscribe((function(e){t.NodeDetails=e}))},e}();ue.decorators=[{type:r.Component,args:[{selector:"adm_profiler",providers:[{provide:y.LocalizationService,useClass:he}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Server Profiler\' | localize : lc}}</span> \r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12 bottom-15">\r\n <form role="form">\r\n <div class="row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-date [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterfrom" name="filterfrom" [Placeholder]="\'From\' | localize : lc"></form-date>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-date [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterto" name="filterto" [Placeholder]="\'To\' | localize : lc"></form-date>\r\n </div>\r\n <button [disabled]="searchView.searchinprogress" class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!searchView"><em>{{\'Loading Data\' | localize : lc}}</em></p>\r\n <div *ngIf="searchView">\r\n <es-table [(ngModel)]="searchView" [Hierarchy]="true" [OrderByColumn]="false" [ParentKey]="\'parentid\'"\r\n [OwnKey]="\'id\'" [StartsExpanded]="false" [ExportFunction]="prepareExport.bind(this)" [Export]="true"\r\n [ExportFileName]="\'Profiler Export.csv\'" [HidePaging]="true" (onSearchRequest)="sendSearch($event);">\r\n \r\n <span *th="\'1\'">{{\'ID\' | localize : lc}}</span>\r\n <span *th="\'2\'">{{\'Description\' | localize : lc}}</span>\r\n <span *th="\'3\'">{{\'Calls\' | localize : lc}}</span>\r\n <span *th="\'4\'">{{\'Time\' | localize : lc}}</span>\r\n <span *th="\'5\'">{{\'Peak Time\' | localize : lc}}</span>\r\n <span *th="\'6\'">{{\'Min. Time\' | localize : lc}}</span>\r\n <span *th="\'7\'">{{\'Avg. Time\' | localize : lc}}</span>\r\n <span *th="\'8\'">{{\'Specific Time\' | localize : lc}}</span>\r\n <span *th="\'9\'">{{\'Percentage\' | localize : lc}}</span>\r\n <span *th="\'10\'">{{\'Calls for Period\' | localize : lc}}</span>\r\n <span *th="\'11\'">{{\'Time for Period\' | localize : lc}}</span>\r\n <span *th="\'12\'">{{\'Peak Time for Period\' | localize : lc}}</span>\r\n <span *th="\'13\'">{{\'Min. Time for Period\' | localize : lc}}</span>\r\n <span *th="\'14\'">{{\'Avg. Time for Period\' | localize : lc}}</span>\r\n <span *th="\'15\'">{{\'Specific Time for Period\' | localize : lc}}</span>\r\n <span *th="\'16\'">{{\'Percentage for Period\' | localize : lc}}</span>\r\n <span *th="\'17\'">{{\'Event Type Name\' | localize : lc}}</span>\r\n <span *th="\'18\'">{{\'Wait Class Name\' | localize : lc}}</span>\r\n\r\n <span *td="\'1\'; let item"><span class="app-link app-inline" (click)="loadNodeDetails(item.id); dlgNodeDetails.show();">{{item.id}}</span></span>\r\n <span *td="\'2\'; let item" title="{{item.description}}">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + "[...]" }}</span>\r\n <span *td="\'3\'; let item">{{item.calls}}</span>\r\n <span *td="\'4\'; let item">{{item.time}}</span>\r\n <span *td="\'5\'; let item">{{item.peaktime}}</span>\r\n <span *td="\'6\'; let item">{{item.mintime}}</span>\r\n <span *td="\'7\'; let item">{{item.avgtime}}</span>\r\n <span *td="\'8\'; let item">{{item.timewithoutchildren }}</span>\r\n <span *td="\'9\'; let item">{{item.percentage}}</span>\r\n <span *td="\'10\' let item">{{item.snapdeltacalls}}</span>\r\n <span *td="\'11\' let item">{{item.snapdeltatime}}</span>\r\n <span *td="\'12\' let item">{{item.snappeaktime}}</span>\r\n <span *td="\'13\' let item">{{item.snapmintime}}</span>\r\n <span *td="\'14\' let item">{{item.snapavgtime}}</span>\r\n <span *td="\'15\' let item">{{item.snaptimewithoutchildren}}</span>\r\n <span *td="\'16\' let item">{{item.snappercentage}}</span>\r\n <span *td="\'17\' let item">{{item.eventtypename}}</span>\r\n <span *td="\'18\' let item">{{item.waitclassname}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <node-detail *ngIf="NodeDetails" [NodeDetails]="NodeDetails" (onClose)="dlgNodeDetails.hide()"></node-detail>\r\n</div>'}]}],ue.ctorParameters=function(){return[{type:T.ExportService},{type:y.LocalizationService},{type:S.PreferencesService},{type:t.Location},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var me=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),fe=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Active Sessions",["Sessioni Attive"]),e.prototype.set.call(i,"en->it","Top Nodes",["Prime Istruzioni"]),e.prototype.set.call(i,"en->it","Top Sessions",["Prime Sessioni"]),e.prototype.set.call(i,"en->it","Loading Data",["Carico i Dati"]),e.prototype.set.call(i,"en->it","Top Activities",["Attivita' Principali"]),e.prototype.set.call(i,"en->it","Node Description",["Descrizione Nodo"]),e.prototype.set.call(i,"en->it","Node",["Nodo"]),e.prototype.set.call(i,"en->it","Activity",["Attivita'"]),e.prototype.set.call(i,"en->it","Limit",["Limite"]),e.prototype.set.call(i,"en->it","Node Type",["Tipo Nodo"]),e.prototype.set.call(i,"en->it","User",["Utente"]),e.prototype.set.call(i,"en->it","Tenant",["Tenant"]),e.prototype.set.call(i,"en->it","Process",["Processo"]),e.prototype.set.call(i,"en->it","Update every",["Aggiorna ogni"]),e.prototype.set.call(i,"en->it","second/s",["secondo/i"]),e.prototype.set.call(i,"en->it","Maximum Threads",["Thread Massimi"]),e.prototype.set.call(i,"en->it","CPUs",["CPU"]),e.prototype.set.call(i,"en->it","Wait Class Name",["Nome Classe Attesa"]),e.prototype.set.call(i,"it->en","Seriale",["Serial"]),e.prototype.set.call(i,"it->en","Stato",["Status"]),e.prototype.set.call(i,"it->en","Tipo",["Type"]),e.prototype.set.call(i,"it->en","Utente",["User"]),e.prototype.set.call(i,"it->en","Dettaglio Sessione",["Session Detail"]),e.prototype.set.call(i,"it->en","Chiudi",["Close"]),e.prototype.set.call(i,"en->it","CPU",["CPU"]),i}return z(t,e),t}(y.LocalizationService);fe.decorators=[{type:r.Injectable}],fe.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var ge=function(){function e(e,t,i,r,n,s,a,o,l){var c;this.dateExts=e,this.lc=t,this.localStorage=i,this.location=r,this.intercom=n,this.http=s,this.route=a,this.backend=o,this.mod=l,this.searchView=new me,this.autoUpdate=!1,this.seconds="5",this.rtWindow=null,this.destroyed$=new C.ReplaySubject(1),this.seriesPropertiesMapping={},this.propertiesSeriesMapping=((c={}).cputime="CPU",c.waittime="Wait",c.scripttime="Scripting",c.dbtime="DB",c.nettime="Network",c.throttletime="Throttling",c.sleeptime="Sleep",c.iotime="IO",c),this.seriesPropertiesMapping2={},this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;C.interval(6e4).pipe(D.takeUntil(this.destroyed$)).subscribe((function(t){e.updateRealTimeWindow()})),this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.updateRealTimeWindow=function(){return x(this,void 0,void 0,(function(){var e,t,i,r,n;return M(this,(function(s){switch(s.label){case 0:return e=new me,[4,this.http.post(this.backend+B,e).toPromise()];case 1:for(e=s.sent(),t=e.items[0],i=0;i<t.actsessions.length;i++)r=t.actsessions[i],n=this.dateExts.getDateConvertion(r.sampletime),this.rtWindow?(n.isBefore(this.rtWindow.from)&&(this.rtWindow.from=n),n.isAfter(this.rtWindow.to)&&(this.rtWindow.to=n)):this.rtWindow={from:n,to:n};return[2]}}))}))},e.prototype.Init=function(e){this.doInit(e)},e.prototype.doInit=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotSearchTopAct").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/topact"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotSearchTopAct").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetItems(this.backend+B,this.searchView,!1)):(this.searchView=new me,this.sendSearch())},e.prototype.ngOnDestroy=function(){this.destroyed$.next(!0),this.destroyed$.complete(),this.storageSub&&this.storageSub.unsubscribe()},e.prototype.sendSearch=function(e,t,i){return void 0===e&&(e=!0),void 0===t&&(t=!1),void 0===i&&(i=null),x(this,void 0,void 0,(function(){var e,r;return M(this,(function(n){switch(n.label){case 0:return!(e=null!=i?i:this.searchView).filterfrom&&!e.filterto||this.rtWindow?[3,2]:[4,this.updateRealTimeWindow()];case 1:n.sent(),n.label=2;case 2:return r=e.filterfrom&&this.dateExts.getDateConvertion(e.filterfrom).isAfter(this.rtWindow.from)&&e.filterto&&this.dateExts.getDateConvertion(e.filterto).isBefore(this.rtWindow.to),e.filterrealtime=r,e.searchinprogress=!0,this.POSTGetItems(this.backend+B,e,t),[2]}}))}))},e.prototype.POSTGetItems=function(e,t,i){var r=this;this.http.post(e,t).subscribe((function(e){return x(r,void 0,void 0,(function(){var t;return M(this,(function(r){switch(r.label){case 0:return i||(this.searchView=e,this.localStorage.setItem("HotSearchTopAct",this.searchView).subscribe()),[4,this.getDirectorInfos()];case 1:return t=r.sent(),this.searchView.searchinprogress=!1,this.reviewBindings(i,e,t),[2]}}))}))}))},e.prototype.getDirectorInfos=function(){return this.http.get(this.backend+U).pipe(D.map((function(e){return e}))).toPromise()},e.prototype.loadNodeDetails=function(e){var t=this;this.NodeDetails=null;var i=(new P.HttpParams).set("nodeId",e);this.http.get(this.backend+J,i).subscribe((function(e){t.NodeDetails=e}))},e.prototype.reviewBindings=function(e,t,i){var r=this,n=(null!=t?t:this.searchView).items[0];if(this.TopNodes=n.topnodes,this.TopSessions=n.topsessions,this.DirInfos=i,n.actsessions&&0!=n.actsessions.length){for(var s=[],a=Object.keys(n.actsessions[0]),o=0;o<a.length;o++)if("sampletime"!=a[o]){var l=new g.LineSerie(this.propertiesSeriesMapping[a[o]],[],null,null,"sessions");s.push(l),this.seriesPropertiesMapping[a[o]]=l}for(o=0;o<n.actsessions.length;o++)for(var c=n.actsessions[o],p=new Date(c.sampletime),d=0;d<a.length;d++)"sampletime"==a[d]||e&&!this.dateExts.getDateConvertion(p).isAfter(this.LastDataPoint)||this.seriesPropertiesMapping[a[d]].values.push(new g.DateValue(p,c[a[d]]));if(e&&this.ChartInstance){var h=new g.LineChartData(s,new g.Limit(null==i?void 0:i.threads,this.lc.loc("Maximum Threads")));s.some((function(e){return e.values.length>0}))&&(this.ChartInstance.addData(h),this.LastDataPoint=s.map((function(e){return dayjs.max(e.values.map((function(e){return r.dateExts.getDateConvertion(e.d)})))}))[0])}else this.TopActiveSessions=new g.LineChartData(s,new g.Limit(null==i?void 0:i.threads,this.lc.loc("Maximum Threads"))),this.LastDataPoint=s.map((function(e){return dayjs.max(e.values.map((function(e){return r.dateExts.getDateConvertion(e.d)})))}))[0]}else this.TopActiveSessions=null},e.prototype.autoUpdateChanged=function(){var e=this;/^[1-9]\d*$/.test(this.seconds)||(this.seconds="10");var t=1e3*parseInt(this.seconds,null);this.autoUpdate?(this.sendSearch(!1,!0),this.updateTimer=setInterval((function(){e.sendSearch(!1,!0)}),t)):clearInterval(this.updateTimer)},e.prototype.dataSelectionChanged=function(e){this.from=e.initial?this.searchView.filterfrom?this.dateExts.getDateConvertion(this.searchView.filterfrom).toDate():"":e.from,this.to=e.initial?this.searchView.filterto?this.dateExts.getDateConvertion(this.searchView.filterto).toDate():"":e.to;var t=JSON.parse(JSON.stringify(this.searchView));t.filterfrom=this.from?dayjs(this.from).format(this.lc.token("getFullDateDisplayFormat")):"",t.filterto=this.to?dayjs(this.to).format(this.lc.token("getFullDateDisplayFormat")):"",this.sendSearch(!0,!0,t)},e.prototype.onChartLoaded=function(e,t){void 0===t&&(t=!0),t&&(this.ChartInstance=e),e.Chart.events.on("ready",(function(){e.Chart.xAxes.each((function(e){return e.zoom({start:0,end:1},!0,!0)})),e.Chart.yAxes.each((function(e){return e.zoom({start:0,end:1},!0,!0)})),setTimeout((function(){e.Chart.xAxes.each((function(e){return e.zoom({start:0,end:1},!0,!0)})),e.Chart.yAxes.each((function(e){return e.zoom({start:0,end:1},!0,!0)}))}),500)}))},e.prototype.loadSessionDetails=function(e,t){var i=this;this.SessionDetails=null;var r=(new P.HttpParams).set("sid",e.toString()).set("serial",t.toString());this.http.get(X,r).subscribe((function(e){i.SessionDetails=e,i.threadSelectionChanged(null)}))},e.prototype.threadSelectionChanged=function(e){var t=this;this.SelectedTopNodes=null,this.SelectedSessions=null,requestAnimationFrame((function(){var i=(null==e?void 0:e.count)?e.items[0]:t.SessionDetails;t.SelectedTopNodes=i.nodes;for(var r=[],n=Object.keys(i.sessions[0]),s=0;s<n.length;s++)if("sampletime"!=n[s]){var a=new g.LineSerie(t.propertiesSeriesMapping[n[s]],[],null,null,"sessions");r.push(a),t.seriesPropertiesMapping2[n[s]]=a}for(s=0;s<i.sessions.length;s++)for(var o=i.sessions[s],l=new Date(o.sampletime),c=0;c<n.length;c++)"sampletime"!=n[c]&&t.seriesPropertiesMapping2[n[c]].values.push(new g.DateValue(l,o[n[c]]));t.SelectedSessions=new g.LineChartData(r)}))},e}();ge.decorators=[{type:r.Component,args:[{selector:"topact_search",providers:[{provide:y.LocalizationService,useClass:fe}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">\r\n {{\'Top Activities\' | localize: lc}}\r\n <span *ngIf="DirInfos"> - \r\n {{\'\' + DirInfos.cpus + \' \' + (\'CPU\' | localize: lc) + (DirInfos.rssplan ? \' - \' + DirInfos.rssplan : \'\')}} \r\n Load average: {{ DirInfos.lavg1 | number : \'1.1-2\' : \'it\'}} {{ DirInfos.lavg5 | number : \'1.1-2\' : \'it\'}} {{ DirInfos.lavg15 | number : \'1.1-2\' : \'it\'}}\r\n </span> \r\n </span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12 app-relative">\r\n <form role="form">\r\n <div class="row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-datetime [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterfrom" name="filterfrom" [Placeholder]="\'From\' | localize : lc"></form-datetime>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-datetime [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterto" name="filterto" [Placeholder]="\'To\' | localize : lc"></form-datetime>\r\n </div>\r\n <button [disabled]="searchView.searchinprogress || autoUpdate" class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n\r\n <div class="app-absolute app-right-25 app-top-40">\r\n <div class="pull-right">\r\n {{\'Update every\' | localize : lc}} <input [readonly]="autoUpdate" maxlength="3" class="form-control app-updevery-input" type="text" [(ngModel)]="seconds" name="secs" /> {{\'second/s\' | localize : lc}}\r\n </div>\r\n <div class="pull-right m-t-2 app-margin-right-5">\r\n <label class="switch">\r\n <input type="checkbox" [(ngModel)]="autoUpdate" (ngModelChange)="autoUpdateChanged();" />\r\n <div class="slider round"></div>\r\n </label>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12 app-margin-top-5">\r\n <p *ngIf="!searchView"><em>{{\'Loading Data\' | localize : lc}}</em></p>\r\n <div *ngIf="searchView" class="row">\r\n <div class="col-md-12 app-no-padding">\r\n <div style="width: 100%; height: 290px">\r\n <es-line-chart *ngIf="TopActiveSessions"\r\n [MinGridDistance]="65"\r\n [Timeline]="false"\r\n [FinalInstants]="false"\r\n [LegendPadding]="{top: 0, bottom: 7, right: 0, left: 10}"\r\n [Fill]="true"\r\n [MergeDatasets]="true"\r\n [Stacked]="true"\r\n [Data]="TopActiveSessions"\r\n [Legend]="true" \r\n name="topactsession"\r\n [DataGroupingThreshold]="99999999"\r\n (onSelectionChanged)="dataSelectionChanged($event)" (chartLoaded)="onChartLoaded($event)"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class="col-md-5">\r\n <h5>{{\'Top Nodes\' | localize : lc}}</h5>\r\n <es-table [(ngModel)]="TopNodes" [HidePaging]="true">\r\n <ng-template #header>\r\n <th class="app-col-min">{{\'Node\' | localize : lc}}</th>\r\n <th>{{\'Node Description\' | localize : lc}}</th>\r\n <th class="app-col-min">{{\'Activity\' | localize : lc}}</th>\r\n <th class="app-col-min app-nowrap">{{\'Node Type\' | localize : lc}}</th>\r\n <th class="app-col-min app-nowrap">{{\'Wait Class Name\' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class="app-col-min"><span class="app-link" (click)="loadNodeDetails(node.profnodeid); dlgNodeDetails.show();">{{node.profnodeid}}</span></td>\r\n <td><span title="{{node.profnodedesc}}">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + "..." : node.profnodedesc}}</span></td>\r\n <td class="app-nowrap">{{node.activity | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class="col-md-7">\r\n <h5>{{\'Top Sessions\' | localize : lc}}</h5>\r\n <es-table [(ngModel)]="TopSessions" [HidePaging]="true">\r\n <ng-template #header>\r\n <th class="app-col-min">ID</th>\r\n <th>{{\'User\' | localize : lc}}</th>\r\n <th>{{\'Tenant\' | localize : lc}}</th>\r\n <th>{{\'Process\' | localize : lc}}</th>\r\n <th>{{\'Activity\' | localize : lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td class="app-col-min"><span class="app-link" (click)="loadSessionDetails(session.sid, session.serial); dlgSessionDetails.show();">{{session.sid}}</span></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.cpu | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.wait | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.db | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.script | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.throttle | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.sleep | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.net | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{session.io | number : \'1.1-2\' : \'it\'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <node-detail *ngIf="NodeDetails" [NodeDetails]="NodeDetails" (onClose)="dlgNodeDetails.hide()"></node-detail>\r\n</div>\r\n\r\n<div bsModal #dlgSessionDetails="bs-modal" class="modal fade" role="dialog" aria-hidden="true">\r\n <div class="modal-dialog modal-feminist" cdkDrag>\r\n <div class="modal-content">\r\n <div class="modal-header" cdkDragHandle>\r\n <h4 class="modal-title pull-left">{{\'Dettaglio Sessione\' | localize: lc}}<span *ngIf="SessionDetails"> {{SessionDetails.sid}}</span></h4>\r\n <button type="button" class="close pull-right" (click)="dlgSessionDetails.hide()" aria-label="Close"><span aria-hidden="true">×</span></button>\r\n </div>\r\n <div class="modal-body" *ngIf="SessionDetails">\r\n <div class="row">\r\n <div class="col-md-6"><strong>{{\'Seriale\' | localize: lc}}</strong>: {{SessionDetails.serial}} </div>\r\n <div class="col-md-6"><strong>{{\'Stato\' | localize: lc}}</strong>: {{SessionDetails.status}} </div>\r\n <div class="col-md-6"><strong>{{\'Tipo\' | localize: lc}}</strong>: {{SessionDetails.type}}</div>\r\n <div class="col-md-6"><strong>{{\'Utente\' | localize: lc}}</strong>: {{SessionDetails.user}} <span *ngIf="SessionDetails.tenant">({{SessionDetails.tenant}})</span></div>\r\n </div>\r\n\r\n <div style="display: flex; width: 100%; margin-top: 15px;">\r\n <div style="flex-grow: 0;display: flex;flex-direction: column">\r\n <h5>Prime Istruzioni</h5>\r\n <div *ngIf="SelectedTopNodes">\r\n <es-table [(ngModel)]="SelectedTopNodes" [ArraymodeItemsPerPage]="10">\r\n <ng-template #header>\r\n <th class="app-col-min">{{\'Nodo\' | localize: lc}}</th>\r\n <th>{{\'Descrizione Nodo\' | localize: lc}}</th>\r\n <th class="app-col-min">{{\'Attività\' | localize: lc}}</th>\r\n <th class="app-col-min app-nowrap">{{\'Tipo Nodo\' | localize: lc}}</th>\r\n <th class="app-col-min app-nowrap">{{\'Classe Attesa\' | localize: lc}}</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-node>\r\n <td class="app-col-min"><span class="app-link"(click)="loadNodeDetails(node.profnodeid); dlgNodeDetails.show();">{{node.profnodeid}}</span></td>\r\n <td><span title="{{node.profnodedesc}}">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + "..." : node.profnodedesc}}</span></td>\r\n <td class="app-nowrap">{{node.activity | number : \'1.1-2\' : \'it\'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n <div style="width: 15px;"></div>\r\n <div style="flex-grow: 2;display: flex;flex-direction: column">\r\n <h5>Attività</h5>\r\n <div *ngIf="SelectedSessions" style="width: 100%; height: 290px">\r\n <es-line-chart [MinGridDistance]="65"\r\n [Timeline]="false"\r\n [FinalInstants]="false"\r\n [Stacked]="true"\r\n [LegendPadding]="{top: 0, bottom: 7, right: 0, left: 10}"\r\n [Fill]="true"\r\n [MergeDatasets]="true"\r\n [Data]="TopActiveSessions"\r\n [Legend]="true" \r\n name="session_details"\r\n [DataGroupingThreshold]="99999999"\r\n (chartLoaded)="onChartLoaded($event, true)">\r\n </es-line-chart>\r\n \x3c!-- <es-table [(ngModel)]="SelectedSessions" [ArraymodeItemsPerPage]="10">\r\n <ng-template #header>\r\n <th class="app-col-min">Timestamp</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Net</th>\r\n <th>IO</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-session>\r\n <td class="app-col-min" style="text-wrap: nowrap;"><strong>{{session.sampletime | loc_date: \'DD/MM/YYYY HH:mm:ss\'}}</strong></td>\r\n <td>{{session.cputime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.waittime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.dbtime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.scripttime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.throttletime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.sleeptime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.nettime | number : \'1.1-2\' : \'it\'}}</td>\r\n <td>{{session.iotime | number : \'1.1-2\' : \'it\'}}</td>\r\n </ng-template>\r\n </es-table> --\x3e\r\n </div>\r\n </div>\r\n </div>\r\n <div style="display: flex; width: 100%;">\r\n <div style="flex-grow: 1;">\r\n <h5>Statistiche Thread</h5>\r\n <div>\r\n <es-table [(ngModel)]="SessionDetails.threads" [ArraymodeItemsPerPage]="10" [Selection]="true" [SingleSelection]="true" (onSelectionChanged)="threadSelectionChanged($event)">\r\n <ng-template #header>\r\n <th>Thread</th>\r\n <th>Stato</th>\r\n <th>Tipo</th>\r\n <th>API</th>\r\n <th>Attesa corrente</th>\r\n <th>Nodo di attesa</th>\r\n <th>Attesa su</th>\r\n <th>Classe</th>\r\n <th>Par. 1</th>\r\n <th>Par. 2</th>\r\n <th>Par. 3</th>\r\n <th>Tempo Attesa</th>\r\n </ng-template>\r\n \r\n <ng-template #body let-thread>\r\n <td>{{thread.tid}}</td>\r\n <td>{{thread.status}}</td>\r\n <td>{{thread.type}}</td>\r\n <td>{{thread.api}}</td>\r\n <td>{{thread.wait}}</td>\r\n <td>{{thread.waitnode}}</td>\r\n <td>{{thread.waiteventtype}}</td>\r\n <td>{{thread.waitclassname}}</td>\r\n <td>{{thread.waitpar1}}</td>\r\n <td>{{thread.waitpar2}}</td>\r\n <td>{{thread.waitpar3}}</td>\r\n <td>{{thread.waittime | number : \'1.1-2\' : \'it\'}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-primary" (click)="dlgSessionDetails.hide()">{{\'Chiudi\' | localize: lc}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],ge.ctorParameters=function(){return[{type:T.DateService},{type:y.LocalizationService},{type:S.PreferencesService},{type:t.Location},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var ve=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),ye=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Search Application Locks",["Ricerca Lock Applicativi"]),e.prototype.set.call(i,"en->it","Name",["Nome"]),e.prototype.set.call(i,"en->it","Loading Application Locks",["Carico i Lock Applicativi"]),e.prototype.set.call(i,"en->it","Global",["Globale"]),i}return z(t,e),t}(y.LocalizationService);ye.decorators=[{type:r.Injectable}],ye.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var be=function(){function e(e,t,i,r,n,s,a,o,l){this.lc=e,this.localStorage=t,this.expExts=i,this.intercom=r,this.http=n,this.route=s,this.location=a,this.backend=o,this.mod=l,this.locksView=new ve,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.Init=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotEnqueue").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/serverenqueues"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotEnqueue").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.locksView=e,this.POSTGetProcesses(this.backend+_,this.locksView)):(this.locksView=new ve,this.sendSearch())},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),e&&(this.locksView.page=1),this.POSTGetProcesses(this.backend+_,this.locksView)},e.prototype.POSTGetProcesses=function(e,t){var i=this;this.http.post(e,t).subscribe((function(e){i.locksView=e,i.localStorage.setItem("HotEnqueue",i.locksView).subscribe()}))},e}();be.decorators=[{type:r.Component,args:[{selector:"adm_enq",viewProviders:[{provide:y.LocalizationService,useClass:ye}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Search Application Locks\' | localize : lc}}</span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <form role="form">\r\n <div class="col-md-12 row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="locksView.filtersid" name="filtersid" [Placeholder]="\'SID\'"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [FormLayout]="false" [Validation]="false" [(ngModel)]="locksView.filterlock" name="filterlock" [Placeholder]="\'Name\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper app-padding-top-10">\r\n <form-checkbox [FormLayout]="false" [Validation]="false" [(ngModel)]="locksView.filterglobal" name="filterglobal"></form-checkbox> \r\n <span class="app-pointer" (click)="locksView.filterglobal = !locksView.filterglobal">{{\'Global\' | localize : lc}}</span>\r\n </div>\r\n <button class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </form>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!locksView"><em>{{\'Loading Application Locks\' | localize : lc}}...</em></p>\r\n <div *ngIf="locksView">\r\n <es-table [(ngModel)]="locksView" [AutoUpdate]="true" [OrderByColumn]="true" (onSearchRequest)="sendSearch($event);"></es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],be.ctorParameters=function(){return[{type:y.LocalizationService},{type:S.PreferencesService},{type:T.ExportService},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:t.Location},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var Se=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),we=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","System Metrics",["Metriche di Sistema"]),e.prototype.set.call(i,"en->it","Session ID",["Cod. Sessione"]),e.prototype.set.call(i,"en->it","Session Serial",["Seriale Sessione"]),e.prototype.set.call(i,"en->it","Filter Metrics...",["Filtra Metriche..."]),e.prototype.set.call(i,"en->it","Loading Data",["Carico i Dati"]),e.prototype.set.call(i,"en->it","Update every",["Aggiorna ogni"]),e.prototype.set.call(i,"en->it","second/s",["secondo/i"]),e.prototype.set.call(i,"en->it","Metrics Instance",["Istanza Metriche"]),i}return z(t,e),t}(y.LocalizationService);we.decorators=[{type:r.Injectable}],we.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var Te=function(){function e(e,t,i,r,n,s,a,o,l){this.dateExts=e,this.lc=t,this.localStorage=i,this.location=r,this.intercom=n,this.http=s,this.route=a,this.backend=o,this.mod=l,this.MetricsChartCache={},this.searchView=new Se,this.autoUpdate=!1,this.seconds="5",this.Instances=[],this.selectedInstance="",this.instanceRequired=!1,this.metricsToShow=[],this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.Init=function(e){this.doInit(e)},e.prototype.dateChanged=function(){var e=this;this.metricsToShow=[],this.Metrics=[],this.instanceRequired=!1,this.Instances=[],this.selectedInstance="",this.searchView.filtermetrics=[];var t=(new P.HttpParams).set("from",this.searchView.filterfrom||"").set("to",this.searchView.filterto||"");this.http.get(this.backend+j,t).subscribe((function(t){return e.Metrics=t}))},e.prototype.doInit=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotSearchMetrics").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/metrics"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotSearchMetrics").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetItems(this.backend+R,this.searchView,!1)):(this.searchView=new Se,this.sendSearch()),this.dateChanged()},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.sendSearch=function(e,t,i){void 0===e&&(e=!0),void 0===t&&(t=!1),void 0===i&&(i=null),t||(this.MetricsChartCache={}),this.searchView.searchinprogress=!0,this.searchView.itemsperpageoverride=999999,e&&(this.searchView.page=1),this.POSTGetItems(this.backend+R,null!=i?i:this.searchView,t)},e.prototype.POSTGetItems=function(e,t,i){var r=this;t.filterrealtime=i?t.filterrealtime:!(t.filterfrom||t.filterto),this.http.post(e,t).subscribe((function(e){return x(r,void 0,void 0,(function(){var t=this;return M(this,(function(r){return i?e.items.forEach((function(e){e.values.forEach((function(i){var r=t.MetricsChartCache[t.metricKey(e,i)];r&&(i.series.forEach((function(e){e.values=e.values.filter((function(e){return t.dateExts.getDateConvertion(e.d).isAfter(r.lastTs)}))})),i.series.some((function(e){return e.values.length>0}))&&(r.lastTs=i.series.map((function(e){return dayjs.max(e.values.map((function(e){return t.dateExts.getDateConvertion(e.d)})))}))[0],r.chart.addData(i)))}))})):(this.selectedInstance="",this.metricsToShow=[],this.searchView=e,this.searchView.items.forEach((function(e){e.instance&&!t.Instances.find((function(t){return t.id==e.instance}))&&t.Instances.push(new ne(e.instance,e.instance))})),this.instanceRequired=this.Instances.length>1,1==this.Instances.length?(this.selectedInstance=this.Instances[0].id,this.instanceSelected()):this.instanceSelected(!0),this.localStorage.setItem("HotSearchMetrics",this.searchView).subscribe()),this.searchView.searchinprogress=!1,[2]}))}))}))},e.prototype.instanceSelected=function(e){var t=this;void 0===e&&(e=!1),(this.selectedInstance||e)&&(this.metricsToShow=this.searchView.items.filter((function(e){return!t.selectedInstance||e.instance==t.selectedInstance})))},e.prototype.linkChartToMetric=function(e,t,i){var r=this;this.MetricsChartCache[this.metricKey(e,t)]={chart:i,lastTs:t.series.map((function(e){return dayjs.max(e.values.map((function(e){return r.dateExts.getDateConvertion(e.d)})))}))[0]}},e.prototype.metricKey=function(e,t){return e.name+" - "+t.xtitle+(e.instance?" - "+e.instance:"")},e.prototype.autoUpdateChanged=function(){var e=this;/^[1-9]\d*$/.test(this.seconds)||(this.seconds="10");var t=1e3*parseInt(this.seconds,null);this.autoUpdate?(this.sendSearch(!1,!0),this.updateTimer=setInterval((function(){e.sendSearch(!1,!0)}),t)):clearInterval(this.updateTimer)},e}();Te.decorators=[{type:r.Component,args:[{selector:"metrics_search",providers:[{provide:y.LocalizationService,useClass:we}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">\r\n {{\'System Metrics\' | localize : lc}}\r\n </span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12">\r\n <form role="form">\r\n <div class="row">\r\n <div class="col-md-11">\r\n <div class="col-md-12 row app-no-padding app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-datetime [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterfrom" name="filterfrom" [Placeholder]="\'From\' | localize : lc" (inputChange)="dateChanged();"></form-datetime>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-datetime [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterto" name="filterto" [Placeholder]="\'To\' | localize : lc" (inputChange)="dateChanged();"></form-datetime>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtersid" name="filtersid" [Placeholder]="\'Session ID\' | localize : lc"></form-input>\r\n </div>\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-input [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filterserial" name="filterserial" [Placeholder]="\'Session Serial\' | localize : lc"></form-input>\r\n </div>\r\n </div>\r\n <div class="col-md-12 row app-no-padding">\r\n <div class="col-12 app-filter-wrapper">\r\n <form-multiselect [Readonly]="autoUpdate" [FormLayout]="false" [Validation]="false" [(ngModel)]="searchView.filtermetrics" [IdField]="\'name\'" [Display]="\'{name}\'" name="filtermetrics" [SelectLabel]="\'Filter Metrics...\' | localize : lc" [Source]="Metrics"></form-multiselect>\r\n </div>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n <div class="col-md-1 app-no-padding">\r\n <button [disabled]="searchView.searchinprogress || autoUpdate" class="input-group-addon btn app-btn-search" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </form>\r\n <div class="app-col-12 app-margin-top-15">\r\n <div class="pull-right">\r\n {{\'Update every\' | localize : lc}} <input [readonly]="autoUpdate" maxlength="3" class="form-control app-updevery-input" type="text" [(ngModel)]="seconds" /> {{\'second/s\' | localize : lc}}\r\n </div>\r\n <div class="pull-right m-t-2 app-margin-right-5">\r\n <label class="switch">\r\n <input type="checkbox" [(ngModel)]="autoUpdate" (ngModelChange)="autoUpdateChanged();" />\r\n <div class="slider round"></div>\r\n </label>\r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <p *ngIf="!searchView"><em>{{\'Loading Data\' | localize : lc}}</em></p>\r\n <div *ngIf="searchView && instanceRequired">\r\n <form-select [Validation]="false" [Label]="\'Metrics Instance\' | localize : lc" [(ngModel)]="selectedInstance" name="instance" [Source]="Instances" (inputChange)="instanceSelected()" required></form-select>\r\n </div>\r\n <div *ngIf="searchView && metricsToShow && metricsToShow.length > 0">\r\n <div class="col-md-12 app-padding-right-0 row app-margin-top-15">\r\n <ng-container *ngFor="let metric of metricsToShow; let i = index">\r\n <div class="col-md-4 app-no-padding app-simple-border" *ngFor="let chart of metric.values; let z = index">\r\n <div style="width: 100%; height: 260px">\r\n <es-line-chart [XTitle]="chart.xtitle"\r\n [YTitle]="chart.ytitle"\r\n [MinGridDistance]="65"\r\n [Timeline]="false"\r\n [LegendPadding]="{top: 0, bottom: 7, right: 0, left: 10}"\r\n [MergeDatasets]="true"\r\n [Data]="chart"\r\n [Animations]="true"\r\n [Legend]="chart.legend"\r\n name="metric_{{i}}_chart_{{z}}"\r\n (chartLoaded)="linkChartToMetric(metric, chart, $event);"\r\n [DataGroupingThreshold]="99999999">\r\n </es-line-chart>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class="clearfix"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],Te.ctorParameters=function(){return[{type:T.DateService},{type:y.LocalizationService},{type:S.PreferencesService},{type:t.Location},{type:T.InterComService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var Pe=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Server Logs",["Log del Server"]),i}return z(t,e),t}(y.LocalizationService);Pe.decorators=[{type:r.Injectable}],Pe.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var Ie=function(){function e(e,t,i,r,n){this.intercom=e,this.http=t,this.lc=i,this.route=r,this.backend=n,this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.http.get(this.backend+q).subscribe((function(t){e.Log=t}))},e}();Ie.decorators=[{type:r.Component,args:[{selector:"adm_logs",viewProviders:[{provide:y.LocalizationService,useClass:Pe}],template:'<div class="row">\r\n <div class="col-12 bottom-15">\r\n <p *ngIf="Log" class="app-whitespace-prewrap" [innerHTML]="Log"></p>\r\n </div>\r\n</div>'}]}],Ie.ctorParameters=function(){return[{type:T.InterComService},{type:w.HTTPService},{type:y.LocalizationService},{type:n.ActivatedRoute},{type:String,decorators:[{type:r.Inject,args:[Z]}]}]};var De=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Active Sessions",["Sessioni Attive"]),e.prototype.set.call(i,"en->it","Activity Node Details",["Dettaglio Attività Nodo"]),e.prototype.set.call(i,"en->it","Event Type",["Tipo Evento"]),e.prototype.set.call(i,"en->it","Elapsed (With Children)",["Tempo Trascorso (Con Figli)"]),e.prototype.set.call(i,"en->it","Wait Class",["Classe Attesa"]),e.prototype.set.call(i,"en->it","Elapsed (No Children)",["Tempo Trascorso"]),e.prototype.set.call(i,"en->it","Wait Stack",["Stack di Attesa"]),e.prototype.set.call(i,"en->it","Resources Usage",["Utilizzo Risorse"]),e.prototype.set.call(i,"en->it","Executions",["Esecuzioni"]),e.prototype.set.call(i,"en->it","Event detail",["Dettaglio evento"]),i}return z(t,e),t}(y.LocalizationService);De.decorators=[{type:r.Injectable}],De.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var Ce=function(){function e(e){this.lc=e,this.onClose=new r.EventEmitter}return e.prototype.ngOnInit=function(){var e=new g.LineSerie(this.lc.loc("Active Sessions"),this.NodeDetails.activesessions);this.NodeDetails.sessionchart=new g.LineChartData([e]),this.NodeDetails.loadchart=new g.PieChartData([new g.KeyValueColor("CPU",this.NodeDetails.cpuperc),new g.KeyValueColor("Wait",this.NodeDetails.waitperc),new g.KeyValueColor("DB",this.NodeDetails.dbperc),new g.KeyValueColor("Script",this.NodeDetails.scriptperc),new g.KeyValueColor("Throttle",this.NodeDetails.throttleperc),new g.KeyValueColor("Sleep",this.NodeDetails.sleepperc),new g.KeyValueColor("Networking",this.NodeDetails.networkperc),new g.KeyValueColor("IO",this.NodeDetails.ioperc)])},e.prototype.closeDialog=function(){this.onClose.emit(!0)},e}();Ce.decorators=[{type:r.Component,args:[{selector:"node-detail",viewProviders:[{provide:y.LocalizationService,useClass:De}],template:'<div class="modal-dialog modal-xl" cdkDrag>\r\n <div class="modal-content">\r\n <div class="modal-header" cdkDragHandle>\r\n <h4 class="modal-title pull-left">\r\n {{\'Activity Node Details\' | localize : lc}}\r\n <span *ngIf="NodeDetails"> {{NodeDetails.nodeid}}</span>\r\n </h4>\r\n <button type="button" class="close pull-right" (click)="closeDialog()" aria-label="Close">\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <div class="modal-body" *ngIf="NodeDetails">\r\n <div class="row">\r\n <div class="col-md-6">\r\n <strong>{{\'Event Type\' | localize: lc}}</strong>: {{NodeDetails.eventtypedesc}} <strong>{{\'Wait Class\' | localize: lc}}</strong>: {{NodeDetails.waitclassname}}\r\n </div>\r\n <div class="col-md-6">\r\n <strong>{{\'Elapsed (With Children)\' | localize: lc}}</strong>: {{NodeDetails.elapsed}} s\r\n </div>\r\n <div class="col-md-6">\r\n\t\t\t\t\t<strong>{{\'Executions\' | localize: lc}}</strong>: {{NodeDetails.executions}}\r\n </div>\r\n <div class="col-md-6">\r\n <strong>{{\'Elapsed (No Children)\' | localize: lc}}</strong>: {{NodeDetails.elapsedlesschildren}} s\r\n </div>\r\n </div>\r\n\t\t\t<div>\r\n\t\t\t\t<h5 class="app-margin-top-10"><strong>{{\'Event detail\' | localize: lc}}</strong></h5>\r\n\t\t\t\t{{NodeDetails.nodedescription}}\r\n\t\t\t</div>\r\n\t\t\t<div style="max-height: 200px; overflow: auto" *ngIf="(NodeDetails?.waitstack?.length || 0) > 0">\r\n <h5 class="app-margin-top-10"><strong>{{\'Wait Stack\' | localize: lc}}</strong></h5>\r\n <div *ngFor="let wait of NodeDetails.waitstack; let i = index;">\r\n <ng-container *ngFor="let _ of [].constructor(i+1)">-</ng-container> {{wait.nodeid}} - {{wait.nodedescription}}: \r\n <strong>{{\'Event Type\' | localize: lc}}</strong>: {{wait.eventtypedesc}} \r\n <strong>{{\'Wait Class\' | localize: lc}}</strong>: {{wait.waitclassname}}\r\n </div>\r\n </div>\r\n <div style="height: 200px;">\r\n <h5 class="app-margin-top-10"><strong>{{\'Resources Usage\' | localize: lc}}</strong></h5>\r\n <es-line-chart *ngIf="NodeDetails.sessionchart"\r\n [MinGridDistance]="65"\r\n [Timeline]="false"\r\n [FinalInstants]="false"\r\n [LegendPadding]="{top: 0, bottom: 7, right: 0, left: 10}"\r\n [Fill]="true"\r\n [MergeDatasets]="true"\r\n [Data]="NodeDetails.sessionchart"\r\n [Legend]="true" \r\n name="nodeDetailSessionChart"\r\n [DataGroupingThreshold]="99999999"></es-line-chart>\r\n </div>\r\n <div style="height: 200px;">\r\n <es-pie-chart *ngIf="NodeDetails.loadchart" [Legend]="true" [Data]="NodeDetails.loadchart" name="nodeDetailLoadChart"></es-pie-chart>\r\n </div>\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-primary" (click)="closeDialog()">{{\'Close\' | localize : lc}}</button>\r\n </div>\r\n </div>\r\n</div>'}]}],Ce.ctorParameters=function(){return[{type:y.LocalizationService}]},Ce.propDecorators={NodeDetails:[{type:r.Input}],onClose:[{type:r.Output}]};var Ve=function(e){function t(){return e.call(this)||this}return z(t,e),t}(m.AppSearch),ze=function(e){function t(t){var i=e.call(this,t)||this;return e.prototype.set.call(i,"en->it","Search Application Dynamic Views",["Ricerca Viste Dinamiche Applicative"]),e.prototype.set.call(i,"en->it","Name",["Nome"]),e.prototype.set.call(i,"en->it","Loading Application Dynamic Views",["Carico le Viste Dinamiche Applicative"]),e.prototype.set.call(i,"en->it","View Name is mandatory for search operations",["Il nome della vista è obbligatorio per le operazioni di ricerca"]),e.prototype.set.call(i,"en->it","No element found for Dynamic View",["Nessun elemento trovato per la vista dinamica"]),i}return z(t,e),t}(y.LocalizationService);ze.decorators=[{type:r.Injectable}],ze.ctorParameters=function(){return[{type:String,decorators:[{type:r.Inject,args:[Q]}]}]};var Ae=function(){function e(e,t,i,r,n,s,a,o){this.lc=e,this.intercom=t,this.localStorage=i,this.http=r,this.route=n,this.location=s,this.backend=a,this.mod=o,this.searchView=new Ve,this.Names=[],this.badSearch=!1,this.currentName="",this.filterName="",this.intercom.send(T.InboundMessageTypes.Navigation,{sub:!1,routeTitle:this.lc.loc(this.route.snapshot.data.title)})}return e.prototype.ngOnInit=function(){var e=this;this.http.get(W).subscribe((function(t){e.Names=t})),this.storageSub=this.route.queryParams.subscribe((function(t){e.Init(t.ignoreStorage)}))},e.prototype.ngOnDestroy=function(){this.storageSub&&this.storageSub.unsubscribe()},e.prototype.Init=function(e){return x(this,void 0,void 0,(function(){var t;return M(this,(function(i){switch(i.label){case 0:return[4,this.localStorage.getItem("HotDinamitato").toPromise()];case 1:return t=i.sent(),e||!t?[3,2]:(this.init(t),[3,4]);case 2:return this.init(null),this.location.replaceState("/pages/"+this.mod+"/serverviews"),this.route.snapshot.queryParams=[],[4,this.localStorage.removeItem("HotDinamitato").toPromise()];case 3:i.sent(),i.label=4;case 4:return[2]}}))}))},e.prototype.init=function(e){e?(this.searchView=e,this.POSTGetItems(this.backend+F,this.searchView)):(this.searchView=new Ve,this.sendSearch())},e.prototype.sendSearch=function(e){void 0===e&&(e=!0),this.searchView.searchinprogress=!0,e&&(this.searchView.page=1),this.searchView.filtername=this.filterName,this.POSTGetItems(this.backend+F,this.searchView)},e.prototype.POSTGetItems=function(e,t){var i=this;if(!this.searchView.filtername)return this.badSearch=!0,m.AppSearch.reset(this.searchView),void(this.searchView=JSON.parse(JSON.stringify(this.searchView)));this.badSearch=!1,this.currentName!=this.searchView.filtername&&(this.currentName=this.searchView.filtername,this.searchView=null),this.http.post(e,t).subscribe((function(e){i.searchView=e,i.searchView.searchinprogress=!1,i.localStorage.setItem("HotDinamitato",i.searchView).subscribe()}))},e}();Ae.decorators=[{type:r.Component,args:[{selector:"adm_dynamic_views",viewProviders:[{provide:y.LocalizationService,useClass:ze}],template:'<div class="row">\r\n <div class="col-12">\r\n <div class="card app-overflow-visible" widget>\r\n <div class="card-header">\r\n <span class="text-uppercase">{{\'Search Application Dynamic Views\' | localize : lc}}</span>\r\n </div>\r\n <div class="card-body widget-body">\r\n <div class="col-md-12 bottom-15">\r\n <form role="form">\r\n <div class="row app-first-filter-line">\r\n <div class="col-xl-2 col-lg-2 col-md-12 app-filter-wrapper">\r\n <form-select [FormLayout]="false" [Validation]="false" [(ngModel)]="filterName" name="filtername" [Source]="Names" [SelectLabel]="\'Name\' | localize : lc"></form-select>\r\n </div>\r\n <button class="input-group-addon btn app-btn-search app-margin-top-20" (click)="sendSearch()" type="submit"><i class="fa fa-search"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-12">\r\n <div class="row">\r\n <div class="col-md-12">\r\n <div *ngIf="badSearch" class="card card-info app-white-text app-padding-10">{{\'View Name is mandatory for search operations\' | localize : lc}}</div>\r\n <ng-container *ngIf="!badSearch">\r\n <p *ngIf="!searchView"><em>{{\'Loading Application Dynamic Views\' | localize : lc}}...</em></p>\r\n <div *ngIf="searchView && searchView.items.length > 0">\r\n <es-table [(ngModel)]="searchView" [AutoUpdate]="true" [OrderByColumn]="true" (onSearchRequest)="sendSearch($event);"></es-table>\r\n </div>\r\n <div *ngIf="searchView && searchView.items.length == 0 && !searchView.searchinprogress" class="card card-info app-white-text app-padding-10">\r\n {{\'No element found for Dynamic View\' | localize : lc}} <strong>{{searchView.filtername}}</strong>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'}]}],Ae.ctorParameters=function(){return[{type:y.LocalizationService},{type:T.InterComService},{type:S.PreferencesService},{type:w.HTTPService},{type:n.ActivatedRoute},{type:t.Location},{type:String,decorators:[{type:r.Inject,args:[Z]}]},{type:String,decorators:[{type:r.Inject,args:[ee]}]}]};var xe=function(){function e(){}return e.prototype.transform=function(e){return this.secondsToHms(e)},e.prototype.secondsToHms=function(e){e=Number(e);var t=Math.floor(e/3600),i=Math.floor(e%3600/60),r=Math.floor(e%3600%60);return(t>0?t+" h, ":"")+(i>0?i+" min, ":"")+(r>0?r+" sec":"")},e}();xe.decorators=[{type:r.Pipe,args:[{name:"format_time"}]}],xe.ctorParameters=function(){return[]};var Me,ke="EsAdminModule";(Me=e.AdmMessageTypes||(e.AdmMessageTypes={}))[Me.Message=0]="Message";var Le=function(){function t(e){this.intercom=e}return t.prototype.register=function(){var e=this;this.intercom.register(ke),this.intercom.outbounds[ke].subscribe((function(t){e.handleOutbound(t.type,t.message)}))},t.prototype.handleOutbound=function(t,i){switch(t){case e.AdmMessageTypes.Message:myconfig.DEBUG_MODE&&console.log("@admin-module outbound message: "+i)}},t}();Le.decorators=[{type:r.Injectable}],Le.ctorParameters=function(){return[{type:T.InterComService}]};var Ne={title:"Search Application Processes",internalNavigation:!1},Ee={title:"Server Profiler",internalNavigation:!1},Oe={title:"Top Activities",internalNavigation:!1},Ue={title:"System Metrics",internalNavigation:!1},je={title:"Server Logs",internalNavigation:!1},Re={title:"Search Application Audits",internalNavigation:!1},Ge={title:"Search Application Locks",internalNavigation:!1},He={title:"Search Application Dynamic Views",internalNavigation:!1},Fe=[{path:"",children:[{path:"serverworkers",component:oe,data:Ne},{path:"profiler",component:ue,data:Ee},{path:"topact",component:ge,data:Oe},{path:"metrics",component:Te,data:Ue},{path:"serverlogs",component:Ie,data:je},{path:"serveraudits",component:re,data:Re},{path:"serverenqueues",component:be,data:Ge},{path:"serverviews",component:Ae,data:He}]}],_e=[t.CommonModule,i.FormsModule,a.MatDatepickerModule,o.MatDayjsDateModule,s.MatIconModule,l.MatInputModule,p.ModalModule,u.TooltipModule,h.BsDropdownModule,d.CsvModule,b.ContextMenuModule,y.LocalizationModule,m.EsTableModule,f.FormsAndValidationsModule,v.EsGertrudeModule,g.EsChartsModule,c.NgxMatDatetimePickerModule,n.RouterModule.forChild(Fe)],qe=[oe,ue,ge,Ae,Ie,re,be,Te,Ce],We=[xe],Ke=myconfig.LOCALE,Be=myconfig.BACKEND_URL,$e=!!myconfig.TRANSACTIONS_TIMEOUT_S,Ye=function(e){this.commService=e,console.log("@esfaenza/admin-module: BOOTSTRAP"),this.commService.register()};Ye.decorators=[{type:r.NgModule,args:[{imports:L(_e),declarations:L(qe,We),providers:[Le,{provide:Q,useValue:Ke},{provide:Z,useValue:Be},{provide:te,useValue:$e}]}]}],Ye.ctorParameters=function(){return[{type:Le}]},e.ADM_BACKEND_URL=Z,e.ADM_CONVERSATIONS=te,e.ADM_LOCALE=Q,e.ADM_MODULE_PATH=ee,e.AdmModule=Ye,e.MK_ADM=ke,e.routeConfig=Fe,e.ɵ0=Ne,e.ɵ1=Ee,e.ɵ10=$e,e.ɵ2=Oe,e.ɵ3=Ue,e.ɵ4=je,e.ɵ5=Re,e.ɵ6=Ge,e.ɵ7=He,e.ɵ8=Ke,e.ɵ9=Be,e.ɵa=oe,e.ɵb=ae,e.ɵc=ue,e.ɵd=he,e.ɵe=ge,e.ɵf=fe,e.ɵg=Te,e.ɵh=we,e.ɵi=Ie,e.ɵj=Pe,e.ɵk=re,e.ɵl=ie,e.ɵm=be,e.ɵn=ye,e.ɵo=Ae,e.ɵp=ze,e.ɵq=Ce,e.ɵr=De,e.ɵs=xe,e.ɵt=Le,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=esfaenza-admin-module.umd.min.js.map
|