diff --git a/src/screen.js b/src/screen.js index f6f1703b96..50f5daa5e5 100644 --- a/src/screen.js +++ b/src/screen.js @@ -558,32 +558,54 @@ 'class': 'row', id: id }); - var build_entry = function(placeholder) { + var build_entry = function(placeholder, el) { var entry = jQuery('
', { 'class': 'input-group input-group-sm' - }); + }).appendTo(el); + jQuery('', { + 'class': 'input-group-btn' + }).append(jQuery('', { + 'class': 'datepickerbutton btn btn-default', + type: 'button', + 'tabindex': -1, + 'aria-label': Sao.i18n.gettext("Open the calendar"), + 'title': Sao.i18n.gettext("Open the calendar"), + }).append(jQuery('', { + 'class': 'glyphicon glyphicon-calendar' + }))).appendTo(entry); jQuery('', { 'class': 'form-control input-sm', type: 'text', placeholder: placeholder, id: id + '-from' }).appendTo(entry); - jQuery('', { - 'class': 'input-group-btn' - }).append(jQuery('', { - 'class': 'datepickerbutton btn btn-default', - type: 'button' - }).append(jQuery('', { - 'class': 'glyphicon glyphicon-calendar' - }))).appendTo(entry); entry.datetimepicker({ - 'locale': moment.locale() + 'locale': moment.locale(), + 'keyBinds': null, }); entry.data('DateTimePicker').format(format); + var mousetrap = new Mousetrap(el[0]); + + mousetrap.bind(['enter', '='], function(e, combo) { + if (e.which != Sao.common.RETURN_KEYCODE) { + e.preventDefault(); + } + entry.data('DateTimePicker').date(moment()); + }); + + Sao.common.DATE_OPERATORS.forEach(function(operator) { + mousetrap.bind(operator[0], function(e, combo) { + e.preventDefault(); + var dp = entry.data('DateTimePicker'); + var date = dp.date(); + date.add(operator[1]); + dp.date(date); + }); + }); return entry; }; - this.from = build_entry(Sao.i18n.gettext("From")) - .appendTo(jQuery('', { + this.from = build_entry(Sao.i18n.gettext("From"), + jQuery('', { 'class': 'col-md-5' }).appendTo(this.el)); jQuery('', { @@ -591,8 +613,8 @@ }).append('..').appendTo(jQuery('', { 'class': 'col-md-1' }).appendTo(this.el)); - this.to = build_entry(Sao.i18n.gettext("To")) - .appendTo(jQuery('', { + this.to = build_entry(Sao.i18n.gettext("To"), + jQuery('', { 'class': 'col-md-5' }).appendTo(this.el)); },