From c9a473bdb96559d7fe8eaf8db49c6c6aa354d154 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Thu, 12 Sep 2019 00:53:39 +0100 Subject: [PATCH] Started adding filtered search options (search/filter) using querybuilder "Add Group" doesn't work currently --- application/controllers/Search.php | 52 + application/views/interface_assets/footer.php | 63 + application/views/interface_assets/header.php | 4 + application/views/search/filter.php | 69 +- assets/css/query-builder.dark.css | 173 + assets/css/query-builder.dark.min.css | 6 + assets/css/query-builder.default.css | 173 + assets/css/query-builder.default.min.css | 6 + assets/i18n/query-builder.ar.js | 80 + assets/i18n/query-builder.az.js | 79 + assets/i18n/query-builder.bg.js | 79 + assets/i18n/query-builder.cs.js | 79 + assets/i18n/query-builder.da.js | 56 + assets/i18n/query-builder.de.js | 76 + assets/i18n/query-builder.el.js | 80 + assets/i18n/query-builder.en.js | 83 + assets/i18n/query-builder.es.js | 81 + assets/i18n/query-builder.fa-IR.js | 79 + assets/i18n/query-builder.fr.js | 83 + assets/i18n/query-builder.he.js | 81 + assets/i18n/query-builder.it.js | 79 + assets/i18n/query-builder.nl.js | 76 + assets/i18n/query-builder.no.js | 54 + assets/i18n/query-builder.pl.js | 80 + assets/i18n/query-builder.pt-BR.js | 80 + assets/i18n/query-builder.pt-PT.js | 75 + assets/i18n/query-builder.ro.js | 54 + assets/i18n/query-builder.ru.js | 77 + assets/i18n/query-builder.sq.js | 78 + assets/i18n/query-builder.tr.js | 82 + assets/i18n/query-builder.ua.js | 79 + assets/i18n/query-builder.zh-CN.js | 80 + assets/js/query-builder.js | 6200 ++++++++++++++++ assets/js/query-builder.min.js | 7 + assets/js/query-builder.standalone.js | 6477 +++++++++++++++++ assets/js/query-builder.standalone.min.js | 7 + 36 files changed, 15039 insertions(+), 28 deletions(-) create mode 100644 assets/css/query-builder.dark.css create mode 100644 assets/css/query-builder.dark.min.css create mode 100644 assets/css/query-builder.default.css create mode 100644 assets/css/query-builder.default.min.css create mode 100644 assets/i18n/query-builder.ar.js create mode 100644 assets/i18n/query-builder.az.js create mode 100644 assets/i18n/query-builder.bg.js create mode 100644 assets/i18n/query-builder.cs.js create mode 100644 assets/i18n/query-builder.da.js create mode 100644 assets/i18n/query-builder.de.js create mode 100644 assets/i18n/query-builder.el.js create mode 100644 assets/i18n/query-builder.en.js create mode 100644 assets/i18n/query-builder.es.js create mode 100644 assets/i18n/query-builder.fa-IR.js create mode 100644 assets/i18n/query-builder.fr.js create mode 100644 assets/i18n/query-builder.he.js create mode 100644 assets/i18n/query-builder.it.js create mode 100644 assets/i18n/query-builder.nl.js create mode 100644 assets/i18n/query-builder.no.js create mode 100644 assets/i18n/query-builder.pl.js create mode 100644 assets/i18n/query-builder.pt-BR.js create mode 100644 assets/i18n/query-builder.pt-PT.js create mode 100644 assets/i18n/query-builder.ro.js create mode 100644 assets/i18n/query-builder.ru.js create mode 100644 assets/i18n/query-builder.sq.js create mode 100644 assets/i18n/query-builder.tr.js create mode 100644 assets/i18n/query-builder.ua.js create mode 100644 assets/i18n/query-builder.zh-CN.js create mode 100644 assets/js/query-builder.js create mode 100644 assets/js/query-builder.min.js create mode 100644 assets/js/query-builder.standalone.js create mode 100644 assets/js/query-builder.standalone.min.js diff --git a/application/controllers/Search.php b/application/controllers/Search.php index 4285ed5b..e9b7d0e8 100644 --- a/application/controllers/Search.php +++ b/application/controllers/Search.php @@ -48,4 +48,56 @@ class Search extends CI_Controller { $this->load->view('interface_assets/footer'); } } + + function json_result() { + + if(isset($_POST['search'])) { + $json = $_POST['search']; + + $search_items = json_decode($json, true); + + $search_type = ""; + + foreach($search_items as $key=>$value){ + + + if($value == "AND") { + $search_type = "AND"; + } + if ($value == "OR") { + $search_type = "OR"; + } + + if(is_array($value)) { + foreach($value as $values) + { + //print_r($values['field']); + if($values['operator'] == "equal") { + if($search_type == "AND") { + $this->db->where($values['field'], $values['value']); + } else { + $this->db->or_where($values['field'], $values['value']); + } + } + + if($values['operator'] == "not_equal") { + if($search_type == "AND") { + $this->db->where($values['field'].' !=', $name); + } else { + $this->db->or_where($values['field'].' !=', $name); + } + } + + } + } + } + + $query = $this->db->get($this->config->item('table_name')); + + echo json_encode($query->result_array()); + } else { + echo "Noooooooob"; + } + + } } diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index 25c57d58..fb707803 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -9,6 +9,69 @@ + +uri->segment(1) == "search" && $this->uri->segment(2) == "filter") { ?> + + + + + +