adding fieldfail array that is merged in with the custom fields data
authorAnthony Talarico <talarico@gaslightmedia.com>
Thu, 26 Oct 2017 15:44:21 +0000 (11:44 -0400)
committerAnthony Talarico <talarico@gaslightmedia.com>
Thu, 26 Oct 2017 15:44:21 +0000 (11:44 -0400)
using a custom field fail array merged in with the custom fields data to add
field fail styles in the view if a required field is empty

classes/customFieldPluginSupport.php
css/admin.css
models/admin/entity/fields.php
views/admin/entity/fields.html

index e974327..e43bf7a 100644 (file)
@@ -16,7 +16,7 @@
  */
 function customFieldsSaveFields( $entityID ){   
     global $wpdb;
-    echo $entityID;
+    $fieldFail = array();
     // If no data for custom field then return
     if ( !isset( $_REQUEST['glm_custom_field'] ) ) {
         return false;
@@ -40,13 +40,18 @@ function customFieldsSaveFields( $entityID ){
         }
     }
     foreach($_REQUEST['glm_custom_field'] as $fieldID =>$fieldValue){
+        $cfData[$fieldID] = $fieldValue;
         if( in_array( $fieldID,$requiredFields )){
             if($fieldValue  === ''){
-                return $_REQUEST['glm_custom_field'];
+                $fieldFail['fieldFail'][$fieldID] = true;
             } 
         } 
     }
-   
+    
+    if(!empty($fieldFail)){   
+        $fieldFailData = $cfData + $fieldFail;
+         return $fieldFailData;
+    }
     // Loop through the glm_custom_field array
     foreach ( $_REQUEST['glm_custom_field'] as $fieldId => $fieldValue ) {
         $fieldData =array(
index 2614375..cdd8308 100644 (file)
@@ -5,10 +5,12 @@
     font-weight: bold;
     line-height: 1;
 }
-
+.glm-admin-custom-fields .glm-input-wrapper{
+    display: inline-block;
+}
 @media(min-width: 1024px){
     .glm-admin-custom-fields input[type=text]{
-        width: 50%;
+/*        width: 50%;*/
     }
 }
 @media(max-width: 1024px){
index f5feabe..dd77474 100644 (file)
@@ -137,8 +137,9 @@ class GlmMembersAdmin_entity_fields extends GlmDataFieldsCustomFields
             $entityID = $actionData['entityID'];
             $uid = $actionData['uid'];
             $fieldFail = $actionData['cfData'];
+//            print_r($fieldFail);
         }  
-
+        
         switch ($option) {
 
             default:
index 456ba6f..a00af22 100644 (file)
@@ -3,24 +3,33 @@
         <div class="glm-small-12 glm-large-2 glm-columns glm-custom-field-label {if $field.required.value == 1} glm-required {/if}">{$field.field_name}</div>
         <div class="glm-small-12 glm-large-9 glm-columns glm-custom-field">
             <input type="hidden" name="custom-required" value="{$field.required.value}">
-            {if $field.field_type.name == 'text'}
-       
-            <input type="text" name="{$prefix}[{$field.id}]" value="{if isset($customFieldsData[$field.id])}{$customFieldsData[$field.id]|escape}{/if}" {if $field.required.value == 1} required {/if}>
-            {elseif $field.field_type.name == 'textarea'}
-                {php}
-                wp_editor('{if isset($customFieldsData[$field.id])}{$customFieldsData[$field.id]|escape:quotes}{/if}', 'custom-field-{$field.id}', array(
-                    'media_buttons' => false,
-                    // 'quicktags' => false,
-                    // 'wpautop' => false,  NOTE: Dont's use. Problem when numerous spaces before text.
-                    'textarea_name' => '{$prefix}[{$field.id}]',
-                    'editor_height' => 200,     // Height in px, overrides editor_rows
-                    // 'textarea_rows' => 8
-                ));
-                {/php}
-            {elseif $field.field_type.name == 'checkbox'}
-            <input type="hidden" name="{$prefix}[{$field.id}]" value="No" {if !isset($customFieldsData[$field.id]) || $customFieldsData[$field.id] == 'No'}checked{/if}>
-            <input type="checkbox" name="{$prefix}[{$field.id}]" value="Yes" {if isset($customFieldsData[$field.id]) && $customFieldsData[$field.id] == 'Yes'}checked{/if}>
-            {/if}
+            
+           {$fail = ''}
+           {if array_key_exists('fieldFail', $customFieldsData)}
+                {if array_key_exists($field.id,$customFieldsData['fieldFail'])}
+                    {$fail = 'glm-form-bad-input'}
+                 {/if}
+           {/if}
+           <div class="glm-input-wrapper {$fail}">
+                {if $field.field_type.name == 'text'}
+
+                    <input class="glm-input glm-form-text-input-medium" type="text" name="{$prefix}[{$field.id}]" value="{if isset($customFieldsData[$field.id])}{$customFieldsData[$field.id]|escape}{/if}" {if $field.required.value == 1} required{/if}>
+                {elseif $field.field_type.name == 'textarea'}
+                   {php}
+                        wp_editor('{if isset($customFieldsData[$field.id])}{$customFieldsData[$field.id]|escape:quotes}{/if}', 'custom-field-{$field.id}', array(
+                            'media_buttons' => false,
+                            // 'quicktags' => false,
+                            // 'wpautop' => false,  NOTE: Dont's use. Problem when numerous spaces before text.
+                            'textarea_name' => '{$prefix}[{$field.id}]',
+                            'editor_height' => 200,     // Height in px, overrides editor_rows
+                            // 'textarea_rows' => 8
+                        ));
+                    {/php}
+                {elseif $field.field_type.name == 'checkbox'}
+                    <input type="hidden" name="{$prefix}[{$field.id}]" value="No" {if !isset($customFieldsData[$field.id]) || $customFieldsData[$field.id] == 'No'}checked{/if}>
+                    <input type="checkbox" name="{$prefix}[{$field.id}]" value="Yes" {if isset($customFieldsData[$field.id]) && $customFieldsData[$field.id] == 'Yes'}checked{/if}>
+                {/if}
+           </div>
         </div>
     {/foreach}
 </div>