summaryrefslogtreecommitdiff
path: root/program/js
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2014-05-07 17:34:28 +0200
committerThomas Bruederli <thomas@roundcube.net>2014-05-07 17:34:28 +0200
commitb2992dd2283c3d0ac95f3293497dfaed0493f607 (patch)
tree038053fb7e932450abb4151ceb053be2a8311b8a /program/js
parent184ed2efe2258579c886de337446fcbb05f5faf4 (diff)
Further accessibility improvements regarding keyboard navigation and document structure
Diffstat (limited to 'program/js')
-rw-r--r--program/js/app.js14
1 files changed, 12 insertions, 2 deletions
diff --git a/program/js/app.js b/program/js/app.js
index fecd5a0ee..11236d0cb 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -197,7 +197,7 @@ function rcube_webmail()
// enable general commands
this.enable_command('close', 'logout', 'mail', 'addressbook', 'settings', 'save-pref',
- 'compose', 'undo', 'about', 'switch-task', 'menu-open', 'menu-save', true);
+ 'compose', 'undo', 'about', 'switch-task', 'menu-open', 'menu-close', 'menu-save', true);
// set active task button
this.set_button(this.task, 'sel');
@@ -711,7 +711,8 @@ function rcube_webmail()
}
case 'menu-save':
- this.triggerEvent(command, {props:props, e:event});
+ case 'menu-close':
+ this.triggerEvent(command, {props:props, originalEvent:event});
return false;
case 'open':
@@ -2316,6 +2317,7 @@ function rcube_webmail()
url._page = page;
this.http_request('list', url, lock);
+ this.update_state({ _mbox: mbox, _page: (page && page > 1 ? page : null) });
};
// removes messages that doesn't exists from list selection array
@@ -3592,6 +3594,7 @@ function rcube_webmail()
$('<a>').addClass('insertresponse active')
.attr('href', '#')
.attr('rel', key)
+ .attr('tabindex', '0')
.html(this.quote_html(response.name))
.appendTo(li)
.mousedown(function(e){
@@ -6940,6 +6943,13 @@ function rcube_webmail()
this.start_keepalive();
};
+ // update browser location to remember current view
+ this.update_state = function(query)
+ {
+ if (window.history.replaceState)
+ window.history.replaceState({}, document.title, rcmail.url('', query));
+ };
+
// send a http request to the server
this.http_request = function(action, query, lock)
{