From 0acf33c9a617140dc748c9afa68154699828f9f5 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Fri, 1 Jun 2018 20:42:59 -0600 Subject: [PATCH] Add register editing and creation (issue #1) --- action.php | 30 +++++++++++++++++ lang/en_us.php | 5 +++ lang/messages.php | 8 +++++ pages.php | 7 ++++ pages/editregister.php | 70 +++++++++++++++++++++++++++++++++++++++ static/js/editregister.js | 10 ++++++ 6 files changed, 130 insertions(+) create mode 100644 pages/editregister.php create mode 100644 static/js/editregister.js diff --git a/action.php b/action.php index 6d10db7..131202e 100644 --- a/action.php +++ b/action.php @@ -474,6 +474,36 @@ END; returnToSender("cash_closed"); break; + case "editregister": + $insert = true; + if (empty($VARS['id'])) { + $insert = true; + } else { + if ($database->has('registers', ['registerid' => $VARS['id']])) { + $insert = false; + } else { + returnToSender("invalid_parameters"); + } + } + if (is_empty($VARS['name'])) { + returnToSender('invalid_parameters'); + } + + if ($database->has('registers', ['AND' => ['registerid[!]' => $VARS['id'], 'registername' => $VARS['name']]])) { + returnToSender("register_name_taken"); + } + + $data = [ + 'registername' => $VARS['name'] + ]; + + if ($insert) { + $database->insert('registers', $data); + } else { + $database->update('registers', $data, ['registerid' => $VARS['id']]); + } + + returnToSender("register_saved"); case "session_keepalive": header("Content-Type: application/json"); exit(json_encode(["status" => "OK"])); diff --git a/lang/en_us.php b/lang/en_us.php index 38bdc6f..e743a67 100644 --- a/lang/en_us.php +++ b/lang/en_us.php @@ -106,4 +106,9 @@ define("STRINGS", [ "start" => "Start", "end" => "End", "grid view" => "Grid view", + "edit register" => "Edit Register", + "editing register" => "Editing register {name}", + "adding register" => "Adding register", + "register saved" => "Register saved.", + "register name taken" => "Register name already taken. Use a different name.", ]); diff --git a/lang/messages.php b/lang/messages.php index cddac19..a378b6e 100644 --- a/lang/messages.php +++ b/lang/messages.php @@ -41,4 +41,12 @@ define("MESSAGES", [ "string" => "cash opened", "type" => "success" ], + "register_saved" => [ + "string" => "register saved", + "type" => "success" + ], + "register_name_taken" => [ + "string" => "register name taken", + "type" => "danger" + ] ]); diff --git a/pages.php b/pages.php index 96a2070..0315915 100644 --- a/pages.php +++ b/pages.php @@ -70,6 +70,13 @@ define("PAGES", [ "static/js/registers.js" ], ], + "editregister" => [ + "title" => "edit register", + "navbar" => false, + "scripts" => [ + "static/js/editregister.js" + ] + ], "reports" => [ "title" => "reports", "navbar" => true, diff --git a/pages/editregister.php b/pages/editregister.php new file mode 100644 index 0000000..cd3113f --- /dev/null +++ b/pages/editregister.php @@ -0,0 +1,70 @@ + '', + 'name' => '' +]; + +$editing = false; + +if (!empty($VARS['id'])) { + if ($database->has('registers', ['registerid' => $VARS['id']])) { + $editing = true; + $regdata = $database->get( + 'registers', [ + 'registerid (id)', + 'registername (name)' + ], [ + 'registerid' => $VARS['id'] + ]); + } else { + // customer id is invalid, redirect to a version of the page that won't + // cause an error when pressing Save + header('Location: app.php?page=editregister'); + die(); + } +} + +if ($editing) { + +} +?> + +
+
+

+ + "" . htmlspecialchars($regdata['name']) . ""]); ?> + + + +

+
+
+ + +
+
+ + + + + + +
+
\ No newline at end of file diff --git a/static/js/editregister.js b/static/js/editregister.js new file mode 100644 index 0000000..0b0deec --- /dev/null +++ b/static/js/editregister.js @@ -0,0 +1,10 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + + +$('#name').on('input propertychange paste', function () { + $('#name_title').text($('#name').val()); +}); \ No newline at end of file