From a26cb87d6c70e4112bc9e394d64c6b1d3fa04fdf Mon Sep 17 00:00:00 2001 From: Thomas B. <thomas@roundcube.net> Date: Tue, 09 Jun 2015 16:07:44 -0400 Subject: [PATCH] Merge pull request #281 from alunduil/fix-dockerfile --- plugins/jqueryui/js/jquery-ui-accessible-datepicker.js | 38 ++++++++++++++++++++++++++++++-------- 1 files changed, 30 insertions(+), 8 deletions(-) diff --git a/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js b/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js index ae6ba37..ef7561c 100644 --- a/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js +++ b/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js @@ -74,13 +74,14 @@ .attr('aria-labelledby', inst.id + '-dp-title'); } else { - inst.dpDiv.attr('id', inst.id + '-dp-widget') + var widgetId = inst.dpDiv.attr('id') || inst.id + '-dp-widget'; + inst.dpDiv.attr('id', widgetId) .attr('aria-hidden', 'true') .attr('aria-labelledby', inst.id + '-dp-title'); $(inst.input).attr('aria-haspopup', 'true') .attr('aria-expanded', 'false') - .attr('aria-owns', inst.id + '-dp-widget'); + .attr('aria-owns', widgetId); } return inst; @@ -93,17 +94,23 @@ var that = this; // register additional keyboard events to control date selection with cursor keys - $(target).bind('keyup', function(event) { + $(target).unbind('keydown.datepicker-extended').bind('keydown.datepicker-extended', function(event) { var inc = 1; switch (event.keyCode) { case 109: + case 173: case 189: // "minus" inc = -1; + case 61: case 107: case 187: // "plus" + // do nothing if the input does not contain full date string + if (this.value.length < that._formatDate(inst, inst.selectedDay, inst.selectedMonth, inst.selectedYear).length) { + return true; + } that._adjustInstDate(inst, inc, 'D'); - that._selectDate(target, that._formatDate(inst, inst.selectedDay, inst.selectedMonth, inst.selectedYear)); - break; + that._selectDateRC(target, that._formatDate(inst, inst.selectedDay, inst.selectedMonth, inst.selectedYear)); + return false; case $.ui.keyCode.UP: case $.ui.keyCode.DOWN: @@ -192,7 +199,7 @@ .attr('tabindex', inst.inline ? '0' : '-1') .attr('role', 'grid') .attr('aria-readonly', 'true') - .attr('aria-activedescendant', activeCell.attr('id') || '') + .attr('aria-activedescendant', activeCell ? activeCell.attr('id') : '') .find('td').attr('role', 'gridcell').attr('aria-selected', 'false') .find('a').attr('tabindex', '-1'); @@ -206,8 +213,23 @@ inst.dpDiv.find('.ui-datepicker-calendar').focus(); inst._hasfocus = false; } - } + }, + _selectDateRC: function(id, dateStr) { + var target = $(id), inst = this._getInst(target[0]); + + dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); + if (inst.input) { + inst.input.val(dateStr); + } + this._updateAlternate(inst); + if (inst.input) { + inst.input.trigger("change"); // fire the change event + } + if (inst.inline) { + this._updateDatepicker(inst); + } + } }); -}(jQuery)); \ No newline at end of file +}(jQuery)); -- Gitblit v1.9.1