2017-08-04 16:28:16 +02:00
< ? php
include_once __DIR__ . '/../core.php' ;
2018-02-14 11:10:03 +01:00
$paths = App :: getPaths ();
2018-02-20 14:23:00 +01:00
$user = Auth :: user ();
2018-02-14 11:10:03 +01:00
2018-09-19 10:44:32 +02:00
$pageTitle = $pageTitle ? : $structure -> title ;
2018-07-19 17:29:21 +02:00
$messages = flash () -> getMessages ();
2018-07-07 13:56:22 +02:00
2018-02-04 17:31:33 +01:00
echo ' <! DOCTYPE html >
2017-08-04 16:28:16 +02:00
< html >
< head >
< meta charset = " UTF-8 " >
2017-09-04 12:02:29 +02:00
< title > '.$pageTitle.' - '.tr(' OpenSTAManager ').' </ title >
2017-08-04 16:28:16 +02:00
< meta http - equiv = " X-UA-Compatible " content = " IE=edge " >
< meta content = " width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no " name = " viewport " >
2018-06-28 15:52:56 +02:00
< meta name = " robots " content = " noindex,nofollow " >
2018-04-13 17:46:13 +02:00
< link href = " '. $paths['img'] .'/favicon.png " rel = " icon " type = " image/x-icon " /> ' ;
2017-08-04 16:28:16 +02:00
2018-06-23 15:41:32 +02:00
// CSS
foreach ( App :: getAssets ()[ 'css' ] as $style ) {
echo '
< link rel = " stylesheet " type = " text/css " media = " all " href = " '. $style .' " /> ' ;
}
2017-08-04 16:28:16 +02:00
2018-06-23 15:41:32 +02:00
// Print CSS
foreach ( App :: getAssets ()[ 'print' ] as $style ) {
2017-08-04 16:28:16 +02:00
echo '
2018-06-23 15:41:32 +02:00
< link rel = " stylesheet " type = " text/css " media = " print " href = " '. $style .' " /> ' ;
2017-08-04 16:28:16 +02:00
}
if ( Auth :: check ()) {
echo '
< script >
search = [] ' ;
$array = [];
foreach ( $_SESSION as $idx1 => $arr2 ) {
if ( $idx1 == 'module_' . $id_module ) {
foreach ( $arr2 as $field => $value ) {
2018-07-19 09:58:28 +02:00
if ( ! empty ( $value ) && starts_with ( $field , 'search_' )) {
2017-08-04 16:28:16 +02:00
$field_name = str_replace ( 'search_' , '' , $field );
echo '
search . push ( " search_'. $field_name .' " );
search [ " search_'. $field_name .' " ] = " '. $value .' " ; ' ;
}
}
}
}
echo '
translations = { ' ;
$translations = [
2017-09-04 12:02:29 +02:00
'day' => tr ( 'Giorno' ),
'week' => tr ( 'Settimana' ),
'month' => tr ( 'Mese' ),
'today' => tr ( 'Oggi' ),
2017-09-14 16:20:11 +02:00
'firstThreemester' => tr ( 'I trimestre' ),
'secondThreemester' => tr ( 'II trimestre' ),
'thirdThreemester' => tr ( 'III trimestre' ),
'fourthThreemester' => tr ( 'IV trimestre' ),
'firstSemester' => tr ( 'I semestre' ),
'secondSemester' => tr ( 'II semestre' ),
2017-09-04 12:02:29 +02:00
'thisMonth' => tr ( 'Questo mese' ),
'lastMonth' => tr ( 'Mese scorso' ),
'thisYear' => tr ( " Quest'anno " ),
'lastYear' => tr ( 'Anno scorso' ),
'apply' => tr ( 'Applica' ),
'cancel' => tr ( 'Annulla' ),
'from' => tr ( 'Da' ),
'to' => tr ( 'A' ),
'custom' => tr ( 'Personalizzato' ),
'delete' => tr ( 'Elimina' ),
'deleteTitle' => tr ( 'Sei sicuro?' ),
'deleteMessage' => tr ( 'Eliminare questo elemento?' ),
2018-08-31 18:06:44 +02:00
'errorTitle' => tr ( 'Errore' ),
'errorMessage' => tr ( " Si è verificato un errore nell'esecuzione dell'operazione richiesta " ),
2017-09-04 12:02:29 +02:00
'close' => tr ( 'Chiudi' ),
'filter' => tr ( 'Filtra' ),
'long' => tr ( 'La ricerca potrebbe richiedere del tempo' ),
'details' => tr ( 'Dettagli' ),
'waiting' => tr ( 'Impossibile procedere' ),
'waiting_msg' => tr ( 'Prima di proseguire devi selezionare alcuni elementi!' ),
2017-08-04 16:28:16 +02:00
];
foreach ( $translations as $key => $value ) {
echo '
'.$key.' : \ '' . addslashes ( $value ) . '\',' ;
}
echo '
};
globals = {
2018-02-23 09:49:31 +01:00
rootdir : \ '' . $rootdir . ' \ ' ,
js : \ '' . $paths [ 'js' ] . ' \ ' ,
css : \ '' . $paths [ 'css' ] . ' \ ' ,
img : \ '' . $paths [ 'img' ] . ' \ ' ,
2017-08-04 16:28:16 +02:00
id_module : \ '' . $id_module . ' \ ' ,
id_record : \ '' . $id_record . ' \ ' ,
2018-02-23 09:49:31 +01:00
2017-09-22 15:19:59 +02:00
aggiornamenti_id : \ '' . ( $dbo -> isInstalled () ? Modules :: get ( 'Aggiornamenti' )[ 'id' ] : '' ) . ' \ ' ,
2018-02-23 09:49:31 +01:00
2018-07-08 18:11:17 +02:00
cifre_decimali : '.setting(' Cifre decimali per importi ').' ,
2018-02-23 09:49:31 +01:00
2018-09-20 12:05:22 +02:00
decimals : " '.formatter()->getNumberSeparators()['decimals'].' " ,
thousands : " '.formatter()->getNumberSeparators()['thousands'].' " ,
2018-02-23 09:49:31 +01:00
2017-08-04 16:28:16 +02:00
search : search ,
translations : translations ,
2018-02-23 09:49:31 +01:00
locale : \ '' . $lang . ' \ ' ,
2018-04-15 14:46:33 +02:00
full_locale : \ '' . $lang . '_' . strtoupper ( $lang ) . ' \ ' ,
2018-02-23 09:49:31 +01:00
2017-08-04 16:28:16 +02:00
start_date : \ '' . Translator :: dateToLocale ( $_SESSION [ 'period_start' ]) . ' \ ' ,
end_date : \ '' . Translator :: dateToLocale ( $_SESSION [ 'period_end' ]) . ' \ ' ,
2018-02-23 09:49:31 +01:00
ckeditorToolbar : [
2018-03-07 23:50:28 +01:00
[ " Undo " , " Redo " , " - " , " Cut " , " Copy " , " Paste " , " PasteText " , " PasteFromWord " , " - " , " Scayt " , " - " , " Link " , " Unlink " , " - " , " Bold " , " Italic " , " Underline " , " Superscript " , " SpecialChar " , " HorizontalRule " , " - " , " NumberedList " , " BulletedList " , " Outdent " , " Indent " , " Blockquote " , " - " , " Styles " , " Format " , " Image " , " Table " , " TextColor " , " BGColor " ],
2018-02-23 09:49:31 +01:00
],
2018-07-02 16:56:00 +02:00
2018-07-08 18:11:17 +02:00
tempo_attesa_ricerche : '.setting(' Tempo di attesa ricerche in secondi ').' ,
2017-08-04 16:28:16 +02:00
};
</ script > ' ;
2018-07-03 11:12:32 +02:00
} else {
echo '
2018-07-09 10:44:54 +02:00
< script >
globals = {
locale : \ '' . $lang . ' \ ' ,
full_locale : \ '' . $lang . '_' . strtoupper ( $lang ) . ' \ ' ,
};
</ script > ' ;
2017-08-04 16:28:16 +02:00
}
2018-06-23 15:41:32 +02:00
// JS
foreach ( App :: getAssets ()[ 'js' ] as $js ) {
2017-08-04 16:28:16 +02:00
echo '
< script type = " text/javascript " charset = " utf-8 " src = " '. $js .' " ></ script > ' ;
}
// Impostazioni di default per gli alert
echo '
< script >
swal . setDefaults ({
buttonsStyling : false ,
confirmButtonClass : " btn btn-lg btn-primary " ,
cancelButtonClass : " btn btn-lg " ,
2017-09-04 12:02:29 +02:00
cancelButtonText : " '.tr('Annulla').' " ,
2017-08-04 16:28:16 +02:00
});
</ script > ' ;
2018-07-02 16:56:00 +02:00
if ( Auth :: check ()) {
2018-07-03 15:39:29 +02:00
// Barra di debug
if ( App :: debug ()) {
$debugbarRenderer = $debugbar -> getJavascriptRenderer ();
$debugbarRenderer -> setIncludeVendors ( false );
$debugbarRenderer -> setBaseUrl ( $paths [ 'assets' ] . '/php-debugbar' );
2018-07-02 16:56:00 +02:00
echo $debugbarRenderer -> renderHead ();
}
2018-07-09 10:44:54 +02:00
if ( setting ( 'Abilita esportazione Excel e PDF' )) {
2018-07-02 16:56:00 +02:00
echo '
< script type = " text/javascript " charset = " utf-8 " src = " https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js " ></ script >
< script type = " text/javascript " charset = " utf-8 " src = " https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js " ></ script >
< script type = " text/javascript " charset = " utf-8 " src = " https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js " ></ script > ' ;
}
2017-08-04 16:28:16 +02:00
}
2018-07-09 10:44:54 +02:00
$hide_sidebar = Auth :: check () && setting ( 'Nascondere la barra sinistra di default' );
2017-08-04 16:28:16 +02:00
echo '
</ head >
2017-09-10 18:29:51 +02:00
< body class = " skin-'. $theme .(!empty( $hide_sidebar ) ? ' sidebar-collapse' : '').(!Auth::check() ? ' hold-transition login-page' : '').' " >
2018-06-27 12:28:28 +02:00
< div class = " '.(!Auth::check() ? '' : 'wrapper').' " > ' ;
2017-08-04 16:28:16 +02:00
if ( Auth :: check ()) {
$calendar = ( $_SESSION [ 'period_start' ] != date ( 'Y' ) . '-01-01' || $_SESSION [ 'period_end' ] != date ( 'Y' ) . '-12-31' ) ? 'red' : 'white' ;
echo '
<!-- Loader principale -->
< div id = " main_loading " >
< div >
< i class = " fa fa-cog fa-spin text-danger " ></ i >
</ div >
</ div >
<!-- Loader secondario -->
< div id = " mini-loader " style = " display:none; " >
< div ></ div >
</ div >
2017-09-10 18:29:51 +02:00
2017-08-31 19:06:23 +02:00
<!-- Loader senza overlay -->
< div id = " tiny-loader " style = " display:none; " ></ div >
2017-08-04 16:28:16 +02:00
< header class = " main-header " >
2018-04-23 23:15:56 +02:00
< a href = " https://www.openstamanager.com " class = " logo " title = " '.tr('Il gestionale open source per l \ 'assistenza tecnica e la fatturazione').' " target = " _blank " >
2017-08-04 16:28:16 +02:00
<!-- mini logo for sidebar mini 50 x50 pixels -->
2017-09-04 12:02:29 +02:00
< span class = " logo-mini " > '.tr(' OSM ').' </ span >
2017-08-04 16:28:16 +02:00
<!-- logo for regular state and mobile devices -->
2017-09-04 12:02:29 +02:00
< span class = " logo-lg " > '.tr(' OpenSTAManager ').' </ span >
2017-08-04 16:28:16 +02:00
</ a >
<!-- Header Navbar : style can be found in header . less -->
< nav class = " navbar navbar-static-top " role = " navigation " >
<!-- Sidebar toggle button -->
2018-05-05 14:54:47 +02:00
< a href = " # " class = " sidebar-toggle " data - toggle = " push-menu " role = " button " >
2017-09-04 12:02:29 +02:00
< span class = " sr-only " > '.tr(' Mostra / nascondi menu ').' </ span >
2017-08-04 16:28:16 +02:00
< span class = " icon-bar " ></ span >
< span class = " icon-bar " ></ span >
< span class = " icon-bar " ></ span >
</ a >
< div class = " input-group btn-calendar pull-left " >
2018-06-26 17:03:36 +02:00
< button id = " daterange " class = " btn " >< i class = " fa fa-calendar " style = " color:'. $calendar .' " ></ i > < i class = " fa fa-caret-down " style = " color:'. $calendar .'; " ></ i ></ button >
< span class = " hidden-xs " style = " vertical-align:middle; color:'. $calendar .'; " >
2017-09-14 16:20:11 +02:00
'.Translator::dateToLocale($_SESSION[' period_start ']).' - '.Translator::dateToLocale($_SESSION[' period_end ']).'
</ span >
</ div >
2017-08-04 16:28:16 +02:00
< div id = " right-menu " class = " pull-right " >
2017-09-04 12:02:29 +02:00
< button onclick = " window.print() " class = " btn btn-sm btn-info tip " title = " '.tr('Stampa').' " >
2017-08-04 16:28:16 +02:00
< i class = " fa fa-print " ></ i >
</ button >
2017-09-04 12:02:29 +02:00
< a href = " '. $rootdir .'/bug.php " class = " btn btn-sm btn-github tip " title = " '.tr('Segnalazione bug').' " >
2017-08-04 16:28:16 +02:00
< i class = " fa fa-bug " ></ i >
</ a >
2017-09-04 12:02:29 +02:00
< a href = " '. $rootdir .'/log.php " class = " btn btn-sm btn-github tip " title = " '.tr('Log accessi').' " >
2017-08-04 16:28:16 +02:00
< i class = " fa fa-book " ></ i >
</ a >
2017-09-04 12:02:29 +02:00
< a href = " '. $rootdir .'/info.php " class = " btn btn-sm btn-github tip " title = " '.tr('Informazioni').' " >
2017-08-04 16:28:16 +02:00
< i class = " fa fa-info " ></ i >
</ a >
2017-09-04 12:02:29 +02:00
< a href = " '. $rootdir .'/index.php?op=logout " class = " btn btn-sm btn-danger tip " title = " '.tr('Esci').' " >
2017-08-04 16:28:16 +02:00
< i class = " fa fa-power-off " ></ i >
</ a >
</ div >
</ nav >
</ header >
< aside class = " main-sidebar " >
< section class = " sidebar " >
<!-- Sidebar user panel -->
< div class = " user-panel text-center info " >
< div class = " info " >
2018-02-20 14:23:00 +01:00
< p >< a href = " '. $rootdir .'/modules/utenti/info.php " >
< i class = " fa fa-user " ></ i >
'.$user[' username '].'
</ a ></ p >
2017-08-04 16:28:16 +02:00
< p id = " datetime " ></ p >
</ div >
< div class = " image " >
2018-02-14 11:10:03 +01:00
< img src = " '. $paths['img'] .'/logo.png " class = " img-circle img-responsive " alt = " '.tr('OpenSTAManager').' " />
2017-08-04 16:28:16 +02:00
</ div >
</ div >
<!-- search form -->
< div class = " sidebar-form " >
< div class = " input-group " >
2017-09-04 12:02:29 +02:00
< input type = " text " name = " q " class = " form-control " id = " supersearch " placeholder = " '.tr('Cerca').'... " />
2017-08-04 16:28:16 +02:00
< span class = " input-group-btn " >
< button class = " btn btn-flat " id = " search-btn " name = " search " type = " submit " >< i class = " fa fa-search " ></ i >
</ button >
</ span >
</ div >
</ div >
<!-- /. search form -->
< ul class = " sidebar-menu " > ' ;
echo Modules :: getMainMenu ();
echo '
</ ul >
</ section >
<!-- /. sidebar -->
</ aside >
<!-- Right side column . Contains the navbar and content of the page -->
< aside class = " content-wrapper " >
<!-- Main content -->
< section class = " content " >
< div class = " row " > ' ;
2017-08-28 15:29:03 +02:00
if ( str_contains ( $_SERVER [ 'SCRIPT_FILENAME' ], 'editor.php' )) {
2017-08-04 16:28:16 +02:00
$location = 'editor_right' ;
2017-08-28 15:29:03 +02:00
} elseif ( str_contains ( $_SERVER [ 'SCRIPT_FILENAME' ], 'controller.php' )) {
2017-08-04 16:28:16 +02:00
$location = 'controller_right' ;
}
echo '
2018-09-04 12:30:22 +02:00
< div class = " col-md-12 " > ' ;
// Eventuale messaggio personalizzato per l'installazione corrente
include_once App :: filepath ( 'include/custom/extra' , 'extra.php' );
} else {
// Eventuale messaggio personalizzato per l'installazione corrente
include_once App :: filepath ( 'include/custom/extra' , 'login.php' );
if ( ! empty ( $messages [ 'info' ]) || ! empty ( $messages [ 'warning' ]) || ! empty ( $messages [ 'error' ])) {
echo '
2017-08-04 16:28:16 +02:00
< div class = " box box-warning box-center " >
< div class = " box-header with-border text-center " >
2017-09-04 12:02:29 +02:00
< h3 class = " box-title " > '.tr(' Informazioni ').' </ h3 >
2017-08-04 16:28:16 +02:00
</ div >
< div class = " box-body " > ' ;
2018-09-04 12:30:22 +02:00
}
2017-08-04 16:28:16 +02:00
}
2018-07-19 12:47:28 +02:00
2017-08-04 16:28:16 +02:00
// Infomazioni
2018-07-19 12:47:28 +02:00
if ( ! empty ( $messages [ 'info' ])) {
foreach ( $messages [ 'info' ] as $value ) {
echo '
2017-08-04 16:28:16 +02:00
< div class = " alert alert-success push " >
< i class = " fa fa-check " ></ i > '.$value.'
</ div > ' ;
2018-07-19 12:47:28 +02:00
}
2017-08-04 16:28:16 +02:00
}
// Errori
2018-07-19 12:47:28 +02:00
if ( ! empty ( $messages [ 'error' ])) {
foreach ( $messages [ 'error' ] as $value ) {
echo '
2017-08-04 16:28:16 +02:00
< div class = " alert alert-danger push " >
< i class = " fa fa-times " ></ i > '.$value.'
</ div > ' ;
2018-07-19 12:47:28 +02:00
}
2017-08-04 16:28:16 +02:00
}
// Avvisi
2018-07-19 12:47:28 +02:00
if ( ! empty ( $messages [ 'warning' ])) {
foreach ( $messages [ 'warning' ] as $value ) {
echo '
2017-08-04 16:28:16 +02:00
< div class = " alert alert-warning push " >
< i class = " fa fa-warning " ></ i >
'.$value.'
</ div > ' ;
2018-07-19 12:47:28 +02:00
}
2017-08-04 16:28:16 +02:00
}
2018-07-07 13:56:22 +02:00
if ( ! Auth :: check () && ( ! empty ( $messages [ 'info' ]) || ! empty ( $messages [ 'warning' ]) || ! empty ( $messages [ 'error' ]))) {
2017-08-04 16:28:16 +02:00
echo '
</ div >
</ div > ' ;
}