summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2009-08-27 06:18:54 +0000
committerthomascube <thomas@roundcube.net>2009-08-27 06:18:54 +0000
commit141c9e732df32afb0ff6892b165bd72f1aac2287 (patch)
treea5e749bc15e6877b8282c5c730469f257d86284e
parent4ff4adca2754f408fd37fe1e28d4e1289730929b (diff)
Reload settings page if language was changed
-rw-r--r--program/js/app.js16
-rw-r--r--program/steps/settings/save_prefs.inc9
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;