school_bell_edit.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576
  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-2025
  17. the Initial Developer. All Rights Reserved.
  18. Contributor(s):
  19. Mark J Crane <[email protected]>
  20. Igor Olhovskiy <[email protected]>
  21. */
  22. //includes files
  23. require_once dirname(__DIR__, 2) . "/resources/require.php";
  24. require_once "resources/pdo.php";
  25. require_once "resources/check_auth.php";
  26. //check permissions
  27. if (permission_exists('school_bell_edit') || permission_exists('school_bell_add')) {
  28. //access granted
  29. } else {
  30. echo "access denied";
  31. exit;
  32. }
  33. //add multi-lingual support
  34. $language = new text;
  35. $text = $language->get();
  36. // Get timezones
  37. $timezone_identifiers_list = timezone_identifiers_list();
  38. //action add or update
  39. if (isset($_REQUEST["id"])) {
  40. $action = "update";
  41. $school_bell_uuid = check_str($_REQUEST["id"]);
  42. } else {
  43. $action = "add";
  44. }
  45. //get http post variables and set them to php variables
  46. if (count($_POST) > 0) {
  47. $school_bell_name = check_str($_POST["school_bell_name"]);
  48. $school_bell_leg_a_type = check_str($_POST["school_bell_leg_a_type"]);
  49. $school_bell_leg_a_data = check_str($_POST["school_bell_leg_a_data"]);
  50. $school_bell_leg_b_type = check_str($_POST["school_bell_leg_b_type"]);
  51. $school_bell_leg_b_data = check_str($_POST["school_bell_leg_b_data"]);
  52. $school_bell_ring_timeout = (int)check_str($_POST["school_bell_ring_timeout"]);
  53. $school_bell_min = (int)check_str($_POST["school_bell_min"]);
  54. $school_bell_hour = (int)check_str($_POST["school_bell_hour"]);
  55. $school_bell_dom = (int)check_str($_POST["school_bell_dom"]);
  56. $school_bell_mon = (int)check_str($_POST["school_bell_mon"]);
  57. $school_bell_dow = (int)check_str($_POST["school_bell_dow"]);
  58. $school_bell_timezone = check_str($_POST["school_bell_timezone"]);
  59. $school_bell_enabled = check_str($_POST["school_bell_enabled"]);
  60. $school_bell_description = $_POST["school_bell_description"];
  61. // Filter values:
  62. if (strlen($school_bell_leg_a_type) == 0) {
  63. $school_bell_leg_a_type = "loopback/";
  64. }
  65. if (strlen($school_bell_leg_b_data) > 0) {
  66. $school_bell_leg_b_type = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$school_bell_leg_b_data;
  67. }
  68. // Set default ring timeout to 3 sec
  69. if ($school_bell_ring_timeout < 0) {
  70. $school_bell_ring_timeout = 3;
  71. }
  72. if ($school_bell_min != -1 && ($school_bell_min > 59 || $school_bell_min < 0)) {
  73. $school_bell_min = 0;
  74. }
  75. if ($school_bell_hour != -1 && ($school_bell_hour < 0 || $school_bell_hour > 23)) {
  76. $school_bell_hour = 0;
  77. }
  78. if ($school_bell_dom != -1 && ($school_bell_dom < 1 || $school_bell_dom > 31)) {
  79. $school_bell_dom = 1;
  80. }
  81. if ($school_bell_mon != -1 && ($school_bell_mon < 1 || $school_bell_mon > 12)) {
  82. $school_bell_mon = 1;
  83. }
  84. if ($school_bell_dow != -1 && ($school_bell_dow < 0 || $school_bell_dow > 6)) {
  85. $school_bell_dow = 0;
  86. }
  87. if (!in_array($school_bell_timezone, $timezone_identifiers_list)) {
  88. $school_bell_timezone = date_default_timezone_get();
  89. }
  90. if (strlen($school_bell_enabled) == 0) {
  91. $school_bell_enabled = 'true';
  92. }
  93. }
  94. //handle the http post
  95. if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
  96. $msg = '';
  97. //check for all required data
  98. if (strlen($school_bell_name) == 0) {
  99. $msg .= $text['label-school_bell_name']."<br>\n";
  100. }
  101. if (strlen($school_bell_leg_a_data) == 0) {
  102. $msg .= $text['label-school_bell_leg_a_data']."<br>\n";
  103. }
  104. if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
  105. require_once "resources/header.php";
  106. require_once "resources/persist_form_var.php";
  107. echo "<div align='center'>\n";
  108. echo "<table><tr><td>\n";
  109. echo $msg."<br />";
  110. echo "</td></tr></table>\n";
  111. persistformvar($_POST);
  112. echo "</div>\n";
  113. require_once "resources/footer.php";
  114. return;
  115. }
  116. //add or update the database
  117. if (($_POST["persistformvar"] != "true") > 0) {
  118. if ($action == "add") {
  119. $school_bell_uuid = uuid();
  120. $sql = "INSERT INTO v_school_bells";
  121. $sql .= " (";
  122. $sql .= "domain_uuid, ";
  123. $sql .= "school_bell_uuid, ";
  124. $sql .= "school_bell_name, ";
  125. $sql .= "school_bell_leg_a_type, ";
  126. $sql .= "school_bell_leg_a_data, ";
  127. $sql .= "school_bell_leg_b_type, ";
  128. $sql .= "school_bell_leg_b_data, ";
  129. $sql .= "school_bell_ring_timeout, ";
  130. $sql .= "school_bell_min, ";
  131. $sql .= "school_bell_hour, ";
  132. $sql .= "school_bell_dom, ";
  133. $sql .= "school_bell_mon, ";
  134. $sql .= "school_bell_dow, ";
  135. $sql .= "school_bell_timezone, ";
  136. $sql .= "school_bell_enabled, ";
  137. $sql .= "school_bell_description ";
  138. $sql .= ") ";
  139. $sql .= "VALUES ";
  140. $sql .= "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  141. $insert_array = array(
  142. 'domain_uuid' => $domain_uuid,
  143. 'school_bell_uuid' => $school_bell_uuid,
  144. 'school_bell_name' => $school_bell_name,
  145. 'school_bell_leg_a_type' => $school_bell_leg_a_type,
  146. 'school_bell_leg_a_data' => $school_bell_leg_a_data,
  147. 'school_bell_leg_b_type' => $school_bell_leg_b_type,
  148. 'school_bell_leg_b_data' => $school_bell_leg_b_data,
  149. 'school_bell_ring_timeout' => $school_bell_ring_timeout,
  150. 'school_bell_min' => $school_bell_min,
  151. 'school_bell_hour' => $school_bell_hour,
  152. 'school_bell_dom' => $school_bell_dom,
  153. 'school_bell_mon' => $school_bell_mon,
  154. 'school_bell_dow' => $school_bell_dow,
  155. 'school_bell_timezone' => $school_bell_timezone,
  156. 'school_bell_enabled' => $school_bell_enabled,
  157. 'school_bell_description' => $school_bell_description
  158. );
  159. $prep_statement = $db->prepare(check_sql($sql));
  160. $prep_statement->execute(array_values($insert_array));
  161. unset($sql, $prep_statement, $insert_array);
  162. message::add($text['label-add-complete']);
  163. header("Location: school_bells.php");
  164. return;
  165. } //if ($action == "add")
  166. if ($action == "update") {
  167. $sql = "UPDATE v_school_bells SET ";
  168. $sql .= "school_bell_name = :school_bell_name, ";
  169. $sql .= "school_bell_leg_a_type = :school_bell_leg_a_type, ";
  170. $sql .= "school_bell_leg_a_data = :school_bell_leg_a_data, ";
  171. $sql .= "school_bell_leg_b_type = :school_bell_leg_b_type, ";
  172. $sql .= "school_bell_leg_b_data = :school_bell_leg_b_data, ";
  173. $sql .= "school_bell_ring_timeout = :school_bell_ring_timeout, ";
  174. $sql .= "school_bell_min = :school_bell_min, ";
  175. $sql .= "school_bell_hour = :school_bell_hour, ";
  176. $sql .= "school_bell_dom = :school_bell_dom, ";
  177. $sql .= "school_bell_mon = :school_bell_mon, ";
  178. $sql .= "school_bell_dow = :school_bell_dow, ";
  179. $sql .= "school_bell_timezone = :school_bell_timezone, ";
  180. $sql .= "school_bell_enabled = :school_bell_enabled, ";
  181. $sql .= "school_bell_description = :school_bell_description";
  182. $sql .= " WHERE domain_uuid = :domain_uuid";
  183. $sql .= " AND school_bell_uuid = :school_bell_uuid";
  184. $prep_statement = $db->prepare($sql);
  185. $prep_statement->bindValue('school_bell_name', $school_bell_name);
  186. $prep_statement->bindValue('school_bell_leg_a_type', $school_bell_leg_a_type);
  187. $prep_statement->bindValue('school_bell_leg_a_data', $school_bell_leg_a_data);
  188. $prep_statement->bindValue('school_bell_leg_b_type', $school_bell_leg_b_type);
  189. $prep_statement->bindValue('school_bell_leg_b_data', $school_bell_leg_b_data);
  190. $prep_statement->bindValue('school_bell_ring_timeout', $school_bell_ring_timeout);
  191. $prep_statement->bindValue('school_bell_min', $school_bell_min);
  192. $prep_statement->bindValue('school_bell_hour', $school_bell_hour);
  193. $prep_statement->bindValue('school_bell_dom', $school_bell_dom);
  194. $prep_statement->bindValue('school_bell_mon', $school_bell_mon);
  195. $prep_statement->bindValue('school_bell_dow', $school_bell_dow);
  196. $prep_statement->bindValue('school_bell_timezone', $school_bell_timezone);
  197. $prep_statement->bindValue('school_bell_enabled', $school_bell_enabled);
  198. $prep_statement->bindValue('school_bell_description', $school_bell_description);
  199. $prep_statement->bindValue('domain_uuid', $domain_uuid);
  200. $prep_statement->bindValue('school_bell_uuid', $school_bell_uuid);
  201. if ($prep_statement) {
  202. $prep_statement->execute();
  203. }
  204. unset($sql, $prep_statement);
  205. message::add($text['label-update-complete']);
  206. header("Location: school_bells.php");
  207. return;
  208. } //if ($action == "update")
  209. } //if ($_POST["persistformvar"] != "true")
  210. } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
  211. //pre-populate the form
  212. if (count($_GET) > 0 && $_POST["persistformvar"] != "true") {
  213. $school_bell_uuid = $_GET["id"];
  214. $sql = "SELECT * FROM v_school_bells";
  215. $sql .= " WHERE domain_uuid = :domain_uuid";
  216. $sql .= " AND school_bell_uuid = :school_bell_uuid";
  217. $sql .= " LIMIT 1";
  218. $prep_statement = $db->prepare($sql);
  219. $prep_statement->bindValue('domain_uuid', $domain_uuid);
  220. $prep_statement->bindValue('school_bell_uuid', $school_bell_uuid);
  221. $prep_statement->execute();
  222. $result = $prep_statement->fetchAll();
  223. foreach ($result as &$row) {
  224. $school_bell_name = $row["school_bell_name"];
  225. $school_bell_leg_a_type = $row["school_bell_leg_a_type"];
  226. $school_bell_leg_a_data = $row["school_bell_leg_a_data"];
  227. $school_bell_leg_b_type = $row["school_bell_leg_b_type"];
  228. $school_bell_leg_b_data = $row["school_bell_leg_b_data"];
  229. $school_bell_min = $row["school_bell_min"];
  230. $school_bell_hour = $row["school_bell_hour"];
  231. $school_bell_dom = $row["school_bell_dom"];
  232. $school_bell_mon = $row["school_bell_mon"];
  233. $school_bell_dow = $row["school_bell_dow"];
  234. $school_bell_timezone = $row["school_bell_timezone"];
  235. $school_bell_enabled = $row["school_bell_enabled"];
  236. $school_bell_description = $row["school_bell_description"];
  237. break; //limit to 1 row ? Should be only 1 result at all
  238. }
  239. unset ($prep_statement, $sql);
  240. }
  241. //get the recordings
  242. $sql = "SELECT recording_name, recording_filename FROM v_recordings";
  243. $sql .= " WHERE domain_uuid = :domain_uuid";
  244. $sql .= " ORDER BY recording_name ASC";
  245. $prep_statement = $db->prepare(check_sql($sql));
  246. $prep_statement->bindValue('domain_uuid', $domain_uuid);
  247. $prep_statement->execute();
  248. $recordings = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
  249. //get the phrases
  250. // $sql = "SELECT * FROM v_phrases ";
  251. // $sql .= " WHERE (domain_uuid = :domain_uuid OR domain_uuid IS NULL) ";
  252. // $prep_statement = $db->prepare(check_sql($sql));
  253. // $prep_statement->bindValue('domain_uuid', $domain_uuid);
  254. // $prep_statement->execute();
  255. // $phrases = $prep_statement->fetchAll(PDO::FETCH_NAMED);
  256. //get the sound files
  257. $file = new file;
  258. $sound_files = $file->sounds();
  259. $school_bell_selector = new school_bell_selector($_SESSION['domain']['time_format']['text'] == '12h');
  260. // One of defaults
  261. if (strlen($school_bell_timezone) == 0) {
  262. $school_bell_timezone = date_default_timezone_get();
  263. }
  264. //show the header
  265. require_once "resources/header.php";
  266. //show the content
  267. echo "<form method='post' name='frm' action=''>\n";
  268. echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
  269. echo "<tr>\n";
  270. if ($action == "add") {
  271. echo "<td align='left' width='30%' nowrap='nowrap'><b>".$text['label-school_bells-add']."</b></td>\n";
  272. }
  273. if ($action == "update") {
  274. echo "<td align='left' width='30%' nowrap='nowrap'><b>".$text['label-school_bells-edit']."</b></td>\n";
  275. }
  276. echo "<td width='70%' align='right'>";
  277. echo " <input type='button' class='btn' name='' alt='".$text['button-back']."' onclick=\"window.location='school_bells.php'\" value='".$text['button-back']."'>";
  278. echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
  279. echo "</td>\n";
  280. echo "</tr>\n";
  281. echo "<tr>\n";
  282. echo "<td align='left' colspan='2'>\n";
  283. if ($action == "add") {
  284. echo $text['label-school_bells-add-note']."<br /><br />\n";
  285. }
  286. if ($action == "update") {
  287. echo $text['label-school_bells-edit-note']."<br /><br />\n";
  288. }
  289. echo "</td>\n";
  290. echo "</tr>\n";
  291. // Show name
  292. echo "<tr>\n";
  293. echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
  294. echo " ".$text['label-school_bell_name']."\n";
  295. echo "</td>\n";
  296. echo "<td class='vtable' align='left'>\n";
  297. echo " <input class='formfld' type='text' name='school_bell_name' maxlength='255' value=\"".escape($school_bell_name)."\" required='required'>\n";
  298. echo "<br />\n";
  299. echo $text['description-school_bell_name']."\n";
  300. echo "</td>\n";
  301. echo "</tr>\n";
  302. // Show school_bell_leg_a_data
  303. echo "<tr>\n";
  304. echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
  305. echo " ".$text['label-school_bell_leg_a_data']."\n";
  306. echo "</td>\n";
  307. echo "<td class='vtable' align='left'>\n";
  308. echo " <input class='formfld' type='text' name='school_bell_leg_a_data' maxlength='255' value=\"".escape($school_bell_leg_a_data)."\" required='required'>\n";
  309. echo "<br />\n";
  310. echo $text['description-school_bell_leg_a_data']."\n";
  311. echo "</td>\n";
  312. echo "</tr>\n";
  313. // Show ring timeout
  314. echo "<tr>\n";
  315. echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
  316. echo " ".$text['label-school_bell_ring_timeout']."\n";
  317. echo "</td>\n";
  318. echo "<td class='vtable' align='left'>\n";
  319. echo " <input class='formfld' type='number' name='school_bell_ring_timeout' min='0' max='3600' value=\"".escape($school_bell_ring_timeout)."\">\n";
  320. echo "<br />\n";
  321. echo $text['description-school_bell_ring_timeout']."\n";
  322. echo "</td>\n";
  323. echo "</tr>\n";
  324. // Show school_bell_leg_b_data
  325. echo "<tr>\n";
  326. echo "<td class='vncellreq' valign='top' align='left' nowrap>\n";
  327. echo " ".$text['label-school_bell_leg_b_data']."\n";
  328. echo "</td>\n";
  329. echo "<td class='vtable' align='left'>\n";
  330. echo "<select name='school_bell_leg_b_data' id='school_bell_leg_b_data' class='formfld'>\n";
  331. echo " <option></option>\n";
  332. //recordings
  333. $tmp_selected = false;
  334. if (is_array($recordings)) {
  335. echo "<optgroup label='Recordings'>\n";
  336. foreach ($recordings as &$row) {
  337. $recording_name = $row["recording_name"];
  338. $recording_filename = $row["recording_filename"];
  339. if ($school_bell_leg_b_data == $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$recording_filename && strlen($school_bell_leg_b_data) > 0) {
  340. $tmp_selected = true;
  341. echo " <option value='".escape($_SESSION['switch']['recordings']['dir'])."/".escape($_SESSION['domain_name'])."/".escape($recording_filename)."' selected='selected'>".escape($recording_name)."</option>\n";
  342. }
  343. else if ($school_bell_leg_b_data == $recording_filename && strlen($school_bell_leg_b_data) > 0) {
  344. $tmp_selected = true;
  345. echo " <option value='".escape($recording_filename)."' selected='selected'>".escape($recording_name)."</option>\n";
  346. }
  347. else {
  348. echo " <option value='".escape($recording_filename)."'>".escape($recording_name)."</option>\n";
  349. }
  350. }
  351. echo "</optgroup>\n";
  352. }
  353. if (if_group("superadmin")) {
  354. if (!$tmp_selected && strlen($school_bell_leg_b_data) > 0) {
  355. echo "<optgroup label='Selected'>\n";
  356. if (file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/".$school_bell_leg_b_data)) {
  357. echo " <option value='".escape($_SESSION['switch']['recordings']['dir'])."/".escape($_SESSION['domain_name'])."/".escape($school_bell_leg_b_data)."' selected='selected'>".escape($school_bell_leg_b_data)."</option>\n";
  358. }
  359. else if (substr($school_bell_leg_b_data, -3) == "wav" || substr($school_bell_leg_b_data, -3) == "mp3") {
  360. echo " <option value='".escape($school_bell_leg_b_data)."' selected='selected'>".escape($school_bell_leg_b_data)."</option>\n";
  361. }
  362. else {
  363. echo " <option value='".escape($school_bell_leg_b_data)."' selected='selected'>".escape($school_bell_leg_b_data)."</option>\n";
  364. }
  365. echo "</optgroup>\n";
  366. }
  367. unset($tmp_selected);
  368. }
  369. echo " </select>\n";
  370. if (if_group("superadmin")) {
  371. echo "<input type='button' id='btn_select_to_input_".escape($destination_id)."' class='btn' name='' alt='back' onclick='changeToInput".escape($destination_id)."(document.getElementById(\"".escape($destination_id)."\"));this.style.visibility = \"hidden\";' value='&#9665;'>";
  372. unset($destination_id);
  373. }
  374. echo " <br />\n";
  375. echo $text['description-school_bell_leg_b_data']."\n";
  376. echo "</td>\n";
  377. echo "</tr>\n";
  378. // End school_bell_leg_b_data
  379. // Show divider
  380. echo "<tr><td colspan='2'><br /></td></tr>\n";
  381. // Show Min
  382. echo "<tr>\n";
  383. echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
  384. echo " ".$text['label-school_bell_min']."\n";
  385. echo "</td>\n";
  386. echo "<td class='vtable' align='left'>\n";
  387. echo $school_bell_selector->draw_min('school_bell_min', $school_bell_min);
  388. echo "<br />\n";
  389. echo $text['description-school_bell_min']."\n";
  390. echo "\n";
  391. echo "</td>\n";
  392. echo "</tr>\n";
  393. // Show Hour
  394. echo "<tr>\n";
  395. echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
  396. echo " ".$text['label-school_bell_hour']."\n";
  397. echo "</td>\n";
  398. echo "<td class='vtable' align='left'>\n";
  399. echo $school_bell_selector->draw_hou('school_bell_hour', $school_bell_hour);
  400. echo "<br />\n";
  401. echo $text['description-school_bell_hour']."\n";
  402. echo "\n";
  403. echo "</td>\n";
  404. echo "</tr>\n";
  405. // Show Day of the Month
  406. echo "<tr>\n";
  407. echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
  408. echo " ".$text['label-school_bell_dom']."\n";
  409. echo "</td>\n";
  410. echo "<td class='vtable' align='left'>\n";
  411. echo $school_bell_selector->draw_dom('school_bell_dom', $school_bell_dom);
  412. echo "<br />\n";
  413. echo $text['description-school_bell_dom']."\n";
  414. echo "\n";
  415. echo "</td>\n";
  416. echo "</tr>\n";
  417. // Show Month
  418. echo "<tr>\n";
  419. echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
  420. echo " ".$text['label-school_bell_mon']."\n";
  421. echo "</td>\n";
  422. echo "<td class='vtable' align='left'>\n";
  423. echo $school_bell_selector->draw_mon('school_bell_mon', $school_bell_mon);
  424. echo "<br />\n";
  425. echo $text['description-school_bell_mon']."\n";
  426. echo "\n";
  427. echo "</td>\n";
  428. echo "</tr>\n";
  429. // Show Day of the Week
  430. echo "<tr>\n";
  431. echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
  432. echo " ".$text['label-school_bell_dow']."\n";
  433. echo "</td>\n";
  434. echo "<td class='vtable' align='left'>\n";
  435. echo $school_bell_selector->draw_dow('school_bell_dow', $school_bell_dow);
  436. echo "<br />\n";
  437. echo $text['description-school_bell_dow']."\n";
  438. echo "\n";
  439. echo "</td>\n";
  440. echo "</tr>\n";
  441. // Show timezone
  442. echo "<tr>\n";
  443. echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
  444. echo " ".$text['label-school_bell_timezone']."\n";
  445. echo "</td>\n";
  446. echo "<td class='vtable' align='left'>\n";
  447. echo " <select class='formfld' name='school_bell_timezone'>\n";
  448. foreach ($timezone_identifiers_list as $timezone_identifier) {
  449. echo " <option value='$timezone_identifier' ".(($school_bell_timezone == $timezone_identifier) ? "selected" : null).">".escape($timezone_identifier)."</option>\n";
  450. }
  451. echo " </select>\n";
  452. echo "<br />\n";
  453. echo $text['description-school_bell_timezone']."\n";
  454. echo "\n";
  455. echo "</td>\n";
  456. echo "</tr>\n";
  457. // Show divider
  458. echo "<tr><td colspan='2'><br /></td></tr>\n";
  459. // Show enabled
  460. echo "<tr>\n";
  461. echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
  462. echo " ".$text['label-school_bell_enabled']."\n";
  463. echo "</td>\n";
  464. echo "<td class='vtable' align='left'>\n";
  465. echo " <select class='formfld' name='school_bell_enabled'>\n";
  466. echo " <option value='true' ".(($school_bell_enabled == "true") ? "selected" : null).">".$text['label-true']."</option>\n";
  467. echo " <option value='false' ".(($school_bell_enabled == "false") ? "selected" : null).">".$text['label-false']."</option>\n";
  468. echo " </select>\n";
  469. echo "<br />\n";
  470. echo $text['description-school_bell_enabled']."\n";
  471. echo "\n";
  472. echo "</td>\n";
  473. echo "</tr>\n";
  474. // Show description
  475. echo "<tr>\n";
  476. echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
  477. echo " ".$text['label-school_bell_description']."\n";
  478. echo "</td>\n";
  479. echo "<td class='vtable' align='left'>\n";
  480. echo " <input class='formfld' type='text' name='school_bell_description' maxlength='255' value=\"".escape($school_bell_description)."\">\n";
  481. echo "<br />\n";
  482. echo $text['description-school_bell_description']."\n";
  483. echo "</td>\n";
  484. echo "</tr>\n";
  485. echo " <tr>\n";
  486. echo " <td colspan='2' align='right'>\n";
  487. if ($action == "update") {
  488. echo " <input type='hidden' name='id' value='".escape($school_bell_uuid)."'>\n";
  489. }
  490. echo " <br>";
  491. echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
  492. echo " </td>\n";
  493. echo " </tr>";
  494. echo "</table>";
  495. echo "<br><br>";
  496. echo "</form>";
  497. echo "<table>";
  498. echo "<tr>";
  499. echo "<td>";
  500. echo $text['description-school_bells_schedule_templates'];
  501. echo "</td>";
  502. echo "</tr>";
  503. echo "</table>";
  504. //include the footer
  505. require_once "resources/footer.php";
  506. ?>