Attach Documents: fixed user interface to reset input fields only when needed. Fixes...
[fa-stable.git] / admin / attachments.php
index d3f491ace3a08898d022d6509f03ee07749e068c..5b5e8247511c359d923f3f85f8a61475dcb5f215 100644 (file)
@@ -83,7 +83,10 @@ if ($Mode == 'ADD_ITEM' || $Mode == 'UPDATE_ITEM')
        $filename = basename($_FILES['filename']['name']);
        if (!transaction_exists($_POST['filterType'], $_POST['trans_no']))
                display_error(_("Selected transaction does not exists."));
-       elseif ($Mode == 'ADD_ITEM' && !isset($_FILES['filename']))
+       elseif ($Mode == 'ADD_ITEM' && !in_array(strtoupper(substr($filename, strlen($filename) - 3)), array('JPG','PNG','GIF', 'PDF', 'DOC', 'ODT')))
+       {
+               display_error(_('Only graphics,pdf,doc and odt files are supported.'));
+       } 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) 
@@ -138,10 +141,10 @@ if ($Mode == 'ADD_ITEM' || $Mode == 'UPDATE_ITEM')
                                $filename, $unique_name, $filesize, $filetype); 
                        display_notification(_("Attachment has been updated.")); 
                }
+               reset_form();
        }
        refresh_pager('trans_tbl');
        $Ajax->activate('_page_body');
-       $Mode = 'RESET';
 }
 
 if ($Mode == 'Delete')
@@ -152,11 +155,15 @@ if ($Mode == 'Delete')
                unlink($dir."/".$row['unique_name']);
        delete_attachment($selected_id);        
        display_notification(_("Attachment has been deleted.")); 
-       $Mode = 'RESET';
+       reset_form();
 }
 
 if ($Mode == 'RESET')
+       reset_form();
+
+function reset_form()
 {
+       unset($_POST['trans_no']);
        unset($_POST['description']);
        $selected_id = -1;
 }
@@ -170,7 +177,7 @@ function viewing_controls()
        start_row();
        systypes_list_cells(_("Type:"), 'filterType', null, true);
        if (list_updated('filterType'))
-               $selected_id = -1;
+               reset_form();
 
        if(get_post('filterType') == ST_CUSTOMER ){
                customer_list_cells(_("Select a customer: "), 'trans_no', null, false, true, true);