Added query size preference.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Tue, 4 Nov 2008 12:29:36 +0000 (12:29 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Tue, 4 Nov 2008 12:29:36 +0000 (12:29 +0000)
admin/db/users_db.inc
admin/display_prefs.php
includes/current_user.inc
includes/prefs/userprefs.inc
sql/alter2.1.sql

index 8580733fcf3fdd84036e6e6cdc6e90f41032bbdc..8515a9bdb07e9a8216d9a254811ca5847450a1d7 100644 (file)
@@ -44,7 +44,7 @@ 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)
+       $dec_sep, $theme, $pagesize, $show_hints, $profile, $rep_popup, $query_size)
 {
        $sql = "UPDATE ".TB_PREF."users SET
                prices_dec=".db_escape($price_dec).",
@@ -61,7 +61,8 @@ function update_user_display_prefs($user_id, $price_dec, $qty_dec, $exrate_dec,
                page_size=".db_escape($pagesize).",
                show_hints=$show_hints,
                print_profile=".db_escape($profile).",
-               rep_popup=$rep_popup
+               rep_popup=$rep_popup,
+               query_size=$query_size
                WHERE user_id = ".db_escape($user_id);
 
        db_query($sql, "could not update user display prefs for $user_id");
index fcf8c9addbfdc8f968ea6e05e3204a8200c97e10..35a1c636a46f48ae1213f84e053b4f98df98b9a8 100644 (file)
@@ -15,24 +15,31 @@ include_once($path_to_root . "/admin/db/company_db.inc");
 
 if (isset($_POST['setprefs'])) 
 {
-       $theme = user_theme();
-       set_user_prefs($_POST['prices'], $_POST['Quantities'],
-               $_POST['Rates'], $_POST['Percent'],
-               check_value('show_gl'),
-               check_value('show_codes'),
-               $_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'));
-
-       language::set_language($_POST['language']);
-
-       flush_dir($comp_path.'/'.user_company().'/js_cache');   
-
-       if (user_theme() != $theme)
-               reload_page("");
-
-       display_notification_centered(_("Display settings have been updated."));
+       if (!is_numeric($_POST['query_size']) || ($_POST['query_size']<1))
+       {
+               display_error($_POST['query_size']);
+               display_error( _("Query size must integer and greater than zero."));
+               set_focus('query_size');
+       } else {
+               $theme = user_theme();
+               set_user_prefs($_POST['prices'], $_POST['Quantities'],
+                       $_POST['Rates'], $_POST['Percent'],
+                       check_value('show_gl'),
+                       check_value('show_codes'),
+                       $_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']));
+
+               language::set_language($_POST['language']);
+
+               flush_dir($comp_path.'/'.user_company().'/js_cache');   
+
+               if (user_theme() != $theme)
+                       reload_page("");
+
+               display_notification_centered(_("Display settings have been updated."));
+       }
 }
 
 start_form();
@@ -91,6 +98,8 @@ print_profiles_list_row(_("Printing profile"). ':', 'profile',
 check_row(_("Use popup window to display reports:"), 'rep_popup', user_rep_popup(),
        false, _('Set this option to on if your browser directly supports pdf files'));
 
+text_row_ex(_("Query page size:"), 'query_size',  5, 5, '', user_query_size());
+
 table_section_title(_("Language"));
 
 if (!isset($_POST['language']))
index 0e7a4a878091330b7cfa3564e11cb03d971a4b9d..4d2d208177d0af531764cf1a097c64d6acaa2f73 100644 (file)
@@ -100,11 +100,11 @@ 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) {
+               $theme, $pagesize, $show_hints, $profile, $rep_popup, $query_size) {
                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);
+                       $show_hints, $profile, $rep_popup, $query_size);
 
                // re-read the prefs
                $user = get_user($this->username);
@@ -274,14 +274,19 @@ function user_rep_popup()
        return $_SESSION["wa_current_user"]->prefs->rep_popup();
 }
 
+function user_query_size()
+{
+       return $_SESSION["wa_current_user"]->prefs->query_size();
+}
+
 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)
+       $print_profile, $rep_popup, $query_size)
 {
 
        $_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);
+               $print_profile, $rep_popup, $query_size);
 }
 
 function add_user_js_data() {
index f48fef0ec4a4c8e1a77d560c0d9117082d0316b1..c24fa01f204906ca257ffcec3507231f5768682a 100644 (file)
@@ -22,6 +22,7 @@ class user_prefs
        var $rep_popup;
        var $pagesize; // for printing
        var $show_hints;
+       var $query_size; // table pager page length
 
        function user_prefs(&$user) 
        {
@@ -45,6 +46,7 @@ class user_prefs
                $this->show_hints = $user["show_hints"];
                $this->print_profile = $user["print_profile"];
                $this->rep_popup = $user["rep_popup"];
+               $this->query_size = $user["query_size"];
        }
 
        function language() 
@@ -139,6 +141,11 @@ class user_prefs
                return $this->rep_popup;
        }
 
+       function query_size() 
+       {
+               return $this->query_size;
+       }
+
        function set_dec($price_dec, $qty_dec, $exrate_dec, $percent_dec, $showgl, $showcodes) 
        {
                $this->price_dec = $price_dec;
index 2fe22c858fe3b00d0724c8a3050dccbd39775be7..065184ea40326de4239835ff12e460dd964ccc95 100644 (file)
@@ -1,3 +1,5 @@
+ALTER TABLE `0_users` ADD `query_size` TINYINT(1) DEFAULT '10';
+
 DROP TABLE IF EXISTS `0_sales_pos`;
 
 CREATE TABLE `0_sales_pos` (