CRM-13966 - Replace pcp autocomplete with select2
[civicrm-core.git] / templates / CRM / Contribute / Form / SoftCredit.tpl
index 91eb2b773058398a9ff26d4097c08cf5ea154283..f45897e4a49c4f9993b860bb55c4cc2e82cc65d2 100644 (file)
@@ -34,7 +34,6 @@
       <div class="crm-section {$form.soft_credit_type_id.name}-section">
         <div class="content" >
           {$form.soft_credit_type_id.html}
-          <span class="crm-clear-link">(<a href="#" title="unselect" onclick="unselectRadio('soft_credit_type_id', '{$form.formName}');enableHonorType(); return false;">{ts}clear{/ts}</a>)</span>
           <div class="description">{ts}Select an option to reveal honoree information fields.{/ts}</div>
         </div>
       </div>
     {assign var='rowNumber' value=$smarty.section.i.index}
     <tr id="soft-credit-row-{$rowNumber}"
         class="crm-contribution-form-block-soft_credit_to {if $rowNumber gte $showSoftCreditRow}hiddenElement{/if}">
-      <td class="label">{ts}Select Contact{/ts}</td>
       <td>
-        {assign var='createNewStatus' value=true}
-        {if !$showCreateNew and $rowNumber lt $showSoftCreditRow}
-          {assign var='createNewStatus' value=false}
-        {/if}
-        {include file="CRM/Contact/Form/NewContact.tpl" noLabel=true skipBreak=true blockNo=$rowNumber
-        prefix="soft_credit_" showNewSelect=$createNewStatus focus=false}
+        {$form.soft_credit_contact_id.$rowNumber.label}&nbsp;{$form.soft_credit_contact_id.$rowNumber.html|crmAddClass:twenty}
       </td>
       <td>
         {$form.soft_credit_amount.$rowNumber.label}&nbsp;{$form.soft_credit_amount.$rowNumber.html|crmAddClass:eight}
       </td>
       <td>
-        {$form.soft_credit_type.$rowNumber.label}&nbsp;{$form.soft_credit_type.$rowNumber.html|crmAddClass:eight}
-        &nbsp;<a class="delete-link" row-no={$rowNumber} href="#">{ts}delete{/ts}</a>
+        {$form.soft_credit_type.$rowNumber.label}&nbsp;{$form.soft_credit_type.$rowNumber.html}
+        &nbsp;<a class="crm-hover-button soft-credit-delete-link" href="#"><span class="icon delete-icon"></span></a>
       </td>
     </tr>
   {/section}
   <tr>
-    <td></td>
     <td>
-      <a href="#" id="addMoreSoftCredit">{ts}add another soft credit{/ts}</a>
+      <a href="#" class="crm-hover-button" id="addMoreSoftCredit"><span class="icon add-icon"></span> {ts}another soft credit{/ts}</a>
     </td>
   </tr>
 </table>
     }
 
     $('#addMoreSoftCredit').on('click', function () {
-      $('.crm-contribution-form-block-soft_credit_to tr.hiddenElement').filter(':first').show().removeClass('hiddenElement');
+      if ($('tr.crm-contribution-form-block-soft_credit_to').hasClass("hiddenElement")) {
+        $('.crm-contribution-form-block-soft_credit_to tr.hiddenElement').filter(':first').show().removeClass('hiddenElement');
+      }
       if ($('.crm-soft-credit-block tr.hiddenElement').length < 1) {
         $('#addMoreSoftCredit').hide();
       }
       return false;
     });
 
-    var pcpURL = CRM.url('civicrm/ajax/rest',
-      'className=CRM_Contact_Page_AJAX&fnName=getPCPList&json=1&context=contact&reset=1');
-    $('#pcp_made_through').autocomplete(pcpURL,
-      { width : 360, selectFirst : false, matchContains: true
-      }).result( function(event, data, formatted) {
-        $("#pcp_made_through_id" ).val( data[1]);
-      });
-
-    var rowCnt = 1;
-    $('input[name^="soft_credit_contact_select_id["]').each(function(){
-      if ($(this).val()){
-        var dataUrl = CRM.url('civicrm/ajax/rest',
-          'className=CRM_Contact_Page_AJAX&fnName=getContactList&json=1&context=contact&id=' + $(this).val());
-        $.ajax({
-          url     : dataUrl,
-          async   : false,
-          success : function(html){
-            htmlText = html.split( '|' , 2);
-            $('#soft_credit_contact_' + rowCnt).val(htmlText[0]);
-            rowCnt++;
-          }
-        });
+    // FIXME: This could be much simpler as an entityRef field but pcp doesn't have a searchable api :(
+    var pcpURL = CRM.url('civicrm/ajax/rest', 'className=CRM_Contact_Page_AJAX&fnName=getPCPList&json=1&context=contact&reset=1');
+    $('#pcp_made_through_id').crmSelect2({
+      placeholder: {/literal}'{ts escape="js"}- select -{/ts}'{literal},
+      minimumInputLength: 1,
+      ajax: {
+        url: pcpURL,
+        data: function(term) {
+          return {term: term};
+        },
+        results: function(response) {
+          return {results: response};
+        }
+      },
+      initSelection: function(el, callback) {
+        callback({id: $(el).val(), text: $('#pcp_made_through').val()});
       }
     });
 
       }
     });
 
-    $('.delete-link').click(function(){
-      var row = $(this).attr('row-no');
-      $('#soft-credit-row-' + row).hide().find('input').val('');
-      $('input[name="soft_credit_contact_select_id['+row+']"]').val('');
+    $('.soft-credit-delete-link').click(function(){
+      $(this).closest('tr').addClass('hiddenElement').removeAttr('style');
+      $('#addMoreSoftCredit').show();
       return false;
     });