* refactor tutorial module views.

This commit is contained in:
Catouse
2018-06-06 15:02:10 +08:00
parent 78226d52a4
commit 42225e08e6
18 changed files with 149 additions and 86 deletions
+30 -28
View File
@@ -1,16 +1,17 @@
#pageContainer {position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden;}
#iframeWrapper {position: absolute; left: 0; top: 0; bottom: 0; right: 300px; display: block}
#sidebar {position: absolute; right: 0; top: 0; bottom: 0; width: 300px; background: #f5f5f5; overflow-y: auto; padding-top: 66px; border-left: 1px solid #ddd}
#sidebar > header {background: #3280FC; color: #fff; padding: 10px; position: fixed; top: 0; right: 0; z-index: 10; width: 300px; border-bottom: 1px solid #ddd}
#sidebar {position: absolute; right: 0; top: 0; bottom: 0; width: 300px; background: #f5f5f5; overflow-y: auto; padding-top: 56px; border-left: 1px solid #ddd}
#sidebar > header {color: #fff; padding: 10px; position: fixed; top: 0; right: 0; z-index: 10; width: 300px; border-bottom: 1px solid #ddd}
#sidebar > header > h2 {margin: 0 0 0 40px; font-size: 18px; padding: 0; line-height: 36px; color: #fff}
#sidebar > header .start-icon {position: absolute; left: 20px; top: 10px; width: 36px; height: 36px; text-align: center; margin-right: 5px;}
#sidebar > header .start-icon > .icon-front {color: #3280FC; position: absolute; width: 36px; height: 36px; line-height: 36px; top: 0; left: 0; font-size: 12px}
#sidebar > header .start-icon {position: absolute; left: 10px; top: 10px; width: 36px; height: 36px; text-align: center; margin-right: 5px;}
#sidebar > header .start-icon > .icon-front {color: #00B1FD; position: absolute; width: 36px; height: 36px; line-height: 36px; top: 0; left: 0; font-size: 12px}
#sidebar > header .start-icon > .icon-back {font-size: 22px; color: #fff; line-height: 36px;}
#sidebar > header .start-icon > .icon-back:before {content: '\f0a3'}
#sidebar > header > .actions {position: absolute; right: 15px; top: 15px}
#sidebar > section {padding: 20px 10px; border-top: 1px solid #ddd}
#sidebar > section > h4 {margin: 0 0 10px 0; font-size: 14px; color: #808080; font-weight: normal}
#task {border: none}
#task > .panel-heading {padding: 10px; background: #114f8e; color: #fff; font-size: 15px; transition: background .4s;}
#task > .panel-heading {padding: 10px; color: #fff; font-size: 15px; transition: background .4s;}
#task > .panel-heading > .pull-right {margin-top: 3px; opacity: 0; transition: opacity .4s, transform .4s; transform: scale(2.5, 2)}
#task > .panel-body {border: 1px solid #ddd; border-top: none; padding: 0}
#task .panel-body > .btn {padding:5px 7px;}
@@ -20,54 +21,55 @@
#task .task-desc > ul > li {position: relative; padding: 2px 0; overflow: hidden; padding-left: 26px; transition: background .5s}
#task .task-desc > ul > li[data-target].finish {color: #999; text-decoration: line-through;}
#task .task-desc > ul > li[data-target].finish .task-nav {opacity: .6; text-decoration: line-through;}
#task .task-desc > ul > li:before {font-family: NewZenIcon; font-size: 14px; font-style: normal; font-weight: 400; font-variant: normal; line-height: 1; text-transform: none; speak: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; content: '\e6ec'; display: block; width: 26px; height: 20px; line-height: 20px; text-align: center; opacity: .6; color: #808080; position: absolute; top: 2px; left: 0}
#task .task-desc > ul > li[data-target]:after {content: ' '; display: block; position: absolute; left: 0; top: -100%; width: 100%; height: 100%; border: 2px solid #F1A325; transition: top .5s}
#task .task-desc > ul > li[data-target]:before {font-family: ZenIcon; content: '\e6e8'; color: #333}
#task .task-desc > ul > li:before {font-family: ZentaoIcon; font-size: 14px; font-style: normal; font-weight: 400; font-variant: normal; line-height: 1; text-transform: none; speak: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; content: '\e836'; display: block; width: 26px; height: 20px; line-height: 20px; text-align: center; opacity: .6; color: #808080; position: absolute; top: 2px; left: 0}
#task .task-desc > ul > li[data-target]:after {content: ' '; display: block; position: absolute; left: 0; top: -100%; width: 100%; height: 100%; border: 2px solid #F1A325; transition: top .5s; pointer-events: none;}
#task .task-desc > ul > li[data-target]:before {font-family: ZentaoIcon; content: '\e836'; color: #333}
#task .task-desc > ul > li[data-target].finish:after {top: 100%;}
#task .task-desc > ul > li[data-target].finish:before {content: '\e653'; color: #38B03F}
#task .task-desc > ul > li[data-target].finish:before {content: '\e92f'; color: #00da88}
#task .task-desc > ul > li[data-target].active {background: #FFF0D5}
#task .task-desc > ul > li[data-target].active:after {top: 0%}
#task .task-desc > ul > li[data-target].active:before {font-family: ZenIcon; color: #EA644A; content: '\f192'}
#openTaskPage {display: block; overflow: hidden; position: relative; height: 36px; background: #f5f5f5}
#task .task-desc > ul > li[data-target].active:before {font-family: ZentaoIcon; color: #EA644A; content: '\e92c'}
#openTaskPage {display: block; overflow: hidden; position: relative; height: 36px;}
#openTaskPage > div {padding: 8px 10px; line-height: 20px; transition: top .4s cubic-bezier(.175,.885,.32,1); position: absolute; left: 0; top: 0; right: 0}
#openTaskPage > div > .icon {display: inline-block; width: 30px; text-align: center}
#openTaskPage:hover {background: #EBF2F9}
#openTaskPage > .normal {top: 0;}
#openTaskPage.open {color: #38B03F; background: #DDF4DF}
#openTaskPage.open:hover {color: #1a4f85; background: #EBF2F9}
#openTaskPage.open {color: #00da88; background: #DDF4DF}
#openTaskPage.open:hover {color: #006af1; background: #EBF2F9}
#openTaskPage > .opened, #openTaskPage > .reload, #openTaskPage.open > .reload {top: 36px;}
#openTaskPage.open > .normal, #openTaskPage.open:hover > .opened {top: -36px;}
#openTaskPage.open > .opened, #openTaskPage.open:hover > .reload {top: 0;}
#task.finish > .panel-heading {background: #38B03F}
#task.finish > .panel-heading {background: #00da88}
#task.finish > .panel-heading .task-name {text-decoration: line-through;}
#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; 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}
#task .task-nav {color: #006af1; display: inline-block; background: #EBF2F9; padding: 1px 5px 0; transition: all .2s}
#task .task-nav:hover {color: #fff; background: #006af1; cursor: pointer}
#tasksProgress {background: #ddd; position: relative}
#tasksProgress > .progress-bar {background: #006af1; height: 8px; border-radius: 4px; margin-bottom: 15px; transition: background .4s, width .4s;}
#tasksProgress.finish > .progress-bar {width: 100%!important; background: #00da88}
#tasksProgress .progress-text {position: absolute; right: 0; top: -25px; font-weight: bold; opacity: 0.7; color: #006af1}
#tasksProgress.finish .progress-text {color: #00da88; opacity: 1}
#tasks {background: #fff;}
#tasks > li > a > .pull-right {filter: alpha(opacity=0); 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}
#tasks {background: #fff; box-shadow: 0 1px 1px rgba(0,0,0,.05), 0 2px 6px 0 rgba(0,0,0,0.045); border-radius: 6px;}
#tasks > li > a {padding: 8px;}
#tasks > li > a > .pull-right {filter: alpha(opacity=0); opacity: 0; transition: opacity .4s, transform .4s; transform: scale(2.5, 2); color: #00da88}
#tasks > li.finish > a, #tasks > li.finish.active > a {box-shadow: inset 2px 0 0 #00da88; border-left-color: #00da88; color: #808080}
#tasks > li.finish > a > .pull-right {filter: alpha(opacity=100); opacity: 1; transform: scale(1)}
#tasks > li.finish > a > .task-name {text-decoration: line-through;}
#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.active > a, #tasks > li.active.finish > a {box-shadow: inset 2px 0 0 #006af1; border-color: #ddd; border-left-color: #006af1; color: #006af1; 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; 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 {width: 500px; position: absolute; background: #00da88; 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 0 20px 0 rgba(0,0,0,.25); display: none}
#taskModal.in {transform: scale(1) translate(0) rotateX(0); opacity: 1}
#taskModal h3 {margin-bottom: 20px}
#taskModal .start-icon > .icon-spin {-moz-animation: spin 10s infinite linear;-o-animation: spin 10s infinite linear;-webkit-animation: spin 10s infinite linear;animation: spin 10s infinite linear;}
#taskModal .start-icon {width: 60px; height: 60px; text-align: center; margin: 10px auto; position: relative}
#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 .start-icon > .icon-front {font-size: 56px; color: #fff; line-height: 60px; width: 60px; height: 60px; position: absolute; left: 0; top: 0;}
#taskModal .btn-success {border-color: #DDF4DF}
#taskModal .btn-success:hover {background: #00c178}
#taskModal > .close {position: absolute; right: 15px; top: 10px;}
#taskModal > .finish-all {display: none}
#taskModal > .finish {display: block}
+4 -4
View File
@@ -1,7 +1,7 @@
#start {background: #EBF2F9; padding: 40px; text-align: center;}
#start {padding: 40px; text-align: center; color: #fff;}
.start-icon {position: relative; width: 140px; height: 140px; margin: 0 auto; line-height: 140px;}
.start-icon > .icon-back {font-size: 140px; color: #145CCD}
.start-icon > .icon-back {font-size: 140px;}
.start-icon > .icon-back:before {content: '\f0a3';}
.start-icon > .icon-front {font-size: 56px; position: absolute; top: 35px; left: 35px; color: #EBF2F9; z-index: 10; width: 70px; height: 70px; text-align: center; line-height: 70px;}
.start-icon > .icon-spin {-moz-animation: spin 15s infinite linear;-o-animation: spin 15s infinite linear;-webkit-animation: spin 15s infinite linear;animation: spin 15s infinite linear;}
#start > h1 {color: #145CCD}
#start > h1, #start > p {margin-bottom: 20px}
#start > h1, #start > p {margin-bottom: 30px}
+3 -3
View File
@@ -35,11 +35,11 @@ $lang->tutorial->dataNotSave = "Data generated in the Tutorial will not be
$lang->tutorial->tasks = array();
$lang->tutorial->tasks['createAccount'] = array('title' => 'Create a User');
$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']['nav'] = array('module' => 'user', 'method' => 'create', 'menuModule' => 'company', 'menu' => 'browseUser', 'form' => '#createForm', 'submit' => '#submit', 'target' => '.create-user-btn', 'targetPageName' => 'Add User');
$lang->tutorial->tasks['createAccount']['desc'] = "<p>Create a User: </p><ul><li data-target='nav'>Open <span class='task-nav'>Company <i class='icon icon-angle-right'></i> Users<i class='icon icon-angle-right'></i> New;</span></li><li data-target='form'>Fill the form with user information;</li><li data-target='submit'>Save</li></ul>";
$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']['nav'] = array('module' => 'product', 'method' => 'create', 'menu' => '#pageNav', 'form' => '#createForm', 'submit' => '#submit', 'target' => '.create-product-btn', 'targetPageName' => 'Product');
$lang->tutorial->tasks['createProduct']['desc'] = "<p>Create a product: </p><ul><li data-target='nav'> Open <span class='task-nav'>Product <i class='icon icon-angle-right'></i> New;</span></li><li data-target='form'>Fill the form with product information;</li><li data-target='submit'>Save</li></ul>";
$lang->tutorial->tasks['createStory'] = array('title' => 'Create a Story');
@@ -47,7 +47,7 @@ $lang->tutorial->tasks['createStory']['nav'] = array('module' => 'story', 'meth
$lang->tutorial->tasks['createStory']['desc'] = "<p>Create a story: </p><ul><li data-target='nav'>Open <span class='task-nav'>Product <i class='icon icon-angle-right'></i>Story <i class='icon icon-angle-right'></i>Create;</span></li><li data-target='form'>Fill the form with story information;</li><li data-target='submit'>Save</li></ul>";
$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']['nav'] = array('module' => 'project', 'method' => 'create', 'menu' => '#pageNav', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-project-btn', 'targetPageName' => 'Create Project');
$lang->tutorial->tasks['createProject']['desc'] = "<p>Create a project: </p><ul><li data-target='nav'>Open <span class='task-nav'> Project <i class='icon icon-angle-right'></i> New</span> Page;</li><li data-target='form'>Fill the form with project information;</li><li data-target='submit'>Save</li></ul>";
$lang->tutorial->tasks['manageTeam'] = array('title' => 'Manage Project Team');
+3 -3
View File
@@ -35,11 +35,11 @@ $lang->tutorial->dataNotSave = "教程任务中,数据不会保存。";
$lang->tutorial->tasks = array();
$lang->tutorial->tasks['createAccount'] = array('title' => '创建帐号');
$lang->tutorial->tasks['createAccount']['nav'] = array('module' => 'user', 'method' => 'create', 'menuModule' => 'company', 'menu' => 'addUser', 'form' => '#dataform', 'submit' => '#submit', 'targetPageName' => '添加用户');
$lang->tutorial->tasks['createAccount']['nav'] = array('module' => 'user', 'method' => 'create', 'menuModule' => 'company', 'menu' => 'browseUser', 'form' => '#createForm', 'submit' => '#submit', 'target' => '.create-user-btn', 'targetPageName' => '添加用户');
$lang->tutorial->tasks['createAccount']['desc'] = "<p>在系统创建一个新的用户帐号:</p><ul><li data-target='nav'>打开 <span class='task-nav'>组织 <i class='icon icon-angle-right'></i> 用户 <i class='icon icon-angle-right'></i> 添加用户</span> 页面;</li><li data-target='form'>在添加用户表单中填写新用户信息;</li><li data-target='submit'>保存用户信息。</li></ul>";
$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']['nav'] = array('module' => 'product', 'method' => 'create', 'menu' => '#pageNav', 'form' => '#createForm', 'submit' => '#submit', 'target' => '.create-product-btn', 'targetPageName' => '添加产品');
$lang->tutorial->tasks['createProduct']['desc'] = "<p>在系统创建一个新的产品:</p><ul><li data-target='nav'>打开 <span class='task-nav'>产品 <i class='icon icon-angle-right'></i> 添加产品</span> 页面;</li><li data-target='form'>在表单中填写要创建的产品信息;</li><li data-target='submit'>保存产品信息。</li></ul>";
$lang->tutorial->tasks['createStory'] = array('title' => '创建需求');
@@ -47,7 +47,7 @@ $lang->tutorial->tasks['createStory']['nav'] = array('module' => 'story', 'meth
$lang->tutorial->tasks['createStory']['desc'] = "<p>在系统创建一个新的需求:</p><ul><li data-target='nav'>打开 <span class='task-nav'>产品 <i class='icon icon-angle-right'></i> 需求 <i class='icon icon-angle-right'></i> 添加需求</span> 页面;</li><li data-target='form'>在表单中填写要创建的需求信息;</li><li data-target='submit'>保存需求信息。</li></ul>";
$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']['nav'] = array('module' => 'project', 'method' => 'create', 'menu' => '#pageNav', 'form' => '#dataform', 'submit' => '#submit', 'target' => '.create-project-btn', 'targetPageName' => '添加项目');
$lang->tutorial->tasks['createProject']['desc'] = "<p>在系统创建一个新的项目:</p><ul><li data-target='nav'>打开 <span class='task-nav'> 项目 <i class='icon icon-angle-right'></i> 添加项目</span> 页面;</li><li data-target='form'>在表单中填写要创建的项目信息;</li><li data-target='submit'>保存项目信息。</li></ul>";
$lang->tutorial->tasks['manageTeam'] = array('title' => '管理团队');
+59 -30
View File
@@ -20,19 +20,19 @@
<div id='taskModal'>
<button class='close'><i class="icon icon-close"></i></button>
<div class='finish-all'>
<div class='start-icon'><i class='icon icon-certificate icon-spin icon-back'></i><i class='icon icon-check icon-front'></i></div>
<div class='start-icon'><i class='icon icon-check-circle icon-front'></i></div>
<h3><?php echo $lang->tutorial->congratulation ?></h3>
<button type='button' class='btn btn-success btn-reset-tasks'><i class='icon icon-repeat'></i> <?php echo $lang->tutorial->restart ?></button> &nbsp; <a href='<?php echo helper::createLink('tutorial', 'quit', 'referer=' . base64_encode($referer)) ?>' class='btn btn-success'><i class='icon icon-signout'></i> <?php echo $lang->tutorial->exit ?></a>
<button type='button' class='btn btn-success btn-reset-tasks'><i class='icon icon-restart'></i> <?php echo $lang->tutorial->restart ?></button> &nbsp; <a href='<?php echo helper::createLink('tutorial', 'quit', 'referer=' . base64_encode($referer)) ?>' class='btn btn-success'><i class='icon icon-signout'></i> <?php echo $lang->tutorial->exit ?></a>
</div>
<div class='finish'>
<div class='start-icon'><i class='icon icon-circle icon-back'></i><i class='icon icon-check icon-front'></i></div>
<div class='start-icon'><i class='icon icon-check-circle icon-front'></i></div>
<h3><?php echo $lang->tutorial->congratulateTask ?></h3>
<button type='button' class='btn btn-success btn-next-task btn-task'><?php echo $lang->tutorial->nextTask ?> <i class='icon icon-angle-right'></i></button>
</div>
</div>
</div>
<div id='sidebar'>
<header>
<header class='bg-primary'>
<div class='start-icon'><i class='icon icon-certificate icon-back'></i><i class='icon icon-flag icon-front'></i></div>
<h2><?php echo $lang->tutorial->common ?></h2>
<div class='actions'>
@@ -42,23 +42,23 @@
<section id='current'>
<h4><?php echo $lang->tutorial->currentTask ?></h4>
<div class='panel' id='task'>
<div class='panel-heading'>
<div class='panel-heading bg-secondary'>
<strong><span class='task-id-current'>1</span>. <span class='task-name task-name-current'></span></strong>
<i class="icon icon-check pull-right"></i>
</div>
<div class='panel-body'>
<div class='task-desc'></div>
<a href='javascript:;' id='openTaskPage' class='btn-open-target-page'>
<a href='javascript:;' id='openTaskPage' class='btn-open-target-page hl-primary'>
<div class='normal'><i class="icon icon-flag-alt"></i> <?php echo $lang->tutorial->openTargetPage ?></div>
<div class='opened'><i class="icon icon-flag"></i> <?php echo $lang->tutorial->atTargetPage ?></div>
<div class='reload'><i class="icon icon-repeat"></i> <?php echo $lang->tutorial->reloadTargetPage ?></div>
<div class='reload'><i class="icon icon-restart"></i> <?php echo $lang->tutorial->reloadTargetPage ?></div>
</a>
<div class='alert-warning' style='padding:5px 10px;margin-bottom:0px'><?php echo $lang->tutorial->dataNotSave?></div>
</div>
</div>
<div class='clearfix actions'>
<button type='button' class='btn btn-sm btn-prev-task btn-task'><i class="icon icon-angle-left"></i> <?php echo $lang->tutorial->previous ?></button>
<button type='button' class='btn btn-primary btn-sm pull-right btn-task btn-next-task'><?php echo $lang->tutorial->nextTask ?> <i class="icon icon-angle-right"></i></button>
<button type='button' class='btn btn-sm btn-circle btn-prev-task btn-task btn-icon-left'><span class="label label-badge label-icon"><i class="icon icon-arrow-left"></i></span><?php echo $lang->tutorial->previous ?></button>
<button type='button' class='btn btn-sm btn-circle btn-primary pull-right btn-task btn-next-task btn-icon-right'><?php echo $lang->tutorial->nextTask ?> <span class="label label-badge label-icon"><i class="icon icon-arrow-right"></i></span></button>
</div>
</section>
<section id='all'>
@@ -111,7 +111,7 @@ $(function()
tagetPageTip: '<?php echo $lang->tutorial->targetPageTip ?>',
target : '<?php echo $lang->tutorial->target ?>',
requiredTip : '<?php echo $lang->tutorial->requiredTip ?>'
}
};
var $tasks = $('#tasks'),
$task = $('#task'),
@@ -203,8 +203,8 @@ $(function()
var showToolTip = function($e, text, options)
{
$e.closest('body').find('[data-toggle=tooltip]').tooltip('destroy');
if(!$e.length) return;
$e.closest('body').find('[data-toggle=tooltip]').tooltip('destroy');
options = $.extend(
{
trigger: 'manual',
@@ -216,6 +216,10 @@ $(function()
$e = $e.first();
if(!$e.data('zui.tooltip')) $e.addClass('tooltip-tutorial').attr('data-toggle', 'tooltip').tooltip(options);
$e.tooltip('show');
if($e[0].getBoundingClientRect().top > $(window).height() || $e[0].getBoundingClientRect().top < 0)
{
$e[0].scrollIntoView();
}
};
var tryCheckTask = function()
@@ -234,11 +238,12 @@ $(function()
var checkTask = function()
{
if(!iWindow || !iWindow.$) return tryCheckTask();
var task = tasks[current];
var $$ = iWindow.$;
var pageConfig = iWindow.config;
var currentModule = (iWindow.TUTORIAL ? iWindow.TUTORIAL['module'] : pageConfig.currentModule).toLowerCase();
var currentMethod = (iWindow.TUTORIAL ? iWindow.TUTORIAL['method'] : pageConfig.currentMethod).toLowerCase();
var currentModule = (iWindow.TUTORIAL ? iWindow.TUTORIAL['module'] : pageConfig ? pageConfig.currentModule : '').toLowerCase();
var currentMethod = (iWindow.TUTORIAL ? iWindow.TUTORIAL['method'] : pageConfig ? pageConfig.currentMethod : '').toLowerCase();
var targetStatus = status || {},
$navTarget = $task.find('[data-target="nav"]').removeClass('active'),
$formTarget = $task.find('[data-target="form"]').removeClass('active'),
@@ -249,7 +254,7 @@ $(function()
{
// check form target
var $form = $$(task.nav.form);
var $formWrapper = $form.closest('.container');
var $formWrapper = $form.closest('.main-content');
if(!$formWrapper.length) $formWrapper = $form;
highlight($formWrapper);
showToolTip($formWrapper, $formTarget.text());
@@ -258,7 +263,7 @@ $(function()
if(task.nav.formType === 'table')
{
fieldSelector = ':checkbox:not(.rows-selector)';
fieldSelector = 'input[type="checkbox"]';
var $checkboxes = $form.find(fieldSelector);
targetStatus.form = $checkboxes.filter(':checked').length > 0;
if(!targetStatus.form) {
@@ -288,7 +293,7 @@ $(function()
if(!$form.data('bindCheckTaskEvent'))
{
$form.off('submit .tutorial');
$form.off('.tutorial').off('submit');
$form.on('change.tutorial', fieldSelector, tryCheckTask);
var onSubmit = function(e)
{
@@ -337,28 +342,51 @@ $(function()
// check nav target
$navTarget.addClass('active');
var menuModule = task.nav.menuModule || task.nav['module'];
var $mainmenu = $$('#mainmenu');
var $mainmenuItem = $mainmenu.find('[data-id="' + menuModule + '"]');
var $navbar = $$('#navbar');
var $navbarItem = $navbar.find('[data-id="' + menuModule + '"]');
var tagetPageTip = lang.tagetPageTip.replace('%s', task.nav.targetPageName || lang.target);
if(!$mainmenuItem.hasClass('active'))
if(!$navbarItem.hasClass('active'))
{
highlight($mainmenuItem);
showToolTip($mainmenuItem, tagetPageTip);
highlight($navbarItem);
showToolTip($navbarItem, tagetPageTip);
}
else if(task.nav.menu)
{
var $modulemenu = $$('#modulemenu');
var $modulemenuItem = $modulemenu.find('[data-id="' + task.nav.menu + '"]');
if(!$modulemenuItem.hasClass('active'))
if(task.nav.menu === '#pageNav')
{
highlight($modulemenuItem);
showToolTip($modulemenuItem, tagetPageTip);
var $pageNav = $$('#pageNav');
var $targetBtn = $pageNav.find(task.nav.target);
var $targetBtnGroup = $targetBtn.closest('.btn-group');
if($targetBtnGroup.hasClass('open'))
{
highlight($targetBtn);
showToolTip($targetBtn, tagetPageTip);
}
else
{
highlight($targetBtnGroup);
showToolTip($targetBtnGroup, tagetPageTip);
}
if(!$targetBtnGroup.data('initTutorial'))
{
$targetBtnGroup.data('initTutorial', 1).on('click', tryCheckTask);
}
}
else if(task.nav.target)
else
{
var $targetItem = $$(task.nav.target);
highlight($targetItem);
showToolTip($targetItem, tagetPageTip);
var $modulemenu = $$('#subNavbar');
var $modulemenuItem = $modulemenu.find('[data-id="' + task.nav.menu + '"]');
if(!$modulemenuItem.hasClass('active'))
{
highlight($modulemenuItem);
showToolTip($modulemenuItem, tagetPageTip);
}
else if(task.nav.target)
{
var $targetItem = $$(task.nav.target);
highlight($targetItem);
showToolTip($targetItem, tagetPageTip);
}
}
}
}
@@ -368,6 +396,7 @@ $(function()
$openTaskPage.toggleClass('open', targetStatus.nav);
targetStatus.submitOK = targetStatus.nav && targetStatus.form;
return targetStatus;
};
+3 -3
View File
@@ -11,10 +11,10 @@
*/
?>
<?php include '../../common/view/header.lite.html.php';?>
<div id='start'>
<div class='start-icon'><i class='icon icon-certificate icon-spin icon-back'></i><i class='icon icon-flag icon-front'></i></div>
<div id='start' class='bg-primary'>
<div class='start-icon'><i class='icon icon-certificate icon-spin icon-back text-primary'></i><i class='icon icon-flag icon-front text-primary'></i></div>
<h1><?php echo $lang->tutorial->common ?></h1>
<p><?php echo $lang->tutorial->desc ?></p>
<?php echo html::a(inlink('index'), $lang->tutorial->start, '_top', "class='btn btn-primary btn-lg'");;?>
<?php echo html::a(inlink('index'), $lang->tutorial->start, '_top', "class='btn btn-primary btn-lg btn-wide btn-info'");;?>
</div>
<?php include '../../common/view/footer.lite.html.php';?>