Redo search to start with main member table.
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 5 Jun 2019 21:01:01 +0000 (17:01 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 5 Jun 2019 21:01:01 +0000 (17:01 -0400)
Updating search to use glma grid

css/admin.css [new file with mode: 0644]
models/admin/messages/index.php
views/admin/header.html
views/admin/messages/index.html
views/admin/messages/list.html
views/admin/messages/listTemplates.html
views/admin/messages/search.html

diff --git a/css/admin.css b/css/admin.css
new file mode 100644 (file)
index 0000000..4932a7c
--- /dev/null
@@ -0,0 +1,4 @@
+#glm-member-db-messages-app * label {
+    display: block;
+    clear: both;
+}
index 62c0311..e32aee3 100644 (file)
@@ -140,25 +140,25 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
             // echo '<pre>$_REQUEST: ' . print_r( $_REQUEST, true ) . '</pre>';
 
             if ( isset( $_REQUEST['filterMemberStatus'] ) && $filterStatus = filter_var( $_REQUEST['filterMemberStatus'], FILTER_VALIDATE_INT) ) {
-                $whereParts[] = " T.status = " . $filterStatus;
+                $whereParts[] = " T.id IN ( SELECT member FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info WHERE status = " . $filterStatus . ")";
             } else {
-                $whereParts[] = "T.status != " . $this->config['status_numb']['Archived'];
+                // $whereParts[] = "T..id IN ( SELECT member FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info WHERE status != " . $this->config['status_numb']['Archived'] . ")";
+            }
+            if ( isset( $_REQUEST['filterMemberCity'] ) && $filterMemberCity = filter_var( $_REQUEST['filterMemberCity'], FILTER_VALIDATE_INT) ) {
+                $whereParts[] = " T.id IN ( SELECT member FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info WHERE city = " . $filterMemberCity . ")";
             }
 
             if ( isset( $_REQUEST['filterMemberAccess'] ) && $filterAccess = filter_var( $_REQUEST['filterMemberAccess'], FILTER_VALIDATE_INT) ) {
-                $whereParts[] = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where access = ".$filterAccess.")";
+                $whereParts[] = " T.access = ".$filterAccess;
+                // $whereParts[] = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where access = ".$filterAccess.")";
             }
             if ( isset( $_REQUEST['filterMemberName'] ) && $filterMemberName = filter_var( $_REQUEST['filterMemberName'] ) ) {
                 $textSearch = addslashes(filter_var($_REQUEST['filterMemberName'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES));
-                $whereParts[] = "T.member IN (
-                    SELECT DISTINCT( id )
-                      FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members
-                     WHERE name like '%$textSearch%'
-                )";
+                $whereParts[] = "T.name like '%$textSearch%'";
             }
             if ( isset( $_REQUEST['filterContactEmail'] ) && $filterContactEmail = filter_var( $_REQUEST['filterContactEmail'], FILTER_SANITIZE_STRING) ) {
                 $textSearch = addslashes(filter_var($_REQUEST['filterContactEmail'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES));
-                $whereParts[] = "T.member IN (
+                $whereParts[] = "T.id IN (
                     SELECT DISTINCT( ref_dest )
                       FROM " . GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX . "contacts
                      WHERE email like '%$textSearch%'
@@ -166,7 +166,7 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
             }
             if ( isset( $_REQUEST['filterContactFirstName'] ) && $filterContactFirstName = filter_var( $_REQUEST['filterContactFirstName'], FILTER_SANITIZE_STRING) ) {
                 $textSearch = addslashes(filter_var($_REQUEST['filterContactFirstName'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES));
-                $whereParts[] = "T.member IN (
+                $whereParts[] = "T.id IN (
                     SELECT DISTINCT( ref_dest )
                       FROM " . GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX . "contacts
                      WHERE fname like '%$textSearch%'
@@ -174,7 +174,7 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
             }
             if ( isset( $_REQUEST['filterContactLastName'] ) && $filterContactLastName = filter_var( $_REQUEST['filterContactLastName'], FILTER_SANITIZE_STRING) ) {
                 $textSearch = addslashes(filter_var($_REQUEST['filterContactLastName'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES));
-                $whereParts[] = "T.member IN (
+                $whereParts[] = "T.id IN (
                     SELECT DISTINCT( ref_dest )
                       FROM " . GLM_MEMBERS_CONTACTS_PLUGIN_DB_PREFIX . "contacts
                      WHERE lname like '%$textSearch%'
@@ -183,13 +183,13 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
 
             // Check if this is a request to show archived members
             if ( isset( $_REQUEST['filterArchived'] ) ) {
-                $whereParts[]   = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where access = ".$this->config['access_numb']['Archived'].")";
+                $whereParts[]   = " T.access = ".$this->config['access_numb']['Archived'];
                 $filterArchived = true;
                 $haveFilter     = true;
 
             // If not, don't show them
             } else {
-                $whereParts[] = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where access != ".$this->config['access_numb']['Archived'].")";
+                $whereParts[] = " T.access != ".$this->config['access_numb']['Archived'];
             }
 
             // If we have categories, add "selected" element default false;
@@ -216,7 +216,7 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
                     $categories[$c]['selected'] = true;
                 }
 
-                $whereParts[] = " T.member in (
+                $whereParts[] = " T.id in (
                 SELECT DISTINCT(I.member)
                   FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info I,
                        ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info M,
@@ -239,19 +239,23 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
 
             // Check if there is a member_type filter
             if ( isset( $_REQUEST['filterMemberTypes'] ) && $memberTypeFilter = filter_var( $_REQUEST['filterMemberTypes'], FILTER_VALIDATE_INT ) ) {
-                $whereParts[]  = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where member_type = $memberTypeFilter) ";
+                // $whereParts[]  = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where member_type = $memberTypeFilter) ";
+                $whereParts[]  = " T.member_type = $memberTypeFilter ";
                 $mTypeSelected = $memberTypeFilter;
             }
 
             if ( isset( $_REQUEST['search'] ) && filter_var( $_REQUEST['search'], FILTER_VALIDATE_BOOLEAN ) ) {
                 // Do search
-                require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataMemberInfo.php';
-                $Members = new GlmDataMemberInfo( $this->wpdb, $this->config );
+                require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataMembers.php';
+                $Members = new GlmDataMembers( $this->wpdb, $this->config );
+                // require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataMemberInfo.php';
+                // $Members = new GlmDataMemberInfo( $this->wpdb, $this->config );
 
                 $where = implode( ' AND ', $whereParts );
                 // echo '<pre>$where: ' . print_r( $where, true ) . '</pre>';
 
-                $searchResults = $Members->getSimpleMemberInfoList( $where );
+                $searchResults = $Members->getList( $where );
+                // $searchResults = $Members->getSimpleMemberInfoList( $where );
                 // echo '<pre>$searchResults: ' . print_r( $searchResults, true ) . '</pre>';
 
                 $where = "T.archived <> true";
@@ -390,7 +394,7 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
                 require_once GLM_MEMBERS_CONTACTS_PLUGIN_CLASS_PATH . '/data/dataContacts.php';
                 $Contacts  = new GlmDataContacts( $this->wpdb, $this->config );
                 $whereParts = array();
-                $whereParts[] = "T.ref_dest = " . $memData['member_pointer'];
+                $whereParts[] = "T.ref_dest = " . $memData['id'];
                 $whereParts[] = "T.active = true";
                 $whereParts[] = "T.email like '%@%'";
                 $where = implode( " AND ", $whereParts );
index 3be4b60..25b377b 100644 (file)
@@ -1,11 +1,11 @@
-<div class="wrap">
+<div class="wrap" id="glm-member-db-messages-app">
 
     {* Navigation *}
 
     <h2 class="nav-tab-wrapper">
-        <a href="{$thisUrl}?page={$thisPage}&option=search" class="nav-tab{if $thisOption==search} nav-tab-active{/if}">Search</a>
+        <a href="{$thisUrl}?page={$thisPage}&option=search" class="nav-tab{if $thisOption==search} nav-tab-active{/if}">Search Members/Contacts/Profiles</a>
         <a href="{$thisUrl}?page={$thisPage}&option=list" class="nav-tab{if $thisOption==list} nav-tab-active{/if}">Email Messages</a>
         <a href="{$thisUrl}?page={$thisPage}&option=listTemplates" class="nav-tab{if $thisOption==listTemplates} nav-tab-active{/if}">Email Templates</a>
     </h2>
 
-<div id="glm-admin-content-container" style="width: 1024px;">
+    <div id="glm-admin-content-container" style="width: 1024px; box-sizing: border-box;">
index 9c6bf81..00a79db 100644 (file)
@@ -19,7 +19,7 @@
             </table>
         </form>
     </div>
-    <div class="glma-small-3 glma-columns">
+    <div class="glma-small-4 glma-columns">
         <div class="glma-row">
             <div class="glma-small-5 glma-columns">
                 <a href="{$thisUrl}?page={$thisPage}&option=editHtmlEmail" class="button button-primary">Add Message</a>
index afface5..5a999ab 100644 (file)
@@ -1,6 +1,8 @@
 <h2>List Messages</h2>
 {include file='admin/header.html'}
 
+<a href="{$thisUrl}?page={$thisPage}&option=editHtmlEmail" class="button button-primary glm-right">Add Message</a>
+
 {include file='admin/messages/listMessagesTable.html'}
 
 {include file='admin/footer.html'}
index 7aafa62..663e9ab 100644 (file)
@@ -1,6 +1,8 @@
 <h2>List Messages</h2>
 {include file='admin/header.html'}
 
+<a href="{$thisUrl}?page={$thisPage}&option=editTemplate" class="button button-primary glm-right">Add Template</a>
+
 <table class="wp-list-table widefat fixed posts glm-admin-table" style="width: 800px;">
     <thead>
         <tr>
index 1b8e624..6256514 100644 (file)
         <input type="hidden" name="page" value="{$thisPage}" />
         <input type="hidden" name="option" value="search" />
         <input type="hidden" name="search" value="1" />
-        <table>
-            <tr>
-                <td colspan="2">
-                    {* Multiselect Search Module. Set the necessary parameters for the element here *}
-                    {assign var="multiSelectFilterID" value="filterCategories"}
-                    {assign var="multiSelectFilterName" value="filterCategories[]"}
-                    {assign var="multiSelectFilterData" value=$categories}
-                    {assign var="multiSelectFilterPlaceholder" value="Filter Categories"}
-                    {assign var="multiSelectFilterSearchTerm" value="Categories"}
-                    {include file='admin/ui/multiSelectSearch.html'}
-                    {* End Multiselect Search Module *}
-                </td>
-            </tr>
-            <tr>
-                <th>{$terms.term_member_cap} Type</th>
-                <td>
-                    <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>
-                </td>
-            </tr>
-            <tr>
-                <th>{$terms.term_member_cap} Profile Status</th>
-                <td>
-                    <select name="filterMemberStatus">
-                        <option value=""></option>
-                        {foreach $statusTypes as $key => $status}
-                            <option value="{$key}">{$status}</option>
-                        {/foreach}
-                    </select>
-                </td>
-            </tr>
-            <tr>
-                <th>{$terms.term_member_cap} Access</th>
-                <td>
-                    <select name="filterMemberAccess">
-                        <option value=""></option>
-                        {foreach $accessTypes as $key => $status}
-                            <option value="{$key}">{$status}</option>
-                        {/foreach}
-                    </select>
-                </td>
-            </tr>
-            <tr>
-                <th>{$terms.term_member_cap} Name</th>
-                <td>
-                    <input name="filterMemberName" />
-                </td>
-            </tr>
-            <tr>
-                <th>Contact Email</th>
-                <td>
-                    <input name="filterContactEmail" />
-                </td>
-            </tr>
-            <tr>
-                <th>Contact First Name</th>
-                <td>
-                    <input name="filterContactFirstName" />
-                </td>
-            </tr>
-            <tr>
-                <th>Contact Last Name</th>
-                <td>
-                    <input name="filterContactLastName" />
-                </td>
-            </tr>
+        <div clas="glma-row">
+            <div class="glma-small-4 glma-columns">
+                <h3>{$terms.term_member_cap} Info</h3>
+                <label for="filterMemberName">
+                    Name
+                </label>
+                <input id="filterMemberName" name="filterMemberName" />
+                <label for="filterMemberTypes">
+                    {$terms.term_member_cap} Type
+                </label>
+                <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="glma-small-4 glma-columns">
+                <h3>{$terms.term_contact_cap} Info</h3>
+                <label for="filterContactEmail">
+                    Email
+                </label>
+                <input id="filterContactEmail" name="filterContactEmail" />
+                <label for="filterContactFirstName">
+                    First Name
+                </label>
+                <input id="filterContactFirstName" name="filterContactFirstName" />
+                <label for="filterContactLastName">
+                    Last Name
+                </label>
+                <input id="filterContactLastName" name="filterContactLastName" />
+            </div>
+            <div class="glma-small-4 glma-columns">
+                <h3>{$terms.term_member_cap} Profile Info</h3>
+                {* Multiselect Search Module. Set the necessary parameters for the element here *}
+                {assign var="multiSelectFilterID" value="filterCategories"}
+                {assign var="multiSelectFilterName" value="filterCategories[]"}
+                {assign var="multiSelectFilterData" value=$categories}
+                {assign var="multiSelectFilterPlaceholder" value="Filter Categories"}
+                {assign var="multiSelectFilterSearchTerm" value="Categories"}
+                {include file='admin/ui/multiSelectSearch.html'}
+                {* End Multiselect Search Module *}
+                <label for="filterMemberStatus">
+                    Status
+                </label>
+                <select id="filterMemberStatus" name="filterMemberStatus">
+                    <option value=""></option>
+                    {foreach $statusTypes as $key => $status}
+                        <option value="{$key}">{$status}</option>
+                    {/foreach}
+                </select>
+                <label for="filterMemberCity">
+                    City
+                </label>
+                {* city need data for select *}
+                <input id="filterMemberCity" name="filterMemberCity" />
+                <label for="filterMemberCounty">
+                    County
+                </label>
+                <input id="filterMemberCounty" name="filterMemberCounty" />
+                <label for="filterMemberState">
+                    State
+                </label>
+                <input id="filterMemberState" name="filterMemberState" />
+                <label for="filterMemberZip">
+                    Zip
+                </label>
+                <input id="filterMemberZip" name="filterMemberZip" />
+            </div>
+
+        </div>
+
+        <div class="glma-row">
+            <div class="glma-small-12 glma-columns">
+                <input type="submit" value="Search" />
+            </div>
+        </div>
 
-            <tr>
-                <td colspan="2">
-                    <input type="submit" value="Search" />
-                </td>
-            </tr>
-        </table>
     </form>
 {/if}
 
         </thead>
         {foreach $searchResults as $member}
             <tr>
-                <td>{$member.member_pointer}</td>
-                <td>{$member.member_name}</td>
+                <td>{$member.id}</td>
+                <td>{$member.name}</td>
             </tr>
         {/foreach}
     </table>