adding test styles for the members list and filters for the search data in the admin...
authorAnthony Talarico <talarico@gaslightmedia.com>
Thu, 25 Oct 2018 13:45:17 +0000 (09:45 -0400)
committerAnthony Talarico <talarico@gaslightmedia.com>
Thu, 25 Oct 2018 13:45:17 +0000 (09:45 -0400)
setup/adminHooks.php
views/admin/manageMembers/manage.html

index 089f1a4..bda960a 100644 (file)
@@ -571,4 +571,171 @@ add_filter(
     },
     13,
     1
+);
+add_filter(
+    GLM_MEMBERS_PLUGIN_SLUG .'-dashboard-search',
+    function ( $member = null ) {
+        $membersIndexPage = GLM_MEMBERS_PLUGIN_ADMIN_URL . '?page=glm-members-admin-menu-members';
+        $memberIndexPage = GLM_MEMBERS_PLUGIN_ADMIN_URL . '?page=glm-members-admin-menu-member';
+        $membersTable = GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info";
+        $membersTextTable = GLM_MEMBERS_PLUGIN_DB_PREFIX . "members";
+        $membersEditPage = GLM_MEMBERS_PLUGIN_ADMIN_MENU_URL_BASE.'member&glm_action=memberInfo';
+        $membersSettingsPage = GLM_MEMBERS_PLUGIN_ADMIN_URL.'?page=glm-members-admin-menu-settings&settingsPage=members';
+        $membersRefLink      = GLM_MEMBERS_PLUGIN_ADMIN_URL . '?page=glm-members-admin-menu-member&glm_action=index';
+
+        $MemberInfo = new GlmDataMemberInfo($this->wpdb, $this->config);
+
+        // Set default values for using getList() later, where the custom set of fields below will be used.
+        $where = '';
+        $order = '';
+        $fieldVals = true;
+        $idField = 'id';
+        $start = false;
+        $limit = false;
+    
+        // Save the current fields array and make a copy. Will be restored before the return.
+        $fSave = $MemberInfo->fields;
+
+        // echo "<br><pre>fsave: " . var_dump($fSave) . "</pre><br>";
+    
+        // Remove what we don't want from the copy and get the list
+        $MemberInfo->fields = array(
+            'id'            => $fSave['id'],
+            'reference_name'=> $fSave['reference_name'],
+            'status'        => $fSave['status'],
+            'member_pointer'=> $fSave['member_pointer'],
+            'member'        => $fSave['member'],
+            //'ref_type'      => 'ref_type', // membersInfo has no ref_type field yet
+        );
+
+        // echo "<br><pre>MemberInfo: " . var_dump($MemberInfo->fields) . "</pre><br>";
+
+        // $widgetResult = $MemberInfo->getList('status='.$MemberInfo->config['status_numb']['Pending'], $order, $fieldVals, $idField, $start, $limit);
+
+        // echo "<br><pre>Widgetresult: " . var_dump($widgetResult) . "</pre><br>";
+
+        /*
+        * For list components: pass ref_type and ref_dest as part of the 'fields' string if you want to
+        * make these options part of the href of each <li> link
+        * 
+        */
+
+        $content = [
+            'title'         => 'Members',
+            'widgetButtons' => [
+                [
+                    'id'            => 'add-member',
+                    'content'       => 'Add',
+                    'url'           => $memberIndexPage . "&glm_action=memberEdit&option=add",
+                    'classes'       => '',
+                    'styles'        => '',
+                    'data'          => ''
+                ],
+                [
+                    'id'            => 'export-button',
+                    'content'       => 'Export',
+                    'url'           => '#',
+                    'classes'       => 'btn-small widget-export-btn waves-effect waves-light btn modal-trigger',
+                    'styles'        => '',
+                    'data'          => 'membersExportModal'
+                ],
+            ],
+            'components'    => [
+                [
+                    'id'         => 'quickLinks',
+                    'order'      => -1,
+                    'template'   => 'quickLinks',
+                    'quickLinks' => [
+                        'dashboard' => [
+                            'content' => 'Dashboard',
+                            'url'     => $membersIndexPage . "&option=dashboard",
+                        ],
+                        'search' => [
+                            'content' => 'Advanced Search',
+                            'url'     => $membersIndexPage . "&option=search",
+                        ],
+                        'settings' => [
+                            'content'   => 'Settings',
+                            'url'       => $membersSettingsPage,
+                        ]
+                    ],
+                ],
+                [
+                    'id'        => 'entityAmount',
+                    'title'     => 'Number of ' . $this->config['terms']['term_member_plur_cap'],
+                    'order'     => 1,
+                    'template'  => 'entityAmount',
+                    'url'       => $membersIndexPage . "&option=search",
+                    'result'    => $MemberInfo->getStats(),
+                ],
+                [
+                    'id'        => 'membersExportModal',
+                    'template'  => 'modal',
+                    'order'     => 99,
+                    'form'      => ''//$this->controller('export', 'index', false, true)
+                ],
+                [
+                    'id'        => 'textSearch',
+                    'order'     => 2,
+                    'template'  => 'textSearch',
+                    'entityID'  => 'id',
+                    'table'     => $membersTextTable,
+                    'fields'    => "id, name",
+                    'where'     => 'name',
+                    'resultUrl' => $memberIndexPage . "&glm_action=index&member=",
+                ],
+                [
+                    'id'            => 'pending-' . $this->config['terms']['term_member_cap'] . '-profiles', 
+                    'title'         => 'Pending ' . $this->config['terms']['term_member_cap'] . ' Profiles',
+                    'slug'          => 'pending-' . $this->config['terms']['term_member'] . '-profiles',
+                    'order'         => 3,
+                    'template'      => 'list',
+                    'entityID'      => 'memberInfo',
+                    'defaultRefType'=> 'member',
+                    'refLink'       => $membersRefLink,
+                    'url'           => $membersEditPage,
+                    'countUrl'      => $membersIndexPage . '&glm_action=list&filterPending=true',
+                    'result'        => $MemberInfo->getList('status='.$MemberInfo->config['status_numb']['Pending'], $order, $fieldVals, $idField, $start, $limit),
+                    'count'         => $MemberInfo->getStats('status='.$MemberInfo->config['status_numb']['Pending']),
+                    'fieldMap'      => [
+                        'ID'            => 'id',
+                        'name'          => 'reference_name',
+                        'status'        => 'status',
+                        'refDestID'     => 'member_pointer',
+                        'refDestName'   => 'member',
+                        //'ref_type'      => 'ref_type', // membersInfo has no ref_type field yet
+                    ],
+                ],
+                [
+                    'id'            => 'bad-location-data',
+                    'title'         => "Bad Location Data",
+                    'slug'          => "bad-location-data",
+                    'order'         => 4,
+                    'template'      => 'list',
+                    'entityID'      => 'memberInfo',
+                    'defaultRefType'=> 'member',
+                    'refLink'       => $membersRefLink,
+                    'url'           => $membersEditPage,
+                    'countUrl'      => $membersIndexPage . '&glm_action=list&filterBadLocation=true',
+                    'result'        => $MemberInfo->getList("has_no_map_data='1'", $order, $fieldVals, $idField, $start, $limit),
+                    'count'         => $MemberInfo->getStats("has_no_map_data='1'"),
+                    'fieldMap'      => [
+                        'ID'            => 'id',
+                        'name'          => 'reference_name',
+                        'status'        => 'status',
+                        'refDestID'     => 'member_pointer',
+                        'refDestName'   => 'member',
+                        //'ref_type'      => 'ref_type', // membersInfo has no ref_type field yet
+                    ],
+                ],
+            ]
+        ];
+
+        // Restore the fields list
+        $MemberInfo->fields = $fSave;
+
+        return $content;
+    },
+    13,
+    1
 );
\ No newline at end of file
index 51bdfda..bdb1890 100644 (file)
@@ -7,12 +7,16 @@
     #glm-admin-member-list{
         position: relative;
         height: 100%;
+        padding: 15px 0;
     }
     .glm-list-result{
         background-color: #FFFFFF;
-        padding: 5px;
+        padding: 10px;
         border-bottom: 1px solid #DEE2E2;
     }
+    .glm-list-result:nth-child(odd){
+        background: #F9FCFD;
+    }
     #glm-admin-search-overlay{
         position: absolute;
         width: 100%;
     }
 </style>
 <div class="glm-dashboard-background">
-    <div id="glm-admin-search">Search Fields</div>
+    <div id="glm-admin-search">
+        Search Fields
+    </div>
     <div id="glm-admin-member-list" class="row admin-member-list">
-        <div id="glm-admin-search-overlay">Overlay</div>
+        <div id="glm-admin-search-overlay"> <span>Loading ...</span></div>
     </div>
 </div>
 <script>
@@ -51,7 +57,7 @@
                         $("<div />", {
                             text    : value,
                             class   : "glm-list-result"
-                        }).appendTo( $("#glm-admin-member-list")).delay(2000).addClass("test");
+                        }).appendTo( $("#glm-admin-member-list"));
                     })
                 }
             });