From: <ral...@us...> - 2012-10-31 09:18:47
|
Author: ralfbecker Date: Wed Oct 31 10:18:39 2012 New Revision: 40720 URL: http://svn.stylite.de/viewvc/egroupware?rev=40720&view=rev Log: * eTemplate/all apps: fixed not working display of floating point values in input fields for Chrome or Safarie (browsers supporting html5 input type="number") Modified: trunk/etemplate/inc/class.etemplate_old.inc.php Modified: trunk/etemplate/inc/class.etemplate_old.inc.php URL: http://svn.stylite.de/viewvc/egroupware/trunk/etemplate/inc/class.etemplate_old.inc.php?rev=40720&r1=40719&r2=40720&view=diff ============================================================================== --- trunk/etemplate/inc/class.etemplate_old.inc.php (original) +++ trunk/etemplate/inc/class.etemplate_old.inc.php Wed Oct 31 10:18:39 2012 @@ -1986,6 +1986,11 @@ /** * Format a number according to user prefs with decimal and thousands separator (later only for readonly) * + * HTML5 input type=number requires a float value with a dot, not comma! + * Chrome 22 and Safari 6 shows no value if a comma is used, + * while FF 16, IE 9 and 10 have no support for input type=number :-( + * --> use . as decimal separator for browser supporting html5 input type=number + * * @param int|float|string $number * @param int $num_decimal_places=2 * @param boolean $readonly=true @@ -2002,7 +2007,13 @@ } if ((string)$number === '') return ''; - return number_format(str_replace(' ','',$number),$num_decimal_places,$dec_separator,$readonly ? $thousands_separator : ''); + $ret = number_format(str_replace(' ','',$number), $num_decimal_places, + // need to use '.' as decimal separator for all browser supporting html5 input type=number + $dec_sep_used=$readonly || !in_array(html::$user_agent, array('chrome', 'safari', 'opera')) ? + $dec_separator : '.', + $readonly ? $thousands_separator : ''); + //error_log(__METHOD__."($number, $num_decimal_places, $readonly) html::user_agent=".html::$user_agent.", dec_sep='$dec_separator' --> '$dec_sep_used', thousands_sep='$thousands_separator' returning '$ret'"); + return $ret; } /** |