diff --git a/db/update17.4.sql b/db/update17.4.sql index ff29c01259..8f6603948b 100644 --- a/db/update17.4.sql +++ b/db/update17.4.sql @@ -28,4 +28,7 @@ UPDATE `zt_workflowfield` SET `options`=(SELECT id FROM `zt_workflowdatasource` UPDATE `zt_workflowfield` SET `options`=(SELECT id FROM `zt_workflowdatasource` WHERE `code`='feedbackSolution' ORDER BY `id` DESC LIMIT 1) WHERE `module`='feedback' AND `field`='solution'; UPDATE `zt_workflowfield` SET `options`=(SELECT id FROM `zt_workflowdatasource` WHERE `code`='feedbackclosedReason' ORDER BY `id` DESC LIMIT 1), `control`='select' WHERE `module`='feedback' AND `field`='closedReason'; -UPDATE `zt_project` SET `closedDate`='' AND `closedBy`='' WHERE `status` != 'closed'; \ No newline at end of file +UPDATE `zt_project` SET `closedDate`='' AND `closedBy`='' WHERE `status` != 'closed'; + +ALTER TABLE `zt_bug` MODIFY COLUMN `os` varchar(255) NOT NULL default ''; +ALTER TABLE `zt_bug` MODIFY COLUMN `browser` varchar(255) NOT NULL default ''; diff --git a/db/zentao.sql b/db/zentao.sql index ca94b63909..480cd2091d 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -262,8 +262,8 @@ CREATE TABLE IF NOT EXISTS `zt_bug` ( `severity` tinyint(4) NOT NULL default '0', `pri` tinyint(3) unsigned NOT NULL, `type` varchar(30) NOT NULL default '', - `os` varchar(30) NOT NULL default '', - `browser` varchar(30) NOT NULL default '', + `os` varchar(255) NOT NULL default '', + `browser` varchar(255) NOT NULL default '', `hardware` varchar(30) NOT NULL, `found` varchar(30) NOT NULL default '', `steps` mediumtext NOT NULL, diff --git a/module/bug/config.php b/module/bug/config.php index a66c5c6c63..0cd220a47f 100644 --- a/module/bug/config.php +++ b/module/bug/config.php @@ -388,3 +388,6 @@ $config->bug->colorList->severity[4] = '#cddc39'; $config->bug->colorList->severity[5] = '#8bc34a'; $config->bug->colorList->severity[6] = '#B6B4B4'; $config->bug->colorList->severity[7] = '#BDBEBD'; + +$config->bug->deleteBrowser = array('ie7', 'ie6', 'firefox4', 'firefox3', 'firefox2', 'oprea11', 'oprea10', 'oprea9', 'maxthon', 'uc'); +$config->bug->deleteOS = array('vista', 'win2012', 'win2008', 'win2003', 'win2000', 'wp8', 'wp7', 'symbian', 'freebsd'); diff --git a/module/bug/control.php b/module/bug/control.php index a97880e16b..fac45647b3 100755 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -688,6 +688,8 @@ class bug extends control $this->view->stepsRequired = strpos($this->config->bug->create->requiredFields, 'steps'); $this->view->isStepsTemplate = $steps == $this->lang->bug->tplStep . $this->lang->bug->tplResult . $this->lang->bug->tplExpect ? true : false; $this->view->issueKey = $from == 'sonarqube' ? $output['sonarqubeID'] . ':' . $output['issueKey'] : ''; + $this->view->osList = $this->bug->getObjectList('os'); + $this->view->browserList = $this->bug->getObjectList('browser'); $this->display(); } @@ -859,6 +861,9 @@ class bug extends control $this->view->moduleID = $moduleID; $this->view->branch = $branch; $this->view->branches = $branches; + $this->view->osList = $this->bug->getObjectList('os'); + $this->view->browserList = $this->bug->getObjectList('browser'); + $this->display(); } @@ -1168,6 +1173,8 @@ class bug extends control $this->view->openedBuilds = $openedBuilds; $this->view->resolvedBuilds = array('' => '') + $openedBuilds + $oldResolvedBuild; $this->view->actions = $this->action->getList('bug', $bugID); + $this->view->osList = $this->bug->getObjectList('os'); + $this->view->browserList = $this->bug->getObjectList('browser'); $this->display(); } @@ -1379,8 +1386,8 @@ class bug extends control $this->view->priList = array('0' => '', 'ditto' => $this->lang->bug->ditto) + $this->lang->bug->priList; $this->view->resolutionList = array('' => '', 'ditto' => $this->lang->bug->ditto) + $this->lang->bug->resolutionList; $this->view->statusList = array('' => '', 'ditto' => $this->lang->bug->ditto) + $this->lang->bug->statusList; - $this->view->osList = array('' => '', 'ditto' => $this->lang->bug->ditto) + $this->lang->bug->osList; - $this->view->browserList = array('' => '', 'ditto' => $this->lang->bug->ditto) + $this->lang->bug->browserList; + $this->view->osList = $this->bug->getObjectList('os'); + $this->view->browserList = $this->bug->getObjectList('browser'); $this->view->bugs = $bugs; $this->view->branch = $branch; $this->view->users = $users; diff --git a/module/bug/lang/de.php b/module/bug/lang/de.php index c9e6875e7b..e4c726be93 100644 --- a/module/bug/lang/de.php +++ b/module/bug/lang/de.php @@ -232,31 +232,37 @@ $lang->bug->priList[2] = '2'; $lang->bug->priList[3] = '3'; $lang->bug->priList[4] = '4'; -$lang->bug->osList[''] = ''; -$lang->bug->osList['all'] = 'Alle'; -$lang->bug->osList['windows'] = 'Windows'; -$lang->bug->osList['win10'] = 'Windows 10'; -$lang->bug->osList['win8'] = 'Windows 8'; -$lang->bug->osList['win7'] = 'Windows 7'; -$lang->bug->osList['vista'] = 'Windows Vista'; -$lang->bug->osList['winxp'] = 'Windows XP'; -$lang->bug->osList['win2012'] = 'Windows 2012'; -$lang->bug->osList['win2008'] = 'Windows 2008'; -$lang->bug->osList['win2003'] = 'Windows 2003'; -$lang->bug->osList['win2000'] = 'Windows 2000'; -$lang->bug->osList['android'] = 'Android'; -$lang->bug->osList['ios'] = 'IOS'; -$lang->bug->osList['wp8'] = 'WP8'; -$lang->bug->osList['wp7'] = 'WP7'; -$lang->bug->osList['symbian'] = 'Symbian'; -$lang->bug->osList['linux'] = 'Linux'; -$lang->bug->osList['freebsd'] = 'FreeBSD'; -$lang->bug->osList['osx'] = 'OS X'; -$lang->bug->osList['unix'] = 'Unix'; -$lang->bug->osList['others'] = 'Andere'; +$lang->bug->osList[''] = ''; +$lang->bug->osList['all'] = 'Alle'; +$lang->bug->osList['windows'] = 'Windows'; +$lang->bug->osList['win11'] = 'Windows 11'; +$lang->bug->osList['win10'] = 'Windows 10'; +$lang->bug->osList['win8'] = 'Windows 8'; +$lang->bug->osList['win7'] = 'Windows 7'; +$lang->bug->osList['winxp'] = 'Windows XP'; +$lang->bug->osList['osx'] = 'Mac OS'; +$lang->bug->osList['android'] = 'Android'; +$lang->bug->osList['ios'] = 'IOS'; +$lang->bug->osList['linux'] = 'Linux'; +$lang->bug->osList['ubuntu'] = 'Ubuntu'; +$lang->bug->osList['chromeos'] = 'Chrome OS'; +$lang->bug->osList['fedora'] = 'Fedora'; +$lang->bug->osList['vista'] = 'Windows Vista'; +$lang->bug->osList['win2012'] = 'Windows 2012'; +$lang->bug->osList['win2008'] = 'Windows 2008'; +$lang->bug->osList['win2003'] = 'Windows 2003'; +$lang->bug->osList['win2000'] = 'Windows 2000'; +$lang->bug->osList['wp8'] = 'WP8'; +$lang->bug->osList['wp7'] = 'WP7'; +$lang->bug->osList['symbian'] = 'Symbian'; +$lang->bug->osList['freebsd'] = 'FreeBSD'; +$lang->bug->osList['unix'] = 'Unix'; +$lang->bug->osList['others'] = 'Andere'; $lang->bug->browserList[''] = ''; $lang->bug->browserList['all'] = 'Alle'; +$lang->bug->browserList['chrome'] = 'Chrome'; +$lang->bug->browserList['edge'] = 'Edge'; $lang->bug->browserList['ie'] = 'IE series'; $lang->bug->browserList['ie11'] = 'IE11'; $lang->bug->browserList['ie10'] = 'IE10'; @@ -264,7 +270,6 @@ $lang->bug->browserList['ie9'] = 'IE9'; $lang->bug->browserList['ie8'] = 'IE8'; $lang->bug->browserList['ie7'] = 'IE7'; $lang->bug->browserList['ie6'] = 'IE6'; -$lang->bug->browserList['chrome'] = 'chrome'; $lang->bug->browserList['firefox'] = 'Firefox series'; $lang->bug->browserList['firefox4'] = 'Firefox4'; $lang->bug->browserList['firefox3'] = 'Firefox3'; @@ -274,6 +279,8 @@ $lang->bug->browserList['oprea11'] = 'Opera11'; $lang->bug->browserList['oprea10'] = 'Opera10'; $lang->bug->browserList['opera9'] = 'Opera9'; $lang->bug->browserList['safari'] = 'Safari'; +$lang->bug->browserList['360'] = '360 series'; +$lang->bug->browserList['qq'] = 'QQ series'; $lang->bug->browserList['maxthon'] = 'Maxthon'; $lang->bug->browserList['uc'] = 'UC'; $lang->bug->browserList['other'] = 'Andere'; @@ -428,7 +435,6 @@ $lang->bug->featureBar['browse']['unclosed'] = $lang->bug->unclosed; $lang->bug->featureBar['browse']['openedbyme'] = $lang->bug->openedByMe; $lang->bug->featureBar['browse']['assigntome'] = $lang->bug->assignToMe; $lang->bug->featureBar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe; - $lang->bug->featureBar['browse']['unresolved'] = $lang->bug->unResolved; $lang->bug->featureBar['browse']['more'] = $lang->more; diff --git a/module/bug/lang/en.php b/module/bug/lang/en.php index fc62a14d4f..4acf855ad7 100644 --- a/module/bug/lang/en.php +++ b/module/bug/lang/en.php @@ -232,31 +232,37 @@ $lang->bug->priList[2] = '2'; $lang->bug->priList[3] = '3'; $lang->bug->priList[4] = '4'; -$lang->bug->osList[''] = ''; -$lang->bug->osList['all'] = 'All'; -$lang->bug->osList['windows'] = 'Windows'; -$lang->bug->osList['win10'] = 'Windows 10'; -$lang->bug->osList['win8'] = 'Windows 8'; -$lang->bug->osList['win7'] = 'Windows 7'; -$lang->bug->osList['vista'] = 'Windows Vista'; -$lang->bug->osList['winxp'] = 'Windows XP'; -$lang->bug->osList['win2012'] = 'Windows 2012'; -$lang->bug->osList['win2008'] = 'Windows 2008'; -$lang->bug->osList['win2003'] = 'Windows 2003'; -$lang->bug->osList['win2000'] = 'Windows 2000'; -$lang->bug->osList['android'] = 'Android'; -$lang->bug->osList['ios'] = 'IOS'; -$lang->bug->osList['wp8'] = 'WP8'; -$lang->bug->osList['wp7'] = 'WP7'; -$lang->bug->osList['symbian'] = 'Symbian'; -$lang->bug->osList['linux'] = 'Linux'; -$lang->bug->osList['freebsd'] = 'FreeBSD'; -$lang->bug->osList['osx'] = 'OS X'; -$lang->bug->osList['unix'] = 'Unix'; -$lang->bug->osList['others'] = 'Others'; +$lang->bug->osList[''] = ''; +$lang->bug->osList['all'] = 'All'; +$lang->bug->osList['windows'] = 'Windows'; +$lang->bug->osList['win11'] = 'Windows 11'; +$lang->bug->osList['win10'] = 'Windows 10'; +$lang->bug->osList['win8'] = 'Windows 8'; +$lang->bug->osList['win7'] = 'Windows 7'; +$lang->bug->osList['winxp'] = 'Windows XP'; +$lang->bug->osList['osx'] = 'Mac OS'; +$lang->bug->osList['android'] = 'Android'; +$lang->bug->osList['ios'] = 'IOS'; +$lang->bug->osList['linux'] = 'Linux'; +$lang->bug->osList['ubuntu'] = 'Ubuntu'; +$lang->bug->osList['chromeos'] = 'Chrome OS'; +$lang->bug->osList['fedora'] = 'Fedora'; +$lang->bug->osList['vista'] = 'Windows Vista'; +$lang->bug->osList['win2012'] = 'Windows 2012'; +$lang->bug->osList['win2008'] = 'Windows 2008'; +$lang->bug->osList['win2003'] = 'Windows 2003'; +$lang->bug->osList['win2000'] = 'Windows 2000'; +$lang->bug->osList['wp8'] = 'WP8'; +$lang->bug->osList['wp7'] = 'WP7'; +$lang->bug->osList['symbian'] = 'Symbian'; +$lang->bug->osList['freebsd'] = 'FreeBSD'; +$lang->bug->osList['unix'] = 'Unix'; +$lang->bug->osList['others'] = 'Others'; $lang->bug->browserList[''] = ''; $lang->bug->browserList['all'] = 'All'; +$lang->bug->browserList['chrome'] = 'Chrome'; +$lang->bug->browserList['edge'] = 'Edge'; $lang->bug->browserList['ie'] = 'IE series'; $lang->bug->browserList['ie11'] = 'IE11'; $lang->bug->browserList['ie10'] = 'IE10'; @@ -264,7 +270,6 @@ $lang->bug->browserList['ie9'] = 'IE9'; $lang->bug->browserList['ie8'] = 'IE8'; $lang->bug->browserList['ie7'] = 'IE7'; $lang->bug->browserList['ie6'] = 'IE6'; -$lang->bug->browserList['chrome'] = 'Chrome'; $lang->bug->browserList['firefox'] = 'Firefox series'; $lang->bug->browserList['firefox4'] = 'Firefox4'; $lang->bug->browserList['firefox3'] = 'Firefox3'; @@ -274,6 +279,8 @@ $lang->bug->browserList['oprea11'] = 'Opera11'; $lang->bug->browserList['oprea10'] = 'Opera10'; $lang->bug->browserList['opera9'] = 'Opera9'; $lang->bug->browserList['safari'] = 'Safari'; +$lang->bug->browserList['360'] = '360 series'; +$lang->bug->browserList['qq'] = 'QQ series'; $lang->bug->browserList['maxthon'] = 'Maxthon'; $lang->bug->browserList['uc'] = 'UC'; $lang->bug->browserList['other'] = 'Others'; @@ -428,7 +435,6 @@ $lang->bug->featureBar['browse']['unclosed'] = $lang->bug->unclosed; $lang->bug->featureBar['browse']['openedbyme'] = $lang->bug->openedByMe; $lang->bug->featureBar['browse']['assigntome'] = $lang->bug->assignToMe; $lang->bug->featureBar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe; - $lang->bug->featureBar['browse']['unresolved'] = $lang->bug->unResolved; $lang->bug->featureBar['browse']['more'] = $lang->more; diff --git a/module/bug/lang/fr.php b/module/bug/lang/fr.php index ff95166866..b469a29338 100644 --- a/module/bug/lang/fr.php +++ b/module/bug/lang/fr.php @@ -232,31 +232,37 @@ $lang->bug->priList[2] = '2'; $lang->bug->priList[3] = '3'; $lang->bug->priList[4] = '4'; -$lang->bug->osList[''] = ''; -$lang->bug->osList['all'] = 'Tous'; -$lang->bug->osList['windows'] = 'Windows'; -$lang->bug->osList['win10'] = 'Windows 10'; -$lang->bug->osList['win8'] = 'Windows 8'; -$lang->bug->osList['win7'] = 'Windows 7'; -$lang->bug->osList['vista'] = 'Windows Vista'; -$lang->bug->osList['winxp'] = 'Windows XP'; -$lang->bug->osList['win2012'] = 'Windows 2012'; -$lang->bug->osList['win2008'] = 'Windows 2008'; -$lang->bug->osList['win2003'] = 'Windows 2003'; -$lang->bug->osList['win2000'] = 'Windows 2000'; -$lang->bug->osList['android'] = 'Android'; -$lang->bug->osList['ios'] = 'IOS'; -$lang->bug->osList['wp8'] = 'WP8'; -$lang->bug->osList['wp7'] = 'WP7'; -$lang->bug->osList['symbian'] = 'Symbian'; -$lang->bug->osList['linux'] = 'Linux'; -$lang->bug->osList['freebsd'] = 'FreeBSD'; -$lang->bug->osList['osx'] = 'OS X'; -$lang->bug->osList['unix'] = 'Unix'; -$lang->bug->osList['others'] = 'Autres'; +$lang->bug->osList[''] = ''; +$lang->bug->osList['all'] = 'Tous'; +$lang->bug->osList['windows'] = 'Windows'; +$lang->bug->osList['win11'] = 'Windows 11'; +$lang->bug->osList['win10'] = 'Windows 10'; +$lang->bug->osList['win8'] = 'Windows 8'; +$lang->bug->osList['win7'] = 'Windows 7'; +$lang->bug->osList['winxp'] = 'Windows XP'; +$lang->bug->osList['osx'] = 'Mac OS'; +$lang->bug->osList['android'] = 'Android'; +$lang->bug->osList['ios'] = 'IOS'; +$lang->bug->osList['linux'] = 'Linux'; +$lang->bug->osList['ubuntu'] = 'Ubuntu'; +$lang->bug->osList['chromeos'] = 'Chrome OS'; +$lang->bug->osList['fedora'] = 'Fedora'; +$lang->bug->osList['vista'] = 'Windows Vista'; +$lang->bug->osList['win2012'] = 'Windows 2012'; +$lang->bug->osList['win2008'] = 'Windows 2008'; +$lang->bug->osList['win2003'] = 'Windows 2003'; +$lang->bug->osList['win2000'] = 'Windows 2000'; +$lang->bug->osList['wp8'] = 'WP8'; +$lang->bug->osList['wp7'] = 'WP7'; +$lang->bug->osList['symbian'] = 'Symbian'; +$lang->bug->osList['freebsd'] = 'FreeBSD'; +$lang->bug->osList['unix'] = 'Unix'; +$lang->bug->osList['others'] = 'Autres'; $lang->bug->browserList[''] = ''; $lang->bug->browserList['all'] = 'Tous'; +$lang->bug->browserList['chrome'] = 'Chrome'; +$lang->bug->browserList['edge'] = 'Edge'; $lang->bug->browserList['ie'] = 'IE series'; $lang->bug->browserList['ie11'] = 'IE11'; $lang->bug->browserList['ie10'] = 'IE10'; @@ -264,7 +270,6 @@ $lang->bug->browserList['ie9'] = 'IE9'; $lang->bug->browserList['ie8'] = 'IE8'; $lang->bug->browserList['ie7'] = 'IE7'; $lang->bug->browserList['ie6'] = 'IE6'; -$lang->bug->browserList['chrome'] = 'Chrome'; $lang->bug->browserList['firefox'] = 'Firefox series'; $lang->bug->browserList['firefox4'] = 'Firefox4'; $lang->bug->browserList['firefox3'] = 'Firefox3'; @@ -274,6 +279,8 @@ $lang->bug->browserList['oprea11'] = 'Opera11'; $lang->bug->browserList['oprea10'] = 'Opera10'; $lang->bug->browserList['opera9'] = 'Opera9'; $lang->bug->browserList['safari'] = 'Safari'; +$lang->bug->browserList['360'] = '360 series'; +$lang->bug->browserList['qq'] = 'QQ series'; $lang->bug->browserList['maxthon'] = 'Maxthon'; $lang->bug->browserList['uc'] = 'UC'; $lang->bug->browserList['other'] = 'Autres'; diff --git a/module/bug/lang/zh-cn.php b/module/bug/lang/zh-cn.php index 73c41b12e0..63642a76a1 100644 --- a/module/bug/lang/zh-cn.php +++ b/module/bug/lang/zh-cn.php @@ -232,31 +232,37 @@ $lang->bug->priList[2] = '2'; $lang->bug->priList[3] = '3'; $lang->bug->priList[4] = '4'; -$lang->bug->osList[''] = ''; -$lang->bug->osList['all'] = '全部'; -$lang->bug->osList['windows'] = 'Windows'; -$lang->bug->osList['win10'] = 'Windows 10'; -$lang->bug->osList['win8'] = 'Windows 8'; -$lang->bug->osList['win7'] = 'Windows 7'; -$lang->bug->osList['vista'] = 'Windows Vista'; -$lang->bug->osList['winxp'] = 'Windows XP'; -$lang->bug->osList['win2012'] = 'Windows 2012'; -$lang->bug->osList['win2008'] = 'Windows 2008'; -$lang->bug->osList['win2003'] = 'Windows 2003'; -$lang->bug->osList['win2000'] = 'Windows 2000'; -$lang->bug->osList['android'] = 'Android'; -$lang->bug->osList['ios'] = 'IOS'; -$lang->bug->osList['wp8'] = 'WP8'; -$lang->bug->osList['wp7'] = 'WP7'; -$lang->bug->osList['symbian'] = 'Symbian'; -$lang->bug->osList['linux'] = 'Linux'; -$lang->bug->osList['freebsd'] = 'FreeBSD'; -$lang->bug->osList['osx'] = 'OS X'; -$lang->bug->osList['unix'] = 'Unix'; -$lang->bug->osList['others'] = '其他'; +$lang->bug->osList[''] = ''; +$lang->bug->osList['all'] = '全部'; +$lang->bug->osList['windows'] = 'Windows'; +$lang->bug->osList['win11'] = 'Windows 11'; +$lang->bug->osList['win10'] = 'Windows 10'; +$lang->bug->osList['win8'] = 'Windows 8'; +$lang->bug->osList['win7'] = 'Windows 7'; +$lang->bug->osList['winxp'] = 'Windows XP'; +$lang->bug->osList['osx'] = 'Mac OS'; +$lang->bug->osList['android'] = 'Android'; +$lang->bug->osList['ios'] = 'IOS'; +$lang->bug->osList['linux'] = 'Linux'; +$lang->bug->osList['ubuntu'] = 'Ubuntu'; +$lang->bug->osList['chromeos'] = 'Chrome OS'; +$lang->bug->osList['fedora'] = 'Fedora'; +$lang->bug->osList['vista'] = 'Windows Vista'; +$lang->bug->osList['win2012'] = 'Windows 2012'; +$lang->bug->osList['win2008'] = 'Windows 2008'; +$lang->bug->osList['win2003'] = 'Windows 2003'; +$lang->bug->osList['win2000'] = 'Windows 2000'; +$lang->bug->osList['wp8'] = 'WP8'; +$lang->bug->osList['wp7'] = 'WP7'; +$lang->bug->osList['symbian'] = 'Symbian'; +$lang->bug->osList['freebsd'] = 'FreeBSD'; +$lang->bug->osList['unix'] = 'Unix'; +$lang->bug->osList['others'] = '其他'; $lang->bug->browserList[''] = ''; $lang->bug->browserList['all'] = '全部'; +$lang->bug->browserList['chrome'] = 'Chrome'; +$lang->bug->browserList['edge'] = 'Edge'; $lang->bug->browserList['ie'] = 'IE系列'; $lang->bug->browserList['ie11'] = 'IE11'; $lang->bug->browserList['ie10'] = 'IE10'; @@ -264,7 +270,6 @@ $lang->bug->browserList['ie9'] = 'IE9'; $lang->bug->browserList['ie8'] = 'IE8'; $lang->bug->browserList['ie7'] = 'IE7'; $lang->bug->browserList['ie6'] = 'IE6'; -$lang->bug->browserList['chrome'] = 'chrome'; $lang->bug->browserList['firefox'] = 'firefox系列'; $lang->bug->browserList['firefox4'] = 'firefox4'; $lang->bug->browserList['firefox3'] = 'firefox3'; @@ -274,6 +279,8 @@ $lang->bug->browserList['oprea11'] = 'opera11'; $lang->bug->browserList['oprea10'] = 'opera10'; $lang->bug->browserList['opera9'] = 'opera9'; $lang->bug->browserList['safari'] = 'safari'; +$lang->bug->browserList['360'] = '360浏览器'; +$lang->bug->browserList['qq'] = 'QQ浏览器'; $lang->bug->browserList['maxthon'] = '傲游'; $lang->bug->browserList['uc'] = 'UC'; $lang->bug->browserList['other'] = '其他'; @@ -432,7 +439,6 @@ $lang->bug->featureBar['browse']['assignedbyme'] = $lang->bug->assignedByMe; $lang->bug->featureBar['browse']['unresolved'] = $lang->bug->unResolved; $lang->bug->featureBar['browse']['more'] = $lang->more; - $lang->bug->moreSelects['unconfirmed'] = $lang->bug->unconfirmed; $lang->bug->moreSelects['assigntonull'] = $lang->bug->assignToNull; $lang->bug->moreSelects['longlifebugs'] = $lang->bug->longLifeBugs; diff --git a/module/bug/model.php b/module/bug/model.php index 80850637da..393a17599a 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -76,6 +76,8 @@ class bugModel extends model ->trim('title') ->join('openedBuild', ',') ->join('mailto', ',') + ->join('os', ',') + ->join('browser', ',') ->remove('files,labels,uid,oldTaskID,contactListMenu,region,lane') ->get(); @@ -163,25 +165,24 @@ class bugModel extends model $execution = 0; $type = ''; $pri = 0; - $os = ''; - $browser = ''; foreach($data->title as $i => $title) { + $oses = array_filter($data->oses[$i]); + $browsers = array_filter($data->browsers[$i]); + if($data->modules[$i] != 'ditto') $module = (int)$data->modules[$i]; if($data->projects[$i] != 'ditto') $project = (int)$data->projects[$i]; if($data->executions[$i] != 'ditto') $execution = (int)$data->executions[$i]; if($data->types[$i] != 'ditto') $type = $data->types[$i]; if($data->pris[$i] != 'ditto') $pri = $data->pris[$i]; - if($data->oses[$i] != 'ditto') $os = $data->oses[$i]; - if($data->browsers[$i] != 'ditto') $browser = $data->browsers[$i]; $data->modules[$i] = (int)$module; $data->projects[$i] = (int)$project; $data->executions[$i] = (int)$execution; $data->types[$i] = $type; $data->pris[$i] = $pri; - $data->oses[$i] = $os; - $data->browsers[$i] = $browser; + $data->oses[$i] = implode(',', $oses); + $data->browsers[$i] = implode(',', $browsers); } /* Get bug data. */ @@ -689,6 +690,8 @@ class bugModel extends model ->stripTags($this->config->bug->editor->edit['id'], $this->config->allowedTags) ->setDefault('product,module,execution,story,task,duplicateBug,branch', 0) ->setDefault('openedBuild', '') + ->setDefault('os', '') + ->setDefault('browser', '') ->setDefault('plan', 0) ->setDefault('deadline', '0000-00-00') ->setDefault('resolvedDate', '0000-00-00 00:00:00') @@ -699,6 +702,8 @@ class bugModel extends model ->join('openedBuild', ',') ->join('mailto', ',') ->join('linkBug', ',') + ->join('os', ',') + ->join('browser', ',') ->setIF($this->post->assignedTo != $oldBug->assignedTo, 'assignedDate', $now) ->setIF($this->post->resolvedBy != '' and $this->post->resolvedDate == '', 'resolvedDate', $now) ->setIF($this->post->resolution != '' and $this->post->resolvedDate == '', 'resolvedDate', $now) @@ -805,8 +810,6 @@ class bugModel extends model if($data->assignedTos[$bugID] == 'ditto') $data->assignedTos[$bugID] = isset($prev['assignedTo']) ? $prev['assignedTo'] : ''; if($data->resolvedBys[$bugID] == 'ditto') $data->resolvedBys[$bugID] = isset($prev['resolvedBy']) ? $prev['resolvedBy'] : ''; if($data->resolutions[$bugID] == 'ditto') $data->resolutions[$bugID] = isset($prev['resolution']) ? $prev['resolution'] : ''; - if($data->os[$bugID] == 'ditto') $data->os[$bugID] = isset($prev['os']) ? $prev['os'] : ''; - if($data->browsers[$bugID] == 'ditto') $data->browsers[$bugID] = isset($prev['browser']) ? $prev['browser'] : ''; if(isset($data->branches[$bugID]) and $data->branches[$bugID] == 'ditto') $data->branches[$bugID] = isset($prev['branch']) ? $prev['branch'] : 0; $prev['type'] = $data->types[$bugID]; @@ -817,8 +820,6 @@ class bugModel extends model $prev['assignedTo'] = $data->assignedTos[$bugID]; $prev['resolvedBy'] = $data->resolvedBys[$bugID]; $prev['resolution'] = $data->resolutions[$bugID]; - $prev['os'] = $data->os[$bugID]; - $prev['browser'] = $data->browsers[$bugID]; } /* Initialize bugs from the post data.*/ @@ -828,6 +829,9 @@ class bugModel extends model { $oldBug = $oldBugs[$bugID]; + $os = array_filter($data->os[$bugID]); + $browsers = array_filter($data->browsers[$bugID]); + $bug = new stdclass(); $bug->id = $bugID; $bug->lastEditedBy = $this->app->user->account; @@ -844,8 +848,8 @@ class bugModel extends model $bug->deadline = $data->deadlines[$bugID]; $bug->resolvedBy = $data->resolvedBys[$bugID]; $bug->keywords = $data->keywords[$bugID]; - $bug->os = $data->os[$bugID]; - $bug->browser = $data->browsers[$bugID]; + $bug->os = implode(',', $os); + $bug->browser = implode(',', $browsers); $bug->resolution = $data->resolutions[$bugID]; $bug->duplicateBug = $data->duplicateBugs[$bugID] ? $data->duplicateBugs[$bugID] : $oldBug->duplicateBug; @@ -1594,6 +1598,8 @@ class bugModel extends model $this->config->bug->search['params']['severity']['values'] = array(0 => '') + $this->lang->bug->severityList; //Fix bug #939. $this->config->bug->search['params']['openedBuild']['values'] = $this->loadModel('build')->getBuildPairs($productID, 'all', 'withbranch'); $this->config->bug->search['params']['resolvedBuild']['values'] = $this->config->bug->search['params']['openedBuild']['values']; + $this->config->bug->search['params']['os']['values'] = $this->getObjectList('os'); + $this->config->bug->search['params']['browser']['values'] = $this->getObjectList('browser'); if($this->session->currentProductType == 'normal') { unset($this->config->bug->search['fields']['branch']); @@ -3157,9 +3163,25 @@ class bugModel extends model } } - $bugLink = helper::createLink('bug', 'view', "bugID=$bug->id"); - $account = $this->app->user->account; - $id = $col->id; + $bugLink = helper::createLink('bug', 'view', "bugID=$bug->id"); + $account = $this->app->user->account; + $id = $col->id; + $os = ''; + $browser = ''; + $osList = explode(',', $bug->os); + $browserList = explode(',', $bug->browser); + foreach($osList as $value) + { + if(empty($value)) continue; + $os .= $this->lang->bug->osList[$value] . ','; + } + foreach($browserList as $value) + { + if(empty($value)) continue; + $browser .= $this->lang->bug->browserList[$value] . ','; + } + $os = trim($os, ','); + $browser = trim($browser, ','); if($col->show) { $class = "c-$id"; @@ -3198,6 +3220,14 @@ class bugModel extends model $class .= ' text-ellipsis'; $title = "title='" . $bug->resolvedBuild . "'"; break; + case 'os': + $class .= ' text-ellipsis'; + $title = "title='" . $os . "'"; + break; + case 'browser': + $class .= ' text-ellipsis'; + $title = "title='" . $browser . "'"; + break; } if($id == 'deadline' && isset($bug->delay) && $bug->status == 'active') $class .= ' delayed'; @@ -3296,10 +3326,10 @@ class bugModel extends model echo $bug->keywords; break; case 'os': - echo zget($this->lang->bug->osList, $bug->os); + echo $os; break; case 'browser': - echo zget($this->lang->bug->browserList, $bug->browser); + echo $browser; break; case 'mailto': $mailto = explode(',', $bug->mailto); @@ -3557,4 +3587,28 @@ class bugModel extends model return $relatedObjects; } + + /** + * Get object list. + * + * @param string $objectType + * @access public + * @return array + */ + public function getObjectList($objectType = '') + { + $objectListName = $objectType . 'List'; + if(empty($objectType) or !isset($this->lang->bug->{$objectListName})) return array(); + $objectList = $this->lang->bug->{$objectListName}; + $deleteConfigName = $objectType == 'os' ? 'deleteOS' : 'delete' . ucfirst($objectType); + $existConfigName = $objectType == 'os' ? 'bugOS' : 'bug' . ucfirst($objectType); + $deleteItems = isset($this->config->bug->{$deleteConfigName}) ? $this->config->bug->{$deleteConfigName} : array(); + $existItems = isset($this->config->{$existConfigName}) ? $this->config->{$existConfigName} : ''; + foreach($objectList as $id => $value) + { + if(in_array($id, $deleteItems) and strpos(",$existItems,", ",$id,") === false) unset($objectList[$id]); + } + + return $objectList; + } } diff --git a/module/bug/view/batchcreate.html.php b/module/bug/view/batchcreate.html.php index 762b5634ed..a3dfea3064 100755 --- a/module/bug/view/batchcreate.html.php +++ b/module/bug/view/batchcreate.html.php @@ -92,8 +92,6 @@ foreach(explode(',', $config->bug->create->requiredFields) as $field) $executions += array('ditto' => $lang->bug->ditto); $lang->bug->typeList += array('ditto' => $lang->bug->ditto); $lang->bug->priList += array('ditto' => $lang->bug->ditto); - $lang->bug->osList += array('ditto' => $lang->bug->ditto); - $lang->bug->browserList += array('ditto' => $lang->bug->ditto); ?> @@ -104,8 +102,6 @@ foreach(explode(',', $config->bug->create->requiredFields) as $field) $executionID = $i == 1 ? $executionID : 'ditto'; $type = $i == 1 ? '' : 'ditto'; $pri = $i == 1 ? 0 : 'ditto'; - $os = $i == 1 ? '' : 'ditto'; - $browser = $i == 1 ? '' : 'ditto'; ?>