This commit is contained in:
王怡栋
2022-04-07 15:06:23 +08:00
58 changed files with 1200 additions and 192 deletions
+45
View File
@@ -0,0 +1,45 @@
ALTER TABLE `zt_api` MODIFY COLUMN `desc` mediumtext NULL;
ALTER TABLE `zt_apispec` MODIFY COLUMN `desc` mediumtext NULL;
ALTER TABLE `zt_apistruct` MODIFY COLUMN `desc` mediumtext NOT NULL DEFAULT '';
ALTER TABLE `zt_bug` MODIFY COLUMN `steps` mediumtext NOT NULL;
ALTER TABLE `zt_build` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_design` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_designspec` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_doclib` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_entry` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_extension` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_holiday` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_kanbanspace` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_kanban` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_kanbancard` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_product` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_productplan` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_project` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_release` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_storyspec` MODIFY COLUMN `spec` mediumtext NOT NULL;
ALTER TABLE `zt_storyspec` MODIFY COLUMN `verify` mediumtext NOT NULL;
ALTER TABLE `zt_task` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_testsuite` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_testtask` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_todo` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_service` MODIFY COLUMN `desc` mediumtext;
ALTER TABLE `zt_deploy` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_traincourse` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_activity` MODIFY COLUMN `content` mediumtext NOT NULL;
ALTER TABLE `zt_nc` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_zoutput` MODIFY COLUMN `content` mediumtext NOT NULL;
ALTER TABLE `zt_process` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_budget` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_researchplan` MODIFY COLUMN `outline` mediumtext NOT NULL;
ALTER TABLE `zt_researchplan` MODIFY COLUMN `schedule` mediumtext NOT NULL;
ALTER TABLE `zt_researchreport` MODIFY COLUMN `content` mediumtext NOT NULL;
ALTER TABLE `zt_assetlib` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_meastemplate` MODIFY COLUMN `content` mediumtext NOT NULL;
ALTER TABLE `zt_issue` MODIFY COLUMN `desc` mediumtext NOT NULL;
ALTER TABLE `zt_risk` MODIFY COLUMN `prevention` mediumtext NOT NULL;
ALTER TABLE `zt_risk` MODIFY COLUMN `remedy` mediumtext NOT NULL;
ALTER TABLE `zt_risk` MODIFY COLUMN `resolution` mediumtext NOT NULL;
ALTER TABLE `zt_opportunity` MODIFY COLUMN `prevention` mediumtext NOT NULL;
ALTER TABLE `zt_opportunity` MODIFY COLUMN `resolution` mediumtext NOT NULL;
ALTER TABLE `zt_trainplan` MODIFY COLUMN `summary` mediumtext NOT NULL;
ALTER TABLE `zt_gapanalysis` MODIFY COLUMN `analysis` mediumtext NOT NULL;
+45 -45
View File
@@ -55,7 +55,7 @@ CREATE TABLE `zt_api` (
`responseType` varchar(100) NOT NULL DEFAULT '',
`status` varchar(20) NOT NULL DEFAULT '',
`owner` varchar(30) NOT NULl DEFAULT 0,
`desc` text NULL,
`desc` mediumtext NULL,
`version` smallint UNSIGNED NOT NULL DEFAULT 0,
`params` text NULL,
`paramsExample` text NUll,
@@ -82,7 +82,7 @@ CREATE TABLE `zt_apispec` (
`responseType` varchar(100) NOT NULL DEFAULT '',
`status` varchar(20) NOT NULL DEFAULT '',
`owner` varchar(255) NOT NULl DEFAULT 0,
`desc` text NULL,
`desc` mediumtext NULL,
`version` smallint UNSIGNED NOT NULL DEFAULT 0,
`params` text NULL,
`paramsExample` text NUll,
@@ -98,7 +98,7 @@ CREATE TABLE `zt_apistruct` (
`lib` int UNSIGNED NOT NULL DEFAULT 0,
`name` varchar(30) NOT NULL DEFAULT '',
`type` varchar(50) NOT NULL DEFAULT '',
`desc` text NOT NULL DEFAULT '',
`desc` mediumtext NOT NULL DEFAULT '',
`version` smallint unsigned NOT NULL DEFAULT 0,
`attribute` text NULL,
`addedBy` varchar(30) NOT NULL DEFAULT 0,
@@ -177,7 +177,7 @@ CREATE TABLE IF NOT EXISTS `zt_bug` (
`browser` varchar(30) NOT NULL default '',
`hardware` varchar(30) NOT NULL,
`found` varchar(30) NOT NULL default '',
`steps` text NOT NULL,
`steps` mediumtext NOT NULL,
`status` enum('active','resolved','closed') NOT NULL default 'active',
`subStatus` varchar(30) NOT NULL default '',
`color` char(7) NOT NULL,
@@ -241,7 +241,7 @@ CREATE TABLE IF NOT EXISTS `zt_build` (
`stories` text NOT NULL,
`bugs` text NOT NULL,
`builder` char(30) NOT NULL default '',
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`deleted` enum('0','1') NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `product` (`product`),
@@ -419,7 +419,7 @@ CREATE TABLE IF NOT EXISTS `zt_design` (
`assignedDate` datetime NOT NULL,
`deleted` enum('0','1') NOT NULL DEFAULT '0',
`story` char(30) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`version` smallint(6) NOT NULL,
`type` char(30) NOT NULL,
PRIMARY KEY (`id`)
@@ -429,7 +429,7 @@ CREATE TABLE IF NOT EXISTS `zt_designspec` (
`design` mediumint(8) NOT NULL,
`version` smallint(6) NOT NULL,
`name` varchar(255) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`files` varchar(255) NOT NULL,
UNIQUE KEY `design` (`design`,`version`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
@@ -491,7 +491,7 @@ CREATE TABLE IF NOT EXISTS `zt_doclib` (
`users` text NOT NULL,
`main` enum('0','1') NOT NULL default '0',
`collector` text NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`order` tinyint(5) unsigned NOT NULL,
`deleted` enum('0','1') NOT NULL default '0',
PRIMARY KEY (`id`),
@@ -524,7 +524,7 @@ CREATE TABLE IF NOT EXISTS `zt_entry` (
`key` varchar(32) NOT NULL,
`freePasswd` enum('0','1') NOT NULL DEFAULT '0',
`ip` varchar(100) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`createdBy` varchar(30) NOT NULL,
`createdDate` datetime NOT NULL,
`calledTime` int(10) unsigned NOT NULL DEFAULT '0',
@@ -551,7 +551,7 @@ CREATE TABLE IF NOT EXISTS `zt_extension` (
`code` varchar(30) NOT NULL,
`version` varchar(50) NOT NULL,
`author` varchar(100) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`license` text NOT NULL,
`type` varchar(20) NOT NULL default 'extension',
`site` varchar(150) NOT NULL,
@@ -607,7 +607,7 @@ CREATE TABLE IF NOT EXISTS `zt_holiday` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL DEFAULT '',
`type` enum('holiday', 'working') NOT NULL DEFAULT 'holiday',
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`year` char(4) NOT NULL,
`begin` date NOT NULL,
`end` date NOT NULL,
@@ -661,7 +661,7 @@ CREATE TABLE `zt_kanbanspace` (
`type` varchar(50) NOT NULL,
`owner` varchar(30) NOT NULL,
`team` text NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`acl` char(30) NOT NULL DEFAULT 'open',
`whitelist` text NOT NULL,
`status` enum('active','closed') NOT NULL default 'active',
@@ -682,7 +682,7 @@ CREATE TABLE `zt_kanban` (
`name` varchar(255) NOT NULL,
`owner` varchar(30) NOT NULL,
`team` text NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`acl` char(30) NOT NULL DEFAULT 'open',
`whitelist` text NOT NULL,
`archived` enum('0', '1') NOT NULL DEFAULT '1',
@@ -727,7 +727,7 @@ CREATE TABLE `zt_kanbancard` (
`status` varchar(30) NOT NULL DEFAULT 'doing',
`pri` mediumint(8) unsigned NOT NULL,
`assignedTo` text NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`begin` date NOT NULL,
`end` date NOT NULL,
`estimate` float unsigned NOT NULL,
@@ -955,7 +955,7 @@ CREATE TABLE IF NOT EXISTS `zt_product` (
`type` varchar(30) NOT NULL default 'normal',
`status` varchar(30) NOT NULL default '',
`subStatus` varchar(30) NOT NULL default '',
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`PO` varchar(30) NOT NULL,
`QD` varchar(30) NOT NULL,
`RD` varchar(30) NOT NULL,
@@ -980,7 +980,7 @@ CREATE TABLE IF NOT EXISTS `zt_productplan` (
`parent` mediumint(9) NOT NULL DEFAULT '0',
`title` varchar(90) NOT NULL,
`status` enum('wait','doing','done','closed') NOT NULL default 'wait',
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`begin` date NOT NULL,
`end` date NOT NULL,
`order` text NOT NULL,
@@ -1017,7 +1017,7 @@ CREATE TABLE IF NOT EXISTS `zt_project` (
`status` varchar(10) NOT NULL,
`subStatus` varchar(30) NOT NULL DEFAULT '',
`pri` enum('1','2','3','4') NOT NULL DEFAULT '1',
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`version` smallint(6) NOT NULL,
`parentVersion` smallint(6) NOT NULL,
`planDuration` int(11) NOT NULL,
@@ -1121,7 +1121,7 @@ CREATE TABLE IF NOT EXISTS `zt_release` (
`stories` text NOT NULL,
`bugs` text NOT NULL,
`leftBugs` text NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`mailto` text,
`notify` varchar(255),
`status` varchar(20) NOT NULL default 'normal',
@@ -1335,8 +1335,8 @@ CREATE TABLE IF NOT EXISTS `zt_storyspec` (
`story` mediumint(9) NOT NULL,
`version` smallint(6) NOT NULL,
`title` varchar(255) NOT NULL,
`spec` text NOT NULL,
`verify` text NOT NULL,
`spec` mediumtext NOT NULL,
`verify` mediumtext NOT NULL,
UNIQUE KEY `story` (`story`,`version`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_storystage`;
@@ -1379,7 +1379,7 @@ CREATE TABLE IF NOT EXISTS `zt_task` (
`subStatus` varchar(30) NOT NULL default '',
`color` char(7) NOT NULL,
`mailto` text,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`version` smallint(6) NOT NULL,
`openedBy` varchar(30) NOT NULL,
`openedDate` datetime NOT NULL,
@@ -1516,7 +1516,7 @@ CREATE TABLE IF NOT EXISTS `zt_testsuite` (
`project` mediumint(8) unsigned NOT NULL,
`product` mediumint(8) unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`type` varchar(20) NOT NULL,
`addedBy` char(30) NOT NULL,
`addedDate` datetime NOT NULL,
@@ -1541,7 +1541,7 @@ CREATE TABLE IF NOT EXISTS `zt_testtask` (
`end` date NOT NULL,
`realFinishedDate` datetime NOT NULL,
`mailto` text,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`report` text NOT NULL,
`status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait',
`testreport` mediumint(8) unsigned NOT NULL,
@@ -1564,7 +1564,7 @@ CREATE TABLE IF NOT EXISTS `zt_todo` (
`idvalue` mediumint(8) unsigned NOT NULL DEFAULT '0',
`pri` tinyint(3) unsigned NOT NULL,
`name` char(150) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait',
`private` tinyint(1) NOT NULL,
`config` varchar(255) NOT NULL,
@@ -6926,7 +6926,7 @@ CREATE TABLE IF NOT EXISTS `zt_service` (
`deploy` varchar(255) NOT NULL,
`version` varchar(64) NOT NULL,
`color` char(7) NOT NULL,
`desc` text,
`desc` mediumtext,
`dept` varchar(128) NOT NULL,
`devel` varchar(30) NOT NULL,
`qa` varchar(30) NOT NULL,
@@ -7111,7 +7111,7 @@ CREATE TABLE IF NOT EXISTS `zt_deploy` (
`begin` datetime NOT NULL,
`end` datetime NOT NULL,
`name` varchar(255) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`status` varchar(20) NOT NULL,
`owner` char(30) NOT NULL,
`members` text NOT NULL,
@@ -7248,7 +7248,7 @@ CREATE TABLE `zt_traincourse` (
`name` varchar(255) NOT NULL,
`status` varchar(10) NOT NULL,
`teacher` varchar(30) NOT NULL default '',
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`createdBy` varchar(255) NOT NULL,
`createdDate` date NOT NULL,
`editedBy` varchar(255) NOT NULL,
@@ -8879,7 +8879,7 @@ CREATE TABLE IF NOT EXISTS `zt_activity` (
`name` varchar(255) NOT NULL,
`optional` varchar(255) NOT NULL,
`tailorNorm` varchar(255) NOT NULL,
`content` text NOT NULL,
`content` mediumtext NOT NULL,
`assignedTo` varchar(30) NOT NULL,
`status` varchar(30) NOT NULL,
`createdBy` varchar(30) NOT NULL,
@@ -8970,7 +8970,7 @@ CREATE TABLE IF NOT EXISTS `zt_nc` (
`auditplan` mediumint(8) NOT NULL,
`listID` mediumint(8) NOT NULL,
`title` varchar(255) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`type` char(30) NOT NULL,
`status` varchar(30) NOT NULL DEFAULT 'active',
`severity` char(30) NOT NULL,
@@ -8997,7 +8997,7 @@ CREATE TABLE IF NOT EXISTS `zt_zoutput` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`activity` mediumint(8) NOT NULL,
`name` varchar(255) NOT NULL,
`content` text NOT NULL,
`content` mediumtext NOT NULL,
`optional` char(20) NOT NULL,
`tailorNorm` varchar(255) NOT NULL,
`status` varchar(30) NOT NULL,
@@ -9017,7 +9017,7 @@ CREATE TABLE IF NOT EXISTS `zt_process` (
`name` varchar(255) NOT NULL,
`type` char(30) NOT NULL,
`abbr` char(30) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`assignedTo` varchar(30) NOT NULL,
`status` varchar(30) NOT NULL,
`order` mediumint(9) NOT NULL,
@@ -9120,7 +9120,7 @@ CREATE TABLE IF NOT EXISTS `zt_budget` (
`subject` mediumint(8) NOT NULL,
`amount` char(30) NOT NULL,
`name` varchar(255) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`createdBy` char(30) NOT NULL,
`createdDate` date NOT NULL,
`lastEditedBy` char(30) NOT NULL,
@@ -9142,8 +9142,8 @@ CREATE TABLE IF NOT EXISTS `zt_researchplan` (
`location` varchar(255) NOT NULL,
`team` varchar(255) NOT NULL,
`method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL,
`outline` text NOT NULL,
`schedule` text NOT NULL,
`outline` mediumtext NOT NULL,
`schedule` mediumtext NOT NULL,
`createdBy` varchar(30) NOT NULL,
`createdDate` datetime NOT NULL,
`editedBy` varchar(30) NOT NULL,
@@ -9159,7 +9159,7 @@ CREATE TABLE IF NOT EXISTS `zt_researchreport` (
`relatedPlan` mediumint(8) unsigned NOT NULL,
`title` varchar(255) NOT NULL,
`author` varchar(30) NOT NULL,
`content` text NOT NULL,
`content` mediumtext NOT NULL,
`customer` varchar(255) NOT NULL,
`researchObjects` varchar(255) NOT NULL,
`begin` datetime NOT NULL,
@@ -9223,7 +9223,7 @@ CREATE TABLE IF NOT EXISTS `zt_assetlib` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`createdBy` varchar(30) NOT NULL,
`createdDate` datetime NOT NULL,
`editedBy` varchar(30) NOT NULL,
@@ -9237,7 +9237,7 @@ CREATE TABLE IF NOT EXISTS `zt_meastemplate` (
`id` mediumint(8) NOT NULL AUTO_INCREMENT,
`model` char(30) NOT NULL,
`name` varchar(255) NOT NULL,
`content` text NOT NULL,
`content` mediumtext NOT NULL,
`createdBy` char(30) NOT NULL,
`createdDate` date NOT NULL,
`deleted` enum('0','1') NOT NULL DEFAULT '0',
@@ -9458,7 +9458,7 @@ CREATE TABLE IF NOT EXISTS `zt_issue` (
`project` varchar(255) NOT NULL,
`execution` mediumint(8) unsigned NOT NULL,
`title` varchar(255) NOT NULL,
`desc` text NOT NULL,
`desc` mediumtext NOT NULL,
`pri` char(30) NOT NULL,
`severity` char(30) NOT NULL,
`type` char(30) NOT NULL,
@@ -9504,8 +9504,8 @@ CREATE TABLE IF NOT EXISTS `zt_risk` (
`rate` char(30) NOT NULL,
`pri` char(30) NOT NULL,
`identifiedDate` date NOT NULL,
`prevention` text NOT NULL,
`remedy` text NOT NULL,
`prevention` mediumtext NOT NULL,
`remedy` mediumtext NOT NULL,
`plannedClosedDate` date NOT NULL,
`actualClosedDate` date NOT NULL,
`lib` mediumint(8) unsigned NOT NULL default 0,
@@ -9515,7 +9515,7 @@ CREATE TABLE IF NOT EXISTS `zt_risk` (
`createdDate` datetime NOT NULL,
`editedBy` varchar(30) NOT NULL,
`editedDate` datetime NOT NULL,
`resolution` text NOT NULL,
`resolution` mediumtext NOT NULL,
`resolvedBy` varchar(30) NOT NULL,
`activateBy` varchar(30) NOT NULL,
`activateDate` date NOT NULL,
@@ -9553,7 +9553,7 @@ CREATE TABLE IF NOT EXISTS `zt_opportunity` (
`assignedTo` varchar(30) NOT NULL,
`assignedDate` date NOT NULL,
`approvedDate` date NOT NULL,
`prevention` text NOT NULL,
`prevention` mediumtext NOT NULL,
`plannedClosedDate` date NOT NULL,
`actualClosedDate` date NOT NULL,
`lib` mediumint(8) unsigned NOT NULL default 0,
@@ -9572,7 +9572,7 @@ CREATE TABLE IF NOT EXISTS `zt_opportunity` (
`cancelReason` char(30) NOT NULL,
`hangupedBy` varchar(30) NOT NULL,
`hangupedDate` datetime NOT NULL,
`resolution` text NOT NULL,
`resolution` mediumtext NOT NULL,
`resolvedBy` varchar(30) NOT NULL,
`resolvedDate` datetime NOT NULL,
`lastCheckedBy` varchar(30) NOT NULL,
@@ -9593,7 +9593,7 @@ CREATE TABLE IF NOT EXISTS `zt_trainplan` (
`lecturer` varchar(20) NOT NULL,
`type` enum('inside','outside') NOT NULL DEFAULT 'inside',
`status` varchar(20) NOT NULL,
`summary` text NOT NULL,
`summary` mediumtext NOT NULL,
`createdBy` char(30),
`createdDate` datetime NOT NULL,
`editedBy` varchar(30) NOT NULL,
@@ -9608,7 +9608,7 @@ CREATE TABLE IF NOT EXISTS `zt_gapanalysis` (
`project` mediumint(8) unsigned NOT NULL,
`account` varchar(30) NOT NULL,
`role` varchar(20) NOT NULL,
`analysis` text NOT NULL,
`analysis` mediumtext NOT NULL,
`needTrain` enum('no','yes') NOT NULL DEFAULT 'no',
`createdBy` char(30),
`createdDate` datetime NOT NULL,
+4 -1
View File
@@ -30,7 +30,10 @@ $(function()
}
$dropmenu.append("<li><a href='javascript:saveDatatableConfig(\"mode\", \"<?php echo $mode == 'table' ? 'datatable' : 'table';?>\", true);' id='switchToDatatable'><?php echo $mode == 'table' ? $lang->datatable->switchToDatatable : $lang->datatable->switchToTable;?></a></li>");
$dropdown.append($dropmenu).appendTo($btnToolbar);
$dropdown.append($dropmenu)
.appendTo($btnToolbar)
.on('shown.zui.dropdown', function(){$btnToolbar.closest('.table-header').css('z-index', 11);})
.on('hidden.zui.dropdown', function(){$btnToolbar.closest('.table-header').css('z-index', 5);});
}
};
$('#main .main-table').on('tableReload', addSettingButton);
+1 -1
View File
@@ -46,7 +46,7 @@ $config->custom->fieldList['story']['review'] = 'reviewedDate,comment';
$config->custom->fieldList['productplan'] = 'begin,end,desc';
$config->custom->fieldList['release']['create'] = 'desc';
$config->custom->fieldList['release']['edit'] = 'desc';
$config->custom->fieldList['execution']['create'] = 'days,desc';
$config->custom->fieldList['execution']['create'] = 'days,desc,PO,PM,QD,RD';
$config->custom->fieldList['execution']['edit'] = 'days,desc,PO,PM,QD,RD';
$config->custom->fieldList['task']['create'] = 'story,pri,estimate,desc,estStarted,deadline';
$config->custom->fieldList['task']['edit'] = 'pri,estimate,estStarted,deadline';
+1 -1
View File
@@ -20,7 +20,7 @@ class custom extends control
public function index()
{
if($this->config->vision == 'lite') return print(js::locate(inlink('execution')));
if(($this->config->systemMode == 'new') and common::hasPriv('custom', 'set'))
{
return print(js::locate(inlink('set', "module=project&field=" . key($this->lang->custom->project->fields))));
+2 -1
View File
@@ -39,8 +39,9 @@
<th class='thWidth'>
<?php
$fields = $this->custom->getFormFields($moduleName, $method);
if(empty($fields)) continue;
if($moduleName == 'caselib' and $method == 'createcase') continue;
$actionKey = $method . 'Action';
if(isset($lang->$moduleName->$actionKey))
{
+1
View File
@@ -1326,6 +1326,7 @@ class execution extends control
$acl = $copyExecution->acl;
$whitelist = $copyExecution->whitelist;
$projectID = $copyExecution->project;
$project = $this->project->getByID($projectID);
$products = $this->loadModel('product')->getProducts($copyExecutionID);
$branches = $this->project->getBranchesByProject($copyExecutionID);
$plans = $this->loadModel('productplan')->getGroupByProduct(array_keys($products), 'skipParent|unexpired');
+1
View File
@@ -222,6 +222,7 @@ $lang->execution->exportAction = "Export Execution";
$lang->execution->computeBurnAction = "Update Burndown";
$lang->execution->create = "Create {$lang->executionCommon}";
$lang->execution->createExec = "Create {$lang->execution->common}";
$lang->execution->createAction = "Create {$lang->execution->common}";
$lang->execution->copyExec = "Copy {$lang->execution->common}";
$lang->execution->copy = "Copy {$lang->executionCommon}";
$lang->execution->delete = "Delete {$lang->executionCommon}";
+1
View File
@@ -222,6 +222,7 @@ $lang->execution->exportAction = "导出{$lang->execution->common}";
$lang->execution->computeBurnAction = "计算燃尽图";
$lang->execution->create = "添加{$lang->executionCommon}";
$lang->execution->createExec = "添加{$lang->execution->common}";
$lang->execution->createAction = "添加{$lang->execution->common}";
$lang->execution->copyExec = "复制{$lang->execution->common}";
$lang->execution->copy = "复制{$lang->executionCommon}";
$lang->execution->delete = "删除{$lang->executionCommon}";
+2 -1
View File
@@ -181,7 +181,8 @@ class group extends control
if($type == 'byModule') $result = $this->group->updatePrivByModule();
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
return print(js::alert($this->lang->saveSuccess) . js::execute('window.parent.location.reload()'));
if($type == 'byGroup') return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browse')));
if($type == 'byModule') return print(js::alert($this->lang->saveSuccess) . js::execute('window.parent.location.reload()'));
}
if($type == 'byGroup')
+1 -1
View File
@@ -41,7 +41,7 @@
.region .kanban-header-col > .title > .count {opacity: .5; font-weight: bold; color: #8b91a2;}
.region .kanban-header-col > .title > .error {color: #333333; padding-left: 2px; font-size: 10px; padding-top: 1px; padding-right: 2px;}
.kanban-affixed .kanban-header-col > .title > .text {color: #fff!important}
.region .kanban-header-col > .actions {position: inherit; top: 30%;}
.region .kanban-header-col > .actions {position: inherit; top: 0px;}
.region .kanban-header-parent-col > .actions {position: absolute; right: 0px; top: 0px !important;}
.region .kanban-header-sub-cols .actions {position: absolute; right: 0px; top: 0px !important;}
+2
View File
@@ -1276,6 +1276,8 @@ $(function()
initKanban($(this));
});
if(navigator.userAgent.toLowerCase().indexOf("qqbrowser") > -1) $('.region .kanban-header-col > .actions').css('top', '30%');
$('.icon-chevron-double-up,.icon-chevron-double-down').on('click', function()
{
$(this).toggleClass('icon-chevron-double-up icon-chevron-double-down');
+4 -4
View File
@@ -10,8 +10,8 @@ $(document).ready(function()
$('#submit').click(function()
{
var password = $('input#originalPassword').val();
var password1 = $('input#password1').val();
var password = $('input#originalPassword').val().trim();
var password1 = $('input#password1').val().trim();
var passwordStrength = computePasswordStrength(password1);
var rand = $('input#verifyRand').val();
@@ -21,8 +21,8 @@ $(document).ready(function()
if(!originalEncrypted && password) $('input#originalPassword').val(md5(md5(password) + rand));
originalEncrypted = true;
var password1 = $('#password1').val();
var password2 = $('#password2').val();
var password1 = $('#password1').val().trim();
var password2 = $('#password2').val().trim();
if(password1 && !password1Encrypted) $('#password1').val(md5(password1) + rand);
if(password2 && !password2Encrypted) $('#password2').val(md5(password2) + rand);
password1Encrypted = true;
+1
View File
@@ -89,6 +89,7 @@ $lang->product->notChangeProgramTip = "The {$lang->SRCommon} of {$lang->product
$lang->product->confirmChangeProgram = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set.";
$lang->product->changeProgramError = "The {$lang->SRCommon} of this {$lang->productCommon} has been linked to the project, please unlink it before proceeding";
$lang->product->programEmpty = 'Program should not be empty!';
$lang->product->nameIsDuplicate = "『%s』 product line already exists, please reset!";
$lang->product->id = 'ID';
$lang->product->program = "Program";
+1
View File
@@ -89,6 +89,7 @@ $lang->product->notChangeProgramTip = "该{$lang->productCommon}的{$lang->SRCo
$lang->product->confirmChangeProgram = "如下项目既关联了该{$lang->productCommon}又关联了其他{$lang->productCommon},请确认是否继续关联该{$lang->productCommon},勾选后将取消与其他{$lang->productCommon}的关联关系,同时转移至新项目集下。";
$lang->product->changeProgramError = "该{$lang->productCommon}的{$lang->SRCommon}已经关联到项目,请取消关联后再操作";
$lang->product->programEmpty = '项目集不能为空';
$lang->product->nameIsDuplicate = "『%s』产品线已经存在,请重新设置!";
$lang->product->id = '编号';
$lang->product->program = "所属项目集";
+18 -2
View File
@@ -835,6 +835,8 @@ class productModel extends model
$maxOrder = $this->dao->select("max(`order`) as maxOrder")->from(TABLE_MODULE)->where('type')->eq('line')->fetch('maxOrder');
$maxOrder = $maxOrder ? $maxOrder : 0;
$lines = array();
foreach($data->modules as $id => $name)
{
if(empty($name)) continue;
@@ -844,8 +846,22 @@ class productModel extends model
return false;
}
$line->name = strip_tags(trim($name));
$line->root = $data->programs[$id];
$programID = $data->programs[$id];
if(!isset($lines[$programID])) $lines[$programID] = array();
if(in_array($name, $lines[$programID]))
{
dao::$errors[] = sprintf($this->lang->product->nameIsDuplicate, $name);
return false;
}
$lines[$programID][] = $name;
}
foreach($data->modules as $id => $name)
{
if(empty($name)) continue;
$line->name = strip_tags(trim($name));
$line->root = $data->programs[$id];
if(is_numeric($id))
{
@@ -22,7 +22,6 @@
.project-name.has-suffix > a {max-width: calc(100% - 100px);}
.project-name.has-prefix > a {padding-left: 5px;}
.project-name.has-suffix > a {padding-right: 5px;}
.table-footer {z-index: 1;}
</style>
<div id="mainMenu" class="clearfix">
<?php if($this->config->systemMode == 'new'):?>
+1
View File
@@ -294,6 +294,7 @@ class reportModel extends model
->beginIF($dept)->andWhere('t1.account')->in(array_keys($deptUsers))->fi()
->andWhere('t1.type')->eq('execution')
->andWhere("t1.account NOT IN(SELECT `assignedTo` FROM " . TABLE_TASK . " WHERE `execution` = t1.`root` AND `status` NOT IN('cancel, closed, done, pause') AND assignedTo != '' GROUP BY assignedTo)")
->andWhere('t2.deleted')->eq('0')
->fetchGroup('account', 'name');
$workload = array();
+6 -9
View File
@@ -29,7 +29,8 @@ class storyModel extends model
->andWhere('vision')->eq($this->config->vision)
->fetch();
if(!$story) return false;
if(substr($story->closedDate, 0, 4) == '0000') $story->closedDate = '';
if(helper::isZeroDate($story->closedDate)) $story->closedDate = '';
if($version == 0) $version = $story->version;
$spec = $this->dao->select('title,spec,verify')->from(TABLE_STORYSPEC)->where('story')->eq($storyID)->andWhere('version')->eq($version)->fetch();
$story->title = isset($spec->title) ? $spec->title : '';
@@ -3775,20 +3776,16 @@ class storyModel extends model
{
if($isObject)
{
$story = $stories;
$story = $stories;
$stories = (array)$stories;
$stories[$story->id] = $story;
}
/* Set child story id into array. */
$storyIdList = array();
if(isset($stories['id']))
$storyIdList = isset($stories['id']) ? array($stories['id'] => $stories['id']) : array_keys($stories);
if(isset($stories['id']) and isset($story->children)) $storyIdList = array_merge($storyIdList, array_keys($story->children));
if(!isset($stories['id']))
{
$storyIdList = array($stories['id'] => $stories['id']);
}
else
{
$storyIdList = array_keys($stories);
foreach($stories as $story)
{
if(isset($story->children)) $storyIdList = array_merge($storyIdList, array_keys($story->children));
+4 -2
View File
@@ -264,13 +264,15 @@ class testcaseModel extends model
*/
public function getModuleProjectCases($productID, $branch = 0, $moduleIdList = 0, $orderBy = 'id_desc', $pager = null, $browseType = '', $auto = 'no')
{
$executions = $this->loadModel('execution')->getIdList($this->session->project);
array_push($executions, $this->session->project);
return $this->dao->select('distinct t1.*, t2.*, t4.title as storyTitle')->from(TABLE_PROJECTCASE)->alias('t1')
->leftJoin(TABLE_CASE)->alias('t2')->on('t1.case=t2.id')
->leftJoin(TABLE_PROJECTSTORY)->alias('t3')->on('t3.story=t2.story')
->leftJoin(TABLE_STORY)->alias('t4')->on('t3.story=t4.id')
->where('1=1')
->where('t1.project')->in($executions)
->beginIF(!empty($productID))->andWhere('t2.product')->eq((int)$productID)->fi()
->beginIF($this->app->tab == 'project')->andWhere('t1.project')->eq($this->session->project)->fi()
->beginIF($branch !== 'all')->andWhere('t2.branch')->eq($branch)->fi()
->beginIF($moduleIdList)->andWhere('t2.module')->in($moduleIdList)->fi()
->beginIF($browseType == 'wait')->andWhere('t2.status')->eq($browseType)->fi()
+3
View File
@@ -39,6 +39,8 @@ class todoModel extends model
->setIF($this->post->date == false, 'date', '2030-01-01')
->setIF($this->post->begin == false, 'begin', '2400')
->setIF($this->post->begin == false or $this->post->end == false, 'end', '2400')
->setIF($this->post->status == 'done', 'finishedBy', $this->app->user->account)
->setIF($this->post->status == 'done', 'finishedDate', helper::now())
->stripTags($this->config->todo->editor->create['id'], $this->config->allowedTags)
->remove(implode(',', $this->config->todo->moduleList) . ',uid')
->get();
@@ -521,6 +523,7 @@ class todoModel extends model
->beginIF($type == 'assignedtoother')->andWhere('account', true)->eq($account)->fi()
->beginIF($type != 'assignedtoother')->andWhere('assignedTo', true)->eq($account)->fi()
->orWhere('finishedBy')->eq($account)
->orWhere('closedBy')->eq($account)
->markRight(1)
->beginIF($begin)->andWhere('date')->ge($begin)->fi()
->beginIF($end)->andWhere('date')->le($end)->fi()
+16 -7
View File
@@ -59,15 +59,24 @@ $(document).on('click', '.chosen-with-drop', function()
var select = $(this).prev('select');
if($(select).val() == 'ditto')
{
var index = $(select).closest('td').index();
var row = $(select).closest('tr').index();
var table = $(select).closest('tr').parent();
var value = '';
for(i = row - 1; i >= 0; i--)
if($(select).attr('id').substr(0, 7) == 'visions')
{
value = $(table).find('tr').eq(i).find('td').eq(index).find('select').val();
if(value != 'ditto') break;
/* Fix bug #19960. */
var value = '';
}
else
{
var index = $(select).closest('td').index();
var row = $(select).closest('tr').index();
var table = $(select).closest('tr').parent();
var value = '';
for(i = row - 1; i >= 0; i--)
{
value = $(table).find('tr').eq(i).find('td').eq(index).find('select').val();
if(value != 'ditto') break;
}
}
$(select).val(value);
$(select).trigger("chosen:updated");
}
+1 -1
View File
@@ -221,7 +221,7 @@ $lang->user->error->account = "【ID %s】的用户名应该为:三位
$lang->user->error->accountDupl = "【ID %s】的用户名已经存在";
$lang->user->error->realname = "【ID %s】的真实姓名必须填写";
$lang->user->error->visions = "【ID %s】的界面类型必须填写";
$lang->user->error->password = "【ID %s】的密码必须为六位以上";
$lang->user->error->password = "【ID %s】的密码必须为六位及以上";
$lang->user->error->mail = "【ID %s】的邮箱地址不正确";
$lang->user->error->reserved = "【ID %s】的用户名已被系统预留";
$lang->user->error->weakPassword = "【ID %s】的密码强度小于系统设定。";
+1 -1
View File
@@ -218,7 +218,7 @@ $lang->user->error = new stdclass();
$lang->user->error->account = "【ID %s】的用戶名應該為:三位以上的英文、數字或下劃線的組合";
$lang->user->error->accountDupl = "【ID %s】的用戶名已經存在";
$lang->user->error->realname = "【ID %s】的真實姓名必須填寫";
$lang->user->error->password = "【ID %s】的密碼必須為六位以上";
$lang->user->error->password = "【ID %s】的密碼必須為六位及以上";
$lang->user->error->mail = "【ID %s】的郵箱地址不正確";
$lang->user->error->reserved = "【ID %s】的用戶名已被系統預留";
$lang->user->error->weakPassword = "【ID %s】的密碼強度小於系統設定。";
+42 -95
View File
@@ -23,6 +23,7 @@ class actionTest
*/
public function createTest($objectType, $objectID, $actionType, $comment = '', $extra = '', $actor = '', $autoDelete = true)
{
$_SERVER['HTTP_HOST'] = 'pms.zentao.com';
$_POST['uid'] = '';
$objectID = $this->objectModel->create($objectType, $objectID, $actionType, $comment, $extra, $actor, $autoDelete);
@@ -51,15 +52,6 @@ class actionTest
return $objects;
}
public function getUnreadActionsTest($actionID = 0)
{
$objects = $this->objectModel->getUnreadActions($actionID = 0);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Test get product, project, execution of the object.
*
@@ -93,6 +85,9 @@ class actionTest
if(dao::isError()) return dao::getError();
$dirname = dirname(__DIR__) . DS;
$objects[$objectID]->extra = str_replace($dirname, '', $objects[$objectID]->extra);
$objects[$objectID]->extra = trim($objects[$objectID]->extra, "\n");
return $objects[$objectID];
}
@@ -186,15 +181,6 @@ class actionTest
return $objects;
}
public function printActionTest($action, $desc = '')
{
$objects = $this->objectModel->printAction($action, $desc = '');
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Test get actions as dynamic.
*
@@ -218,24 +204,6 @@ class actionTest
return count($objects);
}
public function getActionConditionTest()
{
$objects = $this->objectModel->getActionCondition();
if(dao::isError()) return dao::getError();
return $objects;
}
public function getDynamicBySearchTest($products, $projects, $executions, $queryID, $orderBy = 'date_desc', $pager = null, $date = '', $direction = 'next')
{
$objects = $this->objectModel->getDynamicBySearch($products, $projects, $executions, $queryID, $orderBy = 'date_desc', $pager = null, $date = '', $direction = 'next');
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Test get actions by SQL.
*
@@ -254,8 +222,18 @@ class actionTest
return count($objects);
}
/**
* Test transform the actions for display.
*
* @param array $actions
* @access public
* @return array
*/
public function transformActionsTest($actions)
{
global $tester;
$actions = $tester->dao->select('*')->from(TABLE_ACTION)->where('id')->in($actions)->fetchAll('id');
$objects = $this->objectModel->transformActions($actions);
if(dao::isError()) return dao::getError();
@@ -321,6 +299,9 @@ class actionTest
if(dao::isError()) return dao::getError();
$dirname = dirname(__DIR__) . DS;
$object->objectLink = str_replace($dirname, '', $object->objectLink);
return $object;
}
@@ -353,22 +334,21 @@ class actionTest
if($period == 'lastweek') return $date['begin'] == $begin and $date['end'] == $end . ' 23:59:59';
}
public function printChangesTest($objectType, $histories, $canChangeTag = true)
{
$objects = $this->objectModel->printChanges($objectType, $histories, $canChangeTag = true);
if(dao::isError()) return dao::getError();
return $objects;
}
/**
* Test undelete a record.
*
* @param int $actionID
* @access public
* @return object
*/
public function undeleteTest($actionID)
{
$objects = $this->objectModel->undelete($actionID);
$this->objectModel->undelete($actionID);
if(dao::isError()) return dao::getError();
return $objects;
$object = $this->objectModel->getByID($actionID);
return $object;
}
/**
@@ -405,13 +385,25 @@ class actionTest
return $objects;
}
public function updateCommentTest($actionID)
/**
* Test update comment of a action.
*
* @param int $actionID
* @param string $comment
* @access public
* @return object
*/
public function updateCommentTest($actionID, $comment)
{
$objects = $this->objectModel->updateComment($actionID);
$_POST['lastComment'] = $comment;
$this->objectModel->updateComment($actionID);
unset($_POST);
if(dao::isError()) return dao::getError();
return $objects;
$object = $this->objectModel->getByID($actionID);
return $object;
}
/**
@@ -434,49 +426,4 @@ class actionTest
foreach($objects as $object) $count += count($object);
return $count;
}
public function hasPreOrNextTest($date, $direction = 'next')
{
$objects = $this->objectModel->hasPreOrNext($date, $direction = 'next');
if(dao::isError()) return dao::getError();
return $objects;
}
public function saveIndexTest($objectType, $objectID, $actionType)
{
$objects = $this->objectModel->saveIndex($objectType, $objectID, $actionType);
if(dao::isError()) return dao::getError();
return $objects;
}
public function printActionForGitLabTest($action)
{
$objects = $this->objectModel->printActionForGitLab($action);
if(dao::isError()) return dao::getError();
return $objects;
}
public function processActionForAPITest($actions, $users = array(), $objectLang = array())
{
$objects = $this->objectModel->processActionForAPI($actions, $users = array(), $objectLang = array());
if(dao::isError()) return dao::getError();
return $objects;
}
public function processDynamicForAPITest($dynamics)
{
$objects = $this->objectModel->processDynamicForAPI($dynamics);
if(dao::isError()) return dao::getError();
return $objects;
}
}
+219
View File
@@ -0,0 +1,219 @@
<?php
class designTest
{
public function __construct()
{
global $tester;
$this->objectModel = $tester->loadModel('design');
}
/**
* Function create test by design
*
* @param int $projectID
* @param array $param
* @access public
* @return object
*/
public function createTest($projectID, $param = array())
{
$labels = array();
$files = array();
$createFields = array('product' => '', 'story' => '', 'type' => '', 'name' => '', 'labels' => $labels, 'files' => $files, 'desc' => '');
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$objectID = $this->objectModel->create($projectID);
unset($_POST);
if(dao::isError()) return dao::getError();
$objects = $this->objectModel->getByID($objectID);
return $objects;
}
/**
* Function batchCreate test by desgin
*
* @param int $projectID
* @param int $productID
* @param array $param
* @access public
* @return array
*/
public function batchCreateTest($projectID, $productID, $param = array())
{
global $tester;
$story = array('', '', '', '');
$type = array('', '', '', '');
$name = array('', '', '', '');
$desc = array('', '', '', '');
$createFields = array('story' => $story, 'type' => $type, 'name' => $name, 'desc' => $desc);
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$this->objectModel->batchCreate($projectID, $productID);
unset($_POST);
if(dao::isError()) return dao::getError();
$objects = $tester->dao->select('*')->from(TABLE_DESIGN)->where('project')->eq($projectID)->andwhere('product')->eq($productID)->fetchAll();
return $objects;
}
/**
* Function update test by desgin
*
* @param int $designID
* @param array $param
* @access public
* @return array
*/
public function updateTest($designID, $param = array())
{
global $tester;
$labels = array();
$files = array();
$createFields = $tester->dao->select('`product`,`story`,`type`,`name`,`desc`')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetchAll();
$createFields[0]->labels = $labels;
$createFields[0]->files = $files;
foreach($createFields[0] as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$objects = $this->objectModel->update($designID);
unset($_POST);
if(dao::isError()) return dao::getError();
return $objects;
}
public function assignTest($designID, $param = array())
{
global $tester;
$createFields = array('assignedTo' => '', 'comment' => '');
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
foreach($param as $key => $value) $_POST[$key] = $value;
$this->objectModel->assign($designID);
unset($_POST);
if(dao::isError()) return dao::getError();
$objects = $tester->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetchAll();
return $objects;
}
public function linkCommitTest($designID = 0, $repoID = 0)
{
$objects = $this->objectModel->linkCommit($designID = 0, $repoID = 0);
if(dao::isError()) return dao::getError();
return $objects;
}
public function unlinkCommitTest($designID = 0, $commitID = 0)
{
$objects = $this->objectModel->unlinkCommit($designID = 0, $commitID = 0);
if(dao::isError()) return dao::getError();
return $objects;
}
public function getByIDTest($designID = 0)
{
$objects = $this->objectModel->getByID($designID = 0);
if(dao::isError()) return dao::getError();
return $objects;
}
public function getPairsTest($productID = 0, $type = 'all')
{
$objects = $this->objectModel->getPairs($productID = 0, $type = 'all');
if(dao::isError()) return dao::getError();
return $objects;
}
public function getAffectedScopeTest($design = 0)
{
$objects = $this->objectModel->getAffectedScope($design = 0);
if(dao::isError()) return dao::getError();
return $objects;
}
public function getListTest($projectID = 0, $productID = 0, $type = 'all', $param = 0, $orderBy = 'id_desc', $pager = null)
{
$objects = $this->objectModel->getList($projectID = 0, $productID = 0, $type = 'all', $param = 0, $orderBy = 'id_desc', $pager = null);
if(dao::isError()) return dao::getError();
return $objects;
}
public function getCommitTest($designID = 0, $pager = null)
{
$objects = $this->objectModel->getCommit($designID = 0, $pager = null);
if(dao::isError()) return dao::getError();
return $objects;
}
public function getBySearchTest($projectID = 0, $productID = 0, $queryID = 0, $orderBy = 'id_desc', $pager = null)
{
$objects = $this->objectModel->getBySearch($projectID = 0, $productID = 0, $queryID = 0, $orderBy = 'id_desc', $pager = null);
if(dao::isError()) return dao::getError();
return $objects;
}
public function setMenuTest($projectID, $products, $productID = 0)
{
$objects = $this->objectModel->setMenu($projectID, $products, $productID = 0);
if(dao::isError()) return dao::getError();
return $objects;
}
public function buildSearchFormTest($queryID = 0, $actionURL = '')
{
$objects = $this->objectModel->buildSearchForm($queryID = 0, $actionURL = '');
if(dao::isError()) return dao::getError();
return $objects;
}
public function printAssignedHtmlTest($design = '', $users = '')
{
$objects = $this->objectModel->printAssignedHtml($design = '', $users = '');
if(dao::isError()) return dao::getError();
return $objects;
}
}
+35
View File
@@ -0,0 +1,35 @@
title: table zt_designspec
desc: ""
author: automated export
version: "1.0"
fields:
- field: design
note: ""
range: 1-120
prefix: ""
postfix: ""
format: ""
- field: version
note: ""
range: 1
prefix: ""
postfix: ""
format: ""
- field: name
note: ""
range: 1-10000
prefix: "这是一个设计"
postfix: ""
format: ""
- field: desc
note: ""
range: 1-10000
prefix: "这是设计描述"
postfix: ""
format: ""
- field: files
note: ""
range: ""
prefix: ""
postfix: ""
format: ""
+4 -3
View File
@@ -81,9 +81,10 @@ $builder->doclib = array('rows' => 900, 'extends' => array('doclib'));
$builder->doc = array('rows' => 900, 'extends' => array('doc'));
$builder->doccontent = array('rows' => 900, 'extends' => array('doccontent'));
$builder->build = array('rows' => 20, 'extends' => array('build'));
$builder->release = array('rows' => 10, 'extends' => array('release'));
$builder->design = array('rows' => 120, 'extends' => array('design'));
$builder->build = array('rows' => 20, 'extends' => array('build'));
$builder->release = array('rows' => 10, 'extends' => array('release'));
$builder->design = array('rows' => 120, 'extends' => array('design'));
$builder->designspec = array('rows' => 120, 'extends' => array('designspec'));
$builder->webhook = array('rows' => 7, 'extends' => array('webhook'));
$builder->entry = array('rows' => 1, 'extends' => array('entry'));
+2
View File
@@ -32,6 +32,7 @@ class Processor
{
$this->dao->begin();
$this->initBassicSql();
$this->initDept();
$this->initUser();
$this->initProgram();
@@ -297,6 +298,7 @@ class Processor
{
global $app;
$sqlRoot = $app->getAppRoot();
$this->dao->exec(file_get_contents($sqlRoot . '/data/zt_config.sql'));
$this->dao->exec(file_get_contents($sqlRoot . '/data/zt_lang.sql'));
$this->dao->exec(file_get_contents($sqlRoot . '/data/zt_cron.sql'));
}
+36
View File
@@ -0,0 +1,36 @@
truncate `zt_config`;
INSERT INTO `zt_config` (`id`, `vision`, `owner`, `module`, `section`, `key`, `value`) VALUES
(1, 'rnd', 'system', 'custom', '', 'hourPoint', '0'),
(2, 'rnd', 'system', 'common', '', 'CRProduct', '1'),
(3, 'rnd', 'system', 'common', '', 'CRExecution', '1'),
(4, 'rnd', 'system', 'custom', '', 'URSR', '2'),
(9, 'rnd', 'system', 'common', 'global', 'mode', 'new'),
(6, 'rnd', 'system', 'project', '', 'unitList', 'CNY,USD'),
(7, 'rnd', 'system', 'project', '', 'defaultCurrency', 'CNY'),
(8, 'rnd', 'system', 'story', '', 'reviewRules', 'allpass'),
(10, 'rnd', 'system', 'common', 'global', 'version', '16.5.beta1'),
(11, 'rnd', 'system', 'common', 'global', 'sn', 'c8aa3269e181f2b9258ce96625de1497'),
(12, 'rnd', 'system', 'common', 'global', 'flow', 'full'),
(13, 'rnd', 'system', 'common', 'safe', 'mode', '1'),
(14, 'rnd', 'system', 'common', 'safe', 'changeWeak', '1'),
(15, 'rnd', 'system', 'common', 'global', 'cron', '1'),
(16, 'rnd', 'system', 'common', 'xuanxuan', 'turnon', '1'),
(17, 'rnd', 'system', 'common', 'xuanxuan', 'key', 'd3229cab1d072d31c505a027dbd3cd6e'),
(18, 'rnd', 'system', 'common', 'xuanxuan', 'chatPort', '11444'),
(19, 'rnd', 'system', 'common', 'xuanxuan', 'commonPort', '11443'),
(20, 'rnd', 'system', 'common', 'xuanxuan', 'ip', '0.0.0.0'),
(21, 'rnd', 'system', 'common', 'xuanxuan', 'uploadFileSize', '20'),
(22, 'rnd', 'system', 'common', 'xuanxuan', 'https', 'off'),
(23, 'rnd', 'system', 'cron', 'run', 'status', 'running'),
(24, 'rnd', 'system', 'common', 'global', 'latestVersionList', '[]'),
(25, 'rnd', 'admin', 'common', '', 'URSR', '2'),
(26, 'rnd', 'admin', 'common', '', 'programLink', 'program-browse'),
(27, 'rnd', 'admin', 'common', '', 'productLink', 'product-all'),
(28, 'rnd', 'admin', 'common', '', 'projectLink', 'project-browse'),
(29, 'rnd', 'admin', 'common', '', 'executionLink', 'execution-task'),
(30, 'rnd', 'admin', 'common', '', 'preferenceSetted', '1'),
(31, 'rnd', 'admin', 'my', 'common', 'blockInited', '1'),
(32, 'rnd', 'admin', 'my', 'block', 'initVersion', '2'),
(33, 'rnd', 'system', 'common', 'global', 'skipIntroduction', ',admin'),
(34, 'rnd', 'system', 'common', 'global', 'skipTutorial', ',admin'),
(35, 'rnd', 'system', 'common', 'global', 'skipYoungBlueTheme', ',admin');
+4 -7
View File
@@ -13,20 +13,17 @@ pid=1
*/
$directionList = array('next', 'pre');
$typeList = array('today', 'yesterday', 'thisweek', 'lastweek');
$typeList = array('today', 'yesterday', 'lastweek');
$orderBy = 'date_asc';
$action = new actionTest();
r($action->buildDateGroupTest($directionList[0], $typeList[0])) && p() && e('3'); // 测试创建下一个动作日期组 今天
r($action->buildDateGroupTest($directionList[0], $typeList[1])) && p() && e('3'); // 测试创建下一个动作日期组 昨天
r($action->buildDateGroupTest($directionList[0], $typeList[2])) && p() && e('9'); // 测试创建下一个动作日期组 本周
r($action->buildDateGroupTest($directionList[0], $typeList[3])) && p() && e('21'); // 测试创建下一个动作日期组 上周
r($action->buildDateGroupTest($directionList[0], $typeList[2])) && p() && e('21'); // 测试创建下一个动作日期组 上周
r($action->buildDateGroupTest($directionList[0], $typeList[0], $orderBy)) && p() && e('3'); // 测试创建下一个动作日期组 今天
r($action->buildDateGroupTest($directionList[0], $typeList[1], $orderBy)) && p() && e('3'); // 测试创建下一个动作日期组 昨天
r($action->buildDateGroupTest($directionList[0], $typeList[2], $orderBy)) && p() && e('9'); // 测试创建下一个动作日期组 本周
r($action->buildDateGroupTest($directionList[0], $typeList[3], $orderBy)) && p() && e('21'); // 测试创建下一个动作日期组 上周
r($action->buildDateGroupTest($directionList[0], $typeList[2], $orderBy)) && p() && e('21'); // 测试创建下一个动作日期组 上周
r($action->buildDateGroupTest($directionList[1], $typeList[0])) && p() && e('3'); // 测试创建下一个动作日期组 今天
r($action->buildDateGroupTest($directionList[1], $typeList[1])) && p() && e('3'); // 测试创建下一个动作日期组 昨天
r($action->buildDateGroupTest($directionList[1], $typeList[2])) && p() && e('9'); // 测试创建下一个动作日期组 本周
r($action->buildDateGroupTest($directionList[1], $typeList[3])) && p() && e('21'); // 测试创建下一个动作日期组 上周
r($action->buildDateGroupTest($directionList[1], $typeList[2])) && p() && e('21'); // 测试创建下一个动作日期组 上周
+30
View File
@@ -0,0 +1,30 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
su('admin');
/**
title=测试 actionModel->create();
cid=1
pid=1
*/
$objectTypeList = array('task', 'project', 'user', 'bug', 'story');
$objectIDList = array('1', '11');
$actionTypeList = array('edited', 'editestimate', 'login', 'closed', 'comments', 'logout');
$actor = 'guest';
$comment = '测试备注';
$action = new actionTest();
r($action->createTest($objectTypeList[0], $objectIDList[0], $actionTypeList[0])) && p('objectType,objectId,action,comment') && e('task,,edited,'); // 测试创建task 1 edited动态
r($action->createTest($objectTypeList[1], $objectIDList[1], $actionTypeList[1])) && p('objectType,objectId,action,comment') && e('project,,editestimate,'); // 测试创建project 11 editestimate动态
r($action->createTest($objectTypeList[2], $objectIDList[0], $actionTypeList[2])) && p('objectType,objectId,action,comment') && e('user,,login,'); // 测试创建user 1 login动态
r($action->createTest($objectTypeList[3], $objectIDList[0], $actionTypeList[3])) && p('objectType,objectId,action,comment') && e('bug,,closed,'); // 测试创建bug 1 closed动态
r($action->createTest($objectTypeList[4], $objectIDList[0], $actionTypeList[4], $comment)) && p('objectType,objectId,action,comment') && e('story,,comments,测试备注'); // 测试创建story 1 comment动态
r($action->createTest($objectTypeList[4], $objectIDList[0], $actionTypeList[4])) && p() && e(''); // 测试创建story 1 comment动态 不填写备注
r($action->createTest($objectTypeList[2], $objectIDList[0], $actionTypeList[5], '', '', $actor)) && p() && e('0'); // 测试创建游客 logout动态
system("./ztest init");
+2 -3
View File
@@ -13,7 +13,7 @@ pid=1
*/
$accountList = array('all', 'admin', 'dev17', 'test18');
$typeList = array('all', 'today', 'yesterday', 'thisweek', 'lastweek');
$typeList = array('all', 'today', 'yesterday', 'lastweek');
$productIDList = array('all', 1, 2, 3);
$projectIDList = array('all', 1, 2, 3);
$executionIDList = array('all', 1, 2, 3);
@@ -28,8 +28,7 @@ r($action->getDynamicTest($accountList[2]))
r($action->getDynamicTest($accountList[3])) && p() && e('33'); // 查找用户test18动态
r($action->getDynamicTest($accountList[0], $typeList[1])) && p() && e('3'); // 查找今天的动态
r($action->getDynamicTest($accountList[0], $typeList[2])) && p() && e('3'); // 查找昨天的动态
r($action->getDynamicTest($accountList[0], $typeList[3])) && p() && e('9'); // 查找本周的动态
r($action->getDynamicTest($accountList[0], $typeList[4])) && p() && e('21'); // 查找上周的动态
r($action->getDynamicTest($accountList[0], $typeList[3])) && p() && e('21'); // 查找上周的动态
r($action->getDynamicTest($accountList[0], $typeList[0], $productIDList[1])) && p() && e('1'); // 查找产品1的动态
r($action->getDynamicTest($accountList[0], $typeList[0], $productIDList[2])) && p() && e('1'); // 查找产品2的动态
r($action->getDynamicTest($accountList[0], $typeList[0], $productIDList[3])) && p() && e('1'); // 查找产品3的动态
+58
View File
@@ -0,0 +1,58 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
su('admin');
/**
title=测试 actionModel->getList();
cid=1
pid=1
*/
$objectType = array('product', 'story', 'productplan', 'release', 'project', 'task', 'build', 'bug', 'testcase', 'case', 'testtask', 'user', 'doc', 'doclib', 'todo', 'branch', 'module', 'testsuite', 'caselib', 'testreport', 'entry', 'webhook', 'review');
$objectId = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39);
$action = new actionTest();
r($action->getListTest($objectType[0], $objectId[0])) && p('id,actor,extra') && e("1,admin,1"); // 测试获取objectType product objectId 1的动态信息
r($action->getListTest($objectType[1], $objectId[1])) && p('id,actor,extra') && e("2,dev17,1"); // 测试获取objectType story objectId 2的动态信息
r($action->getListTest($objectType[2], $objectId[2])) && p('id,actor,extra') && e("3,test18,1"); // 测试获取objectType productplan objectId 3的动态信息
r($action->getListTest($objectType[3], $objectId[3])) && p('id,actor,extra') && e("4,admin,1"); // 测试获取objectType release objectId 4的动态信息
r($action->getListTest($objectType[4], $objectId[4])) && p('id,actor,extra') && e("5,dev17,11"); // 测试获取objectType project objectId 5的动态信息
r($action->getListTest($objectType[5], $objectId[5])) && p('id,actor,extra') && e("6,test18,1"); // 测试获取objectType task objectId 6的动态信息
r($action->getListTest($objectType[6], $objectId[6])) && p('id,actor,extra') && e("7,admin,1"); // 测试获取objectType build objectId 7的动态信息
r($action->getListTest($objectType[7], $objectId[7])) && p('id,actor,extra') && e("8,dev17,1"); // 测试获取objectType bug objectId 8的动态信息
r($action->getListTest($objectType[8], $objectId[8])) && p('id,actor,extra') && e("9,test18,2"); // 测试获取objectType testcase objectId 9的动态信息
r($action->getListTest($objectType[9], $objectId[9])) && p('id,actor,extra') && e("10,admin,1"); // 测试获取objectType case objectId 10的动态信息
r($action->getListTest($objectType[10], $objectId[10])) && p('id,actor,extra') && e("11,dev17,1"); // 测试获取objectType testtask objectId 11的动态信息
r($action->getListTest($objectType[11], $objectId[11])) && p('id,actor,extra') && e("12,test18,1"); // 测试获取objectType user objectId 12的动态信息
r($action->getListTest($objectType[12], $objectId[12])) && p('id,actor,extra') && e("13,admin,1"); // 测试获取objectType doc objectId 13的动态信息
r($action->getListTest($objectType[13], $objectId[13])) && p('id,actor,extra') && e("14,dev17,1"); // 测试获取objectType doclib objectId 14的动态信息
r($action->getListTest($objectType[14], $objectId[14])) && p('id,actor,extra') && e("15,test18,1"); // 测试获取objectType todo objectId 15的动态信息
r($action->getListTest($objectType[15], $objectId[15])) && p('id,actor,extra') && e("16,admin,1"); // 测试获取objectType branch objectId 16的动态信息
r($action->getListTest($objectType[16], $objectId[16])) && p('id,actor,extra') && e("17,dev17,1"); // 测试获取objectType module objectId 17的动态信息
r($action->getListTest($objectType[17], $objectId[17])) && p('id,actor,extra') && e("18,test18,<a href='model/action/execution-task-1.' >#1 项目集1</a>"); // 测试获取objectType testsuite objectId 18的动态信息
r($action->getListTest($objectType[18], $objectId[18])) && p('id,actor,extra') && e("19,admin,1"); // 测试获取objectType caselib objectId 19的动态信息
r($action->getListTest($objectType[19], $objectId[19])) && p('id,actor,extra') && e("20,dev17,1"); // 测试获取objectType testreport objectId 20的动态信息
r($action->getListTest($objectType[20], $objectId[20])) && p('id,actor,extra') && e("21,test18,1"); // 测试获取objectType entry objectId 21的动态信息
r($action->getListTest($objectType[21], $objectId[21])) && p('id,actor,extra') && e("22,admin,<a href='model/action/bug-view-1.' >1</a>"); // 测试获取objectType webhook objectId 22的动态信息
r($action->getListTest($objectType[22], $objectId[22])) && p('id,actor,extra') && e("23,dev17,1"); // 测试获取objectType review objectId 23的动态信息
r($action->getListTest($objectType[0], $objectId[23])) && p('id,actor,extra') && e("24,test18,1"); // 测试获取objectType product objectId 24的动态信息
r($action->getListTest($objectType[1], $objectId[24])) && p('id,actor,extra') && e("25,admin,1"); // 测试获取objectType story objectId 25的动态信息
r($action->getListTest($objectType[2], $objectId[25])) && p('id,actor,extra') && e("26,dev17,1"); // 测试获取objectType productplan objectId 26的动态信息
r($action->getListTest($objectType[3], $objectId[26])) && p('id,actor,extra') && e("27,test18,1"); // 测试获取objectType release objectId 27的动态信息
r($action->getListTest($objectType[4], $objectId[27])) && p('id,actor,extra') && e("28,admin,33"); // 测试获取objectType project objectId 28的动态信息
r($action->getListTest($objectType[5], $objectId[28])) && p('id,actor,extra') && e("29,dev17,1"); // 测试获取objectType task objectId 29的动态信息
r($action->getListTest($objectType[6], $objectId[29])) && p('id,actor,extra') && e("30,test18,1"); // 测试获取objectType build objectId 30的动态信息
r($action->getListTest($objectType[7], $objectId[30])) && p('id,actor,extra') && e("31,admin,1"); // 测试获取objectType bug objectId 31的动态信息
r($action->getListTest($objectType[8], $objectId[31])) && p('id,actor,extra') && e("32,项目经理17,1"); // 测试获取objectType testcase objectId 32的动态信息
r($action->getListTest($objectType[9], $objectId[32])) && p('id,actor,extra') && e("33,test18,1"); // 测试获取objectType case objectId 33的动态信息
r($action->getListTest($objectType[10], $objectId[33])) && p('id,actor,extra') && e("34,admin,1"); // 测试获取objectType testtask objectId 34的动态信息
r($action->getListTest($objectType[11], $objectId[34])) && p('id,actor,extra') && e("35,dev17,1"); // 测试获取objectType user objectId 35的动态信息
r($action->getListTest($objectType[12], $objectId[35])) && p('id,actor,extra') && e("36,test18,1"); // 测试获取objectType doc objectId 36的动态信息
r($action->getListTest($objectType[13], $objectId[36])) && p('id,actor,extra') && e("37,admin,1"); // 测试获取objectType doclib objectId 37的动态信息
r($action->getListTest($objectType[14], $objectId[37])) && p('id,actor,extra') && e("38,dev17,1"); // 测试获取objectType todo objectId 38的动态信息
r($action->getListTest($objectType[15], $objectId[38])) && p('id,actor,extra') && e("39,test18,<a href='model/action/build-view-1-branch.' >项目版本版本1</a>"); // 测试获取objectType branch objectId 39的动态信息
+68
View File
@@ -0,0 +1,68 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
su('admin');
/**
title=测试 actionModel->getObjectLabel();
cid=1
pid=1
测试获取objectType product objectId 1的动态信息 >> 产品|product|view|productID=%s
测试获取objectType story objectId 2的动态信息 >> 研发需求|story|view|storyID=%s
测试获取objectType productplan objectId 3的动态信息 >> 计划|productplan|view|productID=%s
测试获取objectType release objectId 4的动态信息 >> 发布|release|view|productID=%s
测试获取objectType project objectId 5的动态信息 >> 项目|project|index|projectID=%s
测试获取objectType task objectId 6的动态信息 >> 任务|task|view|taskID=%s
测试获取objectType build objectId 7的动态信息 >> 版本|build|view|buildID=%s
测试获取objectType bug objectId 8的动态信息 >> Bug|bug|view|bugID=%s
测试获取objectType testcase objectId 9的动态信息 >> testcase
测试获取objectType case objectId 10的动态信息 >> 用例|testcase|view|caseID=%s
测试获取objectType testtask objectId 11的动态信息 >> 测试单|testtask|view|caseID=%s
测试获取objectType user objectId 12的动态信息 >> 用户|user|view|account=%s
测试获取objectType doclib objectId 14的动态信息 >> 文档库|doc|tablecontents|type=%s&objectID=%s&libID=%s
测试获取objectType todo objectId 15的动态信息 >> 待办|todo|view|todoID=%s
测试获取objectType branch objectId 16的动态信息 >> branch
测试获取objectType module objectId 17的动态信息 >> module
测试获取objectType testsuite objectId 18的动态信息 >> 测试套件|testsuite|view|suiteID=%s
测试获取objectType caselib objectId 19的动态信息 >> 用例库|caselib|view|libID=%s
测试获取objectType testreport objectId 20的动态信息 >> 报告|testreport|view|report=%s
测试获取objectType entry objectId 21的动态信息 >> 应用|entry|browse|
测试获取objectType webhook objectId 22的动态信息 >> Webhook|webhook|browse|
测试获取objectType review objectId 23的动态信息 >> review
测试获取objectType story objectId 25的动态信息 >> 用户需求|story|view|storyID=%s
*/
$objectType = array('product', 'story', 'productplan', 'release', 'project', 'task', 'build', 'bug', 'testcase', 'case', 'testtask', 'user', 'doc', 'doclib', 'todo', 'branch', 'module', 'testsuite', 'caselib', 'testreport', 'entry', 'webhook', 'review');
$objectId = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25);
$actionType = array('common', 'extra', 'opened', 'created', 'changed', 'edited', 'assigned', 'closed', 'deleted', 'deletedfile', 'editfile', 'erased', 'undeleted', 'hidden', 'commented', 'activated', 'blocked', 'moved', 'confirmed', 'caseconfirmed', 'bugconfirmed', 'frombug', 'started', 'delayed');
$requirements = array('25' => '25');
$action = new actionTest();
r($action->getObjectLabelTest($objectType[0], $objectId[0], $actionType[0], $requirements)) && p() && e('产品|product|view|productID=%s'); // 测试获取objectType product objectId 1的动态信息
r($action->getObjectLabelTest($objectType[1], $objectId[1], $actionType[1], $requirements)) && p() && e('研发需求|story|view|storyID=%s'); // 测试获取objectType story objectId 2的动态信息
r($action->getObjectLabelTest($objectType[2], $objectId[2], $actionType[2], $requirements)) && p() && e('计划|productplan|view|productID=%s'); // 测试获取objectType productplan objectId 3的动态信息
r($action->getObjectLabelTest($objectType[3], $objectId[3], $actionType[3], $requirements)) && p() && e('发布|release|view|productID=%s'); // 测试获取objectType release objectId 4的动态信息
r($action->getObjectLabelTest($objectType[4], $objectId[4], $actionType[4], $requirements)) && p() && e('项目|project|index|projectID=%s'); // 测试获取objectType project objectId 5的动态信息
r($action->getObjectLabelTest($objectType[5], $objectId[5], $actionType[5], $requirements)) && p() && e('任务|task|view|taskID=%s'); // 测试获取objectType task objectId 6的动态信息
r($action->getObjectLabelTest($objectType[6], $objectId[6], $actionType[6], $requirements)) && p() && e('版本|build|view|buildID=%s'); // 测试获取objectType build objectId 7的动态信息
r($action->getObjectLabelTest($objectType[7], $objectId[7], $actionType[7], $requirements)) && p() && e('Bug|bug|view|bugID=%s'); // 测试获取objectType bug objectId 8的动态信息
r($action->getObjectLabelTest($objectType[8], $objectId[8], $actionType[8], $requirements)) && p() && e('testcase'); // 测试获取objectType testcase objectId 9的动态信息
r($action->getObjectLabelTest($objectType[9], $objectId[9], $actionType[9], $requirements)) && p() && e('用例|testcase|view|caseID=%s'); // 测试获取objectType case objectId 10的动态信息
r($action->getObjectLabelTest($objectType[10], $objectId[10], $actionType[10], $requirements)) && p() && e('测试单|testtask|view|caseID=%s'); // 测试获取objectType testtask objectId 11的动态信息
r($action->getObjectLabelTest($objectType[11], $objectId[11], $actionType[11], $requirements)) && p() && e('用户|user|view|account=%s'); // 测试获取objectType user objectId 12的动态信息
r($action->getObjectLabelTest($objectType[13], $objectId[13], $actionType[13], $requirements)) && p() && e('文档库|doc|tablecontents|type=%s&objectID=%s&libID=%s'); // 测试获取objectType doclib objectId 14的动态信息
r($action->getObjectLabelTest($objectType[14], $objectId[14], $actionType[14], $requirements)) && p() && e('待办|todo|view|todoID=%s'); // 测试获取objectType todo objectId 15的动态信息
r($action->getObjectLabelTest($objectType[15], $objectId[15], $actionType[15], $requirements)) && p() && e('branch'); // 测试获取objectType branch objectId 16的动态信息
r($action->getObjectLabelTest($objectType[16], $objectId[16], $actionType[16], $requirements)) && p() && e('module'); // 测试获取objectType module objectId 17的动态信息
r($action->getObjectLabelTest($objectType[17], $objectId[17], $actionType[17], $requirements)) && p() && e('测试套件|testsuite|view|suiteID=%s'); // 测试获取objectType testsuite objectId 18的动态信息
r($action->getObjectLabelTest($objectType[18], $objectId[18], $actionType[18], $requirements)) && p() && e('用例库|caselib|view|libID=%s'); // 测试获取objectType caselib objectId 19的动态信息
r($action->getObjectLabelTest($objectType[19], $objectId[19], $actionType[19], $requirements)) && p() && e('报告|testreport|view|report=%s'); // 测试获取objectType testreport objectId 20的动态信息
r($action->getObjectLabelTest($objectType[20], $objectId[20], $actionType[20], $requirements)) && p() && e('应用|entry|browse|'); // 测试获取objectType entry objectId 21的动态信息
r($action->getObjectLabelTest($objectType[21], $objectId[21], $actionType[21], $requirements)) && p() && e('Webhook|webhook|browse|'); // 测试获取objectType webhook objectId 22的动态信息
r($action->getObjectLabelTest($objectType[22], $objectId[22], $actionType[22], $requirements)) && p() && e('review'); // 测试获取objectType review objectId 23的动态信息
r($action->getObjectLabelTest($objectType[1], $objectId[23], $actionType[23], $requirements)) && p() && e('用户需求|story|view|storyID=%s'); // 测试获取objectType story objectId 25的动态信息
+59
View File
@@ -0,0 +1,59 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
su('admin');
/**
title=测试 actionModel->getRelatedFields();
cid=1
pid=1
*/
$objectType = array('product', 'story', 'productplan', 'release', 'project', 'task', 'build', 'bug', 'testcase', 'case', 'testtask', 'user', 'doc', 'doclib', 'todo', 'branch', 'module', 'testsuite', 'caselib', 'testreport', 'entry', 'webhook', 'review');
$objectId = array(1,2,3,4,5,6,7,8,9,10,1,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,1,28,29,1,31,32,33,1,35,36,37,38,39);
$actionType = array('common', 'extra', 'opened', 'created', 'changed', 'edited', 'assigned', 'closed', 'deleted', 'deletedfile', 'editfile', 'erased', 'undeleted', 'hidden', 'commented', 'activated', 'blocked', 'moved', 'confirmed', 'caseconfirmed', 'bugconfirmed', 'frombug', 'started', 'restarted', 'delayed', 'suspended', 'recordestimate', 'editestimate', 'deleteestimate', 'canceled', 'svncommited', 'gitcommited', 'finished', 'paused', 'verified', 'diff1', 'diff2', 'diff3', 'linked2bug');
$extra = array('1', '1', '1', '1', '11', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '33', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1');
$action = new actionTest();
r($action->getRelatedFieldsTest($objectType[0], $objectId[0], $actionType[0], $extra[0])) && p('product;project;execution') && e(',1,;0;0'); // 测试获取objectType product objectId 1 actionType common extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[1], $objectId[1], $actionType[1], $extra[1])) && p('product;project;execution') && e(',1,;11;101'); // 测试获取objectType story objectId 2 actionType extra extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[2], $objectId[2], $actionType[2], $extra[2])) && p('product;project;execution') && e(',1,;0;0'); // 测试获取objectType productplan objectId 3 actionType opened extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[3], $objectId[3], $actionType[3], $extra[3])) && p('product;project;execution') && e(',41,;14;0'); // 测试获取objectType release objectId 4 actionType created extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[4], $objectId[4], $actionType[4], $extra[4])) && p('product;project;execution') && e(',,;5;0'); // 测试获取objectType project objectId 5 actionType changed extra 11 的动态信息
r($action->getRelatedFieldsTest($objectType[5], $objectId[5], $actionType[5], $extra[5])) && p('product;project;execution') && e(',6,;16;106'); // 测试获取objectType task objectId 6 actionType edited extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[6], $objectId[6], $actionType[6], $extra[6])) && p('product;project;execution') && e(',7,;17;0'); // 测试获取objectType build objectId 7 actionType assigned extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[7], $objectId[7], $actionType[7], $extra[7])) && p('product;project;execution') && e(',3,;13;103'); // 测试获取objectType bug objectId 8 actionType closed extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[8], $objectId[8], $actionType[8], $extra[8])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType testcase objectId 9 actionType deleted extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[9], $objectId[9], $actionType[9], $extra[9])) && p('product;project;execution') && e(',3,;13;103'); // 测试获取objectType case objectId 10 actionType deletedfile extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[10], $objectId[10], $actionType[10], $extra[10])) && p('product;project;execution') && e(',1,;11;101'); // 测试获取objectType testtask objectId 1 actionType editfile extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[11], $objectId[11], $actionType[11], $extra[11])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType user objectId 12 actionType erased extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[12], $objectId[12], $actionType[12], $extra[12])) && p('product;project;execution') && e(',13,;0;0'); // 测试获取objectType doc objectId 13 actionType undeleted extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[13], $objectId[13], $actionType[13], $extra[13])) && p('product;project;execution') && e(',14,;0;0'); // 测试获取objectType doclib objectId 14 actionType hidden extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[14], $objectId[14], $actionType[14], $extra[14])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType todo objectId 15 actionType commented extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[15], $objectId[15], $actionType[15], $extra[15])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType branch objectId 16 actionType activated extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[16], $objectId[16], $actionType[16], $extra[16])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType module objectId 17 actionType blocked extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[17], $objectId[17], $actionType[17], $extra[17])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType testsuite objectId 18 actionType moved extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[18], $objectId[18], $actionType[18], $extra[18])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType caselib objectId 19 actionType confirmed extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[19], $objectId[19], $actionType[19], $extra[19])) && p('product;project;execution') && e(',,;0;0'); // 测试获取objectType testreport objectId 20 actionType caseconfirmed extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[20], $objectId[20], $actionType[20], $extra[20])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType entry objectId 21 actionType bugconfirmed extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[21], $objectId[21], $actionType[21], $extra[21])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType webhook objectId 22 actionType frombug extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[22], $objectId[22], $actionType[22], $extra[22])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType review objectId 23 actionType started extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[0], $objectId[23], $actionType[23], $extra[23])) && p('product;project;execution') && e(',24,;0;0'); // 测试获取objectType product objectId 24 actionType restarted extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[1], $objectId[24], $actionType[24], $extra[24])) && p('product;project;execution') && e(',7,;0;0'); // 测试获取objectType story objectId 25 actionType delayed extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[2], $objectId[25], $actionType[25], $extra[25])) && p('product;project;execution') && e(',9,;0;0'); // 测试获取objectType productplan objectId 26 actionType suspended extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[3], $objectId[26], $actionType[26], $extra[26])) && p('product;project;execution') && e(',1,;11;0'); // 测试获取objectType release objectId 1 actionType recordestimate extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[4], $objectId[27], $actionType[27], $extra[27])) && p('product;project;execution') && e(',8,18,98,;28;0'); // 测试获取objectType project objectId 28 actionType editestimate extra 33 的动态信息
r($action->getRelatedFieldsTest($objectType[5], $objectId[28], $actionType[28], $extra[28])) && p('product;project;execution') && e(',29,;39;129'); // 测试获取objectType task objectId 29 actionType deleteestimate extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[6], $objectId[29], $actionType[29], $extra[29])) && p('product;project;execution') && e(',1,;11;0'); // 测试获取objectType build objectId 1 actionType canceled extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[7], $objectId[30], $actionType[30], $extra[30])) && p('product;project;execution') && e(',11,;21;111'); // 测试获取objectType bug objectId 31 actionType svncommited extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[8], $objectId[31], $actionType[31], $extra[31])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType testcase objectId 32 actionType gitcommited extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[9], $objectId[32], $actionType[32], $extra[32])) && p('product;project;execution') && e(',9,;19;109'); // 测试获取objectType case objectId 33 actionType finished extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[10], $objectId[33], $actionType[33], $extra[33])) && p('product;project;execution') && e(',1,;11;101'); // 测试获取objectType testtask objectId 1 actionType paused extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[11], $objectId[34], $actionType[34], $extra[34])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType user objectId 35 actionType verified extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[12], $objectId[35], $actionType[35], $extra[35])) && p('product;project;execution') && e(',36,;0;0'); // 测试获取objectType doc objectId 36 actionType diff1 extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[13], $objectId[36], $actionType[36], $extra[36])) && p('product;project;execution') && e(',37,;0;0'); // 测试获取objectType doclib objectId 37 actionType diff2 extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[14], $objectId[37], $actionType[37], $extra[37])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType todo objectId 38 actionType diff3 extra 1 的动态信息
r($action->getRelatedFieldsTest($objectType[15], $objectId[38], $actionType[38], $extra[38])) && p('product;project;execution') && e(',0,;0;0'); // 测试获取objectType branch objectId 39 actionType linked2bug extra 1 的动态信息
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
su('admin');
/**
title=测试 actionModel->logHistory();
cid=1
pid=1
*/
$actionIDList = array('10001', '10002', '10003', '10004', '10005');
$changes1[0] = array('field' => 'name', 'old' => '变更前名称', 'new' => '变更后名称');
$changes1[1] = array('field' => 'code', 'old' => '变更前编号', 'new' => '变更后编号');
$changes2[0] = array('field' => 'assignedTo', 'old' => 'admin', 'new' => 'test1');
$changes3[0] = array('field' => 'name', 'old' => 'name1', 'new' => 'name2');
$changes4[0] = array('field' => 'code', 'old' => 'code1', 'new' => 'code2');
$changes5[0] = array('field' => 'assignedTo', 'old' => 'test2', 'new' => 'test1');
$action = new actionTest();
r($action->logHistoryTest($actionIDList[0], $changes1)) && p('0:field,old,new;1:field,old,new') && e('name,变更前名称,变更后名称;code,变更前编号,变更后编号'); // 测试新增actionID 10001 历史记录
r($action->logHistoryTest($actionIDList[1], $changes2)) && p('0:field,old,new') && e('assignedTo,admin,test1'); // 测试新增actionID 10002 历史记录
r($action->logHistoryTest($actionIDList[2], $changes3)) && p('0:field,old,new') && e('name,name1,name2'); // 测试新增actionID 10003 历史记录
r($action->logHistoryTest($actionIDList[3], $changes4)) && p('0:field,old,new') && e('code,code1,code2'); // 测试新增actionID 10004 历史记录
r($action->logHistoryTest($actionIDList[4], $changes5)) && p('0:field,old,new') && e('assignedTo,test2,test1'); // 测试新增actionID 10005 历史记录
system("./ztest init");
+57
View File
@@ -0,0 +1,57 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
su('admin');
/**
title=测试 actionModel->setObjectLink();
cid=1
pid=1
*/
$actionIDList = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39);
$action = new actionTest();
r($action->setObjectLinkTest($actionIDList[0])) && p('id,objectLink') && e("1,model/action/product-view-1."); // 测试获取action 1 的objectLink
r($action->setObjectLinkTest($actionIDList[1])) && p('id,objectLink') && e("2,model/action/story-view-2."); // 测试获取action 2 的objectLink
r($action->setObjectLinkTest($actionIDList[2])) && p('id,objectLink') && e("3,model/action/productplan-view-3."); // 测试获取action 3 的objectLink
r($action->setObjectLinkTest($actionIDList[3])) && p('id,objectLink') && e("4,model/action/release-view-4."); // 测试获取action 4 的objectLink
r($action->setObjectLinkTest($actionIDList[4])) && p('id,objectLink') && e("5,model/action/project-index-5."); // 测试获取action 5 的objectLink
r($action->setObjectLinkTest($actionIDList[5])) && p('id,objectLink') && e("6,model/action/task-view-6."); // 测试获取action 6 的objectLink
r($action->setObjectLinkTest($actionIDList[6])) && p('id,objectLink') && e("7,model/action/build-view-7."); // 测试获取action 7 的objectLink
r($action->setObjectLinkTest($actionIDList[7])) && p('id,objectLink') && e("8,model/action/bug-view-8."); // 测试获取action 8 的objectLink
r($action->setObjectLinkTest($actionIDList[8])) && p('id,objectLink') && e("9,"); // 测试获取action 9 的objectLink
r($action->setObjectLinkTest($actionIDList[9])) && p('id,objectLink') && e("10,model/action/testcase-view-10."); // 测试获取action 10 的objectLink
r($action->setObjectLinkTest($actionIDList[10])) && p('id,objectLink') && e("11,model/action/testtask-view-11."); // 测试获取action 11 的objectLink
r($action->setObjectLinkTest($actionIDList[11])) && p('id,objectLink') && e("12,javascript:void(0)"); // 测试获取action 12 的objectLink
r($action->setObjectLinkTest($actionIDList[12])) && p('id,objectLink') && e("13,model/action/doc-view-13."); // 测试获取action 13 的objectLink
r($action->setObjectLinkTest($actionIDList[13])) && p('id,objectLink') && e("14,model/action/doc-objectLibs-product-14-14."); // 测试获取action 14 的objectLink
r($action->setObjectLinkTest($actionIDList[14])) && p('id,objectLink') && e("15,model/action/todo-view-15."); // 测试获取action 15 的objectLink
r($action->setObjectLinkTest($actionIDList[15])) && p('id,objectLink') && e("16,"); // 测试获取action 16 的objectLink
r($action->setObjectLinkTest($actionIDList[16])) && p('id,objectLink') && e("17,"); // 测试获取action 17 的objectLink
r($action->setObjectLinkTest($actionIDList[17])) && p('id,objectLink') && e("18,model/action/testsuite-view-18."); // 测试获取action 18 的objectLink
r($action->setObjectLinkTest($actionIDList[18])) && p('id,objectLink') && e("19,model/action/caselib-view-19."); // 测试获取action 19 的objectLink
r($action->setObjectLinkTest($actionIDList[19])) && p('id,objectLink') && e("20,model/action/testreport-view-20."); // 测试获取action 20 的objectLink
r($action->setObjectLinkTest($actionIDList[20])) && p('id,objectLink') && e("21,model/action/entry-browse."); // 测试获取action 21 的objectLink
r($action->setObjectLinkTest($actionIDList[21])) && p('id,objectLink') && e("22,model/action/webhook-browse."); // 测试获取action 22 的objectLink
r($action->setObjectLinkTest($actionIDList[22])) && p('id,objectLink') && e("23,"); // 测试获取action 23 的objectLink
r($action->setObjectLinkTest($actionIDList[23])) && p('id,objectLink') && e("24,model/action/product-view-24."); // 测试获取action 24 的objectLink
r($action->setObjectLinkTest($actionIDList[24])) && p('id,objectLink') && e("25,model/action/story-view-25."); // 测试获取action 25 的objectLink
r($action->setObjectLinkTest($actionIDList[25])) && p('id,objectLink') && e("26,model/action/productplan-view-26."); // 测试获取action 26 的objectLink
r($action->setObjectLinkTest($actionIDList[26])) && p('id,objectLink') && e("27,model/action/release-view-27."); // 测试获取action 27 的objectLink
r($action->setObjectLinkTest($actionIDList[27])) && p('id,objectLink') && e("28,model/action/project-index-28."); // 测试获取action 28 的objectLink
r($action->setObjectLinkTest($actionIDList[28])) && p('id,objectLink') && e("29,model/action/task-view-29."); // 测试获取action 29 的objectLink
r($action->setObjectLinkTest($actionIDList[29])) && p('id,objectLink') && e("30,model/action/build-view-30."); // 测试获取action 30 的objectLink
r($action->setObjectLinkTest($actionIDList[30])) && p('id,objectLink') && e("31,model/action/bug-view-31."); // 测试获取action 31 的objectLink
r($action->setObjectLinkTest($actionIDList[31])) && p('id,objectLink') && e("32,"); // 测试获取action 32 的objectLink
r($action->setObjectLinkTest($actionIDList[32])) && p('id,objectLink') && e("33,model/action/testcase-view-33."); // 测试获取action 33 的objectLink
r($action->setObjectLinkTest($actionIDList[33])) && p('id,objectLink') && e("34,model/action/testtask-view-34."); // 测试获取action 34 的objectLink
r($action->setObjectLinkTest($actionIDList[34])) && p('id,objectLink') && e("35,javascript:void(0)"); // 测试获取action 35 的objectLink
r($action->setObjectLinkTest($actionIDList[35])) && p('id,objectLink') && e("36,model/action/doc-view-36."); // 测试获取action 36 的objectLink
r($action->setObjectLinkTest($actionIDList[36])) && p('id,objectLink') && e("37,model/action/doc-objectLibs-product-37-37."); // 测试获取action 37 的objectLink
r($action->setObjectLinkTest($actionIDList[37])) && p('id,objectLink') && e("38,model/action/todo-view-38."); // 测试获取action 38 的objectLink
r($action->setObjectLinkTest($actionIDList[38])) && p('id,objectLink') && e("39,"); // 测试获取action 39 的objectLink
+22
View File
@@ -0,0 +1,22 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
su('admin');
/**
title=测试 actionModel->transformActions();
cid=1
pid=1
*/
$actions = array('1,2,3,4,5', '26,27,28,29,30', '51,52,53,54,55', '71,72,73,74,75', '96,97,98,99,100');
$action = new actionTest();
r($action->transformActionsTest($actions[0])) && p('1:objectName;2:objectName;3:objectName;4:objectName;5:objectName') && e('正常产品1;软件需求2;长名称好长好长好长好长好长好长好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好好长好长好长好长好长好的名字啊!@ase!!@#%@^&#!;项目停止维护的停止维护的里程碑发布4;项目集5'); // 测试转换动态1 2 3 4 5
r($action->transformActionsTest($actions[1])) && p('26:objectName;27:objectName;28:objectName;29:objectName;30:objectName') && e('1.1;;项目18;开发任务39;'); // 测试转换动态26 27 28 29 30
r($action->transformActionsTest($actions[2])) && p('51:objectName;52:objectName;53:objectName;54:objectName;55:objectName') && e('项目41;开发任务62;;BUG54;这个是测试用例55'); // 测试转换动态51 52 53 54 55
r($action->transformActionsTest($actions[3])) && p('71:objectName;72:objectName;73:objectName;74:objectName;75:objectName') && e('用户需求71;;;项目64;开发任务85'); // 测试转换动态71 72 73 74 75
r($action->transformActionsTest($actions[4])) && p('96:objectName;97:objectName;98:objectName;99:objectName;100:objectName') && e(';项目87;开发任务108;;BUG10'); // 测试转换动态96 97 98 99 100
+22
View File
@@ -0,0 +1,22 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
su('admin');
/**
title=测试 actionModel->undelete();
cid=1
pid=1
*/
$actionIDList = array('48', '87', '9', '1');
$action = new actionTest();
r($action->undeleteTest($actionIDList[0])) && p('extra') && e('0'); // 测试还原action 28
r($action->undeleteTest($actionIDList[1])) && p('extra') && e('0'); // 测试还原action 87
r($action->undeleteTest($actionIDList[2])) && p('extra') && e('0'); // 测试还原action 9
r($action->undeleteTest($actionIDList[3])) && p('extra') && e('1'); // 测试还原未删除action 1
system("./ztest init");
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
su('admin');
/**
title=测试 actionModel->updateComment();
cid=1
pid=1
*/
$actionIDList = array('1', '2', '3', '4', '5');
$commentList = array('备注1', '备注2', '备注3', '备注4', '备注5');
$action = new actionTest();
r($action->updateCommentTest($actionIDList[0], $commentList[0])) && p('comment') && e('备注1'); // 测试更新action 1的备注
r($action->updateCommentTest($actionIDList[1], $commentList[1])) && p('comment') && e('备注2'); // 测试更新action 2的备注
r($action->updateCommentTest($actionIDList[2], $commentList[2])) && p('comment') && e('备注3'); // 测试更新action 3的备注
r($action->updateCommentTest($actionIDList[3], $commentList[3])) && p('comment') && e('备注4'); // 测试更新action 4的备注
r($action->updateCommentTest($actionIDList[4], $commentList[4])) && p('comment') && e('备注5'); // 测试更新action 5的备注
system("./ztest init");
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->assign();
cid=1
pid=1
*/
$designID = '17';
$normalAssign = array('assignedTo' => 'dev10', 'comment' => '提交信息');
$noAssignedTo = array('comment' => '提交信息');
$design = new designTest();
r($design->assignTest($designID, $normalAssign)) && p('0:assignedTo') && e('dev10');//设置指派人
r($design->assignTest($designID, $noAssignedTo)) && p('0:assignedTo') && e(''); //指派人为空
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->batchCreate();
cid=1
pid=1
*/
$projectIDList = array('12', '32', '62', '13', '71', '72', '73', '75');
$productIDList = array('1', '21', '41');
$storys = array('1', '2', '3', '5');
$types = array('HLDS', 'DDS', 'DBDS', 'ADS');
$names = array('设计一', '设计二', '设计三', '设计四');
$desc = array('详情一', '详情二', '详情三', '详情四');
$normalDesign = array('story' => $storys, 'type' => $types, 'name' => $names, 'desc' => $desc);
$noStoryDesign = array('type' => $types, 'name' => $names, 'desc' => $desc);
$noTypeDesign = array('story' => $storys, 'name' => $names, 'desc' => $desc);
$noNameDesign = array('story' => $storys, 'type' => $types, 'desc' => $desc);
$noDescDesign = array('story' => $storys, 'type' => $types, 'name' => $names);
$design = new designTest();
r($design->batchCreateTest($projectIDList[0], $productIDList[0], $normalDesign)) && p('0:name') && e('设计一'); //批量创建敏捷项目设计
r($design->batchCreateTest($projectIDList[1], $productIDList[1], $normalDesign)) && p('0:project') && e('32'); //批量创建瀑布项目设计
r($design->batchCreateTest($projectIDList[2], $productIDList[2], $normalDesign)) && p('0:product') && e('41'); //批量创建看板项目设计
r($design->batchCreateTest($projectIDList[3], $productIDList[0], $noStoryDesign)) && p('0:story') && e(''); //不输入需求
r($design->batchCreateTest($projectIDList[4], $productIDList[0], $noTypeDesign)) && p('type:0') && e('『设计类型』不能为空。');//不输入类型
r($design->batchCreateTest($projectIDList[5], $productIDList[0], $noNameDesign)) && p() && e('0'); //不输入名字
r($design->batchCreateTest($projectIDList[6], $productIDList[0], $noDescDesign)) && p('0:desc') && e(''); //不输入详情
r(count($design->batchCreateTest($projectIDList[7], $productIDList[0], $noDescDesign))) && p() && e('4'); //批量创建设计数量统计
system("./ztest init");
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->buildSearchForm();
cid=1
pid=1
*/
$design = new designTest();
r($design->buildSearchFormTest()) && p() && e();
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->create();
cid=1
pid=1
*/
$projectIDList = array('11', '31', '61');
$products = array('1', '21', '41');
$type = array('HLDS', 'DDS', 'DBDS', 'ADS');
$hldsDesign = array('product' => $products[0], 'story' => '1', 'type' => $type[0], 'name' => 'hlds设计');
$ddsDesign = array('product' => $products[1], 'story' => '2', 'type' => $type[1], 'name' => 'dds设计');
$dbdsDesign = array('product' => $products[2], 'story' => '3', 'type' => $type[2], 'name' => 'dbds设计');
$adsDesign = array('product' => $products[0], 'story' => '1', 'type' => $type[3], 'name' => 'ads设计');
$noProductDesign = array('story' => '1', 'type' => $type[3], 'name' => 'ads设计');
$noStoryDesign = array('product' => $products[0], 'type' => $type[3], 'name' => 'ads设计');
$noTypeDesign = array('product' => $products[0], 'story' => '1', 'name' => 'ads设计');
$noNameDesign = array('product' => $products[0], 'story' => '1', 'type' => $type[3]);
$design = new designTest();
r($design->createTest($projectIDList[0], $hldsDesign)) && p('name') && e('hlds设计'); //创建hlds设计
r($design->createTest($projectIDList[1], $ddsDesign)) && p('story') && e('2'); //创建dds设计
r($design->createTest($projectIDList[2], $dbdsDesign)) && p('product') && e('61'); //创建dbds设计
r($design->createTest($projectIDList[0], $adsDesign)) && p('type') && e('ADS'); //创建ads设计
r($design->createTest($projectIDList[0], $noProductDesign)) && p('product') && e(''); //不输入产品创建设计
r($design->createTest($projectIDList[0], $noStoryDesign)) && p('story') && e(''); //不输入需求创建设计
r($design->createTest($projectIDList[0], $noTypeDesign)) && p('type:0') && e('『设计类型』不能为空。'); //不输入类型创建设计
r($design->createTest($projectIDList[0], $noNameDesign)) && p('name:0') && e('『设计名称』不能为空。'); //不输入名称创建设计
system("./ztest init");
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->getAffectedScope();
cid=1
pid=1
*/
$design = new designTest();
r($design->getAffectedScopeTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->getByID();
cid=1
pid=1
*/
$design = new designTest();
r($design->getByIDTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->getBySearch();
cid=1
pid=1
*/
$design = new designTest();
r($design->getBySearchTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->getCommit();
cid=1
pid=1
*/
$design = new designTest();
r($design->getCommitTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->getList();
cid=1
pid=1
*/
$design = new designTest();
r($design->getListTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->getPairs();
cid=1
pid=1
*/
$design = new designTest();
r($design->getPairsTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->linkCommit();
cid=1
pid=1
*/
$design = new designTest();
r($design->linkCommitTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->printAssignedHtml();
cid=1
pid=1
*/
$design = new designTest();
r($design->printAssignedHtmlTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->setMenu();
cid=1
pid=1
*/
$design = new designTest();
r($design->setMenuTest()) && p() && e();
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->unlinkCommit();
cid=1
pid=1
*/
$design = new designTest();
r($design->unlinkCommitTest()) && p() && e();
+34
View File
@@ -0,0 +1,34 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/design.class.php';
su('admin');
/**
title=测试 designModel->update();
cid=1
pid=1
*/
$designIDList = array('1', '2', '3');
$updateType = array('type' => 'DDS');
$updateStory = array('story' => '17');
$updateProduct = array('product' => '21');
$updateName = array('name' => '修改设计');
$updateDesc = array('desc' => '详情修改');
$noName = array('name' => '');
$noType = array('type' => '');
$design = new designTest();
r($design->updateTest($designIDList[0],$updateType)) && p('0:field,old,new') && e('type,HLDS,DDS'); //修改设计类型
r($design->updateTest($designIDList[1],$updateStory)) && p('0:field,old,new') && e('story,0,17'); //修改设计需求
r($design->updateTest($designIDList[2],$updateProduct)) && p('0:field,old,new') && e('product,31,21'); //修改设计产品
r($design->updateTest($designIDList[0],$updateName)) && p('0:field,old,new') && e('name,这是一个设计1,修改设计');//修改设计名称
r($design->updateTest($designIDList[0],$updateDesc)) && p('0:field,old,new') && e('desc,这是设计描述1,详情修改');//修改设计详情
r($design->updateTest($designIDList[0],$noName)) && p('name:0') && e('『设计名称』不能为空。'); //设计名称不能为空
r($design->updateTest($designIDList[0],$noType)) && p('type:0') && e('『设计类型』不能为空。'); //设计类型不能为空
system("./ztest init");
+3 -3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long