@@ -28,90 +28,102 @@ <h4>Event Logs</h4>
2828 </ div >
2929</ div >
3030< script >
31- $ ( "#containerBox" ) . on ( "click" , "#goToEvents" , function ( ) {
32- $ ( ".instanceViewBox" ) . hide ( ) ;
33- $ ( "#containerEvents" ) . show ( ) ;
34- ajaxRequest ( '/api/Instances/RecordedActions/GetHostInstanceEventsController/get' , currentContainerDetails , ( data ) => {
35- data = makeToastr ( data ) ;
36- let trs = "" ;
37- let filterEventOptions = [ ] ;
38- let filterEventUsers = [ ] ;
39- if ( data . length > 0 ) {
40- $ . each ( data , ( _ , instanceEvent ) => {
41- let eName = instanceEvent . controllerName == "" ? instanceEvent . controller : instanceEvent . controllerName ;
31+ function _renderContainerEvents ( data ) {
32+ data = makeToastr ( data ) ;
33+ let trs = "" ;
34+ let filterEventOptions = [ ] ;
35+ let filterEventUsers = [ ] ;
36+ if ( data . length > 0 ) {
37+ $ . each ( data , ( _ , instanceEvent ) => {
38+ let eName = instanceEvent . controllerName == "" ? instanceEvent . controller : instanceEvent . controllerName ;
4239
43- let params = "-" ;
44- let userParams = instanceEvent . params ;
45- let userKeys = Object . keys ( instanceEvent . params ) ;
46- if ( userKeys . length > 0 ) {
47- params = ""
48- $ . each ( userKeys , ( _ , key ) => {
49- if ( userParams [ key ] == null ) {
50- return true ;
51- }
52- let t = typeof userParams [ key ]
53- if ( t !== "array" && t !== "object" ) {
54- params += `<div class="mb-1">
55- ${ key } : ${ userParams [ key ] }
56- </div>`
57- // NOTE 1 level recursion not traversing whole tree's
58- } else if ( t === "object" ) {
59- let pKeys = Object . keys ( userParams [ key ] ) ;
60- params += `<div class="mb-1">
61- ${ key } :
40+ let params = "-" ;
41+ let userParams = instanceEvent . params ;
42+ let userKeys = Object . keys ( instanceEvent . params ) ;
43+ if ( userKeys . length > 0 ) {
44+ params = ""
45+ $ . each ( userKeys , ( _ , key ) => {
46+ if ( userParams [ key ] == null ) {
47+ return true ;
48+ }
49+ let t = typeof userParams [ key ]
50+ if ( t !== "array" && t !== "object" ) {
51+ params += `<div class="mb-1">
52+ ${ key } : ${ userParams [ key ] }
53+ </div>`
54+ } else if ( t === "object" ) {
55+ let pKeys = Object . keys ( userParams [ key ] ) ;
56+ params += `<div class="mb-1">
57+ ${ key } :
58+ </div>`
59+ $ . each ( pKeys , ( _ , k ) => {
60+ params += `<div class="mb-1 ps-2">
61+ ${ k } : ${ userParams [ key ] [ k ] }
6262 </div>`
63- $ . each ( pKeys , ( _ , k ) => {
64- params += `<div class="mb-1 ps-2">
65- ${ k } : ${ userParams [ key ] [ k ] }
66- </div>`
67- } ) ;
68- }
69- } ) ;
70- }
63+ } ) ;
64+ }
65+ } ) ;
66+ }
7167
72- trs += `<tr data-user-name="${ instanceEvent . userName } " data-event-name="${ eName } ">
73- <td>${ instanceEvent . userName } </td>
74- <td>${ moment . utc ( instanceEvent . date ) . local ( ) . format ( "llll" ) } </td>
75- <td>${ eName } </td>
76- <td>${ params } </td>
77- </tr>`
78- if ( ! filterEventUsers . includes ( instanceEvent . userName ) ) {
79- filterEventUsers . push ( instanceEvent . userName ) ;
80- }
81- if ( ! filterEventOptions . includes ( eName ) ) {
82- filterEventOptions . push ( eName ) ;
83- }
84- } ) ;
85- } else {
86- trs = "<tr><td colspan='999' class='text-center'>No Logs</td></tr>"
87- }
88- let filters = '<li><h6 class="dropdown-header p-0"><i class="fas fa-filter me-2"></i>Users</h6></li>' ;
89- $ . each ( filterEventUsers , ( i , userName ) => {
90- filters += `<div class="ps-3">
91- <div class="form-check">
92- <input type="checkbox" class="form-check-input userFilter" data-user-name="${ userName } " id="${ i } UserFilter" checked>
93- <label class="form-check-label" for="${ i } UserFilter">
94- ${ userName }
95- </label>
96- </div>
97- </div>`
98- } ) ;
99- filters += '<li><h6 class="dropdown-header p-0"><i class="fas fa-filter me-2"></i>Events</h6></li>' ;
100- $ . each ( filterEventOptions , ( i , option ) => {
101- filters += `<div class="ps-3">
102- <div class="form-check">
103- <input type="checkbox" class="form-check-input eventFilter" data-event-name="${ option } " id="${ i } EventFilter" checked>
104- <label class="form-check-label" for="${ i } EventFilter">
105- ${ option }
106- </label>
107- </div>
108- </div>`
68+ trs += `<tr data-user-name="${ instanceEvent . userName } " data-event-name="${ eName } ">
69+ <td>${ instanceEvent . userName } </td>
70+ <td>${ moment . utc ( instanceEvent . date ) . local ( ) . format ( "llll" ) } </td>
71+ <td>${ eName } </td>
72+ <td>${ params } </td>
73+ </tr>`
74+ if ( ! filterEventUsers . includes ( instanceEvent . userName ) ) {
75+ filterEventUsers . push ( instanceEvent . userName ) ;
76+ }
77+ if ( ! filterEventOptions . includes ( eName ) ) {
78+ filterEventOptions . push ( eName ) ;
79+ }
10980 } ) ;
81+ } else {
82+ trs = "<tr><td colspan='999' class='text-center'>No Logs</td></tr>"
83+ }
84+ let filters = '<li><h6 class="dropdown-header p-0"><i class="fas fa-filter me-2"></i>Users</h6></li>' ;
85+ $ . each ( filterEventUsers , ( i , userName ) => {
86+ filters += `<div class="ps-3">
87+ <div class="form-check">
88+ <input type="checkbox" class="form-check-input userFilter" data-user-name="${ userName } " id="${ i } UserFilter" checked>
89+ <label class="form-check-label" for="${ i } UserFilter">
90+ ${ userName }
91+ </label>
92+ </div>
93+ </div>`
94+ } ) ;
95+ filters += '<li><h6 class="dropdown-header p-0"><i class="fas fa-filter me-2"></i>Events</h6></li>' ;
96+ $ . each ( filterEventOptions , ( i , option ) => {
97+ filters += `<div class="ps-3">
98+ <div class="form-check">
99+ <input type="checkbox" class="form-check-input eventFilter" data-event-name="${ option } " id="${ i } EventFilter" checked>
100+ <label class="form-check-label" for="${ i } EventFilter">
101+ ${ option }
102+ </label>
103+ </div>
104+ </div>`
105+ } ) ;
106+
107+ $ ( "#filterEventsUl" ) . empty ( ) . append ( filters ) ;
108+ $ ( "#containerEventsTable > tbody" ) . empty ( ) . append ( trs ) ;
109+ }
110+
110111
111- $ ( "#filterEventsUl" ) . empty ( ) . append ( filters ) ;
112- $ ( "#containerEventsTable > tbody" ) . empty ( ) . append ( trs ) ;
112+ function loadContainerEventsReq ( req ) {
113+ currentContainerDetails = { hostId : req . data . hostId , container : req . data . instance , alias : hostsAliasesLookupTable [ req . data . hostId ] } ;
114+ createDashboardSidebar ( )
115+ loadInstanceView ( currentContainerDetails , true , false ) ;
116+
117+ $ ( ".instanceViewBox" ) . hide ( ) ;
118+ $ ( "#containerEvents" ) . show ( ) ;
119+
120+ $ ( "#containerBoxNav" ) . find ( ".active" ) . removeClass ( "active" ) ;
121+ $ ( "#containerBoxNav .nav-item[data-view='containerEvents'] > .nav-link" ) . addClass ( "active" ) ;
122+
123+ ajaxRequest ( '/api/Instances/RecordedActions/GetHostInstanceEventsController/get' , currentContainerDetails , ( data ) => {
124+ _renderContainerEvents ( data ) ;
113125 } ) ;
114- } ) ;
126+ }
115127
116128 $ ( "#filterEventsUl" ) . on ( "click" , ".userFilter, .eventFilter" , function ( ) {
117129 let users = $ ( "#filterEventsUl" ) . find ( ".userFilter" ) . map ( function ( ) {
0 commit comments