diff --git a/module/block/lang/en.php b/module/block/lang/en.php index ba1888b897..859f215b1f 100644 --- a/module/block/lang/en.php +++ b/module/block/lang/en.php @@ -31,6 +31,7 @@ $lang->block->editBlock = 'Edit block'; $lang->block->ordersSaved = 'Sort have been saved'; $lang->block->confirmRemoveBlock = 'Are you sure remove block [{0}] ?'; $lang->block->emptyMessage = 'Nothing here, custom it now!'; +$lang->block->refresh = 'Refresh'; $lang->block->dynamicInfo = "%s, %s %s %s %s."; $lang->block->default['product']['1']['title'] = $lang->productCommon . ' list'; @@ -205,6 +206,7 @@ $lang->block->typeList->story['reviewedBy'] = 'Reviewed by'; $lang->block->typeList->story['closedBy'] = 'Closed by'; $lang->block->typeList->product['noclosed'] = 'No closed'; +$lang->block->typeList->product['closed'] = 'Closed'; $lang->block->typeList->product['all'] = 'All'; $lang->block->typeList->project['undone'] = 'Undone'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 862286a9a4..7ba77ff5c0 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -70,6 +70,7 @@ $lang->quitNovice = 'Quit novice'; $lang->enterNovice = 'Enter novice'; $lang->homepage = 'Set homepage'; $lang->tutorial = 'Novice tutorial'; +$lang->feature = 'New features'; $lang->customMenu = 'Custom menu'; $lang->preShortcutKey = '[Shortcut key:←]'; @@ -157,7 +158,7 @@ $lang->index->menu->project = "{$lang->projectCommon}s|project|browse"; $lang->my = new stdclass(); $lang->my->menu = new stdclass(); -$lang->my->menu->account = ' %s' . $lang->arrow . ''; +$lang->my->menu->account = array('link' => ' %s' . $lang->arrow . '', 'fixed' => true); $lang->my->menu->index = 'Index|my|index'; $lang->my->menu->todo = array('link' => 'Todo|my|todo|', 'subModule' => 'todo'); $lang->my->menu->task = array('link' => 'Task|my|task|', 'subModule' => 'task'); @@ -178,6 +179,7 @@ $lang->product = new stdclass(); $lang->product->menu = new stdclass(); $lang->product->menu->list = array('link' => '%s' . $lang->arrow, 'fixed' => true); +$lang->product->menu->index = 'Index|product|index|locate=no'; $lang->product->menu->story = array('link' => 'Story|product|browse|productID=%s', 'alias' => 'batchedit', 'subModule' => 'story'); $lang->product->menu->dynamic = 'Dynamic|product|dynamic|productID=%s'; $lang->product->menu->plan = array('link' => 'Plan|productplan|browse|productID=%s', 'subModule' => 'productplan'); @@ -206,6 +208,7 @@ $lang->project = new stdclass(); $lang->project->menu = new stdclass(); $lang->project->menu->list = array('link' => '%s', 'fixed' => true); +$lang->project->menu->index = 'Index|project|index|locate=no'; $lang->project->menu->task = array('link' => 'Task|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,importbug,burn'); $lang->project->menu->story = array('link' => 'Story|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory'); $lang->project->menu->bug = 'Bug|project|bug|projectID=%s'; @@ -229,7 +232,7 @@ $lang->qa = new stdclass(); $lang->qa->menu = new stdclass(); $lang->qa->menu->product = array('link' => '%s', 'fixed' => true); -$lang->qa->menu->index = '首页|qa|index|locate=no&productID=%s'; +$lang->qa->menu->index = 'Index|qa|index|locate=no&productID=%s'; $lang->qa->menu->bug = array('link' => 'Bug|bug|browse|productID=%s'); $lang->qa->menu->testcase = array('link' => 'Case|testcase|browse|productID=%s'); $lang->qa->menu->testtask = array('link' => 'Build|testtask|browse|productID=%s'); diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 77f2011e81..9b6b1b60c4 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -70,6 +70,7 @@ $lang->quitNovice = '退出新手'; $lang->enterNovice = '进入新手'; $lang->homepage = '设为主页'; $lang->tutorial = '新手教程'; +$lang->feature = '了解新功能'; $lang->customMenu = '自定义导航'; $lang->preShortcutKey = '[快捷键:←]'; diff --git a/module/common/model.php b/module/common/model.php index 211a608645..4747557660 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -299,6 +299,7 @@ class commonModel extends model if($app->company->backyard) echo html::a($app->company->backyard, $lang->company->backyard, '_blank'); echo html::a(helper::createLink('tutorial', 'start'), $lang->tutorial, '', "class='iframe' data-width='800' data-headerless='true'"); + echo html::a(helper::createLink('misc', 'feature'), $lang->feature, '', "class='iframe' data-width='1200' data-headerless='true'"); echo html::a('javascript:;', $lang->help, '', "class='open-help-tab'"); echo html::a(helper::createLink('misc', 'about'), $lang->aboutZenTao, '', "class='about iframe' data-width='900' data-headerless='true' data-class='modal-about'"); } diff --git a/module/common/view/sparkline.html.php b/module/common/view/sparkline.html.php index 8898e09847..e452c94228 100755 --- a/module/common/view/sparkline.html.php +++ b/module/common/view/sparkline.html.php @@ -22,13 +22,20 @@ jQuery.fn.projectLine = function(setting) height = $e.height() - 4, values = [], maxWidth = $e.width() - 4; - var strValues = options.values.split(','); + var strValues = options.values.split(','), maxValue = 0; for(var i in strValues) { var v = parseFloat(strValues[i]); - if(v != NaN) values.push(v); + if(v != NaN) + { + values.push(v); + maxValue = Math.max(v, maxValue); + } } - + + var scaleSteps = Math.min(maxValue, 30); + var scaleStepWidth = Math.ceil(maxValue/scaleSteps); + var width = Math.min(maxWidth, Math.max(10, values.length*maxWidth/30)); var canvas = $e.children('canvas'); if(!canvas.length) @@ -47,7 +54,13 @@ jQuery.fn.projectLine = function(setting) pointStrokeColor : "#fff", data : values }] - }, {animation: !isIE})); + }, { + animation: !isIE, + scaleOverride: true, + scaleStepWidth: Math.ceil(maxValue/10), + scaleSteps: 10, + scaleStartValue: 0 + })); }); } diff --git a/module/misc/control.php b/module/misc/control.php index ebce0bfa83..569e9ed1b4 100644 --- a/module/misc/control.php +++ b/module/misc/control.php @@ -210,4 +210,16 @@ class misc extends control $this->loadModel('setting')->setItem($this->app->user->account . '.common.global.novice', $novice); if($reload == 'true') die(js::reload('parent')); } + + /** + * Show version feature + * @access public + * @return viod + */ + public function feature($version = 'latest') + { + $this->view->version = $version; + + $this->display(); + } } diff --git a/module/misc/css/feature.css b/module/misc/css/feature.css new file mode 100644 index 0000000000..4f344315e1 --- /dev/null +++ b/module/misc/css/feature.css @@ -0,0 +1,7 @@ +#versionMenu {position: absolute; top: 10px; right: 50px;} +#versionMenu .dropdown-menu {min-width: 120px} + +#featureCarousel .item {text-align: center; padding: 10px 0} +#featureCarousel .item > h2 {margin-bottom: 30px; color: #114f8e} +#featureCarousel .item > img {margin: 0 auto 30px} +#featureCarousel .item > .desc {font-size: 16px; width: 70%; margin: 0 auto 20px} diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php index 09fedeff13..7118029c2b 100644 --- a/module/misc/lang/en.php +++ b/module/misc/lang/en.php @@ -60,3 +60,10 @@ $lang->misc->repairTable = "The database table can cause of damage because of po $lang->misc->tableName = "Table name"; $lang->misc->tableStatus = "Table status"; $lang->misc->novice = "You may use the ZenTao first, whether to enter the novice mode?"; + +$lang->misc->feature = new stdclass(); +$lang->misc->feature->lastest = 'Latest'; +$lang->misc->feature->all = array(); +$lang->misc->feature->all['latest'] = array(); +$lang->misc->feature->all['latest'][] = array('title'=>'Customizable home page', 'desc' => '

You can add contents blocks to home page and determine how to display them.

', 'img' => '1.gif'); +$lang->misc->feature->all['latest'][] = array('title'=>'Full customizable navigations', 'desc' => '

You can sort and hide items in navigations.

', 'img' => '2.gif'); diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php index 416f5dac50..9e6a5c0173 100644 --- a/module/misc/lang/zh-cn.php +++ b/module/misc/lang/zh-cn.php @@ -60,3 +60,10 @@ $lang->misc->repairTable = "数据库表可以因为断电原因损坏,需要 $lang->misc->tableName = "表名"; $lang->misc->tableStatus = "状态"; $lang->misc->novice = "您可能初次使用禅道,是否进入新手模式?"; + +$lang->misc->feature = new stdclass(); +$lang->misc->feature->lastest = '最新版本'; +$lang->misc->feature->all = array(); +$lang->misc->feature->all['latest'] = array(); +$lang->misc->feature->all['latest'][] = array('title'=>'可自定义内容的首页', 'desc' => '

你的地盘由你做主。现在开始,你可以向首页添加多种多样的内容区块,而且还可以决定如何排列和显示他们。

', 'img' => '1.gif'); +$lang->misc->feature->all['latest'][] = array('title'=>'完全定制所有导航内容', 'desc' => '

导航上显示的项目现在完全由你来决定。将鼠标悬浮在导航上稍后会在右侧显示定制按钮,点击打开定制对话框,通过点击切换项目是否显示,拖拽导航项目来更改显示顺序。

', 'img' => '2.gif'); diff --git a/module/misc/view/feature.html.php b/module/misc/view/feature.html.php new file mode 100644 index 0000000000..061f22a151 --- /dev/null +++ b/module/misc/view/feature.html.php @@ -0,0 +1,54 @@ + +misc->feature->all[$version]; +if(empty($features)) +{ + $version = 'latest'; + $features = $lang->misc->feature->all[$version]; +} +?> +
+
+
+ feature ?> +
+ +
+ +
+ diff --git a/module/qa/lang/en.php b/module/qa/lang/en.php index 2393a5b337..b5d17add15 100644 --- a/module/qa/lang/en.php +++ b/module/qa/lang/en.php @@ -9,6 +9,5 @@ * @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $ * @link http://www.zentao.net */ -$lang->qa = new stdclass(); $lang->qa->common = 'Test'; $lang->qa->index = "Index"; diff --git a/module/testtask/css/runcase.css b/module/testtask/css/runcase.css index efe0458783..9a6fc8262e 100644 --- a/module/testtask/css/runcase.css +++ b/module/testtask/css/runcase.css @@ -1,5 +1,6 @@ .outer > #titlebar {display: none} -.btn-file {float:right} +.table > thead > tr > th {vertical-align: middle;} +.btn-file {float:right; padding: 0px 5px!important} .fix-border td {border:0px;} .fix-position td {vertical-align: middle;} diff --git a/module/testtask/view/results.html.php b/module/testtask/view/results.html.php index 85fb9ec444..763110de99 100644 --- a/module/testtask/view/results.html.php +++ b/module/testtask/view/results.html.php @@ -42,8 +42,8 @@ date;?> lastRunner] . ' ' . $lang->testtask->runCase;?> build, '');?> - files)) echo html::a("#caseResult{$result->id}", '', '', "data-toggle='modal' title='{$lang->files}' data-type='iframe'")?> testcase->resultList[$result->caseResult]?> + files)) echo html::a("#caseResult{$result->id}", '', '', "data-toggle='modal' title='{$lang->files}' data-type='iframe'")?> @@ -71,7 +71,7 @@ text-center'>testcase->resultList[$stepResult['result']];?> - ', '', "data-toggle='modal' title='{$lang->files}' data-type='iframe' style='float:right'")?> + ', '', "data-toggle='modal' title='{$lang->files}' data-type='iframe' style='float:right'")?> diff --git a/module/testtask/view/runcase.html.php b/module/testtask/view/runcase.html.php index 06f4e7908b..694b01621b 100644 --- a/module/testtask/view/runcase.html.php +++ b/module/testtask/view/runcase.html.php @@ -25,7 +25,7 @@ testcase->precondition;?> case->precondition;?> - + testcase->stepID;?> testcase->stepDesc;?> testcase->stepExpect;?> @@ -33,7 +33,7 @@ testcase->real;?> case->steps)):?> - + @@ -49,7 +49,7 @@ - +
id]", '', "rows=2 class='form-control fix-textarea'");?>
diff --git a/module/tutorial/control.php b/module/tutorial/control.php index a47495a2b7..2944c558c6 100644 --- a/module/tutorial/control.php +++ b/module/tutorial/control.php @@ -32,13 +32,12 @@ class tutorial extends control if($_POST) { $account = $this->app->user->account; - $setting = $_POST['tasks']; + $setting = $_POST['finish']; - if(empty($setting)) $this->send(array('result' => 'fail')); $this->loadModel('setting')->setItem("$account.tutorial.tasks.setting", $setting); $this->send(array('result' => 'success')); } - $setting = isset($this->config->tasks->setting) ? $this->config->tasks->setting : ''; + $setting = isset($this->config->tutorial->tasks->setting) ? $this->config->tutorial->tasks->setting : ''; if($this->viewType === 'json') { diff --git a/module/tutorial/css/index.css b/module/tutorial/css/index.css index 0b9e37ed20..607645392f 100644 --- a/module/tutorial/css/index.css +++ b/module/tutorial/css/index.css @@ -44,9 +44,12 @@ #task.finish.finish > .panel-heading > .pull-right {opacity: 1; transform: scale(1)} #task .task-nav {color: #114f8e; display: inline-block; background: #EBF2F9; padding: 1px 5px 0; transition: all .2s} #task .task-nav:hover {color: #fff; background: #114f8e; cursor: pointer} -#tasksProgress {background: #ccc;} +#tasksProgress {background: #ccc; position: relative} #tasksProgress > .progress-bar {background: #114f8e; height: 4px; margin-bottom: 15px; transition: background .4s, width .4s;} #tasksProgress.finish > .progress-bar {width: 100%!important; background: #38B03F} +#tasksProgress .progress-text {position: absolute; right: 0; top: -25px; font-weight: bold; opacity: 0.7; color: #114f8e} +#tasksProgress.finish .progress-text {color: #38B03F; opacity: 1} + #tasks {background: #fff;} #tasks > li > a > .pull-right {opacity: 0; transition: opacity .4s, transform .4s; transform: scale(2.5, 2); color: #38B03F} #tasks > li.finish > a, #tasks > li.finish.active > a {box-shadow: inset 2px 0 0 #38B03F; border-left-color: #38B03F; color: #808080} @@ -55,7 +58,8 @@ #tasks > li.active > a, #tasks > li.active.finish > a {box-shadow: inset 2px 0 0 #114f8e; border-color: #ddd; border-left-color: #114f8e; color: #114f8e; background: #EBF2F9} #tasks > li.finish > a:hover, #tasks > li.active > a:hover {background-color: #f1f1f1} -#taskModalBack {position: absolute; top: 0; left: 0; bottom: 0; right: 0; background: #fff; opacity: .6; transition: opacity .4s; opacity: 0; display: none} +#taskModalBack {position: absolute; top: 0; left: 0; bottom: 0; right: 0; background: #fff; transition: opacity .4s; opacity: 0; display: none} +#taskModalBack.in {filter: alpha(opacity=60); opacity: 0.6;} #taskModal {width: 500px; position: absolute; background: #38B03F; color: #fff; text-align: center; overflow: hidden; transform: scale(.5) translate(0, 200px) rotateX(120deg); transition: transform .4s, opacity .4s; opacity: 0; transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); top: 0; padding: 30px; left: 50%; margin-left: -250px; top: 20%; box-shadow: 0 3px 9px rgba(0,0,0,.5); display: none} #taskModal.in {transform: scale(1) translate(0) rotateX(0); opacity: 1} #taskModal h3 {margin-bottom: 20px} @@ -64,3 +68,8 @@ #taskModal .start-icon > .icon-front {color: #38B03F; width: 60px; height: 60px; line-height: 60px; position: absolute; left: 0; top: 0; font-size: 28px;} #taskModal .start-icon > .icon-back {font-size: 56px; color: #fff; line-height: 60px;} #taskModal .btn-success {border-color: #DDF4DF} +#taskModal > .close {position: absolute; right: 15px; top: 10px;} +#taskModal > .finish-all {display: none} +#taskModal > .finish {display: block} +#taskModal.show-all > .finish-all {display: block} +#taskModal.show-all > .finish {display: none} diff --git a/module/tutorial/lang/en.php b/module/tutorial/lang/en.php index 198d5eb287..d8c4c69ad9 100644 --- a/module/tutorial/lang/en.php +++ b/module/tutorial/lang/en.php @@ -10,6 +10,48 @@ * @link http://www.zentao.net */ $lang->tutorial = new stdclass(); -$lang->tutorial->common = 'Novice tutorial'; -$lang->tutorial->desc = 'Learn zentao through a series of tasks. This may cost you 10 minutes, you can quit anytime.'; -$lang->tutorial->start = 'Let\'s go!'; +$lang->tutorial->common = 'Novice tutorial'; +$lang->tutorial->desc = 'Learn zentao through a series of tasks. This may cost you 10 minutes, you can quit anytime.'; +$lang->tutorial->start = 'Let\'s go!'; +$lang->tutorial->exit = 'Quit'; +$lang->tutorial->congratulation = 'Congratulations! You have finished all tasks.'; +$lang->tutorial->restart = 'Restart'; +$lang->tutorial->currentTask = 'Current task'; +$lang->tutorial->allTasks = 'All tasks'; +$lang->tutorial->previous = 'Previous one'; +$lang->tutorial->nextTask = 'Next task'; +$lang->tutorial->openTargetPage = 'Open target page'; +$lang->tutorial->atTargetPage = 'In target page'; +$lang->tutorial->reloadTargetPage = 'Reload target page'; +$lang->tutorial->target = 'Target'; +$lang->tutorial->tagetPageTip = 'Open【%s】page by this instruction'; + +$lang->tutorial->tasks = array(); + +$lang->tutorial->tasks['createAccount'] = array('title' => 'Create a account'); +$lang->tutorial->tasks['createAccount']['nav'] = array('module' => 'user', 'method' => 'create', 'menuModule' => 'company', 'menu' => 'addUser', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => 'Add User'); +$lang->tutorial->tasks['createAccount']['desc'] = "

Create a new account in Zentao:

"; + +$lang->tutorial->tasks['createProduct'] = array('title' => 'Create a product'); +$lang->tutorial->tasks['createProduct']['nav'] = array('module' => 'product', 'method' => 'create', 'menu' => 'create', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => 'Product'); +$lang->tutorial->tasks['createProduct']['desc'] = "

Create a new product:

"; + +$lang->tutorial->tasks['createStory'] = array('title' => 'Create a story'); +$lang->tutorial->tasks['createStory']['nav'] = array('module' => 'story', 'method' => 'create', 'menuModule' => 'product', 'menu' => 'story', 'target' => '.create-story-btn', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => 'Create Story'); +$lang->tutorial->tasks['createStory']['desc'] = "

Create a new story:

"; + +$lang->tutorial->tasks['createProject'] = array('title' => 'Create a project'); +$lang->tutorial->tasks['createProject']['nav'] = array('module' => 'project', 'method' => 'create', 'menu' => 'create', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => 'Create Project'); +$lang->tutorial->tasks['createProject']['desc'] = "

Create a new project:

"; + +$lang->tutorial->tasks['linkStory'] = array('title' => 'Link story'); +$lang->tutorial->tasks['linkStory']['nav'] = array('module' => 'project', 'method' => 'linkStory', 'menu' => 'story', 'target' => '.link-story-btn', 'form' => '#linkStoryForm', 'formType' => 'table', 'submit' => '#submit', 'targetPageName' => 'Link Story'); +$lang->tutorial->tasks['linkStory']['desc'] = "

Link stories to project:

"; + +$lang->tutorial->tasks['createTask'] = array('title' => 'Divide tasks'); +$lang->tutorial->tasks['createTask']['nav'] = array('module' => 'task', 'method' => 'create', 'menuModule' => 'project', 'menu' => 'story', 'target' => '.btn-task-create', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => 'Create Task'); +$lang->tutorial->tasks['createTask']['desc'] = "

Divide tasks for story which linked to project.

"; + +$lang->tutorial->tasks['createBug'] = array('title' => 'Create a bug'); +$lang->tutorial->tasks['createBug']['nav'] = array('module' => 'bug', 'method' => 'create', 'menuModule' => 'qa', 'menu' => 'bug', 'target' => '.btn-bug-create', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => 'Create Bug'); +$lang->tutorial->tasks['createBug']['desc'] = "

Create a new Bug:

"; diff --git a/module/tutorial/lang/zh-cn.php b/module/tutorial/lang/zh-cn.php index d36426fcdc..aa7ac6742d 100644 --- a/module/tutorial/lang/zh-cn.php +++ b/module/tutorial/lang/zh-cn.php @@ -25,7 +25,10 @@ $lang->tutorial->openTargetPage = '打开 目 $lang->tutorial->atTargetPage = '已在 目标 页面'; $lang->tutorial->reloadTargetPage = '重新载入'; $lang->tutorial->target = '目标'; -$lang->tutorial->tagetPageTip = '按此指示打开【%s】页面'; +$lang->tutorial->targetPageTip = '按此指示打开【%s】页面'; +$lang->tutorial->requiredTip = '【%s】为必填项'; +$lang->tutorial->congratulateTask = '恭喜,你完成了任务 【】!'; +$lang->tutorial->serverErrorTip = '发生了一些错误。'; $lang->tutorial->tasks = array(); @@ -35,24 +38,24 @@ $lang->tutorial->tasks['createAccount']['desc'] = "

在系统创建一个新 $lang->tutorial->tasks['createProduct'] = array('title' => '创建产品'); $lang->tutorial->tasks['createProduct']['nav'] = array('module' => 'product', 'method' => 'create', 'menu' => 'create', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => '新增产品'); -$lang->tutorial->tasks['createProduct']['desc'] = "

在系统创建一个新的产品:

"; +$lang->tutorial->tasks['createProduct']['desc'] = "

在系统创建一个新的产品:

"; $lang->tutorial->tasks['createStory'] = array('title' => '创建需求'); $lang->tutorial->tasks['createStory']['nav'] = array('module' => 'story', 'method' => 'create', 'menuModule' => 'product', 'menu' => 'story', 'target' => '.create-story-btn', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => '提需求'); -$lang->tutorial->tasks['createStory']['desc'] = "

在系统创建一个新的需求:

"; +$lang->tutorial->tasks['createStory']['desc'] = "

在系统创建一个新的需求:

"; $lang->tutorial->tasks['createProject'] = array('title' => '创建项目'); $lang->tutorial->tasks['createProject']['nav'] = array('module' => 'project', 'method' => 'create', 'menu' => 'create', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => '添加项目'); -$lang->tutorial->tasks['createProject']['desc'] = "

在系统创建一个新的项目:

"; +$lang->tutorial->tasks['createProject']['desc'] = "

在系统创建一个新的项目:

"; $lang->tutorial->tasks['linkStory'] = array('title' => '关联需求'); $lang->tutorial->tasks['linkStory']['nav'] = array('module' => 'project', 'method' => 'linkStory', 'menu' => 'story', 'target' => '.link-story-btn', 'form' => '#linkStoryForm', 'formType' => 'table', 'submit' => '#submit', 'targetPageName' => '关联需求'); -$lang->tutorial->tasks['linkStory']['desc'] = "

将需求关联到项目:

"; +$lang->tutorial->tasks['linkStory']['desc'] = "

将需求关联到项目:

"; $lang->tutorial->tasks['createTask'] = array('title' => '分解任务'); $lang->tutorial->tasks['createTask']['nav'] = array('module' => 'task', 'method' => 'create', 'menuModule' => 'project', 'menu' => 'story', 'target' => '.btn-task-create', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => '建任务'); -$lang->tutorial->tasks['createTask']['desc'] = "

将项目需求分解为任务:

"; +$lang->tutorial->tasks['createTask']['desc'] = "

将项目需求分解为任务:

"; $lang->tutorial->tasks['createBug'] = array('title' => '提Bug'); $lang->tutorial->tasks['createBug']['nav'] = array('module' => 'bug', 'method' => 'create', 'menuModule' => 'qa', 'menu' => 'bug', 'target' => '.btn-bug-create', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => '提Bug'); -$lang->tutorial->tasks['createBug']['desc'] = "

在系统中提交一个Bug:

"; +$lang->tutorial->tasks['createBug']['desc'] = "

在系统中提交一个Bug:

"; diff --git a/module/tutorial/view/index.html.php b/module/tutorial/view/index.html.php index 069e44fe5b..221ed55f31 100644 --- a/module/tutorial/view/index.html.php +++ b/module/tutorial/view/index.html.php @@ -18,10 +18,16 @@
+

tutorial->congratulation ?>

-   tutorial->exit ?> +   tutorial->exit ?> +
+
+
+

tutorial->congratulateTask ?>

+
@@ -57,7 +63,8 @@

tutorial->allTasks ?> (2/tutorial->tasks) ?>)

-
+
+