CRM-13966 - Cleanup profile dialog
authorColeman Watts <coleman@civicrm.org>
Sun, 2 Mar 2014 21:25:21 +0000 (16:25 -0500)
committerColeman Watts <coleman@civicrm.org>
Sun, 2 Mar 2014 21:25:21 +0000 (16:25 -0500)
CRM/Core/BAO/UFGroup.php
CRM/Profile/Form/Edit.php
templates/CRM/Profile/Form/Dynamic.tpl

index f61e682c29936e2da920e9e8f9356a2fdf3bbc05..d389744fe2f28d10b0f0b1e90fe24eef29aa826c 100644 (file)
@@ -3223,7 +3223,7 @@ AND    ( entity_id IS NULL OR entity_id <= 0 )
         if (in_array($profile['name'], $profiles)) {
           $links[] = array(
             'label' => $profile['title'],
-            'url' => CRM_Utils_System::url('civicrm/profile/create', 'reset=1&gid=' . $id),
+            'url' => CRM_Utils_System::url('civicrm/profile/create', 'reset=1&context=dialog&&gid=' . $id),
             'name' => $profile['name'],
           );
         }
index 6921534bd058511a10a0448c3764700ec43b1268..3f47c8c93f8549ae15e5874ccfeed8e9683f7d28 100644 (file)
@@ -282,13 +282,11 @@ SELECT module
       'isDefault' => TRUE,
     );
 
-    if ($this->_context != 'dialog') {
-      $buttons[] = array(
-        'type' => 'cancel',
-        'name' => ts('Cancel'),
-        'isDefault' => TRUE,
-      );
-    }
+    $buttons[] = array(
+      'type' => 'cancel',
+      'name' => ts('Cancel'),
+      'isDefault' => TRUE,
+    );
 
     $this->addButtons($buttons);
 
@@ -309,26 +307,8 @@ SELECT module
     $sortName = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_id, 'sort_name');
     $this->ajaxResponse['label'] = $sortName;
 
-    // this is special case when we create contact using Dialog box
-    if ($this->_context == 'dialog') {
-      //replace the session stack for redirecting user to contact summary if new contact is created.
-      $contactViewURL = CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid={$this->_id}", FALSE, NULL, FALSE);
-      $session = CRM_Core_Session::singleton();
-      $session->replaceUserContext($contactViewURL);
-
-      $returnArray = array(
-        'contactID' => $this->_id,
-        'displayName' => $displayName,
-        'sortName' => $sortName,
-        'newContactSuccess' => TRUE,
-      );
-
-      echo json_encode($returnArray);
-      CRM_Utils_System::civiExit();
-    }
-
-    //for delete record handling
-    if (empty($_POST[$this->_deleteButtonName])) {
+    // When saving (not deleting) and not in an ajax popup
+    if (empty($_POST[$this->_deleteButtonName]) && $this->_context != 'dialog') {
       CRM_Core_Session::setStatus(ts('Your information has been saved.'), ts('Thank you.'), 'success');
     }
 
index 7d28acde8aa7f9c4e4bce44fc2bf9248e5272092..67fcf6e42350451b6ac9468e4ed5f6048b9b64b4 100644 (file)
@@ -295,58 +295,7 @@ cj(document).ready(function(){
   cj('#selector tr:odd ').addClass('even-row');
 });
 {/literal}
-{if $context eq 'dialog'}
-{literal}
-  var options = {
-      beforeSubmit:  showRequest
-  };
-
-  // bind form using 'ajaxForm'
-  cj('#Edit').ajaxForm( options );
-
-   // FIXME - this is improper use of jquery.form
-   // Do not use this code as an example
-  function showRequest(formData, jqForm, options) {
-    // formData is an array; here we use $.param to convert it to a string to display it
-    // but the form plugin does this for you automatically when it submits the data
-    var queryString = cj.param(formData);
-    queryString = queryString + '&snippet=5&gid=' + {/literal}"{$profileID}"{literal};
-    var postUrl = {/literal}"{crmURL p='civicrm/profile/create' h=0 }"{literal};
-    var blockNo = {/literal}{if $blockNo}{$blockNo}{else}null{/if}{literal};
-    var prefix  = {/literal}"{$prefix}"{literal};
-    var response = cj.ajax({
-      type: "POST",
-      url: postUrl,
-      async: false, // FIXME
-      data: queryString,
-      dataType: "json",
-      success: function( response ) {
-        if ( response.newContactSuccess ) {
-          cj('#' + prefix + 'contact_' + blockNo ).val( response.sortName ).focus( );
-          if ( typeof(allowMultiClient) != "undefined" ) {
-            if ( allowMultiClient ) {
-              cj('#' + prefix + 'contact_' + blockNo).tokenInput("add", {id: response.contactID, name: response.sortName });
-            }
-          }
-          cj('input[name="' + prefix + 'contact_select_id[' + blockNo +']"]').val( response.contactID );
-          CRM.alert(response.displayName + {/literal}'{ts escape="js"} has been created.{/ts}', '{ts escape="js"}Contact Saved{/ts}'{literal}, 'success');
-          cj('#contact-dialog-' + prefix + blockNo ).dialog('close');
-        }
-      }
-    }).responseText;
-
-    cj('#contact-dialog-' + prefix + blockNo).html( response );
-
-    // FIXME - we have used jquery.form very incorrectly
-    // and are now preventing it from doing what it's supposed to do
-    return false;
-  }
-
-{/literal}
-{/if}
-{literal}
 </script>
-{/literal}
 
 {/crmRegion}
 </div> {* end crm-profile-NAME *}