Skip to content

Commit a007dd5

Browse files
committed
add start_date support in js
1 parent c293362 commit a007dd5

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

src/bundle/Resources/public/js/scripts/core/date.time.range.single.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@ import { setInstance } from '../helpers/object.instances';
33

44
const { ibexa, document } = window;
55

6-
const SECONDS_IN_DAY = 86400;
7-
86
class DateTimeRangeSingle {
97
constructor(config) {
108
this.container = config.container;
119
this.dateTimePickerInputWrapper = this.container.querySelector('.ibexa-date-time-range-single__date-time-picker-input-wrapper');
1210

13-
const { periodSelector, endSelector } = this.container.dataset;
11+
const { periodSelector, startSelector, endSelector } = this.container.dataset;
1412
this.periodInput = document.querySelector(periodSelector);
13+
this.startInput = document.querySelector(startSelector);
1514
this.endInput = document.querySelector(endSelector);
1615

1716
const customDateConfig = config.dateConfig || {};
@@ -37,19 +36,22 @@ class DateTimeRangeSingle {
3736
if (dates.length === 2) {
3837
const startDate = this.getUnixTimestampUTC(dates[0]);
3938
const endDate = this.getUnixTimestampUTC(dates[1]);
40-
const days = Math.floor((endDate - startDate) / SECONDS_IN_DAY);
4139

42-
this.periodInput.value = `P0Y0M${days}D`;
40+
this.periodInput.value = '';
4341
this.periodInput.dispatchEvent(new Event('change'));
4442
this.periodInput.dispatchEvent(new Event('input'));
4543

44+
this.startInput.value = startDate;
45+
this.startInput.dispatchEvent(new Event('change'));
46+
this.startInput.dispatchEvent(new Event('input'));
47+
4648
this.endInput.value = endDate;
4749
this.endInput.dispatchEvent(new Event('change'));
4850
this.endInput.dispatchEvent(new Event('input'));
4951
} else if (dates.length === 0) {
50-
this.periodInput.value = '';
51-
this.periodInput.dispatchEvent(new Event('change'));
52-
this.periodInput.dispatchEvent(new Event('input'));
52+
this.startInput.value = '';
53+
this.startInput.dispatchEvent(new Event('change'));
54+
this.startInput.dispatchEvent(new Event('input'));
5355

5456
this.endInput.value = '';
5557
this.endInput.dispatchEvent(new Event('change'));

src/bundle/Resources/views/themes/admin/ui/component/date_time_range_single/date_time_range_single.twig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
~ (is_hidden|default(false) ? 'ibexa-date-time-range-single--hidden ')
66
~ attr.class|default(''))|trim,
77
'data-period-selector': period_input_selector,
8+
'data-start-selector': start_input_selector,
89
'data-end-selector': end_input_selector,
910
'data-start': start_date is defined and start_date is not null
1011
? start_date|date('Y-m-d H:i:s') : '',

src/bundle/Resources/views/themes/admin/ui/form_fields.html.twig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@
334334
start_date: form.parent.vars.data.lastModified.start_date|default(null),
335335
end_date: form.parent.vars.data.lastModified.end_date|default(null),
336336
period_input_selector: '#' ~ form.parent.last_modified.children.date_interval.vars.id,
337+
start_input_selector: '#' ~ form.parent.last_modified.children.start_date.vars.id,
337338
end_input_selector: '#' ~ form.parent.last_modified.children.end_date.vars.id,
338339
} %}
339340
{%- endblock -%}
@@ -348,6 +349,7 @@
348349
start_date: form.parent.vars.data.created.start_date|default(null),
349350
end_date: form.parent.vars.data.created.end_date|default(null),
350351
period_input_selector: '#' ~ form.parent.created.children.date_interval.vars.id,
352+
start_input_selector: '#' ~ form.parent.created.children.start_date.vars.id,
351353
end_input_selector: '#' ~ form.parent.created.children.end_date.vars.id,
352354
} %}
353355
{%- endblock -%}
@@ -362,6 +364,7 @@
362364
start_date: form.parent.vars.data.trashedInterval.start_date|default(null),
363365
end_date: form.parent.vars.data.trashedInterval.end_date|default(null),
364366
period_input_selector: '#' ~ form.parent.trashed_interval.children.date_interval.vars.id,
367+
start_input_selector: '#' ~ form.parent.trashed_interval.children.start_date.vars.id,
365368
end_input_selector: '#' ~ form.parent.trashed_interval.children.end_date.vars.id,
366369
} %}
367370
{%- endblock -%}

0 commit comments

Comments
 (0)