Activated strict SQL mode, minor SQL injection fix, fixed _vl() debug helper.
[fa-stable.git] / admin / display_prefs.php
1 <?php
2 /**********************************************************************
3     Copyright (C) FrontAccounting, LLC.
4         Released under the terms of the GNU General Public License, GPL, 
5         as published by the Free Software Foundation, either version 3 
6         of the License, or (at your option) any later version.
7     This program is distributed in the hope that it will be useful,
8     but WITHOUT ANY WARRANTY; without even the implied warranty of
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
10     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12 $page_security = 'SA_SETUPDISPLAY';
13 $path_to_root="..";
14 include($path_to_root . "/includes/session.inc");
15
16 page(_($help_context = "Display Setup"));
17
18 include_once($path_to_root . "/includes/date_functions.inc");
19 include_once($path_to_root . "/includes/ui.inc");
20
21 include_once($path_to_root . "/admin/db/company_db.inc");
22
23 //-------------------------------------------------------------------------------------------------
24
25 if (isset($_POST['setprefs'])) 
26 {
27         if (!is_numeric($_POST['query_size']) || ($_POST['query_size']<1))
28         {
29                 display_error($_POST['query_size']);
30                 display_error( _("Query size must be integer and greater than zero."));
31                 set_focus('query_size');
32         } else {
33                 $_POST['theme'] = clean_file_name($_POST['theme']);
34                 $chg_theme = user_theme() != $_POST['theme'];
35                 $chg_lang = $_SESSION['language']->code != $_POST['language'];
36                 $chg_date_format = user_date_format() != $_POST['date_format'];
37                 $chg_date_sep = user_date_sep() != $_POST['date_sep'];
38
39                 set_user_prefs(get_post( 
40                         array('prices_dec', 'qty_dec', 'rates_dec', 'percent_dec',
41                         'date_format', 'date_sep', 'tho_sep', 'dec_sep', 'print_profile', 
42                         'theme', 'page_size', 'language', 'startup_tab',
43                         'query_size' => 10.0, 'transaction_days' => 30, 'save_report_selections' => 0,
44                         'def_print_destination' => 0, 'def_print_orientation' => 0)));
45
46                 set_user_prefs(check_value(
47                         array( 'show_gl', 'show_codes', 'show_hints', 'rep_popup',
48                           'graphic_links', 'sticky_doc_date', 'use_date_picker')));
49
50                 if ($chg_lang)
51                         $_SESSION['language']->set_language($_POST['language']);
52                         // refresh main menu
53
54                 flush_dir(company_path().'/js_cache');  
55
56                 if ($chg_theme && $SysPrefs->allow_demo_mode)
57                         $_SESSION["wa_current_user"]->prefs->theme = $_POST['theme'];
58                 if ($chg_theme || $chg_lang || $chg_date_format || $chg_date_sep)
59                         meta_forward($_SERVER['PHP_SELF']);
60
61                 
62                 if ($SysPrefs->allow_demo_mode)  
63                         display_warning(_("Display settings have been updated. Keep in mind that changed settings are restored on every login in demo mode."));
64                 else
65                         display_notification_centered(_("Display settings have been updated."));
66         }
67 }
68
69 start_form();
70
71 start_outer_table(TABLESTYLE2);
72
73 table_section(1);
74 table_section_title(_("Decimal Places"));
75
76 number_list_row(_("Prices/Amounts:"), 'prices_dec', user_price_dec(), 0, 10);
77 number_list_row(_("Quantities:"), 'qty_dec', user_qty_dec(), 0, 10);
78 number_list_row(_("Exchange Rates:"), 'rates_dec', user_exrate_dec(), 0, 10);
79 number_list_row(_("Percentages:"), 'percent_dec', user_percent_dec(), 0, 10);
80
81 table_section_title(_("Date Format and Separators"));
82
83 dateformats_list_row(_("Date Format:"), "date_format", user_date_format());
84
85 dateseps_list_row(_("Date Separator:"), "date_sep", user_date_sep());
86
87 /* The array $dateseps is set up in config.php for modifications
88 possible separators can be added by modifying the array definition by editing that file */
89
90 thoseps_list_row(_("Thousand Separator:"), "tho_sep", user_tho_sep());
91
92 /* The array $thoseps is set up in config.php for modifications
93 possible separators can be added by modifying the array definition by editing that file */
94
95 decseps_list_row(_("Decimal Separator:"), "dec_sep", user_dec_sep());
96
97 /* The array $decseps is set up in config.php for modifications
98 possible separators can be added by modifying the array definition by editing that file */
99
100 check_row(_("Use Date Picker"), 'use_date_picker', user_use_date_picker());
101
102 if (!isset($_POST['language']))
103         $_POST['language'] = $_SESSION['language']->code;
104
105 table_section_title(_("Reports"));
106
107 text_row_ex(_("Save Report Selection Days:"), 'save_report_selections', 5, 5, '', user_save_report_selections());
108
109 yesno_list_row(_("Default Report Destination:"), 'def_print_destination', user_def_print_destination(), 
110         $name_yes=_("Excel"), $name_no=_("PDF/Printer"));
111
112 yesno_list_row(_("Default Report Orientation:"), 'def_print_orientation', user_def_print_orientation(), 
113         $name_yes=_("Landscape"), $name_no=_("Portrait"));
114
115 table_section(2);
116
117 table_section_title(_("Miscellaneous"));
118
119 check_row(_("Show hints for new users:"), 'show_hints', user_hints());
120
121 check_row(_("Show GL Information:"), 'show_gl', user_show_gl_info());
122
123 check_row(_("Show Item Codes:"), 'show_codes', user_show_codes());
124
125 themes_list_row(_("Theme:"), "theme", user_theme());
126
127 /* The array $themes is set up in config.php for modifications
128 possible separators can be added by modifying the array definition by editing that file */
129
130 pagesizes_list_row(_("Page Size:"), "page_size", user_pagesize());
131
132 tab_list_row(_("Start-up Tab"), 'startup_tab', user_startup_tab());
133
134 /* The array $pagesizes is set up in config.php for modifications
135 possible separators can be added by modifying the array definition by editing that file */
136
137 if (!isset($_POST['print_profile']))
138         $_POST['print_profile'] = user_print_profile();
139
140 print_profiles_list_row(_("Printing profile"). ':', 'print_profile', 
141         null, _('Browser printing support'));
142
143 check_row(_("Use popup window to display reports:"), 'rep_popup', user_rep_popup(),
144         false, _('Set this option to on if your browser directly supports pdf files'));
145
146 check_row(_("Use icons instead of text links:"), 'graphic_links', user_graphic_links(),
147         false, _('Set this option to on for using icons instead of text links'));
148
149 check_row(_("Remember last document date:"), 'sticky_doc_date', sticky_doc_date(),
150         false, _('If set document date is remembered on subsequent documents, otherwise default is current date'));
151
152 text_row_ex(_("Query page size:"), 'query_size',  5, 5, '', user_query_size());
153
154 text_row_ex(_("Transaction days:"), 'transaction_days', 5, 5, '', user_transaction_days());
155
156 table_section_title(_("Language"));
157
158 languages_list_row(_("Language:"), 'language', $_POST['language']);
159
160 end_outer_table(1);
161
162 submit_center('setprefs', _("Update"), true, '',  'default');
163
164 end_form(2);
165
166 //-------------------------------------------------------------------------------------------------
167
168 end_page();
169