* [misc] support to active task by url params on page load.

This commit is contained in:
sunhao
2024-09-04 17:31:41 +08:00
committed by 王于听
parent cb065e3baa
commit 58e406a4c5
3 changed files with 20 additions and 8 deletions
+8 -7
View File
@@ -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&section=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&section=global&key=mode');
$this->display();
}
+10 -1
View File
@@ -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 : '';
+2
View File
@@ -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'),