From d5264be977af41b97118d61100079d65ff3cbcb5 Mon Sep 17 00:00:00 2001 From: Nate Date: Mon, 7 Oct 2019 18:31:11 -0600 Subject: [PATCH] Bridges: Integrate Action Bar, delete on edit. --- app/bridges/app_languages.php | 23 ++- app/bridges/bridge_edit.php | 40 +++- app/bridges/bridges.php | 230 +++++++++++++++------- app/bridges/resources/classes/bridges.php | 164 +++++++++++++-- resources/app_languages.php | 104 +++++++++- themes/default/app_config.php | 43 +++- themes/default/config.php | 14 +- themes/default/css.php | 33 +++- 8 files changed, 543 insertions(+), 108 deletions(-) diff --git a/app/bridges/app_languages.php b/app/bridges/app_languages.php index a3cd1aa21e..ce292c0f20 100644 --- a/app/bridges/app_languages.php +++ b/app/bridges/app_languages.php @@ -221,4 +221,25 @@ $text['description-bridge_description']['sv-se'] = ''; $text['description-bridge_description']['uk-ua'] = ''; -?> + $text['label-bridge_description']['en-us'] = "Description"; + $text['label-bridge_description']['ar-eg'] = ""; + $text['label-bridge_description']['de-at'] = "Beschreibung"; //copied from de-de + $text['label-bridge_description']['de-ch'] = "Beschreibung"; //copied from de-de + $text['label-bridge_description']['de-de'] = "Beschreibung"; + $text['label-bridge_description']['es-cl'] = "Descripción"; + $text['label-bridge_description']['es-mx'] = "Descripción"; //copied from es-cl + $text['label-bridge_description']['fr-ca'] = "Description"; //copied from fr-fr + $text['label-bridge_description']['fr-fr'] = "Description"; + $text['label-bridge_description']['he-il'] = ""; + $text['label-bridge_description']['it-it'] = "Descrizione"; + $text['label-bridge_description']['nl-nl'] = ""; + $text['label-bridge_description']['pl-pl'] = "Opis"; + $text['label-bridge_description']['pt-br'] = "Descrição"; + $text['label-bridge_description']['pt-pt'] = "Descripção"; + $text['label-bridge_description']['ro-ro'] = ""; + $text['label-bridge_description']['ru-ru'] = "Описание"; + $text['label-bridge_description']['sv-se'] = "Beskrivning"; + $text['label-bridge_description']['uk-ua'] = "Опис"; + $text['label-bridge_description']['tr-tr'] = "Açıklama"; + +?> \ No newline at end of file diff --git a/app/bridges/bridge_edit.php b/app/bridges/bridge_edit.php index 0bef472dfd..f821490639 100644 --- a/app/bridges/bridge_edit.php +++ b/app/bridges/bridge_edit.php @@ -52,11 +52,27 @@ $bridge_name = $_POST["bridge_name"]; $bridge_destination = $_POST["bridge_destination"]; $bridge_enabled = $_POST["bridge_enabled"]; + $bridge_description = $_POST["bridge_description"]; } //process the user data and save it to the database if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { + //delete the bridge + if (permission_exists('bridge_delete')) { + if ($_POST['action'] == 'delete' && is_uuid($bridge_uuid)) { + //prepare + $bridges[0]['checked'] = 'true'; + $bridges[0]['bridge_uuid'] = $bridge_uuid; + //delete + $obj = new bridges; + $obj->delete($bridges); + //redirect + header('Location: bridges.php'); + exit; + } + } + //get the uuid from the POST if ($action == "update") { $bridge_uuid = $_POST["bridge_uuid"]; @@ -99,6 +115,7 @@ $array['bridges'][0]['bridge_name'] = $bridge_name; $array['bridges'][0]['bridge_destination'] = $bridge_destination; $array['bridges'][0]['bridge_enabled'] = $bridge_enabled; + $array['bridges'][0]['bridge_description'] = $bridge_description; //save to the data $database = new database; @@ -118,7 +135,7 @@ header('Location: bridges.php'); return; } - } //(is_array($_POST) && strlen($_POST["persistformvar"]) == 0) + } //pre-populate the form if (is_array($_GET) && $_POST["persistformvar"] != "true") { @@ -132,6 +149,7 @@ $bridge_name = $row["bridge_name"]; $bridge_destination = $row["bridge_destination"]; $bridge_enabled = $row["bridge_enabled"]; + $bridge_description = $row["bridge_description"]; } unset($sql, $parameters, $row); } @@ -150,8 +168,9 @@ echo "\n"; echo "".$text['title-bridge']."

\n"; echo "\n"; - echo " "; - echo " "; + echo " "; + echo " "; + echo " "; echo "\n"; echo "\n"; @@ -201,12 +220,23 @@ echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; + echo " ".$text['label-bridge_description']."\n"; + echo "\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-bridge_description']."\n"; + echo "\n"; + echo "\n"; + echo " \n"; echo " \n"; echo "
\n"; echo " \n"; echo " \n"; - echo " \n"; + echo " \n"; echo " \n"; echo " "; echo ""; @@ -216,4 +246,4 @@ //include the footer require_once "resources/footer.php"; -?> +?> \ No newline at end of file diff --git a/app/bridges/bridges.php b/app/bridges/bridges.php index c27c4c15ae..e13e63e3ff 100644 --- a/app/bridges/bridges.php +++ b/app/bridges/bridges.php @@ -39,25 +39,45 @@ $language = new text; $text = $language->get(); -//get the action - if (is_array($_POST["bridges"])) { - $bridges = $_POST["bridges"]; - foreach($bridges as $row) { - if ($row['action'] == 'delete') { - $action = 'delete'; - break; - } +//get posted data + if (is_array($_POST['bridges'])) { + $action = $_POST['action']; + $bridges = $_POST['bridges']; + } + +//copy the bridges + if (permission_exists('bridge_add')) { + if ($action == 'copy' && is_array($bridges) && @sizeof($bridges) != 0) { + //copy + $obj = new bridges; + $obj->copy($bridges); + //redirect + header('Location: bridges.php'); + exit; + } + } + +//toggle the bridges + if (permission_exists('bridge_edit')) { + if ($action == 'toggle' && is_array($bridges) && @sizeof($bridges) != 0) { + //toggle + $obj = new bridges; + $obj->toggle($bridges); + //redirect + header('Location: bridges.php'); + exit; } } //delete the bridges if (permission_exists('bridge_delete')) { - if ($action == "delete") { - //download + if ($action == 'delete' && is_array($bridges) && @sizeof($bridges) != 0) { + //delete $obj = new bridges; $obj->delete($bridges); - //delete message - message::add($text['message-delete']); + //redirect + header('Location: bridges.php'); + exit; } } @@ -107,7 +127,7 @@ //get the list $sql = str_replace('count(*)', '*', $sql); - $sql .= order_by($order_by, $order); + $sql .= order_by($order_by, $order, 'bridge_name', 'asc'); $sql .= limit_offset($rows_per_page, $offset); $database = new database; $bridges = $database->select($sql, $parameters, 'all'); @@ -124,56 +144,98 @@ //include the header require_once "resources/header.php"; -//define the checkbox_toggle function - echo "\n"; //show the content - echo "\n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "
".$text['title-bridges']."
\n"; - - if (permission_exists('bridge_all')) { - if ($_GET['show'] == 'all') { - echo " "; + echo "
\n"; + echo " ".$text['title-bridges']." (".$num_rows.")\n"; + if (permission_exists('bridge_add')) { + echo " "; + } + if (permission_exists('bridge_add') || permission_exists('bridge_edit') || permission_exists('bridge_delete')) { + /* + echo " \n"; + echo " \n"; + */ + if (permission_exists('bridge_add')) { + echo " "; } - else { - echo " \n"; + if (permission_exists('bridge_edit')) { + echo " "; + } + if (permission_exists('bridge_delete')) { + echo " "; } } + echo " \n"; + if (permission_exists('bridge_all')) { + if ($_GET['show'] == 'all') { + echo " "; + } + else { + echo " \n"; + } + } + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
\n"; - echo " \n"; - echo " \n"; - echo "
\n"; - echo " ".$text['title_description-bridge']."

\n"; - echo "
\n"; + echo $text['title_description-bridge']."\n"; + echo "

\n"; + + echo "
\n"; + echo "\n"; - echo "\n"; echo "\n"; echo "\n"; - echo " \n"; if ($_GET['show'] == "all" && permission_exists('bridge_all')) { echo th_order_by('domain_name', $text['label-domain'], $order_by, $order); @@ -181,15 +243,9 @@ echo th_order_by('bridge_name', $text['label-bridge_name'], $order_by, $order); echo th_order_by('bridge_destination', $text['label-bridge_destination'], $order_by, $order); echo th_order_by('bridge_enabled', $text['label-bridge_enabled'], $order_by, $order); - echo " \n"; - echo "\n"; + echo " \n"; + echo " \n"; + echo "\n"; if (is_array($bridges)) { $x = 0; @@ -199,44 +255,66 @@ } echo "\n"; echo " \n"; if ($_GET['show'] == "all" && permission_exists('bridge_all')) { - echo " \n"; + echo " \n"; } - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; echo "\n"; + $c = $c ? 0 : 1; $x++; - $c = $c == 1 ? 0 : 1; - } //end foreach + } unset($sql, $bridges); - } //end if results + } echo "\n"; echo "
\n"; - echo " \n"; + echo " \n"; + echo " \n"; echo " "; - if (permission_exists('bridge_add')) { - echo " $v_link_label_add"; - } - else { - echo " \n"; - } - echo "
".$text['label-description']." 
".escape($_SESSION['domains'][$row['domain_uuid']]['domain_name'])." ".escape($_SESSION['domains'][$row['domain_uuid']]['domain_name'])."".escape($row['bridge_name'])." ".escape($row['bridge_destination'])." ".$text['label-'.$row['bridge_enabled']]." "; + echo " "; if (permission_exists('bridge_edit')) { - echo "$v_link_label_edit"; + echo " ".escape($row['bridge_name'])."\n"; } - if (permission_exists('bridge_delete')) { - echo ""; + else { + echo " ".escape($row['bridge_name'])."\n"; } echo " ".escape($row['bridge_destination'])."".$text['label-'.$row['bridge_enabled']]."".escape($row['bridge_description'])."
\n"; - if (permission_exists('bridge_add')) { - echo "
\n"; - echo " ".$v_link_label_add.""; - echo "
\n"; - } echo "
\n"; echo "
".$paging_controls."
\n"; echo "\n"; + echo "
\n"; +//handle form actions + echo "\n"; + //include the footer require_once "resources/footer.php"; -?> +?> \ No newline at end of file diff --git a/app/bridges/resources/classes/bridges.php b/app/bridges/resources/classes/bridges.php index 808c970c92..360c47175c 100644 --- a/app/bridges/resources/classes/bridges.php +++ b/app/bridges/resources/classes/bridges.php @@ -44,36 +44,158 @@ if (!class_exists('bridges')) { } //delete multiple bridges - if (is_array($bridges)) { - //get the action - foreach($bridges as $row) { - if ($row['action'] == 'delete') { - $action = 'delete'; - break; + if (is_array($bridges) && @sizeof($bridges) != 0) { + //delete the checked rows + foreach($bridges as $x => $row) { + if ($row['checked'] == 'true' && is_uuid($row['bridge_uuid'])) { + $array['bridges'][$x]['bridge_uuid'] = $row['bridge_uuid']; + $array['bridges'][$x]['domain_uuid'] = $_SESSION['domain_uuid']; } } - //delete the checked rows - if ($action == 'delete') { - $database = new database; - foreach($bridges as $x => $row) { - if ($row['action'] == 'delete' or $row['checked'] == 'true') { - $array['bridges'][$x]['bridge_uuid'] = $row['bridge_uuid']; - $array['bridges'][$x]['domain_uuid'] = $_SESSION['domain_uuid']; - } - } - if (is_array($array) && @sizeof($array) != 0) { + if (is_array($array) && @sizeof($array) != 0) { + //execute delete + $database = new database; $database->app_name = 'bridges'; $database->app_uuid = 'a6a7c4c5-340a-43ce-bcbc-2ed9bab8659d'; $database->delete($array); unset($array); - } - unset($bridges); + //set message + message::add($text['message-delete']); } + unset($bridges); } } - } //end the delete function + } - } //end the class + /** + * toggle bridges + */ + public function toggle($bridges) { + if (permission_exists('bridge_edit')) { + + //add multi-lingual support + $language = new text; + $text = $language->get(); + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: bridges.php'); + exit; + } + + //toggle the checked bridges + if (is_array($bridges) && @sizeof($bridges) != 0) { + //get current enabled state of checked bridges + foreach($bridges as $x => $row) { + if ($row['checked'] == 'true' && is_uuid($row['bridge_uuid'])) { + $bridge_uuids[] = "bridge_uuid = '".$row['bridge_uuid']."'"; + } + } + if (is_array($bridge_uuids) && @sizeof($bridge_uuids) != 0) { + $sql = "select bridge_uuid, bridge_enabled from v_bridges "; + $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; + $sql .= "and ( ".implode(' or ', $bridge_uuids)." ) "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $database = new database; + $rows = $database->select($sql, $parameters, 'all'); + if (is_array($rows) && @sizeof($rows) != 0) { + foreach ($rows as $row) { + $bridge_states[$row['bridge_uuid']] = $row['bridge_enabled']; + } + } + unset($sql, $parameters, $rows, $row); + } + + //build update array + $x = 0; + foreach($bridge_states as $bridge_uuid => $bridge_state) { + $array['bridges'][$x]['bridge_uuid'] = $bridge_uuid; + $array['bridges'][$x]['bridge_enabled'] = $bridge_state == 'true' ? 'false' : 'true'; + $x++; + } + + if (is_array($array) && @sizeof($array) != 0) { + //execute update + $database = new database; + $database->app_name = 'bridges'; + $database->app_uuid = 'a6a7c4c5-340a-43ce-bcbc-2ed9bab8659d'; + $database->save($array); + unset($array); + //set message + message::add($text['message-update']); + } + unset($bridges, $bridge_states); + } + + } + } + + /** + * copy bridges + */ + public function copy($bridges) { + if (permission_exists('bridge_add')) { + + //add multi-lingual support + $language = new text; + $text = $language->get(); + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: bridges.php'); + exit; + } + + //copy the checked bridges + if (is_array($bridges) && @sizeof($bridges) != 0) { + + //get checked bridges + foreach($bridges as $x => $row) { + if ($row['checked'] == 'true' && is_uuid($row['bridge_uuid'])) { + $bridge_uuids[] = "bridge_uuid = '".$row['bridge_uuid']."'"; + } + } + //create insert array from existing data + if (is_array($bridge_uuids) && @sizeof($bridge_uuids) != 0) { + $sql = "select * from v_bridges "; + $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; + $sql .= "and ( ".implode(' or ', $bridge_uuids)." ) "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $database = new database; + $rows = $database->select($sql, $parameters, 'all'); + if (is_array($rows) && @sizeof($rows) != 0) { + foreach ($rows as $x => $row) { + $array['bridges'][$x]['bridge_uuid'] = uuid(); + $array['bridges'][$x]['domain_uuid'] = $row['domain_uuid']; + $array['bridges'][$x]['bridge_name'] = $row['bridge_name']; + $array['bridges'][$x]['bridge_destination'] = $row['bridge_destination']; + $array['bridges'][$x]['bridge_enabled'] = $row['bridge_enabled']; + $array['bridges'][$x]['bridge_description'] = trim($row['bridge_description'].' ('.$text['label-copy'].')'); + } + } + unset($sql, $parameters, $rows, $row); + } + //execute insert + if (is_array($array) && @sizeof($array) != 0) { + $database = new database; + $database->app_name = 'bridges'; + $database->app_uuid = 'a6a7c4c5-340a-43ce-bcbc-2ed9bab8659d'; + $database->save($array); + unset($array); + //set message + message::add($text['message-copy']); + } + unset($bridges); + } + + } + } + + } } /* @@ -81,4 +203,4 @@ $obj = new bridges; $obj->delete(); */ -?> +?> \ No newline at end of file diff --git a/resources/app_languages.php b/resources/app_languages.php index 90cd31ad61..2641aa0b4a 100644 --- a/resources/app_languages.php +++ b/resources/app_languages.php @@ -337,6 +337,27 @@ $text['confirm-copy']['sv-se'] = "Vill du verkligen kopiera detta?"; $text['confirm-copy']['uk-ua'] = ""; $text['confirm-copy']['tr-tr'] = "Bunu gerçekten kopyalamak istiyor musunuz?"; +$text['confirm-toggle']['en-us'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['ar-eg'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['de-at'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['de-ch'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['de-de'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['es-cl'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['es-mx'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['fr-ca'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['fr-fr'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['he-il'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['it-it'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['nl-nl'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['pl-pl'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['pt-br'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['pt-pt'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['ro-ro'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['ru-ru'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['sv-se'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['uk-ua'] = "Do you really want to toggle this?"; +$text['confirm-toggle']['tr-tr'] = "Do you really want to toggle this?"; + $text['button-apply']['en-us'] = "Apply"; $text['button-apply']['ar-eg'] = ""; $text['button-apply']['de-at'] = "Anwenden"; //copied from de-de @@ -1154,6 +1175,66 @@ $text['button-qr_code']['ru-ru'] = "QR Код"; $text['button-qr_code']['sv-se'] = "QR Kod"; $text['button-qr_code']['uk-ua'] = ""; +$text['button-toggle']['en-us'] = "Toggle"; +$text['button-toggle']['ar-eg'] = "Toggle"; +$text['button-toggle']['de-at'] = "Toggle"; +$text['button-toggle']['de-ch'] = "Toggle"; +$text['button-toggle']['de-de'] = "Toggle"; +$text['button-toggle']['es-cl'] = "Toggle"; +$text['button-toggle']['es-mx'] = "Toggle"; +$text['button-toggle']['fr-ca'] = "Toggle"; +$text['button-toggle']['fr-fr'] = "Toggle"; +$text['button-toggle']['he-il'] = "Toggle"; +$text['button-toggle']['it-it'] = "Toggle"; +$text['button-toggle']['nl-nl'] = "Toggle"; +$text['button-toggle']['pl-pl'] = "Toggle"; +$text['button-toggle']['pt-br'] = "Toggle"; +$text['button-toggle']['pt-pt'] = "Toggle"; +$text['button-toggle']['ro-ro'] = "Toggle"; +$text['button-toggle']['ru-ru'] = "Toggle"; +$text['button-toggle']['sv-se'] = "Toggle"; +$text['button-toggle']['uk-ua'] = "Toggle"; + +$text['button-check_all']['en-us'] = "Check All"; +$text['button-check_all']['ar-eg'] = "Check All"; +$text['button-check_all']['de-at'] = "Check All"; +$text['button-check_all']['de-ch'] = "Check All"; +$text['button-check_all']['de-de'] = "Check All"; +$text['button-check_all']['es-cl'] = "Check All"; +$text['button-check_all']['es-mx'] = "Check All"; +$text['button-check_all']['fr-ca'] = "Check All"; +$text['button-check_all']['fr-fr'] = "Check All"; +$text['button-check_all']['he-il'] = "Check All"; +$text['button-check_all']['it-it'] = "Check All"; +$text['button-check_all']['nl-nl'] = "Check All"; +$text['button-check_all']['pl-pl'] = "Check All"; +$text['button-check_all']['pt-br'] = "Check All"; +$text['button-check_all']['pt-pt'] = "Check All"; +$text['button-check_all']['ro-ro'] = "Check All"; +$text['button-check_all']['ru-ru'] = "Check All"; +$text['button-check_all']['sv-se'] = "Check All"; +$text['button-check_all']['uk-ua'] = "Check All"; + +$text['button-check_none']['en-us'] = "Check None"; +$text['button-check_none']['ar-eg'] = "Check None"; +$text['button-check_none']['de-at'] = "Check None"; +$text['button-check_none']['de-ch'] = "Check None"; +$text['button-check_none']['de-de'] = "Check None"; +$text['button-check_none']['es-cl'] = "Check None"; +$text['button-check_none']['es-mx'] = "Check None"; +$text['button-check_none']['fr-ca'] = "Check None"; +$text['button-check_none']['fr-fr'] = "Check None"; +$text['button-check_none']['he-il'] = "Check None"; +$text['button-check_none']['it-it'] = "Check None"; +$text['button-check_none']['nl-nl'] = "Check None"; +$text['button-check_none']['pl-pl'] = "Check None"; +$text['button-check_none']['pt-br'] = "Check None"; +$text['button-check_none']['pt-pt'] = "Check None"; +$text['button-check_none']['ro-ro'] = "Check None"; +$text['button-check_none']['ru-ru'] = "Check None"; +$text['button-check_none']['sv-se'] = "Check None"; +$text['button-check_none']['uk-ua'] = "Check None"; + $text['label-total']['en-us'] = "Total"; $text['label-total']['ar-eg'] = ""; $text['label-total']['de-at'] = "Summe"; //copied from de-de @@ -2450,7 +2531,28 @@ $text['label-context']['ro-ro'] = ""; $text['label-context']['ru-ru'] = "Контекст"; $text['label-context']['sv-se'] = "Context"; $text['label-context']['uk-ua'] = "Контекст"; - + +$text['label-copy']['en-us'] = "Copy"; +$text['label-copy']['ar-eg'] = ""; +$text['label-copy']['de-at'] = "Kopieren"; //copied from de-de +$text['label-copy']['de-ch'] = "Kopieren"; //copied from de-de +$text['label-copy']['de-de'] = "Kopieren"; +$text['label-copy']['es-cl'] = "Copiar"; +$text['label-copy']['es-mx'] = "Copiar"; //copied from es-cl +$text['label-copy']['fr-ca'] = "Copier"; //copied from fr-fr +$text['label-copy']['fr-fr'] = "Copier"; +$text['label-copy']['he-il'] = "העתק"; +$text['label-copy']['it-it'] = "Copia"; +$text['label-copy']['nl-nl'] = ""; +$text['label-copy']['pl-pl'] = "Kopiuj"; +$text['label-copy']['pt-br'] = "Copiar"; //copied from pt-pt +$text['label-copy']['pt-pt'] = "Copiar"; +$text['label-copy']['ro-ro'] = ""; +$text['label-copy']['ru-ru'] = "Копировать"; +$text['label-copy']['sv-se'] = "Kopiera"; +$text['label-copy']['uk-ua'] = "Копіювати"; +$text['label-copy']['tr-tr'] = "Kopyala"; + $text['label-music_on_hold']['en-us'] = "Music on Hold"; $text['label-music_on_hold']['ar-eg'] = "موسيقى المؤجلة"; $text['label-music_on_hold']['de-at'] = "Wartemusik"; //copied from de-de diff --git a/themes/default/app_config.php b/themes/default/app_config.php index 82d1033c18..8cac6c1579 100644 --- a/themes/default/app_config.php +++ b/themes/default/app_config.php @@ -1645,4 +1645,45 @@ $apps[$x]['default_settings'][$y]['default_setting_value'] = "/themes/default/images/logo_side_expanded.png"; $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'] = "dde32589-2d0d-4d10-a42a-3948061c17fe"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "theme"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "action_bar_border_bottom_size"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "0 0 1px 0"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Sets the border size of the Action Bar."; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "8a2d3b59-a54a-4519-b049-4293e1f0dd4a"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "theme"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "action_bar_border_bottom_style"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "solid"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Sets the border style of the Action Bar."; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "1f5f0f7b-e779-48d0-b1a6-afa1a2c9cf9e"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "theme"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "action_bar_border_bottom_color"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "#dddddd"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Sets the border color of the Action Bar."; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "544cec97-3407-42f8-8627-32f92bcbc46b"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "theme"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "action_bar_border_bottom_radius"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "0"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Sets the border radius of the Action Bar."; + $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "9de3beba-3b56-40e3-b312-111674a3b30f"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "theme"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "action_bar_background"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "rgba(255,255,255,0.9)"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Sets the background color/opacity/image of the Action Bar."; + +?> \ No newline at end of file diff --git a/themes/default/config.php b/themes/default/config.php index fc180b99dd..9444234533 100644 --- a/themes/default/config.php +++ b/themes/default/config.php @@ -1,8 +1,8 @@ "; $v_link_label_add = ""; + $v_link_label_edit = ""; $v_link_label_delete = ""; $v_link_label_view = ""; $v_link_label_play = ""; @@ -10,4 +10,14 @@ $v_link_label_stop = ""; $v_link_label_download = ""; -?> +//icon buttons + $v_button_icon_add = ""; + $v_button_icon_edit = ""; + $v_button_icon_delete = ""; + $v_button_icon_view = ""; + $v_button_icon_play = ""; + $v_button_icon_pause = ""; + $v_button_icon_stop = ""; + $v_button_icon_download = ""; + +?> \ No newline at end of file diff --git a/themes/default/css.php b/themes/default/css.php index c24f5e2676..eafdb903eb 100644 --- a/themes/default/css.php +++ b/themes/default/css.php @@ -2035,4 +2035,35 @@ $default_login = ($_REQUEST['login'] == 'default') ? true : false; div.form_set > .field.nowrap { white-space: nowrap; - } \ No newline at end of file + } + +/*******************************************************************************/ + + div.action_bar { + position: -webkit-sticky; + position: sticky; + + top: ; + text-align: right; + border-bottom-width: ; + border-bottom-style: ; + border-bottom-color: ; + border-bottom-left-radius: ; + border-bottom-right-radius: ; + padding: 10px; + background: ; + margin: -10px -10px 10px -10px; + }