diff --git a/etemplate/inc/class.link_widget.inc.php b/etemplate/inc/class.link_widget.inc.php index 065c17e7c4..0d62b2ee80 100644 --- a/etemplate/inc/class.link_widget.inc.php +++ b/etemplate/inc/class.link_widget.inc.php @@ -473,7 +473,7 @@ class link_widget * @param mixed &$value the extension returns here it's input, if there's any * @param mixed &$extension_data persistent storage between calls or pre- and post-process * @param boolean &$loop can be set to true to request a re-submision of the form/dialog - * @param object &$tmpl the eTemplate the widget belongs too + * @param etemplate &$tmpl the eTemplate the widget belongs too * @param mixed &value_in the posted values (already striped of magic-quotes) * @return boolean true if $value has valid content, on false no content will be returned! */ @@ -554,6 +554,7 @@ class link_widget break; case 'attach': + $name = preg_replace('/^exec\[([^]]+)\](.*)$/','\\1\\2',$name); // remove exec prefix if (is_array($value['file']) && $value['to_app'] && !empty($value['file']['tmp_name']) && $value['file']['tmp_name'] != 'none') { @@ -570,20 +571,26 @@ class link_widget move_uploaded_file($value['file']['tmp_name'],$new_file); $value['file']['tmp_name'] = $new_file; } - $link_id = egw_link::link($value['to_app'],$value['to_id'], - egw_link::VFS_APPNAME,$value['file'],$value['remark']); - $value['remark'] = ''; - - if (isset($value['primary']) && !$value['anz_links'] ) + if (!($link_id = egw_link::link($value['to_app'],$value['to_id'], + egw_link::VFS_APPNAME,$value['file'],$value['remark']))) { - $value['primary'] = $link_id; + etemplate::set_validation_error($name.'[file]',lang('Error copying uploaded file to vfs!')); + } + else + { + $value['remark'] = ''; + + if (isset($value['primary']) && !$value['anz_links'] ) + { + $value['primary'] = $link_id; + } + unset($value['comment']); + unset($value['file']); } - unset($value['comment']); - unset($value['file']); } else { - $value['msg'] = 'You need to select a file first!'; + etemplate::set_validation_error($name.'[file]',lang('You need to select a file first!')); } $extension_data = $value; $loop = True; diff --git a/etemplate/lang/egw_de.lang b/etemplate/lang/egw_de.lang index 6d64605165..5b9f48d9e1 100644 --- a/etemplate/lang/egw_de.lang +++ b/etemplate/lang/egw_de.lang @@ -422,3 +422,4 @@ you are not allowed to export more then %1 entries! etemplate de Sie sind nicht you can respond by visiting: etemplate de Sie können unter dem folgenden Verweis antworten: error uploading file! filemanager de Fehler beim Hochladen der Datei! maximum size for uploads filemanager de Maximale Größe beim Hochladen +you need to select a file first! etemplate de Sie müssen zuerst eine Datei auswählen! diff --git a/etemplate/lang/egw_en.lang b/etemplate/lang/egw_en.lang index 11972039cf..78776f6932 100644 --- a/etemplate/lang/egw_en.lang +++ b/etemplate/lang/egw_en.lang @@ -422,3 +422,4 @@ you are not allowed to export more then %1 entries! etemplate en You are not all you can respond by visiting: etemplate en You can respond by visiting: error uploading file! filemanager en Error uploading file! maximum size for uploads filemanager en Maximum size for uploads +you need to select a file first! etemplate en You need to select a file first!