Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | {* |
2 | +--------------------------------------------------------------------+ | |
1188c7a8 | 3 | | Copyright CiviCRM LLC. All rights reserved. | |
6a488035 | 4 | | | |
1188c7a8 TO |
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 | | |
6a488035 TO |
8 | +--------------------------------------------------------------------+ |
9 | *} | |
6a488035 TO |
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} | |
31e83de7 E |
29 | {if !$elementId} |
30 | {assign var='elementId' value=$form.$elementName.id} | |
31 | {/if} | |
6a488035 TO |
32 | {assign var="timeElement" value=$elementName|cat:'_time'} |
33 | {$form.$elementName.html} | |
34 | {/if} | |
35 | ||
d348460a | 36 | {* CRM-15804 - CiviEvent Date Picker broken in modal dialog *} |
9ea58cec | 37 | {assign var='displayDate' value=$elementId|cat:"_display"|cat:"_$string"|uniqid} |
6a488035 TO |
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 | {$form.field.$elementIndex.$tElement.label} {$form.field.$elementIndex.$tElement.html|crmAddClass:six} | |
45 | {elseif $timeElement AND !$tElement} | |
46 | {if $form.$timeElement.label} | |
47 | {$form.$timeElement.label} | |
48 | {/if} | |
49 | {$form.$timeElement.html|crmAddClass:six} | |
50 | {/if} | |
51 | ||
52 | {if $action neq 1028} | |
44f15f74 | 53 | <a href="#" class="crm-hover-button crm-clear-link" title="{ts}Clear{/ts}"><i class="crm-i fa-times"></i></a> |
6a488035 TO |
54 | {/if} |
55 | ||
56 | <script type="text/javascript"> | |
57 | {literal} | |
3cc60a06 | 58 | CRM.$(function($) { |
6a488035 | 59 | {/literal} |
7e34e265 CW |
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)'); | |
4466c37a CW |
62 | {literal} |
63 | if (!$dateElement.length) { | |
64 | return; | |
65 | } | |
66 | {/literal} | |
6a488035 | 67 | {if $timeElement} |
7e34e265 CW |
68 | var $timeElement = $dateElement.siblings("#{$timeElement}"); |
69 | var time_format = $timeElement.attr('timeFormat'); | |
6a488035 | 70 | {literal} |
7e34e265 | 71 | $timeElement.timeEntry({ show24Hours : time_format, spinnerImage: '' }); |
6a488035 | 72 | {/literal} |
7e34e265 CW |
73 | {else} |
74 | var $timeElement = $(); | |
6a488035 | 75 | {/if} |
7e34e265 CW |
76 | var currentYear = new Date().getFullYear(), |
77 | $originalElement = $dateElement.siblings('#{$elementId}').hide(), | |
78 | date_format = $originalElement.attr('format'), | |
79 | altDateFormat = 'mm/dd/yy'; | |
6a488035 | 80 | {literal} |
6a488035 TO |
81 | |
82 | if ( !( ( date_format == 'M yy' ) || ( date_format == 'yy' ) || ( date_format == 'yy-mm' ) ) ) { | |
7e34e265 | 83 | $dateElement.addClass( 'dpDate' ); |
6a488035 TO |
84 | } |
85 | ||
5243c4d2 CW |
86 | var yearRange = (currentYear - parseInt($originalElement.attr('startOffset'))) + |
87 | ':' + currentYear + parseInt($originalElement.attr('endOffset')), | |
88 | startRangeYr = currentYear - parseInt($originalElement.attr('startOffset')), | |
7e34e265 | 89 | endRangeYr = currentYear + parseInt($originalElement.attr('endOffset')); |
0e9d07d2 | 90 | |
7e34e265 | 91 | $dateElement.datepicker({ |
5243c4d2 CW |
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 | }); | |
6a488035 | 102 | |
5243c4d2 CW |
103 | // format display date |
104 | var displayDateValue = $.datepicker.formatDate(date_format, $.datepicker.parseDate(altDateFormat, $originalElement.val())); | |
68d6459e | 105 | //support unsaved-changes warning: CRM-14353 |
5243c4d2 | 106 | $dateElement.val(displayDateValue).data('crm-initial-value', displayDateValue); |
6a488035 | 107 | |
7e34e265 CW |
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); | |
bcb4280c | 112 | }); |
7e34e265 | 113 | $originalElement.change(); |
bcb4280c | 114 | }); |
6a488035 | 115 | |
6a488035 TO |
116 | {/literal} |
117 | </script> |