Skip to content

Commit 4e62630

Browse files
added backend driver.js tours support
1 parent 3147004 commit 4e62630

File tree

6 files changed

+67
-0
lines changed

6 files changed

+67
-0
lines changed

app/base/abstracts/Controllers/AdminPage.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ protected function prepareTemplate(): Template
177177
'mediaPasteUrl' => $this->getUrl('crud.app.base.controllers.admin.json.mediapaste'),
178178
'currentLocale' => $this->getCurrentLocale(),
179179
'defaultTinymceOptions' => FORMS_DEFAULT_TINYMCE_OPTIONS,
180+
'driverTourSteps' => $this->getUiTourSteps(),
180181
]
181182
) . ");"
182183
);
@@ -325,6 +326,11 @@ public function getTemplateData(): array
325326
return $this->template_data;
326327
}
327328

329+
public function getUiTourSteps(): array
330+
{
331+
return [];
332+
}
333+
328334
/**
329335
* gets url by route_name and params
330336
*

app/base/controllers/Admin/Dashboard.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,4 +141,26 @@ public function getTemplateData(): array
141141

142142
return $this->template_data;
143143
}
144+
145+
public function getUiTourSteps(): array
146+
{
147+
return [
148+
/*
149+
[
150+
'element' => '#sidebar',
151+
'popover' => [
152+
'title' => __('Menu Sidebar'),
153+
'description' => __('Use the sidebar to navigate through different sections of the admin panel. Click on the icons to expand and access various features and settings.'),
154+
],
155+
],
156+
[
157+
'element' => 'main',
158+
'popover' => [
159+
'title' => __('Quick Access Links'),
160+
'description' => __('Use these links to quickly navigate to different sections of the admin panel for managing content, users, settings, and more.'),
161+
],
162+
],
163+
*/
164+
];
165+
}
144166
}

js/src/admin/admin.dependencies.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
//=include ../../../node_modules/moment/min/moment-with-locales.min.js
55
//=include ./tinymce-plugin-block.js
66
//=include ./tinymce-plugin-aitranslate.js
7+
//=include ../../../node_modules/driver.js/dist/driver.min.js
78
//=include ../i18n.js

js/src/admin/admin.init.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,42 @@
298298
$elem.appAdmin('showTooltip', evt.target, __('Copied!'));
299299
}
300300
});
301+
302+
// show driver.js tour if needed
303+
if ($elem.appAdmin('getSettings').driverTourSteps.length > 0) {
304+
$elem.appAdmin('getUserUiSettings', function(data) {
305+
if (!data.tours || data.tours[$elem.appAdmin('getSettings').currentRoute] != 'shown') {
306+
const driverOptions = {
307+
showProgress: true,
308+
steps: $elem.appAdmin('getSettings').driverTourSteps,
309+
doneBtnText: __('Finish'),
310+
closeBtnText: __('Close'),
311+
nextBtnText: __('Next'),
312+
prevBtnText: __('Previous'),
313+
};
314+
console.log('Starting driver.js tour with options:', driverOptions);
315+
const driverObj = new Driver(driverOptions);
316+
driverObj.setSteps(driverOptions.steps);
317+
driverObj.start();
318+
319+
/*
320+
driverObj.on('complete', function() {
321+
$elem.appAdmin('updateUserUiSettings',
322+
{'tour': {[ $elem.appAdmin('getSettings').currentRoute ]: 'shown'}},
323+
function (data) { }
324+
);
325+
});
326+
327+
driverObj.on('close', function() {
328+
$elem.appAdmin('updateUserUiSettings',
329+
{'tour': {[ $elem.appAdmin('getSettings').currentRoute ]: 'shown'}},
330+
function (data) { }
331+
);
332+
});
333+
*/
334+
}
335+
});
336+
}
301337
});
302338
},
303339
}, allMethods); // Estende con tutti i metodi

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"type": "module",
77
"dependencies": {
88
"dompurify": "^3.3.0",
9+
"driver.js": "^0.9.8",
910
"gallery": "^1.0.2",
1011
"gulp-header": "^2.0.9",
1112
"gulp-include": "^2.4.1",

scss/admin.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
@use "../vendor/components/font-awesome/scss/solid.scss";
1616
@use "../vendor/components/font-awesome/scss/regular.scss";
1717

18+
@use "../node_modules/driver.js/dist/driver.min.css";
1819

1920

2021
@CHARSET "UTF-8";

0 commit comments

Comments
 (0)