datetime Editor field - prev/next date selection bugs
datetime Editor field - prev/next date selection bugs
I've noticed a couple of bugs in the the built-in datetime field-type control of Editor.
They are both to do with current date selection being at the end of a month and the number of months in the date being more than is valid for the month of the new date selection.
The issues can be reproduced on http://live.datatables.net/ziziwuse/4/edit
Follow these steps to reproduce:
1. Click the Edit button
2. On the form, click the Date entry box, the datetime picker will open.
3. Use the Month prev icon to find Dec 2016, click on 31 Dec 2016, the datetime control will close.
4. Click on the input box again, click the Month Prev button once. Here you will see this first bug, you have to click it twice to get it to go to November.
5. Click the Month Prev button again to display November 2016. Now click November 30th. Here you will see the second bug, the date selected is 30 DECEMBER 2016, not 30 November 2016.
These issues will be encountered whenever the date selected is the last of the month and the next/prev month has less days in it.
The bugs are present in Editor 1.5.6 and Editor 1.6.1
The issue seen at Step 4 can be fixed by adding
that._correctMonth( that.s.display, that.s.display.getUTCMonth() - 1);
as line 7577 (Editor 1.6.1) so it reads
if ( parent.hasClass(classPrefix+'-iconLeft') ) {
// Previous month
that._correctMonth( that.s.display, that.s.display.getUTCMonth() - 1);
that._setTitle();
that._setCalander();
that.dom.input.focus();
}
The issue seen at Step 5 can be fixed by adding
that.s.d.setUTCDate(1);
at line 7613 (Editor 1.6.1) so it reads:
that.s.d.setUTCDate(1);
that.s.d.setUTCFullYear( button.data('year') );
that.s.d.setUTCMonth( button.data('month') );
that.s.d.setUTCDate( button.data('day') );
Roger.
Replies
There's also noticed another bug that I haven't looked into yet.
With a date such as 31 Jan 2016 selected, click the Next month button, then click 28 Feb 2016, it will chose 28 March 2016 instead.
Fix for the Next button issue in my previous comment:
Change the _correctMonth function in dataTables.editor.js to read:
Apologies for the quick fire posts.
Thanks very much for letting me know about these issues! I'll have them fixed in Editor 1.6.2.
Regards,
Allan