reorganizing the data hierarchy names in so that the widget data is easily iterated
authorAnthony Talarico <talarico@gaslightmedia.com>
Wed, 19 Sep 2018 18:46:58 +0000 (14:46 -0400)
committerAnthony Talarico <talarico@gaslightmedia.com>
Wed, 19 Sep 2018 18:46:58 +0000 (14:46 -0400)
models/admin/ajax/glmTextSearch.php [new file with mode: 0644]
models/admin/newDashboard/index.php
setup/validActions.php
views/admin/newDashboard/components/widgetSearch.html [new file with mode: 0644]
views/admin/newDashboard/index.html
views/admin/newDashboard/summaryWidget.html

diff --git a/models/admin/ajax/glmTextSearch.php b/models/admin/ajax/glmTextSearch.php
new file mode 100644 (file)
index 0000000..155b9f1
--- /dev/null
@@ -0,0 +1,87 @@
+<?php
+
+/**
+ * Gaslight Media Members Database
+ * Members List Export by AJAX
+ *
+ * PHP version 5.5
+ *
+ * @category glmWordPressPlugin
+ * @package  glmMembersDatabase
+ * @author   Chuck Scott <cscott@gaslightmedia.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @version  0.1
+ */
+
+/**
+ *
+ * This class exports the currently selected members list
+ * to a printable HTML file, to a CSV file, or otherwise.
+ */
+class GlmMembersAdmin_ajax_glmTextSearch
+{
+
+    /**
+     * WordPress Database Object
+     *
+     * @var $wpdb
+     * @access public
+     */
+    public $wpdb;
+    /**
+     * Plugin Configuration Data
+     *
+     * @var $config
+     * @access public
+     */
+    public $config;
+
+    /**
+     * Constructor
+     *
+     * This constructor sets up this model. At this time that only includes
+     * storing away the WordPress data object.
+     *
+     * @return object Class object
+     *
+     */
+    public function __construct ($wpdb, $config)
+    {
+
+        // Save WordPress Database object
+        $this->wpdb = $wpdb;
+
+        // Save plugin configuration object
+        $this->config = $config;
+
+        //parent::__construct(false, false);
+
+    }
+
+    /**
+     * Perform Model Action
+     *
+     * This modelAction takes an AJAX image upload and stores the image in the
+     * media/images directory of the plugin.
+     *
+     * This model action does not return, it simply does it's work then calls die();
+     *
+     * @param $actionData
+     *
+     * Echos JSON string as response and does not return
+     */
+    public function modelAction ($actionData = false)
+    {
+        if( isset( $_REQUST['table'] ) ){
+            
+        }
+        $data = "test";
+        $return = array(
+            'data'          => $data  ,    // Where our events list will go
+        );
+
+        header('Content-type:application/json;charset=utf-8', true);
+        echo json_encode($return);
+        wp_die();
+    }
+}
index e5d9a52..b351c7d 100644 (file)
@@ -193,10 +193,10 @@ class GlmMembersAdmin_newDashboard_index extends GlmDataMembers
         foreach ( $this->config[ 'addOns' ] as $a ) {
             if ( has_filter( $a['slug'] . "-dashboard-widget") ) {
                 //var_dump($a);
-                $addonData[$a['slug']]['name'] = $a['short_name'];
-                $addonData[$a['slug']]['slug'] = $a['slug'];
-                $addonData[$a['slug']]['index'] = $a['index'];
-                $addonData[$a['slug']]['widgetData'] = apply_filters($a['slug'] . "-dashboard-widget", "");
+                $addons[$a['slug']]['name'] = $a['short_name'];
+                $addons[$a['slug']]['slug'] = $a['slug'];
+                $addons[$a['slug']]['index'] = $a['index'];
+                $addons[$a['slug']]['widgetData'] = apply_filters($a['slug'] . "-dashboard-widget", "");
                 
             } else {
                 echo "<br>" . $a['slug'] .  " has no filter called " . $a['slug'] . "-dashboard-widget";
@@ -218,8 +218,8 @@ class GlmMembersAdmin_newDashboard_index extends GlmDataMembers
             'clickThroughCounts' => $clickThroughCounts,
             'detailViewCounts'   => $detailViewCounts,
             'statusPending'      => $this->config['status_numb']['Pending'],
-            //'widgetData'         => $addonData['widgetData'],
-            'addonData'          => $addonData,
+            //'widgetData'         => $addons['widgetData'],
+            'addons'            => $addons,
         );
 
         // Return status, suggested view, and data to controller.
index 831bd1b..3be69eb 100644 (file)
@@ -44,7 +44,8 @@ $glmMembersValidActions = array(
             'fileLibraryDownload'   => 'glm-member-db',
             'fileLibraryDelete'     => 'glm-member-db',
             'fileLibraryUpdate'     => 'glm-member-db',
-            'glmCron'               => 'glm-member-db'
+            'glmCron'               => 'glm-member-db',
+            'glmTextSearch'         => 'glm-member-db',
         ),
         'dashboard' => array(
             'index'   => 'glm-member-db',
diff --git a/views/admin/newDashboard/components/widgetSearch.html b/views/admin/newDashboard/components/widgetSearch.html
new file mode 100644 (file)
index 0000000..a25c84d
--- /dev/null
@@ -0,0 +1,31 @@
+<div class="row">
+    <div class="s12 col input-field glm-widget-search">
+        <input id="{$addon.slug}" type="text" class="glm-widget-search-input search-autocomplete">
+        <label for="{$addon.slug}">Search</label>
+    </div>
+</div>
+<script>
+    jQuery(function($){
+   
+        let data = {
+            action      : 'glm_members_admin_ajax',
+            glm_action  : 'glmTextSearch',
+            table       : '{$widgetField.table}'
+        }
+        $.ajax({
+            type: 'POST',
+            url: '{$ajaxUrl}',
+            data: data,
+            success: function(response) {
+                console.log(response)
+                $('input.earch-autocomplete').autocomplete({
+                    data: {
+                    "Apple": null,
+                    "Microsoft": null,
+                    "Google": 'https://placehold.it/250x250'
+                    }, // The max amount of results that can be shown at once. Default: Infinity.
+                });
+            }
+        });
+    });
+</script>
\ No newline at end of file
index 62bf041..689f739 100644 (file)
@@ -4,7 +4,7 @@
         <div class="glm-summary-widgets">
             <div class="row">
                 <div class="glm-summary-widget col s12 m6 l4">
-                    {foreach $addonData as $widgetData}
+                    {foreach $addons as $addon}
                         {include file='./summaryWidget.html'}
                     {/foreach}
                 </div>
index b375cee..bae0545 100644 (file)
@@ -1,9 +1,16 @@
 <ul id="members-summary-widget" class="summary members-summary-widget dashboard-summary-widget collapsible">
     <li>
-        <div class="summary-widget-handle collapsible-header"><pre> {$widgetData.name}</pre></div>
+        <div class="summary-widget-handle collapsible-header"><pre> {$addon.name}</pre></div>
         <div class="summary-widget-body collapsible-body">
-            {foreach $widgetData as $widgetField}
-                {$widgetField|var_dump}
+            {foreach $addon as $addonData}
+                { $addonData|var_dump}
+            {/foreach}
+            {foreach $addon.widgetData as $widgetField}
+                <pre>{$widgetField|@print_r}</pre>
+
+                {if $widgetField.type == 'textsearch'}
+                    {include file='../newDashboard/components/widgetSearch.html'}
+                {/if}
             {/foreach}
             <div class="quicklinks">
                 <a href="#">Dashboard</a>
@@ -35,6 +42,9 @@
                     </span>
                 </span>
             </div>
+        <div class="summary-widget-handle collapsible-header"><pre> { $w|var_dump} </pre></div>
+        <div class="summary-widget-body collapsible-body">
+            
         </div>
     </li>
 </ul>