Skip to content
Snippets Groups Projects

multi language support

Files

+ 72
13
@@ -51,9 +51,10 @@ class cronlogrenderer extends cronlog{
return '';
}
$iAge=round((date('U')-$iLast)/60);
return ''
return '<div class="accessandage">'
. sprintf($this->t("request-time"), date("Y-m-d H:i:s")).'<br>'
. sprintf($this->t("last-entry"), $iAge).'<br><br>'
. sprintf($this->t("last-entry"), $iAge)
.'</div>'
;
}
@@ -68,6 +69,33 @@ class cronlogrenderer extends cronlog{
return '$(\'#'.$sDatatable.'\').dataTable().fnFilter(\''.$sFiltertext.'\'); return false;';
}
/**
* helper function to be used in methods that render datatable tables
* get javascript code to be added in init options and set language specifi texts
* @return string
*/
protected function _getDatatableLanguage(){
return $this->t("dt-USE")
? ', "oLanguage":{
"sProcessing":"'.$this->t("dt-sProcessing").'",
"sLengthMenu":"'.$this->t("dt-sLengthMenu").'",
"sZeroRecords":"'.$this->t("dt-sZeroRecords").'",
"sInfo":"'.$this->t("dt-sInfo").'",
"sInfoEmpty":"'.$this->t("dt-sInfoEmpty").'",
"sInfoFiltered":"'.$this->t("dt-sInfoFiltered").'",
"sInfoPostFix":"'.$this->t("dt-sInfoPostFix").'",
"sSearch":"'.$this->t("dt-sSearch").'",
"sUrl":"'.$this->t("dt-sUrl").'",
"oPaginate":{
"sFirst":"'.$this->t("dt-sFirst").'",
"sPrevious":"'.$this->t("dt-sPrevious").'",
"sNext":"'.$this->t("dt-sNext").'",
"sLast":"'.$this->t("dt-sLast").'"
}
}'
: ''
;
}
/**
* get html code for a table with events of executed cronjobs
*
@@ -222,11 +250,10 @@ class cronlogrenderer extends cronlog{
. '</p>'
. '<div>'
. $this->_renderAccessAndAge($iLast)
. ($iErrors ? '<a href="#" class="btn bg-danger" onclick="'.$this->_filterDatatable($sIdTable, $this->t('status-error')).'">' . $iErrors.'</a> ' : '')
. ( $iOK ? '<a href="#" class="btn bg-success" onclick="'.$this->_filterDatatable($sIdTable, $this->t('status-ok')).'">' . $iOK.'</a>' : '')
. ($iErrors && $iOK ? ' ... '.$this->t('total').': <a href="#" class="btn bg-gray" onclick="'.$this->_filterDatatable($sIdTable, "").'">' . count($aData).'</a>' : '' )
. '<br>'
. '</div>'
. ($iErrors ? '<a href="#" class="btn bg-danger" onclick="'.$this->_filterDatatable($sIdTable, $this->t('status-error')).'"><i class="fas fa-exclamation-circle"></i> &nbsp; ' . $iErrors.'</a> ' : '')
. ( $iOK ? '<a href="#" class="btn bg-success" onclick="'.$this->_filterDatatable($sIdTable, $this->t('status-ok')).'"><i class="fas fa-check"></i> &nbsp; ' . $iOK.'</a>' : '')
. ($iErrors && $iOK ? ' ... '.$this->t('total').': <a href="#" class="btn bg-gray" onclick="'.$this->_filterDatatable($sIdTable, "").'"><i class="fas fa-th-large"></i> &nbsp; ' . count($aData).'</a>' : '' )
. '</div><br>'
. '<table id="'.$sIdTable.'" class="table-striped">'
. '<thead><tr>'.$sTblHead.'</tr></thead>'
. '<tbody>'
@@ -236,7 +263,13 @@ class cronlogrenderer extends cronlog{
// init datatable
. '<script>'
. '$(document).ready( function () { $(\'#'.$sIdTable.'\').DataTable({"retrieve": true, "bPaginate":false, "aaSorting":[[0,"desc"]]}); } );'
. '$(document).ready( function () { $(\'#'.$sIdTable.'\').DataTable({
"retrieve": true,
"bPaginate":false,
"aaSorting":[[0,"desc"]]
'.$this->_getDatatableLanguage().'
});
});'
. '</script>'
. '
@@ -312,6 +345,7 @@ class cronlogrenderer extends cronlog{
$this->t("col-duration"),
$this->t("col-ttl"),
$this->t("col-rc"),
$this->t("col-status"),
) as $sKey){
$sTblHead.='<th>'.$sKey.'</th>';
}
@@ -339,7 +373,8 @@ class cronlogrenderer extends cronlog{
. '<td>'.$aEntry['ttl'].'</td>'
. '<td class="'
.($aEntry['rc']>0 ? 'message-error': 'message-ok')
. '">'.$aEntry['rc'].'</td>'
. '">'.$aEntry['rc'].'</td>'
. '<td>'.( $aEntry['rc'] ? $this->t('status-error') : $this->t('status-ok') ).'</td>'
. '</tr>'
;
}
@@ -353,10 +388,12 @@ class cronlogrenderer extends cronlog{
. '</p>'
. '<div>'
. $this->_renderAccessAndAge($iLast)
. $this->t('total').': <strong>' . count($aData).'</strong>'
. ($iErrors ? ' ('.$this->t('status-error').': <strong>' . $iErrors.'</strong>... '.$this->t('status-ok').': <strong>' . $iOK.'</strong>)' : '')
. '<br><br>'
. ($iErrors ? '<a href="#" class="btn bg-danger" onclick="'.$this->_filterDatatable($sIdTable, $this->t('status-error')).'"><i class="fas fa-exclamation-circle"></i> &nbsp; ' . $iErrors.'</a> ' : '')
. ( $iOK ? '<a href="#" class="btn bg-success" onclick="'.$this->_filterDatatable($sIdTable, $this->t('status-ok')).'"><i class="fas fa-check"></i> &nbsp; ' . $iOK.'</a>' : '')
. ($iErrors && $iOK ? ' ... '.$this->t('total').': <a href="#" class="btn bg-gray" onclick="'.$this->_filterDatatable($sIdTable, "").'"><i class="fas fa-th-large"></i> &nbsp; ' . count($aData).'</a>' : '' )
. '</div>'
. '<br>'
. '<table id="'.$sIdTable.'">'
. '<thead><tr>'.$sTblHead.'</tr></thead>'
. '<tbody>'
@@ -366,7 +403,12 @@ class cronlogrenderer extends cronlog{
// init datatable
. '<script>'
. '$(document).ready( function () {$(\'#'.$sIdTable.'\').DataTable({"retrieve": true, "aaSorting":[[0,"desc"]],"aaSorting":[[0,"desc"]], "aLengthMenu":[[25,100,-1],[25,100,"---"]]});} );'
. '$(document).ready( function () {$(\'#'.$sIdTable.'\').DataTable({
"retrieve": true,
"aaSorting":[[0,"desc"]],
"aLengthMenu":[[25,100,-1],[25,100,"---"]]
'.$this->_getDatatableLanguage().'
});} );'
. '</script>'
. '
@@ -519,6 +561,23 @@ class cronlogrenderer extends cronlog{
return $this->renderJobGraph($aData);
}
/**
* used in config/page-replacements.php
* generate an array of javascript lang texts
*/
public function renderJSLang(){
$aReturn=[];
foreach($this->_aLang as $sKey=>$sText){
if(preg_match('/^JS_/', $sKey)){
$aReturn[preg_replace('/^JS_/', '', $sKey)]=$sText;
}
}
return "\n"
.'// generated by '.__METHOD__."\n"
.'var aLang='.json_encode($aReturn, JSON_PRETTY_PRINT).'; '."\n"
;
}
/**
* show a single log file
Loading