store/fetch the submitted data to/form cache
authordeb.monish <monish.deb@webaccessglobal.com>
Fri, 22 Jul 2016 14:18:12 +0000 (19:48 +0530)
committerdeb.monish <monish.deb@webaccessglobal.com>
Sun, 24 Jul 2016 17:44:05 +0000 (23:14 +0530)
CRM/Core/BAO/CustomGroup.php
templates/CRM/common/customData.tpl

index 86ae03888c8db055e1ee995694e47917a6754a9c..0e3574b66efda8a66935546986c1bb449c686203 100644 (file)
@@ -1832,10 +1832,12 @@ SELECT IF( EXISTS(SELECT name FROM civicrm_contact_type WHERE name like %1), 1,
     $formattedGroupTree = array();
     $uploadNames = $formValues = array();
 
-    // JSON encoded submitted form values passed via URL
-    $submittedValues = CRM_Utils_Request::retrieve('post', 'String');
-    if (!empty($submittedValues)) {
-      $submittedValues = json_decode($submittedValues, TRUE);
+    // retrieve qf key from url
+    $qfKey = CRM_Utils_Request::retrieve('qf', 'String');
+
+    // fetch submitted custom field values later use to set as a default values
+    if ($qfKey) {
+      $submittedValues = CRM_Core_BAO_Cache::getItem('custom data', $qfKey);
     }
 
     foreach ($groupTree as $key => $value) {
@@ -1863,12 +1865,12 @@ SELECT IF( EXISTS(SELECT name FROM civicrm_contact_type WHERE name like %1), 1,
       // add field information
       foreach ($value['fields'] as $k => $properties) {
         $properties['element_name'] = "custom_{$k}_-{$groupCount}";
-        if (isset($submittedValues[$properties['element_name']])) {
-          $properties['element_value'] = $submittedValues[$properties['element_name']];
-        }
-        elseif ($value = CRM_Utils_Request::retrieve($properties['element_name'], 'String', $form, FALSE, NULL, 'POST')) {
+        if ($value = CRM_Utils_Request::retrieve($properties['element_name'], 'String', $form, FALSE, NULL, 'POST')) {
           $formValues[$properties['element_name']] = $value;
         }
+        elseif (isset($submittedValues[$properties['element_name']])) {
+          $properties['element_value'] = $submittedValues[$properties['element_name']];
+        }
         if (isset($properties['customValue']) &&
           !CRM_Utils_System::isNull($properties['customValue']) &&
           !isset($properties['element_value'])
@@ -1892,7 +1894,9 @@ SELECT IF( EXISTS(SELECT name FROM civicrm_contact_type WHERE name like %1), 1,
 
     if ($form) {
       if (count($formValues)) {
-        $form->assign('submittedValues', json_encode($formValues));
+        $qf = $form->get('qfKey');
+        $form->assign('qfKey', $qf);
+        CRM_Core_BAO_Cache::setItem($formValues, 'custom data', $qf);
       }
 
       // hack for field type File
index 5ba9f63567c9d66f058236738b36dd600b420b3f..e4bbcf2ace0119a7e9cd973cd330e6b679b2d9f9 100644 (file)
@@ -54,8 +54,8 @@
       {if $entityID}
         dataUrl += '&entityID=' + '{$entityID}';
       {/if}
-      {if $submittedValues}
-        dataUrl += '&post=' + '{$submittedValues}';
+      {if $qfKey}
+        dataUrl += '&qf=' + '{$qfKey}';
       {/if}
       {literal}