pushing test code to see why the admin ajax search isn't triggering the list model
authorAnthony Talarico <talarico@gaslightmedia.com>
Tue, 13 Nov 2018 18:35:54 +0000 (13:35 -0500)
committerAnthony Talarico <talarico@gaslightmedia.com>
Tue, 13 Nov 2018 18:35:54 +0000 (13:35 -0500)
models/admin/ajax/adminSearch.php
models/admin/manageDashboard/list.php [new file with mode: 0644]
models/admin/manageDashboard/members.php
setup/adminHooks.php
views/admin/common/manageDashboard/list.html

index 2033f94..186ac36 100644 (file)
@@ -83,13 +83,9 @@ class GlmMembersAdmin_ajax_adminSearch
         global $wpdb;
 
         
-        require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMembers.php';
-        require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMemberInfo.php';
-        $membersTable = GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info";
-        $membersTextTable = GLM_MEMBERS_PLUGIN_DB_PREFIX . "members";
-        $MemberInfo = new GlmDataMemberInfo($this->wpdb, $this->config);
-        $Members = new GlmDataMembers($this->wpdb, $this->config);
-        
+        require_once GLM_MEMBERS_PLUGIN_PATH . '/models/admin/manageDashboard/members.php';
+        $memberSearch = new GlmMembersAdmin_manageDashboard_members($this->wpdb, $this->config);
+        $data = "test";
 
 
         $where              = ' true ';
@@ -98,11 +94,11 @@ class GlmMembersAdmin_ajax_adminSearch
         $limit = 20;
 
         $status = $this->config['status_numb']['Active'];
-        $list   = apply_filters('glm-member-db-admin-search');
-        $this->write_log($list);
+        $list   = apply_filters('glm-member-db-admin-search','');
+        $this->write_log("LIST: ". $list);
         
         $return = array(
-            'searchData'    => $list       // Where our events list will go
+            'searchData'    => $memberSearch       // Where our events list will go
         );
 
         header('Content-type:application/json;charset=utf-8', true);
diff --git a/models/admin/manageDashboard/list.php b/models/admin/manageDashboard/list.php
new file mode 100644 (file)
index 0000000..e69de29
index 2a811fa..baa066f 100644 (file)
@@ -66,7 +66,15 @@ class GlmMembersAdmin_manageDashboard_members extends GlmDataMembers
         parent::__construct(false, false);
 
     }
-
+    function writes_log ( $log )  {
+        if ( true === WP_DEBUG ) {
+            if ( is_array( $log ) || is_object( $log ) ) {
+                error_log( print_r( $log, true ) );
+            } else {
+                error_log( $log );
+            }
+        }
+    }
     /*
      * Perform Model Action
      *
@@ -103,7 +111,8 @@ class GlmMembersAdmin_manageDashboard_members extends GlmDataMembers
      */
     public function modelAction ($actionData = false)
     {
-
+        $this->writes_log($_REQUEST);
+        $view = "index";
 
         // Enqueue Materialize
         wp_register_script(
@@ -431,7 +440,7 @@ class GlmMembersAdmin_manageDashboard_members extends GlmDataMembers
             'status'           => $success,
             'menuItemRedirect' => false,
             'modelRedirect'    => false,
-            'view'             => 'admin/common/manageDashboard/index.html',
+            'view'             => "admin/common/manageDashboard/$view.html",
             'data'             => $templateData
         );
 
index 68ce425..8d588ec 100644 (file)
@@ -576,7 +576,7 @@ add_filter(
 );
 add_filter(
     'glm-member-db-admin-search',
-    function ( $input = '' ) {
-        return  $this->controller( 'members', 'list');
+    function ( $data ) {
+        return $this->controller( 'manageDashboard', 'members');
     }
 );
\ No newline at end of file
index 6cb8e6e..f6a19c8 100644 (file)
@@ -1,384 +1,7 @@
-
-<div class="glm-admin-table-inner glm-admin-table">
-    <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}">
-
-        <h2 class="glm-admin-table-header">List&nbsp;of&nbsp;{$terms.term_member_plur_cap}</h2>
-
-        <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>
-
-        <div class="glm-row">
-            <b>Show Archived: </b><input type="checkbox" name="filterArchived" value="true" id="filterArchived" class="listFilter"{if $filterArchived} checked{/if} style="margin-right: 1em;">
-                <b>Featured Only: </b><input type="checkbox" name="filterFeatured" value="true" id="filterFeatured" class="listFilter"{if $filterFeatured} checked{/if} style="margin-right: 1em;">
-                <b>Pending Only: </b><input type="checkbox" name="filterPending" value="true" id="filterPending" class="listFilter"{if $filterPending} checked{/if} style="margin-right: 1em;">
-        </div>
-
-       {apply_filters('glm-member-db-custom-filter-search', '', 'glm-member-db' )}
-
-        <p><b>Total found:</b> {$memberCount}&nbsp;&nbsp;</p>
-
-        <br clear="all">
-        <!-- Add Member Type Button and Dialog Box -->
-        <div id="exportMembersButton" class="button button-secondary glm-admin-export-button">{$terms.term_member_cap} Export/Reports</div>
-
-        {if $paging}
-            <input type="Submit" name="pageSelect" value="Previous {$limit} {$terms.term_member_plur_cap}" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
-            <input type="Submit" name="pageSelect" value="Next {$limit} {$terms.term_member_plur_cap}" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
-        {/if}
-
-        <div class="glm-alpha-links">
-            <a href="{$thisUrl}?page=glm-members-admin-menu-members-list&glm_action=list&text_search={$textSearch}&categorySearch={$catSearchSelected}" class="glm-alpha-link{if !$alphaSelected} glm-alpha-link-selected{/if}">All</a>
-      {foreach $alphaList as $a}
-            <a href="{$thisUrl}?page=glm-members-admin-menu-members-list&glm_action=list&alpha={$a.alpha}&text_search={$textSearch}&categorySearch={$catSearchSelected}" class="glm-alpha-link{if $a.default} glm-alpha-link-selected{/if}">{$a.alpha}</a>
-      {/foreach}
-       </div>
-
-        <table class="wp-list-table striped glm-admin-table-single">
-            <thead>
-                <tr>
-                    <th>ID</th>
-                    <th>{$terms.term_member_cap} Name</th>
-                    <th></th>
-                    <th></th>
-                    <th>Featured</th>
-                    <th>Access</th>
-<!--                    <th>$terms.term_member_cap Type</th>-->
-                </tr>
-            </thead>
-            <tbody>
-    {if $haveMembers}
-        {assign var="i" value="0"}
-        {foreach $members as $m}
-            {if $i++ is odd by 1}
-                <tr>
-            {else}
-                <tr class="alternate">
-            {/if}
-                    <td style="width: 50px;">
-                        {$m.id}
-                    </td>
-                    <td>
-                        <a href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=index&member={$m.id}">{$m.name}</a>
-                    </td>
-                    <td style="width: 120px;">
-                        <a href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=memberInfo&member={$m.id}&memberInfo={$m.active_id}" class="button button-secondary glm-button-small glm-admin-edit-active-profile" style="margin: 0 .2em 0 .2em;">Edit Active Profile</a>
-                    </td>
-                    <td style="width: 120px;">
-                        <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/" target="_blank">View Profile</a>
-                    </td>
-                    <td style="width: 90px;">
-                        {$m.featured.name}
-                    </td>
-                    <td style="width: 120px">
-                        {$m.access_short.name}
-                    </td>
-<!--                    <td>
-                        $m.member_type_short
-                    </td>-->
-                </tr>
-        {/foreach}
-    {else}
-                <tr class="alternate"><td colspan="2">(no {$terms.term_member_plur} listed)</td></tr>
-    {/if}
-            </tbody>
-        </table>
-
-        {if $paging}
-            <input type="Submit" name="pageSelect" value="Previous {$limit} {$terms.term_member_plur_cap}" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
-            <input type="Submit" name="pageSelect" value="Next {$limit} {$terms.term_member_plur_cap}" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
-        {/if}
-
-    </form>
-
-    <div id="exportMembersDialog" class="glm-dialog-box" title="Export {$terms.term_member_cap}">
-        <form id="exportForm" action="{$ajaxUrl}" method="post" enctype="multipart/form-data">
-            <input type="hidden" name="action" value="glm_members_admin_ajax">
-            <input type="hidden" name="glm_action" value="membersListExport">
-            <table class="glm-admin-table">
-                <tr>
-                    <th>Categories: </th>
-                    <td>
-                        <select id="exportFilterCategories" 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>
-                    </td>
-                </tr>
-                <tr>
-                    <th>Member Types:</th>
-                    <td>
-                        <select id="exportFilterMemberTypes" 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>
-                    </td>
-                </tr>
-                <tr><th>Show Archived: </th><td><input type="checkbox" name="filterArchived"></td></tr>
-                <tr><th>Featured Only: </th><td><input type="checkbox" name="filterFeatured"></td></tr>
-                <tr><th>Pending Only: </th><td><input type="checkbox" name="filterPending"></td></tr>
-                <tr><th>Name Search: </th><td><input  class="exportMembersSearch glm-form-text-input-medium" type="text" name="text_search" id="autoTest"><br>
-                        Enter any portion of a {$terms.term_member_cap} name and press enter or select any specific {$terms.term_member_cap} found.
-                    </td></tr>
-                <tr>
-                    <th>Fields to export</th>
-                    <td>
-                        <table padding="3">
-                            <tr>
-                                <td colspan="2"><a id="selectAllExportFields">Check All</a> / <a id="unselectAllExportFields">Uncheck All</a></td>
-                            </tr>
-                            <tr>
-                                <td class="exportFieldsTd">
-                                    <input type="checkbox" name="exportId"> {$terms.term_member_cap} ID<br>
-                                    <input type="checkbox" name="exportOldId"> Old {$terms.term_member_cap} ID<br>
-                                    <input type="checkbox" name="exportMember" checked> {$terms.term_member_cap} Name<br>
-                                    <input type="checkbox" name="exportReferenceName"> Profile Reference Name<br>
-                                    <input type="checkbox" name="exportAddr1" checked> Address Line #1<br>
-                                    <input type="checkbox" name="exportAddr2" checked> Address Line #2<br>
-                                    <input type="checkbox" name="exportCity" checked> City<br>
-                                    <input type="checkbox" name="exportState" checked> State<br>
-                                    <input type="checkbox" name="exportZip" checked> ZIP/Postal Code<br>
-                                    <input type="checkbox" name="exportCounty" checked> County <br>
-                                    <input type="checkbox" name="exportRegion" checked> Region <br>
-                                </td>
-                                <td class="exportFieldsTd">
-                                    <input type="checkbox" name="exportPhone" checked> Phone #<br>
-                                    <input type="checkbox" name="exportTollFree" checked> Toll Free<br>
-                                    <input type="checkbox" name="exportEmail" checked> Main E-Mail<br>
-                                    <input type="checkbox" name="exportPriContactName" checked> Primary Contact Name<br>
-                                    <input type="checkbox" name="exportPriContactEmail" checked> Primary Contact E-Mail<br>
-                                    <input type="checkbox" name="exportUrl" checked> Web Address (URL)<br>
-                                    <input type="checkbox" name="exportCategories" checked> Categories<br>
-                                    <input type="checkbox" name="exportMailingAddr1" checked> Mailing Address Line #1<br>
-                                    <input type="checkbox" name="exportMailingAddr2" checked> Mailing Address Line #2<br>
-                                    <input type="checkbox" name="exportMailingCity" checked> Mailing City<br>
-                                    <input type="checkbox" name="exportMailingState" checked> Mailing State<br>
-                                    <input type="checkbox" name="exportMailingZip" checked> Mailing ZIP/Postal Code<br>
-                                </td>
-                            </tr>
-                        </table>
-                    </td>
-                </tr>
-                {* Custom Field Part *}
-                {if apply_filters( 'glm-members-customfields-active', false )}
-                <tr>
-                    <th>Custom Fields</th>
-                    <td>
-                    {$customFields = apply_filters('glm-member-db-fields-get-members-fields', false, 'glm-member-db')}
-                    {if $customFields}
-                        {foreach $customFields as $cf}
-                            <input type="checkbox" name="exportCF[{$cf.id}]" checked> {$cf.field_name} <br>
-                        {/foreach}
-                    {/if}
-                    </td>
-                </tr>
-                {/if}
-                <tr>
-                    <th>Include&nbsp;Clicks&nbsp;&&nbsp;Views</th>
-                    <td>
-                        <table padding="3">
-                            <tr>
-                                <td>
-                                    Month: <input type="text" class="monthPicker" name="monthYear" value="{$monthYear}">
-                                </td>
-                            </tr>
-                            <tr>
-                                <td>
-                                    <input type="checkbox" name="exportClicks"> URL Click Counts<br>
-                                    <input type="checkbox" name="exportViews"> Detail Page View Counts
-                                </td>
-                            </tr>
-                        </table>
-                    </td>
-                </tr>
-                <tr>
-                    <th>Export to: </th>
-                    <td>
-                        <input type="radio" name="type" value="print" checked="checked"> Export for Print<br>
-                        <input type="radio" name="type" value="csv"> Export to Spreadsheet (CSV)
-                    </td>
-                </tr>
-            </table>
-            <a id="exportMembersCancel" class="button button-secondary glm-right">Cancel</a>
-            <input type="submit" value="Export" class="button button-primary">
-        </form>
-    </div>
+<div id="member-search-results-container">
+    <div id="search-results-header"></div>
+    <div id="search-results">{$memberCount}</div>
 </div>
-    <script type="text/javascript">
-        jQuery(document).ready(function($) {
-
-            $('#selectAllExportFields').click(function(){
-                $('.exportFieldsTd input[type="checkbox"]').each(function(){
-                    $(this).prop('checked', true);
-                });
-            });
-            $('#unselectAllExportFields').click(function(){
-                $('.exportFieldsTd input[type="checkbox"]').each(function(){
-                    $(this).prop('checked', false);
-                });
-            });
-
-            $('.monthPicker').datepicker( {
-                changeMonth: true,
-                changeYear: true,
-                showButtonPanel: true,
-                dateFormat: 'MM yy',
-                onClose: function(dateText, inst) {
-                    var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
-                    var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
-                    $(this).datepicker('setDate', new Date(year, month, 1));
-                },
-                beforeShow: function (input, inst) {
-                    var $this = $(this),
-                        // For the simplicity we suppose the dateFormat will be always without the day part, so we
-                        // manually add it since the $.datepicker.parseDate will throw if the date string doesn't contain the day part
-                        dateFormat = 'd ' + $this.datepicker('option', 'dateFormat'),
-                        date;
-
-                    try {
-                        date = $.datepicker.parseDate(dateFormat, '1 ' + $this.val());
-                    } catch (ex) {
-                        return;
-                    }
-
-                    $this.datepicker('option', 'defaultDate', date);
-                    $this.datepicker('setDate', date);
-
-                    inst.dpDiv.addClass('datepicker-month-year');
-                }
-            });
-
-            $("#exportMembersDialog").dialog({
-                autoOpen: false,
-                minWidth: 700,
-                dialogClass: "glm-dialog-no-close"
-            });
-            $('#exportMembersButton').click( function() {
-                $("#exportMembersDialog").dialog("open");
-            });
-            $('#exportMembersCancel').click( function() {
-                $("#exportMembersDialog").dialog("close");
-            });
-
-            // Filter triggers
-            $(".listFilter" ).change( function() {
-
-                var filter = '';
-
-                // Check for archived filter
-                if ($("#filterArchived").attr('checked')) {
-                    filter += '&filterArchived=true';
-                }
-
-                // Check for pending data filter
-                if ($("#filterPending").attr('checked')) {
-                    filter += '&filterPending=true';
-                }
-
-                // Check for featured data filter
-                if ($("#filterFeatured").attr('checked')) {
-                    filter += '&filterFeatured=true';
-                }
-
-                window.location.href = "{$thisUrl}?page={$thisPage}&glm_action=list" + filter;
-
-                return false;
-            });
-
-            // Perform Export
-            $("#glmMembersExport").on( 'click', function() {
-                window.open("{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=membersListExport&type=print", 'Member Export');
-                return false;
-            });
-
-            // Perform CSV Export
-            $("#glmMembersExportCsv").on( 'click', function() {
-                window.open("{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=membersListExport&type=csv", 'Member Export CSV');
-                return false;
-            });
-
-            /*
-             * Do autocomplete search for member
-             * label: What will be searched
-             * value: What will be displayed when selected
-             * id: Member id added so we can go to the member while showing what was selected
-             * Also note that autocomplete does not properly render HTML codes, so we
-             * "unescape" them for HTML in Smarty.
-             */
-
-             var availableTags = [
-    {foreach $namesList as $m}
-                { label: "{$m.name|unescape:'html'|replace:'"':''}", value: "{$m.name|unescape:'html'|replace:'"':''}", id: '{$m.id}' },
-    {/foreach}
-             ];
-
-             // Autocomplete for list Text Search
-             $( ".glmMembersSearch" ).autocomplete({
-                 source: availableTags,
-                 html: true,
-                 position: { my : "left top", at: "left bottom" },
-                 select: function( event, ui ) {
-                     var memberID = ui.item.id;
-                     window.location.replace("{$adminUrl}?page=glm-members-admin-menu-member&glm_action=index&member=" + memberID );
-                 },
-                 response: function(event, ui) {
-                     if (!ui.content.length) {
-                         var noResult = { value:"",label:"No results found" };
-                         ui.content.push(noResult);
-                     }
-                 }
-             });
-
-             // Autocomplete for export Text field
-             $( ".exportMembersSearch" ).autocomplete({
-
-                 source: availableTags,
-                 html: true,
-                 position: { my : "right top", at: "right bottom" },
-                 response: function(event, ui) {
-                     if (!ui.content.length) {
-                         var noResult = { value:"",label:"No results found" };
-                         ui.content.push(noResult);
-                     }
-                 }
-             });
-
-             // No submit on ENTER for pop-up export form
-             jQuery.each($("#exportForm").find('input'), function(){
-                 $(this).bind('keypress keydown keyup', function(e){
-                    if(e.keyCode == 13) {
-                        $( ".exportMembersSearch" ).autocomplete("close");
-                        return false;
-                    }
-                 });
-             });
-
-             // Restrict autocomplete list to a certain height with scrollbar
-             $('.ui-autocomplete').css('height','200px').css('overflow-y','scroll');
-
-             // Expand multi-select on hover
-             $('#filterCategories').multiselect();
-             $('#exportFilterCategories').multiselect();
-
-
-        });
-    </script>