2017-08-04 16:28:16 +02:00
< ? php
include_once __DIR__ . '/core.php' ;
2018-03-02 20:27:22 +01:00
$mail = Mail :: get ();
$bug_email = 'info@openstamanager.com' ;
$user = Auth :: user ();
2017-08-04 16:28:16 +02:00
if ( filter ( 'op' ) == 'send' ) {
// Preparazione email
2017-09-14 11:40:13 +02:00
$mail = new Mail ();
2017-08-04 16:28:16 +02:00
// Destinatario
2018-03-02 20:27:22 +01:00
$mail -> AddAddress ( $bug_email );
2017-08-04 16:28:16 +02:00
2018-03-02 20:27:22 +01:00
// Oggetto
$mail -> Subject = 'Segnalazione bug OSM ' . $version ;
2017-08-04 16:28:16 +02:00
2018-03-02 20:27:22 +01:00
// Aggiunta dei file di log (facoltativo)
2017-08-04 16:28:16 +02:00
if ( ! empty ( $post [ 'log' ]) && file_exists ( $docroot . '/logs/error.log' )) {
$mail -> AddAttachment ( $docroot . '/logs/error.log' );
}
2018-03-02 20:27:22 +01:00
// Aggiunta della copia del database (facoltativo)
2017-08-04 16:28:16 +02:00
if ( ! empty ( $post [ 'sql' ])) {
2017-09-10 14:35:41 +02:00
$backup_file = $docroot . '/Backup OSM ' . date ( 'Y-m-d' ) . ' ' . date ( 'H_i_s' ) . '.sql' ;
backup_tables ( $backup_file );
2017-08-04 16:28:16 +02:00
2017-09-10 14:35:41 +02:00
$mail -> AddAttachment ( $backup_file );
$_SESSION [ 'infos' ][] = tr ( 'Backup del database eseguito ed allegato correttamente!' );
2017-08-04 16:28:16 +02:00
}
2018-03-02 20:27:22 +01:00
// Aggiunta delle informazioni di base sull'installazione
$infos = [
'Utente' => $user [ 'username' ],
'IP' => get_client_ip (),
'Versione OSM' => $version . ' (' . ( ! empty ( $revision ) ? $revision : 'In sviluppo' ) . ')' ,
'PHP' => phpversion (),
];
2017-09-14 11:40:13 +02:00
2018-03-02 20:27:22 +01:00
// Aggiunta delle informazioni sul sistema (facoltativo)
2017-08-04 16:28:16 +02:00
if ( ! empty ( $post [ 'info' ])) {
2018-03-02 20:27:22 +01:00
$infos [ 'Sistema' ] = $_SERVER [ 'HTTP_USER_AGENT' ] . ' - ' . getOS ();
}
// Completamento del body
$body = $post [ 'body' ] . '<hr>' ;
foreach ( $infos as $key => $value ) {
$body .= '<p>' . $key . ': ' . $value . '</p>' ;
2017-08-04 16:28:16 +02:00
}
$mail -> Body = $body ;
2017-09-14 11:40:13 +02:00
$mail -> AltBody = 'Questa email arriva dal modulo bug di segnalazione bug di OSM' ;
2017-08-04 16:28:16 +02:00
// Invio mail
if ( ! $mail -> send ()) {
2017-09-04 12:02:29 +02:00
$_SESSION [ 'errors' ][] = tr ( " Errore durante l'invio della segnalazione " ) . ': ' . $mail -> ErrorInfo ;
2017-08-04 16:28:16 +02:00
} else {
2017-09-04 12:02:29 +02:00
$_SESSION [ 'infos' ][] = tr ( 'Email inviata correttamente!' );
2017-08-04 16:28:16 +02:00
}
2018-03-02 20:27:22 +01:00
// Rimozione del dump del database
2017-08-04 16:28:16 +02:00
if ( ! empty ( $post [ 'sql' ])) {
2017-09-11 17:49:03 +02:00
delete ( $backup_file );
2017-08-04 16:28:16 +02:00
}
redirect ( $rootdir . '/bug.php' );
exit ();
}
2018-03-02 20:27:22 +01:00
$pageTitle = tr ( 'Bug' );
$jscript_modules [] = App :: getPaths ()[ 'js' ] . '/ckeditor/ckeditor.js' ;
2017-08-04 16:28:16 +02:00
if ( file_exists ( $docroot . '/include/custom/top.php' )) {
include $docroot . '/include/custom/top.php' ;
} else {
include $docroot . '/include/top.php' ;
}
2018-03-02 20:27:22 +01:00
if ( empty ( $mail [ 'from_address' ]) || empty ( $mail [ 'server' ])) {
echo '
< div class = " alert alert-warning " >
< i class = " fa fa-warning " ></ i >
< b > '.tr(' Attenzione ! ').' </ b > '.tr(' Per utilizzare correttamente il modulo di segnalazione bug devi configurare alcuni parametri riguardanti le impostazione delle email ').' .
2017-08-04 16:28:16 +02:00
2018-03-02 20:27:22 +01:00
'.Modules::link(' Account email ', $mail[' id '], tr(' Correggi account '), null, ' class = " btn btn-warning pull-right " ').'
< div class = " clearfix " ></ div >
</ div > ' ;
}
2017-08-04 16:28:16 +02:00
2018-03-02 20:27:22 +01:00
echo '
< div class = " box " >
< div class = " box-header " >
< h3 class = " box-title " >< i class = " fa fa-bug " ></ i > '.tr(' Segnalazione bug ').' </ h3 >
</ div >
< div class = " box-body " >
< form method = " post " action = " " >
< input type = " hidden " name = " op " value = " send " >
< table class = " table table-bordered table-condensed table-striped table-hover " >
< tr >
< th width = " 150 " class = " text-right " > '.tr(' Da ').' :</ th >
< td > '.$mail[' from_address '].' </ td >
</ tr >
<!-- A -->
< tr >
< th class = " text-right " > '.tr(' A ').' :</ th >
< td > '.$bug_email.' </ td >
</ tr >
<!-- Versione -->
< tr >
< th class = " text-right " > '.tr(' Versione OSM ').' :</ th >
< td > '.$version.' ( '.(!empty($revision) ? $revision : tr(' In sviluppo ')).' ) </ td >
</ tr >
</ table >
< div class = " row " >
< div class = " col-md-4 " >
{[ " type " : " checkbox " , " placeholder " : " '.tr('Allega file di log').' " , " name " : " log " , " value " : " 1 " ]}
</ div >
2017-09-22 15:16:56 +02:00
2018-03-02 20:27:22 +01:00
< div class = " col-md-4 " >
{[ " type " : " checkbox " , " placeholder " : " '.tr('Allega copia del database').' " , " name " : " sql " ]}
</ div >
2017-09-22 15:16:56 +02:00
2018-03-02 20:27:22 +01:00
< div class = " col-md-4 " >
{[ " type " : " checkbox " , " placeholder " : " '.tr('Allega informazioni sul PC').' " , " name " : " info " , " value " : " 1 " ]}
</ div >
</ div >
2017-09-22 15:16:56 +02:00
2018-03-02 20:27:22 +01:00
< div class = " clearfix " ></ div >
< br >
2017-08-04 16:28:16 +02:00
2018-03-02 20:27:22 +01:00
{[ " type " : " textarea " , " label " : " '.tr('Descrizione del bug').' " , " name " : " body " ]}
<!-- PULSANTI -->
< div class = " row " >
< div class = " col-md-12 text-right " >
< button type = " submit " class = " btn btn-primary " id = " send " disabled >
< i class = " fa fa-envelope " ></ i > '.tr(' Invia segnalazione ').'
</ button >
2017-08-04 16:28:16 +02:00
</ div >
2018-03-02 20:27:22 +01:00
</ div >
</ form >
</ div >
</ div >
< script >
$ ( document ) . ready ( function (){
var html = " <p>'.tr('Se hai riscontrato un bug ricordati di specificare').':</p> " +
" <ul> " +
" <li>'.tr('Modulo esatto (o pagina relativa) in cui questi si è verificato').';</li> " +
" <li>'.tr('Dopo quali specifiche operazioni hai notato il malfunzionameto').'.</li> " +
" </ul> " +
" <p>'.tr('Assicurati inoltre di controllare che il checkbox relativo ai file di log sia contrassegnato, oppure riporta qui l \ 'errore visualizzato').'.</p> " +
" <p>'.tr('Ti ringraziamo per il tuo contributo').',<br> " +
" '.tr('Lo staff di OSM').'</p> " ;
var firstFocus = 1 ;
CKEDITOR . replace ( " body " , {
toolbar : globals . ckeditorToolbar
});
CKEDITOR . instances . body . on ( " key " , function () {
setTimeout ( function (){
if ( CKEDITOR . instances . body . getData () == " " ){
$ ( " #send " ) . prop ( " disabled " , true );
}
else $ ( " #send " ) . prop ( " disabled " , false );
}, 10 );
});
CKEDITOR . instances . body . setData ( html , function () {});
CKEDITOR . instances . body . on ( " focus " , function () {
if ( firstFocus ){
CKEDITOR . instances . body . setData ( " " , function () {
CKEDITOR . instances . body . focus ();
});
firstFocus = 0 ;
}
});
});
</ script > ' ;
2017-08-04 16:28:16 +02:00
if ( file_exists ( $docroot . '/include/custom/bottom.php' )) {
include $docroot . '/include/custom/bottom.php' ;
} else {
include $docroot . '/include/bottom.php' ;
}