* bug: displays a hover message when the mouse is hovering over a cell in browse page.

This commit is contained in:
liugang
2023-09-27 09:55:25 +08:00
parent b47ea2dc98
commit 85cb7e8175
2 changed files with 43 additions and 41 deletions
+24 -25
View File
@@ -202,7 +202,7 @@ $config->bug->datatable->fieldList['status']['sortType'] = true;
$config->bug->datatable->fieldList['status']['show'] = true;
$config->bug->datatable->fieldList['branch']['title'] = 'branch';
$config->bug->datatable->fieldList['branch']['type'] = 'text';
$config->bug->datatable->fieldList['branch']['type'] = 'html';
$config->bug->datatable->fieldList['branch']['fixed'] = 'left';
$config->bug->datatable->fieldList['branch']['width'] = '100';
$config->bug->datatable->fieldList['branch']['sortType'] = true;
@@ -217,13 +217,13 @@ $config->bug->datatable->fieldList['confirmed']['sortType'] = true;
$config->bug->datatable->fieldList['confirmed']['show'] = true;
$config->bug->datatable->fieldList['type']['title'] = 'type';
$config->bug->datatable->fieldList['type']['type'] = 'category';
$config->bug->datatable->fieldList['type']['type'] = 'html';
$config->bug->datatable->fieldList['type']['fixed'] = 'no';
$config->bug->datatable->fieldList['type']['width'] = '90';
$config->bug->datatable->fieldList['type']['sortType'] = true;
$config->bug->datatable->fieldList['project']['title'] = 'project';
$config->bug->datatable->fieldList['project']['type'] = 'text';
$config->bug->datatable->fieldList['project']['type'] = 'html';
$config->bug->datatable->fieldList['project']['fixed'] = 'no';
$config->bug->datatable->fieldList['project']['width'] = '120';
$config->bug->datatable->fieldList['project']['sortType'] = true;
@@ -231,34 +231,34 @@ $config->bug->datatable->fieldList['project']['control'] = 'hidden';
$config->bug->datatable->fieldList['project']['dataSource'] = array('module' => 'project', 'method' => 'getPairs');
$config->bug->datatable->fieldList['execution']['title'] = 'execution';
$config->bug->datatable->fieldList['execution']['type'] = 'text';
$config->bug->datatable->fieldList['execution']['type'] = 'html';
$config->bug->datatable->fieldList['execution']['fixed'] = 'no';
$config->bug->datatable->fieldList['execution']['width'] = '120';
$config->bug->datatable->fieldList['execution']['sortType'] = true;
$config->bug->datatable->fieldList['execution']['dataSource'] = array('module' => 'execution', 'method' =>'getPairs');
$config->bug->datatable->fieldList['plan']['title'] = 'plan';
$config->bug->datatable->fieldList['plan']['type'] = 'text';
$config->bug->datatable->fieldList['plan']['type'] = 'html';
$config->bug->datatable->fieldList['plan']['fixed'] = 'no';
$config->bug->datatable->fieldList['plan']['width'] = '120';
$config->bug->datatable->fieldList['plan']['sortType'] = true;
$config->bug->datatable->fieldList['openedBy']['title'] = 'openedByAB';
$config->bug->datatable->fieldList['openedBy']['type'] = 'user';
$config->bug->datatable->fieldList['openedBy']['type'] = 'html';
$config->bug->datatable->fieldList['openedBy']['fixed'] = 'no';
$config->bug->datatable->fieldList['openedBy']['width'] = '80';
$config->bug->datatable->fieldList['openedBy']['sortType'] = true;
$config->bug->datatable->fieldList['openedBy']['show'] = true;
$config->bug->datatable->fieldList['openedDate']['title'] = 'openedDateAB';
$config->bug->datatable->fieldList['openedDate']['type'] = 'date';
$config->bug->datatable->fieldList['openedDate']['type'] = 'html';
$config->bug->datatable->fieldList['openedDate']['fixed'] = 'no';
$config->bug->datatable->fieldList['openedDate']['width'] = '90';
$config->bug->datatable->fieldList['openedDate']['sortType'] = true;
$config->bug->datatable->fieldList['openedDate']['show'] = true;
$config->bug->datatable->fieldList['openedBuild']['title'] = 'openedBuild';
$config->bug->datatable->fieldList['openedBuild']['type'] = 'text';
$config->bug->datatable->fieldList['openedBuild']['type'] = 'html';
$config->bug->datatable->fieldList['openedBuild']['fixed'] = 'no';
$config->bug->datatable->fieldList['openedBuild']['width'] = '120';
$config->bug->datatable->fieldList['openedBuild']['sortType'] = true;
@@ -268,45 +268,44 @@ $config->bug->datatable->fieldList['openedBuild']['dataSource'] = array('module'
$config->bug->datatable->fieldList['assignedTo']['title'] = 'assignedTo';
$config->bug->datatable->fieldList['assignedTo']['type'] = 'html';
$config->bug->datatable->fieldList['assignedTo']['fixed'] = 'no';
$config->bug->datatable->fieldList['assignedTo']['assignLink'] = array('module' => 'bug', 'method' => 'assignTo', 'params' => 'bugID={id}');
$config->bug->datatable->fieldList['assignedTo']['width'] = '90';
$config->bug->datatable->fieldList['assignedTo']['sortType'] = true;
$config->bug->datatable->fieldList['assignedTo']['show'] = true;
$config->bug->datatable->fieldList['assignedTo']['dataSource'] = array('module' => 'user', 'method' =>'getPairs', 'params' => 'noclosed|noletter');
$config->bug->datatable->fieldList['assignedDate']['title'] = 'assignedDate';
$config->bug->datatable->fieldList['assignedDate']['type'] = 'date';
$config->bug->datatable->fieldList['assignedDate']['type'] = 'html';
$config->bug->datatable->fieldList['assignedDate']['fixed'] = 'no';
$config->bug->datatable->fieldList['assignedDate']['width'] = '90';
$config->bug->datatable->fieldList['assignedDate']['sortType'] = true;
$config->bug->datatable->fieldList['deadline']['title'] = 'deadline';
$config->bug->datatable->fieldList['deadline']['type'] = 'date';
$config->bug->datatable->fieldList['deadline']['type'] = 'html';
$config->bug->datatable->fieldList['deadline']['fixed'] = 'no';
$config->bug->datatable->fieldList['deadline']['width'] = '90';
$config->bug->datatable->fieldList['deadline']['sortType'] = true;
$config->bug->datatable->fieldList['resolvedBy']['title'] = 'resolvedBy';
$config->bug->datatable->fieldList['resolvedBy']['type'] = 'user';
$config->bug->datatable->fieldList['resolvedBy']['type'] = 'html';
$config->bug->datatable->fieldList['resolvedBy']['fixed'] = 'no';
$config->bug->datatable->fieldList['resolvedBy']['width'] = '100';
$config->bug->datatable->fieldList['resolvedBy']['sortType'] = true;
$config->bug->datatable->fieldList['resolution']['title'] = 'resolutionAB';
$config->bug->datatable->fieldList['resolution']['type'] = 'category';
$config->bug->datatable->fieldList['resolution']['type'] = 'html';
$config->bug->datatable->fieldList['resolution']['fixed'] = 'no';
$config->bug->datatable->fieldList['resolution']['width'] = '110';
$config->bug->datatable->fieldList['resolution']['sortType'] = true;
$config->bug->datatable->fieldList['resolution']['show'] = true;
$config->bug->datatable->fieldList['resolvedDate']['title'] = 'resolvedDateAB';
$config->bug->datatable->fieldList['resolvedDate']['type'] = 'date';
$config->bug->datatable->fieldList['resolvedDate']['type'] = 'html';
$config->bug->datatable->fieldList['resolvedDate']['fixed'] = 'no';
$config->bug->datatable->fieldList['resolvedDate']['width'] = '120';
$config->bug->datatable->fieldList['resolvedDate']['sortType'] = true;
$config->bug->datatable->fieldList['resolvedBuild']['title'] = 'resolvedBuild';
$config->bug->datatable->fieldList['resolvedBuild']['type'] = 'text';
$config->bug->datatable->fieldList['resolvedBuild']['type'] = 'html';
$config->bug->datatable->fieldList['resolvedBuild']['fixed'] = 'no';
$config->bug->datatable->fieldList['resolvedBuild']['width'] = '120';
$config->bug->datatable->fieldList['resolvedBuild']['sortType'] = true;
@@ -314,13 +313,13 @@ $config->bug->datatable->fieldList['resolvedBuild']['control'] = 'select';
$config->bug->datatable->fieldList['resolvedBuild']['dataSource'] = array('module' => 'bug', 'method' =>'getRelatedObjects', 'params' => 'resolvedBuild&id,name');
$config->bug->datatable->fieldList['activatedCount']['title'] = 'activatedCountAB';
$config->bug->datatable->fieldList['activatedCount']['type'] = 'count';
$config->bug->datatable->fieldList['activatedCount']['type'] = 'html';
$config->bug->datatable->fieldList['activatedCount']['fixed'] = 'no';
$config->bug->datatable->fieldList['activatedCount']['width'] = '80';
$config->bug->datatable->fieldList['activatedCount']['sortType'] = true;
$config->bug->datatable->fieldList['activatedDate']['title'] = 'activatedDate';
$config->bug->datatable->fieldList['activatedDate']['type'] = 'date';
$config->bug->datatable->fieldList['activatedDate']['type'] = 'html';
$config->bug->datatable->fieldList['activatedDate']['fixed'] = 'no';
$config->bug->datatable->fieldList['activatedDate']['width'] = '90';
$config->bug->datatable->fieldList['activatedDate']['sortType'] = true;
@@ -347,51 +346,51 @@ $config->bug->datatable->fieldList['toTask']['width'] = '120';
$config->bug->datatable->fieldList['toTask']['sortType'] = true;
$config->bug->datatable->fieldList['keywords']['title'] = 'keywords';
$config->bug->datatable->fieldList['keywords']['type'] = 'text';
$config->bug->datatable->fieldList['keywords']['type'] = 'html';
$config->bug->datatable->fieldList['keywords']['fixed'] = 'no';
$config->bug->datatable->fieldList['keywords']['width'] = '100';
$config->bug->datatable->fieldList['keywords']['sortType'] = true;
$config->bug->datatable->fieldList['os']['title'] = 'os';
$config->bug->datatable->fieldList['os']['type'] = 'category';
$config->bug->datatable->fieldList['os']['type'] = 'html';
$config->bug->datatable->fieldList['os']['fixed'] = 'no';
$config->bug->datatable->fieldList['os']['width'] = '80';
$config->bug->datatable->fieldList['os']['sortType'] = true;
$config->bug->datatable->fieldList['os']['control'] = 'multiple';
$config->bug->datatable->fieldList['browser']['title'] = 'browser';
$config->bug->datatable->fieldList['browser']['type'] = 'category';
$config->bug->datatable->fieldList['browser']['type'] = 'html';
$config->bug->datatable->fieldList['browser']['fixed'] = 'no';
$config->bug->datatable->fieldList['browser']['width'] = '80';
$config->bug->datatable->fieldList['browser']['sortType'] = true;
$config->bug->datatable->fieldList['browser']['control'] = 'multiple';
$config->bug->datatable->fieldList['mailto']['title'] = 'mailto';
$config->bug->datatable->fieldList['mailto']['type'] = 'user';
$config->bug->datatable->fieldList['mailto']['type'] = 'html';
$config->bug->datatable->fieldList['mailto']['fixed'] = 'no';
$config->bug->datatable->fieldList['mailto']['width'] = '100';
$config->bug->datatable->fieldList['mailto']['sortType'] = true;
$config->bug->datatable->fieldList['closedBy']['title'] = 'closedBy';
$config->bug->datatable->fieldList['closedBy']['type'] = 'user';
$config->bug->datatable->fieldList['closedBy']['type'] = 'html';
$config->bug->datatable->fieldList['closedBy']['fixed'] = 'no';
$config->bug->datatable->fieldList['closedBy']['width'] = '80';
$config->bug->datatable->fieldList['closedBy']['sortType'] = true;
$config->bug->datatable->fieldList['closedDate']['title'] = 'closedDate';
$config->bug->datatable->fieldList['closedDate']['type'] = 'date';
$config->bug->datatable->fieldList['closedDate']['type'] = 'html';
$config->bug->datatable->fieldList['closedDate']['fixed'] = 'no';
$config->bug->datatable->fieldList['closedDate']['width'] = '90';
$config->bug->datatable->fieldList['closedDate']['sortType'] = true;
$config->bug->datatable->fieldList['lastEditedBy']['title'] = 'lastEditedBy';
$config->bug->datatable->fieldList['lastEditedBy']['type'] = 'user';
$config->bug->datatable->fieldList['lastEditedBy']['type'] = 'html';
$config->bug->datatable->fieldList['lastEditedBy']['fixed'] = 'no';
$config->bug->datatable->fieldList['lastEditedBy']['width'] = '90';
$config->bug->datatable->fieldList['lastEditedBy']['sortType'] = true;
$config->bug->datatable->fieldList['lastEditedDate']['title'] = 'lastEditedDateAB';
$config->bug->datatable->fieldList['lastEditedDate']['type'] = 'date';
$config->bug->datatable->fieldList['lastEditedDate']['type'] = 'html';
$config->bug->datatable->fieldList['lastEditedDate']['fixed'] = 'no';
$config->bug->datatable->fieldList['lastEditedDate']['width'] = '90';
$config->bug->datatable->fieldList['lastEditedDate']['sortType'] = true;
+19 -16
View File
@@ -3924,7 +3924,7 @@ class bugModel extends model
public function generateRow($bugs, $branches, $modulePairs, $projectPairs, $plans, $executions, $stories, $tasks, $users)
{
$rows = array();
$userFields = array('openedBy', 'assignedTo', 'resolvedBy', 'closedBy', 'lastEditedBy');
$userFields = array('openedBy', 'resolvedBy', 'closedBy', 'lastEditedBy');
$dateFields = array('activatedDate', 'openedDate', 'assignedDate', 'deadline', 'resolvedDate', 'closedDate', 'lastEditedDate');
$canViewBug = common::hasPriv('bug', 'view');
$canViewCase = common::hasPriv('case', 'view');
@@ -3948,9 +3948,9 @@ class bugModel extends model
$bugTitle = '';
$showBranch = isset($this->config->bug->browse->showBranch) ? $this->config->bug->browse->showBranch : 1;
if($showBranch && !empty($branches[$bug->branch])) $bugTitle .= "<span class='label label-outline label-badge' title={$branches[$bug->branch]}>{$branches[$bug->branch]}</span> ";
if($bug->module && !empty($modulePairs[$bug->module])) $bugTitle .= "<span class='label label-gray label-badge'>{$modulePairs[$bug->module]}</span> ";
$bugTitle .= $canViewBug ? html::a(helper::createLink('bug', 'view', "bugID={$bug->id}"), $bug->title, null, "style='color: {$bug->color}' data-app={$this->app->tab}") : "<span style='color: {$bug->color}'>{$bug->title}</span>";
if($showBranch && !empty($branches[$bug->branch])) $bugTitle .= "<span class='label label-outline label-badge' title='{$branches[$bug->branch]}'>{$branches[$bug->branch]}</span> ";
if($bug->module && !empty($modulePairs[$bug->module])) $bugTitle .= "<span class='label label-gray label-badge' title='{$modulePairs[$bug->module]}'>{$modulePairs[$bug->module]}</span> ";
$bugTitle .= $canViewBug ? html::a(helper::createLink('bug', 'view', "bugID={$bug->id}"), $bug->title, null, "style='color: {$bug->color}' data-app='{$this->app->tab}' title='{$bug->title}'") : "<span style='color: {$bug->color}' title='{$bug->title}'>{$bug->title}</span>";
if($bug->case)
{
$bugCase = "[{$this->lang->testcase->common}#{$bug->case}]";
@@ -3958,32 +3958,24 @@ class bugModel extends model
}
$bug->title = $bugTitle;
$bug->branch = zget($branches, $bug->branch, '');
$bug->project = zget($projectPairs, $bug->project, '');
$bug->plan = zget($plans, $bug->plan, '');
$bug->execution = zget($executions, $bug->execution, '');
if($bug->story && !empty($stories[$bug->story]))
{
$story = $stories[$bug->story];
$bug->story = $canViewStory ? html::a(helper::createLink('story', 'view', "storyID={$story->id}", 'html', true), $story->title, '', "class='iframe'") : $story->title;
$bug->story = $canViewStory ? html::a(helper::createLink('story', 'view', "storyID={$story->id}", 'html', true), $story->title, '', "class='iframe' title='{$story->title}'") : "<span title='{$story->title}'>{$story->title}</span>";
}
if($bug->task && !empty($tasks[$bug->task]))
{
$task = $tasks[$bug->task];
$bug->task = $canViewTask ? html::a(helper::createLink('task', 'view', "taskID={$task->id}", 'html', true), $task->name, '', "class='iframe'") : $task->name;
$bug->task = $canViewTask ? html::a(helper::createLink('task', 'view', "taskID={$task->id}", 'html', true), $task->name, '', "class='iframe' title='{$task->name}'") : "<span title='{$task->name}'>{$task->name}</span>";
}
if($bug->toTask && !empty($tasks[$bug->toTask]))
{
$task = $tasks[$bug->toTask];
$bug->toTask = $canViewTask ? html::a(helper::createLink('task', 'view', "taskID={$task->id}", 'html', true), $task->name, '', "class='iframe'") : $task->name;
$bug->toTask = $canViewTask ? html::a(helper::createLink('task', 'view', "taskID={$task->id}", 'html', true), $task->name, '', "class='iframe' title='{$task->name}'") : "<span title='{$task->name}'>{$task->name}</span>";
}
$bug->type = zget($this->lang->bug->typeList, $bug->type, '');
$bug->resolution = zget($this->lang->bug->resolutionList, $bug->resolution, '');
$bugStatus = $this->processStatus('bug', $bug);
$bug->status = "<span class='status-bug status-{$bug->status}' title='{$bugStatus}'> {$bugStatus}</span>";
@@ -4020,10 +4012,21 @@ class bugModel extends model
}
$bug->mailto = implode(' ', $bugMailto);
$bug->branch = zget($branches, $bug->branch, '');
$bug->project = zget($projectPairs, $bug->project, '');
$bug->plan = zget($plans, $bug->plan, '');
$bug->execution = zget($executions, $bug->execution, '');
$bug->type = zget($this->lang->bug->typeList, $bug->type, '');
$bug->resolution = zget($this->lang->bug->resolutionList, $bug->resolution, '');
$bug->assignedTo = $this->printAssignedHtml($bug, $users, false);
foreach($userFields as $field) $bug->$field = zget($users, $bug->$field);
foreach($dateFields as $field) $bug->$field = empty($bug->$field) || helper::isZeroDate($bug->$field) ? '' : $bug->$field;
foreach($dateFields as $field) $bug->$field = (empty($bug->$field) || helper::isZeroDate($bug->$field)) ? '' : substr($bug->$field, 5, 11);
foreach(array_merge(array('os', 'browser', 'mailto', 'branch', 'project', 'plan', 'execution', 'type', 'resolution', 'keywords', 'openedBuild', 'resolvedBuild', 'activatedCount'), $userFields, $dateFields) as $field)
{
if($bug->$field) $bug->$field = "<span title='{$bug->$field}'>{$bug->$field}<span>";
}
$rows[] = $bug;
}