From 141c9e732df32afb0ff6892b165bd72f1aac2287 Mon Sep 17 00:00:00 2001 From: thomascube Date: Thu, 27 Aug 2009 06:18:54 +0000 Subject: Reload settings page if language was changed --- program/js/app.js | 16 +++++++++++++--- program/steps/settings/save_prefs.inc | 9 +++++---- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 4ad62b46e..88e133945 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -697,9 +697,9 @@ function rcube_webmail() else if (this.task=='settings' && props) this.load_identity(props, 'edit-identity'); else if (this.task=='mail' && (cid = this.get_single_uid())) { - var url = (this.env.mailbox == this.env.drafts_mailbox) ? '_draft_uid=' : '_uid='; + var url = (this.env.mailbox == this.env.drafts_mailbox) ? '_draft_uid=' : '_uid='; this.goto_url('compose', url+cid+'&_mbox='+urlencode(this.env.mailbox), true); - } + } break; case 'save-identity': @@ -837,7 +837,7 @@ function rcube_webmail() case 'select-all': if (props == 'invert') this.message_list.invert_selection(); - else + else this.message_list.select_all(props); break; @@ -1214,6 +1214,16 @@ function rcube_webmail() this.set_busy(false); this.display_message('Request timed out!', 'error'); }; + + this.reload = function(delay) + { + if (this.env.framed && parent.rcmail) + parent.rcmail.reload(delay); + else if (delay) + window.setTimeout(function(){ rcmail.reload(); }, delay); + else if (window.location) + location.href = this.env.comm_path; + }; /*********************************************************/ diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index d0bfdf099..48f6ef7ef 100644 --- a/program/steps/settings/save_prefs.inc +++ b/program/steps/settings/save_prefs.inc @@ -102,8 +102,9 @@ switch ($CURR_SECTION) case 'general': // switch UI language - if (isset($_POST['_language'])) { + if (isset($_POST['_language']) && $a_user_prefs['language'] != $_SESSION['language']) { $RCMAIL->load_language($a_user_prefs['language']); + $OUTPUT->command('reload', 500); } // switch skin @@ -132,13 +133,13 @@ switch ($CURR_SECTION) // special handling for 'default_imap_folders' if (in_array('default_imap_folders', (array)$CONFIG['dont_override'])) { foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p) - $a_user_prefs[$p] = $CONFIG[$p]; + $a_user_prefs[$p] = $CONFIG[$p]; } else { $a_user_prefs['default_imap_folders'] = array('INBOX'); foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p) { - if ($a_user_prefs[$p]) + if ($a_user_prefs[$p]) $a_user_prefs['default_imap_folders'][] = $a_user_prefs[$p]; - } + } } break; -- cgit v1.2.3