@@ -55,8 +55,13 @@ <h1 class="pull-left">{% if custom_file_list_title %}{{ custom_file_list_title }
5555 </ form >
5656 < div id ="changelist-filter ">
5757 < h2 > {% trans 'Log Files' %}</ h2 >
58- < div id ="log-files-list ">
59- </ div >
58+ {# < div id ="log-files-list "> #}
59+ {# </ div > #}
60+ < table id ="log-files-list " class ="display " style ="width:100% ">
61+ < tbody >
62+ < tr > < td colspan ="2 "> {% trans 'No entries!' %}</ td > </ tr >
63+ </ tbody >
64+ </ table >
6065 </ div >
6166 </ div >
6267 </ div >
@@ -81,7 +86,7 @@ <h2>{% trans 'Log Files' %}</h2>
8186
8287 function loadDataTable ( table_name , url_json ) {
8388 $ ( table_name ) . DataTable ( {
84- pageLength : { { page_length } } ,
89+ pageLength : { { files_per_page } } ,
8590 columns : [ { data : 0 } , { data : 1 } ] ,
8691 ajax : function ( data , callback , settings ) {
8792 $ . ajax ( {
@@ -91,9 +96,46 @@ <h2>{% trans 'Log Files' %}</h2>
9196 const new_logs = [ ] ;
9297 var next_page = response . next_page || 1 ;
9398
94- response . logs . forEach ( function ( text , numb , logs ) {
95- text = escapeHtml ( text ) ;
96- new_logs . push ( [ numb + 1 , text ] ) ;
99+ try {
100+ response . logs . forEach ( function ( text , numb , logs ) {
101+ text = escapeHtml ( text ) ;
102+ new_logs . push ( [ numb + 1 , text ] ) ;
103+ } ) ;
104+ } catch {
105+ console . warn ( "This log file doesn't exist" ) ;
106+ }
107+
108+
109+ callback ( {
110+ data : new_logs ,
111+ recordsTotal : next_page ,
112+ recordsFiltered : next_page
113+ } ) ;
114+ }
115+ } ) ;
116+ }
117+ } ) ;
118+ }
119+
120+ function loadDataTableFiles ( table_name , url_json ) {
121+ $ ( table_name ) . DataTable ( {
122+ pageLength : { { files_per_page } } ,
123+ columns : [ { data : 1 } ] ,
124+ ajax : function ( data , callback , settings ) {
125+ $ . ajax ( {
126+ type : 'get' ,
127+ url : url_json ,
128+ success :function ( response ) {
129+ const new_logs = [ ] ;
130+ let next_page = response . next_page_files || 1 ;
131+ response . log_files . forEach ( function ( logs , numb ) {
132+ const keys = Object . keys ( logs ) ;
133+ Object . entries ( logs ) . forEach ( ( [ file_name , xtra ] ) => {
134+ logs = '<a class="btn-load-json-log" href="javascript:;" ' +
135+ 'data-file-name="' + file_name + '" ' +
136+ 'data-href="' + url_json + file_name + '">' + xtra . display + '</a>'
137+ } ) ;
138+ new_logs . push ( [ numb + 1 , logs ] ) ;
97139 } ) ;
98140
99141 callback ( {
@@ -121,19 +163,11 @@ <h2>{% trans 'Log Files' %}</h2>
121163 $ ( document ) . ready ( function ( ) {
122164 // just blank entry to get the `log_files`
123165 var url_json = "{% url 'log_viewer:log_json_view' xxxxx %}" ;
124- $ . getJSON ( url_json , function ( result ) {
125- result . log_files . forEach ( function ( log ) {
126- const keys = Object . keys ( log ) ;
127- Object . entries ( log ) . forEach ( ( [ file_name , xtra ] ) => {
128- // console.log(file_name);
129- // console.log(xtra);
130- var html = '<ul><li><a class="btn-load-json-log" href="javascript:;" ' +
131- 'data-file-name="' + file_name + '" ' +
132- 'data-href="' + url_json + file_name + '">' + xtra . display + '</a></li></ul>'
133- $ ( 'div#log-files-list' ) . append ( html ) ;
134- } ) ;
135- } ) ;
136- } ) ;
166+ var table_name = 'table#log-files-list' ;
167+ loadDataTableFiles ( table_name , url_json ) ;
168+ let params = new URLSearchParams ( window . location . search ) ;
169+ loadDataTableTrigger ( params . get ( "file" ) )
170+
137171 } ) ;
138172
139173 $ ( document ) . on ( 'click' , '.btn-load-json-log' , function ( ) {
0 commit comments