From 686ff4b538b3fc4f0c632b1d35a123b2ee3770cc Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Fri, 23 Jan 2015 03:49:47 -0500 Subject: [PATCH] Fix keyboard navigation and css in datepicker widget across many Firefox versions --- program/js/app.js | 31 ++++++++++++++++++++----------- 1 files changed, 20 insertions(+), 11 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 8e3f9cd..1028b77 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -1055,12 +1055,9 @@ url = {}; if (this.task == 'mail') { - url._mbox = this.env.mailbox; + url = {_mbox: this.env.mailbox, _search: this.env.search_request}; if (props) url._to = props; - // also send search request so we can go back to search result after message is sent - if (this.env.search_request) - url._search = this.env.search_request; } // modify url if we're in addressbook else if (this.task == 'addressbook') { @@ -1155,7 +1152,7 @@ case 'reply-list': case 'reply': if (uid = this.get_single_uid()) { - url = {_reply_uid: uid, _mbox: this.get_message_mailbox(uid)}; + url = {_reply_uid: uid, _mbox: this.get_message_mailbox(uid), _search: this.env.search_request}; if (command == 'reply-all') // do reply-list, when list is detected and popup menu wasn't used url._all = (!props && this.env.reply_all_mode == 1 && this.commands['reply-list'] ? 'list' : 'all'); @@ -1957,7 +1954,7 @@ // attach events $.each(fn, function(i, f) { row[i].onclick = function(e) { f(e); return rcube_event.cancel(e); }; - if (bw.touch) { + if (bw.touch && row[i].addEventListener) { row[i].addEventListener('touchend', function(e) { if (e.changedTouches.length == 1) { f(e); @@ -2487,6 +2484,16 @@ selection.push(selected[i]); this.message_list.selection = selection; + + // reset preview frame, if currently previewed message is not selected (has been removed) + try { + var win = this.get_frame_window(this.env.contentframe), + id = win.rcmail.env.uid; + + if (id && $.inArray(id, selection) < 0) + this.show_contentframe(false); + } + catch (e) {}; }; // expand all threads with unread children @@ -3974,7 +3981,6 @@ this.local_storage_remove_item('compose.index'); }; - this.change_identity = function(obj, show_sig) { if (!obj || !obj.options) @@ -4343,6 +4349,7 @@ (this.env.search_request && (this.env.search_scope || 'base') != 'base'); }; + // action executed after mail is sent this.sent_successfully = function(type, msg, folders) { this.display_message(msg, type); @@ -4351,11 +4358,13 @@ if (this.env.extwin) { this.lock_form(this.gui_objects.messageform); - var rc = this.opener(); + var filter = {task: 'mail', action: ''}, + rc = this.opener(false, filter) || this.opener(true, filter); + if (rc) { rc.display_message(msg, type); // refresh the folder where sent message was saved or replied message comes from - if (folders && rc.env.task == 'mail' && rc.env.action == '' && $.inArray(rc.env.mailbox, folders) >= 0) { + if (folders && $.inArray(rc.env.mailbox, folders) >= 0) { rc.command('checkmail'); } } @@ -5164,10 +5173,10 @@ dateFormat: this.env.date_format, changeMonth: true, changeYear: true, - yearRange: '-100:+10', + yearRange: '-120:+10', showOtherMonths: true, selectOtherMonths: true, - onSelect: function(dateText) { $(this).focus().val(dateText) } +// onSelect: function(dateText) { $(this).focus().val(dateText); } }); $('input.datepicker').datepicker(); } -- Gitblit v1.9.1