Merge branch 'master' of github.com:easysoft/zentaopms

This commit is contained in:
wangyidong
2018-07-02 14:17:00 +08:00
14 changed files with 76 additions and 43 deletions
+1
View File
@@ -0,0 +1 @@
ALTER TABLE `zt_storyspec` CHANGE `title` `title` varchar(255) NOT NULL;
+1 -1
View File
@@ -575,7 +575,7 @@ CREATE TABLE IF NOT EXISTS `zt_story` (
CREATE TABLE IF NOT EXISTS `zt_storyspec` (
`story` mediumint(9) NOT NULL,
`version` smallint(6) NOT NULL,
`title` varchar(90) NOT NULL,
`title` varchar(255) NOT NULL,
`spec` text NOT NULL,
`verify` text NOT NULL,
UNIQUE KEY `story` (`story`,`version`)
+31 -31
View File
@@ -135,24 +135,24 @@ $lang->action->desc->unlinkrelatedcase = '$date, <strong>$actor</strong> unlinke
/* 用来显示动态信息。*/
$lang->action->label = new stdclass();
$lang->action->label->created = 'Created';
$lang->action->label->opened = 'Open';
$lang->action->label->changed = 'Changed';
$lang->action->label->edited = 'Edited';
$lang->action->label->assigned = 'Assigned';
$lang->action->label->closed = 'Closed';
$lang->action->label->deleted = 'Deleted';
$lang->action->label->deletedfile = 'Deleted';
$lang->action->label->editfile = 'Edit';
$lang->action->label->erased = 'Erased';
$lang->action->label->undeleted = 'Restored';
$lang->action->label->hidden = 'Hidden';
$lang->action->label->commented = 'Commented';
$lang->action->label->activated = 'Activated';
$lang->action->label->blocked = 'Blocked';
$lang->action->label->resolved = 'Resolved';
$lang->action->label->reviewed = 'Reviewed';
$lang->action->label->moved = 'Moved';
$lang->action->label->created = 'Created ';
$lang->action->label->opened = 'Open ';
$lang->action->label->changed = 'Changed ';
$lang->action->label->edited = 'Edited ';
$lang->action->label->assigned = 'Assigned ';
$lang->action->label->closed = 'Closed ';
$lang->action->label->deleted = 'Deleted ';
$lang->action->label->deletedfile = 'Deleted ';
$lang->action->label->editfile = 'Edit ';
$lang->action->label->erased = 'Erased ';
$lang->action->label->undeleted = 'Restored ';
$lang->action->label->hidden = 'Hidden ';
$lang->action->label->commented = 'Commented ';
$lang->action->label->activated = 'Activated ';
$lang->action->label->blocked = 'Blocked ';
$lang->action->label->resolved = 'Resolved ';
$lang->action->label->reviewed = 'Reviewed ';
$lang->action->label->moved = 'Moved ';
$lang->action->label->confirmed = 'Confirm Story';
$lang->action->label->bugconfirmed = 'Confirmed';
$lang->action->label->tostory = 'Convert to Story';
@@ -178,21 +178,21 @@ $lang->action->label->linkrelatedstory = "Link to Story";
$lang->action->label->unlinkrelatedstory = "Unlink";
$lang->action->label->subdividestory = "Decompose Story";
$lang->action->label->unlinkchildstory = "Unlink";
$lang->action->label->started = 'Started';
$lang->action->label->restarted = 'Continued';
$lang->action->label->recordestimate = 'Recorded';
$lang->action->label->editestimate = 'Edited';
$lang->action->label->canceled = 'Cancelled';
$lang->action->label->finished = 'Finished';
$lang->action->label->paused = 'Paused';
$lang->action->label->verified = 'Verified';
$lang->action->label->delayed = 'Delayed';
$lang->action->label->suspended = 'Suspended';
$lang->action->label->started = 'Started ';
$lang->action->label->restarted = 'Continued ';
$lang->action->label->recordestimate = 'Recorded ';
$lang->action->label->editestimate = 'Edited ';
$lang->action->label->canceled = 'Cancelled ';
$lang->action->label->finished = 'Finished ';
$lang->action->label->paused = 'Paused ';
$lang->action->label->verified = 'Verified ';
$lang->action->label->delayed = 'Delayed ';
$lang->action->label->suspended = 'Suspended ';
$lang->action->label->login = 'Login';
$lang->action->label->logout = "Logout";
$lang->action->label->deleteestimate = "Deleted";
$lang->action->label->linked2build = "Linked";
$lang->action->label->linked2bug = "Linked";
$lang->action->label->deleteestimate = "Deleted ";
$lang->action->label->linked2build = "Linked ";
$lang->action->label->linked2bug = "Linked ";
/* 用来生成相应对象的链接。*/
$lang->action->label->product = $lang->productCommon . '|product|view|productID=%s';
+1 -1
View File
@@ -65,7 +65,7 @@ $lang->reverse = 'Reverse';
$lang->switchDisplay = 'Toggle';
$lang->expand = 'Expand All';
$lang->collapse = 'Collapse';
$lang->saveSuccess = 'Save success';
$lang->saveSuccess = 'Saved';
$lang->fail = 'Fail';
$lang->addFiles = 'Add';
$lang->files = 'File ';
+1 -1
View File
@@ -10,7 +10,7 @@
* @link http://www.zentao.net
*/
$lang->dept->common = 'Department';
$lang->dept->manageChild = "Child Department";
$lang->dept->manageChild = "Department";
$lang->dept->edit = "Edit";
$lang->dept->delete = "Delete";
$lang->dept->parent = "Parent";
+1 -1
View File
@@ -12,7 +12,7 @@
$lang->productplan->common = $lang->productCommon . ' Plan';
$lang->productplan->browse = "View";
$lang->productplan->index = "List";
$lang->productplan->create = "Create";
$lang->productplan->create = "Create Plan";
$lang->productplan->edit = "Edit";
$lang->productplan->delete = "Delete";
$lang->productplan->view = "Details";
+2
View File
@@ -1002,6 +1002,8 @@ class project extends control
$this->loadModel('action')->create('project', $projectID, 'opened');
$url = $this->createLink('project', 'create', "projectID=$projectID");
$planID = reset($this->post->plans);
if(!empty($planID))
{
die(js::confirm($this->lang->project->importPlanStory, $this->createLink('project', 'create', "projectID=$projectID&copyProjectID=&planID=$planID"), $url, 'parent', 'parent'));
+1 -1
View File
@@ -189,7 +189,7 @@
<div class="row row-grid">
<?php foreach($products as $productID => $product):?>
<?php if(isset($planGroups[$productID][$product->plan])):?>
<div class="col-xs-12"><?php echo html::a($this->createLink('productplan', 'view', "planID={$product->id}"), $product->name . '/' . $planGroups[$productID][$product->plan]);?></div>
<div class="col-xs-12"><?php echo html::a($this->createLink('productplan', 'view', "planID={$product->plan}"), $product->name . '/' . $planGroups[$productID][$product->plan]);?></div>
<?php endif;?>
<?php endforeach;?>
</div>
+1 -1
View File
@@ -10,7 +10,7 @@
* @link http://www.zentao.net
*/
$lang->release->common = 'Release';
$lang->release->create = "Create";
$lang->release->create = "Create Release";
$lang->release->edit = "Edit";
$lang->release->linkStory = "Link Story";
$lang->release->linkBug = "Link Bug";
+1 -1
View File
@@ -1422,7 +1422,7 @@ class taskModel extends model
->beginIF($type == 'delayed')->andWhere('t1.deadline')->gt('1970-1-1')->andWhere('t1.deadline')->lt(date(DT_DATE1))->andWhere('t1.status')->in('wait,doing')->fi()
->beginIF(is_array($type) or strpos(',all,undone,needconfirm,assignedtome,delayed,finishedbyme,myinvolved,', ",$type,") === false)->andWhere('t1.status')->in($type)->fi()
->beginIF($modules)->andWhere('t1.module')->in($modules)->fi()
->orderBy('t1.`id`,' . $orderBy)
->orderBy("t1.$orderBy")
->fetchAll('id');
if(!empty($children))
+2
View File
@@ -25,6 +25,7 @@
echo "<div class='btn-group'>";
$suitViewName = $type == 'bysuite'? $suiteList[$param]->name : $lang->testtask->linkBySuite;
$suitActive = $type == 'bysuite' ? 'btn-active-text' : '';
$bugActive = $type == 'bybug' ? 'btn-active-text' : '';
echo "<a href='javascript:;' class='btn btn-link {$suitActive}' data-toggle='dropdown'><span class='text'>{$suitViewName}</span> <span class='caret'></span></a>";
echo "<ul class='dropdown-menu' style='max-height:240px;overflow-y:auto'>";
if($suiteList)
@@ -60,6 +61,7 @@
}
echo "</ul></div>";
?>
<?php common::printLink('testtask', 'linkCase', "taskID=$taskID&type=bybug", "<span class='text'>" . $lang->testtask->linkByBug . '</span>', '', "class='btn btn-link {$bugActive}'");?>
<?php echo "<a class='btn btn-link querybox-toggle' id='bysearchTab'><i class='icon icon-search muted'></i>{$lang->testcase->bySearch}</a>";?>
</div>
</div>
+2 -2
View File
@@ -19,7 +19,7 @@ $lang->tree->manage = 'Manage module';
$lang->tree->fix = 'Fix';
$lang->tree->manageProduct = "Manage {$lang->productCommon}";
$lang->tree->manageProject = "Manage {$lang->projectCommon}";
$lang->tree->manageLine = 'Manage product line';
$lang->tree->manageLine = 'Manage Product Line';
$lang->tree->manageBug = 'Manage Bug';
$lang->tree->manageCase = 'Manage Case';
$lang->tree->manageCaseLib = 'Manage Library';
@@ -27,7 +27,7 @@ $lang->tree->manageCustomDoc = 'Manage DocLib';
$lang->tree->updateOrder = 'Sort';
$lang->tree->manageChild = 'Manage Child Module';
$lang->tree->manageStoryChild = 'Manage Child Module';
$lang->tree->manageLineChild = 'Manage product line';
$lang->tree->manageLineChild = 'Manage Product Line';
$lang->tree->manageBugChild = 'Manage Child Bug';
$lang->tree->manageCaseChild = 'Manage Child Case';
$lang->tree->manageCaselibChild = 'Manage Child Library';
+28
View File
@@ -224,6 +224,9 @@ class upgradeModel extends model
$this->fixProjectStatisticBlock();
case '10_0_beta':
$this->execSQL($this->getUpgradeFile('10.0.beta'));
case '10_0':
$this->execSQL($this->getUpgradeFile('10.0'));
$this->fixStorySpecTitle();
}
$this->deletePatch();
@@ -2331,4 +2334,29 @@ class upgradeModel extends model
}
return true;
}
/**
* Fix story spec title.
*
* @access public
* @return bool
*/
public function fixStorySpecTitle()
{
$stories = $this->dao->select('story')->from(TABLE_STORYSEPC)->groupBy('story')->having('COUNT(story, version) = 1');
$stories = $this->dao->select('t1.id, t1.title')->from(TABLE_STORY)->alias('t1')
->leftJoin(TABLE_STORYSPEC)->alias('t2')->on('t1.id=t2.story')
->where('t1.id')->in($stories)
->andWhere('t1.title')->ne('t2.title')
->andWhere('t2.version')->eq(1)
->fetchPairs();
foreach($stories as $story => $title)
{
$this->dao->update(TABLE_STORYSPEC)->set('title')->eq($title)->where('story')->eq($story)->andWhere('version')->eq(1)->exec();
}
return !dao::isError();
}
}
+3 -3
View File
@@ -100,8 +100,8 @@ $lang->user->weakPassword = "Your password does not meet the complexity requirem
$lang->user->roleList[''] = '';
$lang->user->roleList['dev'] = 'Developer';
$lang->user->roleList['qa'] = 'QA';
$lang->user->roleList['pm'] = 'Project Manager';
$lang->user->roleList['qa'] = 'Tester';
$lang->user->roleList['pm'] = 'Scrum Master';
$lang->user->roleList['po'] = 'Product Owner';
$lang->user->roleList['td'] = 'Technical Manager';
$lang->user->roleList['pd'] = 'Product Manager';
@@ -160,7 +160,7 @@ $lang->user->contacts->manage = 'Manage';
$lang->user->contacts->contactsList = 'Contacts';
$lang->user->contacts->selectedUsers = 'Select';
$lang->user->contacts->selectList = 'List';
$lang->user->contacts->createList = 'Create a Contact List';
$lang->user->contacts->createList = 'Create Contact List';
$lang->user->contacts->noListYet = 'No contact list exists. Please create one first.';
$lang->user->contacts->confirmDelete = 'Do you want to delete this list?';
$lang->user->contacts->or = ' or ';