moving javascript into a separate file, there is now an issue with the dashboard...
authorAnthony Talarico <talarico@gaslightmedia.com>
Fri, 4 Jan 2019 16:35:36 +0000 (11:35 -0500)
committerAnthony Talarico <talarico@gaslightmedia.com>
Fri, 4 Jan 2019 16:35:36 +0000 (11:35 -0500)
js/memberManagement.js [new file with mode: 0644]
lib/GlmDataAbstract/DataAbstract.php
models/admin/dashboard/members.php
models/admin/manageDashboard/members.php
models/admin/member/memberInfo.php
views/admin/manageDashboard/index.html

diff --git a/js/memberManagement.js b/js/memberManagement.js
new file mode 100644 (file)
index 0000000..2af25bd
--- /dev/null
@@ -0,0 +1,127 @@
+window.Glma = (function() {  
+    var xhr = function(data, complete, success, error, type){
+        jQuery.ajax({
+            dataType: "json",
+            type : type,
+            url: wp.ajax.settings.url,
+            data: data,
+            complete: complete,
+            success: success,
+            error: error
+        });
+    }
+    return {
+        defaultData: {
+            action          : 'glm_members_admin_ajax',
+            glm_action      : 'memberManagement',
+        },
+        adminSearch: function(data, complete, success, error, type){
+            xhr(
+                data,
+                complete, 
+                success,
+                error,
+                type,
+            );
+        },
+        memberEdit: function(data, complete, success, error, type){
+            xhr(
+                data,
+                complete, 
+                success,
+                error,
+                type,
+            );
+        },
+        textSearch: function(textSearchData){
+            var searchResults   = {};
+            var imageUrl        = `{$glmPluginMediaUrl}/images`
+            var listData = {
+                action      : 'glm_members_admin_ajax',
+                glm_action  : 'glmTextSearch',
+                table       : textSearchData.table,
+                fields      : textSearchData.fields,
+                where       : textSearchData.where
+            }
+            $('input#'+textSearchData.slug+'-text').autoComplete({
+                minChars: 1,
+                source: function( request, response ) {
+                    listData.query = request;
+                    $.ajax({
+                        dataType: "json",
+                        type : 'POST',
+                        url: '{$ajaxUrl}',
+                        data: listData,
+                        success: function(data) {
+    
+                            if(data.searchData){
+                                var searchDropdown = [];
+                                for(var i = 0;i < data.searchData.length;i++){
+                                    var searchTitle = Object.keys(data.searchData[i])[0];
+                                    var image       = (data.searchData[i][searchTitle].image) ? data.searchData[i][searchTitle].image : null;
+                                    var memberID    = data.searchData[i][searchTitle].memberID;   
+                                    var entityID    = data.searchData[i][searchTitle].entityID;              
+                                    searchDropdown.push(searchTitle);
+                                    searchResults[searchTitle] = {image: image, memberID: memberID, entityID: entityID};
+                                }   
+                                response(searchDropdown);
+                            }else{
+                                response(['No Results Found'])
+                            }
+                        }
+                    });
+                },
+                renderItem: function (item, search){
+                    
+                    search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+                    var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
+                    return '<div class="autocomplete-suggestion " data-langname="'+item[0]+'" data-lang="'+item[1]+'" data-val="'+search+'"><span class="member-record-name">'+item.replace(re, "<b>$1</b>")+'</span></div>';
+
+                },
+                // onSelect: function(e, term, item){
+                //     console.log(item);
+                //     var search = $(item).text();
+
+                //     if(search !== "No Results Found"){
+                //         window.location.replace("TEST");
+                //     }
+                // },
+                onSelect: function(e, term, item){
+                    alert('Item "'+item.data('langname')+' ('+item.data('lang')+')" selected by '+(e.type == 'keydown' ? 'pressing enter' : 'mouse click')+'.');
+                }
+                // select: function( event, ui ) {
+                //     console.log("ui:" + ui)
+                //     var memberID = ui.item.id;
+                //     window.location.replace("#=" + memberID );
+                // },
+            });
+        },
+        dateSearch: function(dateSearchData){
+            var date = new Date();
+            var toDate = '', fromDate = (dateSearchData.defaultFromDate) ? '&' + dateSearchData.fromDate + '=' + dateSearchData.defaultFromDate : '';
+            $('.fromDate').datepicker({
+                format          : 'mm/dd/yyyy',
+                setDefaultDate  : true,
+                defaultDate     : date,
+                autoClose       : true,
+                onClose         : function(){
+                    fromDate = '&' + dateSearchData.fromDate + '=' + $(this)[0].el.value; 
+                }
+            });
+            $('.toDate').datepicker({
+                format      : 'mm/dd/yyyy',
+                autoClose   : true,
+                onClose: function(){
+                    toDate = '&' + dateSearchData.toDate + '=' + $(this)[0].el.value;
+                }
+            });
+
+            $('#' + dateSearchData.searchBtn).on("click", function(){
+                window.location = dateSearchData.resultUrl + fromDate + toDate;
+            });
+        },
+        listComponent: function(listComponentData) {
+            $('.tooltipped').tooltip();
+        }
+    }
+})();
\ No newline at end of file
index 50f9c79..7c56ce9 100755 (executable)
@@ -1037,6 +1037,7 @@ abstract class GlmDataAbstract
 
             require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/glmPluginSupport.php';
             $support = new GlmPluginSupport();
+            $support->write_log( $in );
             // Is it one of the available values
             if (isset($f['required']) && $f['required'] && trim($in) == '') {
                 $this->inputFieldStatus = false;
index 53463b3..4703a5d 100644 (file)
@@ -101,7 +101,7 @@ class GlmMembersAdmin_dashboard_members extends GlmDataMemberInfo
         
         wp_register_script(
             'materialize',
-            GLM_MEMBERS_PLUGIN_URL . 'js/materialize.min.js',
+            GLM_MEMBERS_PLUGIN_URL . 'js/materialize/materialize.min.js',
             array(
                     'jquery'
             ),
index a7325f4..9bc7ffe 100644 (file)
@@ -132,6 +132,15 @@ class GlmMembersAdmin_manageDashboard_members extends GlmDataMembers
             ),
             GLM_MEMBERS_PLUGIN_VERSION
         );
+        wp_register_script(
+            'memberManagement',
+            GLM_MEMBERS_PLUGIN_URL . 'js/memberManagement.js',
+            array(
+                    'jquery'
+            ),
+            GLM_MEMBERS_PLUGIN_VERSION
+        );
+        wp_enqueue_script('memberManagement', false, array('jquery'), false, true);
         wp_enqueue_script('materialize', false, array('jquery'), false, true);
         wp_enqueue_script('autoComplete', false, array('jquery'), false, true);
         wp_enqueue_style('materialize-css', GLM_MEMBERS_PLUGIN_URL . 'css/materialize.min.css');
index c61a17a..0696787 100755 (executable)
@@ -347,7 +347,7 @@ class GlmMembersAdmin_member_memberInfo extends GlmDataMemberInfo
                 if ($this->haveMemberInfo) {
                     
                     // Update the member Info data
-                    
+                    $support->write_log( $_REQUEST['status']);
                     $this->memberInfo = $this->updateEntry($this->memberInfoID, 'id', true);
                     // $support->write_log( $this->memberInfo );
                     if ($this->memberInfo['status']) {
index 4baf816..53e1b23 100644 (file)
 </div>
 
 <script>
+    
     jQuery(function($){
-        window.Glma = (function() {  
-            var xhr = function(data, complete, success, error, type){
-                $.ajax({
-                    dataType: "json",
-                    type : type,
-                    url: '{$ajaxUrl}',
-                    data: data,
-                    complete: complete,
-                    success: success,
-                    error: error
-                });
-            }
-            return {
-                adminSearch: function(data, complete, success, error, type){
-                    xhr(
-                        data,
-                        complete, 
-                        success,
-                        error,
-                        type,
-                    );
-                },
-                memberEdit: function(data, complete, success, error, type){
-                    xhr(
-                        data,
-                        complete, 
-                        success,
-                        error,
-                        type,
-                    );
-                }
-            }
-        })();
-
-        window.Glma['defaultData'] = {
-            action          : 'glm_members_admin_ajax',
-            glm_action      : 'memberManagement',
-        }
-        let listData = {
+        var memberInfo, memberID;
+        var listData = {
             action          : Glma.defaultData.action,
             glm_action      : Glma.defaultData.glm_action,
         }
             outDuration        : 400
         });
 
-        var memberInfo, memberID;
-        /*
-            *  Text Search Autocomplete
-            */
-        function textSearch(textSearchData){
-            // Text Search Component
-            jQuery(function($){
-                let searchResults   = {};
-                let imageUrl        = `{$glmPluginMediaUrl}/images`
-                let listData = {
-                    action      : 'glm_members_admin_ajax',
-                    glm_action  : 'glmTextSearch',
-                    table       : textSearchData.table,
-                    fields      : textSearchData.fields,
-                    where       : textSearchData.where
-                }
-                $('input#'+textSearchData.slug+'-text').autoComplete({
-                    minChars: 1,
-                    source: function( request, response ) {
-                        listData.query = request;
-                        $.ajax({
-                            dataType: "json",
-                            type : 'POST',
-                            url: '{$ajaxUrl}',
-                            data: listData,
-                            success: function(data) {
-           
-                                if(data.searchData){
-                                    let searchDropdown = [];
-                                    for(let i = 0;i < data.searchData.length;i++){
-                                        let searchTitle = Object.keys(data.searchData[i])[0];
-                                        let image       = (data.searchData[i][searchTitle].image) ? data.searchData[i][searchTitle].image : null;
-                                        let memberID    = data.searchData[i][searchTitle].memberID;   
-                                        let entityID    = data.searchData[i][searchTitle].entityID;              
-                                        searchDropdown.push(searchTitle);
-                                        {literal} searchResults[searchTitle] = {image: image, memberID: memberID, entityID: entityID}; {/literal}
-                                    }   
-                                    {literal} response(searchDropdown); {/literal}
-                                }else{
-                                    response(['No Results Found'])
-                                }
-                            }
-                        });
-                    },
-                    renderItem: function (item, search){
-                        
-                        search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
-                        var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
-                        return '<div class="autocomplete-suggestion " data-langname="'+item[0]+'" data-lang="'+item[1]+'" data-val="'+search+'"><span class="member-record-name">'+item.replace(re, "<b>$1</b>")+'</span></div>';
-
-                    },
-                    // onSelect: function(e, term, item){
-                    //     console.log(item);
-                    //     let search = $(item).text();
-
-                    //     if(search !== "No Results Found"){
-                    //         window.location.replace("TEST");
-                    //     }
-                    // },
-                    onSelect: function(e, term, item){
-                        alert('Item "'+item.data('langname')+' ('+item.data('lang')+')" selected by '+(e.type == 'keydown' ? 'pressing enter' : 'mouse click')+'.');
-                    }
-                    // select: function( event, ui ) {
-                    //     console.log("ui:" + ui)
-                    //     var memberID = ui.item.id;
-                    //     window.location.replace("#=" + memberID );
-                    // },
-                });
-            });
-        }
-
-        /*
-        *  Date Search Widget
-        */
-        function dateSearch(dateSearchData){
-            jQuery(function($){
-
-                var date = new Date();
-                var toDate = '', fromDate = (dateSearchData.defaultFromDate) ? '&' + dateSearchData.fromDate + '=' + dateSearchData.defaultFromDate : '';
-                $('.fromDate').datepicker({
-                    format          : 'mm/dd/yyyy',
-                    setDefaultDate  : true,
-                    defaultDate     : date,
-                    autoClose       : true,
-                    onClose         : function(){
-                        fromDate = '&' + dateSearchData.fromDate + '=' + $(this)[0].el.value; 
-                    }
-                });
-                $('.toDate').datepicker({
-                    format      : 'mm/dd/yyyy',
-                    autoClose   : true,
-                    onClose: function(){
-                        toDate = '&' + dateSearchData.toDate + '=' + $(this)[0].el.value;
-                    }
-                });
-
-                $('#' + dateSearchData.searchBtn).on("click", function(){
-                    window.location = dateSearchData.resultUrl + fromDate + toDate;
-                })
-            });
-        }
-
-        /*
-        *  List component tooltips
-        */
-        function listComponent(listComponentData) {
-            jQuery(function($){
-                $('.tooltipped').tooltip();
-            });
-        }
         listData.form_action    = 'list';
         listData.view           = 'list';
         listData.option         = 'list';
                 "POST"
             );
         });
-        var memberRecordHandler = function(){
-            $(".edit-screen").html('');
-            editData.option     = "manage";
-            editData.memberID   = $(this).parent().data('id');
-            memberID            = editData.memberID;
-            Glma.memberEdit(
-                editData,
-                function(complete) {},
-                function(success) {
-                    $(".edit-screen").html(success.searchData);
-                },
-                function(error) {
-                    console.log(error);
-                },
-                "POST",
-            );           
-            M.Sidenav.getInstance($('.edit-screen')[0]).open();   
+        var memberRecordHandler = function(data){
+            return function(e){
+                $(".edit-screen").html('');
+                data.option     = "manage";
+                data.memberID   = $(this).parent().data('id');
+                memberID            = data.memberID;
+                Glma.memberEdit(
+                    data,
+                    function(complete) {},
+                    function(success) {
+                        $(".edit-screen").html(success.searchData);
+                    },
+                    function(error) {
+                        console.log(error);
+                    },
+                    "POST",
+                );           
+                M.Sidenav.getInstance($('.edit-screen')[0]).open();   
+            }
         }
-        $(document).on("click",".member-record-name", memberRecordHandler);
+        $(document).on("click",".member-record-name", memberRecordHandler(editData));
 
         $(document).on("click","#edit-member-profile",function(e){
             e.preventDefault();
             );
         });
     });
-    /*
-    *  Text Search Autocomplete
-    */
+
     function textSearch(textSearchData){
     // Text Search Component
         jQuery(function($){
-            let searchResults   = {};
-            let imageUrl        = `{$glmPluginMediaUrl}/images`
-            let listData = {
+            var searchResults   = {};
+            var imageUrl        = `{$glmPluginMediaUrl}/images`
+            var listData = {
                 action      : 'glm_members_admin_ajax',
                 glm_action  : 'glmTextSearch',
                 table       : textSearchData.table,
                         data: listData,
                         success: function(data) {
                             if(data.searchData){
-                                let searchDropdown = [];
-                                for(let i = 0;i < data.searchData.length;i++){
-                                    let searchTitle = Object.keys(data.searchData[i])[0];
-                                    let image       = (data.searchData[i][searchTitle].image) ? data.searchData[i][searchTitle].image : null;
-                                    let memberID    = data.searchData[i][searchTitle].memberID;   
-                                    let entityID    = data.searchData[i][searchTitle].entityID;              
+                                var searchDropdown = [];
+                                for(var i = 0;i < data.searchData.length;i++){
+                                    var searchTitle = Object.keys(data.searchData[i])[0];
+                                    var image       = (data.searchData[i][searchTitle].image) ? data.searchData[i][searchTitle].image : null;
+                                    var memberID    = data.searchData[i][searchTitle].memberID;   
+                                    var entityID    = data.searchData[i][searchTitle].entityID;              
                                     searchDropdown.push(searchTitle);
                                     {literal} searchResults[searchTitle] = {image: image, memberID: memberID, entityID: entityID}; {/literal}
                                 }   
 
                     search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
                     var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
-                    let entityID = 0;
-                    //console.log(search);
-                    //console.log(re);
+                    var entityID = 0;
                     if(search !== "No Results Found"){
                         entityID = searchResults[item].entityID;
                     }
-                    console.log('<div data-id="'+entityID+'" class="autocomplete-suggestion" data-langname="'+item[0]+'" data-lang="'+item[1]+'" data-val="'+search+'"><div class="member-record-name">'+item.replace(re, "<b>$1</b>")+'</div></div>');
                     return '<div data-id="'+entityID+'" class="autocomplete-suggestion" data-langname="'+item[0]+'" data-lang="'+item[1]+'" data-val="'+search+'"><div class="member-record-name">'+item.replace(re, "<b>$1</b>")+'</div></div>';
                     
                 },
                 }
             });
         });
-    }
-
-    /*
-    *  Date Search Widget
-    * IF WE WANT DATE SEARCH FOR MEMBERS
-    */
-    // function dateSearch(dateSearchData){
-    //     jQuery(function($){
-
-    //         var date = new Date();
-    //         var toDate = '', fromDate = (dateSearchData.defaultFromDate) ? '&' + dateSearchData.fromDate + '=' + dateSearchData.defaultFromDate : '';
-    //         $('.fromDate').datepicker({
-    //             format          : 'mm/dd/yyyy',
-    //             setDefaultDate  : true,
-    //             defaultDate     : date,
-    //             autoClose       : true,
-    //             onClose         : function(){
-    //                 fromDate = '&' + dateSearchData.fromDate + '=' + $(this)[0].el.value; 
-    //             }
-    //         });
-    //         $('.toDate').datepicker({
-    //             format      : 'mm/dd/yyyy',
-    //             autoClose   : true,
-    //             onClose: function(){
-    //                 toDate = '&' + dateSearchData.toDate + '=' + $(this)[0].el.value;
-    //             }
-    //         });
-
-    //         $('#' + dateSearchData.searchBtn).on("click", function(){
-    //             window.location = dateSearchData.resultUrl + fromDate + toDate;
-    //         })
-    //     });
-    // }
+        function render(item, search){
+            return function(e){
 
+            }
+        }
+    }
 </script>
 
 {include file='admin/footer.html'}
\ No newline at end of file