Adding list of packages to dashboard
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 27 Sep 2016 20:09:55 +0000 (16:09 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 27 Sep 2016 20:09:55 +0000 (16:09 -0400)
List limited to 5 records.

models/admin/dashboard/packaging.php
models/admin/packaging/index.php
views/admin/dashboard/packaging.html
views/admin/packaging/index.html

index dd11aa7..4e3d59d 100644 (file)
@@ -13,7 +13,7 @@
  * @version  0.1
  */
 
-require_once GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataEvents.php';
+require_once GLM_MEMBERS_PACKAGING_PLUGIN_CLASS_PATH.'/data/dataPackages.php';
 
 /**
  * Dashboard Class Model
@@ -21,7 +21,7 @@ require_once GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataEvents.php';
  * Each Add-On can have one or more dashboards.
  */
 
-class GlmMembersAdmin_dashboard_packaging // extends GlmDataEvents
+class GlmMembersAdmin_dashboard_packaging extends GlmDataPackages
 {
     /**
      * Word Press Database Object
@@ -57,7 +57,7 @@ class GlmMembersAdmin_dashboard_packaging // extends GlmDataEvents
         $this->config = $config;
 
         // Run constructor for members data class
-        //parent::__construct(false, false);
+        parent::__construct(false, false);
 
     }
 
@@ -101,17 +101,49 @@ class GlmMembersAdmin_dashboard_packaging // extends GlmDataEvents
         $success         = true;
         $hasLastDownload = false;
         $lastSearchDate  = '';
+        $packages = false;
+        $havePackages = false;
 
         // Get list of member events.
         if ( isset( $this->config['loggedInUser']['contactUser']['ref_dest'] )
             && $memberID = filter_var( $this->config['loggedInUser']['contactUser']['ref_dest'], FILTER_VALIDATE_INT)
         ) {
+            $lockedToMember = apply_filters('glm_members_locked_to_member_id', false);
+            if ($lockedToMember) {
+                $memberID = $lockedToMember;
+                $lockedToMember = $memberID;
+                $memberWhere = "T.id = $memberID";
+                $lockedWhereT = 'T.ref_type = '.$this->config['ref_type_numb']['Member'].' AND T.ref_dest = '.$memberID;
+                $lockedWhere = 'ref_type = '.$this->config['ref_type_numb']['Member'].' AND ref_dest = '.$memberID;
+                $where = '';
+                //$packages = $this->getList( $lockedWhereT.$where);
+                $packages = $this->getList( $lockedWhereT.$where, '', true, 'id', 1, 5 );
+                // If we have some, tell the template
+                if ($packages && count($packages['list']) > 0) {
+                    $havePackages = true;
+                }
+
+            }
 
         }
+        // If we have list entries - even if it's an empty list
+        $success = true;
+        $havePackages = false;
+        if ($packages !== false) {
 
+            $success = true;
+
+            // If we have any entries
+            if (count($packages) > 0) {
+                $havePackages = true;
+            }
+        }
         // Compile template data.
         $templateData = array(
-            'memberID'        => $memberID,
+            'lockedToMember' => $lockedToMember,
+            'havePackages'   => $havePackages,
+            'packages'       => $packages['list'],
+            'memberID'       => $memberID,
         );
 
         // Return status, suggested view, and data to controller.
index 20c3215..987a475 100644 (file)
@@ -344,4 +344,4 @@ class GlmMembersAdmin_packaging_index extends GlmDataPackages
     }
 }
 
-?>
\ No newline at end of file
+?>
index 2f61a14..bd29a76 100644 (file)
@@ -3,8 +3,48 @@
         <h2>
             <span>Packages</span>
         </h2>
+        <a href="{$thisUrl}?page=glm-members-admin-menu-packaging-index&glm_action=index&option=add" class="button button-primary glm-right">&nbsp;Add a New Package for this {$terms.term_member_cap}&nbsp;</a>
         <div class="glm-widget-content">
-            here
+            <table class="wp-list-table striped glm-admin-table">
+                <thead>
+                    <tr>
+                        <th>Package</th>
+                        <th>Start</th>
+                        <th>End</th>
+                        <th>Expire</th>
+                    </tr>
+                </thead>
+        <tbody>
+  {if $havePackages}
+    {foreach $packages as $p}
+            <tr>
+                <td class="glm-nowrap">
+        {if $p.ref_type.value}
+             {if $lockedToMember}
+                    <a href="{$thisUrl}?page=glm-members-admin-menu-packaging-index&glm_action=index&option=edit&member={$p.ref_dest}&packageID={$p.id}">{$p.title}</a>
+             {else}
+                    <a href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=packaging&option=edit&member={$p.ref_dest}&packageID={$p.id}">{$p.title}</a>
+             {/if}
+        {else}
+                    <a href="{$thisUrl}?page={$thisPage}&glm_action=packaging&option=edit&packageID={$p.id}">{$p.title}</a>
+        {/if}
+                </td>
+                <td>
+                    {$p.start_date.date}
+                </td>
+                <td>
+                    {$p.end_date.date}
+                </td>
+                <td>
+                    {$p.expire_date.date}
+                </td>
+            </tr>
+    {/foreach}
+  {else}
+            <tr class="alternate"><td colspan="5">(no packages listed)</td></tr>
+  {/if}
+        </tbody>
+            </table>
         </div>
     </div>
 </div>
index 2810b9f..f254922 100644 (file)
@@ -2,12 +2,12 @@
 
     {if $packageUpdated}<h2 class="glm-notice glm-flash-updated">Package Updated</h2>{/if}
     {if $packageError}<h2 class="glm-error glm-flash-updated">Error submitting package, see below...</h2>{/if}
-    
+
 {if $option == 'edit' || $option == 'add'}
-    
+
   {if apply_filters('glm_members_permit_admin_members_packaging_edit_package', true)}
 
-        
+
       {if $option == 'edit'}
         {if $lockedToMember}
             <h2>Edit Package</h2>
@@ -15,7 +15,7 @@
             <h2>Edit Multi-{$terms.term_member_cap} Package</h2>
         {/if}
         <a id="deletePackageButton" class="button button-primary glm-button glm-right">Delete this Package</a>
-        
+
         <div id="deletePackageDialog" class="glm-dialog-box" title="Delete Package">
             <center>
                 <p><a id="deletePackageCancel" class="button button-primary">Cancel</a></p>
@@ -24,7 +24,7 @@
             <div class="glm-item-container">
                 <p><center><span class="glm-error">WARNING:</span></center></p>
                 <p>
-                    <span class="glm-warning">Clicking the "Delete this Package" button above will 
+                    <span class="glm-warning">Clicking the "Delete this Package" button above will
                     delete all of the data and images associated with this package.
                     </span>
                 </p>
@@ -41,8 +41,8 @@
       {/if}
       {/if}
         <a href="{$thisUrl}?page=glm-members-admin-menu-packaging-index&glm_action=index&option=list" class="button button-primary glm-button glm-right">Return to Package List</a>
-        
-    
+
+
         <form action="{$thisUrl}?page={$thisPage}" method="post" enctype="multipart/form-data">
             <input type="hidden" name="glm_action" value="index">
       {if $lockedToMember}
@@ -58,7 +58,7 @@
           {else}
             <input type="hidden" name="option" value="insert">
           {/if}
-    
+
             <table class="glm-admin-table">
                 <tr>
                     <th {if $packageInfo.fieldRequired.title}class="glm-required"{/if}>Title:</th>
@@ -76,7 +76,7 @@
                 <tr>
                 <th {if $packageInfo.fieldRequired.descr}class="glm-required"{/if}>Description:</th>
                 <td {if $packageInfo.fieldFail.descr}class="glm-form-bad-input"{/if}>
-                    {php} 
+                    {php}
                         wp_editor('{$packageInfo.fieldData.descr|escape:quotes}', 'glm_descr', array(
                             'media_buttons' => false,
                             // 'quicktags' => false,
                         {if $packageInfo.fieldFail.position}<p>{$packageInfo.fieldFail.position}</p>{/if}
                     </td>
                 </tr>
-                
-<!-- NOT COMPLETING PARTICIPATING MEMBERS AT THIS TIME 
+
+<!-- NOT COMPLETING PARTICIPATING MEMBERS AT THIS TIME
 
                 <tr>
                     <th>Participating {$terms.term_member_cap}</th>
                     <td class="glm-imageGalleryContainer">
-    
-                        
+
+
                         Search to add a {$terms.term_member}: <input  id="glmMembersList" type="text" id="autoTest" style="margin-left: 2em;"><br>
-                                            
-                        
-                        <input type="hidden" id="galleryPositionOrder" name="galleryPositionOrder" 
+
+
+                        <input type="hidden" id="galleryPositionOrder" name="galleryPositionOrder"
                             value="{if $havePackageMembers}{foreach $gallery as $i name=ig}{if $i.title}{$i.id}{if not $smarty.foreach.ig.last},{/if}{/if}{/foreach}{/if}" />
-    
+
 -- The contents of this div are read by imageUpload.js to use as a template for inserting a new image into the gallery area --
                         <div id="glmGalleryItmeDataTemplate" class="glm-imageItemHidden">
                             <li id="packageMember_{ id }" class="glm-galleryContainerFlexible">
  -- end of template --
                         <div class="glm-imageGalleryContainer glm-item-container">
                             <ul id="glmPackageMembersList" class=".glm-galleryContainer">
-            {if $havePackageMembers}     
+            {if $havePackageMembers}
 -- Note that id in li is needed for sorting --
                 {foreach $packageMembers as $i}
                                 <li id="packageMember_{$i.id}" class="glm-galleryContainerFlexible">
                                         <tr><th>Description:</th><td><input type="text"></td></tr>
                                         <tr><th>Short Description:</th><td><input type="text"></td></tr>
                                         <tr><th>Image:</th><td><input type="file"></td></tr>
-                                        
+
                                     </table>
                                     </div>
                                 </li>
                     </td>
                 </tr>
 -->
-                    
-                
+
+
             </table>
             <input type="submit" value="{if $havePackage}Update Package{else}Add New Package{/if}">
         </form>
-        
+
   {else} <!-- Can just display -->
-          
+
          <h2>Display Package</h2>
         <table class="glm-admin-table">
             <tr><th>Title:</th><td>{$packageInfo.fieldData.title}</td></tr>
                 <td>
         {if $packageInfo.fieldData.image}
                     <img src="{$glmPluginMediaUrl}/images/large/{$packageInfo.fieldData.image}">
-        {/if}                    
+        {/if}
                 </td>
             </tr>
             <tr><th>Start Date:</th><td>{$packageInfo.fieldData.start_date.date}</td></tr>
             <tr><th>Pricing Description:</th><td>{$packageInfo.fieldData.pricing}</td></tr>
             <tr><th>Display Order:</th><td>{$packageInfo.fieldData.position}</td></tr>
         </table>
-        
+
   {/if}
 
 {else} <!-- option is not edit or add -->
-    
+
   {if apply_filters('glm_members_permit_admin_member_packaging_add_package', true)}
     {if $lockedToMember}
         <div id="addPackageButton" class="button button-primary glm-right">&nbsp;Add a New Package for this {$terms.term_member_cap}&nbsp;</div>
     {/if}
   {/if}
-      
-    <!-- Package list selection form -->      
+
+    <!-- Package list selection form -->
     <form class="glm-right" onSubmit="return false;">
-<!-- 
-       <span{if $haveFilter} class="glm-notice"{/if}><b>List Filters:</b>&nbsp;&nbsp;</span> 
+<!--
+       <span{if $haveFilter} class="glm-notice"{/if}><b>List Filters:</b>&nbsp;&nbsp;</span>
        <input type="radio" name="filterPackageType" class="listFilter"{if $filterPackageType == 'all'} checked{/if} value="all">All&nbsp;&nbsp;
        <input type="radio" name="filterPackageType" class="listFilter"{if $filterPackageType == 'member'} checked{/if} value="member">{$terms.term_member_cap}&nbsp;&nbsp;
        <input type="radio" name="filterPackageType" class="listFilter"{if $filterPackageType == 'multi-member'} checked{/if} value="multi-member">Multi-{$terms.term_member_cap}&nbsp;&nbsp;
--->       
+-->
        Search: <input  id="glmPackageSearch" type="text" id="autoTest" title="Enter any portion of a package name then click on full name that shows below this input box.">&nbsp;&nbsp;
     </form>
     <br clear="all">
-      
+
     <h2>Packages</h2>
 
     <table class="wp-list-table striped glm-admin-table">
             <tr>
                 <td class="glm-nowrap">
         {if $p.ref_type.value}
-             {if $lockedToMember} 
+             {if $lockedToMember}
                     <a href="{$thisUrl}?page=glm-members-admin-menu-packaging-index&glm_action=index&option=edit&member={$p.ref_dest}&packageID={$p.id}">{$p.title}</a>
              {else}
                     <a href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=packaging&option=edit&member={$p.ref_dest}&packageID={$p.id}">{$p.title}</a>
 
     <script type="text/javascript">
         jQuery(document).ready(function($) {
-    
+
             // Add Package Button Action
             $('#addPackageButton').click( function() {
                 window.location.href = "{$thisUrl}?page={$thisPage}&glm_action=index&option=add";
             });
-            
+
             // Date Input
             $('.glm-date-input').datepicker();
-            
-            // Flash certain elements for a short time after display      
+
+            // Flash certain elements for a short time after display
             $(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
 
     {if $havePackage}
             });
             $('#deletePackageCancel').click( function() {
                 $("#deletePackageDialog").dialog("close");
-            });            
+            });
             $('#deletePackageSubmit').click( function() {
                 window.location.replace("{$thisUrl}?page={$thisPage}&glm_action=packaging&option=delete&packageID={$packageInfo.fieldData.id}");
             });
 
                  // Get type of package filter selected
                  filter = $(this).val();
-                
+
                  window.location.href = "{$thisUrl}?page={$thisPage}&glm_action=packaging&filterPackageType=" + filter;
-                
+
                 return false;
             });
 
              * label: What will be searched
              * value: What will be displayed when selected
              * id: Package id added so we can go to the member while showing what was selected
-             * Also note that autocomplete does not properly render HTML codes, so we 
+             * Also note that autocomplete does not properly render HTML codes, so we
              * "unescape" them for HTML in Smarty.
              */
             var availableTags = [
                      }
                  }
              });
-             
+
         });
     </script>
-            
+
 {include file='admin/footer.html'}