Language changed on display prefs page stored into database.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Tue, 24 Feb 2009 21:02:03 +0000 (21:02 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Tue, 24 Feb 2009 21:02:03 +0000 (21:02 +0000)
admin/db/users_db.inc
admin/display_prefs.php
includes/current_user.inc

index b42e2db00786e47c297d523bfabc065b3734d704..5200f2c99933bb0d104270218ff587d7bac652b7 100644 (file)
@@ -54,7 +54,8 @@ function update_user($user_id, $real_name, $phone, $email, $full_access,
 
 function update_user_display_prefs($user_id, $price_dec, $qty_dec, $exrate_dec, 
        $percent_dec, $showgl, $showcodes, $date_format, $date_sep, $tho_sep, 
-       $dec_sep, $theme, $pagesize, $show_hints, $profile, $rep_popup, $query_size, $graphic_links)
+       $dec_sep, $theme, $pagesize, $show_hints, $profile, $rep_popup, $query_size, 
+       $graphic_links, $lang)
 {
        $sql = "UPDATE ".TB_PREF."users SET
                prices_dec=".db_escape($price_dec).",
@@ -73,7 +74,8 @@ function update_user_display_prefs($user_id, $price_dec, $qty_dec, $exrate_dec,
                print_profile=".db_escape($profile).",
                rep_popup=$rep_popup,
                query_size=$query_size,
-               graphic_links=$graphic_links
+               graphic_links=$graphic_links,
+               language=".db_escape($lang)."
                WHERE user_id = ".db_escape($user_id);
 
        db_query($sql, "could not update user display prefs for $user_id");
index 4409ed6d328a6556893d471556a5f820f1a82297..20424376d815a912167a701de78ab7706480dcff 100644 (file)
@@ -30,7 +30,9 @@ if (isset($_POST['setprefs']))
                display_error( _("Query size must be integer and greater than zero."));
                set_focus('query_size');
        } else {
-               $theme = user_theme();
+               $chg_theme = user_theme() != $_POST['theme'];
+               $chg_lang = $_SESSION['language']->code != $_POST['language'];
+
                set_user_prefs($_POST['prices'], $_POST['Quantities'],
                        $_POST['Rates'], $_POST['Percent'],
                        check_value('show_gl'),
@@ -38,15 +40,18 @@ if (isset($_POST['setprefs']))
                        $_POST['date_format'], $_POST['date_sep'],
                        $_POST['tho_sep'], $_POST['dec_sep'],
                        $_POST['theme'], $_POST['page_size'], check_value('show_hints'),
-                       $_POST['profile'], check_value('rep_popup'), (int)($_POST['query_size']), check_value('graphic_links'));
+                       $_POST['profile'], check_value('rep_popup'), 
+                       (int)($_POST['query_size']), check_value('graphic_links'), 
+                       $_POST['language']);
 
-               if ($_SESSION['language'] != $_POST['language'])
+               if ($chg_lang)
                        language::set_language($_POST['language']);
+                       // refresh main menu
 
                flush_dir($comp_path.'/'.user_company().'/js_cache');   
 
-               if (user_theme() != $theme)
-                       reload_page("");
+               if ($chg_theme || $chg_lang)
+                       meta_forward($_SERVER['PHP_SELF']);
 
                display_notification_centered(_("Display settings have been updated."));
        }
index dabec3ce2cfd94f6b33ed52cbbbce8e5cef8dcb5..023591d351852727b06a1022b3b0e8d0eab29213 100644 (file)
@@ -109,11 +109,12 @@ class current_user
 
        function update_prefs($price_dec, $qty_dec, $exrate_dec, $percent_dec, 
                $showgl, $showcodes, $date_format, $date_sep, $tho_sep, $dec_sep, 
-               $theme, $pagesize, $show_hints, $profile, $rep_popup, $query_size, $graphic_links) {
+               $theme, $pagesize, $show_hints, $profile, $rep_popup, $query_size, 
+               $graphic_links, $lang) {
                update_user_display_prefs($this->username, $price_dec, 
                        $qty_dec, $exrate_dec, $percent_dec, $showgl, $showcodes, 
                        $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize, 
-                       $show_hints, $profile, $rep_popup, $query_size, $graphic_links);
+                       $show_hints, $profile, $rep_popup, $query_size, $graphic_links, $lang);
 
                // re-read the prefs
                $user = get_user($this->username);
@@ -303,12 +304,12 @@ function user_graphic_links()
 
 function set_user_prefs($price_dec, $qty_dec, $exrate_dec, $percent_dec, $showgl, $showcodes,
        $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize, $show_hints,
-       $print_profile, $rep_popup, $query_size, $graphic_links)
+       $print_profile, $rep_popup, $query_size, $graphic_links, $lang)
 {
 
        $_SESSION["wa_current_user"]->update_prefs($price_dec, $qty_dec, $exrate_dec, $percent_dec, $showgl, $showcodes,
                $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize, $show_hints,
-               $print_profile, $rep_popup, $query_size, $graphic_links);
+               $print_profile, $rep_popup, $query_size, $graphic_links, $lang);
 }
 
 function add_user_js_data() {