Various bug fixes for bugs reported by Laury
authorChuck Scott <cscott@gaslightmedia.com>
Wed, 27 Jan 2016 20:11:49 +0000 (15:11 -0500)
committerChuck Scott <cscott@gaslightmedia.com>
Wed, 27 Jan 2016 20:11:49 +0000 (15:11 -0500)
classes/data/dataMemberInfo.php
models/admin/configure/categories.php
models/admin/configure/index.php
models/admin/management/import.php
setup/databaseScripts/create_database_V1.0.43.sql
views/admin/configure/categories.html
views/admin/configure/index.html
views/admin/member/memberInfo.html
views/front/members/detail.html
views/front/members/list.html

index 66b1c62..d6e5169 100644 (file)
@@ -227,7 +227,6 @@ class GlmDataMemberInfo extends GlmDataAbstract
                     'p_table' => GLM_MEMBERS_PLUGIN_DB_PREFIX . 'cities',
                     'p_field' => 'name',
                     'p_orderby' => 'name',
-                    'p_blank' => true,
                 'use' => 'a'
             ),
 
index 2be9fa0..b1b23ef 100644 (file)
@@ -128,6 +128,14 @@ class GlmMembersAdmin_configure_categories extends GlmDataCategories
                 case 'delete':
                     if ($id > 0) {
                         $this->deleteEntry($id, true);
+
+                        // Also delete from member info
+                        $this->wpdb->delete(
+                            GLM_MEMBERS_PLUGIN_DB_PREFIX . 'category_member_info',
+                            array(
+                                'category' => $id
+                            )
+                        );
                     }
                     break;
 
index 4b42f0d..d6ecc93 100644 (file)
@@ -102,6 +102,7 @@ class GlmMembersAdmin_configure_index extends GlmDataMemberTypes
         $success = true;
         $haveMemberTypes = false;
         $memberTypes = false;
+        $couldNotDelete = false;
         $error = false;
 
         // Check for member type id
@@ -127,7 +128,19 @@ class GlmMembersAdmin_configure_index extends GlmDataMemberTypes
 
                 case 'delete':
                     if ($id > 0) {
-                        $this->deleteEntry($id, true);
+                        // First check if any members are using this type
+                        $inUse = $this->wpdb->get_var("
+                             SELECT COUNT(id)
+                               FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members
+                              WHERE member_type = $id;
+                        ");
+
+                        // If there's no members with this type
+                        if (($inUse-0) == 0) {
+                            $this->deleteEntry($id, true);
+                        } else {
+                            $couldNotDelete = true;
+                        }
                     }
                     break;
 
@@ -173,7 +186,8 @@ class GlmMembersAdmin_configure_index extends GlmDataMemberTypes
         // Compile template data
         $templateData = array(
             'haveMemberTypes' => $haveMemberTypes,
-            'memberTypes' => $memberTypes
+            'memberTypes' => $memberTypes,
+            'couldNotDelete' => $couldNotDelete
         );
 
         // Return status, suggested view, and data to controller
index 31503cd..48fa2e9 100644 (file)
@@ -914,6 +914,10 @@ class GlmMembersAdmin_management_import
                             }
                         }
 
+                        // Fix bad LAT/LON values. Anything that's not a number should be set to 0 (ZERO)
+                        $latVal = ($val['lat']-0);
+                        $lonVal = ($val['lon']-0);
+
                         // Insert Member Information Record
                         $res = $this->wpdb->insert(
                                 GLM_MEMBERS_PLUGIN_DB_PREFIX.'member_info',
@@ -930,8 +934,8 @@ class GlmMembersAdmin_management_import
                                         'state' => $state[$val['state_id']]['state_abb'],
                                         'country' => 'US',
                                         'zip' => $val['zip'],
-                                        'lat' => $val['lat'],
-                                        'lon' => $val['lon'],
+                                        'lat' => $latVal,
+                                        'lon' => $lonVal,
                                         'region' => (isset($region[$val['region']]) ? $region[$val['region']]['new_id'] : 0),
                                         'phone' => $val['phone'],
                                         'toll_free' => $val['toll_free'],
index f243f0f..3091728 100644 (file)
@@ -609,9 +609,9 @@ CREATE TABLE {prefix}settings_general (
 
 -- Set default entry
 INSERT INTO {prefix}settings_general
-    ( id, time_zone, canonical_member_page )
+    ( id, time_zone, canonical_member_page, list_logo_size, list_map_logo_size, detail_logo_size, detail_map_logo_size )
    VALUES
-    ( 1, 'America/Detroit', 'member-detail' )
+    ( 1, 'America/Detroit', 'member-detail', 'large', 'thumb', 'large', 'thumb' )
 ;
 
 ----
index 42a7bfd..a0f0170 100644 (file)
@@ -18,7 +18,7 @@
                     <th>Parent Category:</th>
                     <td>
                         <select name="parent">
-                            <option value=""></option>
+                            <option value="0">(none)</option>
             {if $haveCategories}
                 {foreach $categories as $t}
                     {if !$t.parent.value} <!-- don't show child categories -->
@@ -74,7 +74,7 @@
                     <th>Parent Category:</th>
                     <td>
                         <select id="editCategoryParent" name="parent">
-                            <option value=""></option>
+                            <option value="0">(none)</option>
             {if $haveCategories}
                 {foreach $categories as $t}
                     {if !$t.parent.value} <!-- don't show child categories -->
         {/if}
                 <td>{$t.id}</td>
                 <td>
-                    <span{if $t.parent.value} class="glm-indent"{/if}>
+                    <div{if $t.parent.value} class="glm-indent"{/if}>
                         <a class="editCategory" data-categoryID="{$t.id}" data-categoryParent="{$t.parent.value}">{$t.name}</a>
-                    </span>
+                    </div>
                 </td>
                 <td id="editCategoryDescr_{$t.id}">
                     {$t.descr}
             $("#newCategoryDialog").dialog({
                autoOpen: false,
                minWidth: 400,
+               width:    'auto',
                 dialogClass: "glm-dialog-no-close"
             });
             $("#editCategoryDialog").dialog({
                 autoOpen: false,
                 minWidth: 400,
+                width:    'auto',
                 dialogClass: "glm-dialog-no-close"
             });
             $("#deleteCategoryDialog").dialog({
                 autoOpen: false,
                 minWidth: 400,
+                width:    'auto',
                 dialogClass: "glm-dialog-no-close"
             });
 
index 46369ab..823b576 100644 (file)
     
     <h2>Member Types</h2>
 
+{if $couldNotDelete}
+    <h3 class="glm-error">
+        Member Type could not be deleted. Type is in use by at least one member.
+        <a href="{$thisURL}?page=glm-members-admin-menu-members&glm_action=list">Click here to see the members list.</a>
+    </h3>
+    
+{/if}
     <table class="wp-list-table widefat fixed posts glm-admin-table">
         <thead>
             <tr>
index b256e28..436c1ad 100644 (file)
                     <!-- City Selection -->
                     <input id="cityName" type="hidden" name="newCityName" value=""><!-- this field is only used if adding a new city to pass the new name -->
                     <select name="city" id="city" class="glm-geocodeAction">
-                        <option value="0"><option>
+                        <option value="0"></option>
         {foreach from=$memberInfo.fieldData.city.list item=v}
                         <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
                             {$v.name}
index 03469d6..2481fbc 100644 (file)
              */
              
             var myLocation = false;
+          {if $member.lat != 0 && $member.lon != 0}
             var memberlocation = new google.maps.LatLng({$member.lat}, {$member.lon});
+          {else}
+            var memberlocation = new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon});
+          {/if}
             
             function initMap() {
                 
                 });  
     
                 // Create a marker for this member
+             {if $member.lat != 0 && $member.lon != 0}
                 var marker = new google.maps.Marker({  
                     map: map,  
                     position: new google.maps.LatLng({$member.lat}, {$member.lon}),
                     animation: google.maps.Animation.DROP,  
                     title: '{$member.member|escape}'
                 });
-                
+             {/if}
                 // Try HTML5 to get user geolocation
                 if(navigator.geolocation) {
                   navigator.geolocation.getCurrentPosition(function(position) {
index 35e57c8..e1d2e3f 100644 (file)
                 
         {if $haveMembers}
             {foreach $members as $m}
-    
+              {if $m.lat != 0 && $m.lon != 0}
+
                 // Create a marker for this member
                 var marker = new google.maps.Marker({  
                     map: map,  
                 
                 // Extend the map bounds to include this marker
                 bounds.extend(marker.position);
-                
+              
+             {/if}
             {/foreach}
     
                 // Fit map to bounds of all markers