* InfoLog: change status in context menu shows now labels and icons from all types and fixed my.stylite.de bug #3359: not being able to set custom status

This commit is contained in:
Ralf Becker 2012-05-15 16:24:06 +00:00
parent feb64d5b16
commit 619691e462

View File

@ -822,7 +822,7 @@ if(typeof widget != 'undefined') {
} }
widget.dataview.getColumnMgr().updated = true; widget.dataview.getColumnMgr().updated = true;
// Update page // Update page
widget.dataview.updateColumns(); widget.dataview.updateColumns();
} }
@ -963,23 +963,30 @@ else
// if filtered by type, show only the stati of the filtered type // if filtered by type, show only the stati of the filtered type
if ($query['col_filter']['info_type'] && isset($this->bo->status[$query['col_filter']['info_type']])) if ($query['col_filter']['info_type'] && isset($this->bo->status[$query['col_filter']['info_type']]))
{ {
$statis = $this->bo->status[$query['col_filter']['info_type']]; $statis = $icons = $this->bo->status[$query['col_filter']['info_type']];
} }
else // show all stati else // show all stati
{ {
$statis = array(); $statis = $icons = array();
foreach($this->bo->status as $type => $stati) foreach($this->bo->status as $type => $stati)
{ {
if ($type == 'defaults') continue; if ($type == 'defaults') continue;
$statis += $stati; foreach($stati as $val => $label)
{
$statis[$val][$label] = lang($label);
if (!isset($icons[$val])) $icons[$val] = $label;
}
}
foreach($statis as $val => &$labels)
{
$labels = implode(', ', $labels);
} }
$statis = array_unique($statis);
} }
foreach($statis as $type => &$data) foreach($statis as $type => &$data)
{ {
$data = array( $data = array(
'caption' => $data, 'caption' => $data,
'icon' => $type, 'icon' => $icons[$type],
); );
} }
@ -1366,7 +1373,7 @@ else
$this->bo->status['defaults'][$entry['info_type']]; $this->bo->status['defaults'][$entry['info_type']];
// fall-through // fall-through
case 'status': case 'status':
if(in_array($settings, $this->bo->status[$entry['info_type']])) if(isset($this->bo->status[$entry['info_type']][$settings]))
{ {
$action_msg = lang('changed status to %1', lang($this->bo->status[$entry['info_type']][$settings])); $action_msg = lang('changed status to %1', lang($this->bo->status[$entry['info_type']][$settings]));
if($settings != 'done' && $entry['info_status'] == 'done' && $entry['info_percent'] == 100) if($settings != 'done' && $entry['info_status'] == 'done' && $entry['info_percent'] == 100)