From 4f2980a2a7b46dd42f2f1f5910029b3122c42d1e Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Wed, 9 Feb 2022 22:29:29 +0000 Subject: [PATCH] [Logbooks] Added system to check if a public slug is available --- application/controllers/Logbooks.php | 19 +++++++++++++++ application/models/Logbooks_model.php | 17 ++++++++++++++ .../components/publicSlugInputValidation.php | 10 ++++++++ application/views/logbooks/edit.php | 23 +++++++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 application/views/logbooks/components/publicSlugInputValidation.php diff --git a/application/controllers/Logbooks.php b/application/controllers/Logbooks.php index 7b2c9250..1871d307 100644 --- a/application/controllers/Logbooks.php +++ b/application/controllers/Logbooks.php @@ -116,4 +116,23 @@ class Logbooks extends CI_Controller { redirect('logbooks/edit/'.$logbook_id); } + public function publicslug_validate() { + $this->load->model('logbooks_model'); + $result = $this->logbooks_model->is_public_slug_available($this->input->post('public_slug')); + + if($result == true) { + $data['slugAvailable'] = true; + } else { + $data['slugAvailable'] = false; + } + + $this->load->view('logbooks/components/publicSlugInputValidation', $data); + } + + public function test_this() { + $this->load->model('logbooks_model'); + print_r($this->logbooks_model->is_public_slug_available('2m0sql')); + + } + } \ No newline at end of file diff --git a/application/models/Logbooks_model.php b/application/models/Logbooks_model.php index ffa92a1b..9aa7eddb 100644 --- a/application/models/Logbooks_model.php +++ b/application/models/Logbooks_model.php @@ -124,6 +124,23 @@ class Logbooks_model extends CI_Model { } } + + function is_public_slug_available($slug) { + // Clean public_slug + $clean_slug = $this->security->xss_clean($slug); + + + $this->db->where('public_slug', $clean_slug); + $query = $this->db->get('station_logbooks'); + + if ($query->num_rows() > 0){ + return false; + } + else{ + return true; + } + } + function list_logbook_relationships($logbook_id) { $relationships_array = array(); diff --git a/application/views/logbooks/components/publicSlugInputValidation.php b/application/views/logbooks/components/publicSlugInputValidation.php new file mode 100644 index 00000000..217c8a94 --- /dev/null +++ b/application/views/logbooks/components/publicSlugInputValidation.php @@ -0,0 +1,10 @@ +
+" name="public_slug" id="publicSlugInput" hx-post="" value="input->post('public_slug'); ?>" hx-trigger="keyup changed delay:500ms"> + +
Looks good! input->post('public_slug'); ?> is available
+ +
Please choose a public slug. input->post('public_slug'); ?> is not available
+ + +
\ No newline at end of file diff --git a/application/views/logbooks/edit.php b/application/views/logbooks/edit.php index 29c844d6..16c0c17e 100644 --- a/application/views/logbooks/edit.php +++ b/application/views/logbooks/edit.php @@ -60,7 +60,30 @@ + + + + + +
+
+
+
Public Slug
+
+

Setting a public slug allows you to share your logbook with anyone via a custom website address, this slug can contain no letters or special characters just letters and numbers.

+ +
+ +
+ + +
+ +
+
+ +