Commit | Line | Data |
---|---|---|
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} {$form.soft_credit_contact_id.$rowNumber.html|crmAddClass:twenty} |
3389d6e2 KJ |
50 | </td> |
51 | <td> | |
52 | {$form.soft_credit_amount.$rowNumber.label} {$form.soft_credit_amount.$rowNumber.html|crmAddClass:eight} | |
51fa20cb | 53 | </td> |
54 | <td> | |
ccec9d6b CW |
55 | {$form.soft_credit_type.$rowNumber.label} {$form.soft_credit_type.$rowNumber.html} |
56 | <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 | ||
128 | $('input[name^="soft_credit_contact["]').change(function(){ | |
129 | var rowNum = $(this).prop('id').replace('soft_credit_contact_',''); | |
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}; | |
134 | $('#soft_credit_type_'+ rowNum).val($('#sct_default_id').val()); | |
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} |