summaryrefslogtreecommitdiff
path: root/program/js/app.js
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2013-02-07 17:18:54 +0100
committerThomas Bruederli <thomas@roundcube.net>2013-02-07 17:18:54 +0100
commitde98a897f618c4d251a4d3a5e3d2e4f2bb9a441b (patch)
treec475a35efb5c25d4258206644c3706039cb2be4c /program/js/app.js
parent86552ffc8f0f76651747a1faaed9bbda6d015f98 (diff)
Add link to pop the address group stack; add animations when pushing/popping lists (in larry skin)
Diffstat (limited to 'program/js/app.js')
-rw-r--r--program/js/app.js31
1 files changed, 26 insertions, 5 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 31a96b5a0..f9b72cdc2 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -251,6 +251,7 @@ function rcube_webmail()
}
}
else if (this.env.action == 'compose') {
+ this.env.address_group_stack = [];
this.env.compose_commands = ['send-attachment', 'remove-attachment', 'send', 'cancel', 'toggle-editor', 'list-adresses', 'pushgroup', 'search', 'reset-search', 'extwin'];
if (this.env.drafts_mailbox)
@@ -318,13 +319,13 @@ function rcube_webmail()
break;
case 'addressbook':
+ this.env.address_group_stack = [];
+
if (this.gui_objects.folderlist)
this.env.contactfolders = $.extend($.extend({}, this.env.address_sources), this.env.contactgroups);
this.enable_command('add', 'import', this.env.writable_source);
- this.enable_command('list', 'listgroup', 'pushgroup', 'listsearch', 'advanced-search', true);
-
- this.env.address_group_stack = [];
+ this.enable_command('list', 'listgroup', 'pushgroup', 'popgroup', 'listsearch', 'advanced-search', true);
if (this.gui_objects.contactslist) {
this.contact_list = new rcube_list_widget(this.gui_objects.contactslist,
@@ -1093,6 +1094,14 @@ function rcube_webmail()
this.list_contacts(props.source, props.id);
break;
+ case 'popgroup':
+ if (this.env.address_group_stack.length > 1) {
+ this.env.address_group_stack.pop();
+ this.reset_qsearch();
+ this.list_contacts(props.source, this.env.address_group_stack[this.env.address_group_stack.length-1]);
+ }
+ break;
+
case 'import':
if (this.env.action == 'import' && this.gui_objects.importform) {
var file = document.getElementById('rcmimportfile');
@@ -4198,8 +4207,20 @@ function rcube_webmail()
this.set_group_prop = function(prop)
{
- if (this.gui_objects.addresslist_title)
- $(this.gui_objects.addresslist_title).html(prop.name);
+ if (this.gui_objects.addresslist_title) {
+ var boxtitle = $(this.gui_objects.addresslist_title).html(''); // clear contents
+
+ // add link to pop back to parent group
+ if (this.env.address_group_stack.length > 1) {
+ $('<a href="#list">...</a>')
+ .addClass('poplink')
+ .appendTo(boxtitle)
+ .click(function(e){ return ref.command('popgroup','',this); });
+ boxtitle.append('&nbsp;&raquo;&nbsp;');
+ }
+
+ boxtitle.append($('<span>'+prop.name+'</span>'));
+ }
this.triggerEvent('groupupdate', prop);
};