diff --git a/module/execution/css/executionkanban.css b/module/execution/css/executionkanban.css
index 9312d4b9a4..f941cab7f2 100644
--- a/module/execution/css/executionkanban.css
+++ b/module/execution/css/executionkanban.css
@@ -1,4 +1,4 @@
-.main-table .table {cursor: default;}
+.main-table .table {cursor: default; border-collapse: unset;}
.boards {display: table; table-layout: fixed; width: 100%; min-width: 140px;}
.board {display: table-cell; width: 25%; padding: 10px;}
@@ -12,7 +12,7 @@
#kanban thead > tr > th:not(:last-child) {border-right: 2px solid #efefef;}
#kanban tbody > tr > td {line-height: 24px;}
#kanban tbody > tr > td {background-color: #F5F5F5;}
-#kanban tbody > tr:not(:last-child) {border-bottom: 5px solid #fff !important;}
+#kanban tbody > tr:not(:last-child) > td {border-bottom: 5px solid #fff !important;}
.s-doing .table-row .table-col:last-child, .c-progress {width: 30px; padding-left: 3px; padding-top: 1px;}
.table-row .table-col:first-child, .board-project {overflow: hidden; white-space: nowrap;}
diff --git a/module/execution/js/task.js b/module/execution/js/task.js
index 032f77cbbe..013627478d 100644
--- a/module/execution/js/task.js
+++ b/module/execution/js/task.js
@@ -9,7 +9,7 @@ $(function()
$td.find('a').eq(0).css('max-width', $td.width() - labelWidth - 60);
});
- toggleFold('#projectTaskForm', unfoldTasks, executionID, 'project');
+ toggleFold('#executionTaskForm', unfoldTasks, executionID, 'project');
adjustTableFooter();
$('body').on('click', '#toggleFold', adjustTableFooter);
diff --git a/module/gitlab/view/browse.html.php b/module/gitlab/view/browse.html.php
index 1943eb0ef9..07ebd9f40d 100644
--- a/module/gitlab/view/browse.html.php
+++ b/module/gitlab/view/browse.html.php
@@ -48,7 +48,7 @@
isAdminToken) ? '' : 'disabled';
common::printLink('gitlab', 'edit', "gitlabID=$id", " ", '',"title={$lang->gitlab->edit} class='btn btn-primary'");
- common::printLink('gitlab', 'bindUser', "id=$id", " ", '', "title={$lang->gitlab->bindUser} class='btn btn-primary {$disabled}' ,'disabled'");
+ common::printLink('gitlab', 'bindUser', "id=$id", " ", '', "title={$lang->gitlab->bindUser} class='btn {$disabled}' ,'disabled'");
if(common::hasPriv('gitlab', 'delete')) echo html::a($this->createLink('gitlab', 'delete', "gitlabID=$id"), '', 'hiddenwin', "title='{$lang->gitlab->delete}' class='btn'");
?>
diff --git a/module/product/model.php b/module/product/model.php
index ed1443a4ae..9f78b9598a 100644
--- a/module/product/model.php
+++ b/module/product/model.php
@@ -1984,7 +1984,7 @@ class productModel extends model
*/
public function setMenu($productID, $branch = 0, $module = 0, $moduleType = '', $extra = '')
{
- if(!$this->app->user->admin and strpos(",{$this->app->user->view->products},", ",$productID,") === false and $productID != 0) die(js::error($this->lang->product->accessDenied) . js::locate('back'));
+ if(!$this->app->user->admin and strpos(",{$this->app->user->view->products},", ",$productID,") === false and $productID != 0 and !defined('TUTORIAL')) die(js::error($this->lang->product->accessDenied) . js::locate('back'));
$product = $this->getByID($productID);
$params = array('branch' => $branch);
diff --git a/module/qa/model.php b/module/qa/model.php
index 4d917fbf75..195735848a 100644
--- a/module/qa/model.php
+++ b/module/qa/model.php
@@ -23,7 +23,7 @@ class qaModel extends model
*/
public function setMenu($products, $productID, $branch = 0, $extra = '')
{
- if(!$this->app->user->admin and strpos(",{$this->app->user->view->products},", ",$productID,") === false and $productID != 0)
+ if(!$this->app->user->admin and strpos(",{$this->app->user->view->products},", ",$productID,") === false and $productID != 0 and !defined('TUTORIAL'))
{
$this->app->loadLang('product');
die(js::error($this->lang->product->accessDenied) . js::locate('back'));
diff --git a/module/tutorial/lang/en.php b/module/tutorial/lang/en.php
index 908f244282..aba275f885 100644
--- a/module/tutorial/lang/en.php
+++ b/module/tutorial/lang/en.php
@@ -54,28 +54,28 @@ $lang->tutorial->tasks['createStory']['desc'] = "
Create a story:
- tutorial->tasks['createProject'] = array('title' => 'Create a ' . $lang->executionCommon);
$lang->tutorial->tasks['createProject']['mode'] = 'new';
-$lang->tutorial->tasks['createProject']['nav'] = array('app' => 'project', 'module' => 'project', 'method' => 'create', 'menuModule' => 'browse', 'menu' => '', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-project-btn', 'targetPageName' => 'Create ' . $lang->projectCommon);
-$lang->tutorial->tasks['createProject']['desc'] = "
Create a {$lang->projectCommon}:
- Open {$lang->projectCommon} New Page;
- Fill the form with {$lang->projectCommon} information;
- Save
";
+$lang->tutorial->tasks['createProject']['nav'] = array('app' => 'project', 'module' => 'project', 'method' => 'create', 'menuModule' => 'browse', 'menu' => '', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-project-btn', 'targetPageName' => 'Create Project');
+$lang->tutorial->tasks['createProject']['desc'] = "Create a project:
- Open Project New Page;
- Fill the form with project information;
- Save
";
-$lang->tutorial->tasks['manageTeam'] = array('title' => "Manage {$lang->projectCommon} Team");
+$lang->tutorial->tasks['manageTeam'] = array('title' => "Manage Project Team");
$lang->tutorial->tasks['manageTeam']['mode'] = 'new';
$lang->tutorial->tasks['manageTeam']['nav'] = array('app' => 'project', 'module' => 'project', 'method' => 'managemembers', 'menuModule' => '', 'menu' => '#navbar>.nav>li[data-id="browse"],#cards>.col>.panel:first .project-name,#projectTableList>tr:first>.c-name a,#navbar>.nav>li[data-id="settings"],#subNavbar>.nav>li[data-id="members"],.manage-team-btn', 'target' => '.manage-team-btn', 'vars' => 'projectID=0', 'form' => '#teamForm', 'requiredFields' => 'accounts1,accounts', 'submit' => '#submit', 'targetPageName' => 'Manage team members');
-$lang->tutorial->tasks['manageTeam']['desc'] = "Manage {$lang->projectCommon} team members:
- Open {$lang->projectCommon} Team Manage Team Members Page;
- Choose users for the team.
- Save
";
+$lang->tutorial->tasks['manageTeam']['desc'] = "Manage project team members:
- Open project Team Manage Team Members Page;
- Choose users for the team.
- Save
";
$lang->tutorial->tasks['createProjectExecution'] = array('title' => 'Create a ' . $lang->executionCommon);
$lang->tutorial->tasks['createProjectExecution']['mode'] = 'new';
$lang->tutorial->tasks['createProjectExecution']['nav'] = array('app' => 'project', 'module' => 'execution', 'method' => 'create', 'menuModule' => 'browse', 'menu' => '#navbar>.nav>li[data-id="browse"],#cards>.col>.panel:first .project-name,#projectTableList>tr:first>.c-name a,#navbar>.nav>li[data-id="execution"],.create-execution-btn', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-execution-btn', 'targetPageName' => 'Create' . $lang->executionCommon);
-$lang->tutorial->tasks['createProjectExecution']['desc'] = "Create a new {$lang->executionCommon}:
- Open {$lang->projectCommon} {$lang->executionCommon} list Create {$lang->executionCommon};
- Fill the form with {$lang->executionCommon} information;
- Save {$lang->executionCommon}
";
+$lang->tutorial->tasks['createProjectExecution']['desc'] = "Create a new {$lang->executionCommon}:
- Open Project {$lang->executionCommon} list Create {$lang->executionCommon};
- Fill the form with {$lang->executionCommon} information;
- Save {$lang->executionCommon}
";
$lang->tutorial->tasks['createExecution'] = array('title' => 'Create a ' . $lang->executionCommon);
$lang->tutorial->tasks['createExecution']['mode'] = 'classic';
$lang->tutorial->tasks['createExecution']['nav'] = array('app' => 'execution', 'module' => 'execution', 'method' => 'create', 'menuModule' => 'browse', 'menu' => '#heading>.header-btn:first,#navbar>.nav>li[data-id="all"],.create-execution-btn', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-execution-btn', 'targetPageName' => 'Create ' . $lang->executionCommon);
-$lang->tutorial->tasks['createExecution']['desc'] = "Create a new {$lang->executionCommon}:
- Open {$lang->projectCommon} {$lang->executionCommon} list Create {$lang->executionCommon};
- Fill the form with {$lang->executionCommon} information;
- Save {$lang->executionCommon}
";
+$lang->tutorial->tasks['createExecution']['desc'] = "Create a new {$lang->executionCommon}:
- Open Project {$lang->executionCommon} list Create {$lang->executionCommon};
- Fill the form with {$lang->executionCommon} information;
- Save {$lang->executionCommon}
";
$lang->tutorial->tasks['manageExecutionTeam'] = array('title' => "Manage Team");
$lang->tutorial->tasks['manageExecutionTeam']['mode'] = 'classic';
$lang->tutorial->tasks['manageExecutionTeam']['nav'] = array('app' => 'execution', 'module' => 'execution', 'method' => 'managemembers', 'menuModule' => '', 'menu' => '#navbar>.nav>li[data-id="browse"],#cards>.col>.panel:first .project-name,#executionTableList>tr:first>.c-name>a,#navbar>.nav>li[data-id="settings"],#subNavbar>.nav>li[data-id="team"],.manage-team-btn', 'target' => '.manage-team-btn', 'form' => '#teamForm', 'requiredFields' => 'account1', 'submit' => '#submit', 'targetPageName' => 'Manage team members');
-$lang->tutorial->tasks['manageExecutionTeam']['desc'] = "Manage {$lang->projectCommon} team members:
- Open {$lang->projectCommon} Team Manage Team Members Page;
- Choose users for the team.
- Save
";
+$lang->tutorial->tasks['manageExecutionTeam']['desc'] = "Manage project team members:
- Open Project Team Manage Team Members Page;
- Choose users for the team.
- Save
";
$lang->tutorial->tasks['linkStory'] = array('title' => 'Link a Story');
$lang->tutorial->tasks['linkStory']['mode'] = 'new';
diff --git a/module/tutorial/lang/zh-cn.php b/module/tutorial/lang/zh-cn.php
index 2337d17285..b6510d7eea 100644
--- a/module/tutorial/lang/zh-cn.php
+++ b/module/tutorial/lang/zh-cn.php
@@ -52,25 +52,25 @@ $lang->tutorial->tasks['createStory'] = array('title' => "创建{$lang->
$lang->tutorial->tasks['createStory']['nav'] = array('app' => 'product', 'module' => 'story', 'method' => 'create', 'menuModule' => 'story', 'menu' => '#productTableList>tr:not(.has-nest-child):first>.c-name>a,#heading>.header-btn:first,#navbar>.nav>li[data-id="all"],.create-story-btn', 'target' => '.create-story-btn', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => "提{$lang->SRCommon}");
$lang->tutorial->tasks['createStory']['desc'] = "在系统创建一个新的{$lang->SRCommon}:
- 打开 {$lang->productCommon} {$lang->SRCommon} 提{$lang->SRCommon} 页面;
- 在{$lang->productCommon}表单中填写要创建的{$lang->SRCommon}信息;
- 保存{$lang->SRCommon}信息。
";
-$lang->tutorial->tasks['createProject'] = array('title' => '创建' . $lang->projectCommon);
+$lang->tutorial->tasks['createProject'] = array('title' => '创建项目');
$lang->tutorial->tasks['createProject']['mode'] = 'new';
-$lang->tutorial->tasks['createProject']['nav'] = array('app' => 'project', 'module' => 'project', 'method' => 'create', 'menuModule' => 'browse', 'menu' => '', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-project-btn', 'targetPageName' => '添加' . $lang->projectCommon);
-$lang->tutorial->tasks['createProject']['desc'] = "在系统创建一个新的{$lang->projectCommon}:
- 打开 {$lang->projectCommon} {$lang->projectCommon}列表 创建{$lang->projectCommon} 页面;
- 在{$lang->projectCommon}表单中填写要创建的{$lang->projectCommon}信息;
- 保存{$lang->projectCommon}信息。
";
+$lang->tutorial->tasks['createProject']['nav'] = array('app' => 'project', 'module' => 'project', 'method' => 'create', 'menuModule' => 'browse', 'menu' => '', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-project-btn', 'targetPageName' => '添加项目');
+$lang->tutorial->tasks['createProject']['desc'] = "在系统创建一个新的项目:
- 打开 项目 项目列表 创建项目 页面;
- 在项目表单中填写要创建的项目信息;
- 保存项目信息。
";
-$lang->tutorial->tasks['manageTeam'] = array('title' => "管理{$lang->projectCommon}团队");
+$lang->tutorial->tasks['manageTeam'] = array('title' => "管理项目团队");
$lang->tutorial->tasks['manageTeam']['mode'] = 'new';
$lang->tutorial->tasks['manageTeam']['nav'] = array('app' => 'project', 'module' => 'project', 'method' => 'managemembers', 'menuModule' => '', 'menu' => '#navbar>.nav>li[data-id="browse"],#cards>.col>.panel:first .project-name,#projectTableList>tr:first>.c-name a,#navbar>.nav>li[data-id="settings"],#subNavbar>.nav>li[data-id="members"],.manage-team-btn', 'target' => '.manage-team-btn', 'vars' => 'projectID=0', 'form' => '#teamForm', 'requiredFields' => 'accounts1', 'submit' => '#submit', 'targetPageName' => '团队管理');
-$lang->tutorial->tasks['manageTeam']['desc'] = "管理{$lang->projectCommon}团队成员:
- 打开 {$lang->projectCommon} 设置 团队 团队管理 页面;
- 选择要加入{$lang->projectCommon}团队的成员;
- 保存团队成员信息。
";
+$lang->tutorial->tasks['manageTeam']['desc'] = "管理项目团队成员:
- 打开 项目 设置 团队 团队管理 页面;
- 选择要加入项目团队的成员;
- 保存团队成员信息。
";
$lang->tutorial->tasks['createProjectExecution'] = array('title' => '添加' . $lang->executionCommon);
$lang->tutorial->tasks['createProjectExecution']['mode'] = 'new';
$lang->tutorial->tasks['createProjectExecution']['nav'] = array('app' => 'project', 'module' => 'execution', 'method' => 'create', 'menuModule' => 'browse', 'menu' => '#navbar>.nav>li[data-id="browse"],#cards>.col>.panel:first .project-name,#projectTableList>tr:first>.c-name a,#navbar>.nav>li[data-id="execution"],.create-execution-btn', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-execution-btn', 'targetPageName' => '添加' . $lang->executionCommon);
-$lang->tutorial->tasks['createProjectExecution']['desc'] = "在系统创建一个新的{$lang->executionCommon}:
- 打开 {$lang->projectCommon} {$lang->executionCommon} 添加{$lang->executionCommon} 页面;
- 在{$lang->executionCommon}表单中填写要创建的{$lang->executionCommon}信息;
- 保存{$lang->executionCommon}信息。
";
+$lang->tutorial->tasks['createProjectExecution']['desc'] = "在系统创建一个新的{$lang->executionCommon}:
- 打开 项目 {$lang->executionCommon} 添加{$lang->executionCommon} 页面;
- 在{$lang->executionCommon}表单中填写要创建的{$lang->executionCommon}信息;
- 保存{$lang->executionCommon}信息。
";
$lang->tutorial->tasks['createExecution'] = array('title' => '创建' . $lang->executionCommon);
$lang->tutorial->tasks['createExecution']['mode'] = 'classic';
$lang->tutorial->tasks['createExecution']['nav'] = array('app' => 'execution', 'module' => 'execution', 'method' => 'create', 'menuModule' => 'browse', 'menu' => '#heading>.header-btn:first,#navbar>.nav>li[data-id="all"],.create-execution-btn', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-execution-btn', 'targetPageName' => '添加' . $lang->executionCommon);
-$lang->tutorial->tasks['createExecution']['desc'] = "在系统创建一个新的{$lang->executionCommon}:
- 打开 {$lang->projectCommon} {$lang->executionCommon}列表 添加{$lang->executionCommon} 页面;
- 在表单中填写要创建的{$lang->executionCommon}信息;
- 保存{$lang->executionCommon}信息。
";
+$lang->tutorial->tasks['createExecution']['desc'] = "在系统创建一个新的{$lang->executionCommon}:
- 打开 项目 {$lang->executionCommon}列表 添加{$lang->executionCommon} 页面;
- 在表单中填写要创建的{$lang->executionCommon}信息;
- 保存{$lang->executionCommon}信息。
";
$lang->tutorial->tasks['manageExecutionTeam'] = array('title' => "管理团队");
$lang->tutorial->tasks['manageExecutionTeam']['mode'] = 'classic';