Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | {* |
2 | +--------------------------------------------------------------------+ | |
819d0d41 | 3 | | CiviCRM version 4.5 | |
6a488035 | 4 | +--------------------------------------------------------------------+ |
819d0d41 | 5 | | Copyright CiviCRM LLC (c) 2004-2014 | |
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 | {*common template for compose PDF letters*} | |
27 | {if $form.template.html} | |
28 | <table class="form-layout-compressed"> | |
29 | <tr> | |
4c71ccb4 | 30 | <td class="label-left">{$form.template.label}</td> |
6a488035 TO |
31 | <td>{$form.template.html}</td> |
32 | </tr> | |
4c71ccb4 RN |
33 | <tr> |
34 | <td class="label-left">{$form.subject.label}</td> | |
35 | <td>{$form.subject.html}</td> | |
36 | </tr> | |
37 | <tr> | |
38 | <td class="label-left">{$form.campaign_id.label}</td> | |
39 | <td>{$form.campaign_id.html}</td> | |
40 | </tr> | |
6a488035 TO |
41 | </table> |
42 | {/if} | |
43 | ||
44 | <div class="crm-accordion-wrapper collapsed"> | |
45 | <div class="crm-accordion-header"> | |
46 | {$form.pdf_format_header.html} | |
47 | </div> | |
48 | <div class="crm-accordion-body"> | |
49 | <div class="crm-block crm-form-block crm-pdf-format-form-block"> | |
50 | <table class="form-layout-compressed"> | |
51 | <tr> | |
a7916823 CW |
52 | <td class="label-left">{$form.format_id.label} {help id="id-pdf-format" file="CRM/Contact/Form/Task/PDFLetterCommon.hlp"}</td> |
53 | <td>{$form.format_id.html}</td> | |
54 | </tr> | |
6a488035 TO |
55 | <tr> |
56 | <td class="label-left">{$form.paper_size.label}</td><td>{$form.paper_size.html}</td> | |
57 | <td class="label-left">{$form.orientation.label}</td><td>{$form.orientation.html}</td> | |
58 | </tr> | |
59 | <tr> | |
60 | <td class="label-left">{$form.metric.label}</td><td>{$form.metric.html}</td> | |
61 | <td colspan="2"> </td> | |
62 | </tr> | |
63 | <tr> | |
64 | <td>{$form.paper_dimensions.html}</td><td id="paper_dimensions"> </td> | |
65 | <td colspan="2"> </td> | |
66 | </tr> | |
67 | <tr> | |
68 | <td class="label-left">{$form.margin_top.label}</td><td>{$form.margin_top.html}</td> | |
69 | <td class="label-left">{$form.margin_bottom.label}</td><td>{$form.margin_bottom.html}</td> | |
70 | </tr> | |
71 | <tr> | |
72 | <td class="label-left">{$form.margin_left.label}</td><td>{$form.margin_left.html}</td> | |
73 | <td class="label-left">{$form.margin_right.label}</td><td>{$form.margin_right.html}</td> | |
74 | </tr> | |
75 | </table> | |
76 | <div id="bindFormat">{$form.bind_format.html} {$form.bind_format.label}</div> | |
77 | <div id="updateFormat" style="display: none">{$form.update_format.html} {$form.update_format.label}</div> | |
78 | </div> | |
79 | </div> | |
80 | </div> | |
81 | ||
82 | <div class="crm-accordion-wrapper crm-html_email-accordion "> | |
83 | <div class="crm-accordion-header"> | |
84 | {$form.html_message.label} | |
85 | </div><!-- /.crm-accordion-header --> | |
86 | <div class="crm-accordion-body"> | |
ac0a3db5 CW |
87 | <div class="helpIcon" id="helphtml"> |
88 | <input class="crm-token-selector big" data-field="html_message" /> | |
89 | {help id="id-token-html" tplFile=$tplFile isAdmin=$isAdmin editor=$editor file="CRM/Contact/Form/Task/Email.hlp"} | |
90 | </div> | |
6a488035 TO |
91 | <div class="clear"></div> |
92 | <div class='html'> | |
93 | {if $editor EQ 'textarea'} | |
149fb291 | 94 | <div class="help description">{ts}NOTE: If you are composing HTML-formatted messages, you may want to enable a Rich Text (WYSIWYG) editor (Administer » Customize Data & Screens » Display Preferences).{/ts}</div> |
6a488035 TO |
95 | {/if} |
96 | {$form.html_message.html}<br /> | |
97 | </div> | |
98 | ||
99 | <div id="editMessageDetails"> | |
100 | <div id="updateDetails" > | |
101 | {$form.updateTemplate.html} {$form.updateTemplate.label} | |
102 | </div> | |
103 | <div> | |
104 | {$form.saveTemplate.html} {$form.saveTemplate.label} | |
105 | </div> | |
106 | </div> | |
107 | ||
108 | <div id="saveDetails" class="section"> | |
109 | <div class="label">{$form.saveTemplateName.label}</div> | |
110 | <div class="content">{$form.saveTemplateName.html|crmAddClass:huge}</div> | |
111 | </div> | |
112 | ||
113 | </div><!-- /.crm-accordion-body --> | |
114 | </div><!-- /.crm-accordion-wrapper --> | |
115 | ||
116 | {include file="CRM/Mailing/Form/InsertTokens.tpl"} | |
117 | ||
118 | {literal} | |
119 | <script type="text/javascript"> | |
3cc60a06 | 120 | CRM.$(function($) { |
a7916823 CW |
121 | var $form = $('form#{/literal}{$form.formName}{literal}'); |
122 | $('#format_id', $form).on('change', function() { | |
123 | selectFormat($(this).val()); | |
124 | }); | |
125 | $().crmAccordions(); | |
6a488035 TO |
126 | }); |
127 | ||
128 | var currentWidth; | |
129 | var currentHeight; | |
130 | var currentMetric = document.getElementById('metric').value; | |
131 | showBindFormatChkBox(); | |
132 | selectPaper( document.getElementById('paper_size').value ); | |
133 | ||
6a488035 TO |
134 | function showBindFormatChkBox() |
135 | { | |
136 | var templateExists = true; | |
137 | if ( document.getElementById('template') == null || document.getElementById('template').value == '' ) { | |
138 | templateExists = false; | |
139 | } | |
a7916823 | 140 | var formatExists = !!cj('#format_id').val(); |
6a488035 TO |
141 | if ( templateExists && formatExists ) { |
142 | document.getElementById("bindFormat").style.display = "block"; | |
143 | } else if ( formatExists && document.getElementById("saveTemplate") != null && document.getElementById("saveTemplate").checked ) { | |
144 | document.getElementById("bindFormat").style.display = "block"; | |
145 | var yes = confirm( '{/literal}{$useThisPageFormat}{literal}' ); | |
146 | if ( yes ) { | |
147 | document.getElementById("bind_format").checked = true; | |
148 | } | |
149 | } else { | |
150 | document.getElementById("bindFormat").style.display = "none"; | |
151 | document.getElementById("bind_format").checked = false; | |
152 | } | |
153 | } | |
154 | ||
155 | function showUpdateFormatChkBox() | |
156 | { | |
a7916823 CW |
157 | if (cj('#format_id').val()) { |
158 | cj("#updateFormat").show(); | |
6a488035 TO |
159 | } |
160 | } | |
161 | ||
a7916823 CW |
162 | function updateFormatLabel() { |
163 | cj('.pdf-format-header-label').html(cj('#format_id option:selected').text() || cj('#format_id').attr('placeholder')); | |
6a488035 TO |
164 | } |
165 | ||
a7916823 CW |
166 | updateFormatLabel(); |
167 | ||
6a488035 TO |
168 | function selectFormat( val, bind ) |
169 | { | |
a7916823 CW |
170 | updateFormatLabel(); |
171 | if (!val) { | |
6a488035 TO |
172 | val = 0; |
173 | bind = false; | |
174 | } | |
175 | var dataUrl = {/literal}"{crmURL p='civicrm/ajax/pdfFormat' h=0 }"{literal}; | |
176 | cj.post( dataUrl, {formatId: val}, function( data ) { | |
177 | cj("#format_id").val( data.id ); | |
178 | cj("#paper_size").val( data.paper_size ); | |
179 | cj("#orientation").val( data.orientation ); | |
180 | cj("#metric").val( data.metric ); | |
181 | cj("#margin_top").val( data.margin_top ); | |
182 | cj("#margin_bottom").val( data.margin_bottom ); | |
183 | cj("#margin_left").val( data.margin_left ); | |
184 | cj("#margin_right").val( data.margin_right ); | |
185 | selectPaper( data.paper_size ); | |
a7916823 | 186 | cj("#update_format").prop({checked: false}).parent().hide(); |
6a488035 TO |
187 | document.getElementById('bind_format').checked = bind; |
188 | showBindFormatChkBox(); | |
189 | }, 'json'); | |
190 | } | |
191 | ||
192 | function selectPaper( val ) | |
193 | { | |
194 | dataUrl = {/literal}"{crmURL p='civicrm/ajax/paperSize' h=0 }"{literal}; | |
195 | cj.post( dataUrl, {paperSizeName: val}, function( data ) { | |
196 | cj("#paper_size").val( data.name ); | |
197 | metric = document.getElementById('metric').value; | |
198 | currentWidth = convertMetric( data.width, data.metric, metric ); | |
199 | currentHeight = convertMetric( data.height, data.metric, metric ); | |
200 | updatePaperDimensions( ); | |
201 | }, 'json'); | |
202 | } | |
203 | ||
204 | function selectMetric( metric ) | |
205 | { | |
206 | convertField( 'margin_top', currentMetric, metric ); | |
207 | convertField( 'margin_bottom', currentMetric, metric ); | |
208 | convertField( 'margin_left', currentMetric, metric ); | |
209 | convertField( 'margin_right', currentMetric, metric ); | |
210 | currentWidth = convertMetric( currentWidth, currentMetric, metric ); | |
211 | currentHeight = convertMetric( currentHeight, currentMetric, metric ); | |
212 | updatePaperDimensions( ); | |
213 | } | |
214 | ||
215 | function updatePaperDimensions( ) | |
216 | { | |
217 | metric = document.getElementById('metric').value; | |
218 | width = new String( currentWidth.toFixed( 2 ) ); | |
219 | height = new String( currentHeight.toFixed( 2 ) ); | |
220 | if ( document.getElementById('orientation').value == 'landscape' ) { | |
221 | width = new String( currentHeight.toFixed( 2 ) ); | |
222 | height = new String( currentWidth.toFixed( 2 ) ); | |
223 | } | |
224 | document.getElementById('paper_dimensions').innerHTML = parseFloat( width ) + ' ' + metric + ' x ' + parseFloat( height ) + ' ' + metric; | |
225 | currentMetric = metric; | |
226 | } | |
227 | ||
228 | function convertField( id, from, to ) | |
229 | { | |
230 | val = document.getElementById( id ).value; | |
231 | if ( val == '' || isNaN( val ) ) return; | |
232 | val = convertMetric( val, from, to ); | |
233 | val = new String( val.toFixed( 3 ) ); | |
234 | document.getElementById( id ).value = parseFloat( val ); | |
235 | } | |
236 | ||
237 | function convertMetric( value, from, to ) { | |
238 | switch( from + to ) { | |
239 | case 'incm': return value * 2.54; | |
240 | case 'inmm': return value * 25.4; | |
241 | case 'inpt': return value * 72; | |
242 | case 'cmin': return value / 2.54; | |
243 | case 'cmmm': return value * 10; | |
244 | case 'cmpt': return value * 72 / 2.54; | |
245 | case 'mmin': return value / 25.4; | |
246 | case 'mmcm': return value / 10; | |
247 | case 'mmpt': return value * 72 / 25.4; | |
248 | case 'ptin': return value / 72; | |
249 | case 'ptcm': return value * 2.54 / 72; | |
250 | case 'ptmm': return value * 25.4 / 72; | |
251 | } | |
252 | return value; | |
253 | } | |
254 | ||
255 | function showSaveDetails(chkbox) { | |
256 | var formatSelected = ( document.getElementById('format_id').value > 0 ); | |
257 | var templateSelected = ( document.getElementById('template') != null && document.getElementById('template').value > 0 ); | |
258 | if (chkbox.checked) { | |
259 | document.getElementById("saveDetails").style.display = "block"; | |
260 | document.getElementById("saveTemplateName").disabled = false; | |
261 | if ( formatSelected && ! templateSelected ) { | |
262 | document.getElementById("bindFormat").style.display = "block"; | |
263 | var yes = confirm( '{/literal}{$useSelectedPageFormat}{literal}' ); | |
264 | if ( yes ) { | |
265 | document.getElementById("bind_format").checked = true; | |
266 | } | |
267 | } | |
268 | } else { | |
269 | document.getElementById("saveDetails").style.display = "none"; | |
270 | document.getElementById("saveTemplateName").disabled = true; | |
271 | if ( ! templateSelected ) { | |
272 | document.getElementById("bindFormat").style.display = "none"; | |
273 | document.getElementById("bind_format").checked = false; | |
274 | } | |
275 | } | |
276 | } | |
277 | ||
278 | </script> | |
279 | {/literal} | |
280 |