mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-08 23:19:04 +01:00
fixed date-widget for 12h timeformat:
- replaced extra am/pm radio buttons with single selectbox with times includeing am/pm (works much better with the existing layouts) - fixed wired 12h clock: 12am,1am-11am,12pm,1pm-11pm (0-23h) - added an select-hour widget to the select-widgets for the above
This commit is contained in:
parent
19f65c4c0a
commit
12e821b883
@ -105,7 +105,7 @@
|
|||||||
'm' => '',
|
'm' => '',
|
||||||
'd' => '',
|
'd' => '',
|
||||||
'H' => '',
|
'H' => '',
|
||||||
'i' => ''
|
'i' => '',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
elseif ($data_format != '')
|
elseif ($data_format != '')
|
||||||
@ -142,21 +142,17 @@
|
|||||||
}
|
}
|
||||||
$time_0h0 = !(int)$value['H'] && !(int)$value['i'];
|
$time_0h0 = !(int)$value['H'] && !(int)$value['i'];
|
||||||
|
|
||||||
|
$readonly = $cell['readonly'] || $readonlys;
|
||||||
|
|
||||||
$timeformat = array(3 => 'H', 4 => 'i');
|
$timeformat = array(3 => 'H', 4 => 'i');
|
||||||
if ($this->timeformat == '12')
|
if ($this->timeformat == '12' && $readonly && $value['H'] !== '')
|
||||||
{
|
{
|
||||||
$value['a'] = $value['H'] < 12 ? 'am' : 'pm';
|
$value['a'] = $value['H'] < 12 ? 'am' : 'pm';
|
||||||
|
$value['H'] = $value['H'] % 12 ? $value['H'] % 12 : 12; // no leading 0 and 0h => 12am
|
||||||
if ($value['H'] > 12)
|
|
||||||
{
|
|
||||||
$value['H'] -= 12;
|
|
||||||
}
|
|
||||||
$timeformat += array(5 => 'a');
|
$timeformat += array(5 => 'a');
|
||||||
}
|
}
|
||||||
$format = split('[/.-]',$this->dateformat);
|
$format = split('[/.-]',$this->dateformat);
|
||||||
|
|
||||||
$readonly = $cell['readonly'] || $readonlys;
|
|
||||||
|
|
||||||
// no time also if $options&8 and readonly and time=0h0
|
// no time also if $options&8 and readonly and time=0h0
|
||||||
if ($type != 'date' && !($readonly && ($options & 8) && $time_0h0))
|
if ($type != 'date' && !($readonly && ($options & 8) && $time_0h0))
|
||||||
{
|
{
|
||||||
@ -164,6 +160,8 @@
|
|||||||
}
|
}
|
||||||
if ($readonly) // is readonly
|
if ($readonly) // is readonly
|
||||||
{
|
{
|
||||||
|
if ($value['H'] === '') unset($value['a']); // no am/pm if no hour set
|
||||||
|
|
||||||
$sep = array(
|
$sep = array(
|
||||||
1 => $this->dateformat[1],
|
1 => $this->dateformat[1],
|
||||||
2 => $this->dateformat[1],
|
2 => $this->dateformat[1],
|
||||||
@ -209,7 +207,7 @@
|
|||||||
'm' => 'select-month',
|
'm' => 'select-month',
|
||||||
'M' => 'select-month',
|
'M' => 'select-month',
|
||||||
'd' => 'select-day',
|
'd' => 'select-day',
|
||||||
'H' => 'select-number',
|
'H' => 'select-hour',
|
||||||
'i' => 'select-number'
|
'i' => 'select-number'
|
||||||
);
|
);
|
||||||
$opts = array(
|
$opts = array(
|
||||||
@ -282,19 +280,6 @@
|
|||||||
unset($dcell);
|
unset($dcell);
|
||||||
}
|
}
|
||||||
if ($type == 'date-houronly') $n++; // no minutes
|
if ($type == 'date-houronly') $n++; // no minutes
|
||||||
|
|
||||||
if ($n == 4 && $type != 'date' && $this->timeformat == '12')
|
|
||||||
{
|
|
||||||
$dcell = $tpl->empty_cell();
|
|
||||||
$dcell['type'] = 'radio';
|
|
||||||
$dcell['name'] = 'a';
|
|
||||||
$dcell['help'] = $cell['help'];
|
|
||||||
$dcell['size'] = $dcell['label'] = 'am';
|
|
||||||
$row[$tpl->num2chrs(++$i)] = $dcell;
|
|
||||||
$dcell['size'] = $dcell['label'] = 'pm';
|
|
||||||
$row[$tpl->num2chrs(++$i)] = &$dcell;
|
|
||||||
unset($dcell);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$tpl->data[0] = array();
|
$tpl->data[0] = array();
|
||||||
$tpl->data[1] = &$row;
|
$tpl->data[1] = &$row;
|
||||||
@ -525,13 +510,6 @@
|
|||||||
$value['d'] = $value['m'] = 1;
|
$value['d'] = $value['m'] = 1;
|
||||||
$value['Y'] = 1970;
|
$value['Y'] = 1970;
|
||||||
}
|
}
|
||||||
if (isset($value['a']))
|
|
||||||
{
|
|
||||||
if ($value['a'] == 'pm' && $value['H'] < 12)
|
|
||||||
{
|
|
||||||
$value['H'] += 12;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// checking the date is a correct one
|
// checking the date is a correct one
|
||||||
if (!checkdate($value['m'],$value['d'],$value['Y']))
|
if (!checkdate($value['m'],$value['d'],$value['Y']))
|
||||||
{
|
{
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
'select-month' => 'Select Month',
|
'select-month' => 'Select Month',
|
||||||
'select-day' => 'Select Day',
|
'select-day' => 'Select Day',
|
||||||
'select-dow' => 'Select Day of week',
|
'select-dow' => 'Select Day of week',
|
||||||
|
'select-hour' => 'Select Hour', // either 0-23 or 0am-11am,12pm,1pm-11pm
|
||||||
'select-number' => 'Select Number',
|
'select-number' => 'Select Number',
|
||||||
'select-app' => 'Select Application'
|
'select-app' => 'Select Application'
|
||||||
);
|
);
|
||||||
@ -426,6 +427,16 @@
|
|||||||
$cell['no_lang'] = True;
|
$cell['no_lang'] = True;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'select-hour':
|
||||||
|
for ($h = 0; $h <= 23; ++$h)
|
||||||
|
{
|
||||||
|
$cell['sel_options'][$h] = $GLOBALS['egw_info']['user']['preferences']['common']['timeformat'] == 12 ?
|
||||||
|
(($h % 12 ? $h % 12 : 12).' '.($h < 12 ? lang('am') : lang('pm'))) :
|
||||||
|
sprintf('%02d',$h);
|
||||||
|
}
|
||||||
|
$cell['no_lang'] = True;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'select-app': // type2: ''=users enabled apps, 'installed', 'all' = not installed ones too
|
case 'select-app': // type2: ''=users enabled apps, 'installed', 'all' = not installed ones too
|
||||||
$apps = array();
|
$apps = array();
|
||||||
foreach ($GLOBALS['egw_info']['apps'] as $app => $data)
|
foreach ($GLOBALS['egw_info']['apps'] as $app => $data)
|
||||||
|
Loading…
Reference in New Issue
Block a user