Follow-up b446a3b9: don't auto-close DateInputWidget too early
authorRoan Kattouw <roan.kattouw@gmail.com>
Mon, 31 Jul 2017 19:22:59 +0000 (12:22 -0700)
committerRoan Kattouw <roan.kattouw@gmail.com>
Mon, 31 Jul 2017 19:22:59 +0000 (12:22 -0700)
Clicking on a month does not mean that the user has made a selection,
it only means that if we are in { precision: 'month' } mode.
In { precision: 'day' } mode, clicking a month is navigational,
so don't auto-close in that case.

Bug: T172041
Change-Id: I16a3e15a3b69844ff866fc09ba6a9268e85b2930

resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.js

index ce9cf36..f10c93d 100644 (file)
         * @return {boolean} False to cancel the default event
         */
        mw.widgets.DateInputWidget.prototype.onCalendarClick = function ( e ) {
+               var targetClass = this.calendar.getPrecision() === 'month' ?
+                       'mw-widget-calendarWidget-month' :
+                       'mw-widget-calendarWidget-day';
                if (
                        !this.isDisabled() &&
                        e.which === 1 &&
-                       (
-                               $( e.target ).hasClass( 'mw-widget-calendarWidget-day' ) ||
-                               $( e.target ).hasClass( 'mw-widget-calendarWidget-month' )
-                       )
+                       $( e.target ).hasClass( targetClass )
                ) {
                        this.deactivate( true );
                        return false;