Theme: Side Menu default state controls.

This commit is contained in:
Nate 2020-05-20 21:24:19 -06:00
parent 113b9d15d1
commit f5bfc2199a
14 changed files with 498 additions and 82 deletions

View File

@ -609,6 +609,12 @@
echo " <option value='never' ".($default_setting_value == "never" ? "selected='selected'" : null).">".$text['option-button_icons_never']."</option>\n";
echo " </select>\n";
}
elseif ($category == "theme" && $subcategory == "menu_side_state" && $name == "text" ) {
echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
echo " <option value='contracted'>".$text['option-contracted']."</option>\n";
echo " <option value='expanded' ".($default_setting_value == "expanded" ? "selected='selected'" : null).">".$text['option-expanded']."</option>\n";
echo " </select>\n";
}
elseif ($category == "voicemail" && $subcategory == "voicemail_file" && $name == "text" ) {
echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
echo " <option value='listen' ".(($default_setting_value == "listen") ? "selected='selected'" : null).">".$text['option-voicemail_file_listen']."</option>\n";

View File

@ -337,6 +337,9 @@
else if ($category == 'theme' && $subcategory == 'button_icons' && $name == 'text') {
echo " ".$text['option-button_icons_'.$row['default_setting_value']]."\n";
}
else if ($category == 'theme' && $subcategory == 'menu_side_state' && $name == 'text') {
echo " ".$text['option-'.$row['default_setting_value']]."\n";
}
else if ($category == "theme" && substr_count($subcategory, "_color") > 0 && ($name == "text" || $name == 'array')) {
echo " ".(img_spacer('15px', '15px', 'background: '.escape($row['default_setting_value']).'; margin-right: 4px; vertical-align: middle; border: 1px solid '.(color_adjust($row['default_setting_value'], -0.18)).'; padding: -1px;'));
echo "<span style=\"font-family: 'Courier New'; line-height: 6pt;\">".escape($row['default_setting_value'])."</span>\n";

View File

@ -666,6 +666,12 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
echo " <option value='never' ".($row['domain_setting_value'] == "never" ? "selected='selected'" : null).">".$text['option-button_icons_never']."</option>\n";
echo " </select>\n";
}
elseif ($category == "theme" && $subcategory == "menu_side_state" && $name == "text" ) {
echo " <select class='formfld' id='domain_setting_value' name='domain_setting_value'>\n";
echo " <option value='contracted'>".$text['option-contracted']."</option>\n";
echo " <option value='expanded' ".($row['domain_setting_value'] == "expanded" ? "selected='selected'" : null).">".$text['option-expanded']."</option>\n";
echo " </select>\n";
}
elseif ($category == "voicemail" && $subcategory == "voicemail_file" && $name == "text" ) {
echo " <select class='formfld' id='domain_setting_value' name='domain_setting_value'>\n";
echo " <option value='listen' ".(($row['domain_setting_value'] == "listen") ? "selected='selected'" : null).">".$text['option-voicemail_file_listen']."</option>\n";

View File

@ -294,6 +294,9 @@
else if ($category == 'theme' && $subcategory == 'button_icons' && $name == 'text') {
echo " ".$text['option-button_icons_'.$row['domain_setting_value']]."\n";
}
else if ($category == 'theme' && $subcategory == 'menu_side_state' && $name == 'text') {
echo " ".$text['option-'.$row['domain_setting_value']]."\n";
}
else if ($category == "theme" && substr_count($subcategory, "_color") > 0 && ($name == "text" || $name == 'array')) {
echo " ".(img_spacer('15px', '15px', 'background: '.escape($row['domain_setting_value']).'; margin-right: 4px; vertical-align: middle; border: 1px solid '.(color_adjust($row['domain_setting_value'], -0.18)).'; padding: -1px;'));
echo "<span style=\"font-family: 'Courier New'; line-height: 6pt;\">".escape($row['domain_setting_value'])."</span>\n";

View File

@ -628,6 +628,12 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
echo " <option value='right' ".(($user_setting_value == "right") ? "selected='selected'" : null).">".$text['label-right']."</option>\n";
echo " </select>\n";
}
elseif ($user_setting_category == "theme" && $user_setting_subcategory == "menu_side_state" && $user_setting_name == "text" ) {
echo " <select class='formfld' id='user_setting_value' name='user_setting_value'>\n";
echo " <option value='contracted'>".$text['option-contracted']."</option>\n";
echo " <option value='expanded' ".($user_setting_value == "expanded" ? "selected='selected'" : null).">".$text['option-expanded']."</option>\n";
echo " </select>\n";
}
else {
echo " <input class='formfld' type='text' id='user_setting_value' name='user_setting_value' maxlength='255' value=\"".escape($user_setting_value)."\">\n";
}

View File

@ -0,0 +1,121 @@
<?php
/*
FusionPBX
Version: MPL 1.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2020
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
//includes
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
//add multi-lingual support
$language = new text;
$text = $language->get();
//get http post variables and set them to php variables
if (is_array($_GET) && @sizeof($_GET) != 0) {
$user_setting_category = strtolower($_GET['category']);
$user_setting_subcategory = strtolower($_GET['subcategory']);
$user_setting_name = strtolower($_GET['name']);
$submitted_value = $_GET['value'];
//$submitted_order = is_numeric($_GET['order']) ? $_GET['order'] : null;
$submitted_enabled = strtolower($_GET['enabled']);
}
//validate allowed user setting
switch ($user_setting_category) {
case 'theme':
switch ($user_setting_subcategory) {
case 'menu_side_state':
if ($submitted_value == 'expanded' || $submitted_value == 'contracted') {
$user_setting_value = $submitted_value;
$user_setting_enabled = 'true';
}
break 2;
default:
//setting not allowed
echo 'false';
exit;
}
break;
default:
//setting not allowed
echo 'false';
exit;
}
//add/update user setting
if (isset($user_setting_value) && isset($user_setting_enabled)) {
//get existing user setting uuid, if exists
$sql = "select user_setting_uuid from v_user_settings ";
$sql .= "where user_uuid = :user_uuid ";
$sql .= "and domain_uuid = :domain_uuid ";
$sql .= "and user_setting_category = :user_setting_category ";
$sql .= "and user_setting_subcategory = :user_setting_subcategory ";
$sql .= "and user_setting_name = :user_setting_name ";
$parameters['user_uuid'] = $_SESSION['user_uuid'];
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$parameters['user_setting_category'] = $user_setting_category;
$parameters['user_setting_subcategory'] = $user_setting_subcategory;
$parameters['user_setting_name'] = $user_setting_name;
$database = new database;
$user_setting_uuid = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
//create data array
$array['user_settings'][0]['user_setting_uuid'] = is_uuid($user_setting_uuid) ? $user_setting_uuid : uuid();
$array['user_settings'][0]['user_uuid'] = $_SESSION['user_uuid'];
$array['user_settings'][0]['domain_uuid'] = $_SESSION['domain_uuid'];
$array['user_settings'][0]['user_setting_category'] = $user_setting_category;
$array['user_settings'][0]['user_setting_subcategory'] = $user_setting_subcategory;
$array['user_settings'][0]['user_setting_name'] = $user_setting_name;
$array['user_settings'][0]['user_setting_value'] = $user_setting_value;
//$array['user_settings'][0]['user_setting_order'] = $user_setting_order;
$array['user_settings'][0]['user_setting_enabled'] = $user_setting_enabled;
//grant temporary permissions
$p = new permissions;
$p->add('user_setting_add', 'temp');
$p->add('user_setting_edit', 'temp');
//execute
$database = new database;
$database->app_name = 'user_settings';
$database->app_uuid = '3a3337f7-78d1-23e3-0cfd-f14499b8ed97';
$database->save($array);
unset($array);
//revoke temporary permissions
$p->delete('user_setting_add', 'temp');
$p->delete('user_setting_edit', 'temp');
//update session variable
$_SESSION[$user_setting_category][$user_setting_subcategory][$user_setting_name] = $user_setting_value;
//set response
echo 'true';
}
?>

View File

@ -280,14 +280,17 @@
echo " ".str_repeat('*', strlen(escape($row['user_setting_value'])));
}
else if ($category == 'theme' && $subcategory == 'button_icons' && $name == 'text') {
echo " ".$text['option-button_icons_'.$row['domain_setting_value']]."\n";
echo " ".$text['option-button_icons_'.$row['user_setting_value']]."\n";
}
else if ($category == 'theme' && $subcategory == 'menu_side_state' && $name == 'text') {
echo " ".$text['option-'.$row['user_setting_value']]."\n";
}
else if ($category == "theme" && substr_count($subcategory, "_color") > 0 && ($name == "text" || $name == 'array')) {
echo " ".(img_spacer('15px', '15px', 'background: '.escape($row['user_setting_value']).'; margin-right: 4px; vertical-align: middle; border: 1px solid '.(color_adjust($row['user_setting_value'], -0.18)).'; padding: -1px;'));
echo "<span style=\"font-family: 'Courier New'; line-height: 6pt;\">".escape($row['user_setting_value'])."</span>\n";
}
else if ($category == 'recordings' && $subcategory == 'storage_type' && $name == 'text') {
echo " ".$text['label-'.$row['domain_setting_value']]."\n";
echo " ".$text['label-'.$row['user_setting_value']]."\n";
}
else {
echo " ".escape($row['user_setting_value'])."\n";

View File

@ -4403,4 +4403,50 @@ $text['title-login']['sv-se'] = "Logga In";
$text['title-login']['uk-ua'] = "Логін";
$text['title-login']['tr-tr'] = "Giriş Yap";
?>
$text['option-expanded']['en-us'] = "Expanded";
$text['option-expanded']['en-gb'] = "Expanded";
$text['option-expanded']['ar-eg'] = "Expanded";
$text['option-expanded']['de-at'] = "Expanded";
$text['option-expanded']['de-ch'] = "Expanded";
$text['option-expanded']['de-de'] = "Expanded";
$text['option-expanded']['el-gr'] = "Expanded";
$text['option-expanded']['es-cl'] = "Expanded";
$text['option-expanded']['es-mx'] = "Expanded";
$text['option-expanded']['fr-ca'] = "Expanded";
$text['option-expanded']['fr-fr'] = "Expanded";
$text['option-expanded']['he-il'] = "Expanded";
$text['option-expanded']['it-it'] = "Expanded";
$text['option-expanded']['nl-nl'] = "Expanded";
$text['option-expanded']['pl-pl'] = "Expanded";
$text['option-expanded']['pt-br'] = "Expanded";
$text['option-expanded']['pt-pt'] = "Expanded";
$text['option-expanded']['ro-ro'] = "Expanded";
$text['option-expanded']['ru-ru'] = "Expanded";
$text['option-expanded']['sv-se'] = "Expanded";
$text['option-expanded']['uk-ua'] = "Expanded";
$text['option-expanded']['tr-tr'] = "Expanded";
$text['option-contracted']['en-us'] = "Contracted";
$text['option-contracted']['en-gb'] = "Contracted";
$text['option-contracted']['ar-eg'] = "Contracted";
$text['option-contracted']['de-at'] = "Contracted";
$text['option-contracted']['de-ch'] = "Contracted";
$text['option-contracted']['de-de'] = "Contracted";
$text['option-contracted']['el-gr'] = "Contracted";
$text['option-contracted']['es-cl'] = "Contracted";
$text['option-contracted']['es-mx'] = "Contracted";
$text['option-contracted']['fr-ca'] = "Contracted";
$text['option-contracted']['fr-fr'] = "Contracted";
$text['option-contracted']['he-il'] = "Contracted";
$text['option-contracted']['it-it'] = "Contracted";
$text['option-contracted']['nl-nl'] = "Contracted";
$text['option-contracted']['pl-pl'] = "Contracted";
$text['option-contracted']['pt-br'] = "Contracted";
$text['option-contracted']['pt-pt'] = "Contracted";
$text['option-contracted']['ro-ro'] = "Contracted";
$text['option-contracted']['ru-ru'] = "Contracted";
$text['option-contracted']['sv-se'] = "Contracted";
$text['option-contracted']['uk-ua'] = "Contracted";
$text['option-contracted']['tr-tr'] = "Contracted";
?>

View File

@ -951,7 +951,7 @@ if (!class_exists('menu')) {
$menu_brand_text = ($_SESSION['theme']['menu_brand_text']['text'] != '') ? escape($_SESSION['theme']['menu_brand_text']['text']) : "FusionPBX";
switch ($_SESSION['theme']['menu_brand_type']['text']) {
case 'text':
$html .= " <a class='navbar-brand-text' href='".PROJECT_PATH."/'>".$menu_brand_text."</a>\n";
$html .= " <a class='navbar-brand-text' href='".PROJECT_PATH."/'>".$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";
@ -1079,17 +1079,25 @@ if (!class_exists('menu')) {
//menu brand image and/or text
if ($_SESSION['theme']['menu_brand_type']['text'] == 'none') {
$html = " <div style='height: 75px;'>\n";
$html .= "<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>";
$html .= "<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>";
$html .= "</div>\n";
$html = " <div id='menu_side_control_container'>\n";
$html .= " <div class='menu_side_contract' style='float: right; ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? 'display: none' : null)."'>\n";
$html .= " <a class='menu_side_item_main' id='menu_side_state_set_expanded' onclick=\"menu_side_state_set('expanded');\" style='padding: 10px 15px !important; ".($_SESSION['theme']['menu_side_state']['text'] == 'expanded' ? 'display: none' : null)."' title=\"".$this->text['theme-label-pin_menu']."\"><i class='fas fa-toggle-off fa-fw'></i></a>\n";
$html .= " <a class='menu_side_item_main' id='menu_side_state_set_contracted' onclick=\"menu_side_state_set('contracted'); menu_side_contract();\" style='padding: 10px 15px !important; ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? 'display: none' : null)."' title=\"".$this->text['theme-label-unpin_menu']."\"><i class='fas fa-toggle-on fa-fw'></i></a>\n";
$html .= " </div>\n";
$html .= " <a class='menu_side_item_main menu_side_contract' onclick='menu_side_contract();' style='max-width: calc(100% - 50px); ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? "display: none;" : null)."' title=\"".$this->text['theme-label-contract_menu']."\"><i class='fas fa-chevron-left fa-fw' style='z-index: 99800; padding-left: 1px;'></i></a>";
$html .= " <a class='menu_side_item_main menu_side_expand' ".($_SESSION['theme']['menu_side_state']['text'] == 'expanded' ? "style='display: none';" : null)." onclick='menu_side_expand();' title=\"".$this->text['theme-label-expand_menu']."\"><i class='fas fa-bars fa-fw' style='z-index: 99800; padding-left: 1px;'></i></a>";
$html .= " </div>\n";
}
else {
$html = " <div id='menu_side_brand_container'>\n";
//menu toggle buttons
if ($_SESSION['theme']['menu_brand_type']['text'] != 'none') {
$html .= " <div style='float: right; margin-right: -20px; margin-top: -20px;'>\n";
$html .= " <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";
$html .= " <a class='menu_side_item_main menu_side_contract' onclick='menu_side_contract();' style='padding: 8px 15px !important; ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? "display: none;" : null)."'><i class='fas fa-chevron-left fa-fw'></i></a>\n";
$html .= " <div class='menu_side_contract' style='".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? 'display: none' : null)."'>\n";
$html .= " <a class='menu_side_item_main' id='menu_side_state_set_expanded' onclick=\"menu_side_state_set('expanded');\" style='padding: 8px 15px !important; ".($_SESSION['theme']['menu_side_state']['text'] == 'expanded' ? 'display: none' : null)."' title=\"".$this->text['theme-label-pin_menu']."\"><i class='fas fa-toggle-off fa-fw'></i></a>\n";
$html .= " <a class='menu_side_item_main' id='menu_side_state_set_contracted' onclick=\"menu_side_state_set('contracted'); menu_side_contract();\" style='padding: 8px 15px !important; ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? 'display: none' : null)."' title=\"".$this->text['theme-label-unpin_menu']."\"><i class='fas fa-toggle-on fa-fw'></i></a>\n";
$html .= " </div>\n";
$html .= " </div>\n";
}
//show the menu brand image and/or text
@ -1098,21 +1106,22 @@ if (!class_exists('menu')) {
$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'] == '') {
$html .= " <a href='".PROJECT_PATH."/' style='text-decoration: none;'>";
$html .= "<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)."\">";
$html .= "<img id='menu_brand_image_expanded' style='display: none;' src='".escape($menu_brand_image_expanded)."' title=\"".escape($menu_brand_text)."\">";
$html .= "<img id='menu_brand_image_contracted' style='".($_SESSION['theme']['menu_side_state']['text'] == 'expanded' ? "display: none;" : null)." width: 20px; margin-left: -2px; margin-top: -5px;' src='".escape($menu_brand_image_contracted)."' title=\"".escape($menu_brand_text)."\">";
$html .= "<img id='menu_brand_image_expanded' ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? "style='display: none;'" : null)." src='".escape($menu_brand_image_expanded)."' title=\"".escape($menu_brand_text)."\">";
$html .= "</a>\n";
}
else if ($_SESSION['theme']['menu_brand_type']['text'] == 'image_text') {
$html .= " <a href='".PROJECT_PATH."/' style='text-decoration: none;'>";
$html .= "<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)."\">";
$html .= "<span class='menu_brand_text' style='display: none;'>".$menu_brand_text."</span>";
$html .= "<img id='menu_brand_image_contracted' style='".($_SESSION['theme']['menu_side_state']['text'] == 'expanded' ? "display: none;" : null)." width: 20px; margin-left: -2px; margin-top: -5px;' src='".escape($menu_brand_image_contracted)."' title=\"".escape($menu_brand_text)."\">";
$html .= "<span class='menu_brand_text' ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? "style='display: none;'" : null).">".$menu_brand_text."</span>";
$html .= "</a>\n";
}
else if ($_SESSION['theme']['menu_brand_type']['text'] == 'text') {
$html .= " <a class='menu_brand_text' style='display: none;' href='".PROJECT_PATH."/'>".$menu_brand_text."</a>\n";
$html .= " <a class='menu_brand_text' ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? "style='display: none;'" : null)." href='".PROJECT_PATH."/'>".$menu_brand_text."</a>\n";
}
$html .= " </div>\n";
}
//main menu items
if (is_array($menu_array) && sizeof($menu_array) != 0) {
foreach ($menu_array as $menu_index_main => $menu_item_main) {
@ -1121,14 +1130,14 @@ if (!class_exists('menu')) {
if ($menu_item_main['menu_item_icon'] != '') {
$html .= "<i class='fas ".$menu_item_main['menu_item_icon']." fa-fw' style='z-index: 99800; margin-right: 8px;'></i>";
}
$html .= "<span class='menu_side_item_title' style='display: none;'>".$menu_item_main['menu_language_title']."</span>";
$html .= "<span class='menu_side_item_title' ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? "style='display: none;'" : null).">".$menu_item_main['menu_language_title']."</span>";
$html .= "</a>\n";
//sub menu items
if (is_array($menu_item_main['menu_items']) && sizeof($menu_item_main['menu_items']) != 0) {
$html .= " <div id='sub_".$menu_item_main['menu_item_uuid']."' class='menu_side_sub' style='display: none;'>\n";
foreach ($menu_item_main['menu_items'] as $menu_index_sub => $menu_item_sub) {
$html .= " <a class='menu_side_item_sub' ".($menu_item_sub['menu_item_category'] == 'external' ? "target='_blank'" : null)." href='".$menu_item_sub['menu_item_link']."'>";
$html .= "<span class='menu_side_item_title' style='display: none;'>".$menu_item_sub['menu_language_title']."</span>";
$html .= "<span class='menu_side_item_title' ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? "style='display: none;'" : null).">".$menu_item_sub['menu_language_title']."</span>";
$html .= "</a>\n";
}
$html .= " </div>\n";
@ -1137,7 +1146,13 @@ if (!class_exists('menu')) {
$html .= " <div style='height: 100px;'></div>\n";
}
$html .= "</div>\n";
$html .= "<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";
if ($_SESSION['theme']['menu_side_state']['text'] == 'expanded') {
$content_container_width = is_numeric($_SESSION['theme']['menu_side_width_expanded']['text']) ? $_SESSION['theme']['menu_side_width_expanded']['text'] : '225';
}
else {
$content_container_width = is_numeric($_SESSION['theme']['menu_side_width_contracted']['text']) ? $_SESSION['theme']['menu_side_width_contracted']['text'] : '60';
}
$html .= "<div id='content_container' style='padding: 0; width: calc(100% - ".$content_container_width."px); float: right; padding-top: 0px; text-align: center;' ".($_SESSION['theme']['menu_side_state']['text'] != 'expanded' ? "onclick=\"if (document.getElementById('menu_side_state_current').value != 'expanded') { menu_side_contract(); }\"" : null).">\n";
$html .= " <div id='content_header'>\n";
//header: left
$html .= "<div class='float-left'>\n";

View File

@ -187,6 +187,7 @@
$menu->text = $text;
$menu_html = $menu->menu_vertical($_SESSION['menu']['array']);
unset($menu);
$view->assign('menu_side_state', (isset($_SESSION['theme']['menu_side_state']['text']) && $_SESSION['theme']['menu_side_state']['text'] != '' ? $_SESSION['theme']['menu_side_state']['text'] : 'contracted'));
break;
case 'inline':
$container_open = "<div class='container-fluid' style='padding: 0;' align='".($_SESSION['theme']['logo_align']['text'] != '' ? $_SESSION['theme']['logo_align']['text'] : 'left')."'>\n";

View File

@ -1703,6 +1703,14 @@
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the expanded brand image path for the Side menu.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "66d37950-15db-4dd0-888a-17ded7b5c0dc";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "theme";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "menu_side_state";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "contracted";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the default state of the Side Menu: expanded (pinned) or contracted (unpinned).";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "97a620e1-d7b2-4550-8648-726c3029143d";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "theme";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "action_bar_border_top";

View File

@ -231,4 +231,142 @@ $text['theme-label-domain']['sv-se'] = "Domän";
$text['theme-label-domain']['uk-ua'] = "Домен";
$text['theme-label-domain']['tr-tr'] = "Alan Adı";
?>
$text['theme-label-expand_menu']['en-us'] = "Expand Menu";
$text['theme-label-expand_menu']['en-gb'] = "Expand Menu";
$text['theme-label-expand_menu']['ar-eg'] = "Expand Menu";
$text['theme-label-expand_menu']['de-at'] = "Expand Menu";
$text['theme-label-expand_menu']['de-ch'] = "Expand Menu";
$text['theme-label-expand_menu']['de-de'] = "Expand Menu";
$text['theme-label-expand_menu']['el-gr'] = "Expand Menu";
$text['theme-label-expand_menu']['es-cl'] = "Expand Menu";
$text['theme-label-expand_menu']['es-mx'] = "Expand Menu";
$text['theme-label-expand_menu']['fr-ca'] = "Expand Menu";
$text['theme-label-expand_menu']['fr-fr'] = "Expand Menu";
$text['theme-label-expand_menu']['he-il'] = "Expand Menu";
$text['theme-label-expand_menu']['it-it'] = "Expand Menu";
$text['theme-label-expand_menu']['nl-nl'] = "Expand Menu";
$text['theme-label-expand_menu']['pl-pl'] = "Expand Menu";
$text['theme-label-expand_menu']['pt-br'] = "Expand Menu";
$text['theme-label-expand_menu']['pt-pt'] = "Expand Menu";
$text['theme-label-expand_menu']['ro-ro'] = "Expand Menu";
$text['theme-label-expand_menu']['ru-ru'] = "Expand Menu";
$text['theme-label-expand_menu']['sv-se'] = "Expand Menu";
$text['theme-label-expand_menu']['uk-ua'] = "Expand Menu";
$text['theme-label-expand_menu']['tr-tr'] = "Expand Menu";
$text['theme-label-contract_menu']['en-us'] = "Contract Menu";
$text['theme-label-contract_menu']['en-gb'] = "Contract Menu";
$text['theme-label-contract_menu']['ar-eg'] = "Contract Menu";
$text['theme-label-contract_menu']['de-at'] = "Contract Menu";
$text['theme-label-contract_menu']['de-ch'] = "Contract Menu";
$text['theme-label-contract_menu']['de-de'] = "Contract Menu";
$text['theme-label-contract_menu']['el-gr'] = "Contract Menu";
$text['theme-label-contract_menu']['es-cl'] = "Contract Menu";
$text['theme-label-contract_menu']['es-mx'] = "Contract Menu";
$text['theme-label-contract_menu']['fr-ca'] = "Contract Menu";
$text['theme-label-contract_menu']['fr-fr'] = "Contract Menu";
$text['theme-label-contract_menu']['he-il'] = "Contract Menu";
$text['theme-label-contract_menu']['it-it'] = "Contract Menu";
$text['theme-label-contract_menu']['nl-nl'] = "Contract Menu";
$text['theme-label-contract_menu']['pl-pl'] = "Contract Menu";
$text['theme-label-contract_menu']['pt-br'] = "Contract Menu";
$text['theme-label-contract_menu']['pt-pt'] = "Contract Menu";
$text['theme-label-contract_menu']['ro-ro'] = "Contract Menu";
$text['theme-label-contract_menu']['ru-ru'] = "Contract Menu";
$text['theme-label-contract_menu']['sv-se'] = "Contract Menu";
$text['theme-label-contract_menu']['uk-ua'] = "Contract Menu";
$text['theme-label-contract_menu']['tr-tr'] = "Contract Menu";
$text['theme-label-pin_menu']['en-us'] = "Pin Menu";
$text['theme-label-pin_menu']['en-gb'] = "Pin Menu";
$text['theme-label-pin_menu']['ar-eg'] = "Pin Menu";
$text['theme-label-pin_menu']['de-at'] = "Pin Menu";
$text['theme-label-pin_menu']['de-ch'] = "Pin Menu";
$text['theme-label-pin_menu']['de-de'] = "Pin Menu";
$text['theme-label-pin_menu']['el-gr'] = "Pin Menu";
$text['theme-label-pin_menu']['es-cl'] = "Pin Menu";
$text['theme-label-pin_menu']['es-mx'] = "Pin Menu";
$text['theme-label-pin_menu']['fr-ca'] = "Pin Menu";
$text['theme-label-pin_menu']['fr-fr'] = "Pin Menu";
$text['theme-label-pin_menu']['he-il'] = "Pin Menu";
$text['theme-label-pin_menu']['it-it'] = "Pin Menu";
$text['theme-label-pin_menu']['nl-nl'] = "Pin Menu";
$text['theme-label-pin_menu']['pl-pl'] = "Pin Menu";
$text['theme-label-pin_menu']['pt-br'] = "Pin Menu";
$text['theme-label-pin_menu']['pt-pt'] = "Pin Menu";
$text['theme-label-pin_menu']['ro-ro'] = "Pin Menu";
$text['theme-label-pin_menu']['ru-ru'] = "Pin Menu";
$text['theme-label-pin_menu']['sv-se'] = "Pin Menu";
$text['theme-label-pin_menu']['uk-ua'] = "Pin Menu";
$text['theme-label-pin_menu']['tr-tr'] = "Pin Menu";
$text['theme-label-unpin_menu']['en-us'] = "Unpin Menu";
$text['theme-label-unpin_menu']['en-gb'] = "Unpin Menu";
$text['theme-label-unpin_menu']['ar-eg'] = "Unpin Menu";
$text['theme-label-unpin_menu']['de-at'] = "Unpin Menu";
$text['theme-label-unpin_menu']['de-ch'] = "Unpin Menu";
$text['theme-label-unpin_menu']['de-de'] = "Unpin Menu";
$text['theme-label-unpin_menu']['el-gr'] = "Unpin Menu";
$text['theme-label-unpin_menu']['es-cl'] = "Unpin Menu";
$text['theme-label-unpin_menu']['es-mx'] = "Unpin Menu";
$text['theme-label-unpin_menu']['fr-ca'] = "Unpin Menu";
$text['theme-label-unpin_menu']['fr-fr'] = "Unpin Menu";
$text['theme-label-unpin_menu']['he-il'] = "Unpin Menu";
$text['theme-label-unpin_menu']['it-it'] = "Unpin Menu";
$text['theme-label-unpin_menu']['nl-nl'] = "Unpin Menu";
$text['theme-label-unpin_menu']['pl-pl'] = "Unpin Menu";
$text['theme-label-unpin_menu']['pt-br'] = "Unpin Menu";
$text['theme-label-unpin_menu']['pt-pt'] = "Unpin Menu";
$text['theme-label-unpin_menu']['ro-ro'] = "Unpin Menu";
$text['theme-label-unpin_menu']['ru-ru'] = "Unpin Menu";
$text['theme-label-unpin_menu']['sv-se'] = "Unpin Menu";
$text['theme-label-unpin_menu']['uk-ua'] = "Unpin Menu";
$text['theme-label-unpin_menu']['tr-tr'] = "Unpin Menu";
$text['theme-message-menu_expanded']['en-us'] = "Menu Pinned";
$text['theme-message-menu_expanded']['en-gb'] = "Menu Pinned";
$text['theme-message-menu_expanded']['ar-eg'] = "Menu Pinned";
$text['theme-message-menu_expanded']['de-at'] = "Menu Pinned";
$text['theme-message-menu_expanded']['de-ch'] = "Menu Pinned";
$text['theme-message-menu_expanded']['de-de'] = "Menu Pinned";
$text['theme-message-menu_expanded']['el-gr'] = "Menu Pinned";
$text['theme-message-menu_expanded']['es-cl'] = "Menu Pinned";
$text['theme-message-menu_expanded']['es-mx'] = "Menu Pinned";
$text['theme-message-menu_expanded']['fr-ca'] = "Menu Pinned";
$text['theme-message-menu_expanded']['fr-fr'] = "Menu Pinned";
$text['theme-message-menu_expanded']['he-il'] = "Menu Pinned";
$text['theme-message-menu_expanded']['it-it'] = "Menu Pinned";
$text['theme-message-menu_expanded']['nl-nl'] = "Menu Pinned";
$text['theme-message-menu_expanded']['pl-pl'] = "Menu Pinned";
$text['theme-message-menu_expanded']['pt-br'] = "Menu Pinned";
$text['theme-message-menu_expanded']['pt-pt'] = "Menu Pinned";
$text['theme-message-menu_expanded']['ro-ro'] = "Menu Pinned";
$text['theme-message-menu_expanded']['ru-ru'] = "Menu Pinned";
$text['theme-message-menu_expanded']['sv-se'] = "Menu Pinned";
$text['theme-message-menu_expanded']['uk-ua'] = "Menu Pinned";
$text['theme-message-menu_expanded']['tr-tr'] = "Menu Pinned";
$text['theme-message-menu_contracted']['en-us'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['en-gb'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['ar-eg'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['de-at'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['de-ch'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['de-de'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['el-gr'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['es-cl'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['es-mx'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['fr-ca'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['fr-fr'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['he-il'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['it-it'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['nl-nl'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['pl-pl'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['pt-br'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['pt-pt'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['ro-ro'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['ru-ru'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['sv-se'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['uk-ua'] = "Menu Unpinned";
$text['theme-message-menu_contracted']['tr-tr'] = "Menu Unpinned";
?>

View File

@ -457,7 +457,14 @@ header('Expires: '.gmdate('D, d M Y H:i:s',time()+3600).' GMT');
position: fixed;
top: 0;
left: 0;
width: <?php echo is_numeric($_SESSION['theme']['menu_side_width_contracted']['text']) ? $_SESSION['theme']['menu_side_width_contracted']['text'] : '60'; ?>px;
<?php
if ($_SESSION['theme']['menu_side_state']['text'] == 'expanded') {
echo "width: ".(is_numeric($_SESSION['theme']['menu_side_width_expanded']['text']) ? $_SESSION['theme']['menu_side_width_expanded']['text'] : '225')."px;\n";
}
else {
echo "width: ".(is_numeric($_SESSION['theme']['menu_side_width_contracted']['text']) ? $_SESSION['theme']['menu_side_width_contracted']['text'] : '60')."px;\n";
}
?>
height: 100%;
overflow: auto;
<?php if ($_SESSION['theme']['menu_main_background_image']['text'] != '') { ?>
@ -538,9 +545,37 @@ header('Expires: '.gmdate('D, d M Y H:i:s',time()+3600).' GMT');
text-decoration: none;
}
/* menu side control container */
div#menu_side_control_container {
position: -webkit-sticky;
position: sticky;
z-index: 99901;
top: 0;
padding: 0;
min-height: 75px;
text-align: left;
<?php if ($_SESSION['theme']['menu_main_background_image']['text'] != '') { ?>
background-image: url("<?php echo $_SESSION['theme']['menu_main_background_image']['text']; ?>");
background-position: 0px 0px;
background-repeat: repeat-y;
<?php } else {?>
background: <?php echo ($_SESSION['theme']['menu_main_background_color']['text'] != '') ? $_SESSION['theme']['menu_main_background_color']['text'] : 'rgba(0,0,0,0.90)'; ?>;
<?php } ?>
<?php
echo ($_SESSION['theme']['menu_main_border_color']['text'] == '' && $_SESSION['theme']['menu_main_border_size']['text'] == '') ? "border: 0;\n" : null;
echo ($_SESSION['theme']['menu_main_border_color']['text'] != '') ? 'border-color: '.$_SESSION['theme']['menu_main_border_color']['text'].";\n" : null;
echo ($_SESSION['theme']['menu_main_border_size']['text'] != '') ? 'border-width: '.$_SESSION['theme']['menu_main_border_size']['text'].";\n" : null;
?>
-moz-border-radius: <?php echo ($_SESSION['theme']['menu_main_border_radius']['text'] != '') ? $_SESSION['theme']['menu_main_border_radius']['text'] : '0'; ?>;
-webkit-border-radius: <?php echo ($_SESSION['theme']['menu_main_border_radius']['text'] != '') ? $_SESSION['theme']['menu_main_border_radius']['text'] : '0'; ?>;
-khtml-border-radius: <?php echo ($_SESSION['theme']['menu_main_border_radius']['text'] != '') ? $_SESSION['theme']['menu_main_border_radius']['text'] : '0'; ?>;
border-radius: <?php echo ($_SESSION['theme']['menu_main_border_radius']['text'] != '') ? $_SESSION['theme']['menu_main_border_radius']['text'] : '0'; ?>;
}
div#menu_side_container > a.menu_side_item_main,
div#menu_side_container > div > a.menu_side_item_main,
div#menu_side_container > div#menu_side_brand_container > div > a.menu_side_item_main {
div#menu_side_container > div#menu_side_brand_container a.menu_side_item_main,
div#menu_side_container > div#menu_side_control_container a.menu_side_item_main {
display: block;
width: 100%;
padding: 10px 20px;
@ -552,14 +587,17 @@ header('Expires: '.gmdate('D, d M Y H:i:s',time()+3600).' GMT');
}
div#menu_side_container > a.menu_side_item_main:hover,
div#menu_side_container a.menu_side_item_main:focus,
div#menu_side_container a.menu_side_item_main:active,
div#menu_side_container > a.menu_side_item_main:focus,
div#menu_side_container > a.menu_side_item_main:active,
div#menu_side_container > div > a.menu_side_item_main:hover,
div#menu_side_container > div > a.menu_side_item_main:focus,
div#menu_side_container > div > a.menu_side_item_main:active,
div#menu_side_container > div#menu_side_brand_container > div > a.menu_side_item_main:hover,
div#menu_side_container > div#menu_side_brand_container > div > a.menu_side_item_main:focus,
div#menu_side_container > div#menu_side_brand_container > div > a.menu_side_item_main:active {
div#menu_side_container > div#menu_side_control_container > div a.menu_side_item_main:hover,
div#menu_side_container > div#menu_side_control_container > div a.menu_side_item_main:focus,
div#menu_side_container > div#menu_side_control_container > div a.menu_side_item_main:active,
div#menu_side_container > div#menu_side_brand_container > div a.menu_side_item_main:hover,
div#menu_side_container > div#menu_side_brand_container > div a.menu_side_item_main:focus,
div#menu_side_container > div#menu_side_brand_container > div a.menu_side_item_main:active {
color: <?php echo ($_SESSION['theme']['menu_main_text_color_hover']['text'] != '') ? $_SESSION['theme']['menu_main_text_color_hover']['text'] : '#fd9c03'; ?>;
background: <?php echo ($_SESSION['theme']['menu_main_background_color_hover']['text'] != '') ? $_SESSION['theme']['menu_main_background_color_hover']['text'] : 'rgba(0,0,0,1.0)'; ?>;
text-decoration: none;

View File

@ -82,76 +82,97 @@
{if $settings.theme.menu_style == 'side'}
//side menu visibility toggle
var menu_side_state_current = '{$menu_side_state}';
{literal}
var menu_side_state = 'contracted';
function menu_side_contract() {
$('.menu_side_sub').slideUp(180);
$('.menu_side_item_title').hide();
{/literal}
{if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''}
if (menu_side_state_current == 'expanded') {
$('.menu_side_sub').slideUp(180);
$('.menu_side_item_title').hide();
{/literal}
{if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''}
{literal}
$('#menu_brand_image_expanded').fadeOut(180, function() {
$('#menu_brand_image_contracted').fadeIn(180);
});
{/literal}
{elseif $settings.theme.menu_brand_type == 'image_text'}
{literal}
$('.menu_brand_text').hide();
$('#menu_brand_image_contracted').animate({ width: '20px', 'margin-left': '-2px' }, 250);
{/literal}
{else if $settings.theme.menu_brand_type == 'text'}
{literal}
$('.menu_brand_text').fadeOut(180);
{/literal}
{/if}
{literal}
$('#menu_brand_image_expanded').fadeOut(180, function() {
$('#menu_brand_image_contracted').fadeIn(180);
$('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_contracted}{literal}px' }, 250);
$('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_contracted}{literal} }, 250, function() {
menu_side_state_current = 'contracted';
});
{/literal}
{elseif $settings.theme.menu_brand_type == 'image_text'}
{literal}
$('.menu_brand_text').hide();
$('#menu_brand_image_contracted').animate({ width: '20px', 'margin-left': '-2px' }, 250);
{/literal}
{else if $settings.theme.menu_brand_type == 'text'}
{literal}
$('.menu_brand_text').fadeOut(180);
{/literal}
{/if}
{literal}
$('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_contracted}{literal}px' }, 250);
$('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_contracted}{literal} }, 250, function() {
menu_side_state = 'contracted';
});
$('.menu_side_contract').hide();
$('.menu_side_expand').show();
$('.menu_side_contract').hide();
$('.menu_side_expand').show();
}
}
function menu_side_expand() {
{/literal}
{if $settings.theme.menu_brand_type == 'image_text'}
{literal}
$('#menu_brand_image_contracted').animate({ width: '30px', 'margin-left': '0' }, 250);
if (menu_side_state_current == 'contracted') {
{/literal}
{elseif $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''}
{literal}
$('#menu_brand_image_contracted').fadeOut(180);
{/literal}
{/if}
{literal}
$('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_expanded}{literal}px' }, 250);
$('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_expanded}{literal} }, 250, function() {
$('.menu_brand_text').fadeIn(180);
$('.menu_side_item_title').fadeIn(180);
{/literal}
{if $settings.theme.menu_brand_type != 'none'}
{if $settings.theme.menu_brand_type == 'image_text'}
{literal}
$('#menu_brand_image_contracted').animate({ width: '30px', 'margin-left': '0' }, 250);
{/literal}
{elseif $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''}
{literal}
$('#menu_brand_image_contracted').fadeOut(180);
{/literal}
{/if}
{literal}
$('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_expanded}{literal}px' }, 250, function() {
$('.menu_side_contract').fadeIn(180);
});
$('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_expanded}{literal} }, 250, function() {
$('.menu_brand_text').fadeIn(180);
$('.menu_side_item_title').fadeIn(180);
{/literal}
{/if}
{if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''}
{if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''}
{literal}
$('#menu_brand_image_expanded').fadeIn(180);
{/literal}
{/if}
{literal}
$('#menu_brand_image_expanded').fadeIn(180);
{/literal}
{/if}
{literal}
menu_side_state = 'expanded';
});
{/literal}
{if $settings.theme.menu_brand_type == 'none'}
{literal}
$('.menu_side_contract').show();
{/literal}
{/if}
{literal}
$('.menu_side_expand').hide();
menu_side_state_current = 'expanded';
});
$('.menu_side_expand').hide();
}
}
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';
if (state == 'expanded') {
document.getElementById('menu_side_state_current').value = 'expanded';
display_message("{/literal}{$text.theme_message_menu_expanded}{literal}", 'positive', 1000);
}
else {
document.getElementById('menu_side_state_current').value = 'contracted';
display_message("{/literal}{$text.theme_message_menu_contracted}{literal}", 'positive', 1000);
}
}
}
}
}
}
{/literal}
{/if}
@ -912,6 +933,7 @@
{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}
{else} {*//default: fixed *}
{$menu}
{$container_open}