PluginProbe
DecaLog / 4.4.0
DecaLog v4.4.0
3.0.2 3.1.0 3.10.0 3.2.0 3.3.0 3.4.0 3.4.1 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.7.0 3.7.1 3.8.0 3.9.0 3.9.1 4.0.0 4.1.0 4.2.0 4.3.0 4.3.1 4.4.0 4.5.0 All 75 releases
decalog / admin / js / livelog.js

livelog.js in DecaLog 4.4.0, at admin/js/livelog.js

112 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 jQuery( document ).ready(
2 function($) {
3 function initialize() {
4 $( '#decalog-select-level' ).change(
5 function () {
6 level = $( this ).val();
7 }
8 );
9 $( '#decalog-select-format' ).change(
10 function () {
11 mode = $( this ).val();
12 }
13 );
14 $( '#decalog-control-play' ).click(
15 function () {
16 consoleRun();
17 }
18 );
19 $( '#decalog-control-pause' ).click(
20 function () {
21 consolePause();
22 }
23 );
24 }
25 function consoleRun() {
26 document.querySelector( '#decalog-control-pause' ).classList.remove( 'decalog-control-inactive' );
27 document.querySelector( '#decalog-control-pause' ).classList.add( 'decalog-control-active' );
28 document.querySelector( '#decalog-control-play' ).classList.remove( 'decalog-control-active' );
29 document.querySelector( '#decalog-control-play' ).classList.add( 'decalog-control-inactive' );
30 document.querySelector( '.decalog-control-hint' ).innerHTML = 'running   ðŸŸ¢';
31 running = true;
32 }
33 function consolePause() {
34 document.querySelector( '#decalog-control-play' ).classList.remove( 'decalog-control-inactive' );
35 document.querySelector( '#decalog-control-play' ).classList.add( 'decalog-control-active' );
36 document.querySelector( '#decalog-control-pause' ).classList.remove( 'decalog-control-active' );
37 document.querySelector( '#decalog-control-pause' ).classList.add( 'decalog-control-inactive' );
38 document.querySelector( '.decalog-control-hint' ).innerHTML = 'paused   ðŸŸ ';
39 running = false;
40 }
41 function loadLines() {
42 if ( running ) {
43 if ( '0' === index ) {
44 elem = document.createElement( 'pre' );
45 elem.classList.add( 'decalog-logger-line' );
46 elem.classList.add( 'decalog-logger-line-init' );
47 elem.innerHTML = 'Console initialization...';
48 root.appendChild( elem );
49 init = true;
50 }
51 $.ajax(
52 {
53 type : 'GET',
54 url : livelog.restUrl,
55 data : { level: level, mode: mode, index: index },
56 beforeSend: function ( xhr ) { xhr.setRequestHeader( 'X-WP-Nonce', livelog.restNonce ); xhr.setRequestHeader( 'Decalog-No-Log', 'inbound' ); },
57 success: function( response ) {
58 if ( response ) {
59 if ( undefined !== response.index ) {
60 index = response.index;
61 }
62 if ( undefined !== response.items ) {
63 items = Object.entries( response.items );
64 if ( items.length > 0 ) {
65 if ( init ) {
66 root.removeChild( root.firstElementChild );
67 init = false;
68 consoleRun();
69 }
70 items.forEach(
71 function( item ){
72 elem = document.createElement( 'pre' );
73 elem.classList.add( 'decalog-logger-line' );
74 elem.classList.add( 'decalog-logger-line-' + item[1].level );
75 elem.innerHTML = item[1].line.replace( ' ', ' ' );
76 if ( root.childElementCount > livelog.buffer ) {
77 root.removeChild( root.firstElementChild );
78 }
79 root.appendChild( elem );
80 $( '#decalog-logger-lines' ).animate( { scrollTop: elem.offsetTop }, 20 );
81 }
82 );
83 }
84 }
85 }
86 },
87 /*error: function( response ) {
88 console.log( response );
89 },*/
90 complete:function( response ) {
91 setTimeout( loadLines, livelog.frequency );
92 }
93 }
94 );
95 } else {
96 setTimeout( loadLines, 250 );
97 }
98 }
99
100 let level = 'info';
101 let mode = 'wp';
102 let index = '0';
103 let running = true;
104 let init = false;
105 const root = document.querySelector( '#decalog-logger-lines' );
106
107 initialize();
108 loadLines();
109
110 }
111 );
112