pipicar/resources/assets/js/app.js

214 lines
8.3 KiB
JavaScript

require('./bootstrap');
window.BpmnModeler = require('camunda-bpmn-js/lib/camunda-platform/Modeler')
$(document).ready(function () {
$('[data-toggle="tooltip"]').tooltip();
//
// const menuLinks = document.querySelectorAll('.sidebar-platform .sidebar-list li .parent-link');
// const sidebarDiv = document.querySelector('.sidebar-platform');
// menuLinks.forEach((link, index) => {
// link.addEventListener('mouseover', (event) => {
// const newLink = link.cloneNode(true);
// newLink.classList.add('clone-link');
// newLink.classList.add('clone-link' + index);
// sidebarDiv.appendChild(newLink);
// const posTop = link.getBoundingClientRect().top;
// newLink.style.top = posTop + 'px';
// });
// link.addEventListener('mouseout', (event) => {
// document.querySelector('.clone-link' + index).remove();
// });
// });
// const sidebarTreeParents = document.querySelectorAll('.sidebar-platform .tree-content.tree-parent');
// const appDiv = document.getElementById('app');
// sidebarTreeParents.forEach(item => {
// const treeToggleButton = item.previousElementSibling;
// const newTitle = treeToggleButton.cloneNode(true);
// newTitle.classList.add('clone-title');
// item.appendChild(newTitle);
// treeToggleButton.addEventListener('mouseover', (event) => {
// const posTop = treeToggleButton.getBoundingClientRect().top;
// const posBottom = Number(window.innerHeight - treeToggleButton.getBoundingClientRect().bottom);
// item.style.top = null;
// item.style.bottom = null;
// item.style.maxHeight = null;
// item.style.overflow = null;
// if (!appDiv.classList.contains('menu-open')) {
// if (posBottom < 250) {
// item.style.bottom = posBottom + 'px';
// item.style.maxHeight = `calc(100vh - ${posBottom}px)`;
// } else {
// item.style.top = posTop + 50 + 'px';
// newTitle.style.top = posTop + 'px';
// item.style.maxHeight = `calc(100vh - ${posTop + 50}px)`;
// }
// item.style.overflow = 'auto';
// }
// });
// });
//
// const sidebarTreeParentsRemoveStyles = () => {
// sidebarTreeParents.forEach(item => {
// item.style.top = null;
// item.style.bottom = null;
// item.style.maxHeight = null;
// item.style.overflow = null;
// });
// };
const sidebarList = document.querySelectorAll('.sidebar-platform .sidebar-list .li-parent');
const sidebarContent = document.querySelector('.sidebar-platform .sidebar-content');
if(sidebarList.length){
sidebarList.forEach((li, index) => {
const nextLi = li.nextElementSibling;
li.addEventListener('mouseover', () => {
sidebarContent.style.overflow = 'visible';
index === 0 ? li.style.top = '-50px' : li.style.top = `${index * 50}px`;
});
li.addEventListener('mouseout', () => {
sidebarContent.style.overflow = null;
li.style.top = null;
})
});
}
$('.tree-toggle').click(function () {
if($('#app').hasClass('menu-open')){
$(this).parent().children('ul.tree-content').slideToggle(200);
$(this).toggleClass('active');
}
});
$('.menu-trigger').click(function () {
// sidebarTreeParentsRemoveStyles();
axios.get('/ru/set_open_menu').then(resp => {
console.log(resp.data);
});
if ($('#app').hasClass("menu-open")) {
$('#app').removeClass('menu-open');
} else {
$('#app').addClass('menu-open');
}
})
$(".filter-trigger").on("click", function (event) {
event.stopPropagation();
$("#filter_block").slideToggle(200);
$(this).toggleClass('active')
});
// <code-block> save to localStorage history of redirected url
// const locationPath = window.location.pathname + window.location.search;
// const historyContent = document.querySelector('#history-urls');
// const historyListEl = document.querySelector('#history-urls .history-list');
// const clearButton = document.querySelector('#history-urls .clear-local-block');
// const historyUrls = localStorage.getItem('historyUrls');
//
// function addEmpty() {
// const span = document.createElement('span');
// span.classList.add('no-history');
// span.innerHTML = 'История пуста';
// historyListEl.appendChild(span);
// historyContent.classList.add('empty-list');
// }
//
// function deleteChild() {
// let child = historyListEl.lastElementChild;
// while (child) {
// historyListEl.removeChild(child);
// child = historyListEl.lastElementChild;
// }
// }
//
// function textTimeFormatter(time, type) {
// let text = '';
// let lastNum = time;
// if (time > 10) {
// lastNum = Number(time.toString().split('')[1]);
// }
// if (type === 'sec') {
// if (lastNum === 1) text = 'секунду';
// if (lastNum > 1 && lastNum < 5) text = 'секунды';
// if (lastNum >= 5 || lastNum === 0) text = 'секунд';
// }
// if (type === 'min') {
// if (lastNum === 1) text = 'минуту';
// if (lastNum > 1 && lastNum < 5) text = 'минуты';
// if (lastNum >= 5 || lastNum === 0) text = 'минут';
// }
// if (type === 'hour') {
// if (lastNum === 1) text = 'час';
// if (lastNum > 1 && lastNum < 5) text = 'часа';
// if (lastNum >= 5 || lastNum === 0) text = 'часов';
// }
// if (type === 'day') {
// text = '1 дня';
// }
// return text;
// }
//
// let historyUrlsArray = JSON.parse(historyUrls);
// if (historyUrlsArray) {
// historyContent.classList.remove('empty-list');
// historyUrlsArray.forEach(item => {
// let diffInDays = Math.floor((new Date() - new Date(item.date)) / 1000);
// let timeType = '';
// if (diffInDays < 60) {
// timeType = 'sec';
// } else if (diffInDays > 60 && diffInDays < 3600) {
// diffInDays = Math.floor(diffInDays / 60);
// timeType = 'min';
// } else if (diffInDays > 3600 && diffInDays < 86400) {
// diffInDays = Math.floor(diffInDays / 60 / 60);
// timeType = 'hour';
// } else {
// timeType = 'day';
// }
// const timeTypeText = textTimeFormatter(diffInDays, timeType);
// if (timeType === 'day') {
// diffInDays = 'Более';
// }
// const a = document.createElement('a');
// a.href = item.url;
// a.innerHTML = `<span>${item.url}</span><small><b>${item.dateString}</b> <b>${diffInDays} ${timeTypeText} назад</b></small>`;
// historyListEl.prepend(a);
// });
// } else {
// historyUrlsArray = [];
// addEmpty();
// }
//
// if (historyUrlsArray.length > 20) {
// historyUrlsArray.pop();
// }
//
// if (locationPath !== '/' && locationPath !== '/login' && locationPath !== '/register' && locationPath !== '/logout') {
// historyUrlsArray.push({
// url: locationPath,
// date: new Date(),
// dateString: new Date().toLocaleString()
// });
// }
// localStorage.setItem('historyUrls', JSON.stringify(historyUrlsArray));
//
// clearButton.addEventListener('click', () => {
// localStorage.setItem('historyUrls', null);
// deleteChild();
// addEmpty();
// });
// </code-block>
Waves.init();
Waves.attach('.sidebar-list li a');
Waves.attach('.sidebar-list li .tree-toggle');
Waves.attach('.navbar-platform .item-nav');
Waves.attach('.btn');
$('[data-toggle="tooltip"]').tooltip();
});