<div id="tabs-1">
<table id="box-table-a" style="overflow: auto;">
<thead>
<tr><th>Status</th><th>Process</th><th>Time</th><th> Message</th></tr>
</thead>
<tbody id="statusbox">
<tr><td><img src="/htmlFiles/StatusIcons/forbidden_32.png" /></td><td>Monitor Startup</td><td>xx/xx/xxxx xx:xx am </td><td>Placeholder value for monitor log.</td></tr>
</tbody>
</table>
<br />
<form action="http://<!--SERVERURL-->/status">
<input type="hidden" name="restart" value="restart" />
<input type="submit" value="Restart log" /><span style="padding-left:10px;">Save the current log contents to a file, and start a new, empty log file.</span>
</form>
</div>
<script type="text/javascript">
// jQuery Document
$(document).ready(function(){
$('#box-table-a').dataTable( {
"sDom": 'lfrt;' ,
"sScrollY": "510px",
"bScrollCollapse": false,
"bPaginate": false,
"bJqueryUI": true,
"bFilter": false,
"bAutoWidth": false,
"aoColumns": [null, null, null, { "sWidth": "80%" }]
} );
function loadLog(){
var oldscrollHeight = $("#statusbox").attr("scrollHeight") - 20;
$.ajax({
url: "/htmlFiles/log.html",
cache: false,
success: function(html){
$("#statusbox").html(html); //Insert log into the #statusbox div
var newscrollHeight = $("statusbox").attr("scrollHeight") - 20;
$("#statusbox").animate({ scrollTop: newscrollHeight }, 'normal');
},
});
}
setInterval (loadLog, 1500);
});
</script>
The tbody is replaced with AJAX:
$("statusbox").attr("scrollHeight")
function loadLog(){
$.ajax({
url: "/htmlFiles/log.html",
cache: false,
success: function(html){
$("#statusbox").html(html);
},
});
}
<div id="tabs">
<ul>
<li><a href="#tabs-1">Status Monitor</a></li>
<li><a href="#tabs-2">Job Launcher</a></li>
</ul>
<div id="tabs-1">
<table id="box-table-a">
<thead>
<tr><th>Status</th><th>Process</th><th>Time</th><th> Message</th></tr>
</thead>
<tbody id="statusbox">
</tbody>
</table>
<br />
</div>
<div id="tabs-2">
<div id="accordion"><!-- TRIGGERS.HTML -->
</div>
</div>
</div>
$.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw )
{
if ( typeof sNewSource != 'undefined' && sNewSource != null )
{
oSettings.sAjaxSource = sNewSource;
}
this.oApi._fnProcessingDisplay( oSettings, true );
var that = this;
var iStart = oSettings._iDisplayStart;
oSettings.fnServerData( oSettings.sAjaxSource, [], function(json) {
/* Clear the old information from the table */
that.oApi._fnClearTable( oSettings );
/* Got the data - add it to the table */
var aData = (oSettings.sAjaxDataProp !== "") ?
that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json;
for ( var i=0 ; i<aData.length ; i++ )
{
that.oApi._fnAddData( oSettings, aData[i] );
}
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
that.fnDraw();
if ( typeof bStandingRedraw != 'undefined' && bStandingRedraw === true )
{
oSettings._iDisplayStart = iStart;
that.fnDraw( false );
}
that.oApi._fnProcessingDisplay( oSettings, false );
/* Callback user function - for event handlers etc */
if ( typeof fnCallback == 'function' && fnCallback != null )
{
fnCallback( oSettings );
}
}, oSettings );
}
var myTable;
$(document).ready(function(){
myTable = $('#box-table-a').dataTable( {
"sDom": 'lfrt;' ,
"sScrollY": "510px",
"sAjaxSource": '/htmlFiles/log.txt',
"bPaginate": false,
"bFilter": false,
"bAutoWidth": false,
"aoColumns": [null, null, null, { "sWidth": "80%" }]
} );
function loadLog() {
myTable.fnReloadAjax();
}
setInterval (loadLog, 1500);
});
$.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw )
{
if ( typeof sNewSource != 'undefined' && sNewSource != null )
{
oSettings.sAjaxSource = sNewSource;
}
this.oApi._fnProcessingDisplay( oSettings, true );
var that = this;
var iStart = oSettings._iDisplayStart;
var scrollPos=$(".dataTables_scrollBody").scrollTop();
oSettings.fnServerData( oSettings.sAjaxSource, [], function(json) {
/* Clear the old information from the table */
that.oApi._fnClearTable( oSettings );
/* Got the data - add it to the table */
var aData = (oSettings.sAjaxDataProp !== "") ?
that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json;
for ( var i=0 ; i<aData.length ; i++ )
{
that.oApi._fnAddData( oSettings, aData[i] );
}
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
that.fnDraw();
if ( typeof bStandingRedraw != 'undefined' && bStandingRedraw === true )
{
oSettings._iDisplayStart = iStart;
that.fnDraw( false );
}
$(".dataTables_scrollBody").scrollTop(scrollPos);
that.oApi._fnProcessingDisplay( oSettings, false );
/* Callback user function - for event handlers etc */
if ( typeof fnCallback == 'function' && fnCallback != null )
{
fnCallback( oSettings );
}
}, oSettings );
}
It looks like you're new here. If you want to get involved, click one of these buttons!
Get useful and friendly help straight from the source.