Double semicolon line endings fixed by @apmuthu.
[fa-stable.git] / admin / attachments.php
index b75c58bf280fa5c5bffe9ec735eb268446f4787a..e92276ed87fd2934596504ff9147e178394a4542 100644 (file)
@@ -19,6 +19,7 @@ include_once($path_to_root . "/includes/date_functions.inc");
 include_once($path_to_root . "/includes/ui.inc");
 include_once($path_to_root . "/includes/data_checks.inc");
 include_once($path_to_root . "/admin/db/attachments_db.inc");
+include_once($path_to_root . "/admin/db/transactions_db.inc");
 
 if (isset($_GET['vw']))
        $view_id = $_GET['vw'];
@@ -35,10 +36,7 @@ if ($view_id != -1)
                        $type = ($row['filetype']) ? $row['filetype'] : 'application/octet-stream';     
                header("Content-type: ".$type);
                header('Content-Length: '.$row['filesize']);
-               //if ($type == 'application/octet-stream')
-               //      header('Content-Disposition: attachment; filename='.$row['filename']);
-               //else
-                               header("Content-Disposition: inline");
+                       header("Content-Disposition: inline");
                echo file_get_contents(company_path(). "/attachments/".$row['unique_name']);
                exit();
                }
@@ -68,7 +66,7 @@ if ($download_id != -1)
 }
 
 $js = "";
-if ($use_popup_windows)
+if ($SysPrefs->use_popup_windows)
        $js .= get_js_open_window(800, 500);
 page(_($help_context = "Attach Documents"), false, false, "", $js);
 
@@ -81,10 +79,16 @@ if (isset($_GET['trans_no']))
 
 if ($Mode == 'ADD_ITEM' || $Mode == 'UPDATE_ITEM')
 {
-       if (!$_POST['trans_no'])
-               display_error(_("No transaction has been selected."));
-       elseif ($Mode == 'ADD_ITEM' && (!isset($_FILES['filename']) || $_FILES['filename']['size'] == 0))
+       if (!transaction_exists($_POST['filterType'], $_POST['trans_no']))
+               display_error(_("Selected transaction does not exists."));
+       elseif ($Mode == 'ADD_ITEM' && !isset($_FILES['filename']))
                display_error(_("Select attachment file."));
+       elseif ($Mode == 'ADD_ITEM' && ($_FILES['filename']['error'] > 0)) {
+       if ($_FILES['filename']['error'] == UPLOAD_ERR_INI_SIZE) 
+                       display_error(_("The file size is over the maximum allowed."));
+       else
+                       display_error(_("Select attachment file."));
+       }
        else {
                //$content = base64_encode(file_get_contents($_FILES['filename']['tmp_name']));
                $tmpname = $_FILES['filename']['tmp_name'];
@@ -93,27 +97,32 @@ if ($Mode == 'ADD_ITEM' || $Mode == 'UPDATE_ITEM')
                if (!file_exists($dir))
                {
                        mkdir ($dir,0777);
-                       $index_file = "<?php\nheader(\"Location: ../index.php\");\n?>";
+                       $index_file = "<?php\nheader(\"Location: ../index.php\");\n";
                        $fp = fopen($dir."/index.php", "w");
                        fwrite($fp, $index_file);
                        fclose($fp);
                }
+
+               $filename = basename($_FILES['filename']['name']);
+               $filesize = $_FILES['filename']['size'];
+               $filetype = $_FILES['filename']['type'];
+
                // file name compatible with POSIX
                // protect against directory traversal
                if ($Mode == 'UPDATE_ITEM')
                {
-                       $unique_name = preg_replace('/[^a-zA-Z0-9.\-_]/', '', $_POST['unique_name']);
-                       if ($Mode == 'UPDATE_ITEM' && file_exists($dir."/".$unique_name))
+                   $row = get_attachment($selected_id);
+                   if ($row['filename'] == "")
+                       exit();
+                       $unique_name = $row['unique_name'];
+                       if ($filename && file_exists($dir."/".$unique_name))
                                unlink($dir."/".$unique_name);
                }
                else
-                       $unique_name = uniqid('');
-               move_uploaded_file($tmpname, $dir."/".$unique_name);
+                       $unique_name = random_id();
 
                //save the file
-               $filename = basename($_FILES['filename']['name']);
-               $filesize = $_FILES['filename']['size'];
-               $filetype = $_FILES['filename']['type'];
+               move_uploaded_file($tmpname, $dir."/".$unique_name);
 
                if ($Mode == 'ADD_ITEM')
                {
@@ -128,6 +137,8 @@ if ($Mode == 'ADD_ITEM' || $Mode == 'UPDATE_ITEM')
                        display_notification(_("Attachment has been updated.")); 
                }
        }
+       refresh_pager('trans_tbl');
+       $Ajax->activate('_page_body');
        $Mode = 'RESET';
 }
 
@@ -158,7 +169,7 @@ function viewing_controls()
        start_row();
        systypes_list_cells(_("Type:"), 'filterType', null, true);
        if (list_updated('filterType'))
-               $selected_id = -1;;
+               $selected_id = -1;
 
        end_row();
     end_table(1);
@@ -250,4 +261,3 @@ end_form();
 
 end_page();
 
-?>