Added optional popup for pdf reports display.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Fri, 17 Oct 2008 11:10:20 +0000 (11:10 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Fri, 17 Oct 2008 11:10:20 +0000 (11:10 +0000)
admin/db/users_db.inc
admin/display_prefs.php
admin/users.php
includes/current_user.inc
includes/prefs/userprefs.inc
reporting/includes/pdf_report.inc
sql/alter2.1.sql

index 7b82e60972392ad2ba834d958523df1c7c6fb1ff..32f7c88c55a3a566b01123916327f45d80193361 100644 (file)
@@ -1,13 +1,13 @@
 <?php
 
 function add_user($user_id, $real_name, $password, $phone, $email, $full_access, 
-       $language, $profile)
+       $language, $profile, $rep_popup)
 {
        $sql = "INSERT INTO ".TB_PREF."users (user_id, real_name, password, phone, email, full_access, language, print_profile)
                VALUES (".db_escape($user_id).", 
                ".db_escape($real_name).", ".db_escape($password) .",".db_escape($phone).",
                 ".db_escape($email).", $full_access, ".db_escape($language).",
-                ".db_escape($profile).")";
+                ".db_escape($profile).", rep_popup=$rep_popup)";
 
        db_query($sql, "could not add user for $user_id");
 }
@@ -25,22 +25,24 @@ function update_user_password($user_id, $password)
 //-----------------------------------------------------------------------------------------------
 
 function update_user($user_id, $real_name, $phone, $email, $full_access, 
-       $language, $profile)
+       $language, $profile, $rep_popup)
 {
        $sql = "UPDATE ".TB_PREF."users SET real_name=".db_escape($real_name).
        ", phone=".db_escape($phone).",
                email=".db_escape($email).",
                full_access=$full_access,
                language=".db_escape($language).",
-               print_profile=".db_escape($profile)."
+               print_profile=".db_escape($profile).",
+               rep_popup=$rep_popup
                WHERE user_id = ".db_escape($user_id);
        db_query($sql, "could not update user for $user_id");
 }
 
 //-----------------------------------------------------------------------------------------------
 
-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)
+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)
 {
        $sql = "UPDATE ".TB_PREF."users SET
                prices_dec=".db_escape($price_dec).",
@@ -56,7 +58,8 @@ function update_user_display_prefs($user_id, $price_dec, $qty_dec, $exrate_dec,
                theme=".db_escape($theme).",
                page_size=".db_escape($pagesize).",
                show_hints=$show_hints,
-               print_profile=".db_escape($profile)."
+               print_profile=".db_escape($profile).",
+               rep_popup=$rep_popup
                WHERE user_id = ".db_escape($user_id);
 
        db_query($sql, "could not update user display prefs for $user_id");
index 6f11769531e3d6c6b9eadd25f799fd9a14191792..fcf8c9addbfdc8f968ea6e05e3204a8200c97e10 100644 (file)
@@ -23,7 +23,7 @@ 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']);
+               $_POST['profile'], check_value('rep_popup'));
 
        language::set_language($_POST['language']);
 
@@ -88,6 +88,9 @@ if (!isset($_POST['profile']))
 print_profiles_list_row(_("Printing profile"). ':', 'profile', 
        null, _('Browser printing support'));
 
+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'));
+
 table_section_title(_("Language"));
 
 if (!isset($_POST['language']))
index f7ed20759be203ad9ea3b1a6b023970d04e4cb2a..889d89ba24845bd98ec006a9f7b32ca73749b0e4 100644 (file)
@@ -55,7 +55,7 @@ if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM')
        {
                update_user($_POST['user_id'], $_POST['real_name'], $_POST['phone'],
                        $_POST['email'], $_POST['Access'], $_POST['language'], 
-                               $_POST['profile']);
+                               $_POST['profile'], check_value('rep_popup'));
 
                if ($_POST['password'] != "")
                        update_user_password($_POST['user_id'], md5($_POST['password']));
@@ -66,7 +66,7 @@ if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM')
        {
                add_user($_POST['user_id'], $_POST['real_name'], md5($_POST['password']),
                                $_POST['phone'], $_POST['email'], $_POST['Access'], $_POST['language'],
-                               $_POST['profile']);
+                               $_POST['profile'], check_value('rep_popup'));
 
                        display_notification_centered(_("A new user has been added."));
        }
@@ -150,6 +150,7 @@ if ($selected_id != '')
                $_POST['Access'] = $myrow["full_access"];
                $_POST['language'] = $myrow["language"];
                $_POST['profile'] = $myrow["print_profile"];
+               $_POST['rep_popup'] = $myrow["rep_popup"];
        }
        hidden('selected_id', $selected_id);
        hidden('user_id');
@@ -160,6 +161,7 @@ if ($selected_id != '')
 else 
 { //end of if $selected_id only do the else when a new record is being entered
        text_row(_("User Login:"), "user_id",  null, 22, 20);
+       $_POST['rep_popup'] = 1;
 }
 $_POST['password'] = "";
 start_row();
@@ -185,6 +187,9 @@ languages_list_row(_("Language:"), 'language', null);
 print_profiles_list_row(_("Printing profile"). ':', 'profile', null,
        _('Browser printing support'));
 
+check_row(_("Use popup window for reports:"), 'rep_popup', $_POST['rep_popup'],
+       false, _('Set this option to on if your browser directly supports pdf files'));
+
 end_table(1);
 
 submit_add_or_update_center($selected_id == '', '', true);
index e2dd4f37671db64ca1f321661345120643eb779c..0948b3d35641012a97027f3f7f6a3492be0efb37 100644 (file)
@@ -95,10 +95,13 @@ class current_user
        return $db;
        }
 
-       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) {
-               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);
+       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) {
+               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);
 
                // re-read the prefs
                $user = get_user($this->username);
@@ -252,14 +255,19 @@ function user_print_profile()
        return $_SESSION["wa_current_user"]->prefs->print_profile();
 }
 
+function user_rep_popup()
+{
+       return $_SESSION["wa_current_user"]->prefs->rep_popup();
+}
+
 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)
+       $print_profile, $rep_popup)
 {
 
        $_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);
+               $print_profile, $rep_popup);
 }
 
 function add_user_js_data() {
index 6dd376632f6e42b94c20791d27fee2d856f80a22..f48fef0ec4a4c8e1a77d560c0d9117082d0316b1 100644 (file)
@@ -19,6 +19,7 @@ class user_prefs
        var $dec_sep;
        var $theme;
        var $print_profile;
+       var $rep_popup;
        var $pagesize; // for printing
        var $show_hints;
 
@@ -43,6 +44,7 @@ class user_prefs
                $this->pagesize = $user["page_size"];
                $this->show_hints = $user["show_hints"];
                $this->print_profile = $user["print_profile"];
+               $this->rep_popup = $user["rep_popup"];
        }
 
        function language() 
@@ -132,6 +134,11 @@ class user_prefs
                return $this->print_profile;
        }
 
+       function rep_popup() 
+       {
+               return $this->rep_popup;
+       }
+
        function set_dec($price_dec, $qty_dec, $exrate_dec, $percent_dec, $showgl, $showcodes) 
        {
                $this->price_dec = $price_dec;
index b9ae9410a22d56d2d8e52f243a3553ae1d55e9a4..e3d84a1914e94c8dfda83a6cb954534bab8cfc0f 100644 (file)
@@ -361,9 +361,7 @@ class FrontReport extends Cpdf
 
                if ($pdf_debug == 1)
                {
-                       $buf = $this->Output();
-                       $len = strlen($buf);
-                       $pdfcode = $buf;
+                       $pdfcode = $this->Output();
                        $pdfcode = str_replace("\n", "\n<br>", htmlspecialchars($pdfcode));
                        echo '<html><body>';
                        echo trim($pdfcode);
@@ -474,7 +472,10 @@ class FrontReport extends Cpdf
                                                $fname = substr(realpath($fname), strlen($_SERVER['DOCUMENT_ROOT']));
                                                if (substr($fname,0,1) != '/') $fname = '/'.$fname;
 
-                                               $Ajax->redirect($fname);
+                                               if (user_rep_popup()) 
+                                                       $Ajax->popup($fname);
+                                               else
+                                                       $Ajax->redirect($fname);
                                        } else {
                                        //echo '<html>
                                        //              <head>
index 8ae7a66c409305b32b7c0fba482af067208ce47c..d2d381b471d85d848acd6e04f9f5fbfdb0b681e0 100644 (file)
@@ -1,5 +1,6 @@
 
 ALTER TABLE `0_users` ADD `print_profile` VARCHAR(30) DEFAULT '' AFTER `show_hints` ;
+ALTER TABLE `0_users` ADD `rep_popup` TINYINT(1) DEFAULT '1' AFTER `print_profile` ;
 
 DROP TABLE IF EXISTS `0_print_profiles`;
 CREATE TABLE `0_print_profiles` (