|
|
{* <?php *}
{*//set the doctype *} {if $browser_name == 'Internet Explorer'} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> {else} <!DOCTYPE html> {/if}
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> <head> <meta charset='utf-8'> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' />
{*//external css files *} <link rel='stylesheet' type='text/css' href='{$project_path}/resources/bootstrap/css/bootstrap.min.css.php'> <link rel='stylesheet' type='text/css' href='{$project_path}/resources/bootstrap/css/bootstrap-tempusdominus.min.css.php'> <link rel='stylesheet' type='text/css' href='{$project_path}/resources/bootstrap/css/bootstrap-colorpicker.min.css.php'> <link rel='stylesheet' type='text/css' href='{$project_path}/resources/fontawesome/css/all.min.css.php'> <link rel='stylesheet' type='text/css' href='{$project_path}/themes/default/css.php'>
{*//link to custom css file *} {if $settings.theme.custom_css} <link rel='stylesheet' type='text/css' href='{$settings.theme.custom_css}'> {/if}
{*//set favorite icon *} <link rel='icon' href='{$settings.theme.favicon}'>
{*//document title *} <title>{$document_title}</title>
{*//remote javascript *} <script language='JavaScript' type='text/javascript' src='{$project_path}/resources/jquery/jquery.min.js.php'></script> <script language='JavaScript' type='text/javascript' src='{$project_path}/resources/jquery/jquery.autosize.input.js.php'></script> <script language='JavaScript' type='text/javascript' src='{$project_path}/resources/momentjs/moment-with-locales.min.js.php'></script> <script language='JavaScript' type='text/javascript' src='{$project_path}/resources/bootstrap/js/bootstrap.min.js.php'></script> <script language='JavaScript' type='text/javascript' src='{$project_path}/resources/bootstrap/js/bootstrap-tempusdominus.min.js.php'></script> <script language='JavaScript' type='text/javascript' src='{$project_path}/resources/bootstrap/js/bootstrap-colorpicker.min.js.php'></script> <script language='JavaScript' type='text/javascript' src='{$project_path}/resources/bootstrap/js/bootstrap-pwstrength.min.js.php'></script> <script language='JavaScript' type='text/javascript'>{literal}window.FontAwesomeConfig = { autoReplaceSvg: false }{/literal}</script> <script language='JavaScript' type='text/javascript' src='{$project_path}/resources/fontawesome/js/solid.min.js.php' defer></script>
{*//web font loader *} {if $settings.theme.font_loader == 'true'} {if $settings.theme.font_retrieval != 'asynchronous'} <script language='JavaScript' type='text/javascript' src='//ajax.googleapis.com/ajax/libs/webfont/{$settings.theme.font_loader_version}/webfont.js'></script> {/if} <script language='JavaScript' type='text/javascript' src='{$project_path}/resources/fonts/web_font_loader.php?v={$settings.theme.font_loader_version}'></script> {/if}
{*//local javascript *} <script language='JavaScript' type='text/javascript'>
//message bar display
{literal} function display_message(msg, mood, delay) { mood = mood !== undefined ? mood : 'default'; delay = delay !== undefined ? delay : {/literal}{$settings.theme.message_delay}{literal}; if (msg !== '') { var message_text = $(document.createElement('div')); message_text.addClass('message_text message_mood_'+mood); message_text.html(msg); message_text.on('click', function() { var object = $(this); object.clearQueue().finish(); $('#message_container div').remove(); $('#message_container').css({opacity: 0, 'height': 0}).css({'height': 'auto'}); } ); $('#message_container').append(message_text); 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'}); }); }); } } {/literal}
{if $settings.theme.menu_style == 'side'} //side menu visibility toggle
var menu_side_expand_timer; var menu_side_contract_timer; var menu_side_state_current = '{if $menu_side_state == 'hidden'}expanded{else}{$menu_side_state}{/if}'; {literal}
function menu_side_contract_start() { menu_side_contract_timer = setTimeout(function() { menu_side_contract(); }, {/literal}{$settings.theme.menu_side_toggle_hover_delay_contract}{literal}); }
function menu_side_contract() { if (menu_side_state_current == 'expanded') { {/literal} {if $menu_side_state == 'hidden'} {literal} $('#menu_side_container').hide(); {/literal} {else} {literal} $('.menu_side_sub').slideUp(180); $('.menu_side_item_title').hide(); {/literal} {if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == 'image_text' || $settings.theme.menu_brand_type == ''} {literal} $('#menu_brand_image_expanded').fadeOut(180, function() { $('#menu_brand_image_contracted').fadeIn(180); }); {/literal} {else if $settings.theme.menu_brand_type == 'text'} {literal} $('.menu_brand_text').hide(); {/literal} {/if} {literal} $('.menu_side_control_state').hide(); $('.menu_side_item_main_sub_icons').hide(); $('.sub_arrows').removeClass('fa-{/literal}{$settings.theme.menu_side_item_main_sub_icon_contract}{literal}').addClass('fa-{/literal}{$settings.theme.menu_side_item_main_sub_icon_expand}{literal}'); $('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_contracted}{literal}px' }, 180, function() { menu_side_state_current = 'contracted'; }); {/literal} {if $settings.theme.menu_side_toggle_body_width == 'shrink' || ($settings.theme.menu_side_state == 'expanded' && $settings.theme.menu_side_toggle_body_width == 'fixed')} {literal} if ($(window).width() >= 576) { $('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_contracted}{literal} }, 250); } {/literal} {/if} {literal} $('.menu_side_contract').hide(); $('.menu_side_expand').show(); if ($(window).width() < 576) { $('#menu_side_container').hide(); } {/literal} {/if} {literal} } }
function menu_side_expand_start() { menu_side_expand_timer = setTimeout(function() { menu_side_expand(); }, {/literal}{$settings.theme.menu_side_toggle_hover_delay_expand}{literal}); }
function menu_side_expand() { {/literal} {if $menu_side_state == 'hidden'} {literal} $('.menu_side_contract').show(); {/literal} {if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == 'image_text' || $settings.theme.menu_brand_type == ''} {literal} $('#menu_brand_image_contracted').hide(); $('#menu_brand_image_expanded').show(); {/literal} {/if} {literal} $('.menu_side_control_state').show(); $('.menu_brand_text').show(); $('.menu_side_item_main_sub_icons').show(); $('.menu_side_item_title').show(); if ($(window).width() < 576) { $('#menu_side_container').width($(window).width()); } $('#menu_side_container').show(); {/literal} {else} {if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == 'image_text' ||$settings.theme.menu_brand_type == ''} {literal} $('#menu_brand_image_contracted').fadeOut(180); {/literal} {/if} {literal} $('.menu_side_expand').hide(); $('.menu_side_contract').show(); $('#menu_side_container').show(); var menu_side_container_width = $(window).width() < 576 ? $(window).width() : '{/literal}{$settings.theme.menu_side_width_expanded}{literal}px'; $('#menu_side_container').animate({ width: menu_side_container_width }, 180, function() { {/literal} {if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == 'image_text' || $settings.theme.menu_brand_type == ''} {literal} $('#menu_brand_image_expanded').fadeIn(180); {/literal} {/if} {literal} $('.menu_side_control_state').fadeIn(180); $('.menu_brand_text').fadeIn(180); $('.menu_side_item_main_sub_icons').fadeIn(180); $('.menu_side_item_title').fadeIn(180, function() { menu_side_state_current = 'expanded'; }); }); {/literal} {if $settings.theme.menu_side_toggle_body_width == 'shrink' || ($settings.theme.menu_side_state == 'expanded' && $settings.theme.menu_side_toggle_body_width == 'fixed')} {literal} if ($(window).width() >= 576) { $('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_expanded}{literal} }, 250); } {/literal} {/if} {/if} {literal} }
function menu_side_item_toggle(item_id) { $('#sub_arrow_'+item_id).toggleClass(['fa-{/literal}{$settings.theme.menu_side_item_main_sub_icon_contract}{literal}','fa-{/literal}{$settings.theme.menu_side_item_main_sub_icon_expand}{literal}']); $('.sub_arrows').not('#sub_arrow_'+item_id).removeClass('fa-{/literal}{$settings.theme.menu_side_item_main_sub_icon_contract}{literal}').addClass('fa-{/literal}{$settings.theme.menu_side_item_main_sub_icon_expand}{literal}'); $('#sub_'+item_id).slideToggle(180, function() { {/literal} {if $settings.theme.menu_side_item_main_sub_close != 'manual'} {literal} if (!$(this).is(':hidden')) { $('.menu_side_sub').not($(this)).slideUp(180); } {/literal} {/if} {literal} }); }
function menu_side_state_set(state) { var user_setting_set_path = '{/literal}{$project_path}{literal}/core/user_settings/user_setting_set.php?category=theme&subcategory=menu_side_state&name=text&value='+state; var xhr = new XMLHttpRequest(); xhr.open('GET', user_setting_set_path); xhr.send(null); xhr.onreadystatechange = function () { var setting_modified; if (xhr.readyState === 4) { if (xhr.status === 200) { setting_modified = xhr.responseText; if (setting_modified == 'true') { document.getElementById('menu_side_state_set_expanded').style.display = state == 'expanded' ? 'none' : 'block'; document.getElementById('menu_side_state_set_contracted').style.display = state == 'contracted' ? 'none' : 'block'; {/literal} {if $menu_side_state == 'hidden'} {literal} document.getElementById('menu_side_state_hidden_button').style.display='none'; {/literal} {/if} {literal} if (state == 'expanded') { if ($(window).width() >= 576) { $('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_expanded}{literal} }, 250); } else { $('#menu_side_container').animate({ width: $(window).width() }, 180); } document.getElementById('menu_side_state_current').value = 'expanded'; display_message("{/literal}{$text.theme_message_menu_expanded}{literal}", 'positive', 1000); } else { menu_side_contract(); if ($(window).width() >= 576) { $('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_contracted}{literal} }, 250); } menu_side_state_current = 'contracted'; document.getElementById('menu_side_state_current').value = 'contracted'; display_message("{/literal}{$text.theme_message_menu_contracted}{literal}", 'positive', 1000); } } else if (setting_modified == 'deleted') { display_message("{/literal}{$text.theme_message_menu_reset}{literal}", 'positive', 1000); document.location.reload(); } } } } } {/literal} {/if}
{literal} $(document).ready(function() { {/literal}
{$messages}
//message bar hide on hover
{literal} $('#message_container').on('mouseenter',function() { $('#message_container div').remove(); $('#message_container').css({opacity: 0, 'height': 0}).css({'height': 'auto'}); }); {/literal}
//domain selector controls
{if $domain_selector_enabled} {literal} $('.domain_selector_domain').on('click', function() { show_domains(); }); $('#header_domain_selector_domain').on('click', function() { show_domains(); }); $('#domains_hide').on('click', function() { hide_domains(); });
function show_domains() { $('#domains_visible').val(1); 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
} $(document).scrollTop(0); $('#domains_container').show(); $('#domains_block').animate({marginRight: '+=300'}, 400, function() { $('#domains_filter').trigger('focus'); }); }
function hide_domains() { $('#domains_visible').val(0); $(document).ready(function() { $('#domains_block').animate({marginRight: '-=300'}, 400, function() { $('#domains_filter').val(''); domain_search($('#domains_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
document.activeElement.blur(); }); }); } {/literal} {/if}
//keyboard shortcut scripts
//key: [enter] - retain default behavior to submit form, when present - note: safari does not honor the first submit element when hiding it using 'display: none;' in the setAttribute method
{if $settings.theme.keyboard_shortcut_submit_enabled} {literal} var action_bar_actions, first_form, first_submit, modal_input_class, modal_continue_button; action_bar_actions = document.querySelector('div#action_bar.action_bar > div.actions'); first_form = document.querySelector('form#frm');
if (action_bar_actions !== null) { if (first_form !== null) { first_submit = document.createElement('input'); first_submit.type = 'submit'; first_submit.id = 'default_submit'; first_submit.setAttribute('style','position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden;'); first_form.prepend(first_submit); window.addEventListener('keydown',function(e){ modal_input_class = e.target.className; if (e.which == 13 && (e.target.tagName == 'INPUT' || e.target.tagName == 'SELECT')) { if (modal_input_class.includes('modal-input')) { e.preventDefault(); modal_continue_button = document.getElementById(e.target.dataset.continue); if (modal_continue_button) { modal_continue_button.click(); } } else { if (typeof window.submit_form === 'function') { submit_form(); } else { document.getElementById('frm').submit(); } } } }); } } {/literal} {/if}
//common (used by delete and toggle)
{if $settings.theme.keyboard_shortcut_delete_enabled || $settings.theme.keyboard_shortcut_toggle_enabled} var list_checkboxes; list_checkboxes = document.querySelectorAll('table.list tr.list-row td.checkbox input[type=checkbox]'); {/if}
//keyup event listener
{literal} window.addEventListener('keyup', function(e) { {/literal}
//key: [escape] - close modal window, if open, or toggle domain selector
{literal} if (e.which == 27) { e.preventDefault(); var modals, modal_visible, modal; modal_visible = false; modals = document.querySelectorAll('div.modal-window'); if (modals.length !== 0) { for (var x = 0, max = modals.length; x < max; x++) { modal = document.getElementById(modals[x].id); if (window.getComputedStyle(modal).getPropertyValue('opacity') == 1) { modal_visible = true; } } } if (modal_visible) { modal_close(); } {/literal} {if $domain_selector_enabled} {literal} else { if (document.getElementById('domains_visible').value == 0) { show_domains(); } else { hide_domains(); } } {/literal} {/if} {literal} } {/literal}
//key: [insert], list: to add
{if $settings.theme.keyboard_shortcut_add_enabled} {literal} if (e.which == 45 && !(e.target.tagName == 'INPUT' && e.target.type == 'text') && e.target.tagName != 'TEXTAREA') { e.preventDefault(); var add_button; add_button = document.getElementById('btn_add'); if (add_button === null || add_button === undefined) { add_button = document.querySelector('button[name=btn_add]'); } if (add_button !== null) { add_button.click(); } } {/literal} {/if}
//key: [delete], list: to delete checked, edit: to delete
{if $settings.theme.keyboard_shortcut_delete_enabled} {literal} if (e.which == 46 && !(e.target.tagName == 'INPUT' && e.target.type == 'text') && e.target.tagName != 'TEXTAREA') { e.preventDefault(); var delete_button; delete_button = document.querySelector('button[name=btn_delete]'); if (delete_button === null || delete_button === undefined) { delete_button = document.getElementById('btn_delete'); } if (delete_button !== null) { delete_button.click(); } } {/literal} {/if}
//key: [space], list,edit:prevent default space key behavior when opening toggle confirmation (which would automatically *click* the focused continue button on key-up)
{if $settings.theme.keyboard_shortcut_toggle_enabled} {literal} if (e.which == 32 && e.target.id == 'btn_toggle') { e.preventDefault(); } {/literal} {/if}
//keyup end
{literal} }); {/literal}
//keydown event listener
{literal} window.addEventListener('keydown', function(e) { {/literal}
//key: [space], list: to toggle checked - note: for default [space] checkbox behavior (ie. toggle focused checkbox) include in the if statement: && !(e.target.tagName == 'INPUT' && e.target.type == 'checkbox')
{if $settings.theme.keyboard_shortcut_toggle_enabled} {literal} if (e.which == 32 && !(e.target.tagName == 'INPUT' && e.target.type == 'text') && e.target.tagName != 'BUTTON' && !(e.target.tagName == 'INPUT' && e.target.type == 'button') && !(e.target.tagName == 'INPUT' && e.target.type == 'submit') && e.target.tagName != 'TEXTAREA' && list_checkboxes.length !== 0) { e.preventDefault(); var toggle_button; toggle_button = document.querySelector('button[name=btn_toggle]'); if (toggle_button === null || toggle_button === undefined) { toggle_button = document.getElementById('btn_toggle'); } if (toggle_button !== null) { toggle_button.click(); } } {/literal} {/if}
//key: [ctrl]+[a], list,edit: to check all
{if $settings.theme.keyboard_shortcut_check_all_enabled} {literal} if ((((e.which == 97 || e.which == 65) && (e.ctrlKey || e.metaKey) && !e.shiftKey) || e.which == 19) && !(e.target.tagName == 'INPUT' && e.target.type == 'text') && e.target.tagName != 'TEXTAREA') { var all_checkboxes; all_checkboxes = document.querySelectorAll('table.list tr.list-header th.checkbox input[name=checkbox_all]'); if (typeof all_checkboxes != 'object' || all_checkboxes.length == 0) { all_checkboxes = document.querySelectorAll('td.edit_delete_checkbox_all > span > input[name=checkbox_all]'); } if (typeof all_checkboxes == 'object' && all_checkboxes.length > 0) { e.preventDefault(); for (var x = 0, max = all_checkboxes.length; x < max; x++) { all_checkboxes[x].click(); } } } {/literal}
{/if}
//key: [ctrl]+[s], edit: to save
{if $settings.theme.keyboard_shortcut_save_enabled} {literal} if (((e.which == 115 || e.which == 83) && (e.ctrlKey || e.metaKey) && !e.shiftKey) || (e.which == 19)) { e.preventDefault(); var save_button; save_button = document.getElementById('btn_save'); if (save_button === null || save_button === undefined) { save_button = document.querySelector('button[name=btn_save]'); } if (save_button !== null) { save_button.click(); } } {/literal} {/if}
//key: [ctrl]+[c], list,edit: to copy
{if $settings.theme.keyboard_shortcut_copy_enabled} {if $browser_name_short == 'Safari'} //emulate with detecting [c] only, as [command] and [control] keys are ignored when captured
{literal} if ( (e.which == 99 || e.which == 67) && !(e.target.tagName == 'INPUT' && e.target.type == 'text') && !(e.target.tagName == 'INPUT' && e.target.type == 'password') && e.target.tagName != 'TEXTAREA' ) { {/literal} {else} {literal} if ( ( ( (e.which == 99 || e.which == 67) && (e.ctrlKey || e.metaKey) && !e.shiftKey ) || e.which == 19 ) && !(e.target.tagName == 'INPUT' && e.target.type == 'text') && e.target.tagName != 'TEXTAREA' ) { {/literal} {/if} {literal} var current_selection, copy_button; current_selection = window.getSelection(); if (current_selection === null || current_selection === undefined || current_selection.toString() == '') { e.preventDefault(); copy_button = document.querySelector('button[name=btn_copy]'); if (copy_button === null || copy_button === undefined) { copy_button = document.getElementById('btn_copy'); } if (copy_button !== null) { copy_button.click(); } } } {/literal} {/if}
//keydown end
{literal} }); {/literal}
//link list rows
{literal} $('.tr_hover tr,.list tr').each(function(i,e) { $(e).children('td:not(.list_control_icon,.list_control_icons,.tr_link_void,.list-row > .no-link,.list-row > .checkbox,.list-row > .button,.list-row > .action-button)').on('click', function() { 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; } } }); }); {/literal}
//autosize jquery autosize plugin on applicable input fields
{literal} $('input[type=text].txt.auto-size,input[type=number].txt.auto-size,input[type=password].txt.auto-size,input[type=text].formfld.auto-size,input[type=number].formfld.auto-size,input[type=password].formfld.auto-size').autosizeInput(); {/literal}
//initialize bootstrap tempusdominus (calendar/datetime picker) plugin
{literal} $(function() { //set defaults
$.fn.datetimepicker.Constructor.Default = $.extend({}, $.fn.datetimepicker.Constructor.Default, { buttons: { showToday: true, showClear: true, showClose: true, }, icons: { time: 'fas fa-clock', date: 'fas fa-calendar-alt', up: 'fas fa-arrow-up', down: 'fas fa-arrow-down', previous: 'fas fa-chevron-left', next: 'fas fa-chevron-right', today: 'fas fa-calendar-check', clear: 'fas fa-trash', close: 'fas fa-times', } }); //define formatting of individual classes
$('.datepicker').datetimepicker({ format: 'YYYY-MM-DD', }); $('.datetimepicker').datetimepicker({ format: 'YYYY-MM-DD HH:mm', }); $('.datetimesecpicker').datetimepicker({ format: 'YYYY-MM-DD HH:mm:ss', }); }); {/literal}
//apply bootstrap colorpicker plugin
{literal} $(function(){ $('.colorpicker').colorpicker({ align: 'left', customClass: 'colorpicker-2x', sliders: { saturation: { maxLeft: 200, maxTop: 200 }, hue: { maxTop: 200 }, alpha: { maxTop: 200 } } }); }); {/literal}
//apply bootstrap password strength plugin
{literal} $('#password').pwstrength({ common: { minChar: 8, usernameField: '#username', }, //rules: { },
ui: { colorClasses: ['danger', 'warning', 'warning', 'warning', 'success', 'success'], //weak,poor,normal,medium,good,strong
progressBarMinPercentage: 15, showVerdicts: false, viewports: { progress: '#pwstrength_progress' } } }); {/literal}
//crossfade menu brand images (if hover version set)
{if $settings.theme.menu_brand_image != '' && $settings.theme.menu_brand_image_hover != '' && $settings.theme.menu_style != 'side'} {literal} $(function(){ $('#menu_brand_image').on('mouseover',function(){ $(this).fadeOut('fast', function(){ $('#menu_brand_image_hover').fadeIn('fast'); }); }); $('#menu_brand_image_hover').on('mouseout',function(){ $(this).fadeOut('fast', function(){ $('#menu_brand_image').fadeIn('fast'); }); }); }); {/literal} {/if}
//generate resizeEnd event after window resize event finishes (used when side menu and on messages app)
{literal} $(window).on('resize', function() { if (this.resizeTO) { clearTimeout(this.resizeTO); } this.resizeTO = setTimeout(function() { $(this).trigger('resizeEnd'); }, 180); }); {/literal}
//side menu: adjust content container width after window resize
{if $settings.theme.menu_style == 'side'} {literal} $(window).on('resizeEnd', function() { if ($(window).width() < 576) { if (menu_side_state_current == 'contracted') { $('#menu_side_container').hide(); } if (menu_side_state_current == 'expanded') { {/literal} {if $menu_side_state != 'hidden'} {literal} $('#menu_side_container').show(); {/literal} {/if} {literal} $('#menu_side_container').animate({ width: $(window).width() }, 180); } $('#content_container').animate({ width: $(window).width() }, 100); } else { {/literal} {if $menu_side_state == 'hidden'} {literal} $('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_expanded}{literal}px' }, 180); $('#content_container').animate({ width: $(window).width() }, 100); {/literal} {else} {literal} $('#menu_side_container').show(); if (menu_side_state_current == 'expanded') { $('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_expanded}{literal}px' }, 180, function() { $('#content_container').animate({ width: $(window).width() - $('#menu_side_container').width() }, 100); }); } else { $('#content_container').animate({ width: $(window).width() - $('#menu_side_container').width() }, 100); } {/literal} {/if} {literal} } }); {/literal} {/if}
{literal} }); //document ready end
{/literal}
//audio playback functions
{literal} var recording_audio, audio_clock;
function recording_play(recording_id) { if (document.getElementById('recording_progress_bar_'+recording_id)) { document.getElementById('recording_progress_bar_'+recording_id).style.display=''; } recording_audio = document.getElementById('recording_audio_'+recording_id);
if (recording_audio.paused) { recording_audio.volume = 1; recording_audio.play(); document.getElementById('recording_button_'+recording_id).innerHTML = "<span class='{/literal}{$settings.theme.button_icon_pause}{literal} fa-fw'></span>"; audio_clock = setInterval(function () { update_progress(recording_id); }, 20);
$('[id*=recording_button]').not('[id*=recording_button_'+recording_id+']').html("<span class='{/literal}{$settings.theme.button_icon_play}{literal} fa-fw'></span>"); $('[id*=recording_progress_bar]').not('[id*=recording_progress_bar_'+recording_id+']').css('display', 'none');
$('audio').each(function(){$('#menu_side_container').width() if ($(this).get(0) != recording_audio) { $(this).get(0).pause(); //stop playing
$(this).get(0).currentTime = 0; //reset time
} }); } else { recording_audio.pause(); document.getElementById('recording_button_'+recording_id).innerHTML = "<span class='{/literal}{$settings.theme.button_icon_play}{literal} fa-fw'></span>"; clearInterval(audio_clock); } }
function recording_stop(recording_id) { recording_reset(recording_id); clearInterval(audio_clock); }
function recording_reset(recording_id) { recording_audio = document.getElementById('recording_audio_'+recording_id); recording_audio.pause(); recording_audio.currentTime = 0; 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 = "<span class='{/literal}{$settings.theme.button_icon_play}{literal} fa-fw'></span>"; clearInterval(audio_clock); }
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; } recording_progress.style.marginLeft = value + '%'; if (parseInt(recording_audio.duration) > 30) { //seconds
clearInterval(audio_clock); } } {/literal}
//handle action bar style on scroll
{literal} window.addEventListener('scroll', function(){ action_bar_scroll('action_bar', 20); }, false); function action_bar_scroll(action_bar_id, scroll_position, function_sticky, function_inline) { if (document.getElementById(action_bar_id)) { //sticky
if (this.scrollY > scroll_position) { document.getElementById(action_bar_id).classList.add('scroll'); if (typeof function_sticky === 'function') { function_sticky(); } } //inline
if (this.scrollY < scroll_position) { document.getElementById(action_bar_id).classList.remove('scroll'); if (typeof function_inline === 'function') { function_inline(); } } } } {/literal}
//enable button class button
{literal} function button_enable(button_id) { button = document.getElementById(button_id); button.disabled = false; button.classList.remove('disabled'); if (button.parentElement.nodeName == 'A') { anchor = button.parentElement; anchor.classList.remove('disabled'); anchor.setAttribute('onclick',''); } } {/literal}
//disable button class button
{literal} function button_disable(button_id) { button = document.getElementById(button_id); button.disabled = true; button.classList.add('disabled'); if (button.parentElement.nodeName == 'A') { anchor = button.parentElement; anchor.classList.add('disabled'); anchor.setAttribute('onclick','return false;'); } } {/literal}
//checkbox on change
{literal} function checkbox_on_change(checkbox) { checked = false; var inputs = document.getElementsByTagName('input'); for (var i = 0, max = inputs.length; i < max; i++) { if (inputs[i].type === 'checkbox' && inputs[i].checked == true) { checked = true; break; } } btn_copy = document.getElementById("btn_copy"); btn_toggle = document.getElementById("btn_toggle"); btn_delete = document.getElementById("btn_delete"); if (checked == true) { if (btn_copy) { btn_copy.style.display = "inline"; } if (btn_toggle) { btn_toggle.style.display = "inline"; } if (btn_delete) { btn_delete.style.display = "inline"; } } else { if (btn_copy) { btn_copy.style.display = "none"; } if (btn_toggle) { btn_toggle.style.display = "none"; } if (btn_delete) { btn_delete.style.display = "none"; } } } {/literal}
//list page functions
{literal} function list_all_toggle(modifier) { var checkboxes = (modifier !== undefined) ? document.getElementsByClassName('checkbox_'+modifier) : document.querySelectorAll("input[type='checkbox']"); var checkbox_checked = document.getElementById('checkbox_all' + (modifier !== undefined ? '_'+modifier : '')).checked; for (var i = 0, max = checkboxes.length; i < max; i++) { checkboxes[i].checked = checkbox_checked; } if (document.getElementById('btn_check_all') && document.getElementById('btn_check_none')) { if (checkbox_checked) { document.getElementById('btn_check_all').style.display = 'none'; document.getElementById('btn_check_none').style.display = ''; } else { document.getElementById('btn_check_all').style.display = ''; document.getElementById('btn_check_none').style.display = 'none'; } } }
function list_all_check() { var inputs = document.getElementsByTagName('input'); document.getElementById('checkbox_all').checked; for (var i = 0, max = inputs.length; i < max; i++) { if (inputs[i].type === 'checkbox') { inputs[i].checked = true; } } }
function list_self_check(checkbox_id) { var inputs = document.getElementsByTagName('input'); for (var i = 0, max = inputs.length; i < max; i++) { if (inputs[i].type === 'checkbox') { inputs[i].checked = false; } } document.getElementById(checkbox_id).checked = true; }
function list_action_set(action) { document.getElementById('action').value = action; }
function list_form_submit(form_id) { document.getElementById(form_id).submit(); }
function list_search_reset() { document.getElementById('btn_reset').style.display = 'none'; document.getElementById('btn_search').style.display = ''; } {/literal}
//edit page functions
{literal} function edit_all_toggle(modifier) { var checkboxes = document.getElementsByClassName('checkbox_'+modifier); var checkbox_checked = document.getElementById('checkbox_all_'+modifier).checked; if (checkboxes.length > 0) { for (var i = 0; i < checkboxes.length; ++i) { checkboxes[i].checked = checkbox_checked; } if (document.getElementById('btn_delete')) { document.getElementById('btn_delete').value = checkbox_checked ? '' : 'delete'; } } }
function edit_delete_action(modifier) { var checkboxes = document.getElementsByClassName('chk_delete'); if (document.getElementById('btn_delete') && checkboxes.length > 0) { var checkbox_checked = false; for (var i = 0; i < checkboxes.length; ++i) { if (checkboxes[i].checked) { checkbox_checked = true; } else { if (document.getElementById('checkbox_all'+(modifier !== undefined ? '_'+modifier : ''))) { document.getElementById('checkbox_all'+(modifier !== undefined ? '_'+modifier : '')).checked = false; } } } document.getElementById('btn_delete').value = checkbox_checked ? '' : 'delete'; } } {/literal}
//modal functions
{literal} function modal_open(modal_id, focus_id) { var modal = document.getElementById(modal_id); modal.style.opacity = '1'; modal.style.pointerEvents = 'auto'; if (focus_id !== undefined) { document.getElementById(focus_id).focus(); } }
function modal_close() { var modals = document.getElementsByClassName('modal-window'); if (modals.length > 0) { for (var m = 0; m < modals.length; ++m) { modals[m].style.opacity = '0'; modals[m].style.pointerEvents = 'none'; } } document.activeElement.blur(); } {/literal}
//misc functions
{literal} function swap_display(a_id, b_id, display_value) { display_value = display_value !== undefined ? display_value : 'inline-block'; a = document.getElementById(a_id); b = document.getElementById(b_id); if (window.getComputedStyle(a).display === 'none') { a.style.display = display_value; b.style.display = 'none'; } else { a.style.display = 'none'; b.style.display = display_value; } }
function hide_password_fields() { var password_fields = document.querySelectorAll("input[type='password']"); for (var p = 0, max = password_fields.length; p < max; p++) { password_fields[p].style.visibility = 'hidden'; password_fields[p].type = 'text'; } }
window.addEventListener('beforeunload', function(e){ hide_password_fields(); }); {/literal}
{*//session timer *} {$session_timer}
</script>
</head> <body>
{*//message container *} <div id='message_container'></div>
{*//domain selector *} {if $authenticated && $domain_selector_enabled}
<div id='domains_container'> <input type='hidden' id='domains_visible' value='0'> <div id='domains_block'> <div id='domains_header'> <input id='domains_hide' type='button' class='btn' style='float: right' value="{$text.theme_button_close}"> <a id='domains_title' href='{$domains_app_path}'>{$text.theme_title_domains} <span style='font-size: 80%;'>({$domain_count})</span></a> <br><br> <input type='text' id='domains_filter' class='formfld' style='margin-left: 0; min-width: 100%; width: 100%;' placeholder="{$text.theme_label_search}" onkeyup='domain_search(this.value)'> </div> <div id='domains_list'> {foreach $domains as $row} {if $row.domain_enabled} {*//alternate background colors of inactive domains *} {if $background_color == $domain_selector_background_color_1} {$background_color=$domain_selector_background_color_2} {else} {$background_color=$domain_selector_background_color_1} {/if} {*//set active domain color *} {if $domain_active_background_color != ''} {if $row.domain_uuid == $domain_uuid}{$background_color=$domain_active_background_color}{/if} {/if} {*//active domain text hover color *} {if $settings.theme.domain_active_text_color_hover != '' && $row.domain_uuid == $domain_uuid} <div id='{$row.domain_name}' class='domains_list_item_active' style='background-color: {$background_color}' onclick="document.location.href='{$domains_app_path}?domain_uuid={$row.domain_uuid}&domain_change=true';"> {elseif $settings.theme.domain_inactive_text_color_hover != '' && $row.domain_uuid != $domain_uuid} <div id='{$row.domain_name}' class='domains_list_item_inactive' style='background-color: {$background_color}' onclick="document.location.href='{$domains_app_path}?domain_uuid={$row.domain_uuid}&domain_change=true';"> {else} <div id='{$row.domain_name}' class='domains_list_item' style='background-color: {$background_color}' onclick="document.location.href='{$domains_app_path}?domain_uuid={$row.domain_uuid}&domain_change=true';"> {/if} {*//domain link *} <a href='{$domains_app_path}?domain_uuid={$row.domain_uuid}&domain_change=true' {if $row.domain_uuid == $domain_uuid}style='font-weight: bold;'{/if}>{$row.domain_name}</a> {*//domain description *} {if $row.domain_description != ''} {*//active domain description text color *} {if $settings.theme.domain_active_desc_text_color != '' && $row.domain_uuid == $domain_uuid} <span class='domain_active_list_item_description' title="{$row.domain_description}"> - {$row.domain_description}</span> {*//inactive domains description text color *} {elseif $settings.theme.domain_inactive_desc_text_color != '' && $row.domain_uuid != $domain_uuid} <span class='domain_inactive_list_item_description' title="{$row.domain_description}"> - {$row.domain_description}</span> {*//default domain description text color *} {else} <span class='domain_list_item_description' title="{$row.domain_description}"> - {$row.domain_description}</span> {/if} {/if} </div> {$ary_domain_names[]=$row.domain_name} {$ary_domain_descs[]=$row.domain_description|replace:'"':'\"'} {/if} {/foreach} </div>
<script> {literal} var domain_names = new Array("{/literal}{'","'|implode:$ary_domain_names}{literal}"); var domain_descs = new Array("{/literal}{'","'|implode:$ary_domain_descs}{literal}"); function domain_search(criteria) { for (var x = 0; x < domain_names.length; x++) { if (domain_names[x].toLowerCase().match(criteria.toLowerCase()) || domain_descs[x].toLowerCase().match(criteria.toLowerCase())) { document.getElementById(domain_names[x]).style.display = ''; } else { document.getElementById(domain_names[x]).style.display = 'none'; } } } {/literal} </script>
</div> </div>
{/if}
{*//qr code container for contacts *} <div id='qr_code_container' style='display: none;' onclick='$(this).fadeOut(400);'> <table cellpadding='0' cellspacing='0' border='0' width='100%' height='100%'><tr><td align='center' valign='middle'> <span id='qr_code' onclick="$('#qr_code_container').fadeOut(400);"></span> </td></tr></table> </div>
{*//login page *} {if $login_page} <div id='default_login'> <a href='{$project_path}/'><img id='login_logo' style='width: {$login_logo_width}; height: {$login_logo_height};' src='{$login_logo_source}'></a><br /> {$document_body} </div> <div id='footer_login'> <span class='footer'>{$settings.theme.footer}</span> </div>
{*//other pages *} {else} {if $settings.theme.menu_style == 'side' || $settings.theme.menu_style == 'inline' || $settings.theme.menu_style == 'static'} {$container_open} {if $settings.theme.menu_style == 'inline'}{$logo}{/if} {$menu} {if $settings.theme.menu_style == 'inline' || $settings.theme.menu_style == 'static'}<br />{/if} {if $settings.theme.menu_style == 'side'}<input type='hidden' id='menu_side_state_current' value='{if $menu_side_state == 'hidden'}expanded{else}{$menu_side_state}{/if}'>{/if} {else} {*//default: fixed *} {$menu} {$container_open} {/if} <div id='main_content'> {$document_body} </div> <div id='footer'> <span class='footer'>{$settings.theme.footer}</span> </div> {$container_close} {/if}
</body> </html>
|