2016-03-25 23:29:20 +01:00
< ? php
2018-12-22 09:52:31 +01:00
2016-03-25 23:29:20 +01:00
//get the browser version
$user_agent = http_user_agent ();
$browser_version = $user_agent [ 'version' ];
$browser_name = $user_agent [ 'name' ];
2016-06-09 01:32:08 +02:00
$browser_version_array = explode ( '.' , $browser_version );
2016-03-25 23:29:20 +01:00
//set the doctype
echo ( $browser_name != " Internet Explorer " ) ? " <!DOCTYPE html> \n " : " <!DOCTYPE html PUBLIC \" -//W3C//DTD XHTML 1.0 Transitional//EN \" \" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd \" > \n " ;
//get the php self path and set a variable with only the directory path
$php_self_array = explode ( " / " , $_SERVER [ 'PHP_SELF' ]);
$php_self_dir = '' ;
foreach ( $php_self_array as & $value ) {
if ( substr ( $value , - 4 ) != " .php " ) {
$php_self_dir .= $value . " / " ;
}
}
unset ( $php_self_array );
if ( strlen ( PROJECT_PATH ) > 0 ) {
$php_self_dir = substr ( $php_self_dir , strlen ( PROJECT_PATH ), strlen ( $php_self_dir ));
}
2019-03-27 20:21:25 +01:00
echo " <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> \n " ;
echo " <head> \n " ;
echo " <meta charset='utf-8'> \n " ;
echo " <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> \n " ;
echo " <meta http-equiv='X-UA-Compatible' content='IE=edge'> \n " ;
echo " <meta name='viewport' content='width=device-width, initial-scale=1'> \n " ;
echo " <link rel='stylesheet' type='text/css' href='<!-- { project_path}-->/resources/bootstrap/css/bootstrap.min.css'> \n " ;
echo " <link rel='stylesheet' type='text/css' href='<!-- { project_path}-->/resources/bootstrap/css/bootstrap-datetimepicker.min.css'> \n " ;
echo " <link rel='stylesheet' type='text/css' href='<!-- { project_path}-->/resources/bootstrap/css/bootstrap-colorpicker.min.css'> \n " ;
echo " <link rel='stylesheet' type='text/css' href='<!-- { project_path}-->/themes/ " . escape ( $_SESSION [ 'domain' ][ 'template' ][ 'name' ]) . " /css.php " . ( $default_login ? '?login=default' : null ) . " '> \n " ;
2019-08-21 02:15:50 +02:00
echo " <link rel='stylesheet' type='text/css' href='<!-- { project_path}-->/resources/fontawesome/css/all.css'> \n " ;
2019-03-27 20:21:25 +01:00
2019-03-27 23:38:23 +01:00
//link to custom css file
2016-05-04 20:55:56 +02:00
if ( $_SESSION [ 'theme' ][ 'custom_css' ][ 'text' ] != '' ) {
2018-06-30 18:42:17 +02:00
echo " <link rel='stylesheet' type='text/css' href=' " . escape ( $_SESSION [ 'theme' ][ 'custom_css' ][ 'text' ]) . " '> \n \n " ;
2016-05-04 20:55:56 +02:00
}
2019-03-27 23:38:23 +01:00
//output custom css
if ( $_SESSION [ 'theme' ][ 'custom_css_code' ][ 'text' ] != '' ) {
echo " <style> \n " ;
echo escape ( $_SESSION [ 'theme' ][ 'custom_css_code' ][ 'text' ]);
echo " </style> \n \n " ;
}
2016-03-25 23:29:20 +01:00
//set fav icon
2018-06-30 18:42:17 +02:00
$favicon = ( isset ( $_SESSION [ 'theme' ][ 'favicon' ][ 'text' ])) ? escape ( $_SESSION [ 'theme' ][ 'favicon' ][ 'text' ]) : '<!--{project_path}-->/themes/default/favicon.ico' ;
2016-03-25 23:29:20 +01:00
echo " <link rel='icon' href=' " . $favicon . " '> \n " ;
2019-03-27 20:21:25 +01:00
echo " <title><!-- { title}--></title> \n " ;
2019-08-21 02:15:50 +02:00
echo " <script language='JavaScript' type='text/javascript' src='<!-- { project_path}-->/resources/jquery/jquery-3.4.1.min.js'></script> \n " ;
//echo "<script src='https://code.jquery.com/jquery-migrate-3.1.0.js'></script>\n";
2019-03-27 20:21:25 +01:00
echo " <script language='JavaScript' type='text/javascript' src='<!-- { project_path}-->/resources/jquery/jquery.autosize.input.js'></script> \n " ;
2019-08-21 02:15:50 +02:00
echo " <script language='JavaScript' type='text/javascript' src='<!-- { project_path}-->/resources/momentjs/moment.min.js'></script> \n " ;
2019-03-27 20:21:25 +01:00
echo " <script language='JavaScript' type='text/javascript' src='<!-- { project_path}-->/resources/bootstrap/js/bootstrap.min.js'></script> \n " ;
echo " <script language='JavaScript' type='text/javascript' src='<!-- { project_path}-->/resources/bootstrap/js/bootstrap-datetimepicker.min.js'></script> \n " ;
echo " <script language='JavaScript' type='text/javascript' src='<!-- { project_path}-->/resources/bootstrap/js/bootstrap-colorpicker.js'></script> \n " ;
echo " <script language='JavaScript' type='text/javascript' src='<!-- { project_path}-->/resources/bootstrap/js/bootstrap-pwstrength.min.js'></script> \n " ;
2016-03-25 23:29:20 +01:00
2019-08-21 02:15:50 +02:00
echo " <script language='JavaScript' type='text/javascript'>window.FontAwesomeConfig = { autoReplaceSvg: false }</script> \n " ;
echo " <script language='JavaScript' type='text/javascript' src='<!-- { project_path}-->/resources/fontawesome/js/all.js' defer></script> \n " ;
2016-05-05 20:57:08 +02:00
//web font loader
if ( $_SESSION [ 'theme' ][ 'font_loader' ][ 'text' ] == 'true' ) {
if ( $_SESSION [ 'theme' ][ 'font_retrieval' ][ 'text' ] != 'asynchronous' ) {
2018-06-30 18:42:17 +02:00
$font_loader_version = ( $_SESSION [ 'theme' ][ 'font_loader_version' ][ 'text' ] != '' ) ? escape ( $_SESSION [ 'theme' ][ 'font_loader_version' ][ 'text' ]) : 1 ;
echo " <script language='JavaScript' type='text/javascript' src='//ajax.googleapis.com/ajax/libs/webfont/ " . escape ( $font_loader_version ) . " /webfont.js'></script> \n " ;
2016-05-05 20:57:08 +02:00
}
2018-06-30 18:42:17 +02:00
echo " <script language='JavaScript' type='text/javascript' src='<!-- { project_path}-->/resources/fonts/web_font_loader.php?v= " . escape ( $font_loader_version ) . " '></script> \n " ;
2016-05-05 20:57:08 +02:00
}
?>
2019-03-27 20:21:25 +01:00
2016-03-25 23:29:20 +01:00
< script language = " JavaScript " type = " text/javascript " >
2016-04-07 22:48:12 +02:00
//display message bar via js
function display_message ( msg , mood , delay ) {
2017-04-27 19:30:52 +02:00
mood = ( typeof mood !== 'undefined' ) ? mood : 'default' ;
delay = ( typeof delay !== 'undefined' ) ? delay : < ? php echo ( 1000 * ( float ) $_SESSION [ 'theme' ][ 'message_delay' ][ 'text' ]); ?> ;
if ( msg !== '' ) {
var message_text = $ ( document . createElement ( 'div' ));
message_text . addClass ( 'message_text message_mood_' + mood );
message_text . html ( msg );
2019-08-21 02:15:50 +02:00
message_text . on ( 'click' , function () {
2017-04-27 19:30:52 +02:00
var object = $ ( this );
object . clearQueue () . finish ();
2019-02-16 21:48:31 +01:00
$ ( " #message_container div " ) . remove ();
$ ( " #message_container " ) . css ({ opacity : 0 , 'height' : 0 }) . css ({ 'height' : 'auto' });
2017-04-27 19:30:52 +02:00
} );
2018-08-31 05:32:59 +02:00
$ ( " #message_container " ) . append ( message_text );
2019-02-16 21:48:31 +01:00
message_text . css ({ 'height' : 'auto' }) . animate ({ opacity : 1 }, 250 , function (){
$ ( " #message_container " ) . delay ( delay ) . animate ({ opacity : 0 , 'height' : 0 }, 500 , function () {
$ ( " #message_container div " ) . remove ();
$ ( " #message_container " ) . animate ({ opacity : 1 }, 300 ) . css ({ 'height' : 'auto' });
});
2018-12-12 22:52:56 +01:00
});
2016-03-25 23:29:20 +01:00
}
2016-04-07 22:48:12 +02:00
}
2016-03-25 23:29:20 +01:00
2019-08-21 02:15:50 +02:00
< ? php if ( $_SESSION [ 'theme' ][ 'menu_style' ][ 'text' ] == 'side' ) { ?>
//toggle side menu visibility (if enabled)
var menu_side_state = 'contracted' ;
function menu_side_contract () {
$ ( '.menu_side_sub' ) . slideUp ( 180 );
$ ( '.menu_side_item_title' ) . hide ();
< ? php if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'image' || $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == '' ) { ?>
$ ( '#menu_brand_image_expanded' ) . fadeOut ( 180 , function () {
$ ( '#menu_brand_image_contracted' ) . fadeIn ( 180 );
});
< ? php } else if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'image_text' ) { ?>
$ ( '.menu_brand_text' ) . hide ();
$ ( '#menu_brand_image_contracted' ) . animate ({ width : '20px' , 'margin-left' : '-2px' }, 250 );
< ? php } else if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'text' ) { ?>
$ ( '.menu_brand_text' ) . fadeOut ( 180 );
< ? php } ?>
$ ( '#menu_side_container' ) . animate ({ width : '<?php echo is_numeric($_SESSION[' theme '][' menu_side_width_contracted '][' text ']) ? $_SESSION[' theme '][' menu_side_width_contracted '][' text '] : ' 60 '; ?>px' }, 250 );
$ ( '#content_container' ) . animate ({ width : $ ( window ) . width () - < ? php echo is_numeric ( $_SESSION [ 'theme' ][ 'menu_side_width_contracted' ][ 'text' ]) ? $_SESSION [ 'theme' ][ 'menu_side_width_contracted' ][ 'text' ] : '60' ; ?> }, 250, function() {
menu_side_state = 'contracted' ;
2019-03-27 01:52:35 +01:00
});
2019-08-21 02:15:50 +02:00
$ ( '.menu_side_contract' ) . hide ();
$ ( '.menu_side_expand' ) . show ();
}
2019-03-26 21:43:31 +01:00
2019-08-21 02:15:50 +02:00
function menu_side_expand () {
< ? php if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'image_text' ) { ?>
$ ( '#menu_brand_image_contracted' ) . animate ({ width : '30px' , 'margin-left' : '0' }, 250 );
< ? php } else if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'image' || $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == '' ) { ?>
$ ( '#menu_brand_image_contracted' ) . fadeOut ( 180 );
2019-03-27 01:52:35 +01:00
< ? php } ?>
2019-08-21 02:15:50 +02:00
$ ( '#menu_side_container' ) . animate ({ width : '<?php echo is_numeric($_SESSION[' theme '][' menu_side_width_expanded '][' text ']) ? $_SESSION[' theme '][' menu_side_width_expanded '][' text '] : ' 225 '; ?>px' }, 250 );
$ ( '#content_container' ) . animate ({ width : $ ( window ) . width () - < ? php echo is_numeric ( $_SESSION [ 'theme' ][ 'menu_side_width_expanded' ][ 'text' ]) ? $_SESSION [ 'theme' ][ 'menu_side_width_expanded' ][ 'text' ] : '225' ; ?> }, 250, function() {
$ ( '.menu_brand_text' ) . fadeIn ( 180 );
$ ( '.menu_side_item_title' ) . fadeIn ( 180 );
< ? php if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] != 'none' ) { ?>
$ ( '.menu_side_contract' ) . fadeIn ( 180 );
< ? php } ?>
< ? php if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'image' || $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == '' ) { ?>
$ ( '#menu_brand_image_expanded' ) . fadeIn ( 180 );
< ? php } ?>
menu_side_state = 'expanded' ;
});
< ? php if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'none' ) { ?>
$ ( '.menu_side_contract' ) . show ();
2019-03-27 01:52:35 +01:00
< ? php } ?>
2019-08-21 02:15:50 +02:00
$ ( '.menu_side_expand' ) . hide ();
}
< ? php } ?>
2019-03-26 21:43:31 +01:00
2016-04-07 22:48:12 +02:00
$ ( document ) . ready ( function () {
2016-03-25 23:29:20 +01:00
2018-12-12 22:52:56 +01:00
< ? php echo message :: html ( true , " " ); ?>
2016-03-25 23:29:20 +01:00
//hide message bar on hover
2019-08-21 02:15:50 +02:00
$ ( " #message_container " ) . on ( 'mouseenter' , function () {
2019-02-16 21:48:31 +01:00
$ ( " #message_container div " ) . remove ();
$ ( " #message_container " ) . css ({ opacity : 0 , 'height' : 0 }) . css ({ 'height' : 'auto' });
});
2016-03-25 23:29:20 +01:00
2016-04-01 01:11:37 +02:00
< ? php
if ( permission_exists ( " domain_select " ) && count ( $_SESSION [ 'domains' ]) > 1 ) {
?>
//domain selector controls
2019-08-21 02:15:50 +02:00
$ ( " .domain_selector_domain " ) . on ( 'click' , function () { show_domains (); });
$ ( " #header_domain_selector_domain " ) . on ( 'click' , function () { show_domains (); });
$ ( " #domains_hide " ) . on ( 'click' , function () { hide_domains (); });
2016-03-25 23:29:20 +01:00
2016-04-01 01:11:37 +02:00
function show_domains () {
2016-04-07 21:01:21 +02:00
$ ( '#domains_visible' ) . val ( 1 );
2016-04-01 01:11:37 +02:00
var scrollbar_width = ( window . innerWidth - $ ( window ) . width ()); //gold: only solution that worked with body { overflow:auto } (add -ms-overflow-style: scrollbar; to <body> style for ie 10+)
if ( scrollbar_width > 0 ) {
$ ( " body " ) . css ({ 'margin-right' : scrollbar_width , 'overflow' : 'hidden' }); //disable body scroll bars
$ ( " .navbar " ) . css ( 'margin-right' , scrollbar_width ); //adjust navbar margin to compensate
$ ( " #domains_container " ) . css ( 'right' , - scrollbar_width ); //domain container right position to compensate
}
2016-04-07 21:01:21 +02:00
$ ( document ) . scrollTop ( 0 );
2016-04-06 02:37:46 +02:00
$ ( " #domains_container " ) . show ();
2016-04-07 21:01:21 +02:00
$ ( " #domains_block " ) . animate ({ marginRight : '+=300' }, 400 , function () {
2019-08-21 02:15:50 +02:00
$ ( " #domain_filter " ) . trigger ( 'focus' );
2016-04-07 21:01:21 +02:00
});
2016-03-25 23:29:20 +01:00
}
2016-04-01 01:11:37 +02:00
function hide_domains () {
2016-04-07 21:01:21 +02:00
$ ( '#domains_visible' ) . val ( 0 );
2016-04-01 01:11:37 +02:00
$ ( document ) . ready ( function () {
$ ( " #domains_block " ) . animate ({ marginRight : '-=300' }, 400 , function () {
$ ( " #domain_filter " ) . val ( '' );
domain_search ( $ ( " #domain_filter " ) . val ());
$ ( " .navbar " ) . css ( 'margin-right' , '0' ); //restore navbar margin
$ ( " #domains_container " ) . css ( 'right' , '0' ); //domain container right position
$ ( " #domains_container " ) . hide ();
$ ( " body " ) . css ({ 'margin-right' : '0' , 'overflow' : 'auto' }); //enable body scroll bars
});
2016-03-25 23:29:20 +01:00
});
}
2016-04-01 01:11:37 +02:00
< ? php
2016-04-07 21:01:21 +02:00
key_press ( 'escape' , 'up' , 'document' , null , null , " if ( $ ('#domains_visible').val() == 0) { show_domains(); } else { hide_domains(); } " , false );
2016-04-01 01:11:37 +02:00
}
?>
2016-03-25 23:29:20 +01:00
//link table rows (except the last - the list_control_icons cell) on a table with a class of 'tr_hover', according to the href attribute of the <tr> tag
$ ( '.tr_hover tr' ) . each ( function ( i , e ) {
2019-08-21 02:15:50 +02:00
$ ( e ) . children ( 'td:not(.list_control_icon,.list_control_icons,.tr_link_void)' ) . on ( 'click' , function () {
2019-05-06 18:08:15 +02:00
var href = $ ( this ) . closest ( " tr " ) . attr ( " href " );
var target = $ ( this ) . closest ( 'tr' ) . attr ( 'target' );
if ( href ) {
if ( target ) { window . open ( href , target ); }
else { window . location = href ; }
}
});
2016-03-25 23:29:20 +01:00
});
//apply the auto-size jquery script to all text inputs
2019-07-26 18:30:56 +02:00
$ ( " input[type=text].txt,input[type=number].txt,input[type=password].txt,input[type=text].formfld,input[type=number].formfld,input[type=password].formfld " ) . not ( '.datetimepicker,.datetimesecondspicker,.datepicker' ) . autosizeInput ();
2016-03-25 23:29:20 +01:00
//apply bootstrap-datetime plugin
$ ( function () {
$ ( '.datetimepicker' ) . datetimepicker ({
2016-04-13 21:23:07 +02:00
format : 'YYYY-MM-DD HH:mm' ,
showTodayButton : true ,
showClear : true ,
showClose : true ,
2016-03-25 23:29:20 +01:00
});
2019-07-26 18:30:56 +02:00
$ ( '.datetimesecondspicker' ) . datetimepicker ({
format : 'YYYY-MM-DD HH:mm:ss' ,
showTodayButton : true ,
showClear : true ,
showClose : true ,
});
2016-05-17 21:44:42 +02:00
$ ( '.datepicker' ) . datetimepicker ({
format : 'YYYY-MM-DD' ,
showTodayButton : true ,
showClear : true ,
showClose : true ,
});
2016-03-25 23:29:20 +01:00
});
//apply bootstrap-colorpicker plugin
$ ( function (){
$ ( '.colorpicker' ) . colorpicker ({
align : 'left' ,
customClass : 'colorpicker-2x' ,
sliders : {
saturation : {
maxLeft : 200 ,
maxTop : 200
},
hue : {
maxTop : 200
},
alpha : {
maxTop : 200
}
}
});
});
2016-06-03 02:26:32 +02:00
//apply password strength plugin
$ ( '#password' ) . pwstrength ({
common : {
minChar : 8 ,
usernameField : '#username' ,
},
/* rules: { }, */
ui : {
// very weak weak normal medium strong very strong
colorClasses : [ " danger " , " warning " , " warning " , " warning " , " success " , " success " ],
progressBarMinPercentage : 15 ,
showVerdicts : false ,
viewports : {
progress : " #pwstrength_progress "
}
}
});
2019-08-21 02:15:50 +02:00
< ? php if ( $_SESSION [ 'theme' ][ 'menu_brand_image' ][ 'text' ] != '' && $_SESSION [ 'theme' ][ 'menu_brand_image_hover' ][ 'text' ] != '' && $_SESSION [ 'theme' ][ 'menu_style' ][ 'text' ] != 'side' ) { ?>
2016-05-21 03:08:10 +02:00
//crossfade menu brand images (if hover version set)
$ ( function (){
2019-08-21 02:15:50 +02:00
$ ( '#menu_brand_image' ) . on ( 'mouseover' , function (){
2016-05-21 03:08:10 +02:00
$ ( this ) . fadeOut ( 'fast' , function (){
$ ( '#menu_brand_image_hover' ) . fadeIn ( 'fast' );
});
});
2019-08-21 02:15:50 +02:00
$ ( '#menu_brand_image_hover' ) . on ( 'mouseout' , function (){
2016-05-21 03:08:10 +02:00
$ ( this ) . fadeOut ( 'fast' , function (){
$ ( '#menu_brand_image' ) . fadeIn ( 'fast' );
});
});
});
< ? php } ?>
2019-03-29 00:58:02 +01:00
//generate resizeEnd event after window resize event finishes (used when side menu and on messages app)
2019-08-21 02:15:50 +02:00
$ ( window ) . on ( 'resize' , function () {
2019-03-29 00:58:02 +01:00
if ( this . resizeTO ) { clearTimeout ( this . resizeTO ); }
this . resizeTO = setTimeout ( function () { $ ( this ) . trigger ( 'resizeEnd' ); }, 180 );
});
2019-03-26 21:43:31 +01:00
< ? php if ( $_SESSION [ 'theme' ][ 'menu_style' ][ 'text' ] == 'side' ) { ?>
//side menu: adjust content container width after window resize
$ ( window ) . on ( 'resizeEnd' , function () {
$ ( '#content_container' ) . animate ({ width : $ ( window ) . width () - $ ( '#menu_side_container' ) . width () }, 200 );
});
< ? php } ?>
2016-03-25 23:29:20 +01:00
});
2016-03-28 17:09:33 +02:00
//audio playback functions
var recording_audio ;
2016-06-28 20:08:36 +02:00
var audio_clock ;
2016-03-28 17:09:33 +02:00
function recording_play ( recording_id ) {
if ( document . getElementById ( 'recording_progress_bar_' + recording_id )) {
document . getElementById ( 'recording_progress_bar_' + recording_id ) . style . display = '' ;
}
2016-06-21 23:56:15 +02:00
recording_audio = document . getElementById ( 'recording_audio_' + recording_id );
2016-03-28 17:09:33 +02:00
if ( recording_audio . paused ) {
recording_audio . volume = 1 ;
recording_audio . play ();
document . getElementById ( 'recording_button_' + recording_id ) . innerHTML = " <?php echo str_replace( " class = 'list_control_icon' " , " class = 'list_control_icon' style = 'opacity: 1;' " , $v_link_label_pause ); ?> " ;
2016-06-28 20:08:36 +02:00
audio_clock = setInterval ( function () { update_progress ( recording_id ); }, 20 );
2016-09-04 04:24:47 +02:00
$ ( " [id*=recording_button] " ) . not ( " [id*=recording_button_ " + recording_id + " ] " ) . html ( " <?php echo $v_link_label_play ; ?> " );
$ ( " [id*=recording_progress_bar] " ) . not ( " [id*=recording_progress_bar_ " + recording_id + " ] " ) . css ( 'display' , 'none' );
2018-12-12 22:52:56 +01:00
2019-03-29 00:58:02 +01:00
$ ( 'audio' ) . each ( function (){ $ ( '#menu_side_container' ) . width ()
2016-09-04 04:24:47 +02:00
if ( $ ( this ) . get ( 0 ) != recording_audio ) {
2017-04-27 19:30:52 +02:00
$ ( this ) . get ( 0 ) . pause (); // Stop playing
$ ( this ) . get ( 0 ) . currentTime = 0 ; // Reset time
2016-09-04 04:24:47 +02:00
}
});
2016-03-28 17:09:33 +02:00
}
else {
recording_audio . pause ();
document . getElementById ( 'recording_button_' + recording_id ) . innerHTML = " <?php echo $v_link_label_play ; ?> " ;
2016-06-28 20:08:36 +02:00
clearInterval ( audio_clock );
2016-03-28 17:09:33 +02:00
}
}
2016-06-21 23:56:15 +02:00
function recording_stop ( recording_id ) {
recording_reset ( recording_id );
2016-06-28 20:08:36 +02:00
clearInterval ( audio_clock );
2016-06-21 23:56:15 +02:00
}
2016-03-28 17:09:33 +02:00
function recording_reset ( recording_id ) {
2016-06-21 23:56:15 +02:00
recording_audio = document . getElementById ( 'recording_audio_' + recording_id );
recording_audio . pause ();
recording_audio . currentTime = 0 ;
2016-03-28 17:09:33 +02:00
if ( document . getElementById ( 'recording_progress_bar_' + recording_id )) {
document . getElementById ( 'recording_progress_bar_' + recording_id ) . style . display = 'none' ;
}
document . getElementById ( 'recording_button_' + recording_id ) . innerHTML = " <?php echo $v_link_label_play ; ?> " ;
2016-06-28 20:08:36 +02:00
clearInterval ( audio_clock );
2016-03-28 17:09:33 +02:00
}
function update_progress ( recording_id ) {
recording_audio = document . getElementById ( 'recording_audio_' + recording_id );
var recording_progress = document . getElementById ( 'recording_progress_' + recording_id );
var value = 0 ;
if ( recording_audio . currentTime > 0 ) {
value = ( 100 / recording_audio . duration ) * recording_audio . currentTime ;
}
2016-06-21 23:56:15 +02:00
recording_progress . style . marginLeft = value + " % " ;
2016-06-28 20:08:36 +02:00
if ( parseInt ( recording_audio . duration ) > 30 ) { //seconds
clearInterval ( audio_clock );
}
2016-03-28 17:09:33 +02:00
}
2016-03-25 23:29:20 +01:00
</ script >
2019-03-27 20:21:25 +01:00
< ? php
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
echo " <!-- { head}--> \n " ;
echo " </head> \n " ;
2016-03-25 23:29:20 +01:00
2017-04-27 19:30:52 +02:00
//add multilingual support
2016-03-25 23:29:20 +01:00
$language = new text ;
$text = $language -> get ( null , 'themes/default' );
2019-03-27 20:21:25 +01:00
echo " <body onload= \" " . $onload . " \" > \n " ;
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
echo " <div id='message_container'></div> \n " ;
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
//logged in, show the domains block
2016-03-25 23:29:20 +01:00
if ( strlen ( $_SESSION [ " username " ]) > 0 && permission_exists ( " domain_select " ) && count ( $_SESSION [ 'domains' ]) > 1 ) {
2019-03-27 20:21:25 +01:00
echo " <div id='domains_container'> \n " ;
echo " <input type='hidden' id='domains_visible' value='0'> \n " ;
echo " <div id='domains_block'> \n " ;
echo " <div id='domains_header'> \n " ;
echo " <input id='domains_hide' type='button' class='btn' style='float: right' value= \" " . $text [ 'theme-button-close' ] . " \" > \n " ;
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
if ( file_exists ( $_SERVER [ " DOCUMENT_ROOT " ] . " /app/domains/domains.php " )) {
2019-07-24 08:45:35 +02:00
$domain_path = PROJECT_PATH . '/app/domains/domains.php' ;
2019-03-27 20:21:25 +01:00
}
else {
2019-07-24 08:45:35 +02:00
$domain_path = PROJECT_PATH . '/core/domains/domains.php' ;
2019-03-27 20:21:25 +01:00
}
2019-07-24 08:08:00 +02:00
echo " <a href= \" " . $domain_path . " \" ><b style= \" color: #000; \" > " . $text [ 'theme-title-domains' ] . " </b></a> ( " . sizeof ( $_SESSION [ 'domains' ]) . " ) " ;
2019-03-27 20:21:25 +01:00
echo " <br><br> \n " ;
echo " <input type='text' id='domain_filter' class='formfld' style='margin-left: 0; min-width: 100%; width: 100%;' placeholder= \" " . $text [ 'theme-label-search' ] . " \" onkeyup='domain_search(this.value)'> \n " ;
echo " </div> \n " ;
echo " <div id='domains_list'> \n " ;
$bgcolor1 = " #eaedf2 " ;
$bgcolor2 = " #fff " ;
foreach ( $_SESSION [ 'domains' ] as $domain ) {
2019-07-27 16:04:34 +02:00
//active domain color
2019-03-27 20:21:25 +01:00
$bgcolor = ( $bgcolor == $bgcolor1 ) ? $bgcolor2 : $bgcolor1 ;
2019-07-26 23:14:16 +02:00
if ( $_SESSION [ 'theme' ][ 'domain_active_background_color' ][ 'text' ] != '' ) {
$bgcolor = ( $domain [ 'domain_uuid' ] == $_SESSION [ 'domain_uuid' ]) ? escape ( $_SESSION [ 'theme' ][ 'domain_active_background_color' ][ 'text' ]) : $bgcolor ;
}
else {
$bgcolor = ( $domain [ 'domain_uuid' ] == $_SESSION [ 'domain_uuid' ]) ? " #eeffee " : $bgcolor ;
}
2019-07-27 16:04:34 +02:00
//active domain's text hover color
if ( $_SESSION [ 'theme' ][ 'domain_active_text_color_hover' ][ 'text' ] != '' && $domain [ 'domain_uuid' ] == $_SESSION [ 'domain_uuid' ]) {
2019-08-12 18:43:20 +02:00
echo " <div id= \" " . $domain [ 'domain_name' ] . " \" class='domains_list_item_active' style='background-color: " . $bgcolor . " ' onclick= \" document.location.href=' " . escape ( $domain_path ) . " ?domain_uuid= " . escape ( $domain [ 'domain_uuid' ]) . " &domain_change=true'; \" > " ;
2019-07-27 16:04:34 +02:00
}
else {
2019-08-12 18:43:20 +02:00
echo " <div id= \" " . $domain [ 'domain_name' ] . " \" class='domains_list_item' style='background-color: " . $bgcolor . " ' onclick= \" document.location.href=' " . escape ( $domain_path ) . " ?domain_uuid= " . escape ( $domain [ 'domain_uuid' ]) . " &domain_change=true'; \" > " ;
2019-07-27 16:04:34 +02:00
}
2019-08-12 18:43:20 +02:00
echo " <a href=' " . escape ( $domain_path ) . " ?domain_uuid= " . escape ( $domain [ 'domain_uuid' ]) . " &domain_change=true' " . (( $domain [ 'domain_uuid' ] == $_SESSION [ 'domain_uuid' ]) ? " style='font-weight: bold;' " : null ) . " > " . escape ( $domain [ 'domain_name' ]) . " </a> \n " ;
2019-03-27 20:21:25 +01:00
if ( $domain [ 'domain_description' ] != '' ) {
echo " <span class= \" domain_list_item_description \" > - " . escape ( $domain [ 'domain_description' ]) . " </span> \n " ;
}
echo " </div> \n " ;
2019-08-12 18:43:20 +02:00
$ary_domain_names [] = $domain [ 'domain_name' ];
$ary_domain_descs [] = str_replace ( '"' , '\"' , $domain [ 'domain_description' ]);
2019-03-27 20:21:25 +01:00
}
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
echo " </div> \n " ;
echo " <script> \n " ;
echo " var domain_names = new Array( \" " . implode ( '","' , $ary_domain_names ) . " \" ); \n " ;
echo " var domain_descs = new Array( \" " . implode ( '","' , $ary_domain_descs ) . " \" ); \n " ;
echo " function domain_search(criteria) { \n " ;
echo " for (var x = 0; x < domain_names.length; x++) { \n " ;
echo " if (domain_names[x].toLowerCase().match(criteria.toLowerCase()) || domain_descs[x].toLowerCase().match(criteria.toLowerCase())) { \n " ;
echo " document.getElementById(domain_names[x]).style.display = ''; \n " ;
echo " } \n " ;
echo " else { \n " ;
echo " document.getElementById(domain_names[x]).style.display = 'none'; \n " ;
echo " } \n " ;
echo " } \n " ;
echo " } \n " ;
echo " </script> \n " ;
echo " </div> \n " ;
echo " </div> \n " ;
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
}
2016-03-27 11:22:42 +02:00
2019-03-27 20:21:25 +01:00
// qr code container for contacts
2019-03-26 21:43:31 +01:00
echo " <div id='qr_code_container' style='display: none;' onclick=' $ (this).fadeOut(400);'> \n " ;
echo " <table cellpadding='0' cellspacing='0' border='0' width='100%' height='100%'><tr><td align='center' valign='middle'> \n " ;
echo " <span id='qr_code' onclick= \" $ ('#qr_code_container').fadeOut(400); \" ></span> \n " ;
echo " </td></tr></table> \n " ;
echo " </div> \n " ;
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
if ( ! $default_login ) {
//top fixed, static or inline boostrap menu
function show_menu ( $menu_array , $menu_style , $menu_position ) {
global $text ;
//determine menu behavior
switch ( $menu_style ) {
case 'inline' :
$menu_type = 'default' ;
$menu_width = 'calc(100% - 20px)' ;
$menu_brand = false ;
$menu_corners = null ;
break ;
case 'static' :
$menu_type = 'static-top' ;
$menu_width = 'calc(100% - 40px)' ;
$menu_brand = true ;
$menu_corners = " style='-webkit-border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; border-radius: 0 0 4px 4px;' " ;
break ;
case 'fixed' :
default :
$menu_position = ( $menu_position != '' ) ? $menu_position : 'top' ;
$menu_type = 'fixed-' . $menu_position ;
2019-08-21 02:15:50 +02:00
$menu_width = ! http_user_agent ( 'mobile' ) ? 'calc(90% - 20px)' : null ;
2019-03-27 20:21:25 +01:00
$menu_brand = true ;
$menu_corners = null ;
}
//begin navbar code
2019-08-21 02:15:50 +02:00
echo " <nav class='navbar navbar-expand-sm " . $menu_type . " ' " . $menu_corners . " > \n " ;
echo " <div class='container-fluid' style='width: " . $menu_width . " ; padding: 0;'> \n " ;
echo " <div class='navbar-brand'> \n " ;
2019-03-27 20:21:25 +01:00
if ( $menu_brand ) {
//define menu brand link
if ( strlen ( PROJECT_PATH ) > 0 ) {
$menu_brand_link = PROJECT_PATH ;
}
else if ( ! $default_login ) {
$menu_brand_link = '/' ;
}
//define menu brand mark
$menu_brand_text = ( $_SESSION [ 'theme' ][ 'menu_brand_text' ][ 'text' ] != '' ) ? escape ( $_SESSION [ 'theme' ][ 'menu_brand_text' ][ 'text' ]) : " FusionPBX " ;
2019-08-21 02:15:50 +02:00
switch ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ]) {
case 'text' :
echo " <a class='navbar-brand-text' href= \" " . $menu_brand_link . " \" > " . $menu_brand_text . " </a> \n " ;
break ;
case 'image_text' :
$menu_brand_image = ( $_SESSION [ 'theme' ][ 'menu_brand_image' ][ 'text' ] != '' ) ? escape ( $_SESSION [ 'theme' ][ 'menu_brand_image' ][ 'text' ]) : PROJECT_PATH . " /themes/default/images/logo.png " ;
echo " <a href=' " . $menu_brand_link . " '> " ;
echo " <img id='menu_brand_image' class='navbar-logo' src=' " . $menu_brand_image . " ' title= \" " . escape ( $menu_brand_text ) . " \" > " ;
if ( $_SESSION [ 'theme' ][ 'menu_brand_image_hover' ][ 'text' ] != '' ) {
echo " <img id='menu_brand_image_hover' class='navbar-logo' style='display: none;' src=' " . $_SESSION [ 'theme' ][ 'menu_brand_image_hover' ][ 'text' ] . " ' title= \" " . escape ( $menu_brand_text ) . " \" > " ;
}
echo " </a> \n " ;
echo " <a class='navbar-brand-text' href= \" " . $menu_brand_link . " \" > " . $menu_brand_text . " </a> \n " ;
break ;
case 'none' :
break ;
case 'image' :
default :
$menu_brand_image = ( $_SESSION [ 'theme' ][ 'menu_brand_image' ][ 'text' ] != '' ) ? escape ( $_SESSION [ 'theme' ][ 'menu_brand_image' ][ 'text' ]) : PROJECT_PATH . " /themes/default/images/logo.png " ;
echo " <a href=' " . $menu_brand_link . " '> " ;
echo " <img id='menu_brand_image' class='navbar-logo' src=' " . $menu_brand_image . " ' title= \" " . escape ( $menu_brand_text ) . " \" > " ;
if ( $_SESSION [ 'theme' ][ 'menu_brand_image_hover' ][ 'text' ] != '' ) {
echo " <img id='menu_brand_image_hover' class='navbar-logo' style='display: none;' src=' " . $_SESSION [ 'theme' ][ 'menu_brand_image_hover' ][ 'text' ] . " ' title= \" " . escape ( $menu_brand_text ) . " \" > " ;
}
echo " </a> \n " ;
echo " <a style='margin: 0;'></a> \n " ;
2019-03-27 20:21:25 +01:00
}
}
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
echo " </div> \n " ;
2019-08-21 02:15:50 +02:00
echo " <button type='button' class='navbar-toggler' data-toggle='collapse' data-target='#main_navbar' aria-expanded='false' aria-controls='main_navbar' aria-label='Toggle Menu'> \n " ;
echo " <span class='fas fa-bars'></span> \n " ;
echo " </button> \n " ;
2019-03-27 20:21:25 +01:00
echo " <div class='collapse navbar-collapse' id='main_navbar'> \n " ;
2019-08-21 02:15:50 +02:00
echo " <ul class='navbar-nav'> \n " ;
2019-03-27 20:21:25 +01:00
foreach ( $menu_array as $index_main => $menu_parent ) {
2019-08-21 02:15:50 +02:00
$mod_li = " nav-item " ;
2019-03-27 20:21:25 +01:00
$mod_a_1 = " " ;
$submenu = false ;
if ( is_array ( $menu_parent [ 'menu_items' ]) && sizeof ( $menu_parent [ 'menu_items' ]) > 0 ) {
2019-08-21 02:15:50 +02:00
$mod_li = " nav-item dropdown " ;
$mod_a_1 = " data-toggle='dropdown' " ;
2019-03-27 20:21:25 +01:00
$submenu = true ;
}
$mod_a_2 = ( $menu_parent [ 'menu_item_link' ] != '' && ! $submenu ) ? $menu_parent [ 'menu_item_link' ] : '#' ;
$mod_a_3 = ( $menu_parent [ 'menu_item_category' ] == 'external' ) ? " target='_blank' " : null ;
if ( $_SESSION [ 'theme' ][ 'menu_main_icons' ][ 'boolean' ] != 'false' ) {
2019-08-21 02:15:50 +02:00
if ( $menu_parent [ 'menu_item_icon' ] != '' && substr_count ( $menu_parent [ 'menu_item_icon' ], 'fa-' ) > 0 ) {
$menu_main_icon = " <span class='fas " . $menu_parent [ 'menu_item_icon' ] . " ' title= \" " . escape ( $menu_parent [ 'menu_language_title' ]) . " \" ></span> \n " ;
2019-03-27 20:21:25 +01:00
}
else {
$menu_main_icon = null ;
}
2019-08-21 02:15:50 +02:00
$menu_main_item = " <span class='d-sm-none d-md-none d-lg-inline' style='margin-left: 5px;'> " . $menu_parent [ 'menu_language_title' ] . " </span> \n " ;
2019-03-27 20:21:25 +01:00
}
else {
$menu_main_item = $menu_parent [ 'menu_language_title' ];
}
2019-08-21 02:15:50 +02:00
echo " <li class=' " . $mod_li . " '> \n " ;
echo " <a class='nav-link' " . $mod_a_1 . " href=' " . $mod_a_2 . " ' " . $mod_a_3 . " > \n " ;
echo " " . $menu_main_icon . $menu_main_item ;
echo " </a> \n " ;
2019-03-27 20:21:25 +01:00
if ( $submenu ) {
2019-08-21 02:15:50 +02:00
echo " <ul class='dropdown-menu'> \n " ;
2019-03-27 20:21:25 +01:00
foreach ( $menu_parent [ 'menu_items' ] as $index_sub => $menu_sub ) {
$mod_a_2 = $menu_sub [ 'menu_item_link' ];
if ( $mod_a_2 == '' ) {
$mod_a_2 = '#' ;
2016-03-25 23:29:20 +01:00
}
2019-03-27 20:21:25 +01:00
else if (( $menu_sub [ 'menu_item_category' ] == 'internal' ) || (( $menu_sub [ 'menu_item_category' ] == 'external' ) && substr ( $mod_a_2 , 0 , 1 ) == '/' )) {
// accomodate adminer auto-login, if enabled
if ( substr ( $mod_a_2 , 0 , 22 ) == '/app/adminer/index.php' ) {
global $db_type ;
$mod_a_2 .= '?' . (( $db_type == 'mysql' ) ? 'server' : $db_type ) . '&db=fusionpbx&ns=public' ;
$mod_a_2 .= ( $_SESSION [ 'adminer' ][ 'auto_login' ][ 'boolean' ] == 'true' ) ? " &username=auto " : null ;
2016-04-07 23:59:48 +02:00
}
2019-03-27 20:21:25 +01:00
$mod_a_2 = PROJECT_PATH . $mod_a_2 ;
}
$mod_a_3 = ( $menu_sub [ 'menu_item_category' ] == 'external' ) ? " target='_blank' " : null ;
if ( $_SESSION [ 'theme' ][ 'menu_sub_icons' ][ 'boolean' ] != 'false' ) {
2019-08-21 02:15:50 +02:00
if ( $menu_sub [ 'menu_item_icon' ] != '' && substr_count ( $menu_sub [ 'menu_item_icon' ], 'fa-' ) > 0 ) {
$menu_sub_icon = " <span class='fas " . escape ( $menu_sub [ 'menu_item_icon' ]) . " '></span> " ;
2016-06-02 06:04:00 +02:00
}
2019-03-27 20:21:25 +01:00
else {
$menu_sub_icon = null ;
2016-06-02 06:04:00 +02:00
}
2019-03-27 20:21:25 +01:00
}
2019-08-21 02:15:50 +02:00
echo " <li class='nav-item'><a class='nav-link' href=' " . $mod_a_2 . " ' " . $mod_a_3 . " > " . ( $_SESSION [ 'theme' ][ 'menu_sub_icons' ] ? " <span class='fas fa-bar d-inline-block d-sm-none float-left' style='margin: 4px 10px 0 25px;'></span> " : null ) . escape ( $menu_sub [ 'menu_language_title' ]) . $menu_sub_icon . " </a></li> \n " ;
2019-03-27 20:21:25 +01:00
}
2019-08-21 02:15:50 +02:00
echo " </ul> \n " ;
2019-03-27 20:21:25 +01:00
}
2019-08-21 02:15:50 +02:00
echo " </li> \n " ;
2019-03-27 20:21:25 +01:00
}
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
echo " </ul> \n " ;
2019-08-21 02:15:50 +02:00
echo " <ul class='navbar-nav ml-auto'>
\n " ;
//domain name/selector
2019-03-27 20:21:25 +01:00
if ( $_SESSION [ " username " ] != '' && permission_exists ( " domain_select " ) && count ( $_SESSION [ 'domains' ]) > 1 && $_SESSION [ 'theme' ][ 'domain_visible' ][ 'text' ] == 'true' ) {
2019-08-21 02:15:50 +02:00
echo " <li class='nav-item'> \n " ;
echo " <a class='nav-link domain_selector_domain' href='#' title=' " . $text [ 'theme-label-open_selector' ] . " '> " . escape ( $_SESSION [ 'domain_name' ]) . " </a> " ;
echo " </li> \n " ;
2019-03-27 20:21:25 +01:00
}
//logout icon
if ( $_SESSION [ 'username' ] != '' && $_SESSION [ 'theme' ][ 'logout_icon_visible' ][ 'text' ] == " true " ) {
$username_full = $_SESSION [ 'username' ] . (( count ( $_SESSION [ 'domains' ]) > 1 ) ? " @ " . $_SESSION [ " user_context " ] : null );
2019-08-21 02:15:50 +02:00
echo " <li class='nav-item'> \n " ;
echo " <a class='nav-link logout_icon' href=' " . PROJECT_PATH . " /logout.php' title= \" " . $text [ 'theme-label-logout' ] . " \" onclick= \" return confirm(' " . $text [ 'theme-confirm-logout' ] . " ') \" ><span class='fas fa-sign-out-alt'></span></a> " ;
echo " </li> \n " ;
2019-03-27 20:21:25 +01:00
unset ( $username_full );
}
2019-08-21 02:15:50 +02:00
echo " </ul> \n " ;
2016-03-26 02:38:57 +01:00
2019-03-27 20:21:25 +01:00
echo " </div> \n " ;
echo " </div> \n " ;
echo " </nav> \n " ;
}
2016-03-26 02:38:57 +01:00
2019-03-27 20:21:25 +01:00
//determine menu configuration
$menu = new menu ;
$menu -> db = $db ;
$menu -> menu_uuid = $_SESSION [ 'domain' ][ 'menu' ][ 'uuid' ];
$menu_array = $menu -> menu_array ();
unset ( $menu );
$menu_style = ( $_SESSION [ 'theme' ][ 'menu_style' ][ 'text' ] != '' ) ? $_SESSION [ 'theme' ][ 'menu_style' ][ 'text' ] : 'fixed' ;
2019-08-21 02:15:50 +02:00
$menu_position = ( $_SESSION [ 'theme' ][ 'menu_position' ][ 'text' ] != '' ) ? $_SESSION [ 'theme' ][ 'menu_position' ][ 'text' ] : 'top' ;
2019-03-27 20:21:25 +01:00
switch ( $menu_style ) {
case 'inline' :
$logo_align = ( $_SESSION [ 'theme' ][ 'logo_align' ][ 'text' ] != '' ) ? $_SESSION [ 'theme' ][ 'logo_align' ][ 'text' ] : 'left' ;
2019-08-21 02:15:50 +02:00
$logo_style = ( $_SESSION [ 'theme' ][ 'logo_style' ][ 'text' ] != '' ) ? $_SESSION [ 'theme' ][ 'logo_style' ][ 'text' ] : null ;
2019-03-27 20:21:25 +01:00
echo " <div class='container-fluid' style='padding: 0;' align=' " . $logo_align . " '> \n " ;
if ( $_SERVER [ 'PHP_SELF' ] != PROJECT_PATH . " /core/install/install.php " ) {
$logo = ( $_SESSION [ 'theme' ][ 'logo' ][ 'text' ] != '' ) ? $_SESSION [ 'theme' ][ 'logo' ][ 'text' ] : PROJECT_PATH . " /themes/default/images/logo.png " ;
2019-08-21 02:15:50 +02:00
echo " <a href=' " . (( PROJECT_PATH != '' ) ? PROJECT_PATH : '/' ) . " '><img src=' " . $logo . " ' style='padding: 15px 20px; " . $logo_style . " '></a> " ;
2019-03-27 20:21:25 +01:00
}
2016-03-26 02:38:57 +01:00
2019-03-27 20:21:25 +01:00
show_menu ( $menu_array , $menu_style , $menu_position );
break ;
case 'static' :
echo " <div class='container-fluid' style='padding: 0;' align='center'> \n " ;
show_menu ( $menu_array , $menu_style , $menu_position );
break ;
case 'fixed' :
show_menu ( $menu_array , $menu_style , $menu_position );
echo " <div class='container-fluid' style='padding: 0;' align='center'> \n " ;
break ;
case 'side' :
echo " <div id='menu_side_container'> \n " ;
//menu brand image and/or text
if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'none' ) {
2019-08-21 02:15:50 +02:00
echo " <div style='height: 75px;'> \n " ;
echo " <a class='menu_side_item_main menu_side_contract' onclick='menu_side_contract();' style='display: none;'><i class='fas fa-chevron-left' style='z-index: 99800; padding-left: 3px;'></i></a> " ;
echo " <a class='menu_side_item_main menu_side_expand' onclick='menu_side_expand();'><i class='fas fa-bars' style='z-index: 99800; padding-left: 3px;'></i></a> " ;
echo " </div> \n " ;
2019-03-27 20:21:25 +01:00
}
else {
2019-08-21 02:15:50 +02:00
echo " <div id='menu_side_brand_container'> \n " ;
2019-03-27 20:21:25 +01:00
//menu toggle buttons
if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] != 'none' ) {
2019-08-21 02:15:50 +02:00
echo " <div style='float: right; margin-right: -20px; margin-top: -20px;'> \n " ;
echo " <a class='menu_side_item_main menu_side_contract' onclick='menu_side_contract();' style='display: none;'><i class='fas fa-chevron-left'></i></a> \n " ;
echo " </div> \n " ;
2019-03-27 20:21:25 +01:00
}
//define the menu brand link
if ( strlen ( PROJECT_PATH ) > 0 ) {
$menu_brand_link = PROJECT_PATH ;
}
else if ( ! $default_login ) {
$menu_brand_link = '/' ;
}
//show the menu brand image and/or text
$menu_brand_image_contracted = $_SESSION [ 'theme' ][ 'menu_side_brand_image_contracted' ][ 'text' ] != '' ? $_SESSION [ 'theme' ][ 'menu_side_brand_image_contracted' ][ 'text' ] : PROJECT_PATH . " /themes/default/images/logo_side_contracted.png " ;
$menu_brand_image_expanded = $_SESSION [ 'theme' ][ 'menu_side_brand_image_expanded' ][ 'text' ] != '' ? $_SESSION [ 'theme' ][ 'menu_side_brand_image_expanded' ][ 'text' ] : PROJECT_PATH . " /themes/default/images/logo_side_expanded.png " ;
$menu_brand_text = ( $_SESSION [ 'theme' ][ 'menu_brand_text' ][ 'text' ] != '' ) ? escape ( $_SESSION [ 'theme' ][ 'menu_brand_text' ][ 'text' ]) : " FusionPBX " ;
if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'image' || $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == '' ) {
2019-08-21 02:15:50 +02:00
echo " <a href=' " . $menu_brand_link . " ' style='text-decoration: none;'> " ;
echo " <img id='menu_brand_image_contracted' style='width: 20px; margin-left: -2px; margin-top: -5px;' src=' " . escape ( $menu_brand_image_contracted ) . " ' title= \" " . escape ( $menu_brand_text ) . " \" > " ;
echo " <img id='menu_brand_image_expanded' style='display: none;' src=' " . escape ( $menu_brand_image_expanded ) . " ' title= \" " . escape ( $menu_brand_text ) . " \" > " ;
echo " </a> \n " ;
2019-03-27 20:21:25 +01:00
}
else if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'image_text' ) {
2019-08-21 02:15:50 +02:00
echo " <a href=' " . $menu_brand_link . " ' style='text-decoration: none;'> " ;
echo " <img id='menu_brand_image_contracted' style='width: 20px; margin-left: -2px; margin-top: -5px;' src=' " . escape ( $menu_brand_image_contracted ) . " ' title= \" " . escape ( $menu_brand_text ) . " \" > " ;
echo " <span class='menu_brand_text' style='display: none;'> " . $menu_brand_text . " </span> " ;
echo " </a> \n " ;
2019-03-27 20:21:25 +01:00
}
else if ( $_SESSION [ 'theme' ][ 'menu_brand_type' ][ 'text' ] == 'text' ) {
2019-08-21 02:15:50 +02:00
echo " <a class='menu_brand_text' style='display: none;' href= \" " . $menu_brand_link . " \" > " . $menu_brand_text . " </a> \n " ;
2019-03-27 20:21:25 +01:00
}
2019-08-21 02:15:50 +02:00
echo " </div> \n " ;
2016-03-26 02:38:57 +01:00
}
2019-03-27 20:21:25 +01:00
//main menu items
if ( is_array ( $menu_array ) && sizeof ( $menu_array ) != 0 ) {
foreach ( $menu_array as $menu_index_main => $menu_item_main ) {
2019-08-21 02:15:50 +02:00
echo " <a class='menu_side_item_main' " . ( $menu_item_main [ 'menu_item_link' ] != '' ? " href=' " . $menu_item_main [ 'menu_item_link' ] . " ' " : " onclick= \" menu_side_expand(); $ ('#sub_ " . $menu_item_main [ 'menu_item_uuid' ] . " ').slideToggle(180, function() { if (! $ (this).is(':hidden')) { $ ('.menu_side_sub').not( $ (this)).slideUp(180); } }); \" " ) . " title= \" " . $menu_item_main [ 'menu_language_title' ] . " \" > " ;
2019-03-27 20:21:25 +01:00
if ( $menu_item_main [ 'menu_item_icon' ] != '' ) {
2019-08-21 02:15:50 +02:00
echo " <i class='fas " . $menu_item_main [ 'menu_item_icon' ] . " fa-fw' style='z-index: 99800; margin-right: 8px;'></i> " ;
2019-03-27 01:52:35 +01:00
}
2019-03-27 20:21:25 +01:00
echo " <span class='menu_side_item_title' style='display: none;'> " . $menu_item_main [ 'menu_language_title' ] . " </span> " ;
echo " </a> \n " ;
//sub menu items
if ( is_array ( $menu_item_main [ 'menu_items' ]) && sizeof ( $menu_item_main [ 'menu_items' ]) != 0 ) {
2019-08-21 02:15:50 +02:00
echo " <div id='sub_ " . $menu_item_main [ 'menu_item_uuid' ] . " ' class='menu_side_sub' style='display: none;'> \n " ;
2019-03-27 20:21:25 +01:00
foreach ( $menu_item_main [ 'menu_items' ] as $menu_index_sub => $menu_item_sub ) {
2019-08-21 02:15:50 +02:00
echo " <a class='menu_side_item_sub' " . ( $menu_item_sub [ 'menu_item_category' ] == 'external' ? " target='_blank' " : null ) . " href=' " . $menu_item_sub [ 'menu_item_link' ] . " '> " ;
echo " <span class='menu_side_item_title' style='display: none;'> " . $menu_item_sub [ 'menu_language_title' ] . " </span> " ;
echo " </a> \n " ;
2019-03-23 03:11:55 +01:00
}
2019-08-21 02:15:50 +02:00
echo " </div> \n " ;
2019-03-27 20:21:25 +01:00
}
2019-03-23 03:11:55 +01:00
}
2019-08-21 02:15:50 +02:00
echo " <div style='height: 100px;'></div> \n " ;
2019-03-27 20:21:25 +01:00
}
echo " </div> \n " ;
echo " <div id='content_container' style='padding: 0; width: calc(100% - " . ( is_numeric ( $_SESSION [ 'theme' ][ 'menu_side_width_contracted' ][ 'text' ]) ? $_SESSION [ 'theme' ][ 'menu_side_width_contracted' ][ 'text' ] : '55' ) . " px); float: right; padding-top: 0px; text-align: center;'> \n " ;
echo " <div id='content_header'> \n " ;
//header: left
2019-08-21 02:15:50 +02:00
echo " <div class='float-left'> \n " ;
2019-03-26 21:43:31 +01:00
echo " </div> \n " ;
2019-03-27 20:21:25 +01:00
//header: right
2019-08-21 02:15:50 +02:00
echo " <span class='float-right' style='white-space: nowrap;'> " ;
2019-03-27 20:21:25 +01:00
//current user
echo " <span style='display: inline-block; padding-right: 20px; font-size: 85%;'> \n " ;
echo " <strong> " . $text [ 'theme-label-user' ] . " </strong>: " ;
echo " <a href=' " . PROJECT_PATH . " /core/users/user_edit.php?id=user'> " . $_SESSION [ 'username' ] . " </a> " ;
echo " </span> \n " ;
//domain name/selector (sm+)
if ( $_SESSION [ " username " ] != '' && permission_exists ( " domain_select " ) && count ( $_SESSION [ 'domains' ]) > 1 && $_SESSION [ 'theme' ][ 'domain_visible' ][ 'text' ] == 'true' ) {
echo " <span style='display: inline-block; padding-right: 10px; font-size: 85%;'> \n " ;
echo " <strong> " . $text [ 'theme-label-domain' ] . " </strong>: " ;
2019-08-21 02:15:50 +02:00
echo " <a href='#' id='header_domain_selector_domain' title=' " . $text [ 'theme-label-open_selector' ] . " '> " . escape ( $_SESSION [ 'domain_name' ]) . " </a> " ;
2019-03-26 21:43:31 +01:00
echo " </span> \n " ;
2019-03-27 20:21:25 +01:00
}
//logout icon
if ( $_SESSION [ 'username' ] != '' && $_SESSION [ 'theme' ][ 'logout_icon_visible' ][ 'text' ] == " true " ) {
2019-08-21 02:15:50 +02:00
echo " <a id='header_logout_icon' href=' " . PROJECT_PATH . " /logout.php' title= \" " . $text [ 'theme-label-logout' ] . " \" onclick= \" return confirm(' " . $text [ 'theme-confirm-logout' ] . " ') \" ><span class='fas fa-log-out'></span></a> " ;
2019-03-27 20:21:25 +01:00
}
echo " </span> " ;
echo " </div> \n " ;
break ;
}
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
echo " <div id='main_content'> \n " ;
echo " <!-- { body}--> \n " ;
echo " </div> \n " ;
echo " <div id='footer'> \n " ;
echo " <span class='footer'> " . ( $_SESSION [ 'theme' ][ 'footer' ][ 'text' ] != '' ? $_SESSION [ 'theme' ][ 'footer' ][ 'text' ] : " © " . $text [ 'theme-label-copyright' ] . " 2008 - " . date ( " Y " ) . " <a href='http://www.fusionpbx.com' class='footer' target='_blank'>fusionpbx.com</a> " . $text [ 'theme-label-all_rights_reserved' ]) . " </span> \n " ;
echo " </div> \n " ;
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
echo " </div> \n " ; //initial div from switch statement above
}
2016-03-25 23:29:20 +01:00
2019-03-27 20:21:25 +01:00
// default login being used
else {
if ( $_SESSION [ 'theme' ][ 'logo_login' ][ 'text' ] != '' ) {
$logo = $_SESSION [ 'theme' ][ 'logo_login' ][ 'text' ];
}
else if ( $_SESSION [ 'theme' ][ 'logo' ][ 'text' ] != '' ) {
$logo = $_SESSION [ 'theme' ][ 'logo' ][ 'text' ];
}
2016-03-25 23:29:20 +01:00
else {
2019-03-27 20:21:25 +01:00
$logo = PROJECT_PATH . " /themes/default/images/logo_login.png " ;
2016-03-25 23:29:20 +01:00
}
2019-03-27 20:21:25 +01:00
echo " <div id='default_login'> \n " ;
echo " <a href=' " . PROJECT_PATH . " /'><img id='login_logo' src=' " . escape ( $logo ) . " '></a><br /> \n " ;
echo " <!-- { body}--> \n " ;
echo " </div> \n " ;
echo " <div id='footer_login'> \n " ;
echo " <span class='footer'> " . ( $_SESSION [ 'theme' ][ 'footer' ][ 'text' ] != '' ? $_SESSION [ 'theme' ][ 'footer' ][ 'text' ] : " © " . $text [ 'theme-label-copyright' ] . " 2008 - " . date ( " Y " ) . " <a href='http://www.fusionpbx.com' class='footer' target='_blank'>fusionpbx.com</a> " . $text [ 'theme-label-all_rights_reserved' ]) . " </span> \n " ;
echo " </div> \n " ;
unset ( $_SESSION [ 'background_image' ]);
}
echo " </body> \n " ;
echo " </html> \n " ;
2019-08-12 18:43:20 +02:00
2019-07-24 08:08:00 +02:00
?>