From ce01a0f9b9999857df5a1211e62b28bd1c9888be Mon Sep 17 00:00:00 2001 From: Robert Sesek Date: Mon, 25 Jul 2005 01:03:27 +0000 Subject: [PATCH] r325: - All custom field data in showreport.php is now handled by construct_custom_fields() - Moved bug information into tabular form - Finished most of the showreport.php styling --- includes/functions.php | 149 +++++++++++------ showreport.php | 95 ++++------- templates/bugfield_input_checkbox.tpl | 5 +- templates/bugfield_input_text.tpl | 5 +- templates/bugfield_select_single.tpl | 5 +- templates/bugfield_static_text.tpl | 4 + templates/customfield_bit.tpl | 7 + templates/pcv_select_row.tpl | 2 +- templates/showreport.tpl | 227 +++++++++++++++++++------- templates/style.css | 27 +++ 10 files changed, 350 insertions(+), 176 deletions(-) create mode 100644 templates/bugfield_static_text.tpl create mode 100644 templates/customfield_bit.tpl diff --git a/includes/functions.php b/includes/functions.php index 15cbbfa..7b05fc5 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -68,7 +68,7 @@ function can_perform($bitmask, $userinfo = null) // #################### Start construct_pcv_select ################### // constructs a product/component/version select with one go :-) // NB: need to make sure we have the option to turn off just p/c selection without v -function construct_pcv_select($select = '', $prefix = '     ') +function construct_pcv_select($select = '', $prefix = '--') { global $bugsys; static $HTML; @@ -79,7 +79,7 @@ function construct_pcv_select($select = '', $prefix = '    & } - $selected = ' checked="checked"'; + $selected = ' selected="selected"'; $products_fetch = $bugsys->db->query("SELECT * FROM " . TABLE_PREFIX . "product ORDER BY displayorder ASC"); while ($product = $bugsys->db->fetch_array($products_fetch)) @@ -105,18 +105,21 @@ function construct_pcv_select($select = '', $prefix = '    & $row['prefix'] = ''; $valuepfx = "p$product[productid]"; $row['value'] = "{$valuepfx}c0v0"; - $row['title'] = "$product[title]"; + $row['title'] = $product['title']; + $row['optgroup'] = true; $row['description'] = $product['description']; $show['input'] = false; + $begin = true; eval('$HTML .= "' . $bugsys->template->fetch('pcv_select_row') . '";'); $HTML .= construct_pcv_select_global_version($product['productid'], 0, $versions, $prefix, $select); if (is_array($versions["$product[productid]"])) { foreach ($versions["$product[productid]"] AS $version) { - $row['prefix'] = $prefix . $prefix; + $row['prefix'] = $prefix . $prefix . ' '; $row['value'] = "{$valuepfx}c0v$version[versionid]"; $row['title'] = $version['version']; + $row['optgroup'] = false; $row['selected'] = (($select == $row['value']) ? $selected : ''); $row['description'] = ''; $show['input'] = true; @@ -128,11 +131,14 @@ function construct_pcv_select($select = '', $prefix = '    & { foreach ($components["$product[productid]"] AS $component) { - $row['prefix'] = $prefix; + $row['prefix'] = $prefix . ' '; $valuepfx .= "c$component[productid]"; $row['value'] = "{$valuepfx}v0"; $row['selected'] = (($select == $row['value']) ? $selected : ''); - $row['title'] = "$component[title]"; + $row['title'] = $component['title']; + $row['depth'] = 1; + $row['optgroup'] = true; + $begin = true; $row['description'] = $component['description']; $show['input'] = false; eval('$HTML .= "' . $bugsys->template->fetch('pcv_select_row') . '";'); @@ -142,16 +148,23 @@ function construct_pcv_select($select = '', $prefix = '    & foreach ($versions["$component[productid]"] AS $version) { $show['input'] = true; - $row['prefix'] = $prefix . $prefix; + $row['prefix'] = $prefix . $prefix . ' '; $row['value'] = "{$valuepfx}v$version[versionid]"; $row['selected'] = (($select == $row['value']) ? $selected : ''); $row['title'] = $version['version']; + $row['optgroup'] = false; $row['description'] = ''; eval('$HTML .= "' . $bugsys->template->fetch('pcv_select_row') . '";'); } } } + $row['optgroup'] = true; + $begin = false; + eval('$HTML .= "' . $bugsys->template->fetch('pcv_select_row') . '";'); } + $row['optgroup'] = true; + $begin = false; + eval('$HTML .= "' . $bugsys->template->fetch('pcv_select_row') . '";'); } return $HTML; @@ -165,11 +178,12 @@ function construct_pcv_select_global_version($product = 0, $component = 0, $vers { foreach ($versions['0'] AS $version) { - $row['prefix'] = $prefix . $prefix; + $row['prefix'] = $prefix . $prefix. ' '; $row['typeselect'] = $type; $row['value'] = "p{$product}c{$component}v$version[versionid]"; - $row['selected'] = (($select == $row['value']) ? ' checked="checked"' : ''); + $row['selected'] = (($select == $row['value']) ? ' selected="selected"' : ''); $row['title'] = $version['version']; + $row['optgroup'] = false; $row['description'] = ''; $show['input'] = true; eval('$global_versions_html .= "' . $bugsys->template->fetch('pcv_select_row') . '";'); @@ -316,11 +330,11 @@ function construct_custom_fields($bug = array()) { $fields = array(); $fields_fetch = $bugsys->db->query(" - SELECT bugfield.* + SELECT bugfield.*, permission.mask FROM " . TABLE_PREFIX . "bugfield AS bugfield LEFT JOIN " . TABLE_PREFIX . "bugfieldpermission AS permission ON (bugfield.fieldid = permission.fieldid) - WHERE permission.mask = 2 + WHERE (permission.mask = 2 OR permission.mask = 1) AND permission.usergroupid = {$bugsys->userinfo['usergroupid']}" ); while ($field = $bugsys->db->fetch_array($fields_fetch)) @@ -329,12 +343,15 @@ function construct_custom_fields($bug = array()) } } + $fieldvalues = $bugsys->db->query_first("SELECT * FROM " . TABLE_PREFIX . "bugvaluefill WHERE bugid = $bug[bugid]"); + $fieldbits = ''; foreach ($fields AS $field) { if (!is_null($bug["field$field[fieldid]"])) { + $bugsys->debug("not null: $field[fieldid]"); $value = $bug["field$field[fieldid]"]; } else @@ -342,53 +359,91 @@ function construct_custom_fields($bug = array()) $value = $field['defaultvalue']; } - switch ($field['type']) + if ($field['mask'] == 2) { - case 'input_text': - eval('$tempfield = "' . $bugsys->template->fetch('bugfield_input_text') . '";'); - break; - - case 'input_checkbox': - $selected = (($value) ? ' checked="checked"' : ''); - eval('$tempfield = "' . $bugsys->template->fetch('bugfield_input_checkbox') . '";'); - break; - - case 'select_single': - $selects = unserialize($field['selects']); - $value = trim($value); + switch ($field['type']) + { + case 'input_text': + eval('$tempfield = "' . $bugsys->template->fetch('bugfield_input_text') . '";'); + break; - $options = ''; + case 'input_checkbox': + $selected = (($value) ? ' checked="checked"' : ''); + eval('$tempfield = "' . $bugsys->template->fetch('bugfield_input_checkbox') . '";'); + break; - $id = -1; - $select = ''; - if (!$field['usedefault'] AND !trim($value)) - { - $selected = ' selected="selected"'; - } - else - { - $selected = ''; - } - eval('$options .= "' . $bugsys->template->fetch('bugfield_select_single_option') . '";'); - - foreach ($selects AS $id => $select) - { - $selected = ''; - $select = stripslashes(trim($select)); - if ($select == $value) + case 'select_single': + $selects = unserialize($field['selects']); + $value = trim($value); + + $options = ''; + + $id = -1; + $select = ''; + if (!$field['usedefault'] AND !trim($value)) { $selected = ' selected="selected"'; } - else if ($field['usedefault'] AND $id == 0) + else { - $selected = ' selected="selected"'; + $selected = ''; } eval('$options .= "' . $bugsys->template->fetch('bugfield_select_single_option') . '";'); + + foreach ($selects AS $id => $select) + { + $selected = ''; + $select = stripslashes(trim($select)); + if ($select == $value) + { + $selected = ' selected="selected"'; + } + else if ($field['usedefault'] AND $id == 0) + { + $selected = ' selected="selected"'; + } + eval('$options .= "' . $bugsys->template->fetch('bugfield_select_single_option') . '";'); + } + eval('$tempfield = "' . $bugsys->template->fetch('bugfield_select_single') . '";'); + break; + } + } + else + { + $bugsys->debug('mask 1 processing'); + if (is_null($fieldvalues["field$field[fieldid]"])) + { + $bugsys->debug("is null: $field[fieldid]"); + if ($field['type'] == 'select_single') + { + if ($field['usedefault']) + { + $temp = unserialize($field['selects']); + $value = trim($temp[0]); + } + else + { + $value = $fieldvalues["field$field[fieldid]"]; + } } - eval('$tempfield = "' . $bugsys->template->fetch('bugfield_select_single') . '";'); - break; + else + { + $value = $field['defaultvalue']; + } + } + else + { + $value = $fieldvalues["field$field[fieldid]"]; + } + + if ($field['type'] == 'input_checkbox') + { + $value = (($value) ? 'True' : 'False'); + } + $field['value'] = $value; + eval('$tempfield = "' . $bugsys->template->fetch('bugfield_static_text') . '";'); } - $fieldbits .= $tempfield; + $fieldbits[] = $tempfield; } return $fieldbits; diff --git a/showreport.php b/showreport.php index 5fb7f4e..c4929e9 100644 --- a/showreport.php +++ b/showreport.php @@ -11,7 +11,7 @@ \*=====================================================================*/ $fetchtemplates = array( - 'SHOWREPORT', + 'showreport', 'showreport_attachment', 'showreport_comment', 'quicksearch', @@ -84,6 +84,8 @@ if ($bug['hidden'] AND !can_perform('canviewhidden')) $favourite = (bool)$db->query_first("SELECT * FROM " . TABLE_PREFIX . "favourite WHERE bugid = $bug[bugid] AND userid = " . $bugsys->userinfo['userid']); $favouritetext = (($favourite) ? 'Remove from Favourites' : 'Add to Favourites'); +$bug['userinfo'] = construct_user_display($bug); +$bug['datetime'] = $datef->format($bugsys->options['dateformat'], $bug['dateline']); // ################################################################### // edit display @@ -114,9 +116,7 @@ if ($show['edit']) $pcv_select = construct_pcv_select("p$bug[productid]c$bug[componentid]v$bug[versionid]"); $firstcomment = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "comment WHERE bugid = $bug[bugid] ORDER BY dateline ASC LIMIT 1"); - - $customfields = construct_custom_fields($bug); - + if ($bug['duplicateof']) { $duplicate = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug[duplicateof]"); @@ -140,7 +140,7 @@ if ($show['edit']) $label = $action['name']; $value = $action['actionid']; $selected = false; - eval('$select[autoaction] .= "' . $bugsys->template->fetch('selectoption') . '";'); + eval('$select[autoaction] .= "' . $template->fetch('selectoption') . '";'); $show['autoactions'] = true; } if ($show['autoactions']) @@ -148,7 +148,7 @@ if ($show['edit']) $label = ''; $value = 0; $selected = true; - eval('$select[autoaction] = "' . $bugsys->template->fetch('selectoption') . '" . $select[autoaction];'); + eval('$select[autoaction] = "' . $template->fetch('selectoption') . '" . $select[autoaction];'); } } @@ -158,7 +158,6 @@ else { // ------------------------------------------------------------------- // prep display - $bug['userinfo'] = construct_user_display($bug); $bug['product'] = $bugsys->datastore['product']["$bug[productid]"]['title']; $bug['component'] = (($bug['componentid']) ? $bugsys->datastore['product']["$bug[componentid]"]['title'] : ''); $bug['version'] = $bugsys->datastore['version']["$bug[versionid]"]['version']; @@ -188,64 +187,36 @@ else } $dependencies = implode(' ', $depends); } - - // ------------------------------------------------------------------- - // custom fields - $customfields = ''; - - $allfields = $db->query(" - SELECT bugfield.* - FROM " . TABLE_PREFIX . "bugfield AS bugfield - LEFT JOIN " . TABLE_PREFIX . "bugfieldpermission AS permission - ON (bugfield.fieldid = permission.fieldid) - WHERE permission.mask <> 0 - AND permission.usergroupid = {$bugsys->userinfo['usergroupid']}" - ); - while ($field = $db->fetch_array($allfields)) +} + +// ################################################################### +// custom field output + +$fields = construct_custom_fields($bug); + +$bugsys->debug(count($fields) % 2); +$i = 1; +foreach ($fields AS $field) +{ + $bugsys->debug("i = $i"); + if ($i == 1) { - $fieldlist["$field[fieldid]"] = $field; + $left = $field; } - - $fieldvalues = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bugvaluefill WHERE bugid = $bug[bugid]"); - - foreach ($fieldlist AS $fieldid => $field) + else if ($i == 2) { - if (is_null($fieldvalues["field$fieldid"])) - { - if ($field['type'] == 'select_single') - { - if ($field['usedefault']) - { - $temp = unserialize($field['selects']); - $value = trim($temp[0]); - } - else - { - continue; - } - } - else - { - $value = $field['defaultvalue']; - } - } - else - { - $value = $fieldvalues["field$fieldid"]; - } - - $customfields .= "
$field[name]: "; - - if ($field['type'] == 'input_text' OR $field['type'] == 'select_single') - { - $customfields .= $value; - } - else if ($field['type'] == 'input_checkbox') - { - $customfields .= (($value) ? 'True' : 'False'); - } - $customfields .= "
\n\n"; + $right = $field; + eval('$customfields .= "' . $template->fetch('customfield_bit') . '";'); + $i = 0; } + $i++; +} + +if ((count($fields) % 2) != 0) +{ + $bugsys->debug('no modulo for you'); + $right = ''; + eval('$customfields .= "' . $template->fetch('customfield_bit') . '";'); } // ################################################################### @@ -341,7 +312,7 @@ if (is_array($hilight)) } } -eval('$template->flush("' . $template->fetch('SHOWREPORT') . '");'); +eval('$template->flush("' . $template->fetch('showreport') . '");'); /*=====================================================================*\ || ################################################################### diff --git a/templates/bugfield_input_checkbox.tpl b/templates/bugfield_input_checkbox.tpl index 5db95cd..856f4d6 100644 --- a/templates/bugfield_input_checkbox.tpl +++ b/templates/bugfield_input_checkbox.tpl @@ -1 +1,4 @@ -
$field[name]: custom[$field[fieldid]]field$field[fieldid]" type="checkbox" value="1"$selected />
\ No newline at end of file + + $field[name] + custom[$field[fieldid]]field$field[fieldid]" type="checkbox" value="1"$selected /> + \ No newline at end of file diff --git a/templates/bugfield_input_text.tpl b/templates/bugfield_input_text.tpl index e0e140a..ea4e601 100644 --- a/templates/bugfield_input_text.tpl +++ b/templates/bugfield_input_text.tpl @@ -1 +1,4 @@ -
$field[name]: custom[$field[fieldid]]field$field[fieldid]" type="text" value="$value" size="35"maxlength="$field[maxlength] />
\ No newline at end of file + + $field[name] + custom[$field[fieldid]]field$field[fieldid]" type="text" value="$value" size="35"maxlength="$field[maxlength] /> + diff --git a/templates/bugfield_select_single.tpl b/templates/bugfield_select_single.tpl index 9ed7daf..4b39074 100644 --- a/templates/bugfield_select_single.tpl +++ b/templates/bugfield_select_single.tpl @@ -1 +1,4 @@ -
$field[name]:
\ No newline at end of file + + $field[name] + + \ No newline at end of file diff --git a/templates/bugfield_static_text.tpl b/templates/bugfield_static_text.tpl new file mode 100644 index 0000000..47aac79 --- /dev/null +++ b/templates/bugfield_static_text.tpl @@ -0,0 +1,4 @@ + + $field[name] + $field[value] + diff --git a/templates/customfield_bit.tpl b/templates/customfield_bit.tpl new file mode 100644 index 0000000..9034c8b --- /dev/null +++ b/templates/customfield_bit.tpl @@ -0,0 +1,7 @@ + +$left + +$right +   + + diff --git a/templates/pcv_select_row.tpl b/templates/pcv_select_row.tpl index b017afb..2748a77 100755 --- a/templates/pcv_select_row.tpl +++ b/templates/pcv_select_row.tpl @@ -1 +1 @@ -$row[prefix] $row[title]: $row[description]
+$row[prefix]$row[title] \ No newline at end of file diff --git a/templates/showreport.tpl b/templates/showreport.tpl index d3c8c2e..e9903fa 100644 --- a/templates/showreport.tpl +++ b/templates/showreport.tpl @@ -2,78 +2,179 @@ $doctype $headinclude $header - -
- - - - - -
style="color: red">Hidden: checked="checked" />
- -
This bug is hidden!
-
- -
Bug ID: $bug[bugid]
-
Reported by: $bug[userinfo]
- - -
Summary/Title:
-
Severity:
+ + + + + + + + + + - -
Assigned to:
-
- -
Duplicate of: $bug[duplicateof]" /> $duplicate[summary]
- -
Dependencies: $dependencies
+ + + + + + + + + + -
Product/Component/Version: -
$pcv_select
-
+ + + + + + + + + + -
Automatic Response Action: -
-
+ + + + + + + + + + - $customfields + + + + + + + + + + - -
Comment:
- -
- -
Product: $bug[product] / Component: $bug[component] / Version: $bug[version]
-
Title / summary: $bug[summary]
-
Status: $bug[status] / Resolution: $bug[resolution]
-
Severity: $bug[severity]
-
Priority: $bug[priority]
-
Assigned to: $bug[assigninfo]
-
Duplicate of: $duplicateof[summary]
-
Bugs marked as duplicates of this: $dupelist
-
Dependencies: $dependencies
- $customfields + +
+ + + + + + + + - - - - -
Comment:
- -
- -
+ + + + + + + + + + + + +$customfields + + + + + + + + + + + + + + -
- + + + + + +
Bug ID + $bug[bugid] - -
Priority:
-
Status:
-
Resolution:
-
+ + / + class="error">Hidden: + checked="checked" /> + + / Hidden Bug + +
Summary + + + + $bug[summary] + +
Reporter$bug[userinfo]Product/Version + + + + $bug[product] / $bug[component] / $bug[version] + +
Report Time$bug[datetime]Assignment + + + + $bug[assigninfo] + +
Status + + + + $bug[status] + + Resolution + + + + $bug[resolution] + +
Severity + + + + $bug[severity] + + Priority + + + + $bug[priority] + +
Duplicate Of + + $bug[duplicateof]" /> + $duplicate[bugid] + + $duplicateof[summary] + + Dependencies + + $dependencies + + $dependencies + +
2" style="vertical-align: top"4"> + New Reply + + style="margin-top: 15px">Automatic Action: +
+ + +
diff --git a/templates/style.css b/templates/style.css index 50e2b1f..60d65b2 100644 --- a/templates/style.css +++ b/templates/style.css @@ -100,6 +100,33 @@ body font-weight: bold; } +.tborder +{ + background-color: rgb(71, 71, 71); +} + +.tlabel +{ + font-weight: bold; + background-color: rgb(51, 51, 51); + color: rgb(255, 255, 255); + width: 15%; + padding-left: 4px; +} + +.tdata +{ + width: 35%; + background-color: rgb(255, 255, 255); +} + +.tfoot +{ + background-color: rgb(122, 122, 122); + text-align: center; + font-weight: bold; +} + #copyright { text-align: center; -- 2.22.5