Merge branch 'develop' into feature/adminRevamp
authorLaury GvR <laury@gaslightmedia.com>
Thu, 27 Dec 2018 15:18:23 +0000 (10:18 -0500)
committerLaury GvR <laury@gaslightmedia.com>
Thu, 27 Dec 2018 15:18:23 +0000 (10:18 -0500)
1  2 
controllers/admin.php
setup/adminHooks.php

Simple merge
@@@ -399,184 -398,3 +399,184 @@@ function glm_admin_import_help_tab () 
           __( 'Help Guide' ) . '</a></p>'
       );
  }
- );
 +
 +// If no session then start one.
 +add_action( 'init', function(){
 +    if ( ! session_id() ) {
 +        session_start();
 +    }
 +});
 +
 +add_filter(
 +    GLM_MEMBERS_PLUGIN_SLUG .'-dashboard-widget',
 +    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
 +);
 +add_filter(
 +    'glm-member-db-admin-search',
 +    function ( $data ) {
 +        return $this->controller( 'manageDashboard', 'members', false, true, true);
 +    }
++);