Fix: file add and delte in email forms was broken with firefox 5

This commit is contained in:
Laurent Destailleur
2011-07-10 20:03:38 +00:00
parent 8089212e2c
commit d99156c52f
3 changed files with 28 additions and 17 deletions

View File

@@ -20,7 +20,7 @@
/** /**
* \file htdocs/admin/mails.php * \file htdocs/admin/mails.php
* \brief Page to setup emails sending * \brief Page to setup emails sending
* \version $Id: mails.php,v 1.72 2011/07/09 06:10:06 hregis Exp $ * \version $Id: mails.php,v 1.73 2011/07/10 20:03:39 eldy Exp $
*/ */
require("../main.inc.php"); require("../main.inc.php");
@@ -80,7 +80,7 @@ if ($_POST['addfile'] || $_POST['addfilehtml'])
// Set tmp user directory // Set tmp user directory
$vardir=$conf->user->dir_output."/".$user->id; $vardir=$conf->user->dir_output."/".$user->id;
$upload_dir = $vardir.'/temp/'; $upload_dir = $vardir.'/temp';
if (create_exdir($upload_dir) >= 0) if (create_exdir($upload_dir) >= 0)
{ {
@@ -127,7 +127,7 @@ if (! empty($_POST['removedfile']) || ! empty($_POST['removedfilehtml']))
{ {
// Set tmp user directory // Set tmp user directory
$vardir=$conf->user->dir_output."/".$user->id; $vardir=$conf->user->dir_output."/".$user->id;
$upload_dir = $vardir.'/temp/'; $upload_dir = $vardir.'/temp';
$keytodelete=isset($_POST['removedfile'])?$_POST['removedfile']:$_POST['removedfilehtml']; $keytodelete=isset($_POST['removedfile'])?$_POST['removedfile']:$_POST['removedfilehtml'];
$keytodelete--; $keytodelete--;
@@ -737,5 +737,5 @@ else
$db->close(); $db->close();
llxFooter('$Date: 2011/07/09 06:10:06 $ - $Revision: 1.72 $'); llxFooter('$Date: 2011/07/10 20:03:39 $ - $Revision: 1.73 $');
?> ?>

View File

@@ -22,7 +22,7 @@
* \file htdocs/core/class/html.formmail.class.php * \file htdocs/core/class/html.formmail.class.php
* \ingroup core * \ingroup core
* \brief Fichier de la classe permettant la generation du formulaire html d'envoi de mail unitaire * \brief Fichier de la classe permettant la generation du formulaire html d'envoi de mail unitaire
* \version $Id: html.formmail.class.php,v 1.30 2011/07/09 10:26:19 hregis Exp $ * \version $Id: html.formmail.class.php,v 1.31 2011/07/10 20:03:41 eldy Exp $
*/ */
require_once(DOL_DOCUMENT_ROOT ."/core/class/html.form.class.php"); require_once(DOL_DOCUMENT_ROOT ."/core/class/html.form.class.php");
@@ -124,9 +124,9 @@ class FormMail
/** /**
* Add a file into the list of attached files (stored in SECTION array) * Add a file into the list of attached files (stored in SECTION array)
* *
* @param $path * @param string $path Full absolute path on filesystem of file, including file name
* @param $file * @param string $file Only filename
* @param $type * @param string $type Mime type
*/ */
function add_attached_files($path,$file,$type) function add_attached_files($path,$file,$type)
{ {
@@ -505,14 +505,26 @@ class FormMail
$out.= '<tr>'; $out.= '<tr>';
$out.= '<td width="180">'.$langs->trans("MailFile").'</td>'; $out.= '<td width="180">'.$langs->trans("MailFile").'</td>';
$out.= '<td>'; $out.= '<td>';
//print '<table class="nobordernopadding" width="100%"><tr><td>'; // FIXME Trick to have param removedfile containing nb of image to delete. But this does not works without javascript
$out.= '<input type="hidden" class="removedfilehidden" name="removedfile" value="">'."\n";
$out.= '<script type="text/javascript" language="javascript">';
$out.= 'jQuery(document).ready(function () {';
$out.= ' jQuery(".removedfile").click(function() {';
$out.= ' jQuery(".removedfilehidden").val(jQuery(this).val());';
$out.= ' });';
$out.= '})';
$out.= '</script>'."\n";
if (sizeof($listofpaths)) if (sizeof($listofpaths))
{ {
foreach($listofpaths as $key => $val) foreach($listofpaths as $key => $val)
{ {
$out.= '<div id="attachfile_'.$key.'">'; $out.= '<div id="attachfile_'.$key.'">';
$out.= img_mime($listofnames[$key]).' '.$listofnames[$key]; $out.= img_mime($listofnames[$key]).' '.$listofnames[$key];
if (! $this->withfilereadonly) $out.= ' <input type="image" style="border: 0px;" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/delete.png" value="'.($key+1).'" class="removedfile" id="removedfile_'.$key.'" name="removedfile_'.$key.'" />'; if (! $this->withfilereadonly)
{
$out.= ' <input type="image" style="border: 0px;" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/delete.png" value="'.($key+1).'" class="removedfile" id="removedfile_'.$key.'" name="removedfile_'.$key.'" />';
//$out.= ' <a href="'.$_SERVER["PHP_SELF"].'?removedfile='.($key+1).' id="removedfile_'.$key.'">'.img_delete($langs->trans("Delete").'</a>';
}
$out.= '<br /></div>'; $out.= '<br /></div>';
} }
} }
@@ -522,11 +534,9 @@ class FormMail
} }
if ($this->withfile == 2) // Can add other files if ($this->withfile == 2) // Can add other files
{ {
//print '<td><td align="right">';
$out.= '<input type="file" class="flat" id="addedfile" name="addedfile" value="'.$langs->trans("Upload").'" />'; $out.= '<input type="file" class="flat" id="addedfile" name="addedfile" value="'.$langs->trans("Upload").'" />';
$out.= ' '; $out.= ' ';
$out.= '<input type="submit" class="button" id="'.$addfileaction.'" name="'.$addfileaction.'" value="'.$langs->trans("MailingAddFile").'" />'; $out.= '<input type="submit" class="button" id="'.$addfileaction.'" name="'.$addfileaction.'" value="'.$langs->trans("MailingAddFile").'" />';
//print '</td></tr></table>';
} }
$out.= "</td></tr>\n"; $out.= "</td></tr>\n";
} }

View File

@@ -20,7 +20,7 @@
/** /**
* \file htdocs/lib/files.lib.php * \file htdocs/lib/files.lib.php
* \brief Library for file managing functions * \brief Library for file managing functions
* \version $Id: files.lib.php,v 1.68 2011/07/11 06:23:22 hregis Exp $ * \version $Id: files.lib.php,v 1.67 2011/07/10 20:03:41 eldy Exp $
*/ */
/** /**
@@ -561,8 +561,9 @@ function dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disable
if (! empty($conf->global->MAIN_UMASK)) @chmod($file_name_osencoded, octdec($conf->global->MAIN_UMASK)); if (! empty($conf->global->MAIN_UMASK)) @chmod($file_name_osencoded, octdec($conf->global->MAIN_UMASK));
dol_syslog("Functions.lib::dol_move_uploaded_file Success to move ".$src_file." to ".$file_name." - Umask=".$conf->global->MAIN_UMASK, LOG_DEBUG); dol_syslog("Functions.lib::dol_move_uploaded_file Success to move ".$src_file." to ".$file_name." - Umask=".$conf->global->MAIN_UMASK, LOG_DEBUG);
if (! $notrigger && is_object($object)) if (! $notrigger)
{ {
if (! is_object($object)) $object=(object) 'dummy';
$object->src_file=$dest_file; $object->src_file=$dest_file;
// Appel des triggers // Appel des triggers