diff --git a/application/controllers/Band.php b/application/controllers/Band.php index bcfe045b9..385fa5259 100644 --- a/application/controllers/Band.php +++ b/application/controllers/Band.php @@ -207,8 +207,13 @@ class Band extends CI_Controller { $frequencyto = $this->security->xss_clean($this->input->post('frequencyto', true)); $mode = $this->security->xss_clean($this->input->post('mode', true)); - $this->bands->saveBandEdge($id, $frequencyfrom, $frequencyto, $mode); - echo json_encode(array('message' => 'OK')); + $overlap=$this->bands->check4overlapEdges($id, $frequencyfrom, $frequencyto, $mode); + if (!($overlap)) { + $this->bands->saveBandEdge($id, $frequencyfrom, $frequencyto, $mode); + echo json_encode(array('message' => 'OK')); + } else { + echo json_encode(array('message' => 'Overlapping')); + } return; } } diff --git a/application/models/Bands.php b/application/models/Bands.php index 1472b3429..129967f60 100644 --- a/application/models/Bands.php +++ b/application/models/Bands.php @@ -459,6 +459,21 @@ class Bands extends CI_Model { $this->db->delete('bandedges', array('id' => $clean_id, 'userid' => $this->session->userdata('user_id'))); } + function check4overlapEdges($id, $frequencyfrom, $frequencyto, $mode) { + $edges = $this->bands->get_all_bandedges_for_user(); + foreach ($edges as $item) { + if ($item->id == ($id ?? -1000)) { + continue; + } + $from = (int)$item->frequencyfrom; + $to = (int)$item->frequencyto; + if (!($frequencyto < $from || $frequencyfrom > $to)) { + return true; + } + } + return false; + } + function saveBandEdge($id, $frequencyfrom, $frequencyto, $mode) { $data = array( 'frequencyfrom' => $frequencyfrom, diff --git a/assets/js/sections/bandedges.js b/assets/js/sections/bandedges.js index 2a1d439d6..fb2eb545c 100644 --- a/assets/js/sections/bandedges.js +++ b/assets/js/sections/bandedges.js @@ -81,7 +81,8 @@ function saveChanges(id) { 'mode': mode, }, success: function (data) { - + // todo: reload table if data.message == 'OK' + // todo: else show warning "oerlap" and reload aswell } });