Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | {* |
2 | +--------------------------------------------------------------------+ | |
2c4c49ca | 3 | | CiviCRM version 4.7 | |
6a488035 | 4 | +--------------------------------------------------------------------+ |
e7112fa7 | 5 | | Copyright CiviCRM LLC (c) 2004-2015 | |
6a488035 TO |
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 | {* this template used to build location block *} | |
27 | {if !$addBlock} | |
28 | <div id="help"> | |
29 | {ts}Use this form to configure the location and optional contact information for the event. This information will be displayed on the Event Information page. It will also be included in online registration pages and confirmation emails if these features are enabled.{/ts} | |
30 | </div> | |
31 | {/if} | |
81ba6833 | 32 | |
6a488035 TO |
33 | {if $addBlock} |
34 | {include file="CRM/Contact/Form/Edit/$blockName.tpl"} | |
35 | {else} | |
81ba6833 | 36 | <div class="crm-block crm-form-block crm-event-manage-location-form-block"> |
6a488035 TO |
37 | <div class="crm-submit-buttons"> |
38 | {include file="CRM/common/formButtons.tpl" location="top"} | |
39 | </div> | |
40 | {if $locEvents} | |
41 | <table class="form-layout-compressed"> | |
42 | <tr id="optionType" class="crm-event-manage-location-form-block-location_option"> | |
43 | <td class="labels"> | |
44 | {$form.location_option.label} | |
45 | </td> | |
46 | {foreach from=$form.location_option key=key item =item} | |
47 | {if $key|is_numeric} | |
48 | <td class="value"><strong>{$item.html}</strong></td> | |
49 | {/if} | |
50 | {/foreach} | |
51 | </tr> | |
52 | <tr id="existingLoc" class="crm-event-manage-location-form-block-loc_event_id"> | |
53 | <td class="labels"> | |
54 | {$form.loc_event_id.label} | |
55 | </td> | |
56 | <td class="value" colspan="2"> | |
57 | {$form.loc_event_id.html|crmAddClass:huge} | |
58 | </td> | |
59 | </tr> | |
60 | <tr> | |
61 | <td id="locUsedMsg" colspan="3"> | |
6a488035 TO |
62 | </td> |
63 | </tr> | |
31037a42 | 64 | |
6a488035 TO |
65 | </table> |
66 | {/if} | |
31037a42 | 67 | |
6a488035 TO |
68 | |
69 | ||
70 | <div id="newLocation"> | |
71 | <h3>Address</h3> | |
72 | {* Display the address block *} | |
73 | {include file="CRM/Contact/Form/Edit/Address.tpl"} | |
74 | <table class="form-layout-compressed"> | |
75 | {* Display the email block(s) *} | |
76 | {include file="CRM/Contact/Form/Edit/Email.tpl"} | |
77 | ||
78 | {* Display the phone block(s) *} | |
79 | {include file="CRM/Contact/Form/Edit/Phone.tpl"} | |
80 | </table> | |
81 | <table class="form-layout-compressed"> | |
82 | <tr class="crm-event-is_show_location"> | |
83 | <td colspan="2">{$form.is_show_location.label}</td> | |
84 | <td colspan="2"> | |
85 | {$form.is_show_location.html}<br /> | |
86 | <span class="description">{ts}Uncheck this box if you want to HIDE the event Address on Event Information and Registration pages as well as on email confirmations.{/ts} | |
87 | </td> | |
88 | </tr> | |
89 | </table> | |
90 | <div class="crm-submit-buttons"> | |
91 | {include file="CRM/common/formButtons.tpl" location="bottom"} | |
92 | </div> | |
93 | </div> | |
94 | ||
95 | {* Include Javascript to hide and display the appropriate blocks as directed by the php code *} | |
96 | {*include file="CRM/common/showHide.tpl"*} | |
97 | {if $locEvents} | |
c720e2e2 | 98 | {* include common additional blocks tpl *} |
99 | {include file="CRM/common/additionalBlocks.tpl"} | |
100 | ||
6a488035 TO |
101 | <script type="text/javascript"> |
102 | {literal} | |
32678ccb | 103 | CRM.$(function($) { |
c720e2e2 | 104 | //FIX ME: by default load 2 blocks and hide add and delete links |
105 | //we should make additional block function more flexible to set max block limit | |
f16f7f75 | 106 | buildBlocks('Email'); |
107 | buildBlocks('Phone'); | |
108 | ||
62a0f5a1 CW |
109 | var $form = $('form.{/literal}{$form.formClass}{literal}'), |
110 | locBlockId = {/literal}"{$form.loc_event_id.value.0}"{literal}; | |
111 | ||
112 | displayMessage({/literal}{$locUsed}{literal}); | |
113 | ||
f16f7f75 | 114 | // build blocks only if it is not built |
115 | function buildBlocks(element) { | |
32678ccb | 116 | if (!$('[id='+ element +'_Block_2]').length) { |
f16f7f75 | 117 | buildAdditionalBlocks(element, 'CRM_Event_Form_ManageEvent_Location'); |
118 | } | |
119 | } | |
120 | ||
121 | hideAddDeleteLinks('Email'); | |
122 | hideAddDeleteLinks('Phone'); | |
123 | function hideAddDeleteLinks(element) { | |
62a0f5a1 CW |
124 | $('#add'+ element, $form).hide(); |
125 | $('[id='+ element +'_Block_2] a:last', $form).hide(); | |
c720e2e2 | 126 | } |
127 | ||
62a0f5a1 | 128 | $('#loc_event_id', $form).change(function() { |
32678ccb | 129 | $.ajax({ |
6a488035 | 130 | url: CRM.url('civicrm/ajax/locBlock', 'reset=1'), |
32678ccb | 131 | data: {'lbid': $(this).val()}, |
6a488035 TO |
132 | dataType: 'json', |
133 | success: function(data) { | |
32678ccb | 134 | var selectLocBlockId = $('#loc_event_id').val(); |
62a0f5a1 CW |
135 | // Only change state when options are loaded |
136 | if (data.address_1_state_province_id) { | |
137 | var defaultState = data.address_1_state_province_id; | |
138 | $('#address_1_state_province_id', $form).one('crmOptionsUpdated', function() { | |
139 | $(this).val(defaultState).change(); | |
140 | }); | |
141 | delete data.address_1_state_province_id; | |
142 | } | |
6a488035 TO |
143 | for(i in data) { |
144 | if ( i == 'count_loc_used' ) { | |
62a0f5a1 CW |
145 | if ( ((selectLocBlockId == locBlockId) && data.count_loc_used > 1) || |
146 | ((selectLocBlockId != locBlockId) && data.count_loc_used > 0) ) { | |
147 | displayMessage(data.count_loc_used); | |
6a488035 | 148 | } else { |
62a0f5a1 | 149 | displayMessage(0); |
6a488035 TO |
150 | } |
151 | } else { | |
62a0f5a1 | 152 | $('#'+i, $form).val(data[i]).change(); |
6a488035 TO |
153 | } |
154 | } | |
155 | } | |
156 | }); | |
157 | return false; | |
158 | }); | |
6a488035 | 159 | |
62a0f5a1 CW |
160 | function showLocFields(clear) { |
161 | var createNew = document.getElementsByName("location_option")[0].checked; | |
162 | if (createNew) { | |
163 | $('#existingLoc', $form).hide(); | |
164 | //clear all location fields values. | |
165 | if (clear !== false) { | |
166 | $(":input[id *= 'address_1_'], :input[id *= 'email_1_'], :input[id *= 'phone_1_']", $form).val("").change(); | |
167 | {/literal}{if $config->defaultContactCountry} | |
168 | {if $config->defaultContactStateProvince} | |
169 | // Set default state once options are loaded | |
170 | var defaultState = {$config->defaultContactStateProvince} | |
171 | {literal} | |
172 | $('#address_1_state_province_id', $form).one('crmOptionsUpdated', function() { | |
173 | $(this).val(defaultState).change(); | |
174 | }); | |
175 | {/literal} | |
176 | {/if} | |
177 | // Set default country | |
178 | $('#address_1_country_id', $form).val({$config->defaultContactCountry}).change(); | |
179 | {/if}{literal} | |
180 | } | |
181 | displayMessage(0); | |
182 | } else { | |
183 | $('#existingLoc', $form).show(); | |
184 | if (clear !== false) { | |
185 | $('#loc_event_id', $form).change(); | |
186 | } | |
187 | } | |
188 | } | |
31037a42 | 189 | |
62a0f5a1 CW |
190 | $('input[name=location_option]').click(showLocFields); |
191 | showLocFields(false); | |
192 | ||
193 | function displayMessage(count) { | |
194 | if (count) { | |
195 | var msg = {/literal}'{ts escape="js" 1="%1"}This location is used by %1 other events. Modifying location information will change values for all events.{/ts}'{literal}; | |
196 | $('#locUsedMsg', $form).text(ts(msg, {1: count})).addClass('status'); | |
197 | } else { | |
198 | $('#locUsedMsg', $form).text(' ').removeClass('status'); | |
199 | } | |
200 | } | |
201 | }); | |
6a488035 TO |
202 | {/literal} |
203 | </script> | |
204 | {/if} | |
205 | ||
6a488035 | 206 | {/if} {* add block if end*} |