Facility edit and update now working except for edit submit of new facility
authorChuck Scott <cscott@gaslightmedia.com>
Fri, 9 Mar 2018 16:04:07 +0000 (11:04 -0500)
committerChuck Scott <cscott@gaslightmedia.com>
Fri, 9 Mar 2018 16:04:07 +0000 (11:04 -0500)
models/admin/ajax/assetManagement.php
models/admin/assets/index.php
views/admin/assets/facilityForm.html
views/admin/assets/facilityLine.html
views/admin/assets/index.html

index aaded14..22acfa3 100644 (file)
@@ -64,6 +64,10 @@ class GlmMembersAdmin_ajax_assetManagement
      *
      * This model action does not return, it simply does it's work then calls die();
      *
+     * Status characters returned
+     * 0 - Submission OK
+     * 1 - Faciltiy not found when trying to edit
+     * 2 - ID not provided for facility update on form submission
      *
      */
     public function modelAction ($actionData = false)
@@ -88,11 +92,44 @@ trigger_error("Option = ".$_REQUEST['option'],E_USER_NOTICE);
 
                 $templateData = array(
                     'status' => '0',
+                    'use' => 'add',
                     'facility' => $facility['fieldData']
                 );
 
                 break;
 
+            case 'addNewFacility':
+
+                $facility = $Facilities->insertEntry();
+
+                // If facility was not added
+                if (!is_array($facility) || trim($facility['fieldData']['id']) == '') {
+
+                    $view = 'facilityForm';
+
+                    // New facility was not added so we need to redisplay the form.
+                    $templateData = array(
+                        'status' => 1,
+                        'use' => 'add',
+                        'cities' => $cities,
+                        'states' => $this->config['states'],
+                        'countries' => $this->config['countries']
+                    );
+
+                // Facility Added
+                } else {
+
+                    $view = 'facilityLine';
+
+                    $templateData = array(
+                        'status' => '0',
+                        'facility' => $facility
+                    );
+
+                }
+
+                break;
+
             case 'editFacility':
 
                 $facilityId = 0;
@@ -102,48 +139,49 @@ trigger_error("Option = ".$_REQUEST['option'],E_USER_NOTICE);
 
                 if ($facilityId > 0) {
                     $facility = $Facilities->editEntry($facilityId);
-//echo " <pre>".print_r($facility,1)."</pre>";
-//die();
+                    //echo " <pre>".print_r($facility,1)."</pre>";
+                    //die();
                     $view = 'facilityForm';
 
                     $templateData = array(
                         'status' => '0',
+                        'use' => 'edit',
                         'facility' => $facility['fieldData']
                     );
 
                 } else {
-                    die("2Facility not found!");
+                    die('1'.$this->config['terms']['assets_term_facility_cap'].' not found!');
                 }
 
                 break;
 
-            case 'addNewFacility':
+            case 'updateFacility':
 
-                $newFacility = $Facilities->insertEntry();
+                $id = $_REQUEST['id'] - 0;
+                if ($id <= 0) {
+                    die('2'.$this->config['terms']['assets_term_facility_cap'].' ID not provided! Unable to edit.');
+                }
 
-                $newFacilityAdded = true;
-                if (!is_array($newFacility) || trim($newFacility['fieldData']['id']) == '') {
+                $facility = $Facilities->updateEntry($id);
+
+                // If facility was not propertlyupdated
+                if (!is_array($facility) || trim($facility['fieldData']['id']) == '') {
 
                     $view = 'facilityForm';
 
                     // New facility was not added so we need to redisplay the form.
                     $templateData = array(
-                        'status' => 1,
+                        'status' => 2,
+                        'use' => 'add',
                         'cities' => $cities,
                         'states' => $this->config['states'],
                         'countries' => $this->config['countries']
                     );
 
+                } else {
+                    die('0'.$facility['fieldData']['name']);
                 }
 
-                $view = 'facilityLine';
-
-                // New facility was not added so we need to redisplay the form.
-                $templateData = array(
-                    'status' => '0',
-                    'facility' => $newFacility
-                );
-
                 break;
 
             default:
index 7519d0e..661ba45 100644 (file)
@@ -93,6 +93,8 @@ class GlmMembersAdmin_assets_index extends GlmDataAssetsFacilities
             'facilities' => $facilities
         );
 
+        // echo "<pre>".print_r($this->config,1)."</pre>";
+
         // Return status, any suggested view, and any data to controller
         return array(
             'status'        => true,
index 5bfd495..526a088 100644 (file)
@@ -1,4 +1,4 @@
-{$status}
+{$status} {* first character of this file is a status flag for the calling AJAX code. *}
 
     <style type='text/css'>
         .assets-dialog-box {
         <form id="facilityForm" method="post" enctype="multipart/form-data">
 
             <input type="hidden" name="glm_action" value="assetManagement">
+    {if $use == 'add'}
             <input type="hidden" name="option" value="addNewFacility">
+    {/if}
+    {if $use == 'edit'}
+            <input type="hidden" name="option" value="updateFacility">    
+            <input type="hidden" name="id" value="{$facility.id}">    
+    {/if}
             
             <div class="assets-dialog-box">
                 
@@ -34,7 +40,7 @@
                 <div><textarea name="descr" class="glm-form-textarea assets-facility-descr">{$facility.descr}</textarea></div>
                 
                 <div class="assets-facility-input-prompt">Address:</div>
-                <div><input type="text" name="address" class="glm-form-text-intput glm-form-text-input-medium" value="{$facility.addr}"></div>
+                <div><input type="text" name="address" class="glm-form-text-intput glm-form-text-input-medium" value="{$facility.address}"></div>
                 
                 <div class="assets-facility-input-prompt">City:</div>
                 <div>
                 <div><input type="text" name="phone" class="glm-form-text-intput" value="{$facility.phone}"></div>
 
                 <div class="assets-facility-input-prompt">URL:</div>
-                <div><input type="text" name="url" class="glm-form-text-intput glm-form-text-input-medium" value="{$facility.URL}" placeholder="http://somefacilityname.com"></div>
+                <div><input type="text" name="url" class="glm-form-text-intput glm-form-text-input-medium" value="{$facility.url}" placeholder="http://somefacilityname.com"></div>
 
                 <div class="assets-facility-input-prompt">E-Mail Address:</div>
                 <div><input type="text" name="email" class="glm-form-text-intput glm-form-text-input-medium" value="{$facility.email}"></div>
 
-                <div class="assets-facility-input-prompt">Facility Map:</div>
+                <div class="assets-facility-input-prompt">{$terms.assets_term_facility_cap} Map:</div>
                 <div>
                     <p>
-                        Facility map file must be a standard image file such as JPG, PNG, or GIF and
+                        {$terms.assets_term_facility_cap} map file must be a standard image file such as JPG, PNG, or GIF and
                         of adequate size and resolution. Images larger than 1200 pixels wide may be 
                         too large for the page.
                     </p>
-                    
-                    <P>******* IMAGE URL NOT WORKING *********</P>
-                    
-                    <a href="{$glmPluginMediaUrl}/images/small/{$facility.image_map}" target="facilityMap">{$facility.facility_map}</a><br>
+    {if $facility.facility_map}                    
                     <input type="checkbox" name="logo_delete"> Delete Image<br>
+                    <img src="{$glmPluginMediaUrl}/images/small/{$facility.facility_map}"><br>
+                    <a href="{$glmPluginMediaUrl}/images/large/{$facility.facility_map}" target="facilityMap">{$facility.facility_map}</a><br>
+    {/if}
                     <b>New image:</b> <input id="assetFacilityMap" type="file" name="facility_map_new">
                 </div>
 
 
                 <div><span class="glm-required">*</span> Required</div>
                 <div>
-                    <input class="button button-primary" type="submit" name="Click Here" value="Add New Facility">
+                    <input class="button button-primary" type="submit" name="Click Here" 
+                        {if $use == 'add'} value="Add New {$terms.assets_term_facility_cap}" {/if}
+                        {if $use == 'edit'} value="Update {$terms.assets_term_facility_cap}" {/if}
+                    >
                     <a id="assetsDialogCancel" class="button button-primary">Cancel</a>
                 </div>
                 
index ef7e5ce..b7dc767 100644 (file)
@@ -1,4 +1,7 @@
-{$status}
+{$status} {* first character of this file is a status flag for the calling AJAX code. *}
 
-<div style="grid-column: 1 / span 7;" class="facility_{$facility.fieldData.id} facility-name">{$facility.fieldData.name}</div>
-<div style="grid-column: 2 / span 6;" class="facility_{$facility.fieldData.id} glm-hidden"><a href="#edit">Edit</a> <a href="#edit">Delete</a></div>
+<div style="grid-column: 1 / span 7;" class="facility_{$facility.fieldData.id} facility-name" data-id="{$facility.fieldData.id}">{$facility.fieldData.name}</div>
+<div style="grid-column: 2 / span 6;" id="facilityEditLinks_{$facility.fieldData.id}" class="glm-hidden facility_{$facility.fieldData.id}">
+    <a class="facility-edit button glm-button-small" data-id="{$facility.fieldData.id}">Edit</a>
+    <a class="facility-delete button glm-button-small" data-id="{$facility.fieldData.id}">Delete</a>
+</div>
index 04f3207..d7a8eb7 100644 (file)
@@ -1,3 +1,7 @@
+
+<br>
+* Having problem with submit of edit on new faclilty<br>
+
 <div class="wrap glm-associate-admin-wrap">
 
 
@@ -39,7 +43,7 @@
     <div class="glm-admin-table">
         <div class="glm-admin-table-inner">
 
-            <a id="glm-assets-add-facility-button" class="button">Add a Facility</a>
+            <a id="glm-assets-add-facility-button" class="button">Add a {$terms.assets_term_facility_cap}</a>
             
             <div id="assetsFacilitiesContainer" class="assets-admin-content">
     
@@ -47,7 +51,7 @@
 
     {foreach $facilities as $facility}                
 
-                <div style="grid-column: 1 / span 7;" id="facility_{$facility.id}" class="facility-name" data-id="{$facility.id}">{$facility.name} {$facility.id}</div>
+                <div style="grid-column: 1 / span 7;" id="facility_{$facility.id}" class="facility-name" data-id="{$facility.id}">{$facility.name}</div>
                 
                 {* First indent here *}
                 
                 <div class="assets-colum-title facility_{$facility.id} glm-hidden">Name</div>
                 <div class="assets-colum-title facility_{$facility.id} glm-hidden">Number</div>
                 <div class="assets-colum-title facility_{$facility.id} glm-hidden">Quantity</div>
-    
-      {foreach $facility.assets as $asset}   
+{literal}    
+<!-- 
+        {if $facility.assets}  
+            {foreach $facility.assets as $asset}   
         
                 <div style="grid-column: 2 / span 3;" class="facility_{$facility.id} glm-hidden">Room</div>
                 <div class="facility_{$facility.id} glm-hidden">Ballroom</div>
@@ -77,7 +83,7 @@
                 <div class="assets-colum-title facility_{$facility.id} glm-hidden">Account</div>
                 <div class="assets-colum-title facility_{$facility.id} glm-hidden">Quantity</div>
     
-        {foreach $asset.assignments as $assignment}                        
+                {foreach $asset.assignments as $assignment}                        
 
                 <div style="grid-column: 3 / span 2" class="facility_{$facility.id} glm-hidden">1/1/2018 07:00 AM</div>
                 <div class="facility_{$facility.id} glm-hidden">1/1/2018 05:00 PM</div>
                 {* Third indent here *}    
                 <div style="grid-column: 4 / span 4;" class="facility_{$facility.id} glm-hidden"><a href="#edit">Edit</a> <a href="#edit">Delete</a></div>
                 
-        {/foreach} {* assignments *}
+                {/foreach} {* assignments *}
     
-      {/foreach} {* assets *}
-      
+            {/foreach} {* assets *}
+        {/if}
+-->        
+{/literal}      
     {/foreach} {* facilities *}
     
 {else} {* if haveFacilities *}
 
-                <div style="grid-column: 1 / span 7;" id="glmAssetNoFacilities">No Facilities Listed</div>
+                <div style="grid-column: 1 / span 7;" id="glmAssetNoFacilities">No {$terms.assets_term_facility_plur_cap} Listed</div>
 
 {/if} {* if haveFacilities *}
 
 <script>
 jQuery(document).ready(function($){
 
-    // File Line Hover Action
+
     var facilityEditFlag = false;
     var facilityHoverId = false;    
+    var currentFormAction = false;
+    
+    // File Line Hover Action
     $('.facility-name').live( 'mouseenter', function() {     
         if (facilityEditFlag) {
             return;
@@ -155,8 +166,8 @@ jQuery(document).ready(function($){
     $('#assetsDialog').dialog({
         autoOpen: false,
         width: 600,
-        minWidth: 300,
-        dialogClass: 'glm-dialog-no-close'
+        minWidth: 300
+        // dialogClass: 'glm-dialog-no-close'
     });
 
     // Hide "No facilities"
@@ -172,7 +183,8 @@ jQuery(document).ready(function($){
     
 
     // Add a facility
-    $('#glm-assets-add-facility-button').on('click', function(event) {
+    $('#glm-assets-add-facility-button').live('click', function(event) {
+        facilityEditFlag = true;
         $.ajax({
             url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=assetManagement&option=newFacility',
             type: $(this).attr("method"),
@@ -181,9 +193,10 @@ jQuery(document).ready(function($){
             contentType: false,
             success: function (data, status)
             {
+                currentFormAction = 'add';
                 var status = data.charAt(0);
                 $('#assetsDialog').html(data.substring(1));
-                $('#assetsDialog').dialog( "option", "title", "Add a new Facility" );
+                $('#assetsDialog').dialog( "option", "title", "Add a new {$terms.assets_term_facility_cap}" );
                 $('#assetsDialog').dialog('open');
             },
             error: function (xhr, desc, err)
@@ -194,7 +207,7 @@ jQuery(document).ready(function($){
     });
     
     // Edit a facility
-    $('.facility-edit').on('click', function(event) {
+    $('.facility-edit').live('click', function(event) {
         facilityEditFlag = true;
         $.ajax({
             url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=assetManagement&option=editFacility&id=' + facilityHoverId,
@@ -204,9 +217,10 @@ jQuery(document).ready(function($){
             contentType: false,
             success: function (data, status)
             {
+                currentFormAction = 'edit';
                 var status = data.charAt(0);
                 $('#assetsDialog').html(data.substring(1));
-                $('#assetsDialog').dialog( "option", "title", "Edit Facility" );
+                $('#assetsDialog').dialog( "option", "title", "Edit {$terms.assets_term_facility_cap}" );
                 $('#assetsDialog').dialog('open');
             },
             error: function (xhr, desc, err)
@@ -218,10 +232,17 @@ jQuery(document).ready(function($){
     
     // Submit Facility Form
     $('#facilityForm').live('submit', function(event) {
+        
+        if (currentFormAction == 'add') {
+            var thisOption = 'addNewFacility';
+        }
+        if (currentFormAction == 'edit') {
+            var thisOption = 'updateFacility';
+        }
 
         event.preventDefault();        
         $.ajax({
-            url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=assetManagement&option=addNewFacility',
+            url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=assetManagement&option=' + thisOption,
             type: $(this).attr("method"),
             dataType: 'html',
             data: new FormData(this),
@@ -234,10 +255,22 @@ jQuery(document).ready(function($){
 
                 // If all is good add this facility to the top of the list for now
                 if (status == 0) {
-                    $('#assetsFacilitiesContainer').prepend(html);
-                    $('#assetsDialog').dialog('close');
-                    hideNoFacilities();    
+
+                    facilityEditFlag = false;
+                    
+                    if (currentFormAction == 'add') {
+                        $('#assetsFacilitiesContainer').prepend(html);
+                        $('#assetsDialog').dialog('close');
+                        hideNoFacilities();
+                    }
+                    if (currentFormAction == 'edit') {
+                        $('#facility_' + facilityHoverId).html(html);
+                        $('#assetsDialog').dialog('close');
+                    }    
                 }
+
+                // if status....
+                
             },
             error: function (xhr, desc, err)
             {