Merge remote-tracking branch 'upstream/4.5' into 4.5-master-2014-10-07-19-33-29
[civicrm-core.git] / templates / CRM / Contribute / Form / SoftCredit.tpl
CommitLineData
0baed70b 1{*
2 +--------------------------------------------------------------------+
819d0d41 3 | CiviCRM version 4.5 |
0baed70b 4 +--------------------------------------------------------------------+
819d0d41 5 | Copyright CiviCRM LLC (c) 2004-2014 |
0baed70b 6 +--------------------------------------------------------------------+
7 | This file is a part of CiviCRM. |
8 | |
9 | CiviCRM is free software; you can copy, modify, and distribute it |
10 | under the terms of the GNU Affero General Public License |
11 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
12 | |
13 | CiviCRM is distributed in the hope that it will be useful, but |
14 | WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
16 | See the GNU Affero General Public License for more details. |
17 | |
18 | You should have received a copy of the GNU Affero General Public |
19 | License and the CiviCRM Licensing Exception along |
20 | with this program; if not, contact CiviCRM LLC |
21 | at info[AT]civicrm[DOT]org. If you have questions about the |
22 | GNU Affero General Public License or the licensing of CiviCRM, |
23 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
24 +--------------------------------------------------------------------+
25*}
26{* template for adding form elements for soft credit form*}
133e2c99 27{if $honor_block_is_active}
28 {crmRegion name="contribution-soft-credit-block"}
29 <legend>{$honor_block_title}</legend>
30 <div class="crm-section honor_block_text-section">
31 {$honor_block_text}
32 </div>
33 {if $form.soft_credit_type_id.html}
34 <div class="crm-section {$form.soft_credit_type_id.name}-section">
35 <div class="content" >
36 {$form.soft_credit_type_id.html}
133e2c99 37 <div class="description">{ts}Select an option to reveal honoree information fields.{/ts}</div>
38 </div>
39 </div>
40 {/if}
41 {/crmRegion}
42{else}
65377546 43<table class="form-layout-compressed crm-soft-credit-block">
3389d6e2
KJ
44 {section name='i' start=1 loop=$rowCount}
45 {assign var='rowNumber' value=$smarty.section.i.index}
46 <tr id="soft-credit-row-{$rowNumber}"
47 class="crm-contribution-form-block-soft_credit_to {if $rowNumber gte $showSoftCreditRow}hiddenElement{/if}">
3389d6e2 48 <td>
ccec9d6b 49 {$form.soft_credit_contact_id.$rowNumber.label}&nbsp;{$form.soft_credit_contact_id.$rowNumber.html|crmAddClass:twenty}
3389d6e2
KJ
50 </td>
51 <td>
52 {$form.soft_credit_amount.$rowNumber.label}&nbsp;{$form.soft_credit_amount.$rowNumber.html|crmAddClass:eight}
51fa20cb 53 </td>
54 <td>
ccec9d6b
CW
55 {$form.soft_credit_type.$rowNumber.label}&nbsp;{$form.soft_credit_type.$rowNumber.html}
56 &nbsp;<a class="crm-hover-button soft-credit-delete-link" href="#"><span class="icon delete-icon"></span></a>
3389d6e2
KJ
57 </td>
58 </tr>
59 {/section}
60 <tr>
81bc499e 61 <td>
ccec9d6b 62 <a href="#" class="crm-hover-button" id="addMoreSoftCredit"><span class="icon add-icon"></span> {ts}another soft credit{/ts}</a>
0baed70b 63 </td>
64 </tr>
232624b1 65</table>
133e2c99 66{/if}
6a490aa4
CW
67{literal}
68<script type="text/javascript">
3cc60a06 69 CRM.$(function($) {
b50fdacc 70 var $form = $("form.{/literal}{$form.formClass}{literal}");
6a490aa4
CW
71 $('#showPCP, #showSoftCredit').click(function(){
72 return showHideSoftCreditAndPCP();
73 });
74
75 function showHideSoftCreditAndPCP() {
76 $('.crm-contribution-pcp-block').toggle();
77 $('.crm-contribution-pcp-block-link').toggle();
78 $('.crm-contribution-form-block-soft_credit_to').toggle();
79 return false;
80 }
81
82 $('#addMoreSoftCredit').on('click', function () {
e9556dbf 83 if ($('tr.crm-contribution-form-block-soft_credit_to').hasClass("hiddenElement")) {
84 $('.crm-contribution-form-block-soft_credit_to tr.hiddenElement').filter(':first').show().removeClass('hiddenElement');
85 }
6a490aa4
CW
86 if ($('.crm-soft-credit-block tr.hiddenElement').length < 1) {
87 $('#addMoreSoftCredit').hide();
88 }
89 return false;
90 });
91
6bb107ce
CW
92 // FIXME: This could be much simpler as an entityRef field but pcp doesn't have a searchable api :(
93 var pcpURL = CRM.url('civicrm/ajax/rest', 'className=CRM_Contact_Page_AJAX&fnName=getPCPList&json=1&context=contact&reset=1');
94 $('#pcp_made_through_id').crmSelect2({
95 placeholder: {/literal}'{ts escape="js"}- select -{/ts}'{literal},
96 minimumInputLength: 1,
97 ajax: {
98 url: pcpURL,
99 data: function(term) {
100 return {term: term};
101 },
102 results: function(response) {
103 return {results: response};
104 }
105 },
106 initSelection: function(el, callback) {
4e5ba88d 107 callback({id: $(el).val(), text: $('[name=pcp_made_through]', $form).val()});
6bb107ce 108 }
4e5ba88d
CW
109 })
110 // This is just a cheap trick to store the name in case of a formrule error
111 .on('change', function() {
0be61fc0 112 $('[name=pcp_made_through]', $form).val($(this).select2('data').text || '');
4e5ba88d 113 });
6a490aa4 114
6a490aa4
CW
115 $('.crm-soft-credit-block tr span').each(function () {
116 if ($(this).hasClass('crm-error')) {
117 $(this).parents('tr').show();
118 }
119 });
120
ccec9d6b 121 $('.soft-credit-delete-link').click(function(){
b6545333 122 $(this).closest('tr').find('input').val('');
e9556dbf 123 $(this).closest('tr').addClass('hiddenElement').removeAttr('style');
124 $('#addMoreSoftCredit').show();
6a490aa4
CW
125 return false;
126 });
127
6d7cb3ad 128 $('input[name^="soft_credit_contact_"]').on('change', function(){
129 var rowNum = $(this).prop('id').replace('soft_credit_contact_id_','');
6a490aa4
CW
130 var totalAmount = $('#total_amount').val();
131 //assign total amount as default soft credit amount
132 $('#soft_credit_amount_'+ rowNum).val(totalAmount);
133 var thousandMarker = {/literal}{$config->monetaryThousandSeparator|json_encode}{literal};
6d7cb3ad 134 $('#soft_credit_type_'+ rowNum).select2('val', $('#sct_default_id').val());
6a490aa4
CW
135 totalAmount = Number(totalAmount.replace(thousandMarker,''));
136 if (rowNum > 1) {
137 var scAmount = Number($('#soft_credit_amount_'+ (rowNum - 1)).val().replace(thousandMarker,''));
138 if (scAmount < totalAmount) {
139 //if user enters less than the total amount and adds another soft credit row,
140 //the soft credit amount default will be left empty
141 $('#soft_credit_amount_'+ rowNum).val('');
142 }
143 }
144 });
145
146 });
147</script>
148{/literal}