Merge branch 'master' into 'sprint/231_zg_issues'
# Conflicts: # module/story/lang/zh-cn.php
This commit is contained in:
@@ -261,6 +261,7 @@ $lang->resource->story->delete = 'deleteAction';
|
||||
$lang->resource->story->view = 'view';
|
||||
$lang->resource->story->change = 'changeAction';
|
||||
$lang->resource->story->review = 'reviewAction';
|
||||
$lang->resource->story->submitReview = 'submitReview';
|
||||
$lang->resource->story->batchReview = 'batchReview';
|
||||
$lang->resource->story->recall = 'recall';
|
||||
$lang->resource->story->assignTo = 'assignAction';
|
||||
@@ -289,6 +290,7 @@ $lang->story->methodOrder[25] = 'delete';
|
||||
$lang->story->methodOrder[30] = 'view';
|
||||
$lang->story->methodOrder[35] = 'change';
|
||||
$lang->story->methodOrder[40] = 'review';
|
||||
$lang->story->methodOrder[44] = 'submitReview';
|
||||
$lang->story->methodOrder[45] = 'batchReview';
|
||||
$lang->story->methodOrder[50] = 'recall';
|
||||
$lang->story->methodOrder[55] = 'close';
|
||||
|
||||
@@ -235,7 +235,18 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->legendMailto;?></th>
|
||||
<td><?php $mailto = explode(',', $story->mailto); foreach($mailto as $account) {if(empty($account)) continue; echo "<span>" . zget($users, trim($account)) . '</span> '; }?></td>
|
||||
<td>
|
||||
<?php
|
||||
if(!empty($story->mailto))
|
||||
{
|
||||
foreach(explode(',', $story->mailto) as $account)
|
||||
{
|
||||
if(empty($account)) continue;
|
||||
echo "<span>" . zget($users, trim($account)) . '</span> ';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -1461,6 +1461,17 @@ class baseRouter
|
||||
chdir(dirname($file2Included));
|
||||
helper::import($file2Included);
|
||||
|
||||
/* Check file is encode by ioncube. */
|
||||
$isEncrypted = false;
|
||||
if($isExt)
|
||||
{
|
||||
$fp = fopen($file2Included, 'r');
|
||||
$line1 = fgets($fp);
|
||||
$line2 = fgets($fp);
|
||||
fclose($fp);
|
||||
if(strpos($line1, '<?php //') === 0 and strpos($line2, "if(!extension_loaded('ionCube Loader'))") === 0) $isEncrypted = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* 设置control的类名。
|
||||
* Set the class name of the control.
|
||||
@@ -1500,7 +1511,7 @@ class baseRouter
|
||||
{
|
||||
$default = $paramDefaultValue[$className][$methodName][$name];
|
||||
}
|
||||
elseif($param->isDefaultValueAvailable())
|
||||
elseif(!$isEncrypted and $param->isDefaultValueAvailable())
|
||||
{
|
||||
$default = $param->getDefaultValue();
|
||||
}
|
||||
|
||||
@@ -71,16 +71,16 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
|
||||
{
|
||||
$moreLabel = $lang->more;
|
||||
$moreLabelActive = '';
|
||||
if(isset($lang->bug->moreSelects[$browseType]))
|
||||
if(isset($lang->bug->moreSelects[$this->session->bugBrowseType]))
|
||||
{
|
||||
$moreLabel = "<span class='text'>{$lang->bug->moreSelects[$browseType]}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||
$moreLabel = "<span class='text'>{$lang->bug->moreSelects[$this->session->bugBrowseType]}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||
$moreLabelActive = 'btn-active-text';
|
||||
}
|
||||
echo "<div class='btn-group'><a href='javascript:;' data-toggle='dropdown' class='btn btn-link {$moreLabelActive}'>{$moreLabel} <span class='caret'></span></a>";
|
||||
echo "<ul class='dropdown-menu'>";
|
||||
foreach($lang->bug->moreSelects as $menuBrowseType => $label)
|
||||
{
|
||||
$active = $menuBrowseType == $browseType ? 'btn-active-text' : '';
|
||||
$active = $menuBrowseType == $this->session->bugBrowseType ? 'btn-active-text' : '';
|
||||
echo '<li>' . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=$menuBrowseType"), "<span class='text'>{$label}</span>", '', "class='btn btn-link $active'") . '</li>';
|
||||
}
|
||||
echo '</ul></div>';
|
||||
|
||||
@@ -262,7 +262,14 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->mailto;?></th>
|
||||
<td><?php $mailto = explode(',', str_replace(' ', '', $bug->mailto)); foreach($mailto as $account) echo ' ' . zget($users, $account); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
if(empty($bug->mailto))
|
||||
{
|
||||
foreach(explode(',', str_replace(' ', '', $bug->mailto)) as $account) echo ' ' . zget($users, $account);
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -99,7 +99,7 @@ $(function()
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<td class='w-160px'><?php echo $lang->datatable->showModule;?></td>
|
||||
<td><?php echo html::radio('showModule', $lang->datatable->showModuleList, isset($config->datatable->$datatableId->showModule) ? $config->datatable->$datatableId->showModule : '');?></td>
|
||||
<td><?php echo html::radio('showModule', $lang->datatable->showModuleList, isset($config->datatable->$datatableId->showModule) ? $config->datatable->$datatableId->showModule : '0');?></td>
|
||||
</tr>
|
||||
<?php if($app->moduleName == 'execution' and $app->methodName == 'task' and $this->config->vision != 'lite'):?>
|
||||
<tr>
|
||||
|
||||
@@ -23,7 +23,7 @@ $lang->datatable->displaySetting = 'Set list';
|
||||
$lang->datatable->showModule = 'Anzeigen/Verstecken des Modul Names';
|
||||
$lang->datatable->showBranch = 'Show branches in the list';
|
||||
$lang->datatable->showAllModule = 'Show product modules';
|
||||
$lang->datatable->showModuleList[] = 'N/A';
|
||||
$lang->datatable->showModuleList['0'] = 'N/A';
|
||||
$lang->datatable->showModuleList['base'] = 'Basisknoten';
|
||||
$lang->datatable->showModuleList['end'] = 'Endknoten';
|
||||
$lang->datatable->showAllModuleList[0] = 'Hide';
|
||||
|
||||
@@ -23,7 +23,7 @@ $lang->datatable->displaySetting = 'Set List';
|
||||
$lang->datatable->showModule = 'Show modules in the list';
|
||||
$lang->datatable->showBranch = 'Show branches in the list';
|
||||
$lang->datatable->showAllModule = 'Show product modules';
|
||||
$lang->datatable->showModuleList[] = 'N/A';
|
||||
$lang->datatable->showModuleList['0'] = 'N/A';
|
||||
$lang->datatable->showModuleList['base'] = 'Base Node';
|
||||
$lang->datatable->showModuleList['end'] = 'End Node';
|
||||
$lang->datatable->showAllModuleList[0] = 'Hide';
|
||||
|
||||
@@ -23,7 +23,7 @@ $lang->datatable->displaySetting = 'Set list';
|
||||
$lang->datatable->showModule = 'Montrer les noms des modules dans la page de listes';
|
||||
$lang->datatable->showBranch = 'Show branches in the list';
|
||||
$lang->datatable->showAllModule = 'Afficher les modules de produits';
|
||||
$lang->datatable->showModuleList[] = 'N/A';
|
||||
$lang->datatable->showModuleList['0'] = 'N/A';
|
||||
$lang->datatable->showModuleList['base'] = 'Base Node';
|
||||
$lang->datatable->showModuleList['end'] = 'End Node';
|
||||
$lang->datatable->showAllModuleList[0] = 'Cacher';
|
||||
|
||||
@@ -23,7 +23,7 @@ $lang->datatable->displaySetting = '显示设置';
|
||||
$lang->datatable->showModule = '列表页是否显示模块名';
|
||||
$lang->datatable->showBranch = '列表页是否显示%s名';
|
||||
$lang->datatable->showAllModule = '是否显示完整产品模块';
|
||||
$lang->datatable->showModuleList[] = '不显示';
|
||||
$lang->datatable->showModuleList['0'] = '不显示';
|
||||
$lang->datatable->showModuleList['base'] = '只显示一级模块';
|
||||
$lang->datatable->showModuleList['end'] = '只显示最后一级模块';
|
||||
$lang->datatable->showAllModuleList[0] = '不显示';
|
||||
|
||||
@@ -1125,7 +1125,7 @@ class doc extends control
|
||||
/* Set Custom. */
|
||||
foreach(explode(',', $this->config->doc->customObjectLibs) as $libType) $customObjectLibs[$libType] = $this->lang->doc->customObjectLibs[$libType];
|
||||
|
||||
$actionURL = $this->createLink('doc', 'browse', "lib=0&browseType=bySearch&queryID=myQueryID");
|
||||
$actionURL = $this->createLink('doc', 'tableContents', "type=$type&objectID=$objectID&libID=$libID&browseType=bySearch¶m=myQueryID");
|
||||
$this->doc->buildSearchForm(0, array(), 0, $actionURL, $type);
|
||||
|
||||
$moduleTree = $type == 'book' ? $this->doc->getBookStructure($libID) : $this->doc->getTreeMenu($type, $objectID, $libID, 0, $docID);
|
||||
|
||||
@@ -930,6 +930,13 @@ class docModel extends model
|
||||
{
|
||||
$this->loadModel('product');
|
||||
|
||||
/* Fixed search modal for doc view. */
|
||||
if($this->app->getMethodName() == 'objectlibs')
|
||||
{
|
||||
$queryName = $type . 'Doc';
|
||||
$type = 'objectLibs';
|
||||
}
|
||||
|
||||
if($this->app->rawMethod == 'contribute')
|
||||
{
|
||||
$this->config->doc->search['module'] = 'contributeDoc';
|
||||
@@ -953,6 +960,7 @@ class docModel extends model
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->config->doc->search['module'] = $queryName;
|
||||
$products = $this->product->getPairs('nocode', $this->session->project);
|
||||
$this->config->doc->search['params']['execution']['values'] = array('' => '') + $this->loadModel('execution')->getPairs($this->session->project, 'all', 'noclosed') + array('all' => $this->lang->doc->allExecutions);
|
||||
$this->config->doc->search['params']['lib']['values'] = array('' => '', $libID => ($libID ? $libs[$libID] : 0), 'all' => $this->lang->doclib->all);
|
||||
|
||||
@@ -314,6 +314,7 @@ class file extends control
|
||||
$this->view->files = $files;
|
||||
$this->view->fieldset = $fieldset;
|
||||
$this->view->object = $object;
|
||||
$this->view->method = $method;
|
||||
|
||||
if($method == 'view') return $this->display('file', 'viewfiles');
|
||||
$this->display();
|
||||
|
||||
@@ -167,7 +167,7 @@ class fileModel extends model
|
||||
$files = array();
|
||||
if(!isset($_FILES[$htmlTagName])) return $files;
|
||||
|
||||
if($_FILES[$htmlTagName]['error'] != 0) return $_FILES[$htmlTagName];
|
||||
if(!is_array($_FILES[$htmlTagName]['error']) and $_FILES[$htmlTagName]['error'] != 0) return $_FILES[$htmlTagName];
|
||||
|
||||
$this->app->loadClass('purifier', true);
|
||||
$config = HTMLPurifier_Config::createDefault();
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
if(common::hasPriv($objectType, 'edit', $object))
|
||||
{
|
||||
echo "<span class='right-icon'> ";
|
||||
common::printLink('file', 'edit', "fileID=$file->id", $lang->file->edit, '', "data-width='400' class='fileAction btn btn-link edit iframe text-primary' title='{$lang->file->edit}'");
|
||||
if($method != 'storyChange') common::printLink('file', 'edit', "fileID=$file->id", $lang->file->edit, '', "data-width='400' class='fileAction btn btn-link edit iframe text-primary' title='{$lang->file->edit}'");
|
||||
if(common::hasPriv('file', 'delete')) echo html::a('###', $lang->delete, '', "class='fileAction btn btn-link text-primary' onclick='deleteFile($file->id)' title='$lang->delete'");
|
||||
echo '</span>';
|
||||
}
|
||||
|
||||
@@ -90,10 +90,10 @@
|
||||
</td>
|
||||
<td class='c-pri'><span class='label-pri <?php echo 'label-pri-' . $story->pri;?>' title='<?php echo zget($lang->story->priList, $story->pri, $story->pri);?>'><?php echo zget($lang->story->priList, $story->pri, $story->pri);?></span></td>
|
||||
<td class='c-name nobr <?php if(!empty($story->children)) echo "has-child" ?>'>
|
||||
<?php echo common::hasPriv('requirement', 'view') ? html::a($storyLink, $story->title, null, "style='color: $story->color' data-group='product'") : "<span title='$story->title'>$story->title</span>";?>
|
||||
<?php echo common::hasPriv('requirement', 'view') ? html::a($storyLink, $story->title, null, "style='color: $story->color' data-group='product' title='$story->title'") : "<span title='$story->title'>$story->title</span>";?>
|
||||
<?php if(!empty($story->children)) echo '<a class="story-toggle" data-id="' . $story->id . '"><i class="icon icon-angle-double-right"></i></a>';?>
|
||||
</td>
|
||||
<td class='c-product'><?php echo $story->productTitle;?></td>
|
||||
<td class='c-product' title="<?php echo $story->productTitle;?>"><?php echo $story->productTitle;?></td>
|
||||
<td class='c-user'><?php echo zget($users, $story->openedBy);?></td>
|
||||
<td class='c-hours' title="<?php echo $story->estimate . ' ' . $lang->hourCommon;?>"><?php echo $story->estimate . $config->hourUnit;?></td>
|
||||
<td class='c-status'><span class='status-story status-<?php echo $story->status;?>'> <?php echo $this->processStatus('story', $story);?></span></td>
|
||||
@@ -133,9 +133,9 @@
|
||||
</td>
|
||||
<td class='c-pri'><span class='label-pri <?php echo 'label-pri-' . $child->pri;?>' title='<?php echo zget($lang->story->priList, $child->pri, $child->pri);?>'><?php echo zget($lang->story->priList, $child->pri, $child->pri);?></span></td>
|
||||
<td class='c-name nobr'>
|
||||
<?php echo '<span class="label label-badge label-light" title="' . $this->lang->story->children .'">SR</span> ' . (common::hasPriv('story', 'view') ? html::a($storyLink, $child->title, null, "style='color: $child->color' data-group='product'") : $child->title);?>
|
||||
<?php echo '<span class="label label-badge label-light" title="' . $this->lang->story->children .'">SR</span> ' . (common::hasPriv('story', 'view') ? html::a($storyLink, $child->title, null, "style='color: $child->color' data-group='product' title='$child->title'") : $child->title);?>
|
||||
</td>
|
||||
<td class='c-product'><?php echo $child->productTitle;?></td>
|
||||
<td class='c-product' title="<?php echo $child->productTitle;?>"><?php echo $child->productTitle;?></td>
|
||||
<td class='c-user'><?php echo zget($users, $child->openedBy);?></td>
|
||||
<td class='c-hours'><?php echo $child->estimate . $config->hourUnit;?></td>
|
||||
<td class='c-status'><?php echo $child->URChanged ? "<span class='status-story status-changed'>{$this->lang->story->URChanged}</span>" : "<span class='status-story status-$child->status'>" . $this->processStatus('story', $child) . '</span>'?></td>
|
||||
|
||||
@@ -780,9 +780,12 @@ class portModel extends model
|
||||
if(strpos($queryCondition, "`{$this->config->db->prefix}$model` AS t2") !== false) $selectKey = 't2.id';
|
||||
|
||||
$stmt = $this->dbh->query($queryCondition . ($this->post->exportType == 'selected' ? " AND $selectKey IN({$this->cookie->checkedItem})" : ''));
|
||||
while($row = $stmt->fetch()) $modelDatas[$row->id] = $row;
|
||||
while($row = $stmt->fetch())
|
||||
{
|
||||
if($selectKey !== 't1.id' and isset($row->$model) and isset($row->id)) $row->id = $row->$model;
|
||||
$modelDatas[$row->id] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
return $modelDatas;
|
||||
}
|
||||
|
||||
|
||||
@@ -154,8 +154,8 @@ $lang->story->children = "子需求";
|
||||
$lang->story->childrenAB = "子";
|
||||
$lang->story->linkStories = "相关{$lang->SRCommon}";
|
||||
$lang->story->linkRequirements = "相关{$lang->URCommon}";
|
||||
$lang->story->childStories = "细分需求";
|
||||
$lang->story->duplicateStory = "重复需求";
|
||||
$lang->story->childStories = "细分{$lang->SRCommon}";
|
||||
$lang->story->duplicateStory = "重复{$lang->SRCommon}";
|
||||
$lang->story->reviewResult = '评审意见';
|
||||
$lang->story->reviewResultAB = '评审结果';
|
||||
$lang->story->preVersion = '之前版本';
|
||||
|
||||
@@ -784,7 +784,7 @@ class storyModel extends model
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->checkForceReview() and empty($_POST['reviewer']))
|
||||
if(strpos('draft,changing', $oldStory->status) !== false and $this->checkForceReview() and empty($_POST['reviewer']))
|
||||
{
|
||||
dao::$errors[] = $this->lang->story->errorEmptyReviewedBy;
|
||||
return false;
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<tr>
|
||||
<th><?php echo $lang->attatch;?></th>
|
||||
<td>
|
||||
<?php echo $this->fetch('file', 'printFiles', array('files' => $files, 'fieldset' => 'true', 'object' => $story, 'method' => 'change'));?>
|
||||
<?php echo $this->fetch('file', 'printFiles', array('files' => $files, 'fieldset' => 'true', 'object' => $story, 'method' => 'storyChange'));?>
|
||||
<?php echo $this->fetch('file', 'buildform');?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -240,7 +240,7 @@
|
||||
<th><?php echo $lang->story->mailto;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select('mailto[]', $users, str_replace(' ' , '', $story->mailto), "class='form-control picker-select' multiple");?>
|
||||
<?php echo html::select('mailto[]', $users, $story->mailto, "class='form-control picker-select' multiple");?>
|
||||
<?php echo $this->fetch('my', 'buildContactLists');?>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -326,7 +326,18 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->legendMailto;?></th>
|
||||
<td><?php $mailto = explode(',', $story->mailto); foreach($mailto as $account) {if(empty($account)) continue; echo "<span>" . zget($users, trim($account)) . '</span> '; }?></td>
|
||||
<td>
|
||||
<?php
|
||||
if(!empty($story->mailto))
|
||||
{
|
||||
foreach(explode(',', $story->mailto) as $account)
|
||||
{
|
||||
if(empty($account)) continue;
|
||||
echo "<span>" . zget($users, trim($account)) . '</span> ';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -3233,7 +3233,7 @@ class upgradeModel extends model
|
||||
}
|
||||
}
|
||||
|
||||
$openVersion = $this->getOpenVersion($fromVersion);
|
||||
$openVersion = $this->getOpenVersion(str_replace('.', '_', $fromVersion));
|
||||
if(version_compare($openVersion, '17_4', '<=')) $needProcess['changeEngine'] = 'notice';
|
||||
|
||||
return $needProcess;
|
||||
|
||||
@@ -1087,7 +1087,7 @@ class userModel extends model
|
||||
if(!$stmt) return array('rights' => $rights, 'acls' => $acls);
|
||||
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
|
||||
{
|
||||
$rights[strtolower($row['module'])][strtolower($row['method'])] = true;
|
||||
if($row['module'] and $row['method']) $rights[strtolower($row['module'])][strtolower($row['method'])] = true;
|
||||
}
|
||||
|
||||
/* Get can manage projects by user. */
|
||||
|
||||
@@ -3,9 +3,10 @@ class todoTest
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('todo');
|
||||
$tester->app->loadClass('dao');
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('todo');
|
||||
$tester->app->loadClass('dao');
|
||||
$_SERVER['HTTP_HOST'] = 'test.zentao.net';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -23,8 +23,8 @@ $descs = array('desc1', 'desc2', 'desc3', 'desc4', '' , '', '', '');
|
||||
$begins = array('0830', '0900', '0930', '1000', '1030', '1100', '1130', '1200');
|
||||
$ends = array('0900', '0930', '1000','1030', '1100', '1130', '1200', '1230');
|
||||
$bugs = array('2' => '313');
|
||||
|
||||
$noname_create = array('types' => $types, 'pris' => $pris, 'names' => $names, 'descs' => $descs, 'begins' => $begins, 'ends' => $ends);
|
||||
$assignedTos = array('user1', 'ditto', 'ditto', 'ditto', 'ditto', 'ditto', 'ditto', 'ditto',);
|
||||
$noname_create = array('types' => $types, 'pris' => $pris, 'names' => $names, 'descs' => $descs, 'begins' => $begins, 'ends' => $ends, 'assignedTos' => $assignedTos);
|
||||
|
||||
$names = array('批量创建待办4','批量创建待办5','批量创建待办6', '批量创建待办7', '', '', '', '');
|
||||
$types = array('bug', 'story', 'task', 'testtask', 'custom', 'custom', 'custom', 'custom');
|
||||
@@ -33,10 +33,10 @@ $stories = array('2' => '1');
|
||||
$tasks = array('3' => '1');
|
||||
$testtasks = array('4' => '1');
|
||||
|
||||
$except_create = array('types' => $types, 'pris' => $pris, 'names' => $names, 'descs' => $descs, 'begins' => $begins, 'ends' => $ends, 'bugs' => $bugs, 'stories' => $stories, 'tasks' => $tasks, 'testtasks' => $testtasks);
|
||||
$except_create = array('types' => $types, 'pris' => $pris, 'names' => $names, 'descs' => $descs, 'begins' => $begins, 'ends' => $ends, 'bugs' => $bugs, 'stories' => $stories, 'tasks' => $tasks, 'testtasks' => $testtasks, 'assignedTos' => $assignedTos);
|
||||
|
||||
$todo = new todoTest();
|
||||
|
||||
r($todo->batchCreateTest($noname_create)) && p('2006:name,desc,pri,type,idvalue;2007:name,desc,pri,type,idvalue;2008:name,desc,pri,type,idvalue') && e('批量创建待办1,desc1,1,custom,0;批量创建待办2,desc2,2,custom,0;批量创建待办3,desc4,4,custom,0'); // 批量创建有个没有名字的待办
|
||||
r($todo->batchCreateTest($except_create)) && p('2009:name,desc,pri,type,idvalue;2010:name,desc,pri,type,idvalue;2011:name,desc,pri,type,idvalue;2012:name,desc,pri,type,idvalue') && e('测试单转Bug13,desc1,1,bug,313;用户需求版本一61,desc2,2,story,1;开发任务11,desc3,3,task,1;测试单1,desc4,4,testtask,1'); // 批量创建的待办
|
||||
$db->restoreDB();
|
||||
r($todo->batchCreateTest($except_create)) && p('2009:name,desc,pri,type,idvalue;2010:name,desc,pri,type,idvalue;2011:name,desc,pri,type,idvalue;2012:name,desc,pri,type,idvalue') && e('测试单转Bug13,desc1,1,bug,313;软件需求版本一551,desc2,2,story,1;开发任务11,desc3,3,task,1;测试单1,desc4,4,testtask,1'); // 批量创建的待办
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -32,4 +32,4 @@ $todo = new todoTest();
|
||||
r($todo->batchUpdateTest($changeType, '3')) && p('0:field,old,new') && e('type,task,custom'); // 批量修改todo类型
|
||||
r($todo->batchUpdateTest($changePri, '2')) && p('0:field,old,new') && e('pri,2,1'); // 批量修改todo优先级
|
||||
r($todo->batchUpdateTest($changeStatus, '1')) && p('0:field,old,new') && e('status,wait,doing'); // 批量修改todo状态
|
||||
$db->restoreDB();
|
||||
$db->restoreDB();
|
||||
|
||||
Reference in New Issue
Block a user