* refactor tutorial module views.
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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' => '管理团队');
|
||||
|
||||
@@ -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> <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> <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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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';?>
|
||||
|
||||
Reference in New Issue
Block a user