Fix experiment table due date initialization [SCI-7649] (#4730)

* Fix experiment table due date initialization [SCI-7649]

* Fix due date overflow [SCI-7649]
This commit is contained in:
ajugo 2023-01-05 11:14:34 +01:00 committed by GitHub
parent 2ea5000ea5
commit 194c519a9b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 4 deletions

View file

@ -66,8 +66,8 @@ var ExperimnetTable = {
}, },
initDueDatePicker: function(data) { initDueDatePicker: function(data) {
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
$.each(data, (id, _) => { $.each(data, (_, row) => {
let element = `#calendarDueDate${id}`; let element = `#calendarDueDate${row.id}`;
let dueDateContainer = $(element).closest('#dueDateContainer'); let dueDateContainer = $(element).closest('#dueDateContainer');
let dateText = $(element).closest('.date-text'); let dateText = $(element).closest('.date-text');
let clearDate = $(element).closest('.datetime-container').find('.clear-date'); let clearDate = $(element).closest('.datetime-container').find('.clear-date');
@ -95,6 +95,15 @@ var ExperimnetTable = {
}); });
$(element).on('dp.show', function() { $(element).on('dp.show', function() {
var datePicker = $('.bootstrap-datetimepicker-widget.dropdown-menu')[0];
// show full datepicker menu for due date
if (datePicker.getBoundingClientRect().bottom > window.innerHeight) {
datePicker.scrollIntoView(false);
} else if (datePicker.getBoundingClientRect().top < 0) {
datePicker.scrollIntoView();
}
dateText.attr('data-original-title', '').tooltip('hide'); dateText.attr('data-original-title', '').tooltip('hide');
if (dueDateContainer.find('.due-date-label').data('due-date')) { if (dueDateContainer.find('.due-date-label').data('due-date')) {
clearDate.addClass('open'); clearDate.addClass('open');

View file

@ -6,12 +6,17 @@
ev.stopPropagation(); ev.stopPropagation();
let dt = $(this); let dt = $(this);
let options = { ignoreReadonly: true };
if (dt.data('DateTimePicker')) { if (dt.data('DateTimePicker')) {
dt.data('DateTimePicker').destroy(); dt.data('DateTimePicker').destroy();
} }
dt.datetimepicker({ ignoreReadonly: true }); if (dt.data('positioningVertical')) {
options.widgetPositioning = { vertical: dt.data('positioningVertical') };
}
dt.datetimepicker(options);
dt.data('DateTimePicker').show(); dt.data('DateTimePicker').show();
}); });

View file

@ -380,7 +380,6 @@
top: 0; top: 0;
visibility: hidden; visibility: hidden;
width: 16px; width: 16px;
z-index: 999;
&.open { &.open {
visibility: visible; visibility: visible;

View file

@ -21,6 +21,7 @@
data-date-locale="<%= I18n.locale %>" data-date-locale="<%= I18n.locale %>"
data-date-use-current="false" data-date-use-current="false"
data-date-orientation="left" data-date-orientation="left"
data-positioning-vertical="bottom"
value="<%= my_module.due_date ? l(my_module.due_date, format: :full) : '' %>"/> value="<%= my_module.due_date ? l(my_module.due_date, format: :full) : '' %>"/>
</div> </div>
<div class="fas fa-times-circle clear-date" <div class="fas fa-times-circle clear-date"