[Logbooks] Added system to check if a public slug is available

这个提交包含在:
Peter Goodhall 2022-02-09 22:29:29 +00:00
父节点 0ae1394756
当前提交 4f2980a2a7
共有 4 个文件被更改,包括 69 次插入0 次删除

查看文件

@ -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'));
}
}

查看文件

@ -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();

查看文件

@ -0,0 +1,10 @@
<div hx-target="this" hx-swap="outerHTML">
<input aria-describedat="slugHelp" class="form-control <?php if($slugAvailable == true) { echo "is-valid"; } else { echo "is-invalid"; } ?>" name="public_slug" id="publicSlugInput" hx-post="<?php echo site_url('logbooks/publicslug_validate/'); ?>" value="<?php echo $this->input->post('public_slug'); ?>" hx-trigger="keyup changed delay:500ms">
<?php
if($slugAvailable == true) { ?>
<div class="valid-feedback">Looks good! <?php echo $this->input->post('public_slug'); ?> is available</div>
<?php } else { ?>
<div class="invalid-feedback">Please choose a public slug. <?php echo $this->input->post('public_slug'); ?> is not available</div>
<?php } ?>
</div>

查看文件

@ -60,7 +60,30 @@
<input type="hidden" class="form-control" name="station_logbook_id" value="<?php echo $station_logbook_details->logbook_id; ?>" required>
<button type="submit" class="btn btn-primary"><i class="fas fa-plus-square"></i> Link Location</button>
</form>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md">
<div class="card">
<div class="card-header">Public Slug</div>
<div class="card-body">
<p>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.</p>
<form hx-post="<?php echo site_url('logbooks/save_publicslug/'); ?>">
<div class="form-group">
<input type="hidden" name="logbook_id" value="<?php echo $station_logbook_details->logbook_id; ?>">
<label for="publicSlugInput">Public Slug</label>
<div hx-target="this" hx-swap="outerHTML">
<input class="form-control" name="public_slug" id="publicSlugInput" hx-post="<?php echo site_url('logbooks/publicslug_validate/'); ?>" hx-trigger="keyup changed delay:500ms">
</div>
</div>
<button type="submit" class="btn btn-primary"><i class="fas fa-plus-square"></i> Save</button>
</form>
</div>
</div>
</div>