adding localstorage functions to act as a datastore for queries
authorAnthony Talarico <talarico@gaslightmedia.com>
Wed, 20 Feb 2019 21:24:37 +0000 (16:24 -0500)
committerAnthony Talarico <talarico@gaslightmedia.com>
Wed, 20 Feb 2019 21:24:37 +0000 (16:24 -0500)
js/memberManagement.js
models/admin/manageDashboard/search.php
views/admin/manageDashboard/components/category.html
views/admin/manageDashboard/components/checkbox.html
views/admin/manageDashboard/components/textSearch.html
views/admin/manageDashboard/index.html

index 18f9445..7720cc6 100644 (file)
@@ -30,6 +30,7 @@ window.Glma = (function() {
         }
     }
     return {
+        queries : {},
         defaultData: {
             action          : 'glm_members_admin_ajax',
             glm_action      : 'memberManagement',
@@ -44,6 +45,33 @@ window.Glma = (function() {
                 type,
             );
         },
+        updateSearchFilterValues: function(){
+            var queries = {};
+            var searchFields = $(".glm-admin-search-field");
+            for(var i = 0; i < searchFields.length; i++){
+                var input = $(searchFields[i]);
+                var type = input.attr("data-searchType") ;
+                var field = input.attr("data-search") ;
+                switch(type){
+                    case "checkbox":   
+                        queries[field] = input.prop("checked");
+                        break;
+                    case "select": 
+                        if(input.select2("val")){
+                            queries[field] = input.select2("val").join(",");
+                        }else{
+                            queries[field] = ""
+                        }
+                        break;
+                    case "text":   
+                        queries[field] = input.val();
+                        break;
+                    default: 
+                      
+                }
+            }
+            localStorage.setItem("glmaQueries", JSON.stringify(queries) );
+        },
         /*
         * call this function with a data object to configure the logic
         * # glmAction
index a4353f1..71f6a0f 100644 (file)
                 'template'      => 'checkbox',
                 'entityID'      => 'member',
             ],
-            [
-                'id'            => 'pendingSearch',
-                'displayName'   => 'Pending',
-                'order'         => 7,
-                'template'      => 'checkbox',
-                'entityID'      => 'member',
-            ],
+            // [
+            //     'id'            => 'pendingSearch',
+            //     'displayName'   => 'Pending',
+            //     'order'         => 7,
+            //     'template'      => 'checkbox',
+            //     'entityID'      => 'member',
+            // ],
             [
                 'id'            => 'memberCount',
                 'displayName'   => 'Member Count',
index 6170046..bef95ba 100644 (file)
@@ -1,6 +1,6 @@
 <div class="glm-row category-row">
     <div>Categories: </div>
-    <select id="filterCategories" name="filterCategories[]" multiple="multiple" size="1" class=""">
+    <select id="filterCategories" data-searchType="select" name="filterCategories[]" multiple="multiple" size="1" class="glm-admin-search-field" data-search="categorySearch">
 {foreach from=$categories item=v}
         <option value="{$v.id}" data-parent="{$v.parent}"{if $v.selected} selected{/if}>
             {if $v.parent_id}&nbsp;&nbsp;&nbsp;&nbsp;{/if}{$v.name}
index 3a3b038..fdb5bb8 100644 (file)
@@ -1,4 +1,4 @@
 <label class="checkbox-search-filters">
-    <input  type="checkbox" name="{$component.id}" class="glm-admin-search-field"/>
+    <input  type="checkbox" name="{$component.id}" class="glm-admin-search-field" data-search="filter{$component.displayName}" data-searchType="checkbox"/>
     <span>{$component.displayName}</span>
 </label>
\ No newline at end of file
index 2749fae..420b76f 100644 (file)
@@ -1,6 +1,6 @@
 <div class="row">
     <div class="s12 col input-field glm-widget-search">
-        <input id="glm-member-db-text" type="text" class="glm-widget-search-input search-autocomplete">
+        <input id="glm-member-db-text" type="text" class="glm-widget-search-input search-autocomplete glm-admin-search-field" data-search="textSearch" data-searchType="text">
         <label for="glm-member-db-text">Search</label>
     </div>
     
index 1c7b4c5..9c9cc52 100644 (file)
     }
 </style>
 <script>
-    
     jQuery(function($){
+        function getSearchFieldValues(){
+            if( localStorage.getItem("glmaQueries") )
+                return JSON.parse(localStorage.getItem("glmQueries"));
+            else
+                return false
+        }
+        
+        if(  getSearchFieldValues() ){
+            window.Glma.queries = getSearchFieldValues();
+        }
+        
+        window.Glma.updateSearchFilterValues();
         var memberInfo, memberID;
         var listData = {
             action          : Glma.defaultData.action,
@@ -75,6 +86,7 @@
             $("#glm-admin-search-overlay").fadeOut('slow'), 
             function(data) {
                 $("#member-results-container").html(data.searchData);
+
             },
             function(error) {
                 console.log(error);
@@ -86,7 +98,7 @@
             listData.filterArchived = $("input[name='archivedSearch']:checked").length > 0 ? true : undefined;
             listData.filterFeatured = $("input[name='featuredSearch']:checked").length > 0 ? true : undefined;
             listData.filterPending  = $("input[name='pendingSearch']:checked").length > 0 ? true : undefined;
-
+            window.Glma.updateSearchFilterValues();
             Glma.manageMember(
                 listData,
                 $("#glm-admin-search-overlay").fadeOut('slow'), 
             }else{
                 listData.categorySearch = "";
             }
+            window.Glma.updateSearchFilterValues();
             Glma.manageMember(
                 listData,
                 $("#glm-admin-search-overlay").fadeOut('slow'), 
                 // listData.filterPending  = $("input[name='pendingSearch']:checked").length > 0 ? true : undefined;
                 listData.pageSelect = $(this).text();
                 listData.prevStart = $("#pagination-data").attr("data-prevStart");
+                listData.nextStart = $("#pagination-data").attr("data-nextStart");
+                listData.limit = '{$limit}';
+
                 if (listData.prevStart) {
                     console.log("Prevstart enabled");
                     $(".pagination.previous-button").removeAttr("disabled");
                     console.log("Prevstart disabled");
                     $(".pagination.previous-button").attr("disabled", "disabled");
                 }
-
-                listData.nextStart = $("#pagination-data").attr("data-nextStart");
                 if (listData.nextStart) {
                     console.log("Nextstart enabled");
                     $(".pagination.next-button").removeAttr("disabled");
                     $(".pagination.next-button").attr("disabled", "disabled");
                 }
 
-                listData.limit = '{$limit}';
-                
+            
                 Glma.manageMember(
                     listData,
                     $("#glm-admin-search-overlay").fadeOut('slow'),