Manage DB revamp: Custom fields, files, adv/simple divide, search layout
authorLaury GvR <laury@gaslightmedia.com>
Wed, 14 Nov 2018 19:22:28 +0000 (14:22 -0500)
committerLaury GvR <laury@gaslightmedia.com>
Wed, 14 Nov 2018 19:22:28 +0000 (14:22 -0500)
- Retrieving custom fields into searchform.
- Changed searchform layout.
- Added advanced/simple division with a toggler.
- Moved non-common files into a new directory.
- Merged existing changes

21 files changed:
models/admin/manageDashboard/members.php
models/admin/members/list.php
views/admin/common/components/category.html [deleted file]
views/admin/common/components/checkbox.html [deleted file]
views/admin/common/components/count.html [deleted file]
views/admin/common/components/dateSearch.html [deleted file]
views/admin/common/components/dropdown.html [deleted file]
views/admin/common/components/modal.html [deleted file]
views/admin/common/components/textSearch.html [deleted file]
views/admin/common/manageDashboard/index.html [deleted file]
views/admin/common/manageDashboard/list.html [deleted file]
views/admin/manageDashboard/adminSearch/searchHeader.html
views/admin/manageDashboard/components/category.html [new file with mode: 0644]
views/admin/manageDashboard/components/checkbox.html [new file with mode: 0644]
views/admin/manageDashboard/components/count.html [new file with mode: 0644]
views/admin/manageDashboard/components/dateSearch.html [new file with mode: 0644]
views/admin/manageDashboard/components/dropdown.html [new file with mode: 0644]
views/admin/manageDashboard/components/modal.html [new file with mode: 0644]
views/admin/manageDashboard/components/textSearch.html [new file with mode: 0644]
views/admin/manageDashboard/index.html [new file with mode: 0644]
views/admin/manageDashboard/list.html [new file with mode: 0644]

index 8f2cbe5..f603da0 100644 (file)
@@ -441,7 +441,7 @@ class GlmMembersAdmin_manageDashboard_members extends GlmDataMembers
             'status'           => $success,
             'menuItemRedirect' => false,
             'modelRedirect'    => false,
-            'view'             => "admin/common/manageDashboard/$view.html",
+            'view'             => "admin/manageDashboard/$view.html",
             'data'             => $templateData
         );
 
index 186b75b..713b1cc 100755 (executable)
@@ -402,7 +402,7 @@ class GlmMembersAdmin_members_list extends GlmDataMembers
             'status'           => $success,
             'menuItemRedirect' => false,
             'modelRedirect'    => false,
-            'view'             => 'admin/common/manageDashboard/list.html',
+            'view'             => 'admin/manageDashboard/list.html',
             'data'             => $templateData
         );
 
diff --git a/views/admin/common/components/category.html b/views/admin/common/components/category.html
deleted file mode 100644 (file)
index 9ff0e8d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<div class="glm-row">
-    <b>Categories: </b>
-    <select id="filterCategories" name="filterCategories[]" multiple="multiple" size="1">
-{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}
-        </option>
-{/foreach}
-    </select>
-</div>
diff --git a/views/admin/common/components/checkbox.html b/views/admin/common/components/checkbox.html
deleted file mode 100644 (file)
index a32f09c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<div>Checkboxes</div>
-
-<label>
-    <input  type="checkbox" name="{$component.id}" class="glm-admin-search-field"/>
-    <span>{$component.displayName}</span>
-</label>
-
-<script></script>
diff --git a/views/admin/common/components/count.html b/views/admin/common/components/count.html
deleted file mode 100644 (file)
index a86b5c3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<p><b>Total found:</b> {$memberCount}&nbsp;&nbsp;</p>
\ No newline at end of file
diff --git a/views/admin/common/components/dateSearch.html b/views/admin/common/components/dateSearch.html
deleted file mode 100644 (file)
index 4b44225..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<div class="row date-search-container">
-    <div class="date-search-title">Search By Date</div>
-    <div class="s12 xl4 col glm-widget-search">
-        <input id="{$addon.slug}-fromDate" type="text" class="fromDate date-field" name="{$component.fromDate}" placeholder="From Date">
-    </div>
-    <div class="s12 xl4 col glm-widget-search">
-        <input id="{$addon.slug}-toDate" type="text" class="toDate date-field" name="{$component.toDate}" placeholder="To Date">
-    </div>
-    <div class="s12 xl4 col glm-widget-search">
-        <button id="{$addon.slug}-search-button" style="float: right;margin-top: 13px;" class="btn-small date-search-btn">Search</button>        
-    </div>
-</div>
-<script>
-    jQuery(function($){
-        dateSearch({
-            resultUrl       : '{$component.resultUrl}',
-            toDate          : '{$component.toDate}',
-            fromDate        : '{$component.fromDate}',
-            searchBtn       : '{$addon.slug}-search-button',
-            defaultFromDate : '{$component.defaultFromDate}',
-        })
-    })
-</script>
\ No newline at end of file
diff --git a/views/admin/common/components/dropdown.html b/views/admin/common/components/dropdown.html
deleted file mode 100644 (file)
index 63e954d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-<div class="glm-row">
-    <b>{$terms.term_member_cap} Types</b>
-    <select id="filterMemberTypes" name="filterMemberTypes">
-        <option value=""></option>
-        {foreach $member_types as $type}
-        <option value="{$type.id}"{if $type.id == $mTypeSelected} selected{/if}>{$type.name}</option>
-        {/foreach}
-    </select>
-</div>
diff --git a/views/admin/common/components/modal.html b/views/admin/common/components/modal.html
deleted file mode 100644 (file)
index ba271e6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-modal template
\ No newline at end of file
diff --git a/views/admin/common/components/textSearch.html b/views/admin/common/components/textSearch.html
deleted file mode 100644 (file)
index 25c9505..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<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">
-        <label for="glm-member-db-text">Search</label>
-    </div>
-    
-</div>
\ No newline at end of file
diff --git a/views/admin/common/manageDashboard/index.html b/views/admin/common/manageDashboard/index.html
deleted file mode 100644 (file)
index e03f87e..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-
-<div id="glm-manage-member-dashboard">
-    {include file='admin/manageDashboard/adminSearch/searchHeader.html'}
-    <div id="glm-manage-member-dashboard-searchForm" class="row">
-        {foreach $searchFields.components as $component}
-            
-            {if isset($component.template)}
-               
-                {if "{$smarty.current_dir}/../components/{$component.template}.html"|is_file}
-                    {include file="../components/{$component.template}.html"}
-                {else}
-                    Failed loading {$smarty.current_dir}/../components/{$component.template}.html
-                {/if}
-               
-            {/if}
-
-        {/foreach}
-    </div>
-    <div id="glm-admin-member-list" class="row admin-member-list">
-        <div id="glm-admin-list-columns">
-            <span class="member-record-header" id="member-record-image"></span>
-            <span class="member-record-header" id="member-record-name">Name</span>
-            <span class="member-record-header" id="member-record-events">Events</span>
-            <span class="member-record-header" id="member-record-packages">Packages</span>
-            <span class="member-record-header" id="member-record-featured">Featured</span>
-
-        </div>
-        <div id="glm-admin-search-overlay"> 
-            
-            <span>Loading ...</span>
-        
-        </div>
-    </div>
-</div>
-<script>
-    
-    jQuery(function($){
-        window.Glma = {  
-            adminSearch: function(data){
-                $.ajax({
-                    dataType: "json",
-                    type : 'POST',
-                    url: '{$ajaxUrl}',
-                    data: data,
-                    complete: $("#glm-admin-search-overlay").fadeOut('slow'),
-                    success: function(data) {
-                        console.log(data);
-                        $("#glm-admin-member-list").append(data.searchData);
-                    }
-                });
-            }
-        };
-
-
-        /*
-            *  Init Materialize collapsible
-            */
-        jQuery(function($){
-            $('.collapsible').collapsible();
-            $('select').formSelect();
-            $('.modal').modal();
-        })
-
-        /*
-            *  Text Search Autocomplete
-            */
-        function textSearch(textSearchData){
-            // Text Search Component
-            jQuery(function($){
-                let searchResults   = {};
-                let imageUrl        = `{$glmPluginMediaUrl}/images`
-                let data = {
-                    action      : 'glm_members_admin_ajax',
-                    glm_action  : 'glmTextSearch',
-                    table       : textSearchData.table,
-                    fields      : textSearchData.fields,
-                    where       : textSearchData.where
-                }
-                $('input#'+textSearchData.slug+'-text').autoComplete({
-                    minChars: 1,
-                    source: function( request, response ) {
-                        data.query = request;
-                        $.ajax({
-                            dataType: "json",
-                            type : 'POST',
-                            url: '{$ajaxUrl}',
-                            data: data,
-                            success: function(data) {
-                                console.log(data.searchData);
-                                if(data.searchData){
-                                    let searchDropdown = [];
-                                    for(let i = 0;i < data.searchData.length;i++){
-                                        let searchTitle = Object.keys(data.searchData[i])[0];
-                                        let image       = (data.searchData[i][searchTitle].image) ? data.searchData[i][searchTitle].image : null;
-                                        let memberID    = data.searchData[i][searchTitle].memberID;   
-                                        let entityID    = data.searchData[i][searchTitle].entityID;              
-                                        searchDropdown.push(searchTitle);
-                                        {literal} searchResults[searchTitle] = {image: image, memberID: memberID, entityID: entityID}; {/literal}
-                                    }   
-                                    {literal} response(searchDropdown); {/literal}
-                                }else{
-                                    response(['No Results Found'])
-                                }
-                            }
-                        });
-                    },
-                    renderItem: function (item, search){
-                        search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
-                        var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
-                        return '<div class="autocomplete-suggestion" data-langname="'+item[0]+'" data-lang="'+item[1]+'" data-val="'+search+'">'+item.replace(re, "<b>$1</b>")+'</div>';
-
-                    },
-                    onSelect: function(e, term, item){
-                        let search = $(item).text();
-                        console.log(search)
-                        if(search !== "No Results Found"){
-                            window.location.replace(textSearchData.resultUrl+searchResults[search].entityID);
-                        }
-                    },
-                });
-            });
-        }
-
-        /*
-            *  Date Search Widget
-            */
-        function dateSearch(dateSearchData){
-            jQuery(function($){
-
-                var date = new Date();
-                var toDate = '', fromDate = (dateSearchData.defaultFromDate) ? '&' + dateSearchData.fromDate + '=' + dateSearchData.defaultFromDate : '';
-                $('.fromDate').datepicker({
-                    format          : 'mm/dd/yyyy',
-                    setDefaultDate  : true,
-                    defaultDate     : date,
-                    autoClose       : true,
-                    onClose         : function(){
-                        fromDate = '&' + dateSearchData.fromDate + '=' + $(this)[0].el.value; 
-                    }
-                });
-                $('.toDate').datepicker({
-                    format      : 'mm/dd/yyyy',
-                    autoClose   : true,
-                    onClose: function(){
-                        toDate = '&' + dateSearchData.toDate + '=' + $(this)[0].el.value;
-                    }
-                });
-                console.log( dateSearchData.resultUrl + fromDate + toDate)
-                $('#' + dateSearchData.searchBtn).on("click", function(){
-                    window.location = dateSearchData.resultUrl + fromDate + toDate;
-                })
-            });
-        }
-
-        /*
-            *  List component tooltips
-            */
-        function listComponent(listComponentData) {
-            jQuery(function($){
-                $('.tooltipped').tooltip();
-            });
-        }
-                
-        let data = {
-            action      : 'glm_members_admin_ajax',
-            glm_action  : 'adminSearch',
-            form_action : 'list',
-            view: "list"
-            // table       : textSearchData.table,
-            // fields      : textSearchData.fields,
-            // where       : textSearchData.where
-        }
-        window.Glma.adminSearch(data);
-
-        $(".glm-admin-search-field").on("change", function(){
-            console.log( $(this) );
-            window.Glma.adminSearch(data);
-        });
-    });
-</script>
-
-{include file='admin/footer.html'}
\ No newline at end of file
diff --git a/views/admin/common/manageDashboard/list.html b/views/admin/common/manageDashboard/list.html
deleted file mode 100644 (file)
index d41a9bf..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<div id="member-results-container">
-    {if $haveMembers}
-        {foreach $members as $member}
-            <div class="member-record" data-id="{$member.id}">
-                <span class="member-record-column member-record-logo">logo</span>
-                <span class="member-record-column member-record-name">{$member.name}</span>
-                <span class="member-record-column member-record-events">0</span>
-                <span class="member-record-column member-record-packages">0</span>
-                <span class="member-record-column member-record-featured">{$member.featured.name}</span>
-            </div>
-        {/foreach}
-    {else}
-        <div id="no-results">No Members</div>
-    {/if}
-</div>
\ No newline at end of file
index 7873714..4185abf 100644 (file)
@@ -1,3 +1,51 @@
 <div id="glm-admin-search-header">
-    Search Fields pulled from file
-</div>
\ No newline at end of file
+    <div id="glm-manage-member-dashboard-searchForm" class="row">
+        <form action="{$thisUrl}?page={$thisPage}" method="post" id="searchForm">
+            <input type="hidden" name="glm_action" value="list">
+            <input type="hidden" name="prevStart" value="{$prevStart}">
+            <input type="hidden" name="nextStart" value="{$nextStart}">
+            <input type="hidden" name="limit" value="{$limit}">
+            <input type="hidden" name="savedAlpha" value="{$alphaSelected}">
+            <div id="searchForm-simple">
+                {foreach $searchFields.components as $component}
+                    
+                    {if isset($component.template)}
+                        
+                        {if "{$smarty.current_dir}/../components/{$component.template}.html"|is_file}
+                            {include file="../components/{$component.template}.html"}
+                        {else}
+                            Failed loading {$smarty.current_dir}/../components/{$component.template}.html
+                        {/if}
+                        
+                    {/if}
+        
+                {/foreach}
+            </div>
+            <div id="advanced-search-toggle" data-toggles="#searchForm-advanced" class="data-toggler">
+                <div id="advanced-search-toggle-button" class="button">Advanced Search</div>
+            </div>
+            <div id="searchForm-advanced" class="hidden">
+                CUSTOM FIELDS: 
+                {apply_filters('glm-member-db-custom-filter-search', '', 'glm-member-db' )}
+            </div<>
+            <input type="submit" value="Submit" style="margin-right: 2em;">
+        </form>
+    </div>
+</div>
+<div id="glm-admin-search-subheader">
+    <div id="glm-manage-dashboard-quickSearchForm" class="row">
+
+        <form action="{$thisUrl}?page={$thisPage}" method="post" id="quickSarchForm">
+            <input type="submit" value="Pending Members{if $pendingMembersCount}: {$pendingMembersCount}{/if}"" style="margin-right: 2em;">
+            <input type="submit" value="Bad Map Location Data{if $badMapLocationCount}: {$badMapLocationCount}{/if}"" style="margin-right: 2em;">
+        </form>
+        
+    </div>
+</div>
+<script>
+    jQuery(function($){
+        $('.data-toggler').on("click", function() {
+            $($(this).attr("data-toggles")).toggleClass("hidden");
+        });
+    });
+</script>
\ No newline at end of file
diff --git a/views/admin/manageDashboard/components/category.html b/views/admin/manageDashboard/components/category.html
new file mode 100644 (file)
index 0000000..9ff0e8d
--- /dev/null
@@ -0,0 +1,10 @@
+<div class="glm-row">
+    <b>Categories: </b>
+    <select id="filterCategories" name="filterCategories[]" multiple="multiple" size="1">
+{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}
+        </option>
+{/foreach}
+    </select>
+</div>
diff --git a/views/admin/manageDashboard/components/checkbox.html b/views/admin/manageDashboard/components/checkbox.html
new file mode 100644 (file)
index 0000000..a32f09c
--- /dev/null
@@ -0,0 +1,8 @@
+<div>Checkboxes</div>
+
+<label>
+    <input  type="checkbox" name="{$component.id}" class="glm-admin-search-field"/>
+    <span>{$component.displayName}</span>
+</label>
+
+<script></script>
diff --git a/views/admin/manageDashboard/components/count.html b/views/admin/manageDashboard/components/count.html
new file mode 100644 (file)
index 0000000..a86b5c3
--- /dev/null
@@ -0,0 +1 @@
+<p><b>Total found:</b> {$memberCount}&nbsp;&nbsp;</p>
\ No newline at end of file
diff --git a/views/admin/manageDashboard/components/dateSearch.html b/views/admin/manageDashboard/components/dateSearch.html
new file mode 100644 (file)
index 0000000..4b44225
--- /dev/null
@@ -0,0 +1,23 @@
+<div class="row date-search-container">
+    <div class="date-search-title">Search By Date</div>
+    <div class="s12 xl4 col glm-widget-search">
+        <input id="{$addon.slug}-fromDate" type="text" class="fromDate date-field" name="{$component.fromDate}" placeholder="From Date">
+    </div>
+    <div class="s12 xl4 col glm-widget-search">
+        <input id="{$addon.slug}-toDate" type="text" class="toDate date-field" name="{$component.toDate}" placeholder="To Date">
+    </div>
+    <div class="s12 xl4 col glm-widget-search">
+        <button id="{$addon.slug}-search-button" style="float: right;margin-top: 13px;" class="btn-small date-search-btn">Search</button>        
+    </div>
+</div>
+<script>
+    jQuery(function($){
+        dateSearch({
+            resultUrl       : '{$component.resultUrl}',
+            toDate          : '{$component.toDate}',
+            fromDate        : '{$component.fromDate}',
+            searchBtn       : '{$addon.slug}-search-button',
+            defaultFromDate : '{$component.defaultFromDate}',
+        })
+    })
+</script>
\ No newline at end of file
diff --git a/views/admin/manageDashboard/components/dropdown.html b/views/admin/manageDashboard/components/dropdown.html
new file mode 100644 (file)
index 0000000..63e954d
--- /dev/null
@@ -0,0 +1,10 @@
+
+<div class="glm-row">
+    <b>{$terms.term_member_cap} Types</b>
+    <select id="filterMemberTypes" name="filterMemberTypes">
+        <option value=""></option>
+        {foreach $member_types as $type}
+        <option value="{$type.id}"{if $type.id == $mTypeSelected} selected{/if}>{$type.name}</option>
+        {/foreach}
+    </select>
+</div>
diff --git a/views/admin/manageDashboard/components/modal.html b/views/admin/manageDashboard/components/modal.html
new file mode 100644 (file)
index 0000000..6463cef
--- /dev/null
@@ -0,0 +1 @@
+[modal template loaded]
\ No newline at end of file
diff --git a/views/admin/manageDashboard/components/textSearch.html b/views/admin/manageDashboard/components/textSearch.html
new file mode 100644 (file)
index 0000000..25c9505
--- /dev/null
@@ -0,0 +1,7 @@
+<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">
+        <label for="glm-member-db-text">Search</label>
+    </div>
+    
+</div>
\ No newline at end of file
diff --git a/views/admin/manageDashboard/index.html b/views/admin/manageDashboard/index.html
new file mode 100644 (file)
index 0000000..a12b128
--- /dev/null
@@ -0,0 +1,167 @@
+
+<div id="glm-manage-member-dashboard">
+    {include file='admin/manageDashboard/adminSearch/searchHeader.html'}
+    <div id="glm-admin-member-list" class="row admin-member-list">
+        <div id="glm-admin-list-columns">
+            <span class="member-record-header" id="member-record-image"></span>
+            <span class="member-record-header" id="member-record-name">Name</span>
+            <span class="member-record-header" id="member-record-events">Events</span>
+            <span class="member-record-header" id="member-record-packages">Packages</span>
+            <span class="member-record-header" id="member-record-featured">Featured</span>
+
+        </div>
+        <div id="glm-admin-search-overlay"> 
+            
+            <span>Loading ...</span>
+        
+        </div>
+    </div>
+</div>
+<script>
+    
+    jQuery(function($){
+        window.Glma = {  
+            adminSearch: function(data){
+                $.ajax({
+                    dataType: "json",
+                    type : 'POST',
+                    url: '{$ajaxUrl}',
+                    data: data,
+                    complete: $("#glm-admin-search-overlay").fadeOut('slow'),
+                    success: function(data) {
+                        console.log(data);
+                        $("#glm-admin-member-list").append(data.searchData);
+                    }
+                });
+            }
+        };
+
+
+        /*
+            *  Init Materialize collapsible
+            */
+        jQuery(function($){
+            $('.collapsible').collapsible();
+            $('select').formSelect();
+            $('.modal').modal();
+        })
+
+        /*
+            *  Text Search Autocomplete
+            */
+        function textSearch(textSearchData){
+            // Text Search Component
+            jQuery(function($){
+                let searchResults   = {};
+                let imageUrl        = `{$glmPluginMediaUrl}/images`
+                let data = {
+                    action      : 'glm_members_admin_ajax',
+                    glm_action  : 'glmTextSearch',
+                    table       : textSearchData.table,
+                    fields      : textSearchData.fields,
+                    where       : textSearchData.where
+                }
+                $('input#'+textSearchData.slug+'-text').autoComplete({
+                    minChars: 1,
+                    source: function( request, response ) {
+                        data.query = request;
+                        $.ajax({
+                            dataType: "json",
+                            type : 'POST',
+                            url: '{$ajaxUrl}',
+                            data: data,
+                            success: function(data) {
+                                console.log(data.searchData);
+                                if(data.searchData){
+                                    let searchDropdown = [];
+                                    for(let i = 0;i < data.searchData.length;i++){
+                                        let searchTitle = Object.keys(data.searchData[i])[0];
+                                        let image       = (data.searchData[i][searchTitle].image) ? data.searchData[i][searchTitle].image : null;
+                                        let memberID    = data.searchData[i][searchTitle].memberID;   
+                                        let entityID    = data.searchData[i][searchTitle].entityID;              
+                                        searchDropdown.push(searchTitle);
+                                        {literal} searchResults[searchTitle] = {image: image, memberID: memberID, entityID: entityID}; {/literal}
+                                    }   
+                                    {literal} response(searchDropdown); {/literal}
+                                }else{
+                                    response(['No Results Found'])
+                                }
+                            }
+                        });
+                    },
+                    renderItem: function (item, search){
+                        search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+                        var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
+                        return '<div class="autocomplete-suggestion" data-langname="'+item[0]+'" data-lang="'+item[1]+'" data-val="'+search+'">'+item.replace(re, "<b>$1</b>")+'</div>';
+
+                    },
+                    onSelect: function(e, term, item){
+                        let search = $(item).text();
+                        console.log(search)
+                        if(search !== "No Results Found"){
+                            window.location.replace(textSearchData.resultUrl+searchResults[search].entityID);
+                        }
+                    },
+                });
+            });
+        }
+
+        /*
+            *  Date Search Widget
+            */
+        function dateSearch(dateSearchData){
+            jQuery(function($){
+
+                var date = new Date();
+                var toDate = '', fromDate = (dateSearchData.defaultFromDate) ? '&' + dateSearchData.fromDate + '=' + dateSearchData.defaultFromDate : '';
+                $('.fromDate').datepicker({
+                    format          : 'mm/dd/yyyy',
+                    setDefaultDate  : true,
+                    defaultDate     : date,
+                    autoClose       : true,
+                    onClose         : function(){
+                        fromDate = '&' + dateSearchData.fromDate + '=' + $(this)[0].el.value; 
+                    }
+                });
+                $('.toDate').datepicker({
+                    format      : 'mm/dd/yyyy',
+                    autoClose   : true,
+                    onClose: function(){
+                        toDate = '&' + dateSearchData.toDate + '=' + $(this)[0].el.value;
+                    }
+                });
+                console.log( dateSearchData.resultUrl + fromDate + toDate)
+                $('#' + dateSearchData.searchBtn).on("click", function(){
+                    window.location = dateSearchData.resultUrl + fromDate + toDate;
+                })
+            });
+        }
+
+        /*
+            *  List component tooltips
+            */
+        function listComponent(listComponentData) {
+            jQuery(function($){
+                $('.tooltipped').tooltip();
+            });
+        }
+                
+        let data = {
+            action      : 'glm_members_admin_ajax',
+            glm_action  : 'adminSearch',
+            form_action : 'list',
+            view: "list"
+            // table       : textSearchData.table,
+            // fields      : textSearchData.fields,
+            // where       : textSearchData.where
+        }
+        window.Glma.adminSearch(data);
+
+        $(".glm-admin-search-field").on("change", function(){
+            console.log( $(this) );
+            window.Glma.adminSearch(data);
+        });
+    });
+</script>
+
+{include file='admin/footer.html'}
\ No newline at end of file
diff --git a/views/admin/manageDashboard/list.html b/views/admin/manageDashboard/list.html
new file mode 100644 (file)
index 0000000..d41a9bf
--- /dev/null
@@ -0,0 +1,15 @@
+<div id="member-results-container">
+    {if $haveMembers}
+        {foreach $members as $member}
+            <div class="member-record" data-id="{$member.id}">
+                <span class="member-record-column member-record-logo">logo</span>
+                <span class="member-record-column member-record-name">{$member.name}</span>
+                <span class="member-record-column member-record-events">0</span>
+                <span class="member-record-column member-record-packages">0</span>
+                <span class="member-record-column member-record-featured">{$member.featured.name}</span>
+            </div>
+        {/foreach}
+    {else}
+        <div id="no-results">No Members</div>
+    {/if}
+</div>
\ No newline at end of file