* [misc] support to active task by url params on page load.
This commit is contained in:
@@ -32,19 +32,20 @@ class tutorial extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function index(string $referer = '', string $task = '')
|
||||
public function index(string $referer = '', $guide = '', string $task = '')
|
||||
{
|
||||
$setting = isset($this->config->tutorial->tasks->setting) ? $this->config->tutorial->tasks->setting : '';
|
||||
|
||||
$this->loadModel('setting')->setItem($this->app->user->account . '.common.global.novice', 0);
|
||||
$this->session->set('tutorialMode', true);
|
||||
|
||||
$this->view->title = $this->lang->tutorial->common;
|
||||
$this->view->currentTask = $task;
|
||||
$this->view->guides = $this->config->tutorial->guides;
|
||||
$this->view->setting = $setting;
|
||||
$this->view->referer = base64_decode($referer);
|
||||
$this->view->mode = $this->setting->getItem('owner=system&module=common§ion=global&key=mode');
|
||||
$this->view->title = $this->lang->tutorial->common;
|
||||
$this->view->currentGuide = $guide;
|
||||
$this->view->currentTask = $task;
|
||||
$this->view->guides = $this->config->tutorial->guides;
|
||||
$this->view->setting = $setting;
|
||||
$this->view->referer = base64_decode($referer);
|
||||
$this->view->mode = $this->setting->getItem('owner=system&module=common§ion=global&key=mode');
|
||||
$this->display();
|
||||
}
|
||||
|
||||
|
||||
@@ -248,6 +248,13 @@ function updateTaskUI(task, change)
|
||||
$task.attr('data-status', task.status).toggleClass('active', !!task.active);
|
||||
const $steps = $task.find('.tutorial-step').removeClass('active');
|
||||
if(task.currentStepIndex !== undefined) $steps.filter(`[data-step="${task.currentStepIndex}"]`).addClass('active');
|
||||
|
||||
if(task.active)
|
||||
{
|
||||
const $tabToggle = $(`#tutorialTabs .tabs-nav>.nav-item[data-key="${task.guide.type}"]>a`);
|
||||
if($tabToggle.length && !$tabToggle.hasClass('active')) setTimeout(() => $tabToggle[0].click(), 200);
|
||||
$task.scrollIntoView();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -419,7 +426,7 @@ function activeTask(guideName, taskName, step)
|
||||
toggleActiveTarget('task', currentTask, true);
|
||||
}
|
||||
|
||||
activeTaskStep(guideName, taskName, step);
|
||||
activeTaskStep(guideName, taskName, stepIndex);
|
||||
}
|
||||
|
||||
function unactiveGuide()
|
||||
@@ -445,6 +452,8 @@ function activeGuide(guideName)
|
||||
}
|
||||
}
|
||||
|
||||
window.activeTask = activeTask;
|
||||
|
||||
window.getCurrentStepID = function()
|
||||
{
|
||||
return currentStep ? currentStep.id : '';
|
||||
|
||||
@@ -147,6 +147,7 @@ $buildTutorialTabPane = function($type) use ($groupedGuides, $lang, $currentType
|
||||
set::title($lang->tutorial->guideTypes[$type]),
|
||||
set::active($type === $currentType),
|
||||
set::class('px-2.5'),
|
||||
set::key($type),
|
||||
simpleList
|
||||
(
|
||||
setData('type', $type),
|
||||
@@ -190,6 +191,7 @@ div
|
||||
setID('sidebar'), // 侧边栏。Sidebar.
|
||||
setClass('absolute top-0 bottom-0 right-0 border-l'),
|
||||
style::width('--sidebar-width'),
|
||||
($currentGuide && $currentTask) ? on::init()->call('activeTask', $currentGuide, $currentTask) : null,
|
||||
h::header
|
||||
(
|
||||
setClass('row items-center flex-nowrap p-2'),
|
||||
|
||||
Reference in New Issue
Block a user