CRM-14258 - Use select2 for inserting tokens
[civicrm-core.git] / templates / CRM / Contact / Form / Task / PDFLetterCommon.tpl
1 {*
2 +--------------------------------------------------------------------+
3 | CiviCRM version 4.4 |
4 +--------------------------------------------------------------------+
5 | Copyright CiviCRM LLC (c) 2004-2013 |
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>
30 <td class="label-left">{$form.template.label}</td>
31 <td>{$form.template.html}</td>
32 </tr>
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>
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>
52 <td class="label-left">{$form.format_id.label}</td><td>{$form.format_id.html}{help id="id-pdf-format" file="CRM/Contact/Form/Task/PDFLetterCommon.hlp"}</td>
53 <td colspan="2">&nbsp;</td>
54 </tr>
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">&nbsp;</td>
62 </tr>
63 <tr>
64 <td>{$form.paper_dimensions.html}</td><td id="paper_dimensions">&nbsp;</td>
65 <td colspan="2">&nbsp;</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}&nbsp;{$form.bind_format.label}</div>
77 <div id="updateFormat" style="display: none">{$form.update_format.html}&nbsp;{$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">
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>
91 <div class="clear"></div>
92 <div class='html'>
93 {if $editor EQ 'textarea'}
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 &raquo; Customize Data & Screens &raquo; Display Preferences).{/ts}</div>
95 {/if}
96 {$form.html_message.html}<br />
97 </div>
98
99 <div id="editMessageDetails">
100 <div id="updateDetails" >
101 {$form.updateTemplate.html}&nbsp;{$form.updateTemplate.label}
102 </div>
103 <div>
104 {$form.saveTemplate.html}&nbsp;{$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">
120 cj(function() {
121 cj().crmAccordions();
122 });
123
124 var currentWidth;
125 var currentHeight;
126 var currentMetric = document.getElementById('metric').value;
127 showBindFormatChkBox();
128 selectPaper( document.getElementById('paper_size').value );
129
130 function showBindFormatChkBox()
131 {
132 var templateExists = true;
133 if ( document.getElementById('template') == null || document.getElementById('template').value == '' ) {
134 templateExists = false;
135 }
136 var formatExists = true;
137 if ( document.getElementById('format_id').value == 0 ) {
138 formatExists = false;
139 }
140 if ( templateExists && formatExists ) {
141 document.getElementById("bindFormat").style.display = "block";
142 } else if ( formatExists && document.getElementById("saveTemplate") != null && document.getElementById("saveTemplate").checked ) {
143 document.getElementById("bindFormat").style.display = "block";
144 var yes = confirm( '{/literal}{$useThisPageFormat}{literal}' );
145 if ( yes ) {
146 document.getElementById("bind_format").checked = true;
147 }
148 } else {
149 document.getElementById("bindFormat").style.display = "none";
150 document.getElementById("bind_format").checked = false;
151 }
152 }
153
154 function showUpdateFormatChkBox()
155 {
156 if ( document.getElementById('format_id').value != 0 ) {
157 document.getElementById("updateFormat").style.display = "block";
158 }
159 }
160
161 function hideUpdateFormatChkBox()
162 {
163 document.getElementById("update_format").checked = false;
164 document.getElementById("updateFormat").style.display = "none";
165 }
166
167 function selectFormat( val, bind )
168 {
169 if ( val == null || val == 0 ) {
170 val = 0;
171 bind = false;
172 }
173 var dataUrl = {/literal}"{crmURL p='civicrm/ajax/pdfFormat' h=0 }"{literal};
174 cj.post( dataUrl, {formatId: val}, function( data ) {
175 cj("#format_id").val( data.id );
176 cj("#paper_size").val( data.paper_size );
177 cj("#orientation").val( data.orientation );
178 cj("#metric").val( data.metric );
179 cj("#margin_top").val( data.margin_top );
180 cj("#margin_bottom").val( data.margin_bottom );
181 cj("#margin_left").val( data.margin_left );
182 cj("#margin_right").val( data.margin_right );
183 selectPaper( data.paper_size );
184 hideUpdateFormatChkBox();
185 document.getElementById('bind_format').checked = bind;
186 showBindFormatChkBox();
187 }, 'json');
188 }
189
190 function selectPaper( val )
191 {
192 dataUrl = {/literal}"{crmURL p='civicrm/ajax/paperSize' h=0 }"{literal};
193 cj.post( dataUrl, {paperSizeName: val}, function( data ) {
194 cj("#paper_size").val( data.name );
195 metric = document.getElementById('metric').value;
196 currentWidth = convertMetric( data.width, data.metric, metric );
197 currentHeight = convertMetric( data.height, data.metric, metric );
198 updatePaperDimensions( );
199 }, 'json');
200 }
201
202 function selectMetric( metric )
203 {
204 convertField( 'margin_top', currentMetric, metric );
205 convertField( 'margin_bottom', currentMetric, metric );
206 convertField( 'margin_left', currentMetric, metric );
207 convertField( 'margin_right', currentMetric, metric );
208 currentWidth = convertMetric( currentWidth, currentMetric, metric );
209 currentHeight = convertMetric( currentHeight, currentMetric, metric );
210 updatePaperDimensions( );
211 }
212
213 function updatePaperDimensions( )
214 {
215 metric = document.getElementById('metric').value;
216 width = new String( currentWidth.toFixed( 2 ) );
217 height = new String( currentHeight.toFixed( 2 ) );
218 if ( document.getElementById('orientation').value == 'landscape' ) {
219 width = new String( currentHeight.toFixed( 2 ) );
220 height = new String( currentWidth.toFixed( 2 ) );
221 }
222 document.getElementById('paper_dimensions').innerHTML = parseFloat( width ) + ' ' + metric + ' x ' + parseFloat( height ) + ' ' + metric;
223 currentMetric = metric;
224 }
225
226 function convertField( id, from, to )
227 {
228 val = document.getElementById( id ).value;
229 if ( val == '' || isNaN( val ) ) return;
230 val = convertMetric( val, from, to );
231 val = new String( val.toFixed( 3 ) );
232 document.getElementById( id ).value = parseFloat( val );
233 }
234
235 function convertMetric( value, from, to ) {
236 switch( from + to ) {
237 case 'incm': return value * 2.54;
238 case 'inmm': return value * 25.4;
239 case 'inpt': return value * 72;
240 case 'cmin': return value / 2.54;
241 case 'cmmm': return value * 10;
242 case 'cmpt': return value * 72 / 2.54;
243 case 'mmin': return value / 25.4;
244 case 'mmcm': return value / 10;
245 case 'mmpt': return value * 72 / 25.4;
246 case 'ptin': return value / 72;
247 case 'ptcm': return value * 2.54 / 72;
248 case 'ptmm': return value * 25.4 / 72;
249 }
250 return value;
251 }
252
253 function showSaveDetails(chkbox) {
254 var formatSelected = ( document.getElementById('format_id').value > 0 );
255 var templateSelected = ( document.getElementById('template') != null && document.getElementById('template').value > 0 );
256 if (chkbox.checked) {
257 document.getElementById("saveDetails").style.display = "block";
258 document.getElementById("saveTemplateName").disabled = false;
259 if ( formatSelected && ! templateSelected ) {
260 document.getElementById("bindFormat").style.display = "block";
261 var yes = confirm( '{/literal}{$useSelectedPageFormat}{literal}' );
262 if ( yes ) {
263 document.getElementById("bind_format").checked = true;
264 }
265 }
266 } else {
267 document.getElementById("saveDetails").style.display = "none";
268 document.getElementById("saveTemplateName").disabled = true;
269 if ( ! templateSelected ) {
270 document.getElementById("bindFormat").style.display = "none";
271 document.getElementById("bind_format").checked = false;
272 }
273 }
274 }
275
276 </script>
277 {/literal}
278