Merge pull request #9790 from fliespl/patch-3
[civicrm-core.git] / templates / CRM / Contribute / Form / Contribution / MembershipBlock.tpl
1 {*
2 +--------------------------------------------------------------------+
3 | CiviCRM version 4.7 |
4 +--------------------------------------------------------------------+
5 | Copyright CiviCRM LLC (c) 2004-2017 |
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 {if !empty($useForMember) AND !$is_quick_config}
27 <div id="membership" class="crm-group membership-group">
28 {if $context EQ "makeContribution"}
29 <div id="priceset">
30 <fieldset>
31 {if $renewal_mode}
32 {if $membershipBlock.renewal_title}
33 <legend>{$membershipBlock.renewal_title}</legend>
34 {/if}
35 {if $membershipBlock.renewal_text}
36 <div id="membership-intro" class="crm-section membership_renewal_intro-section">
37 {$membershipBlock.renewal_text}
38 </div>
39 {/if}
40 {else}
41 {if $membershipBlock.new_title}
42 <legend>{$membershipBlock.new_title}</legend>
43 {/if}
44 {if $membershipBlock.new_text}
45 <div id="membership-intro" class="crm-section membership_new_intro-section">
46 {$membershipBlock.new_text}
47 </div>
48 {/if}
49 {/if}
50 {if !empty($membershipTypes)}
51 {foreach from=$membershipTypes item=row}
52 {if array_key_exists( 'current_membership', $row )}
53 <div id='help'>
54 {* Lifetime memberships have no end-date so current_membership array key exists but is NULL *}
55 {if $row.current_membership}
56 {if $row.current_membership|date_format:"%Y%m%d" LT $smarty.now|date_format:"%Y%m%d"}
57 {ts 1=$row.current_membership|crmDate 2=$row.name}Your <strong>%2</strong> membership expired on %1.{/ts}<br />
58 {else}
59 {ts 1=$row.current_membership|crmDate 2=$row.name}Your <strong>%2</strong> membership expires on %1.{/ts}<br />
60 {/if}
61 {else}
62 {ts 1=$row.name}Your <strong>%1</strong> membership does not expire (you do not need to renew that membership).{/ts}<br />
63 {/if}
64 </div>
65 {/if}
66 {/foreach}
67 {/if}
68
69 {include file="CRM/Price/Form/PriceSet.tpl" extends="Membership"}
70 </fieldset>
71 </div>
72 {elseif $lineItem and $priceSetID AND !$is_quick_config}
73 {assign var="totalAmount" value=$amount}
74 <div class="header-dark">
75 {ts}Membership Fee{/ts}
76 </div>
77 <div class="display-block">
78 {include file="CRM/Price/Page/LineItem.tpl" context="Membership"}
79 </div>
80 {/if}
81 </div>
82 {literal}
83 <script type="text/javascript">
84 CRM.$(function($) {
85 //if price set is set we use below below code to show for showing auto renew
86 var autoRenewOption = {/literal}'{$autoRenewOption}'{literal};
87 var autoRenew = $("#auto_renew");
88 var forceRenew = $("#force_renew");
89 autoRenew.hide();
90 forceRenew.hide();
91 if ( autoRenewOption == 1 ) {
92 autoRenew.show();
93 } else if ( autoRenewOption == 2 ) {
94 autoRenew.prop('checked', true );
95 autoRenew.attr( 'readonly', true );
96 autoRenew.hide();
97 forceRenew.show();
98 }
99 });
100 </script>
101 {/literal}
102 {elseif $membershipBlock AND !$is_quick_config}
103 <div id="membership" class="crm-group membership-group">
104 {if $context EQ "makeContribution"}
105 <fieldset>
106 {if $renewal_mode }
107 {if $membershipBlock.renewal_title}
108 <legend>{$membershipBlock.renewal_title}</legend>
109 {/if}
110 {if $membershipBlock.renewal_text}
111 <div id="membership-intro" class="crm-section membership_renewal_intro-section">
112 <p>{$membershipBlock.renewal_text}</p>
113 </div>
114 {/if}
115
116 {else}
117 {if $membershipBlock.new_title}
118 <legend>{$membershipBlock.new_title}</legend>
119 {/if}
120 {if $membershipBlock.new_text}
121 <div id="membership-intro" class="crm-section membership_new_intro-section">
122 <p>{$membershipBlock.new_text}</p>
123 </div>
124 {/if}
125 {/if}
126 {/if}
127 {if $context neq "makeContribution" }
128 <div class="header-dark">
129 {if $renewal_mode }
130 {if $membershipBlock.renewal_title}
131 {$membershipBlock.renewal_title}
132 {else}
133 {ts}Select a Membership Renewal Level{/ts}
134 {/if}
135
136 {else}
137 {if $membershipBlock.new_title}
138 {$membershipBlock.new_title}
139 {else}
140 {ts}Select a Membership Level{/ts}
141 {/if}
142 {/if}
143 </div>
144 {/if}
145
146 {if $context EQ "makeContribution"}
147 </fieldset>
148 {/if}
149 </div>
150
151 {/if}{* membership block end here *}
152
153 {if $membershipBlock AND $is_quick_config}
154 {if $context neq "makeContribution" }
155 <div class="header-dark">
156 {if $renewal_mode }
157 {if $membershipBlock.renewal_title}
158 {$membershipBlock.renewal_title}
159 {else}
160 {ts}Select a Membership Renewal Level{/ts}
161 {/if}
162 {else}
163 {if $membershipBlock.new_title}
164 {$membershipBlock.new_title}
165 {else}
166 {ts}Select a Membership Level{/ts}
167 {/if}
168 {/if}
169 </div>
170 {/if}
171 {strip}
172 <table id="membership-listings">
173 {foreach from=$membershipTypes item=row}
174 <tr {if $context EQ "makeContribution"}class="odd-row" {/if}valign="top">
175 {if $showRadio }
176 {assign var="pid" value=$row.id}
177 <td style="width: 1em;">{$form.selectMembership.$pid.html}</td>
178 {else}
179 <td>&nbsp;</td>
180 {/if}
181 <td style="width: auto;">
182 <span class="bold">{$row.name} &nbsp;
183 {if ($membershipBlock.display_min_fee AND $context EQ "makeContribution") AND $row.minimum_fee GT 0 }
184 {if $is_separate_payment OR ! $form.amount.label}
185 &ndash; {$row.minimum_fee|crmMoney}
186 {else}
187 {ts 1=$row.minimum_fee|crmMoney}(contribute at least %1 to be eligible for this membership){/ts}
188 {/if}
189 {/if}
190 </span><br />
191 {$row.description} &nbsp;
192 </td>
193
194 <td style="width: auto;">
195 {* Check if there is an existing membership of this type (current_membership NOT empty) and if the end-date is prior to today. *}
196 {if array_key_exists( 'current_membership', $row ) AND $context EQ "makeContribution" }
197 {if $row.current_membership}
198 {if $row.current_membership|date_format:"%Y%m%d" LT $smarty.now|date_format:"%Y%m%d"}
199 <br /><em>{ts 1=$row.current_membership|crmDate 2=$row.name}Your <strong>%2</strong> membership expired on %1.{/ts}</em>
200 {else}
201 <br /><em>{ts 1=$row.current_membership|crmDate 2=$row.name}Your <strong>%2</strong> membership expires on %1.{/ts}</em>
202 {/if}
203 {else}
204 {ts 1=$row.name}Your <strong>%1</strong> membership does not expire (you do not need to renew that membership).{/ts}<br />
205 {/if}
206 {else}
207 &nbsp;
208 {/if}
209 </td>
210 </tr>
211
212 {/foreach}
213 {if isset($form.auto_renew) }
214 <tr id="allow_auto_renew">
215 <td style="width: auto;">{$form.auto_renew.html}</td>
216 <td style="width: auto;">
217 {$form.auto_renew.label}
218 </td>
219 </tr>
220 {/if}
221 {if $showRadio}
222 {if $showRadioNoThanks } {* Provide no-thanks option when Membership signup is not required - per membership block configuration. *}
223 <tr class="odd-row">
224 <td>{$form.selectMembership.no_thanks.html}</td>
225 <td colspan="2"><strong>{ts}No thank you{/ts}</strong></td>
226 </tr>
227 {/if}
228 {/if}
229 </table>
230 {/strip}
231 {/if}
232 {* Include JS for auto renew membership if priceset is Quick Config*}
233 {if $membershipBlock AND $quickConfig}
234 {literal}
235 <script type="text/javascript">
236 CRM.$(function($) {
237 showHideAutoRenew( null );
238 });
239 function showHideAutoRenew( memTypeId )
240 {
241 var priceSetName = "price_"+{/literal}'{$membershipFieldID}'{literal};
242 var considerUserInput = {/literal}'{$takeUserSubmittedAutoRenew}'{literal};
243 if ( memTypeId ) considerUserInput = false;
244 if ( !memTypeId ) memTypeId = cj('input:radio[name='+priceSetName+']:checked').attr('membership-type');
245
246 //does this page has only one membership type.
247 var singleMembership = {/literal}'{$singleMembership}'{literal};
248 if ( !memTypeId && singleMembership ) memTypeId = cj("input:radio[name="+priceSetName+"]").attr('membership-type');
249 var renewOptions = {/literal}{$autoRenewMembershipTypeOptions}{literal};
250 var currentOption = eval( "renewOptions." + 'autoRenewMembershipType_' + memTypeId );
251 var autoRenew = cj('#auto_renew');
252 var autoRenewC = cj('input[name="auto_renew"]');
253 var forceRenew = cj("#force_renew");
254
255 var readOnly = false;
256 var isChecked = false;
257 if ( currentOption == 0 ) {
258 isChecked = false;
259 forceRenew.hide();
260 autoRenew.hide();
261 }
262 if ( currentOption == 1 ) {
263 forceRenew.hide();
264 autoRenew.show();
265
266 //uncomment me, if we'd like
267 //to load auto_renew checked.
268 //isChecked = true;
269 } else if ( currentOption == 2 || currentOption == 4) {
270 autoRenew.hide();
271 forceRenew.show();
272 isChecked = readOnly = true;
273 }
274
275 if ( considerUserInput ) isChecked = autoRenew.prop('checked' );
276
277 //its a normal recur contribution.
278 if ( cj( "is_recur" ) &&
279 ( cj( 'input:radio[name="is_recur"]:checked').val() == 1 ) ) {
280 isChecked = false;
281 autoRenew.hide();
282 forceRenew.hide();
283 }
284
285 autoRenewC.attr( 'readonly', readOnly );
286 autoRenewC.prop('checked', isChecked );
287 }
288
289 {/literal}{if $allowAutoRenewMembership}{literal}
290 CRM.$(function($) {
291 //keep read only always checked.
292 cj( "#auto_renew" ).click(function( ) {
293 if ( cj(this).attr( 'readonly' ) ) {
294 cj(this).prop('checked', true );
295 }
296 });
297 });
298 {/literal}{/if}{literal}
299 </script>
300 {/literal}
301 {/if}