default_setting_edit.php 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720
  1. <?php
  2. /*
  3. FusionPBX
  4. Version: MPL 1.1
  5. The contents of this file are subject to the Mozilla Public License Version
  6. 1.1 (the "License"); you may not use this file except in compliance with
  7. the License. You may obtain a copy of the License at
  8. http://www.mozilla.org/MPL/
  9. Software distributed under the License is distributed on an "AS IS" basis,
  10. WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11. for the specific language governing rights and limitations under the
  12. License.
  13. The Original Code is FusionPBX
  14. The Initial Developer of the Original Code is
  15. Mark J Crane <[email protected]>
  16. Portions created by the Initial Developer are Copyright (C) 2008-2020
  17. the Initial Developer. All Rights Reserved.
  18. Contributor(s):
  19. Mark J Crane <[email protected]>
  20. */
  21. //includes
  22. require_once "root.php";
  23. require_once "resources/require.php";
  24. require_once "resources/check_auth.php";
  25. //check permissions
  26. if (permission_exists('default_setting_add') || permission_exists('default_setting_edit')) {
  27. //access granted
  28. }
  29. else {
  30. echo "access denied";
  31. exit;
  32. }
  33. //add multi-lingual support
  34. $language = new text;
  35. $text = $language->get();
  36. //action add or update
  37. if (is_uuid($_REQUEST["id"])) {
  38. $action = "update";
  39. $default_setting_uuid = $_REQUEST["id"];
  40. }
  41. else {
  42. $action = "add";
  43. }
  44. $search = $_REQUEST['search'];
  45. //get http post variables and set them to php variables
  46. if (count($_REQUEST) > 0) {
  47. $default_setting_category = strtolower($_REQUEST["default_setting_category"]);
  48. $default_setting_subcategory = strtolower($_POST["default_setting_subcategory"]);
  49. $default_setting_name = strtolower($_POST["default_setting_name"]);
  50. $default_setting_value = $_POST["default_setting_value"];
  51. $default_setting_order = $_POST["default_setting_order"];
  52. $default_setting_enabled = $_POST["default_setting_enabled"];
  53. $default_setting_description = $_POST["default_setting_description"];
  54. }
  55. //process the http post
  56. if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
  57. //set the default_setting_uuid
  58. if ($action == "update") {
  59. $default_setting_uuid = $_POST["default_setting_uuid"];
  60. }
  61. else {
  62. $default_setting_uuid = uuid();
  63. }
  64. //validate the token
  65. $token = new token;
  66. if (!$token->validate($_SERVER['PHP_SELF'])) {
  67. message::add($text['message-invalid_token'],'negative');
  68. header('Location: default_settings.php');
  69. exit;
  70. }
  71. //check for all required data
  72. $msg = '';
  73. if (strlen($default_setting_category) == 0) { $msg .= $text['message-required'].$text['label-category']."<br>\n"; }
  74. if (strlen($default_setting_subcategory) == 0) { $msg .= $text['message-required'].$text['label-subcategory']."<br>\n"; }
  75. if (strlen($default_setting_name) == 0) { $msg .= $text['message-required'].$text['label-type']."<br>\n"; }
  76. //if (strlen($default_setting_value) == 0) { $msg .= $text['message-required'].$text['label-value']."<br>\n"; }
  77. if (strlen($default_setting_order) == 0) { $msg .= $text['message-required'].$text['label-order']."<br>\n"; }
  78. if (strlen($default_setting_enabled) == 0) { $msg .= $text['message-required'].$text['label-enabled']."<br>\n"; }
  79. //if (strlen($default_setting_description) == 0) { $msg .= $text['message-required'].$text['label-description']."<br>\n"; }
  80. if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
  81. require_once "resources/header.php";
  82. require_once "resources/persist_form_var.php";
  83. echo "<div align='center'>\n";
  84. echo "<table><tr><td>\n";
  85. echo $msg."<br />";
  86. echo "</td></tr></table>\n";
  87. persistformvar($_POST);
  88. echo "</div>\n";
  89. require_once "resources/footer.php";
  90. return;
  91. }
  92. //add or update the database
  93. if ($_POST["persistformvar"] != "true") {
  94. // fix null
  95. $default_setting_order = ($default_setting_order != '') ? $default_setting_order : 'null';
  96. //update switch timezone variables
  97. if ($default_setting_category == "domain" && $default_setting_subcategory == "time_zone" && $default_setting_name == "name" ) {
  98. //get the action
  99. $sql = "select count(*) from v_vars ";
  100. $sql .= "where var_name = 'timezone' ";
  101. $database = new database;
  102. $num_rows = $database->select($sql, null, 'column');
  103. unset($sql);
  104. //update
  105. if ($num_rows != 0) {
  106. $sql = "update v_vars ";
  107. $sql .= "set var_value = :default_setting_value ";
  108. $sql .= "where var_name = 'timezone' ";
  109. $parameters['default_setting_value'] = $default_setting_value;
  110. }
  111. //insert
  112. else {
  113. $sql = "insert into v_vars ";
  114. $sql .= "(var_uuid, var_name, var_value, var_category, var_command, var_enabled) ";
  115. $sql .= "values ('".uuid()."', 'timezone', :default_setting_value, 'Defaults', 'set', 'true'); ";
  116. $parameters['default_setting_value'] = $default_setting_value;
  117. }
  118. //execute
  119. $database = new database;
  120. $database->app_name = 'default_settings';
  121. $database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09';
  122. $database->execute($sql, $parameters);
  123. unset($sql, $parameters);
  124. //synchronize the configuration
  125. save_var_xml();
  126. }
  127. //build the array of data
  128. $x = 0;
  129. $array['default_settings'][$x]['default_setting_uuid'] = $default_setting_uuid;
  130. $array['default_settings'][$x]['default_setting_category'] = $default_setting_category;
  131. $array['default_settings'][$x]['default_setting_subcategory'] = $default_setting_subcategory;
  132. $array['default_settings'][$x]['default_setting_name'] = $default_setting_name;
  133. $array['default_settings'][$x]['default_setting_value'] = $default_setting_value;
  134. $array['default_settings'][$x]['default_setting_order'] = $default_setting_order;
  135. $array['default_settings'][$x]['default_setting_enabled'] = $default_setting_enabled;
  136. $array['default_settings'][$x]['default_setting_description'] = $default_setting_description;
  137. //save to the data
  138. $database = new database;
  139. $database->app_name = 'default_settings';
  140. $database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09';
  141. $database->save($array);
  142. $message = $database->message;
  143. //set the message and redirect the user
  144. if ($action == "add" && permission_exists('default_setting_add')) {
  145. message::add($text['message-add']);
  146. header("Location: default_settings.php".(($search != '') ? "?search=".$search : null)."#anchor_".$default_setting_category);
  147. return;
  148. }
  149. if ($action == "update" && permission_exists('default_setting_edit')) {
  150. message::add($text['message-update']);
  151. header("Location: default_settings.php".(($search != '') ? "?search=".$search : null)."#anchor_".$default_setting_category);
  152. return;
  153. }
  154. } //if ($_POST["persistformvar"] != "true")
  155. } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
  156. //pre-populate the form
  157. if (count($_GET) > 0 && $_POST["persistformvar"] != "true") {
  158. $default_setting_uuid = $_GET["id"];
  159. $sql = "select * from v_default_settings ";
  160. $sql .= "where default_setting_uuid = :default_setting_uuid ";
  161. $parameters['default_setting_uuid'] = $default_setting_uuid;
  162. $database = new database;
  163. $row = $database->select($sql, $parameters, 'row');
  164. if (is_array($row) && sizeof($row) != 0) {
  165. $default_setting_category = $row["default_setting_category"];
  166. $default_setting_subcategory = $row["default_setting_subcategory"];
  167. $default_setting_name = $row["default_setting_name"];
  168. $default_setting_value = $row["default_setting_value"];
  169. $default_setting_order = $row["default_setting_order"];
  170. $default_setting_enabled = $row["default_setting_enabled"];
  171. $default_setting_description = $row["default_setting_description"];
  172. }
  173. unset($sql, $parameters);
  174. }
  175. //create token
  176. $object = new token;
  177. $token = $object->create($_SERVER['PHP_SELF']);
  178. //include the header
  179. if ($action == "update") {
  180. $document['title'] = $text['title-default_setting-edit'];
  181. }
  182. elseif ($action == "add") {
  183. $document['title'] = $text['title-default_setting-add'];
  184. }
  185. require_once "resources/header.php";
  186. //show the content
  187. echo "<form name='frm' id='frm' method='post'>\n";
  188. echo "<div class='action_bar' id='action_bar'>\n";
  189. echo " <div class='heading'>";
  190. if ($action == "add") {
  191. echo "<b>".$text['header-default_setting-add']."</b>";
  192. }
  193. if ($action == "update") {
  194. echo "<b>".$text['header-default_setting-edit']."</b>";
  195. }
  196. echo " </div>\n";
  197. echo " <div class='actions'>\n";
  198. echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'style'=>'margin-right: 15px;','link'=>'default_settings.php'.($search != '' ? "?search=".$search : null)]);
  199. echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'onclick'=>'submit_form();']);
  200. echo " </div>\n";
  201. echo " <div style='clear: both;'></div>\n";
  202. echo "</div>\n";
  203. if ($action == "add") {
  204. echo $text['description-default_setting-add']."\n";
  205. }
  206. if ($action == "update") {
  207. echo $text['description-default_setting-edit']."\n";
  208. }
  209. echo "<br /><br />\n";
  210. echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
  211. echo "<tr>\n";
  212. echo "<td width='30%' class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
  213. echo " ".$text['label-category']."\n";
  214. echo "</td>\n";
  215. echo "<td width='70%' class='vtable' align='left'>\n";
  216. echo " <input class='formfld' type='text' name='default_setting_category' maxlength='255' value=\"$default_setting_category\">\n";
  217. echo "<br />\n";
  218. echo $text['description-category']."\n";
  219. echo "</td>\n";
  220. echo "</tr>\n";
  221. echo "<tr>\n";
  222. echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
  223. echo " ".$text['label-subcategory']."\n";
  224. echo "</td>\n";
  225. echo "<td class='vtable' align='left'>\n";
  226. echo " <input class='formfld lowercase' type='text' name='default_setting_subcategory' id='default_setting_subcategory' maxlength='255' value=\"$default_setting_subcategory\">\n";
  227. echo "<br />\n";
  228. echo $text['description-subcategory']."\n";
  229. echo "</td>\n";
  230. echo "</tr>\n";
  231. echo "<tr>\n";
  232. echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
  233. echo " ".$text['label-type']."\n";
  234. echo "</td>\n";
  235. echo "<td class='vtable' align='left'>\n";
  236. echo " <input class='formfld lowercase' type='text' name='default_setting_name' id='default_setting_name' maxlength='255' value=\"$default_setting_name\">\n";
  237. echo "<br />\n";
  238. echo $text['description-type']."\n";
  239. echo "</td>\n";
  240. echo "</tr>\n";
  241. echo "<tr>\n";
  242. echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
  243. echo " ".$text['label-value']."\n";
  244. echo "</td>\n";
  245. echo "<td class='vtable' align='left'>\n";
  246. $category = $row['default_setting_category'];
  247. $subcategory = $row['default_setting_subcategory'];
  248. $name = $row['default_setting_name'];
  249. if ($category == "cdr" && $subcategory == "format" && $name == "text" ) {
  250. echo " <select class='formfld' id='default_setting_value' name='default_setting_value' style=''>\n";
  251. if ($default_setting_value == "json") {
  252. echo " <option value='json' selected='selected'>json</option>\n";
  253. }
  254. else {
  255. echo " <option value='json'>json</option>\n";
  256. }
  257. if ($default_setting_value == "xml") {
  258. echo " <option value='xml' selected='selected'>xml</option>\n";
  259. }
  260. else {
  261. echo " <option value='xml'>xml</option>\n";
  262. }
  263. echo " </select>\n";
  264. }
  265. elseif ($category == "cdr" && $subcategory == "storage" && $name == "text" ) {
  266. echo " <select class='formfld' id='default_setting_value' name='default_setting_value' style=''>\n";
  267. if ($default_setting_value == "db") {
  268. echo " <option value='db' selected='selected'>db</option>\n";
  269. }
  270. else {
  271. echo " <option value='db'>db</option>\n";
  272. }
  273. if ($default_setting_value == "dir") {
  274. echo " <option value='dir' selected='selected'>dir</option>\n";
  275. }
  276. else {
  277. echo " <option value='dir'>dir</option>\n";
  278. }
  279. echo " </select>\n";
  280. }
  281. elseif ($category == "domain" && $subcategory == "menu" && $name == "uuid" ) {
  282. echo " <select class='formfld' id='default_setting_value' name='default_setting_value' style=''>\n";
  283. $sql = "select * from v_menus ";
  284. $sql .= "order by menu_language, menu_name asc ";
  285. $database = new database;
  286. $sub_result = $database->select($sql, null, 'all');
  287. if (is_array($sub_result) && sizeof($sub_result) != 0) {
  288. foreach ($sub_result as $sub_row) {
  289. $selected = strtolower($default_setting_value) == strtolower($sub_row["menu_uuid"]) ? "selected='selected'" : null;
  290. echo " <option value='".strtolower(escape($sub_row["menu_uuid"]))."' ".$selected.">".escape($sub_row["menu_language"])." - ".escape($sub_row["menu_name"])."</option>\n";
  291. }
  292. }
  293. unset($sql, $sub_result, $sub_row, $selected);
  294. echo " </select>\n";
  295. }
  296. elseif ($category == "domain" && $subcategory == "template" && $name == "name" ) {
  297. echo " <select class='formfld' id='default_setting_value' name='default_setting_value' style=''>\n";
  298. //add all the themes to the list
  299. $theme_dir = $_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/themes';
  300. if ($handle = opendir($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/themes')) {
  301. while (false !== ($dir_name = readdir($handle))) {
  302. if ($dir_name != "." && $dir_name != ".." && $dir_name != ".svn" && $dir_name != ".git" && is_dir($theme_dir.'/'.$dir_name)) {
  303. $dir_label = str_replace('_', ' ', $dir_name);
  304. $dir_label = str_replace('-', ' ', $dir_label);
  305. if ($dir_name == $default_setting_value) {
  306. echo " <option value='$dir_name' selected='selected'>".ucwords($dir_label)."</option>\n";
  307. }
  308. else {
  309. echo " <option value='$dir_name'>".ucwords($dir_label)."</option>\n";
  310. }
  311. }
  312. }
  313. closedir($handle);
  314. }
  315. echo " </select>\n";
  316. }
  317. elseif ($category == "domain" && $subcategory == "language" && $name == "code" ) {
  318. echo " <select class='formfld' id='default_setting_value' name='default_setting_value' style=''>\n";
  319. foreach ($_SESSION['app']['languages'] as $key => $value) {
  320. if ($default_setting_value == $value) {
  321. echo " <option value='$value' selected='selected'>$value</option>\n";
  322. }
  323. else {
  324. echo " <option value='$value'>$value</option>\n";
  325. }
  326. }
  327. echo " </select>\n";
  328. }
  329. elseif ($category == "email" && $subcategory == "smtp_auth" && $name == "var" ) {
  330. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  331. echo " <option value=''></option>\n";
  332. if ($default_setting_value == "true") {
  333. echo " <option value='true' selected='selected'>".$text['label-true']."</option>\n";
  334. }
  335. else {
  336. echo " <option value='true'>".$text['label-true']."</option>\n";
  337. }
  338. if ($default_setting_value == "false") {
  339. echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
  340. }
  341. else {
  342. echo " <option value='false'>".$text['label-false']."</option>\n";
  343. }
  344. echo " </select>\n";
  345. }
  346. elseif ($category == "email" && $subcategory == "smtp_secure" && $name == "var" ) {
  347. echo " <select class='formfld' name='default_setting_value'>\n";
  348. if ($default_setting_value == "none") {
  349. echo " <option value='none' selected='selected'>".$text['label-none']."</option>\n";
  350. }
  351. else {
  352. echo " <option value='none'>".$text['label-none']."</option>\n";
  353. }
  354. if ($default_setting_value == "tls") {
  355. echo " <option value='tls' selected='selected'>TLS</option>\n";
  356. }
  357. else {
  358. echo " <option value='tls'>TLS</option>\n";
  359. }
  360. if ($default_setting_value == "ssl") {
  361. echo " <option value='ssl' selected='selected'>SSL</option>\n";
  362. }
  363. else {
  364. echo " <option value='ssl'>SSL</option>\n";
  365. }
  366. echo " </select>\n";
  367. }
  368. elseif ($category == "domain" && $subcategory == "time_zone" && $name == "name" ) {
  369. echo " <select class='formfld' id='default_setting_value' name='default_setting_value' style=''>\n";
  370. //$list = DateTimeZone::listAbbreviations();
  371. $time_zone_identifiers = DateTimeZone::listIdentifiers();
  372. $previous_category = '';
  373. $x = 0;
  374. foreach ($time_zone_identifiers as $key => $val) {
  375. $time_zone = explode("/", $val);
  376. $category = $time_zone[0];
  377. if ($category != $previous_category) {
  378. if ($x > 0) {
  379. echo " </optgroup>\n";
  380. }
  381. echo " <optgroup label='".$category."'>\n";
  382. }
  383. if (strlen($val) > 0) {
  384. $time_zone_offset = get_time_zone_offset($val)/3600;
  385. $time_zone_offset_hours = floor($time_zone_offset);
  386. $time_zone_offset_minutes = ($time_zone_offset - $time_zone_offset_hours) * 60;
  387. $time_zone_offset_minutes = number_pad($time_zone_offset_minutes, 2);
  388. if ($time_zone_offset > 0) {
  389. $time_zone_offset_hours = number_pad($time_zone_offset_hours, 2);
  390. $time_zone_offset_hours = "+".$time_zone_offset_hours;
  391. }
  392. else {
  393. $time_zone_offset_hours = str_replace("-", "", $time_zone_offset_hours);
  394. $time_zone_offset_hours = "-".number_pad($time_zone_offset_hours, 2);
  395. }
  396. }
  397. if ($val == $default_setting_value) {
  398. echo " <option value='".$val."' selected='selected'>(UTC ".$time_zone_offset_hours.":".$time_zone_offset_minutes.") ".$val."</option>\n";
  399. }
  400. else {
  401. echo " <option value='".$val."'>(UTC ".$time_zone_offset_hours.":".$time_zone_offset_minutes.") ".$val."</option>\n";
  402. }
  403. $previous_category = $category;
  404. $x++;
  405. }
  406. echo " </select>\n";
  407. }
  408. elseif ($category == "domain" && $subcategory == "time_format" && $name == "text" ) {
  409. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  410. echo " <option value='24h' ".(($default_setting_value == "24h") ? "selected='selected'" : null).">".$text['label-24-hour']."</option>\n";
  411. echo " <option value='12h' ".(($default_setting_value == "12h") ? "selected='selected'" : null).">".$text['label-12-hour']."</option>\n";
  412. echo " </select>\n";
  413. }
  414. elseif ($subcategory == 'password' || substr_count($subcategory, '_password') > 0 || $category == "login" && $subcategory == "password_reset_key" && $name == "text") {
  415. echo " <input class='formfld' type='password' id='default_setting_value' name='default_setting_value' onmouseover=\"this.type='text';\" onfocus=\"this.type='text';\" onmouseout=\"if (!$(this).is(':focus')) { this.type='password'; }\" onblur=\"this.type='password';\" maxlength='255' value=\"".$default_setting_value."\">\n";
  416. }
  417. elseif ($category == "theme" && substr_count($subcategory, "_color") > 0 && ($name == "text" || $name == 'array')) {
  418. echo " <input type='text' class='formfld colorpicker' id='default_setting_value' name='default_setting_value' value=\"".$default_setting_value."\">\n";
  419. }
  420. elseif ($category == "theme" && substr_count($subcategory, "_font") > 0 && $name == "text") {
  421. $default_setting_value = str_replace('"', "'", $default_setting_value);
  422. if ($fonts = get_available_fonts('alpha')) {
  423. echo " <select class='formfld' id='sel_default_setting_value' onchange=\"if (this.selectedIndex == $('select#sel_default_setting_value option').length - 1) { $('#txt_default_setting_value').val('').fadeIn('fast'); $('#txt_default_setting_value').trigger('focus'); } else { $('#txt_default_setting_value').fadeOut('fast', function(){ $('#txt_default_setting_value').val($('#sel_default_setting_value').val()) }); } \">\n";
  424. echo " <option value=''></option>\n";
  425. echo " <optgroup label='".$text['label-web_fonts']."'>\n";
  426. $option_found = false;
  427. foreach ($fonts as $n => $font) {
  428. if ($default_setting_value == $font) {
  429. $selected = 'selected';
  430. $option_found = true;
  431. }
  432. else {
  433. unset($selected);
  434. }
  435. echo " <option value='".$font."' ".$selected.">".$font."</option>\n";
  436. }
  437. echo " </optgroup>\n";
  438. echo " <option value='' disabled='disabled'></option>\n";
  439. echo " <option value='' ".(($default_setting_value != '' && $option_found == false) ? 'selected' : null).">".$text['label-other']."...</option>\n";
  440. echo " </select>";
  441. echo " <input type='text' class='formfld' ".(($default_setting_value == '' || $option_found) ? "style='display: none;'" : null)." id='txt_default_setting_value' name='default_setting_value' value=\"".$default_setting_value."\">\n";
  442. }
  443. else {
  444. echo " <input type='text' class='formfld' id='default_setting_value' name='default_setting_value' value=\"".$default_setting_value."\">\n";
  445. }
  446. }
  447. elseif ($category == "fax" && $subcategory == "page_size" && $name == "text" ) {
  448. echo " <select class='formfld' id='default_setting_value' name='default_setting_value' style=''>\n";
  449. echo " <option value='letter' ".(($default_setting_value == 'letter') ? 'selected' : null).">Letter</option>";
  450. echo " <option value='legal' ".(($default_setting_value == 'legal') ? 'selected' : null).">Legal</option>";
  451. echo " <option value='a4' ".(($default_setting_value == 'a4') ? 'selected' : null).">A4</option>";
  452. echo " </select>";
  453. }
  454. elseif ($category == "fax" && $subcategory == "resolution" && $name == "text" ) {
  455. echo " <select class='formfld' id='default_setting_value' name='default_setting_value' style=''>\n";
  456. echo " <option value='normal' ".(($default_setting_value == 'normal') ? 'selected' : null).">".$text['label-normal']."</option>";
  457. echo " <option value='fine' ".(($default_setting_value == 'fine') ? 'selected' : null).">".$text['label-fine']."</option>";
  458. echo " <option value='superfine' ".(($default_setting_value == 'superfine') ? 'selected' : null).">".$text['label-superfine']."</option>";
  459. echo " </select>";
  460. }
  461. elseif ($category == "provision" && $subcategory == "aastra_time_format" && $name == "text" ) {
  462. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  463. echo " <option value='1' ".(($default_setting_value == "1") ? "selected='selected'" : null).">".$text['label-24-hour']."</option>\n";
  464. echo " <option value='0' ".(($default_setting_value == "0") ? "selected='selected'" : null).">".$text['label-12-hour']."</option>\n";
  465. echo " </select>\n";
  466. }
  467. elseif ($category == "provision" && $subcategory == "aastra_date_format" && $name == "text" ) {
  468. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  469. echo " <option value='0' ".(($default_setting_value == "0") ? "selected='selected'" : null).">WWW MMM DD</option>\n";
  470. echo " <option value='1' ".(($default_setting_value == "1") ? "selected='selected'" : null).">DD-MMM-YY</option>\n";
  471. echo " <option value='2' ".(($default_setting_value == "2") ? "selected='selected'" : null).">YYYY-MM-DD</option>\n";
  472. echo " <option value='3' ".(($default_setting_value == "3") ? "selected='selected'" : null).">DD/MM/YYYY</option>\n";
  473. echo " <option value='4' ".(($default_setting_value == "4") ? "selected='selected'" : null).">DD/MM/YY</option>\n";
  474. echo " <option value='5' ".(($default_setting_value == "5") ? "selected='selected'" : null).">DD-MM-YY</option>\n";
  475. echo " <option value='6' ".(($default_setting_value == "6") ? "selected='selected'" : null).">MM/DD/YY</option>\n";
  476. echo " <option value='7' ".(($default_setting_value == "7") ? "selected='selected'" : null).">MMM DD</option>\n";
  477. echo " </select>\n";
  478. }
  479. elseif ($category == "message" && $subcategory == "display_last" && $name == "text") {
  480. $array = explode(' ',$default_setting_value);
  481. if (!is_numeric($array[0])) { $array[1] = $array[0]; $array[0] = ''; }
  482. echo " <input type='text' class='formfld' id='default_setting_value_1' value=\"".$array[0]."\" onchange=\"$('#default_setting_value').val($('#default_setting_value_1').val() + ' ' + $('#default_setting_value_2 option:selected').val());\">\n";
  483. echo " <select class='formfld' id='default_setting_value_2' onchange=\"$('#default_setting_value').val($('#default_setting_value_1').val() + ' ' + $('#default_setting_value_2 option:selected').val());\">\n";
  484. echo " <option value='hours' ".($array[1] == "hours" ? "selected='selected'" : null).">".$text['label-hours']."</option>\n";
  485. echo " <option value='days' ".($array[1] == "days" ? "selected='selected'" : null).">".$text['label-days']."</option>\n";
  486. echo " <option value='messages' ".($array[1] == "messages" ? "selected='selected'" : null).">".$text['label-messages']."</option>\n";
  487. echo " </select>\n";
  488. echo " <input type='hidden' id='default_setting_value' name='default_setting_value' value=\"".$default_setting_value."\">\n";
  489. unset($array);
  490. }
  491. elseif ($category == "theme" && $subcategory == "domain_visible" && $name == "text" ) {
  492. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  493. echo " <option value='false' ".(($default_setting_value == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
  494. echo " <option value='true' ".(($default_setting_value == "true") ? "selected='selected'" : null).">".$text['label-true']."</option>\n";
  495. echo " </select>\n";
  496. }
  497. elseif ($category == "theme" && $subcategory == "cache" && $name == "boolean" ) {
  498. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  499. echo " <option value='true' ".(($default_setting_value == "true") ? "selected='selected'" : null).">".$text['label-true']."</option>\n";
  500. echo " <option value='false' ".(($default_setting_value == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
  501. echo " </select>\n";
  502. }
  503. elseif (
  504. ($category == "theme" && $subcategory == "menu_main_icons" && $name == "boolean") ||
  505. ($category == "theme" && $subcategory == "menu_sub_icons" && $name == "boolean")
  506. ) {
  507. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  508. echo " <option value='true' ".(($default_setting_value == "true") ? "selected='selected'" : null).">".$text['label-true']."</option>\n";
  509. echo " <option value='false' ".(($default_setting_value == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
  510. echo " </select>\n";
  511. }
  512. elseif ($category == "theme" && $subcategory == "menu_brand_type" && $name == "text" ) {
  513. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  514. echo " <option value='image' ".(($default_setting_value == "image") ? "selected='selected'" : null).">".$text['label-image']."</option>\n";
  515. echo " <option value='text' ".(($default_setting_value == "text") ? "selected='selected'" : null).">".$text['label-text']."</option>\n";
  516. echo " <option value='image_text' ".(($default_setting_value == "image_text") ? "selected='selected'" : null).">".$text['label-image_text']."</option>\n";
  517. echo " <option value='none' ".(($default_setting_value == "none") ? "selected='selected'" : null).">".$text['label-none']."</option>\n";
  518. echo " </select>\n";
  519. }
  520. elseif ($category == "theme" && $subcategory == "menu_style" && $name == "text" ) {
  521. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  522. echo " <option value='fixed' ".(($default_setting_value == "fixed") ? "selected='selected'" : null).">".$text['label-fixed']."</option>\n";
  523. echo " <option value='static' ".(($default_setting_value == "static") ? "selected='selected'" : null).">".$text['label-static']."</option>\n";
  524. echo " <option value='inline' ".(($default_setting_value == "inline") ? "selected='selected'" : null).">".$text['label-inline']."</option>\n";
  525. echo " <option value='side' ".(($default_setting_value == "side") ? "selected='selected'" : null).">".$text['label-side']."</option>\n";
  526. echo " </select>\n";
  527. }
  528. elseif ($category == "theme" && $subcategory == "menu_position" && $name == "text" ) {
  529. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  530. echo " <option value='top' ".(($default_setting_value == "top") ? "selected='selected'" : null).">".$text['label-top']."</option>\n";
  531. echo " <option value='bottom' ".(($default_setting_value == "bottom") ? "selected='selected'" : null).">".$text['label-bottom']."</option>\n";
  532. echo " </select>\n";
  533. }
  534. elseif ($category == "theme" && $subcategory == "logo_align" && $name == "text" ) {
  535. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  536. echo " <option value='left' ".(($default_setting_value == "left") ? "selected='selected'" : null).">".$text['label-left']."</option>\n";
  537. echo " <option value='center' ".(($default_setting_value == "center") ? "selected='selected'" : null).">".$text['label-center']."</option>\n";
  538. echo " <option value='right' ".(($default_setting_value == "right") ? "selected='selected'" : null).">".$text['label-right']."</option>\n";
  539. echo " </select>\n";
  540. }
  541. elseif ($category == "theme" && $subcategory == "custom_css_code" && $name == "text" ) {
  542. echo " <textarea class='formfld' style='min-width: 100%; height: 300px; font-family: courier, monospace; overflow: auto; resize: vertical' id='default_setting_value' name='default_setting_value' wrap='off'>".$default_setting_value."</textarea>\n";
  543. }
  544. elseif ($category == "theme" && $subcategory == "button_icons" && $name == "text" ) {
  545. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  546. echo " <option value='auto'>".$text['option-button_icons_auto']."</option>\n";
  547. echo " <option value='only' ".($default_setting_value == "only" ? "selected='selected'" : null).">".$text['option-button_icons_only']."</option>\n";
  548. echo " <option value='always' ".($default_setting_value == "always" ? "selected='selected'" : null).">".$text['option-button_icons_always']."</option>\n";
  549. echo " <option value='never' ".($default_setting_value == "never" ? "selected='selected'" : null).">".$text['option-button_icons_never']."</option>\n";
  550. echo " </select>\n";
  551. }
  552. elseif ($category == "voicemail" && $subcategory == "voicemail_file" && $name == "text" ) {
  553. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  554. echo " <option value='listen' ".(($default_setting_value == "listen") ? "selected='selected'" : null).">".$text['option-voicemail_file_listen']."</option>\n";
  555. echo " <option value='link' ".(($default_setting_value == "link") ? "selected='selected'" : null).">".$text['option-voicemail_file_link']."</option>\n";
  556. echo " <option value='attach' ".(($default_setting_value == "attach") ? "selected='selected'" : null).">".$text['option-voicemail_file_attach']."</option>\n";
  557. echo " </select>\n";
  558. }
  559. elseif ($category == "voicemail" && $subcategory == "keep_local" && $name == "boolean" ) {
  560. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  561. echo " <option value='true' ".(($default_setting_value == "true") ? "selected='selected'" : null).">".$text['label-true']."</option>\n";
  562. echo " <option value='false' ".(($default_setting_value == "false") ? "selected='selected'" : null).">".$text['label-false']."</option>\n";
  563. echo " </select>\n";
  564. }
  565. elseif ($category == "recordings" && $subcategory == "storage_type" && $name == "text" ) {
  566. echo " <select class='formfld' id='default_setting_value' name='default_setting_value'>\n";
  567. echo " <option value='file'>".$text['label-file']."</option>\n";
  568. echo " <option value='base64' ".(($default_setting_value == "base64") ? "selected='selected'" : null).">".$text['label-base64']."</option>\n";
  569. echo " </select>\n";
  570. }
  571. elseif (is_json($default_setting_value)) {
  572. echo " <textarea class='formfld' style='width: 100%; height: 80px; font-family: courier, monospace; overflow: auto;' id='default_setting_value' name='default_setting_value' wrap='off'>".$default_setting_value."</textarea>\n";
  573. }
  574. else {
  575. echo " <input class='formfld' type='text' id='default_setting_value' name='default_setting_value' value=\"".htmlspecialchars($default_setting_value)."\">\n";
  576. }
  577. echo "<br />\n";
  578. echo $text['description-value']."\n";
  579. if ($category == "theme" && substr_count($subcategory, "_font") > 0 && $name == "text") {
  580. echo "&nbsp;&nbsp;".$text['label-reference'].": <a href='https://www.google.com/fonts' target='_blank'>".$text['label-web_fonts']."</a>\n";
  581. }
  582. echo "</td>\n";
  583. echo "</tr>\n";
  584. echo "</table>\n";
  585. echo "<div id='tr_order' ".(($default_setting_name != 'array') ? "style='display: none;'" : null).">\n";
  586. echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
  587. echo "<tr>\n";
  588. echo "<td width='30%' class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
  589. echo " ".$text['label-order']."\n";
  590. echo "</td>\n";
  591. echo "<td width='70%' class='vtable' align='left'>\n";
  592. echo " <select name='default_setting_order' class='formfld'>\n";
  593. $i=0;
  594. while($i<=999) {
  595. $selected = ($i == $default_setting_order) ? "selected" : null;
  596. if (strlen($i) == 1) {
  597. echo " <option value='00$i' ".$selected.">00$i</option>\n";
  598. }
  599. if (strlen($i) == 2) {
  600. echo " <option value='0$i' ".$selected.">0$i</option>\n";
  601. }
  602. if (strlen($i) == 3) {
  603. echo " <option value='$i' ".$selected.">$i</option>\n";
  604. }
  605. $i++;
  606. }
  607. echo " </select>\n";
  608. echo " <br />\n";
  609. echo $text['description-order']."\n";
  610. echo "</td>\n";
  611. echo "</tr>\n";
  612. echo "</table>\n";
  613. echo "</div>\n";
  614. echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
  615. echo "<tr>\n";
  616. echo "<td width='30%' class='vncellreq' valign='top' align='left' nowrap>\n";
  617. echo " ".$text['label-enabled']."\n";
  618. echo "</td>\n";
  619. echo "<td width='70%' class='vtable' align='left'>\n";
  620. echo " <select class='formfld' name='default_setting_enabled'>\n";
  621. if ($default_setting_enabled == "true") {
  622. echo " <option value='true' selected='selected'>".$text['label-true']."</option>\n";
  623. }
  624. else {
  625. echo " <option value='true'>".$text['label-true']."</option>\n";
  626. }
  627. if ($default_setting_enabled == "false") {
  628. echo " <option value='false' selected='selected'>".$text['label-false']."</option>\n";
  629. }
  630. else {
  631. echo " <option value='false'>".$text['label-false']."</option>\n";
  632. }
  633. echo " </select>\n";
  634. echo "<br />\n";
  635. echo $text['description-enabled']."\n";
  636. echo "</td>\n";
  637. echo "</tr>\n";
  638. echo "<tr>\n";
  639. echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
  640. echo " ".$text['label-description']."\n";
  641. echo "</td>\n";
  642. echo "<td class='vtable' align='left'>\n";
  643. echo " <input class='formfld' type='text' name='default_setting_description' maxlength='255' value=\"".$default_setting_description."\">\n";
  644. echo "<br />\n";
  645. echo $text['description-description']."\n";
  646. echo "</td>\n";
  647. echo "</tr>\n";
  648. echo "</table>";
  649. echo "<br><br>";
  650. if ($action == "update") {
  651. echo "<input type='hidden' name='default_setting_uuid' value='".escape($default_setting_uuid)."'>\n";
  652. echo "<input type='hidden' name='search' value='".escape($search)."'>\n";
  653. }
  654. echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
  655. echo "</form>";
  656. if ($_REQUEST["id"] == '' && $_REQUEST["default_setting_category"] != '') {
  657. echo "<script>document.getElementById('default_setting_subcategory').focus();</script>";
  658. }
  659. echo "<script>\n";
  660. //capture enter key to submit form
  661. if (!($category == "theme" && $subcategory == "custom_css_code" && $name == "text" )) {
  662. echo " $(window).on('keypress',function(event){\n";
  663. echo " if (event.which == 13) { submit_form(); }\n";
  664. echo " });\n";
  665. }
  666. //hide/convert password fields then submit form
  667. echo " function submit_form() {\n";
  668. echo " $('input:password').css('visibility','hidden');\n";
  669. echo " $('input:password').attr({type:'text'});\n";
  670. echo " $('form#frm').submit();\n";
  671. echo " }\n";
  672. //define lowercase class
  673. echo " $('.lowercase').on('blur',function(){ this.value = this.value.toLowerCase(); });";
  674. //show order if array
  675. echo " $('#default_setting_name').on('keyup',function(){ \n";
  676. echo " (this.value.toLowerCase() == 'array') ? $('#tr_order').slideDown('fast') : $('#tr_order').slideUp('fast');\n";
  677. echo " });\n";
  678. echo "</script>\n";
  679. //include the footer
  680. require_once "resources/footer.php";
  681. ?>