school_bell_edit.php 21 KB

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