]>
jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blob - logs/index.php
2 require_once "../inc/common.php";
3 require_once "../inc/header.php";
9 <table id
="data_list" class="table-striped display nowrap" style
="width:100%">
11 <th scope
="col">Time
</th
>
12 <th scope
="col">Level
</th
>
13 <th scope
="col">Subsystem
</th
>
14 <th scope
="col">Event
</th
>
15 <th scope
="col">Message
</th
>
21 let data_list_table
= null;
23 function level2color(level
)
29 if ((level
== 'error') || (level
== 'fatal'))
33 function log_colorizer(data
, type
, row
)
35 if (type
== 'display')
37 var color
= level2color(row
['Level']);
38 data
= '<span style="color: '+color+
'">' + data +
'</span>';
43 function log_timestamp(data
, type
, row
)
45 if (type
== 'display')
47 return moment
.utc(data
).local().format('HH:mm:ss');
52 function resize_check()
54 if (window
.innerWidth
< 900)
56 data_list_table
.column(1).visible(false); // level
57 data_list_table
.column(2).visible(false); // subsystem
58 data_list_table
.column(3).visible(false); // event
60 if (window
.innerWidth
< 1250)
62 data_list_table
.column(1).visible(true); // level
63 data_list_table
.column(2).visible(false); // subsystem
64 data_list_table
.column(3).visible(false); // event
66 if (window
.innerWidth
< 1450)
68 data_list_table
.column(1).visible(true); // level
69 data_list_table
.column(2).visible(true); // subsystem
70 data_list_table
.column(3).visible(false); // event
73 data_list_table
.column(1).visible(true); // level
74 data_list_table
.column(2).visible(true); // subsystem
75 data_list_table
.column(3).visible(true); // event
77 data_list_table
.rows().invalidate('data').draw(false);
80 function log_text(data
, type
, row
)
82 var esc
= function (t
) {
84 .replace(/&/g
, '&')
85 .replace(/</g
, '<')
86 .replace(/>/g
, '>')
87 .replace(/"/g, '"');
90 if (type != 'display')
93 var color = level2color(row['Level']);
95 if (window.innerWidth < 500)
97 else if (window.innerWidth < 1000)
99 else if (window.innerWidth < 1750)
104 if (data.length > cutoff)
106 // stolen from ellipsis
107 var shortened = data.substr(0, cutoff - 1);
108 data = '<span class="ellipsis
" style="color
: '+color+'" title="' +
114 // otherwise just like log_colorizer...
115 data = '<span style="color
: '+color+'">' + data + '</span>';
120 $(document).ready( function () {
122 //'responsive': true,
128 { 'data': 'Time', 'responsivePriority': 1, 'render': log_timestamp },
129 { 'data': 'Level', 'responsivePriority': 3, 'className':'virtuallink', 'render': log_colorizer },
130 { 'data': 'Subsystem', 'responsivePriority': 4, 'render': log_colorizer },
131 { 'data': 'Event', 'responsivePriority': 5, 'render': log_colorizer },
132 //{ 'data': 'Message', 'responsivePriority': 2, 'render': DataTable.render.ellipsis(100, false) },
133 { 'data': 'Message', 'responsivePriority': 2, 'render': log_text },
136 'order':[[0,'desc']],
139 /* Only show filter pane on desktop */
140 if (window.innerWidth > 8000)
142 args['dom'] = 'Pfrtip';
143 args['searchPanes'] = {
144 'initCollapsed': 'true',
147 select: { style: 'multi'},
148 order: [[ 1, "desc
" ]]
153 data_list_table = $('#data_list').DataTable(args);
156 window.addEventListener('resize', resize_check);
158 StartLogStream('<?php echo get_config('base_url'); ?>api/log.php');
162 <?php require_once '../inc/footer.php'; ?>