Merge branch 'master' of github.com:easysoft/zentaopms
This commit is contained in:
@@ -0,0 +1 @@
|
||||
ALTER TABLE `zt_storyspec` CHANGE `title` `title` varchar(255) NOT NULL;
|
||||
+1
-1
@@ -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
@@ -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';
|
||||
|
||||
@@ -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 ';
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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©ProjectID=&planID=$planID"), $url, 'parent', 'parent'));
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 ';
|
||||
|
||||
Reference in New Issue
Block a user