schema_field_edit.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  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-2012
  17. the Initial Developer. All Rights Reserved.
  18. Contributor(s):
  19. Mark J Crane <[email protected]>
  20. */
  21. require_once "root.php";
  22. require_once "resources/require.php";
  23. require_once "resources/check_auth.php";
  24. if (permission_exists('schema_add') || permission_exists('schema_edit')) {
  25. //access granted
  26. }
  27. else {
  28. echo "access denied";
  29. exit;
  30. }
  31. //add multi-lingual support
  32. $language = new text;
  33. $text = $language->get();
  34. //set the action as an add or update
  35. if (isset($_REQUEST["id"])) {
  36. $action = "update";
  37. $schema_field_uuid = check_str($_REQUEST["id"]);
  38. }
  39. else {
  40. $action = "add";
  41. }
  42. //get the http variables
  43. if (strlen($_GET["schema_uuid"]) > 0) {
  44. $schema_uuid = check_str($_GET["schema_uuid"]);
  45. }
  46. //get the http post variables
  47. if (count($_POST)>0) {
  48. $field_label = check_str($_POST["field_label"]);
  49. $field_name = check_str($_POST["field_name"]);
  50. $field_type = check_str($_POST["field_type"]);
  51. $field_value = check_str($_POST["field_value"]);
  52. $field_list_hidden = check_str($_POST["field_list_hidden"]);
  53. $field_search_by = check_str($_POST["field_search_by"]);
  54. $field_column = check_str($_POST["field_column"]);
  55. $field_required = check_str($_POST["field_required"]);
  56. $field_order = check_str($_POST["field_order"]);
  57. $field_order_tab = check_str($_POST["field_order_tab"]);
  58. $field_description = check_str($_POST["field_description"]);
  59. }
  60. if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
  61. $msg = '';
  62. if ($action == "update") {
  63. $schema_field_uuid = check_str($_POST["schema_field_uuid"]);
  64. }
  65. //check for all required data
  66. if (strlen($domain_uuid) == 0) { $msg .= $text['message-required']."domain_uuid<br>\n"; }
  67. if (strlen($field_name) == 0 && $field_type != "label") { $msg .= $text['message-required'].$text['label-field_name']."<br>\n"; }
  68. if (strlen($field_type) == 0) { $msg .= $text['message-required'].$text['label-field_type']."<br>\n"; }
  69. if (strlen($field_list_hidden) == 0) { $msg .= $text['message-required'].$text['label-field_visibility']."<br>\n"; }
  70. if (strlen($field_column) == 0) { $msg .= $text['message-required'].$text['label-field_column']."<br>\n"; }
  71. if (strlen($field_required) == 0) { $msg .= $text['message-required'].$text['label-field_required']."<br>\n"; }
  72. if (strlen($field_order) == 0) { $msg .= $text['message-required'].$text['label-field_order']."<br>\n"; }
  73. if (strlen($field_order_tab) == 0) { $msg .= $text['message-required'].$text['label-field_tab_order']."<br>\n"; }
  74. if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
  75. require_once "resources/header.php";
  76. require_once "resources/persist_form_var.php";
  77. echo "<div align='center'>\n";
  78. echo "<table><tr><td>\n";
  79. echo $msg."<br />";
  80. echo "</td></tr></table>\n";
  81. persistformvar($_POST);
  82. echo "</div>\n";
  83. require_once "resources/footer.php";
  84. return;
  85. }
  86. //add or update the database
  87. if ($_POST["persistformvar"] != "true") {
  88. if ($action == "add" && permission_exists('schema_add')) {
  89. $schema_field_uuid = uuid();
  90. $sql = "insert into v_schema_fields ";
  91. $sql .= "(";
  92. $sql .= "domain_uuid, ";
  93. $sql .= "schema_uuid, ";
  94. $sql .= "schema_field_uuid, ";
  95. $sql .= "field_label, ";
  96. $sql .= "field_name, ";
  97. $sql .= "field_type, ";
  98. $sql .= "field_value, ";
  99. $sql .= "field_list_hidden, ";
  100. $sql .= "field_search_by, ";
  101. $sql .= "field_column, ";
  102. $sql .= "field_required, ";
  103. $sql .= "field_order, ";
  104. $sql .= "field_order_tab, ";
  105. $sql .= "field_description ";
  106. $sql .= ")";
  107. $sql .= "values ";
  108. $sql .= "(";
  109. $sql .= "'$domain_uuid', ";
  110. $sql .= "'$schema_uuid', ";
  111. $sql .= "'$schema_field_uuid', ";
  112. $sql .= "'$field_label', ";
  113. $sql .= "'$field_name', ";
  114. $sql .= "'$field_type', ";
  115. $sql .= "'$field_value', ";
  116. $sql .= "'$field_list_hidden', ";
  117. $sql .= "'$field_search_by', ";
  118. $sql .= "'$field_column', ";
  119. $sql .= "'$field_required', ";
  120. $sql .= "'$field_order', ";
  121. $sql .= "'$field_order_tab', ";
  122. $sql .= "'$field_description' ";
  123. $sql .= ")";
  124. $db->exec(check_sql($sql));
  125. unset($sql);
  126. $_SESSION["message"] = $text['message-add'];
  127. header("Location: schema_edit.php?id=".$schema_uuid);
  128. return;
  129. } //if ($action == "add")
  130. if ($action == "update" && permission_exists('schema_edit')) {
  131. $sql = "update v_schema_fields set ";
  132. $sql .= "field_label = '$field_label', ";
  133. $sql .= "field_name = '$field_name', ";
  134. $sql .= "field_type = '$field_type', ";
  135. $sql .= "field_value = '$field_value', ";
  136. $sql .= "field_list_hidden = '$field_list_hidden', ";
  137. $sql .= "field_search_by = '$field_search_by', ";
  138. $sql .= "field_column = '$field_column', ";
  139. $sql .= "field_required = '$field_required', ";
  140. $sql .= "field_order = '$field_order', ";
  141. $sql .= "field_order_tab = '$field_order_tab', ";
  142. $sql .= "field_description = '$field_description' ";
  143. $sql .= "where domain_uuid = '$domain_uuid' ";
  144. $sql .= "and schema_uuid = '$schema_uuid'";
  145. $sql .= "and schema_field_uuid = '$schema_field_uuid' ";
  146. $db->exec(check_sql($sql));
  147. unset($sql);
  148. $_SESSION["message"] = $text['message-update'];
  149. header("Location: schema_edit.php?id=".$schema_uuid);
  150. return;
  151. } //if ($action == "update")
  152. } //if ($_POST["persistformvar"] != "true")
  153. } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
  154. //pre-populate the form
  155. if (count($_GET)>0 && $_POST["persistformvar"] != "true") {
  156. $schema_uuid = $_GET["schema_uuid"];
  157. $schema_field_uuid = $_GET["id"];
  158. $sql = "select * from v_schema_fields ";
  159. $sql .= "where domain_uuid = '$domain_uuid' ";
  160. $sql .= "and schema_uuid = '$schema_uuid' ";
  161. $sql .= "and schema_field_uuid = '$schema_field_uuid' ";
  162. $prep_statement = $db->prepare(check_sql($sql));
  163. $prep_statement->execute();
  164. $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
  165. foreach ($result as &$row) {
  166. $field_label = $row["field_label"];
  167. $field_name = $row["field_name"];
  168. $field_type = $row["field_type"];
  169. $field_value = $row["field_value"];
  170. $field_list_hidden = $row["field_list_hidden"];
  171. $field_search_by = $row["field_search_by"];
  172. $field_column = $row["field_column"];
  173. $field_required = $row["field_required"];
  174. $field_order = $row["field_order"];
  175. $field_order_tab = $row["field_order_tab"];
  176. $field_description = $row["field_description"];
  177. break; //limit to 1 row
  178. }
  179. unset ($prep_statement);
  180. }
  181. //show the header
  182. require_once "resources/header.php";
  183. $document['title'] = $text['title-field'];
  184. //begin the content
  185. echo "<form method='post' name='frm' action=''>\n";
  186. echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
  187. echo "<tr>\n";
  188. echo "<td align='left' width='30%' nowrap=\"nowrap\"><b>".$text['header-field']."</b></td>\n";
  189. echo "<td width='70%' align='right'>";
  190. echo " <input type='button' class='btn' name='' alt='".$text['button-back']."' onclick=\"window.location='schema_edit.php?id=$schema_uuid'\" value='".$text['button-back']."'>";
  191. echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
  192. echo "</td>\n";
  193. echo "</tr>\n";
  194. echo "<tr>\n";
  195. echo "<td align=\"left\" colspan=\"2\">\n";
  196. echo $text['description-field']."<br /><br />\n";
  197. echo "</td>\n";
  198. echo "</tr>\n";
  199. echo "<tr>\n";
  200. echo "<td class='vncellreq' valign='top' align='left' nowrap=\"nowrap\">\n";
  201. echo " ".$text['label-field_label']."\n";
  202. echo "</td>\n";
  203. echo "<td class='vtable' align='left'>\n";
  204. echo " <input class='formfld' type='text' name='field_label' maxlength='255' value=\"$field_label\">\n";
  205. echo "<br />\n";
  206. echo $text['description-field_label']."\n";
  207. echo "</td>\n";
  208. echo "</tr>\n";
  209. echo "<tr>\n";
  210. echo "<td class='vncellreq' valign='top' align='left' nowrap=\"nowrap\">\n";
  211. echo " ".$text['label-field_name']."\n";
  212. echo "</td>\n";
  213. echo "<td class='vtable' align='left'>\n";
  214. echo " <input class='formfld' type='text' name='field_name' maxlength='255' value=\"$field_name\">\n";
  215. echo "<br />\n";
  216. echo $text['description-field_name']."\n";
  217. echo "</td>\n";
  218. echo "</tr>\n";
  219. echo "<tr>\n";
  220. echo "<td class='vncellreq' valign='top' align='left' nowrap=\"nowrap\">\n";
  221. echo " ".$text['label-field_type']."\n";
  222. echo "</td>\n";
  223. echo "<td class='vtable' align='left'>\n";
  224. echo " <select class='formfld' name='field_type'>\n";
  225. echo " <option value=''></option>\n";
  226. if ($field_type == "text") {
  227. echo " <option value='text' selected='selected'>".$text['option-text']."</option>\n";
  228. }
  229. else {
  230. echo " <option value='text'>".$text['option-text']."</option>\n";
  231. }
  232. if ($field_type == "numeric") {
  233. echo " <option value='numeric' selected='selected'>".$text['option-number']."</option>\n";
  234. }
  235. else {
  236. echo " <option value='numeric'>".$text['option-number']."</option>\n";
  237. }
  238. if ($field_type == "date") {
  239. echo " <option value='date' selected='selected'>".$text['option-date']."</option>\n";
  240. }
  241. else {
  242. echo " <option value='date'>".$text['option-date']."</option>\n";
  243. }
  244. if ($field_type == "email") {
  245. echo " <option value='email' selected='selected'>".$text['option-email']."</option>\n";
  246. }
  247. else {
  248. echo " <option value='email'>".$text['option-email']."</option>\n";
  249. }
  250. if ($field_type == "label") {
  251. echo " <option value='label' selected='selected'>".$text['option-label']."</option>\n";
  252. }
  253. else {
  254. echo " <option value='label'>".$text['option-label']."</option>\n";
  255. }
  256. if ($field_type == "phone") {
  257. echo " <option value='phone' selected='selected'>".$text['option-phone']."</option>\n";
  258. }
  259. else {
  260. echo " <option value='phone'>".$text['option-phone']."</option>\n";
  261. }
  262. if ($field_type == "checkbox") {
  263. echo " <option value='checkbox' selected='selected'>".$text['option-check_box']."</option>\n";
  264. }
  265. else {
  266. echo " <option value='checkbox'>".$text['option-check_box']."</option>\n";
  267. }
  268. if ($field_type == "textarea") {
  269. echo " <option value='textarea' selected='selected'>".$text['option-text_area']."</option>\n";
  270. }
  271. else {
  272. echo " <option value='textarea'>".$text['option-text_area']."</option>\n";
  273. }
  274. if ($field_type == "select") {
  275. echo " <option value='select' selected='selected'>".$text['option-select']."</option>\n";
  276. }
  277. else {
  278. echo " <option value='select'>".$text['option-select']."</option>\n";
  279. }
  280. if ($field_type == "hidden") {
  281. echo " <option value='hidden' selected='selected'>".$text['option-hidden']."</option>\n";
  282. }
  283. else {
  284. echo " <option value='hidden'>".$text['option-hidden']."</option>\n";
  285. }
  286. if ($field_type == "uuid") {
  287. echo " <option value='uuid' selected='selected'>".$text['option-uuid']."</option>\n";
  288. }
  289. else {
  290. echo " <option value='uuid'>".$text['option-uuid']."</option>\n";
  291. }
  292. if ($field_type == "password") {
  293. echo " <option value='password' selected='selected'>".$text['option-password']."</option>\n";
  294. }
  295. else {
  296. echo " <option value='password'>".$text['option-password']."</option>\n";
  297. }
  298. if ($field_type == "pin_number") {
  299. echo " <option value='pin_number' selected='selected'>".$text['option-pin_number']."</option>\n";
  300. }
  301. else {
  302. echo " <option value='pin_number'>".$text['option-pin_number']."</option>\n";
  303. }
  304. if ($field_type == "image") {
  305. echo " <option value='image' selected='selected'>".$text['option-image_upload']."</option>\n";
  306. }
  307. else {
  308. echo " <option value='image'>".$text['option-image_upload']."</option>\n";
  309. }
  310. if ($field_type == "file") {
  311. echo " <option value='upload_file' selected='selected'>".$text['option-file_upload']."</option>\n";
  312. }
  313. else {
  314. echo " <option value='file'>".$text['option-file_upload']."</option>\n";
  315. }
  316. if ($field_type == "url") {
  317. echo " <option value='url' selected='selected'>".$text['option-url']."</option>\n";
  318. }
  319. else {
  320. echo " <option value='url'>".$text['option-url']."</option>\n";
  321. }
  322. if ($field_type == "mod_date") {
  323. echo " <option value='mod_date' selected='selected'>".$text['option-modified_date']."</option>\n";
  324. }
  325. else {
  326. echo " <option value='mod_date'>".$text['option-modified_date']."</option>\n";
  327. }
  328. if ($field_type == "mod_user") {
  329. echo " <option value='mod_user' selected='selected'>".$text['option-modified_user']."</option>\n";
  330. }
  331. else {
  332. echo " <option value='mod_user'>".$text['option-modified_user']."</option>\n";
  333. }
  334. echo " </select>\n";
  335. echo "<br />\n";
  336. echo $text['description-field_type']."\n";
  337. echo "</td>\n";
  338. echo "</tr>\n";
  339. echo "<tr>\n";
  340. echo "<td class='vncell' valign='top' align='left' nowrap=\"nowrap\">\n";
  341. echo " ".$text['label-field_value']."\n";
  342. echo "</td>\n";
  343. echo "<td class='vtable' align='left'>\n";
  344. echo " <input class='formfld' type='text' name='field_value' maxlength='255' value=\"$field_value\">\n";
  345. echo "<br />\n";
  346. echo $text['description-field_value']."\n";
  347. echo "</td>\n";
  348. echo "</tr>\n";
  349. echo "<tr>\n";
  350. echo "<td class='vncellreq' valign='top' align='left' nowrap=\"nowrap\">\n";
  351. echo " ".$text['label-field_visibility']."\n";
  352. echo "</td>\n";
  353. echo "<td class='vtable' align='left'>\n";
  354. echo " <select class='formfld' name='field_list_hidden'>\n";
  355. echo " <option value=''></option>\n";
  356. if ($field_list_hidden == "show") {
  357. echo " <option value='show' selected='selected'>".$text['option-visible']."</option>\n";
  358. }
  359. else {
  360. echo " <option value='show'>".$text['option-visible']."</option>\n";
  361. }
  362. if ($field_list_hidden == "hide") {
  363. echo " <option value='hide' selected='selected'>".$text['option-hidden']."</option>\n";
  364. }
  365. else {
  366. echo " <option value='hide'>".$text['option-hidden']."</option>\n";
  367. }
  368. echo " </select>\n";
  369. echo "<br />\n";
  370. echo $text['description-field_visibility']."\n";
  371. echo "</td>\n";
  372. echo "</tr>\n";
  373. echo "<tr>\n";
  374. echo "<td class='vncellreq' valign='top' align='left' nowrap=\"nowrap\">\n";
  375. echo " ".$text['label-field_search_by']."\n";
  376. echo "</td>\n";
  377. echo "<td class='vtable' align='left'>\n";
  378. echo " <select class='formfld' name='field_search_by'>\n";
  379. echo " <option value=''></option>\n";
  380. if ($field_search_by == "yes") {
  381. echo " <option value='yes' selected='selected'>".$text['option-true']."</option>\n";
  382. }
  383. else {
  384. echo " <option value='yes'>".$text['option-true']."</option>\n";
  385. }
  386. if ($field_search_by == "no") {
  387. echo " <option value='no' selected='selected'>".$text['option-false']."</option>\n";
  388. }
  389. else {
  390. echo " <option value='no'>".$text['option-false']."</option>\n";
  391. }
  392. echo " </select>\n";
  393. echo "<br />\n";
  394. echo $text['description-field_search_by']."\n";
  395. echo "</td>\n";
  396. echo "</tr>\n";
  397. echo "<tr>\n";
  398. echo "<td class='vncellreq' valign='top' align='left' nowrap=\"nowrap\">\n";
  399. echo " ".$text['label-field_column']."\n";
  400. echo "</td>\n";
  401. echo "<td class='vtable' align='left'>\n";
  402. echo " <input class='formfld' type='text' name='field_column' maxlength='255' value=\"$field_column\">\n";
  403. echo "<br />\n";
  404. echo $text['description-field_column']."\n";
  405. echo "</td>\n";
  406. echo "</tr>\n";
  407. echo "<tr>\n";
  408. echo "<td class='vncellreq' valign='top' align='left' nowrap=\"nowrap\">\n";
  409. echo " ".$text['label-field_required']."\n";
  410. echo "</td>\n";
  411. echo "<td class='vtable' align='left'>\n";
  412. echo " <select class='formfld' name='field_required'>\n";
  413. echo " <option value=''></option>\n";
  414. if ($field_required == "yes") {
  415. echo " <option value='yes' selected='selected'>".$text['option-true']."</option>\n";
  416. }
  417. else {
  418. echo " <option value='yes'>".$text['option-true']."</option>\n";
  419. }
  420. if ($field_required == "no") {
  421. echo " <option value='no' selected='selected'>".$text['option-false']."</option>\n";
  422. }
  423. else {
  424. echo " <option value='no'>".$text['option-false']."</option>\n";
  425. }
  426. echo " </select>\n";
  427. echo "<br />\n";
  428. echo $text['description-field_required']."\n";
  429. echo "</td>\n";
  430. echo "</tr>\n";
  431. echo "<tr>\n";
  432. echo "<td class='vncellreq' valign='top' align='left' nowrap=\"nowrap\">\n";
  433. echo " ".$text['label-field_order']."\n";
  434. echo "</td>\n";
  435. echo "<td class='vtable' align='left'>\n";
  436. echo " <input class='formfld' type='text' name='field_order' maxlength='255' value='$field_order'>\n";
  437. echo "<br />\n";
  438. echo $text['description-field_order']."\n";
  439. echo "</td>\n";
  440. echo "</tr>\n";
  441. echo "<tr>\n";
  442. echo "<td class='vncellreq' valign='top' align='left' nowrap=\"nowrap\">\n";
  443. echo " ".$text['label-field_tab_order']."\n";
  444. echo "</td>\n";
  445. echo "<td class='vtable' align='left'>\n";
  446. echo " <input class='formfld' type='text' name='field_order_tab' maxlength='255' value='$field_order_tab'>\n";
  447. echo "<br />\n";
  448. echo $text['description-field_tab_order']."\n";
  449. echo "</td>\n";
  450. echo "</tr>\n";
  451. echo "<tr>\n";
  452. echo "<td class='vncell' valign='top' align='left' nowrap=\"nowrap\">\n";
  453. echo " ".$text['label-field_description']."\n";
  454. echo "</td>\n";
  455. echo "<td class='vtable' align='left'>\n";
  456. echo " <input class='formfld' type='text' name='field_description' maxlength='255' value=\"$field_description\">\n";
  457. echo "<br />\n";
  458. echo $text['description-field_description']."\n";
  459. echo "</td>\n";
  460. echo "</tr>\n";
  461. echo " <tr>\n";
  462. echo " <td colspan='2' align='right'>\n";
  463. echo " <input type='hidden' name='schema_uuid' value='$schema_uuid'>\n";
  464. if ($action == "update") {
  465. echo " <input type='hidden' name='schema_field_uuid' value='$schema_field_uuid'>\n";
  466. }
  467. echo " <br>";
  468. echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
  469. echo " </td>\n";
  470. echo " </tr>";
  471. echo "</table>";
  472. echo "<br><br>";
  473. echo "</form>";
  474. if ($action == "update") {
  475. if ($field_type == "select") {
  476. require "schema_name_values.php";
  477. }
  478. }
  479. //show the footer
  480. require_once "resources/footer.php";
  481. ?>