2015-09-06 13:02:50 +00:00
|
|
|
const MESSAGES = {
|
|
|
|
'icon-plus': 'Create Files and Folders',
|
|
|
|
'icon-refresh': 'Refresh File List',
|
|
|
|
'icon-select': 'Select files for batch actions',
|
|
|
|
'icon-more': 'Actions used on selected files such as Copy, Delete, Move, …',
|
|
|
|
'drawer': 'Extra options, tools and links are here',
|
|
|
|
'icon-search': 'Search your storage for a certain file'
|
|
|
|
}
|
|
|
|
|
|
|
|
const DIALOG_HIDE_DELAY = 2000;
|
|
|
|
|
|
|
|
export default function() {
|
|
|
|
let tourRan = localStorage.getItem('tourRan');
|
|
|
|
let wrapper = document.querySelector('#wrapper');
|
|
|
|
let tour = document.querySelector('.tour-dialog');
|
|
|
|
|
|
|
|
let timeout;
|
|
|
|
let shown = 0;
|
|
|
|
|
|
|
|
if (!tourRan) {
|
|
|
|
wrapper.classList.add('tour');
|
|
|
|
|
|
|
|
let items = [...document.querySelectorAll('.tour-item')].sort((a, b) => {
|
|
|
|
return (+a.dataset.index) - (+b.dataset.index);
|
|
|
|
});
|
|
|
|
|
|
|
|
let listeners = [];
|
|
|
|
|
|
|
|
for (let item of items) {
|
2015-09-06 13:08:25 +00:00
|
|
|
|
|
|
|
let firstClass = item.className.slice(0, item.className.indexOf(' '));
|
|
|
|
let ev = firstClass === 'drawer' ? 'touchstart' : 'click';
|
|
|
|
|
|
|
|
item.addEventListener(ev, function listener(e) {
|
2015-09-06 13:02:50 +00:00
|
|
|
e.preventDefault();
|
|
|
|
e.stopPropagation();
|
|
|
|
|
|
|
|
clearTimeout(timeout);
|
2015-09-06 13:08:25 +00:00
|
|
|
listeners.push({item, listener, ev});
|
2015-09-06 13:02:50 +00:00
|
|
|
|
|
|
|
shown++;
|
|
|
|
|
|
|
|
tour.innerHTML = MESSAGES[firstClass];
|
|
|
|
|
|
|
|
timeout = setTimeout(() => {
|
|
|
|
if (shown >= items.length) {
|
|
|
|
wrapper.classList.remove('tour');
|
|
|
|
localStorage.setItem('tourRan', 'true');
|
|
|
|
|
2015-09-06 13:08:25 +00:00
|
|
|
for (let {item, listener, ev} of listeners) {
|
2015-09-06 13:02:50 +00:00
|
|
|
console.log(item, listener);
|
2015-09-06 13:08:25 +00:00
|
|
|
item.removeEventListener(ev, listener);
|
2015-09-06 13:02:50 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}, DIALOG_HIDE_DELAY);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|