From 8c913bb95aac9fe340e28aebbfa3dcff2170728a Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Mon, 14 Jun 2010 20:17:55 +0000 Subject: [PATCH] correct validation errors, if no file selected or file could not be attached --- etemplate/inc/class.link_widget.inc.php | 27 ++++++++++++++++--------- etemplate/lang/egw_de.lang | 1 + etemplate/lang/egw_en.lang | 1 + 3 files changed, 19 insertions(+), 10 deletions(-) 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 6b0329e0c9..670b8f7037 100644 --- a/etemplate/lang/egw_de.lang +++ b/etemplate/lang/egw_de.lang @@ -430,4 +430,5 @@ xslt template etemplate de XSLT Template year etemplate de Jahr you are not allowed to export more then %1 entries! etemplate de Sie sind nicht berechtigt mehr als %1 Datensätze zu exportieren! you can respond by visiting: etemplate de Sie können unter dem folgenden Verweis antworten: +you need to select a file first! etemplate de Sie müssen zuerst eine Datei auswählen! your code is incorrect !!! etemplate de Ihr Code ist nicht richtig!!! diff --git a/etemplate/lang/egw_en.lang b/etemplate/lang/egw_en.lang index 383b65504c..3761a5f772 100644 --- a/etemplate/lang/egw_en.lang +++ b/etemplate/lang/egw_en.lang @@ -430,4 +430,5 @@ xslt template etemplate en XSLT Template year etemplate en Year you are not allowed to export more then %1 entries! etemplate en You are not allowed to export more then %1 entries! you can respond by visiting: etemplate en You can respond by visiting: +you need to select a file first! etemplate en You need to select a file first! your code is incorrect !!! etemplate en Your code is incorrect !!!