Merge pull request #15734 from seamuslee001/remove_activity_option_join_custom_search
[civicrm-core.git] / templates / CRM / common / jcalendar.tpl
1 {*
2 +--------------------------------------------------------------------+
3 | Copyright CiviCRM LLC. All rights reserved. |
4 | |
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 +--------------------------------------------------------------------+
9 *}
10 {if $batchUpdate}
11 {assign var='elementId' value=$form.field.$elementIndex.$elementName.id}
12 {assign var="tElement" value=$elementName|cat:"_time"}
13 {assign var="timeElement" value=field_`$elementIndex`_`$elementName`_time}
14 {$form.field.$elementIndex.$elementName.html}
15 {elseif $elementIndex}
16 {assign var='elementId' value=$form.$elementName.$elementIndex.id}
17 {assign var="timeElement" value=$elementName|cat:"_time.$elementIndex"}
18 {$form.$elementName.$elementIndex.html}
19 {elseif $blockId and $blockSection}
20 {assign var='elementId' value=$form.$blockSection.$blockId.$elementName.id}
21 {assign var="tElement" value=`$elementName`_time}
22 {$form.$blockSection.$blockId.$elementName.html}
23 {assign var="timeElement" value=`$blockSection`_`$blockId`_`$elementName`_time}
24 {if $tElement}
25   {$form.$blockSection.$blockId.$tElement.label}
26   {$form.$blockSection.$blockId.$tElement.html|crmAddClass:six}
27 {/if}
28 {else}
29 {if !$elementId}
30 {assign var='elementId' value=$form.$elementName.id}
31 {/if}
32 {assign var="timeElement" value=$elementName|cat:'_time'}
33 {$form.$elementName.html}
34 {/if}
35
36 {* CRM-15804 - CiviEvent Date Picker broken in modal dialog *}
37 {assign var='displayDate' value=$elementId|cat:"_display"|cat:"_$string"|uniqid}
38
39 {if $action neq 1028}
40 <input type="text" name="{$displayDate}" id="{$displayDate}" class="dateplugin" autocomplete="off"/>
41 {/if}
42
43 {if $batchUpdate AND $timeElement AND $tElement}
44 &nbsp;&nbsp;{$form.field.$elementIndex.$tElement.label}&nbsp;&nbsp;{$form.field.$elementIndex.$tElement.html|crmAddClass:six}
45 {elseif $timeElement AND !$tElement}
46 {if $form.$timeElement.label}
47 &nbsp;&nbsp;{$form.$timeElement.label}&nbsp;&nbsp;
48 {/if}
49 {$form.$timeElement.html|crmAddClass:six}
50 {/if}
51
52 {if $action neq 1028}
53 <a href="#" class="crm-hover-button crm-clear-link" title="{ts}Clear{/ts}"><i class="crm-i fa-times"></i></a>
54 {/if}
55
56 <script type="text/javascript">
57 {literal}
58 CRM.$(function($) {
59 {/literal}
60 // Workaround for possible duplicate ids in the dom - select by name instead of id and exclude already initialized widgets
61 var $dateElement = $('input[name={$displayDate}].dateplugin:not(.hasDatepicker)');
62 {literal}
63 if (!$dateElement.length) {
64 return;
65 }
66 {/literal}
67 {if $timeElement}
68 var $timeElement = $dateElement.siblings("#{$timeElement}");
69 var time_format = $timeElement.attr('timeFormat');
70 {literal}
71 $timeElement.timeEntry({ show24Hours : time_format, spinnerImage: '' });
72 {/literal}
73 {else}
74 var $timeElement = $();
75 {/if}
76 var currentYear = new Date().getFullYear(),
77 $originalElement = $dateElement.siblings('#{$elementId}').hide(),
78 date_format = $originalElement.attr('format'),
79 altDateFormat = 'mm/dd/yy';
80 {literal}
81
82 if ( !( ( date_format == 'M yy' ) || ( date_format == 'yy' ) || ( date_format == 'yy-mm' ) ) ) {
83 $dateElement.addClass( 'dpDate' );
84 }
85
86 var yearRange = (currentYear - parseInt($originalElement.attr('startOffset'))) +
87 ':' + currentYear + parseInt($originalElement.attr('endOffset')),
88 startRangeYr = currentYear - parseInt($originalElement.attr('startOffset')),
89 endRangeYr = currentYear + parseInt($originalElement.attr('endOffset'));
90
91 $dateElement.datepicker({
92 closeAtTop: true,
93 dateFormat: date_format,
94 changeMonth: (date_format.indexOf('m') > -1),
95 changeYear: (date_format.indexOf('y') > -1),
96 altField: $originalElement,
97 altFormat: altDateFormat,
98 yearRange: yearRange,
99 minDate: new Date(startRangeYr, 1 - 1, 1),
100 maxDate: new Date(endRangeYr, 12 - 1, 31)
101 });
102
103 // format display date
104 var displayDateValue = $.datepicker.formatDate(date_format, $.datepicker.parseDate(altDateFormat, $originalElement.val()));
105 //support unsaved-changes warning: CRM-14353
106 $dateElement.val(displayDateValue).data('crm-initial-value', displayDateValue);
107
108 // Add clear button
109 $($timeElement).add($originalElement).add($dateElement).on('blur change', function() {
110 var vis = $dateElement.val() || $timeElement.val() ? '' : 'hidden';
111 $dateElement.siblings('.crm-clear-link').css('visibility', vis);
112 });
113 $originalElement.change();
114 });
115
116 {/literal}
117 </script>