Add member type filter to list search.
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 13 Sep 2017 19:42:10 +0000 (15:42 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 13 Sep 2017 19:42:10 +0000 (15:42 -0400)
Adding a filter when searching by member types.

models/admin/members/list.php
views/admin/members/list.html

index f8a8a7e..545231e 100644 (file)
@@ -108,6 +108,7 @@ class GlmMembersAdmin_members_list extends GlmDataMembers
         $alphaWhere         = ' true ';
         $catSearchSelected  = false;
         $catSelectedString  = "";
+        $mTypeSelected      = '';
         $catSelected        = '';
         $catsToUse          = '';
         $filterPending      = false;
@@ -160,6 +161,17 @@ class GlmMembersAdmin_members_list extends GlmDataMembers
             }
         }
 
+        // Get a list of member_types for filtering
+        require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataMemberTypes.php';
+        $MemberTypes = new GlmDataMemberTypes( $this->wpdb, $this->config );
+        $member_types = $MemberTypes->getList();
+
+        // Check if there is a member_type filter
+        if ( isset( $_REQUEST['filterMemberTypes'] ) && $memberTypeFilter = filter_var( $_REQUEST['filterMemberTypes'], FILTER_VALIDATE_INT ) ) {
+            $where .= " AND T.member_type = $memberTypeFilter ";
+            $mTypeSelected = $memberTypeFilter;
+        }
+
         // Check if there is a category filter (multi-select)
         if (isset($_REQUEST['categorySearch']) && $_REQUEST['categorySearch'] > 0) {
             $catsToUse = explode(',',$_REQUEST['categorySearch']);
@@ -333,9 +345,9 @@ class GlmMembersAdmin_members_list extends GlmDataMembers
             }
         }
 
-        // Create current month/date string to pre-populate the Month/Year field for 
+        // Create current month/date string to pre-populate the Month/Year field for
         $monthYear = date('F Y');
-        
+
         // Compile template data
         $templateData = array(
             'monthYear'      => $monthYear,
@@ -344,12 +356,14 @@ class GlmMembersAdmin_members_list extends GlmDataMembers
             'members'        => $list,
             'memberCount'    => $memberCount,
             'categories'     => $categories,
+            'member_types'   => $member_types,
             'haveFilter'     => $haveFilter,
             'filterArchived' => $filterArchived,
             'filterFeatured' => $filterFeatured,
             'filterPending'  => $filterPending,
             'catSelected' => $catSelected,
             'catSearchSelected' => $catSelectedString,
+            'mTypeSelected'  => $mTypeSelected,
             'alphaList'      => $alphaList,
             'alphaSelected'  => $alphaSelected,
             'numbDisplayed'  => $numbDisplayed,
index 6f84ffd..bfb3bd4 100644 (file)
             </select>
         </div>
 
+        <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" id="filterArchived" class="listFilter"{if $filterArchived} checked{/if} style="margin-right: 1em;">
                 <b>Featured Only: </b><input type="checkbox" id="filterFeatured" class="listFilter"{if $filterFeatured} checked{/if} style="margin-right: 1em;">
@@ -36,7 +46,7 @@
 
         <br clear="all">
         <!-- Add Member Type Button and Dialog Box -->
-        <div id="exportMembersButton" class="button button-secondary glm-admin-export-button">Export {$terms.term_member_cap} Profiles</div>
+        <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}>
                             <tr>
                                 <td>
                                     Month: <input type="text" class="monthPicker" name="monthYear" value="{$monthYear}">
-                                </td> 
+                                </td>
                             </tr>
                             <tr>
                                 <td>
                    changeYear: true,
                    showButtonPanel: true,
                    dateFormat: 'MM yy',
-                   onClose: function(dateText, inst) { 
+                   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));
                        inst.dpDiv.addClass('datepicker-month-year');
                    }
                });
-               
+
                $("#exportMembersDialog").dialog({
                 autoOpen: false,
                 minWidth: 700,