From 2ec1eccc35e240d28694df4c81cbd2a763a65801 Mon Sep 17 00:00:00 2001 From: int2001 Date: Wed, 9 Jul 2025 10:17:45 +0000 Subject: [PATCH] Added overlap-checking to PHP and REST-Return --- application/controllers/Band.php | 9 +++++++-- application/models/Bands.php | 15 +++++++++++++++ assets/js/sections/bandedges.js | 3 ++- 3 files changed, 24 insertions(+), 3 deletions(-) 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 } });