From cdf9a13d12c0826e4f39767098e540ee105fefb9 Mon Sep 17 00:00:00 2001 From: Adrien RENARD Date: Sat, 3 Feb 2024 15:22:43 +0100 Subject: [PATCH] Ajout BTN Clear All Filtres --- functions/functions_generals.php | 3 + public_html_admin/contrats.php | 5 ++ public_html_admin/contrats_types.php | 3 + public_html_admin/css/admin.css | 80 +++++++++++++++---- public_html_admin/img/clear.svg | 7 ++ public_html_admin/js/contrats.js | 6 +- public_html_admin/js/contrats_types.js | 2 + public_html_admin/js/functions.js | 35 ++++++++ public_html_admin/js/livraisons.js | 2 + public_html_admin/js/navSecondBar.js | 3 + public_html_admin/js/paniers.js | 2 + public_html_admin/livraisons.php | 3 + public_html_admin/paniers.php | 3 + .../templates/clients/clients_secondbar.tpl | 4 +- .../templates/contrats/contrats_secondbar.tpl | 10 ++- .../contrats_types_secondbar.tpl | 8 +- .../templates/legumes/legumes_secondbar.tpl | 2 +- .../templates/lieux/lieux_secondbar.tpl | 2 +- .../livraisons/livraisons_secondbar.tpl | 10 ++- .../templates/paniers/paniers_secondbar.tpl | 6 ++ 20 files changed, 169 insertions(+), 27 deletions(-) create mode 100644 public_html_admin/img/clear.svg diff --git a/functions/functions_generals.php b/functions/functions_generals.php index 6137043..e91db71 100644 --- a/functions/functions_generals.php +++ b/functions/functions_generals.php @@ -23,6 +23,9 @@ function getRequestAndSessionSave($requestName, $sessionName, $smartyName=false, else $val = $v; } + // CLEAR FILTRES + if(isset($_REQUEST["clear_filtres"])) $val = $default; + // SAVE SESSION VAL $_SESSION[$sessionName] = $val; diff --git a/public_html_admin/contrats.php b/public_html_admin/contrats.php index ef97704..b55ec67 100644 --- a/public_html_admin/contrats.php +++ b/public_html_admin/contrats.php @@ -89,6 +89,11 @@ switch($action) { "lieu" => getRequestAndSessionSave("lieu", "livraisons_filtre_lieu", "lieu", "int", 0, $lieuxList, true), "archive" => getRequestAndSessionSave("archive", "livraisons_filtre_archive", "archive", "int", 0, array(-1,0,1)) ); + $GLOBALS['smarty'] -> assign('hasFiltres', $filtres["groupe"]>0 + || $filtres["frequence"]!= "" + || $filtres["panier"]>0 + || $filtres["lieu"]>0 + || $filtres["archive"]!=0); // SEARCH $search = getSearch("contrats_search"); diff --git a/public_html_admin/contrats_types.php b/public_html_admin/contrats_types.php index f2d83da..1f99857 100644 --- a/public_html_admin/contrats_types.php +++ b/public_html_admin/contrats_types.php @@ -47,6 +47,9 @@ switch($action) { "frequence" => getRequestAndSessionSave("frequence", "contrats_types_filtre_frequence", "frequence", "txt", 0, array("hebdo", "quinz", "quinz_A", "quinz_B")), "panier" => getRequestAndSessionSave("panier", "contrats_types_filtre_panier", "panier", "int", 0, $paniersTypesList, true) ); + $GLOBALS['smarty'] -> assign('hasFiltres', $filtres["groupe"]>0 + || $filtres["frequence"]!= "" + || $filtres["panier"]>0); // LIMITS $limits = array("start" => 0, "end" => LIST_NB_LIGNES_PAR_PAGE, "nbItemsByPage" => LIST_NB_LIGNES_PAR_PAGE, "max" => getNbContratsTypesInList($filtres)); diff --git a/public_html_admin/css/admin.css b/public_html_admin/css/admin.css index b37dbc3..bcc26cc 100644 --- a/public_html_admin/css/admin.css +++ b/public_html_admin/css/admin.css @@ -41,6 +41,10 @@ div.intl-tel-input { display: block; } div.main-navbar { margin-bottom: 0; } +div.main-navbar div.container-fluid { padding-right: 0; } + +div.main-navbar .navbar-collapse { padding-right: 5px; } + div.main-navbar a.brand img { height: 46px; position: relative; @@ -63,6 +67,7 @@ div.secondbar { border-top : none; background-color: #e7e7e7; margin-bottom: 0; + border-radius: 0; } div.secondbar button.navbar-toggle { @@ -87,6 +92,8 @@ div.secondbar a.brand > span { top: -13px; } +div.secondbar div.container-fluid { padding-right: 5px; } + div.secondbar ul.navbar-nav li > a:hover, div.secondbar ul.navbar-nav li.active > a:hover, div.secondbar ul.navbar-nav li.active > a { @@ -94,10 +101,17 @@ div.secondbar ul.navbar-nav li.active > a { color: #3296C8; } +div.secondbar button.btnClearFiltres { padding: 4px; background-color: #5bc0de; } +div.secondbar button.btnClearFiltres > img { height: 24px; } +div.secondbar button.btnClearFiltres > span.txt { display: none; vertical-align: middle; } + div.secondbar .form-filtre-search { padding-right: 0; } div.secondbar .form-filtre-search i.btnClearSearch { cursor: pointer; } +div.secondbar .form-filtre-search .input-group-addon { padding: 6px; } +div.secondbar:not(.collapsed) .form-filtre-search select.form-control { padding-left: 4px!important; max-width: 120px; } + div.secondbar .form-filtre-search span.separator { display: inline-table; vertical-align: middle; @@ -105,36 +119,68 @@ div.secondbar .form-filtre-search span.separator { margin: 0 5px; border-left: 1px solid #CCCCCC; } +div.secondbar .form-filtre-search span.clearFiltresSeparator { display: none; } div.secondbar .form-filtre-search button.btnPrint span.txt { display: none; } +/* SECOND BAR - COLLASPED */ + +div.secondbar.collapsed { min-height: 0; } +div.secondbar.collapsed div.container-fluid { padding-right: 0; } +div.secondbar.collapsed a.brand { height: 40px; padding: 10px; } +div.secondbar.collapsed a.brand img { height: 34px; } + +div.secondbar.collapsed div.navbar-collapse.collapse { display: none!important; } +div.secondbar.collapsed div.navbar-collapse { + border-top: 1px solid #ccc; + padding: 0; + margin-left: -15px; + margin-right: -15px; +} +div.secondbar.collapsed div.navbar-header { float: none; } +div.secondbar.collapsed button.navbar-toggle { display: block; float: right; } + +div.secondbar.collapsed .navbar-right { + margin: 0; + padding: 10px 15px; + float: none!important; +} + +div.secondbar.collapsed .form-filtre-search .input-group { display: table; width: 100%; } +div.secondbar.collapsed .form-filtre-search .input-group .input-group-addon { width: 1%; } + +div.secondbar.collapsed div.navbar-filtre-search { border-top: 1px solid #CCCCCC; padding: 0 5px; } +div.secondbar.collapsed .form-filtre-search { padding: 5px 0; margin: 0; } +div.secondbar.collapsed .form-filtre-search > *:not(:last-child) { padding-bottom: 7px; } + +div.secondbar.collapsed .form-filtre-search span.separator { + display: block; + width: 100%; height: 0px; + border-left: none; + border-top: 1px solid #CCCCCC; + margin: 0 0 5px 0; +} + +div.secondbar.collapsed button.btnClearFiltres { width: 100%; } +div.secondbar.collapsed button.btnClearFiltres > span.txt { display: inline; } +div.secondbar.collapsed .form-filtre-search span.clearFiltresSeparator { display: inline-table; } + +div.secondbar.collapsed .form-filtre-search button.btnPrint { width: 100%; margin-top: -5px; } +div.secondbar.collapsed .form-filtre-search button.btnPrint span.txt { display: inline; } + @media (max-width: 767px) { div.main-navbar a.brand img { height: 40px; } + div.main-navbar div.container-fluid { padding-right: 15px; } - div.secondbar { min-height: 0; } - div.secondbar a.brand { height: 40px; padding: 10px; } + div.secondbar a.brand img { height: 24px!important; margin-right: 2px; margin-top: -2px; } + div.secondbar.collapsed div.container-fluid { padding-right: 15px; } - div.secondbar div.navbar-filtre-search { border-top: 1px solid #CCCCCC; padding: 0 5px; } - div.secondbar .form-filtre-search { padding: 5px 0; margin: 0; } - div.secondbar .form-filtre-search > *:not(:last-child) { padding-bottom: 7px; } - - div.secondbar .form-filtre-search span.separator { - width: 100%; height: 0px; - margin: 0; - border-left: none; - border-top: 1px solid #CCCCCC; - } - - div.secondbar .form-filtre-search button.btnPrint { width: 100%; } - div.secondbar .form-filtre-search button.btnPrint span.txt { display: inline; } div.secondbar div.input-group.order { display: table!important; width: 100%; border-top: 1px solid #ccc; padding: 7px 0 0 0; } - - div.secondbar button.btnPrint { margin-top: -5px; } } /* LIST */ diff --git a/public_html_admin/img/clear.svg b/public_html_admin/img/clear.svg new file mode 100644 index 0000000..11fe74a --- /dev/null +++ b/public_html_admin/img/clear.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + \ No newline at end of file diff --git a/public_html_admin/js/contrats.js b/public_html_admin/js/contrats.js index 7190a2e..0f45dfd 100644 --- a/public_html_admin/js/contrats.js +++ b/public_html_admin/js/contrats.js @@ -8,6 +8,7 @@ var contratsConf = { // SEARCH search_selector : "#contratsSearch .searchGrp", filtres_selector : "#contratsSearch select", + clear_filtres_selector : "#contratsSearch button.btnClearFiltres", // VIEW view_modalSelector : "#modalViewContrat", view_btnSelector : ".btnViewContrat", @@ -46,6 +47,7 @@ $(document).ready( function() { // SEARCH / FILTRES $(contratsConf.search_selector).initSearchGroup(); $(contratsConf.filtres_selector).initFiltreSelect(); + initBtnClearFiltres( $(contratsConf.clear_filtres_selector) ); // VIEW modalViewContrat = $(contratsConf.view_modalSelector); @@ -247,7 +249,7 @@ function modalFormContrat_init(modal) { modalFormContrat_clear(modal); } -function modalFormContrat_loadDatas(modal,id) { +function modalFormContrat_loadDatas(modal,id,copy) { $.post(contratsConf.baseURL, { 'ref' : id, 'action' : 'getDatas' }, function(jsonTxt) { var datas = JSON.parse(jsonTxt); @@ -274,7 +276,7 @@ function modalFormContrat_loadDatas(modal,id) { modal.find("input[name=nb_cheque]").val(datas.nb_cheque); modal.find("input[name=np_paniers_distrib_avt_saisie]").val(datas.np_paniers_distrib_avt_saisie); - modal.find("input[name=complement_avt_saisie]").val(datas.complement_avt_saisie); + if(copy!==true) modal.find("input[name=complement_avt_saisie]").val(datas.complement_avt_saisie); modal.find("input[type=checkbox][name=force_eligible]").prop("checked",datas.force_eligible>0); modal.find("input[type=checkbox][name=ignore_warning]").prop("checked",datas.ignore_warning>0); diff --git a/public_html_admin/js/contrats_types.js b/public_html_admin/js/contrats_types.js index 2772b82..75bb1f7 100644 --- a/public_html_admin/js/contrats_types.js +++ b/public_html_admin/js/contrats_types.js @@ -6,6 +6,7 @@ var contratsTypesConf = { list_selector : "#contratsTypesList", // FILTRES filtres_selector : "#contratsTypesSearch select", + clear_filtres_selector : "#contratsTypesSearch button.btnClearFiltres", // VIEW view_modalSelector : "#modalViewContratsType", view_btnSelector : ".btnViewContratsType", @@ -32,6 +33,7 @@ $(document).ready( function() { // FILTRES $(contratsTypesConf.filtres_selector).initFiltreSelect(); + initBtnClearFiltres( $(contratsTypesConf.clear_filtres_selector) ); // VIEW modalViewContratsType = $(contratsTypesConf.view_modalSelector); diff --git a/public_html_admin/js/functions.js b/public_html_admin/js/functions.js index b6620f4..08bc67e 100644 --- a/public_html_admin/js/functions.js +++ b/public_html_admin/js/functions.js @@ -9,6 +9,29 @@ function isDefined(val){ return (val === undefined || val == null || val.length <= 0) ? false : true; } +/* COLLAPSE BAR */ +function initCollapseBars(elem) { + if(!elem.length>0) return; + + elem.each(function(n,e) { + if(!$(this).hasClass("collapse_initialized")) { + var bar = $(this); + bar.addClass("collapse_initialized"); + + var limit = parseInt(bar.attr("collapse-limit")); + if(!limit>0) limit = 768; + + $( window ).on( "resize", function() { collapseBar_resize(bar, limit); }); + collapseBar_resize(bar, limit); + } + }); +} + +function collapseBar_resize(bar, limit) { + if(window.innerWidth >= limit) bar.removeClass("collapsed"); + else bar.addClass("collapsed"); +} + /* MODAL FORM UTIL */ function modalForm_initBtnView(btn, modal, clearFormFct, loadFormDatasFct) { @@ -624,6 +647,18 @@ $.fn.initSearchGroup = function() { }); } +function initBtnClearFiltres(btn) { + if(!btn.length>0) return; + btn.initBtnClearFiltres(); +} + +$.fn.initBtnClearFiltres = function() { + $(this).unbind("click").click(function(e) { + e.preventDefault(); $(this).blur(); + document.location = "?clear_filtres=1"; + }); +} + $.fn.initFiltreSelect = function() { // LOAD VALUE $(this).each(function(n,e) { diff --git a/public_html_admin/js/livraisons.js b/public_html_admin/js/livraisons.js index 74e89f4..b6289f6 100644 --- a/public_html_admin/js/livraisons.js +++ b/public_html_admin/js/livraisons.js @@ -6,6 +6,7 @@ var livraisonsConf = { list_selector : "#livraisonsList", // FILTRES filtres_selector : "#livraisonsSearch select", + clear_filtres_selector : "#livraisonsSearch button.btnClearFiltres", // VIEW view_modalSelector : "#modalViewLivraison", view_btnSelector : ".btnViewLivraison", @@ -43,6 +44,7 @@ $(document).ready( function() { // SEARCH / FILTRES $(livraisonsConf.filtres_selector).initFiltreSelect(); + initBtnClearFiltres( $(livraisonsConf.clear_filtres_selector) ); // VIEW modalViewLivraison = $(livraisonsConf.view_modalSelector); diff --git a/public_html_admin/js/navSecondBar.js b/public_html_admin/js/navSecondBar.js index 764aa42..65f8be1 100644 --- a/public_html_admin/js/navSecondBar.js +++ b/public_html_admin/js/navSecondBar.js @@ -5,6 +5,9 @@ var secondBarCollapse = false; var iptGrpOrder = false; $(document).ready( function() { + // SECOND BAR + initCollapseBars( $("div.secondbar") ); + // COLLAPSE secondBar = $("div.secondbar"); btnCollapseSecondBar = $("div.secondbar button.navbar-toggle"); diff --git a/public_html_admin/js/paniers.js b/public_html_admin/js/paniers.js index a7029bd..679fa94 100644 --- a/public_html_admin/js/paniers.js +++ b/public_html_admin/js/paniers.js @@ -7,6 +7,7 @@ var paniersConf = { // SEARCH / FILTRES search_selector : "#paniersSearch .searchGrp", filtres_selector : "#paniersSearch select", + clear_filtres_selector : "#paniersSearch button.btnClearFiltres", // VIEW view_modalSelector : "#modalViewPanier", view_btnSelector : ".btnViewPanier", @@ -34,6 +35,7 @@ $(document).ready( function() { // SEARCH / FILTRES $(paniersConf.search_selector).initSearchGroup(); $(paniersConf.filtres_selector).initFiltreSelect(); + initBtnClearFiltres( $(paniersConf.clear_filtres_selector) ); // VIEW modalViewPanier = $(paniersConf.view_modalSelector); diff --git a/public_html_admin/livraisons.php b/public_html_admin/livraisons.php index e3bc04a..5d23b19 100644 --- a/public_html_admin/livraisons.php +++ b/public_html_admin/livraisons.php @@ -188,6 +188,9 @@ switch($action) { // ARCHIVE $archive = getRequestAndSessionSave("archive", "livraisons_list_archive", "archive", "int", 0); + // HAS FILTRES + $GLOBALS['smarty'] -> assign('hasFiltres', $groupe>0 || $archive!=0); + // LIMITS $limits = array("start" => 0, "end" => LIST_NB_LIGNES_PAR_PAGE, "nbItemsByPage" => LIST_NB_LIGNES_PAR_PAGE, "max" => getNbLivraisonsInList($groupe, $archive)); if(isset($_REQUEST['startListAt']) && (int)$_REQUEST['startListAt']>0) { diff --git a/public_html_admin/paniers.php b/public_html_admin/paniers.php index 0d97b63..1ebcbc8 100644 --- a/public_html_admin/paniers.php +++ b/public_html_admin/paniers.php @@ -68,6 +68,9 @@ switch($action) { $groupesList = getPaniersGroupesList(); $groupe = getRequestAndSessionSave("groupe", "paniers_filtre_groupe", "groupe", "int", 0, $groupesList, true); + // HAS FILTRES + $GLOBALS['smarty'] -> assign('hasFiltres', $groupe>0); + // SEARCH $search = getSearch("paniers_search"); diff --git a/public_html_admin/templates/clients/clients_secondbar.tpl b/public_html_admin/templates/clients/clients_secondbar.tpl index 093dfc4..29b29b6 100644 --- a/public_html_admin/templates/clients/clients_secondbar.tpl +++ b/public_html_admin/templates/clients/clients_secondbar.tpl @@ -1,9 +1,9 @@ -