2 +--------------------------------------------------------------------+
3 | Copyright CiviCRM LLC. All rights reserved. |
5 | This work is published under the GNU AGPLv3 license with some |
6 | permitted exceptions and without any warranty. For full license |
7 | and copyright information, see https://civicrm.org/licensing |
8 +--------------------------------------------------------------------+
10 <script type="text/javascript">
11 cj('form.{$form.formClass}').data('tokens', {$tokens|@json_encode});
12 var text_message = null;
13 var html_message = null;
16 var isMailing = false;
18 {if $form.formName eq 'MessageTemplates'}
20 text_message = "msg_text";
21 html_message = "msg_html";
23 {elseif $form.formName eq 'Address'}
25 text_message = "mailing_format";
28 {elseif $form.formClass eq 'CRM_SMS_Form_Upload' || $form.formClass eq 'CRM_Contact_Form_Task_SMS'}
31 text_message = "sms_text_message";
36 text_message = "text_message";
37 html_message = (cj("#edit-html-message-value").length > 0) ? "edit-html-message-value" : "html_message";
42 {if $form.formName eq 'PDF'}
48 {if $templateSelected}
50 if ( document.getElementsByName(prefix + "saveTemplate")[0].checked ) {
51 document.getElementById(prefix + "template").selectedIndex = {/literal}{$templateSelected}{literal};
57 function showSaveUpdateChkBox(prefix) {
58 prefix = prefix || '';
59 if (document.getElementById(prefix + "template") == null) {
60 if (document.getElementsByName(prefix + "saveTemplate")[0].checked){
61 document.getElementById(prefix + "saveDetails").style.display = "block";
62 document.getElementById(prefix + "editMessageDetails").style.display = "block";
65 document.getElementById(prefix + "saveDetails").style.display = "none";
66 document.getElementById(prefix + "updateDetails").style.display = "none";
71 if (document.getElementsByName(prefix + "saveTemplate")[0].checked &&
72 document.getElementsByName(prefix + "updateTemplate")[0].checked == false) {
73 document.getElementById(prefix + "updateDetails").style.display = "none";
75 else if ( document.getElementsByName(prefix + "saveTemplate")[0].checked &&
76 document.getElementsByName(prefix + "updateTemplate")[0].checked ){
77 document.getElementById(prefix + "editMessageDetails").style.display = "block";
78 document.getElementById(pefix + "saveDetails").style.display = "block";
80 else if ( document.getElementsByName(prefix + "saveTemplate")[0].checked == false &&
81 document.getElementsByName(prefix + "updateTemplate")[0].checked ) {
82 document.getElementById(prefix + "saveDetails").style.display = "none";
83 document.getElementById(prefix + "editMessageDetails").style.display = "block";
86 document.getElementById(prefix + "saveDetails").style.display = "none";
87 document.getElementById(prefix + "updateDetails").style.display = "none";
91 function selectValue( val, prefix) {
92 document.getElementsByName(prefix + "saveTemplate")[0].checked = false;
93 document.getElementsByName(prefix + "updateTemplate")[0].checked = false;
94 showSaveUpdateChkBox(prefix);
96 if (document.getElementById("subject").length) {
97 document.getElementById("subject").value ="";
99 if (document.getElementById("subject").length) {
100 document.getElementById("subject").value ="";
103 if (prefix == 'SMS') {
104 document.getElementById("sms_text_message").value ="";
108 document.getElementById("text_message").value ="";
112 cj('.crm-html_email-accordion').show();
113 cj('.crm-document-accordion').hide();
114 cj('#document_type').closest('tr').show();
117 CRM.wysiwyg.setVal('#' + html_message, '');
119 showBindFormatChkBox();
124 var dataUrl = {/literal}"{crmURL p='civicrm/ajax/template' h=0 }"{literal};
126 cj.post( dataUrl, {tid: val}, function( data ) {
127 var hide = (data.document_body && isPDF) ? false : true;
128 cj('.crm-html_email-accordion, .crm-pdf-format-accordion').toggle(hide);
129 cj('.crm-document-accordion').toggle(!hide);
131 cj('#document_type').closest('tr').toggle(hide);
133 // Unset any uploaded document when any template is chosen
134 if (cj('#document.file').length) {
135 cj('#document_file').val('');
139 cj("#subject").val( data.subject );
140 cj("#document-preview").html(data.document_body).parent().css({'background': 'white'});
145 if (prefix == "SMS") {
146 text_message = "sms_text_message";
148 if ( data.msg_text ) {
149 cj("#"+text_message).val( data.msg_text );
150 cj("div.text").show();
151 cj(".head").find('span').removeClass().addClass('ui-icon ui-icon-triangle-1-s');
152 cj("#helptext").show();
155 cj("#"+text_message).val("");
159 if (prefix == "SMS") {
163 cj("#subject").val( data.subject );
166 CRM.wysiwyg.setVal('#' + html_message, data.msg_html || '');
169 var bind = data.pdf_format_id ? true : false ;
170 selectFormat( data.pdf_format_id, bind );
172 document.getElementById("bindFormat").style.display = "none";
179 document.getElementById(prefix + "editMessageDetails").style.display = "block";
181 function verify(select, prefix) {
182 prefix = prefix || '';
183 if (document.getElementsByName(prefix + "saveTemplate")[0].checked == false) {
184 document.getElementById(prefix + "saveDetails").style.display = "none";
186 document.getElementById(prefix + "editMessageDetails").style.display = "block";
188 var templateExists = true;
189 if (document.getElementById(prefix + "template") == null) {
190 templateExists = false;
193 if (templateExists && document.getElementById(prefix + "template").value) {
194 document.getElementById(prefix + "updateDetails").style.display = '';
197 document.getElementById(prefix + "updateDetails").style.display = 'none';
200 document.getElementById(prefix + "saveTemplateName").disabled = false;
203 function showSaveDetails(chkbox, prefix) {
204 prefix = prefix || '';
205 if (chkbox.checked) {
206 document.getElementById(prefix + "saveDetails").style.display = "block";
207 document.getElementById(prefix + "saveTemplateName").disabled = false;
210 document.getElementById(prefix + "saveDetails").style.display = "none";
211 document.getElementById(prefix + "saveTemplateName").disabled = true;
215 if (cj("#sms_text_message").length) {
216 showSaveUpdateChkBox('SMS');
218 if (cj("#text_message").length) {
219 showSaveUpdateChkBox();
222 cj('#' + html_message).on('focus change', verify);
226 function insertToken() {
228 token = $(this).val(),
229 field = $(this).data('field');
230 if (field.indexOf('html') < 0) {
231 field = textMsgID($(this));
233 CRM.wysiwyg.insert('#' + field, token);
234 $(this).select2('val', '');
240 function textMsgID(obj) {
241 if (obj.parents().is("#sms")) {
242 field = 'sms #' + obj.data('field');
244 else if(obj.parents().is("#email")) {
245 field = 'email #' + obj.data('field');
248 field = obj.data('field');
254 // Initialize token selector widgets
255 var form = $('form.{/literal}{$form.formClass}{literal}');
256 $('input.crm-token-selector', form)
257 .addClass('crm-action-menu fa-code')
260 data: form.data('tokens'),
261 placeholder: '{/literal}{ts escape='js'}Tokens{/ts}{literal}'
264 $('.accordion .head').addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ")
265 .hover( function() { $(this).addClass( "ui-state-hover");
266 }, function() { $(this).removeClass( "ui-state-hover");
267 }).bind('click', function() {
268 var checkClass = $(this).find('span').attr( 'class' );
269 var len = checkClass.length;
270 if ( checkClass.substring( len - 1, len ) == 's' ) {
271 $(this).find('span').removeClass().addClass('ui-icon ui-icon-triangle-1-e');
272 $("span#help"+$(this).find('span').attr('id')).hide();
275 $(this).find('span').removeClass().addClass('ui-icon ui-icon-triangle-1-s');
276 $("span#help"+$(this).find('span').attr('id')).show();
278 $(this).next().toggle(); return false;
280 $('span#html').removeClass().addClass('ui-icon ui-icon-triangle-1-s');
281 $("div.html").show();
284 $("div.text").show();
287 function setSignature() {
288 var emailID = $("#fromEmailAddress").val( );
289 if ( !isNaN( emailID ) ) {
290 var dataUrl = {/literal}"{crmURL p='civicrm/ajax/signature' h=0 }"{literal};
291 $.post( dataUrl, {emailID: emailID}, function( data ) {
293 if (data.signature_text) {
294 var textMessage = $("#"+ text_message).val( ) + '\n\n--\n' + data.signature_text;
295 $("#"+ text_message).val( textMessage );
298 if (data.signature_html) {
299 var htmlMessage = CRM.wysiwyg.getVal("#" + html_message) + '<br/><br/>--<br/>' + data.signature_html;
300 CRM.wysiwyg.setVal("#" + html_message, htmlMessage);
305 $("#fromEmailAddress", form).change(setSignature);