1683 lines
53 KiB
JavaScript
1683 lines
53 KiB
JavaScript
const getLocale = () => {
|
||
const lan = document.documentElement.lang;
|
||
return lan ? document.documentElement.lang : "ru";
|
||
};
|
||
|
||
function getProduct() {
|
||
var domenName = window.location.hostname;
|
||
|
||
var product;
|
||
|
||
switch (domenName) {
|
||
case "elma-rpa.ai":
|
||
product = {
|
||
name: "rpa",
|
||
id: "33678c11-fea6-4adb-aa39-adc4e8295b53",
|
||
};
|
||
break;
|
||
case "www.elma-bpm.ru":
|
||
product = {
|
||
name: "elma3/4",
|
||
id: "44b97702-146c-414b-9db7-0b09705556ed",
|
||
};
|
||
break;
|
||
default:
|
||
product = {
|
||
name: "elma365",
|
||
id: "3354c78a-720e-4584-a9c6-83f0f1396d22",
|
||
};
|
||
break;
|
||
}
|
||
return product;
|
||
}
|
||
|
||
const insertWordBreaks = (selector) => {
|
||
document.querySelectorAll(selector).forEach((el) => {
|
||
el.innerHTML = el.textContent.replace(/([\/\-=:<>_])/g, "$1<wbr>");
|
||
});
|
||
};
|
||
|
||
insertWordBreaks("code");
|
||
|
||
const addCanonicalUrl = () => {
|
||
const urlMapping = {
|
||
"/ru/help/business_solutions/platform-distribution.html":
|
||
"/ru/help/platform/platform-distribution.html",
|
||
};
|
||
|
||
const listUrl = [
|
||
"/ru/haproxy-postgresql.html",
|
||
"/ru/doc_template.docx",
|
||
"/ru/platform-distribution.html",
|
||
"/ru/help/platform/haproxy-postgresql.html",
|
||
"/ru/help/platform/platform-distribution.html",
|
||
"/ru/help/ecm/doc_template.docx",
|
||
];
|
||
|
||
const currentPath = window.location.pathname;
|
||
const baseUrl = window.location.origin.includes("localhost")
|
||
? window.location.origin
|
||
: "https://elma365.com";
|
||
|
||
if (urlMapping[currentPath]) {
|
||
setCanonicalUrl(baseUrl + urlMapping[currentPath]);
|
||
return;
|
||
}
|
||
|
||
if (listUrl.includes(currentPath)) {
|
||
setCanonicalUrl(baseUrl + currentPath);
|
||
}
|
||
};
|
||
|
||
const setCanonicalUrl = (canonicalUrl) => {
|
||
const canonicalLink = document.createElement("link");
|
||
canonicalLink.href = canonicalUrl;
|
||
canonicalLink.setAttribute("rel", "canonical");
|
||
document.querySelector("head").appendChild(canonicalLink);
|
||
};
|
||
|
||
addCanonicalUrl();
|
||
|
||
const scrollToLink = () => {
|
||
let myHash = window.location.pathname; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if (myHash) {
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
$("html, body").animate({ scrollTop: $(myHash).offset().top }, 100); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
}
|
||
};
|
||
// scrollToLink();
|
||
|
||
function scrollLink() {
|
||
document.addEventListener("DOMContentLoaded", function () {
|
||
const hash = decodeURIComponent(window.location.hash.slice(1)); // убираем '#' и декодим
|
||
if (hash) {
|
||
const target = document.querySelector(`[data-unique="${hash}"]`);
|
||
if (target) {
|
||
target.scrollIntoView({ behavior: "smooth" });
|
||
}
|
||
}
|
||
});
|
||
}
|
||
scrollLink();
|
||
|
||
const createVersionNode = (title, className) => {
|
||
const articleNode = document.querySelector(".topic__title");
|
||
const pVersion = document.createElement("p");
|
||
pVersion.innerText = title;
|
||
pVersion.classList.add(className);
|
||
articleNode.append(pVersion);
|
||
};
|
||
|
||
const { href, pathname } = window.location;
|
||
let locale = getLocale();
|
||
const pathnameArr = pathname.split("/");
|
||
let currentPage = pathnameArr[pathnameArr.length - 1] || null;
|
||
|
||
//<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
const changeHeaderLinks = () => {
|
||
const host = "elma4.sarl.inner.elma365.com";
|
||
const path = "/ru/platform/";
|
||
const headerLinks = document.querySelector(".header__list");
|
||
const footerList = document.querySelector(".footer-mobile__list");
|
||
const appendList = `<li class="submenu__dropdown""><a>BPM</a><ul class="submenu"><li><a href="https://www.elma-bpm.ru/help4/ecm/elma-ecm.html">ECM+</a></li><li><a href="https://www.elma-bpm.ru/help4/crm/elma-crm.html">CRM+</a></li><li><a href=" https://www.elma-bpm.ru/help4/projects/elma-projects.html">Проекты</a></li></ul></li>`;
|
||
|
||
if (window.location.host === host) {
|
||
if (window.location.pathname !== path) {
|
||
headerLinks.insertAdjacentHTML("beforeend", appendList);
|
||
footerList.insertAdjacentHTML("beforeend", appendList);
|
||
}
|
||
}
|
||
};
|
||
//changeHeaderLinks()
|
||
|
||
// standard example
|
||
function findExampleContent(node, container, endString) {
|
||
if (
|
||
node.classList.contains("p_CodeExample") &&
|
||
node.firstElementChild &&
|
||
node.firstElementChild.innerText.toLowerCase().includes("конец") &&
|
||
node.firstElementChild.innerText.toLowerCase().includes(endString)
|
||
) {
|
||
node.remove();
|
||
return;
|
||
}
|
||
const nextElement = node.nextElementSibling;
|
||
container.append(node);
|
||
findExampleContent(nextElement, container, endString);
|
||
}
|
||
|
||
function createNotation(item, notationType, endString) {
|
||
const container = document.createElement("div");
|
||
const exampleTitle = item.nextElementSibling;
|
||
const nextSibling = exampleTitle.nextElementSibling;
|
||
|
||
container.classList.add(notationType);
|
||
exampleTitle.classList.add(notationType + "__title");
|
||
container.append(exampleTitle);
|
||
findExampleContent(nextSibling, container, endString);
|
||
item.after(container);
|
||
item.remove();
|
||
}
|
||
|
||
function getArticleName(url) {
|
||
const arrFromUrl = url.split("/");
|
||
const lastPath = arrFromUrl[arrFromUrl.length - 1];
|
||
return lastPath.split(".")[0];
|
||
}
|
||
|
||
function removeCollapsedClass(node, tagName, className) {
|
||
const closestNode = node.closest(tagName);
|
||
if (!closestNode) {
|
||
return;
|
||
}
|
||
closestNode.classList.remove(className);
|
||
removeCollapsedClass(closestNode.parentElement, tagName, className);
|
||
}
|
||
|
||
function loadBottomLinks() {
|
||
const toc = document.querySelector("#toc");
|
||
const bottomLinks = document.querySelectorAll(".bottom-nav__link");
|
||
if (toc && bottomLinks.length) {
|
||
bottomLinks.forEach((link) => {
|
||
const path = `a[href="${link.innerText}"]`;
|
||
const targetLink = toc.querySelector(path);
|
||
link.innerText = targetLink.innerText;
|
||
});
|
||
}
|
||
}
|
||
|
||
function hideAllSideUls() {
|
||
const hidingMenu = document.querySelectorAll("#toc li ul");
|
||
hidingMenu.forEach((item) => {
|
||
item.classList.add("hide-side-menu-item");
|
||
item.closest("li").classList.add("collapsed");
|
||
});
|
||
}
|
||
|
||
function toggleUlsLinksHandler(menu, link) {
|
||
menu.forEach((link) => link.classList.remove("active-side-menu"));
|
||
link.classList.add("active-side-menu");
|
||
removeCollapsedClass(link, "ul", "hide-side-menu-item");
|
||
if (
|
||
link.nextElementSibling &&
|
||
link.nextElementSibling.classList.contains("hide-side-menu-item")
|
||
) {
|
||
removeCollapsedClass(link, "li", "collapsed");
|
||
link.nextElementSibling.classList.remove("hide-side-menu-item");
|
||
} else {
|
||
removeCollapsedClass(link, "li", "collapsed");
|
||
}
|
||
setTimeout(() => {
|
||
scrollToSelector(".active-side-menu");
|
||
}, 100);
|
||
}
|
||
|
||
function scrollToSelector(selector) {
|
||
// document.body.style.position = 'fixed';
|
||
document.querySelector(".sidebar__wrapper").style.position = "fixed";
|
||
document
|
||
.querySelector(selector)
|
||
.scrollIntoView({ behavior: "smooth", block: "center" });
|
||
document.querySelector(".sidebar__wrapper").style.position = "sticky";
|
||
// document.body.style.position = 'unset';
|
||
}
|
||
|
||
function toggleUlsHandler() {
|
||
const tocNode = document.querySelector("#toc");
|
||
if (tocNode) {
|
||
const linksMenu = tocNode.querySelectorAll("a");
|
||
const activeItem = getArticleName(window.location.pathname);
|
||
linksMenu.forEach((link) => {
|
||
if (getArticleName(link.pathname) === activeItem) {
|
||
toggleUlsLinksHandler(linksMenu, link);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
function prepareContent() {
|
||
const commerceId = document.getElementById("commerce");
|
||
const communityId = document.getElementById("community");
|
||
|
||
href.includes("zoom_highlightsub") &&
|
||
$("body").addClass("--highlight-disabled");
|
||
|
||
//Set document title
|
||
const h1pageTitle = document.querySelector("h1 span.f_Heading1");
|
||
if (h1pageTitle) {
|
||
document.querySelector("title").innerText = h1pageTitle.innerText;
|
||
}
|
||
if (commerceId || communityId) {
|
||
commerceId
|
||
? (commerceId.style.display = "none")
|
||
: (communityId.style.display = "none");
|
||
commerceId
|
||
? createVersionNode("Enterprise", "pCommerce")
|
||
: createVersionNode("Community Edition", "pCommunity");
|
||
}
|
||
hideAllSideUls();
|
||
toggleUlsHandler();
|
||
|
||
const visibleSideBar = (sidebar) => {
|
||
const input = sidebar.querySelector('input[type="checkbox"]');
|
||
let isVisible = false;
|
||
|
||
input.addEventListener("change", () => {
|
||
isVisible = !isVisible;
|
||
|
||
if (isVisible) {
|
||
sidebar.style.width = "auto";
|
||
} else {
|
||
sidebar.style.width = 0;
|
||
}
|
||
});
|
||
};
|
||
//TODO навигация по статье (якори)
|
||
const toc2 = document.getElementById("toc2");
|
||
if (toc2) {
|
||
const toc2Wrapper = document.querySelector(".article__sidebar");
|
||
if (!toc2.dataset.tocInitialized) {
|
||
$("#toc2").tocify({
|
||
context: "section.article__content",
|
||
selectors: "h2, h3",
|
||
extendPage: false,
|
||
});
|
||
toc2.dataset.tocInitialized = "true";
|
||
}
|
||
// $("#toc2").tocify({
|
||
// context: "section.article__content",
|
||
// selectors: "h2, h3",
|
||
// extendPage: false,
|
||
// });
|
||
const points = toc2.querySelectorAll("a");
|
||
if (points.length > 0) {
|
||
points.forEach((point) => {
|
||
if (!point.innerText.trim()) {
|
||
point.remove();
|
||
}
|
||
});
|
||
toc2Wrapper.style.display = "block";
|
||
visibleSideBar(toc2Wrapper);
|
||
// document.querySelector("body").classList.add(".scroll-nav");
|
||
// setTimeout(() => {
|
||
// document.querySelector("body").classList.remove(".scroll-nav");
|
||
// }, 500);
|
||
} else {
|
||
toc2Wrapper.style.display = "none";
|
||
}
|
||
}
|
||
|
||
const images = document.querySelectorAll(".p_Normal > img");
|
||
images.forEach(
|
||
(image) =>
|
||
image.closest("p") && image.closest("p").classList.add("image-container")
|
||
);
|
||
|
||
const breadcrumbs = document.querySelector(".topic__breadcrumbs");
|
||
if (breadcrumbs && breadcrumbs.firstElementChild) {
|
||
breadcrumbs.firstElementChild.childNodes.forEach((node) => {
|
||
if (node.nodeValue && node.nodeValue.includes(">")) {
|
||
node.nodeValue = node.nodeValue.replace(">", "/");
|
||
}
|
||
});
|
||
}
|
||
|
||
// const spans = document.querySelectorAll('span');
|
||
// if (spans.length) {
|
||
// spans.forEach(span => {
|
||
// if (span.innerHTML === ' ') {
|
||
// span.remove();
|
||
// console.log(span.innerHTML);
|
||
// }
|
||
// });
|
||
// }
|
||
|
||
// example exapand
|
||
const examplesToggle = document.querySelectorAll(
|
||
'a[class="dropdown-toggle"]'
|
||
);
|
||
|
||
if (examplesToggle.length) {
|
||
document
|
||
.querySelectorAll(".dropdown-toggle-body")
|
||
.forEach((dropdown) => (dropdown.style.display = "none"));
|
||
|
||
examplesToggle.forEach((example) => {
|
||
const parentP =
|
||
example.parentElement.tagName === "p"
|
||
? example.parentElement
|
||
: example.closest("p");
|
||
const nextSiblingDiv = parentP.nextElementSibling;
|
||
if (nextSiblingDiv && nextSiblingDiv.tagName === "DIV") {
|
||
parentP.classList.add("example");
|
||
const id = nextSiblingDiv.id;
|
||
const button = document.createElement("a");
|
||
const obj = nextSiblingDiv.attributes;
|
||
let expandState = "0";
|
||
parentP.setAttribute("data-state", expandState);
|
||
button.classList.add("btn-example");
|
||
button.innerHTML =
|
||
locale === "ru"
|
||
? '<span class="btn-example__up">Свернуть</span><span class="btn-example__down">Посмотреть полностью</span>'
|
||
: '<span class="btn-example__up">Hide</span><span class="btn-example__down">Show all</span>';
|
||
button.addEventListener("click", (evt) => {
|
||
evt.preventDefault();
|
||
window.HMToggle("toggle", id);
|
||
Object.entries(obj).map((el) => {
|
||
if (el[1].name === "hm.state") {
|
||
expandState = el[1].value;
|
||
parentP.setAttribute("data-state", expandState);
|
||
}
|
||
});
|
||
});
|
||
parentP.append(button);
|
||
example.setAttribute("href", "javascript:void(0)");
|
||
example.after(nextSiblingDiv);
|
||
}
|
||
});
|
||
}
|
||
|
||
const pArray = document.querySelectorAll(".p_Normal");
|
||
if (pArray.length) {
|
||
pArray.forEach((p) => {
|
||
if (p.innerHTML === " ") {
|
||
p.remove();
|
||
}
|
||
});
|
||
}
|
||
|
||
const examples = document.querySelectorAll("p.p_CodeExample");
|
||
if (examples.length) {
|
||
examples.forEach((example) => {
|
||
const childSpan = example.firstElementChild;
|
||
if (
|
||
childSpan &&
|
||
childSpan.innerText.toLowerCase().includes("начало") &&
|
||
childSpan.innerText.toLowerCase().includes("примера")
|
||
) {
|
||
createNotation(example, "example", "примера");
|
||
}
|
||
if (
|
||
childSpan &&
|
||
childSpan.innerText.toLowerCase().includes("начало") &&
|
||
childSpan.innerText.toLowerCase().includes("внимание")
|
||
) {
|
||
createNotation(example, "warning", "внимание");
|
||
}
|
||
if (
|
||
childSpan &&
|
||
childSpan.innerText.toLowerCase().includes("начало") &&
|
||
childSpan.innerText.toLowerCase().includes("примечание")
|
||
) {
|
||
createNotation(example, "comment", "примечание");
|
||
}
|
||
});
|
||
}
|
||
|
||
//small icon
|
||
const icons = document.querySelectorAll(".content img");
|
||
if (icons.length) {
|
||
icons.forEach((icon, idx) => {
|
||
const iconWidth = parseInt(icon.width);
|
||
const floated = icon.style.float;
|
||
floated !== "" && icon.classList.add("img-float--" + floated);
|
||
if (iconWidth < 200) {
|
||
icon.classList.add("small-img");
|
||
const iconHeight = parseInt(icon.height);
|
||
if (
|
||
iconWidth > 70 &&
|
||
iconHeight > 70 &&
|
||
iconHeight < 120 &&
|
||
idx === 0
|
||
) {
|
||
icon.classList.add("float-img");
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
//TODO скрытие хедера
|
||
function stickyHeader() {
|
||
var lastScrollTop = 0;
|
||
var delta = 15;
|
||
$(window)
|
||
.on("scroll", function () {
|
||
var st = $(this).scrollTop();
|
||
if (Math.abs(lastScrollTop - st) <= delta) return;
|
||
if (st > lastScrollTop && lastScrollTop > 0) {
|
||
$("body").addClass("--header-hidden");
|
||
$(".solution-select__list").removeClass("active");
|
||
$(".solution-select").removeClass("active");
|
||
} else {
|
||
$("body").removeClass("--header-hidden");
|
||
$(".solution-select__list").removeClass("active");
|
||
$(".solution-select").removeClass("active");
|
||
}
|
||
//TEST
|
||
// if (document.querySelector("body").classList.contains(".scroll-nav")) {
|
||
// $("body").addClass("--header-hidden");
|
||
// }
|
||
//TEST
|
||
|
||
lastScrollTop = st;
|
||
})
|
||
.trigger("scroll");
|
||
}
|
||
|
||
// заменяет иконку содержания на мобилках-планшет
|
||
|
||
if (screen.width < 901) {
|
||
iconsTableOfContents();
|
||
}
|
||
|
||
$(window).resize(function () {
|
||
if (screen.width < 901) {
|
||
iconsTableOfContents();
|
||
}
|
||
});
|
||
|
||
function iconsTableOfContents() {
|
||
const toggledLi = document.querySelectorAll('li[data-bg*="collapsed"]');
|
||
toggledLi.forEach((li) => li.classList.add("toggled"));
|
||
}
|
||
|
||
$(document).ready(function () {
|
||
prepareContent();
|
||
toggleUlsHandler();
|
||
//TODO вызов скрытия хедера
|
||
// stickyHeader();
|
||
|
||
$("#side-menu").load("index.html #toc", function () {
|
||
//TODO вызавает каждый раз ререндер при изменении href(добавление якоря как например)
|
||
// window.addEventListener("popstate", () => {
|
||
// $("#article").load(`${window.location.href} .article-inner`, function () {
|
||
// loadBottomLinks();
|
||
// prepareContent();
|
||
// });
|
||
// });
|
||
loadBottomLinks();
|
||
hideAllSideUls();
|
||
toggleUlsHandler();
|
||
document.addEventListener("DOMContentLoaded", () => {
|
||
if (document.visibilityState === "visible") {
|
||
hideAllSideUls();
|
||
}
|
||
});
|
||
//toc
|
||
function tryHideSideUlsWhenActive() {
|
||
if (document.visibilityState === "visible") {
|
||
hideAllSideUls();
|
||
} else {
|
||
document.addEventListener(
|
||
"visibilitychange",
|
||
() => {
|
||
if (document.visibilityState === "visible") {
|
||
hideAllSideUls();
|
||
}
|
||
},
|
||
{ once: true }
|
||
);
|
||
}
|
||
}
|
||
|
||
document.addEventListener("DOMContentLoaded", tryHideSideUlsWhenActive);
|
||
|
||
const menuItems = this.querySelectorAll("a");
|
||
menuItems.forEach((item) => {
|
||
item.addEventListener("click", (evt) => {
|
||
evt.preventDefault();
|
||
const url =
|
||
evt.target.nodeName === "A"
|
||
? evt.target.href
|
||
: evt.target.closest("a").href;
|
||
const sideMenu = document.querySelector(".sidebar");
|
||
const htmlTag = document.querySelector("html");
|
||
const toggledLi = document.querySelectorAll('li[data-bg*="collapsed"]');
|
||
|
||
window.scrollTo(0, 0);
|
||
htmlTag.classList.remove("--locked");
|
||
$("body").removeClass("index-page search-page");
|
||
sideMenu.classList.remove("show-side-menu");
|
||
|
||
if (toggledLi.length) {
|
||
toggledLi.forEach((li) => li.classList.add("toggled"));
|
||
}
|
||
|
||
toggleUlsHandler();
|
||
|
||
if (url !== window.location.href) {
|
||
if (!url.includes("javascript:void")) {
|
||
$(".article-inner").empty();
|
||
$("#article").load(`${url} .article-inner`, function () {
|
||
history.pushState({}, null, url);
|
||
//metaDecsription.attr('content', metaDescriptionInitial);
|
||
loadBottomLinks();
|
||
prepareContent();
|
||
});
|
||
} else {
|
||
//TEST
|
||
function isFakeLink(link) {
|
||
if (!link) return false;
|
||
const href = link.getAttribute("href");
|
||
return href === "#" || href === "javascript:void(0);";
|
||
}
|
||
|
||
function isRealLink(link) {
|
||
return !!link && !isFakeLink(link);
|
||
}
|
||
|
||
function findFirstLinkInElement(element) {
|
||
if (!element) return null;
|
||
return element.querySelector("a");
|
||
}
|
||
|
||
function findFirstRealNestedLink(element) {
|
||
if (!element) return null;
|
||
const links = element.querySelectorAll("a");
|
||
for (const link of links) {
|
||
if (isRealLink(link)) return link;
|
||
}
|
||
return null;
|
||
}
|
||
|
||
document.addEventListener("click", (evt) => {
|
||
const _target = evt.target;
|
||
if (_target.nodeName !== "SPAN") return;
|
||
|
||
const _targetLi = _target.closest("li");
|
||
if (!_targetLi) return;
|
||
|
||
const submenu = _targetLi.querySelector("ul");
|
||
const firstLink = findFirstLinkInElement(_targetLi);
|
||
|
||
// заглушки
|
||
if (firstLink && isFakeLink(firstLink)) {
|
||
const nestedReal = findFirstRealNestedLink(submenu);
|
||
if (nestedReal) {
|
||
nestedReal.click();
|
||
// в первом фрагменте, после nestedReal.click();
|
||
setTimeout(() => {
|
||
document.dispatchEvent(new Event("subcategory:update"));
|
||
}, 50);
|
||
}
|
||
}
|
||
|
||
// Поведение для настоящих ссылок
|
||
else if (firstLink && isRealLink(firstLink)) {
|
||
firstLink.click(); // кликаем по нормальной ссылке
|
||
}
|
||
});
|
||
//TEST
|
||
}
|
||
}
|
||
});
|
||
});
|
||
|
||
$.getScript("zoom_pageinfo.js", function () {
|
||
const obj = pagedata.reduce((acc, words) => {
|
||
const searchObj = {
|
||
title: words[1],
|
||
link: words[0],
|
||
};
|
||
return [...acc, searchObj];
|
||
}, []);
|
||
$(".search-form__input").each(function () {
|
||
var _that = $(this);
|
||
var _searchForm = _that.parent();
|
||
_that
|
||
.autocomplete({
|
||
autoFocus: false,
|
||
minLength: 2,
|
||
focus: function (event, ui) {
|
||
itemUiLinkSelected = ui.item.link;
|
||
},
|
||
source: function (request, response) {
|
||
const results = obj.filter(
|
||
(item) =>
|
||
item.title
|
||
.toLowerCase()
|
||
.includes(request.term.toLowerCase()) &&
|
||
document.querySelector(`a[href="${item.link.slice(2)}"]`)
|
||
);
|
||
const sliceResults = results.slice(0, 5);
|
||
sliceResults.map((result) => {
|
||
const aItem = document.querySelector(
|
||
`a[href="${result.link.slice(2)}"]`
|
||
);
|
||
|
||
if (aItem) {
|
||
const parent = aItem.closest("li.heading1");
|
||
result.breadcrumb =
|
||
parent.querySelector("span.heading1").innerText;
|
||
} else {
|
||
}
|
||
});
|
||
|
||
response(sliceResults);
|
||
},
|
||
})
|
||
.autocomplete("instance")._renderItem = function (ul, item) {
|
||
return $("<li>")
|
||
.append(
|
||
`<a class="autocomplete__link" href='${item.link}'>${
|
||
item.title
|
||
} <span class="autocomplete__subtitle">${
|
||
item.breadcrumb || ""
|
||
}</span></a>`
|
||
)
|
||
.appendTo(ul);
|
||
};
|
||
|
||
_searchForm.keydown(function (event) {
|
||
if (event.keyCode == 13 && itemUiLinkSelected !== "") {
|
||
window.location.href = itemUiLinkSelected;
|
||
}
|
||
});
|
||
});
|
||
});
|
||
|
||
$(".glossary-abc__nav a").on("click", function (e) {
|
||
e.preventDefault();
|
||
var target = $(this).attr("href");
|
||
console.log($(this).parent().siblings());
|
||
$(".glossary-abc__nav a").removeClass("--active");
|
||
$(this).addClass("--active");
|
||
$("html, body").animate(
|
||
{
|
||
scrollTop: $(target).offset().top - 150,
|
||
},
|
||
500
|
||
);
|
||
});
|
||
|
||
const name = "Сайт ELMA365";
|
||
const cusLi = document.createElement("li");
|
||
cusLi.classList.add("heading1");
|
||
cusLi.classList.add("heading10");
|
||
const cusA = document.createElement("a");
|
||
cusA.classList.add("heading1");
|
||
cusA.setAttribute("href", "https://elma365.com/ru/");
|
||
cusA.setAttribute("target", "_blank");
|
||
const cusSpan = document.createElement("span");
|
||
cusSpan.classList.add("heading1");
|
||
cusSpan.textContent = name;
|
||
cusA.appendChild(cusSpan);
|
||
cusLi.appendChild(cusA);
|
||
document.querySelector("#toc").prepend(cusLi);
|
||
|
||
// Хлебные крошки на странице поиска
|
||
function findPrevBreadcrumbs(node, breadcrumbs) {
|
||
var breadcrumbsNew =
|
||
breadcrumbs || $('<div class="search-breadcrumbs"></div>');
|
||
var prevParentEl = node.closest("ul") ? node.closest("ul").prev() : null;
|
||
if (!prevParentEl[0] || prevParentEl[0].tagName !== "A") {
|
||
return breadcrumbsNew;
|
||
}
|
||
breadcrumbsNew.prepend('<span class="breadcrumbs-slash"> / </span>');
|
||
breadcrumbsNew.prepend(prevParentEl.clone());
|
||
return findPrevBreadcrumbs(prevParentEl, breadcrumbsNew);
|
||
}
|
||
|
||
$(".result_title a").each(function () {
|
||
var bc = "";
|
||
var currentArticleName = $(this);
|
||
$("#toc a span").each(function () {
|
||
var tocCurrentNode = $(this);
|
||
if (tocCurrentNode.text().trim() === currentArticleName.text().trim()) {
|
||
bc = findPrevBreadcrumbs(tocCurrentNode);
|
||
}
|
||
});
|
||
|
||
bc
|
||
? currentArticleName.parent().after(bc)
|
||
: currentArticleName.parent().parent().remove();
|
||
});
|
||
});
|
||
});
|
||
|
||
//side menu mobile
|
||
const sideMenuIcon = document.querySelector("#side-menu-icon");
|
||
const htmlTag = document.querySelector("html");
|
||
const sideMenu = document.querySelector("#sidebar");
|
||
const closeButton = document.querySelector("#close");
|
||
|
||
if (sideMenuIcon) {
|
||
sideMenuIcon.addEventListener("click", (evt) => {
|
||
evt.preventDefault();
|
||
sideMenu.classList.toggle("show-side-menu");
|
||
htmlTag.classList.toggle("--locked");
|
||
});
|
||
}
|
||
|
||
if (closeButton) {
|
||
closeButton.addEventListener("click", (e) => {
|
||
e.preventDefault();
|
||
sideMenu.classList.remove("show-side-menu");
|
||
htmlTag.classList.remove("--locked");
|
||
});
|
||
}
|
||
|
||
var triggerTitleMegaGuide = false;
|
||
if (getTitleSite() === "Mega Guide" || /hmftsearch.html/i.test(href)) {
|
||
triggerTitleMegaGuide = true;
|
||
}
|
||
|
||
function getTitleSite() {
|
||
if (Boolean(document.querySelector("meta[property='og:title']"))) {
|
||
return document
|
||
.querySelector("meta[property='og:title']")
|
||
.getAttribute("content");
|
||
}
|
||
}
|
||
|
||
// добавляет label, чтобы появились иконки поиска и очискти
|
||
|
||
const currentUrl = window.location.href;
|
||
|
||
if (
|
||
/elma365.com\/ru\/help/i.test(currentUrl) ||
|
||
/elma365.com\/en\/help/i.test(currentUrl) ||
|
||
/elma365\/help\/ru/i.test(currentUrl) ||
|
||
/elma365\/help\/en/i.test(currentUrl) ||
|
||
/([\d+]{3}).(\d).(\d).(\d):([\d+]{4})\/index.html/i.test(currentUrl) ||
|
||
/([\d+]{3}).(\d).(\d).(\d)\/index.html/i.test(currentUrl)
|
||
) {
|
||
window.addEventListener("load", () => {
|
||
const searchIcon = document.querySelector("#search-icon");
|
||
const searchPanel = document.querySelector("#search-panel");
|
||
const searchInput = searchPanel.querySelector('input[type="text"]');
|
||
const heroSearch = document.querySelector(".hero__search");
|
||
if (searchIcon) {
|
||
searchIcon.addEventListener("click", (evt) => {
|
||
evt.preventDefault();
|
||
searchPanel.classList.toggle("show-search-panel");
|
||
setTimeout(() => searchInput.focus(), 500);
|
||
|
||
heroSearch.classList.add("hero__search--active");
|
||
});
|
||
}
|
||
if (searchInput) {
|
||
const label = searchInput.closest("label");
|
||
searchInput.addEventListener("blur", () => {
|
||
searchPanel.classList.remove("show-search-panel");
|
||
heroSearch.classList.remove("hero__search--active");
|
||
if (searchInput.value) {
|
||
label.classList.add("cross");
|
||
} else {
|
||
label.classList.remove("cross");
|
||
}
|
||
});
|
||
searchInput.addEventListener("focus", () => {
|
||
label.classList.add("cross");
|
||
});
|
||
}
|
||
|
||
$(window).scroll(function () {
|
||
if ($(this).scrollTop() > 100) {
|
||
$(".arrow-top").fadeIn();
|
||
} else {
|
||
$(".arrow-top").fadeOut();
|
||
}
|
||
});
|
||
|
||
$(".arrow-top").click(function () {
|
||
$("html, body").animate({ scrollTop: 0 }, 600);
|
||
return false;
|
||
});
|
||
|
||
// очистить поиск
|
||
if (document.querySelector("#reset-search")) {
|
||
const resetButton = document.querySelector("#reset-search");
|
||
resetButton.addEventListener("click", () => {
|
||
searchInput.value = "";
|
||
});
|
||
}
|
||
});
|
||
} else {
|
||
window.addEventListener("load", () => {
|
||
let wrapperSearch = document.querySelector(
|
||
".ya-site-form__search-input-layout-l" + " .ya-site-form__input"
|
||
);
|
||
|
||
wrapperSearch.classList.add("search-form__label");
|
||
|
||
const tagSpanIcons = document.createElement("span");
|
||
tagSpanIcons.className = "search__icon";
|
||
tagSpanIcons.setAttribute("id", "reset-search");
|
||
wrapperSearch.prepend(tagSpanIcons);
|
||
|
||
const searchIcon = document.querySelector("#search-icon");
|
||
const searchPanel = document.querySelector(
|
||
".ya-site-form.ya-site-form_bg_transparent.ya-site-form_inited_yes"
|
||
);
|
||
const searchInput = searchPanel.querySelector('input[type="search"]');
|
||
const heroSearch = document.querySelector(".hero__search");
|
||
if (searchIcon) {
|
||
searchIcon.addEventListener("click", (evt) => {
|
||
evt.preventDefault();
|
||
searchPanel.classList.toggle("show-search-panel");
|
||
setTimeout(() => searchInput.focus(), 500);
|
||
heroSearch.classList.add("hero__search--active");
|
||
});
|
||
}
|
||
if (searchInput) {
|
||
const div = searchInput.closest(".ya-site-form__input");
|
||
searchInput.addEventListener("blur", searchWatch);
|
||
|
||
function searchWatch() {
|
||
searchPanel.classList.remove("show-search-panel");
|
||
heroSearch.classList.remove("hero__search--active");
|
||
if (searchInput.value !== "") {
|
||
div.classList.add("cross");
|
||
} else {
|
||
div.classList.remove("cross");
|
||
}
|
||
}
|
||
searchInput.addEventListener("focus", () => {
|
||
div.classList.add("cross");
|
||
});
|
||
}
|
||
|
||
$(window).scroll(function () {
|
||
if ($(this).scrollTop() > 100) {
|
||
$(".arrow-top").fadeIn();
|
||
} else {
|
||
$(".arrow-top").fadeOut();
|
||
}
|
||
});
|
||
|
||
$(".arrow-top").click(function () {
|
||
$("html, body").animate({ scrollTop: 0 }, 600);
|
||
return false;
|
||
});
|
||
|
||
// очистить поиск
|
||
const resetButton = document.querySelector("#reset-search");
|
||
resetButton.addEventListener("click", () => {
|
||
searchInput.value = "";
|
||
searchInput.focus();
|
||
baseUrl = window.location.href.split("?")[0];
|
||
window.history.pushState("name", "", baseUrl);
|
||
});
|
||
});
|
||
|
||
searchFormHeader();
|
||
}
|
||
|
||
searchFormHeader();
|
||
|
||
function searchFormHeader() {
|
||
$(".search-form").each(function () {
|
||
$(this).on("submit", (evt) => {
|
||
evt.preventDefault();
|
||
evt.stopPropagation();
|
||
var searchStr = evt.target[0].value;
|
||
if (searchStr.trim()) {
|
||
if (
|
||
(/elma365.com\/ru\/help/i.test(window.location.href) ||
|
||
/elma365.com\/en\/help/i.test(window.location.href) ||
|
||
/t-elma365.com/i.test(window.location.href) ||
|
||
/([\d+]{3}).(\d).(\d).(\d)/i.test(window.location.href) ||
|
||
/http:\/\/localhost/i.test(window.location.href)) &&
|
||
!triggerTitleMegaGuide
|
||
) {
|
||
window.location.href = `./search.html?query=${searchStr}`;
|
||
} else {
|
||
window.location.href = `./hmftsearch.html?zoom_query=${searchStr}&zoom_per_page=10&zoom_and=1&zoom_sort=0`;
|
||
}
|
||
}
|
||
});
|
||
});
|
||
}
|
||
|
||
//search string
|
||
|
||
if (
|
||
Boolean(document.querySelector(".ya-site-form__input.search-form__label")) ||
|
||
Boolean(document.querySelector(".searchheading"))
|
||
) {
|
||
const searchTitle = document.querySelector(".searchheading");
|
||
const queryString = window.location.search;
|
||
let currentPageNumber = null;
|
||
|
||
const searchParams = queryString.split("&");
|
||
searchParams.forEach((param) => {
|
||
const paramArr = param.split("=");
|
||
if (paramArr[0] === "zoom_page") {
|
||
currentPageNumber = +paramArr[1];
|
||
}
|
||
});
|
||
const searchWord = decodeURI(searchParams[0].split("=")[1]);
|
||
searchTitle.innerText =
|
||
locale === "ru" ? "Результаты поиска:" : "Search results for:";
|
||
const searchWordP = document.createElement("p");
|
||
searchWordP.classList.add("search-word");
|
||
searchWordP.innerText = searchWord;
|
||
searchTitle.append(searchWordP);
|
||
|
||
let pagesCount = "0";
|
||
const resultPagesCount = document.querySelector(".result_pagescount");
|
||
if (resultPagesCount) {
|
||
pagesCount = parseInt(resultPagesCount.innerText.trim());
|
||
resultPagesCount.remove();
|
||
}
|
||
|
||
function stylePagination(currentPage) {
|
||
switch (currentPage) {
|
||
case "first-page": {
|
||
resultPages[0].textContent = "<< < ";
|
||
const span = document.createElement("span");
|
||
span.classList.add("current-page");
|
||
span.innerText = "1";
|
||
resultPages[0].after(span);
|
||
const aEnd = document.createElement("a");
|
||
const urlEnd = `./hmftsearch.html?zoom_query=${searchWord}&zoom_page=${pagesCount}&zoom_per_page=10&zoom_and=1&zoom_sort=0`;
|
||
aEnd.setAttribute("href", urlEnd);
|
||
aEnd.textContent = " >>";
|
||
// resultPages[resultPages.length - 1].textContent = ' >>';
|
||
resultPages[resultPages.length - 1].after(aEnd);
|
||
resultPages[resultPages.length - 2].remove();
|
||
resultPages[resultPages.length - 2].textContent = " > ";
|
||
break;
|
||
}
|
||
case "last-page": {
|
||
resultPages[resultPages.length - 1].textContent = ` > >>`;
|
||
const span = document.createElement("span");
|
||
span.classList.add("current-page");
|
||
span.innerText = currentPageNumber;
|
||
const aBegin = document.createElement("a");
|
||
const urlBegin = `./hmftsearch.html?zoom_query=${searchWord}&zoom_page=1&zoom_per_page=10&zoom_and=1&zoom_sort=0`;
|
||
aBegin.setAttribute("href", urlBegin);
|
||
aBegin.textContent = "<< ";
|
||
resultPages[resultPages.length - 1].before(span);
|
||
// resultPages[0].textContent = '<< ';
|
||
resultPages[1].before(aBegin);
|
||
resultPages[0].remove();
|
||
resultPages[1].textContent = "< ";
|
||
break;
|
||
}
|
||
case "default-page": {
|
||
const aBegin = document.createElement("a");
|
||
const aEnd = document.createElement("a");
|
||
const urlBegin = `./hmftsearch.html?zoom_query=${searchWord}&zoom_page=1&zoom_per_page=10&zoom_and=1&zoom_sort=0`;
|
||
const urlEnd = `./hmftsearch.html?zoom_query=${searchWord}&zoom_page=${pagesCount}&zoom_per_page=10&zoom_and=1&zoom_sort=0`;
|
||
aBegin.setAttribute("href", urlBegin);
|
||
aBegin.textContent = "<< ";
|
||
aEnd.setAttribute("href", urlEnd);
|
||
aEnd.textContent = " >>";
|
||
resultPages[1].before(aBegin);
|
||
resultPages[0].remove();
|
||
//resultPages[0].textContent = '<< ';
|
||
//resultPages[0] = aBegin;
|
||
resultPages[1].textContent = " < ";
|
||
resultPages[resultPages.length - 2].textContent = " > ";
|
||
//resultPages[resultPages.length - 1].textContent = ' >> ';
|
||
resultPages[resultPages.length - 2].after(aEnd);
|
||
resultPages[resultPages.length - 1].remove();
|
||
break;
|
||
}
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
const resultPagesNode = document.querySelector(".result_pages");
|
||
const resultPages = resultPagesNode
|
||
? document.querySelector(".result_pages").childNodes
|
||
: [];
|
||
|
||
if (resultPages.length) {
|
||
if (
|
||
resultPages[0] &&
|
||
resultPages[0].textContent.trim() !== "Result Pages:"
|
||
) {
|
||
currentPage = "first-page";
|
||
} else if (
|
||
!resultPages[resultPages.length - 2].innerHTML.includes("Next")
|
||
) {
|
||
currentPage = "last-page";
|
||
} else {
|
||
currentPage = "default-page";
|
||
}
|
||
|
||
stylePagination(currentPage);
|
||
|
||
if (resultPages.length) {
|
||
resultPages.forEach((node) => {
|
||
if (+node.textContent.trim() === currentPageNumber) {
|
||
const nextElement = node.nextSibling;
|
||
const span = document.createElement("span");
|
||
span.classList.add("current-page");
|
||
span.innerText = currentPageNumber;
|
||
nextElement.before(span);
|
||
node.remove();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
const summary = document.querySelectorAll(".summary");
|
||
if (summary.length > 0 && locale === "ru") {
|
||
const count = parseInt(summary[0].innerText.trim());
|
||
summary[0].innerText = count
|
||
? `Найдено совпадений: ${count}`
|
||
: (summary.innerText = "Совпадений не найдено");
|
||
}
|
||
}
|
||
|
||
$(window).on("load", () => {
|
||
// правит текст в фильтре результатов поиска
|
||
// $('.b-loader__wrapper').css('opacity', 0);
|
||
function replace() {
|
||
var intervalReplace = setInterval(() => {
|
||
if (
|
||
$("tr td.b-head__r .b-head__found") &&
|
||
$(
|
||
"b-pseudo-link.b-pseudo-link_is-bem_yes.i-bem.b-pseudo-link_js_inited"
|
||
) &&
|
||
$(".b-specification-item_htmlcss_yes")
|
||
) {
|
||
t();
|
||
}
|
||
}, 200);
|
||
|
||
setTimeout(() => {
|
||
clearInterval(intervalReplace);
|
||
// }, 180000);
|
||
}, 10000);
|
||
|
||
function t() {
|
||
if (document.documentElement.lang === "en") {
|
||
textResult("нашёл", "Matches found", "all resourses", 13);
|
||
textFindSection("Search through ");
|
||
}
|
||
|
||
if (document.documentElement.lang === "ru") {
|
||
textResult("нашёл", "Найдено совпадений", "всем ресурсам", 18);
|
||
textFindSection("Искать по ");
|
||
}
|
||
|
||
function textResult(textFound, textFoundRes, textAny, n) {
|
||
var text = $("tr td.b-head__r .b-head__found").text(),
|
||
searchAny = $(
|
||
".b-dropdowna__switcher .b-pseudo-link_is-bem_yes"
|
||
).text();
|
||
var e = text.replace(textFound, textFoundRes),
|
||
t = searchAny.replace("любой", textAny);
|
||
$("tr td.b-head__r .b-head__found").text(
|
||
e.substring(0, n) + ": " + parseInt(text.match(/\d+/))
|
||
);
|
||
$(".b-dropdowna__switcher .b-pseudo-link_is-bem_yes").text(t);
|
||
|
||
if ($("tr td.b-head__r .b-head__found").text().indexOf("найдёт") == 0) {
|
||
$("tr td.b-head__r .b-head__found").css("display", "none");
|
||
}
|
||
|
||
if (
|
||
$(
|
||
"b-pseudo-link.b-pseudo-link_is-bem_yes.i-bem.b-pseudo-link_js_inited"
|
||
)
|
||
.text()
|
||
.indexOf("любой") == 0
|
||
) {
|
||
$("tr td.b-head__r .b-head__found").css("display", "none");
|
||
}
|
||
|
||
// скрывает исходники поиска
|
||
|
||
$(".b-head_type_search-simple").css("opacity", 1);
|
||
}
|
||
|
||
// замена слова Раздел на Искать в
|
||
|
||
function textFindSection(textResSection) {
|
||
var element = document.querySelector(
|
||
".b-specification-item_htmlcss_yes"
|
||
);
|
||
|
||
if (Boolean(element)) {
|
||
for (var i = 0; i < element.childNodes.length; ++i) {
|
||
if (i > 0) {
|
||
if (element.childNodes[0].textContent.indexOf("раздел") === 0) {
|
||
var htmlTag = [];
|
||
htmlTag.push(element.childNodes[i]);
|
||
element.textContent = textResSection;
|
||
htmlTag.forEach((item) => {
|
||
element.appendChild(item);
|
||
});
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
replace();
|
||
|
||
// поиск по url в выводе результатов и подставление перед заголовком результата
|
||
|
||
function addElementSubsection() {
|
||
var intervalAddElementSubsection = setInterval(() => {
|
||
if ($(".b-serp-item") && $(".subsection-title")) {
|
||
e();
|
||
}
|
||
}, 200);
|
||
|
||
setTimeout(() => {
|
||
clearInterval(intervalAddElementSubsection);
|
||
// }, 180000)
|
||
}, 10000);
|
||
|
||
function e() {
|
||
$("yass-li.b-serp-item").each(function (index) {
|
||
// Удаляет 2 элемент у результатов поиска (обычно не ссылка)
|
||
|
||
$(".b-serp-url__item[data-mtime]").remove();
|
||
|
||
// Поиск по url для вывода разделов
|
||
|
||
var textContent = $("yass-li.b-serp-item .b-serp-url__item")[index]
|
||
.textContent;
|
||
switch (true) {
|
||
// ELMA365
|
||
case /elma365.com\/ru\/help/i.test(textContent):
|
||
subsectionTitle("Справка");
|
||
break;
|
||
case /academy.com/i.test(textContent):
|
||
subsectionTitle("ELMA Academy");
|
||
break;
|
||
case /tssdk.elma/i.test(textContent):
|
||
subsectionTitle("TS SDK");
|
||
break;
|
||
case /exchange.elma/i.test(textContent):
|
||
subsectionTitle("ELMA365 Exchange");
|
||
break;
|
||
|
||
// Английская версия
|
||
case /en\/help/i.test(textContent):
|
||
subsectionTitle("Help");
|
||
break;
|
||
|
||
// rpa
|
||
case /rpa.ai\/ru/i.test(textContent):
|
||
subsectionTitle("RPA");
|
||
break;
|
||
|
||
// ELMA4
|
||
case /ru\/help4\/ecm/i.test(textContent):
|
||
subsectionTitle("ECM+");
|
||
break;
|
||
case /ru\/help4\/crm/i.test(textContent):
|
||
subsectionTitle("CRM+");
|
||
break;
|
||
case /ru\/help4\/projects/i.test(textContent):
|
||
subsectionTitle("Проекты");
|
||
break;
|
||
case /elma-bpm.ru\/help4/i.test(textContent):
|
||
subsectionTitle("BPM");
|
||
break;
|
||
case /ru\/KB/i.test(textContent) ||
|
||
/elma-bpm.ru\/…help/i.test(textContent) ||
|
||
/help/i.test(textContent):
|
||
subsectionTitle("База знаний");
|
||
break;
|
||
}
|
||
|
||
function subsectionTitle(text) {
|
||
if ($(".subsection-title")[index]) {
|
||
$(".subsection-title")[index].textContent = text;
|
||
} else {
|
||
var newBlockDiv = document.createElement("div");
|
||
newBlockDiv.classList.add("subsection-title");
|
||
newBlockDiv.textContent = text;
|
||
$(".b-serp-item__title")[index].prepend(newBlockDiv);
|
||
}
|
||
}
|
||
|
||
$(".b-serp-item__title-link")[index].removeAttribute("target");
|
||
});
|
||
}
|
||
}
|
||
|
||
addElementSubsection();
|
||
|
||
// обновляет результат по интервалу при изменении url страницы
|
||
|
||
$(window).bind("hashchange", function () {
|
||
if ($("tr td.b-head__r .b-head__found")) {
|
||
var intervalTimer = setInterval(() => {
|
||
replace();
|
||
addElementSubsection();
|
||
}, 200);
|
||
|
||
// через 3 минуты интервал останавливается (время взято примерно, чтобы успело все прогрузиться)
|
||
setTimeout(() => {
|
||
clearInterval(intervalTimer);
|
||
// }, 180000);
|
||
}, 10000);
|
||
} else {
|
||
replace();
|
||
addElementSubsection();
|
||
}
|
||
});
|
||
});
|
||
|
||
const leadhandler = "https://web.s-elma365.ru";
|
||
|
||
var rootNode = document.createElement("div");
|
||
document.body.appendChild(rootNode);
|
||
var typo = new TypoReporter(
|
||
{
|
||
formId: "1FAIpQLSfXEIXAFoOiHgetf0reIjWrOAw6V7KCZrhAv8VVD6WL7Rs46g", // required, see previous step
|
||
|
||
// Optional example stuff below
|
||
locale: getLocale(), // optional language, defaults to 'en'
|
||
// translations: { // optinal object with translated strings
|
||
// fr: {
|
||
// // see source code for keys to translate
|
||
// },
|
||
// ru: {
|
||
//
|
||
// }
|
||
// },
|
||
offset: 100, // amount of context text to grab from before and after the selection, defaults to 50
|
||
endpointUrl: leadhandler + "/api/baglist/", // optional, defaults to Google Forms
|
||
snippetFieldName: "typo", // optional, if using custom form
|
||
commentFieldName: "comment", // optional, if using custom form
|
||
urlFieldName: "url", // optional, if using custom form
|
||
},
|
||
rootNode
|
||
);
|
||
|
||
$(document).on("focus", ".fill_listener", function () {
|
||
//console.log("test");
|
||
$(this).parent().addClass("focused");
|
||
});
|
||
|
||
$(document).on("blur", ".fill_listener", function () {
|
||
$(this).parent().removeClass("focused");
|
||
});
|
||
$(document).on("change", ".fill_listener", function () {
|
||
if ($(this).val().length) {
|
||
$(this).parent().addClass("filled");
|
||
} else {
|
||
$(this).parent().removeClass("filled");
|
||
}
|
||
});
|
||
|
||
function feedbackSubmit() {
|
||
$("#feedback-form").on("submit", function () {
|
||
var $form = $(this);
|
||
var formData = $form.serializeArray().slice(0, -1);
|
||
var context = {};
|
||
|
||
$(formData).each(function (index, obj) {
|
||
if (obj.name === "useful" && obj.value === "true") {
|
||
context.other = "";
|
||
context.useful = true;
|
||
context.category = [
|
||
{
|
||
code: "",
|
||
name: "",
|
||
},
|
||
];
|
||
}
|
||
|
||
if (obj.name === "useful" && obj.value === "false") {
|
||
$(formData).each(function (index, obj) {
|
||
if (obj.name === "other") {
|
||
context.other = obj.value;
|
||
}
|
||
context.useful = false;
|
||
if (obj.name === "category") {
|
||
context.category = [
|
||
{
|
||
code: obj.value,
|
||
name: $form.find('option[value="' + obj.value + '"]').text(),
|
||
},
|
||
];
|
||
}
|
||
});
|
||
}
|
||
});
|
||
|
||
context.produkt = ["6b55aead-f008-42c7-9186-0806c06d4f2c"];
|
||
context.link = window.location.href;
|
||
var data = {
|
||
context,
|
||
};
|
||
var request = $.ajax({
|
||
type: "POST",
|
||
url: leadhandler + "/api/feedback/create",
|
||
data: JSON.stringify(data),
|
||
})
|
||
.fail(function (response) {
|
||
return response;
|
||
})
|
||
.done(function (response) {
|
||
return response;
|
||
});
|
||
return false;
|
||
});
|
||
}
|
||
|
||
feedbackSubmit();
|
||
|
||
$(document).ready(function () {
|
||
$(".feedback-popup-close").on("click", function () {
|
||
$(this).parent().hide();
|
||
});
|
||
|
||
$("#question__popup, .question-xs").on("submit", function () {
|
||
var $form = $(this),
|
||
textarea = $form.find('textarea[name="help_question"]'),
|
||
//formData = $form.serializeArray().slice(0, -1),
|
||
context = {};
|
||
|
||
context.other = textarea.val();
|
||
context.category = [
|
||
{
|
||
code: "question",
|
||
name: "Задать вопрос",
|
||
},
|
||
];
|
||
context.produkt = ["6b55aead-f008-42c7-9186-0806c06d4f2c"];
|
||
context.link = window.location.href;
|
||
var data = {
|
||
context,
|
||
};
|
||
var request = $.ajax({
|
||
type: "POST",
|
||
url: leadhandler + "/api/feedback/create",
|
||
data: JSON.stringify(data),
|
||
})
|
||
.fail(function (response) {
|
||
return response;
|
||
})
|
||
.done(function () {
|
||
$(".question__popup")
|
||
.parent()
|
||
.find(".question-success")
|
||
.removeClass("hidden");
|
||
setTimeout(() => {
|
||
$(".question-xs").attr("style", "display:none;");
|
||
textarea.val("");
|
||
});
|
||
setTimeout(() => {
|
||
$(".question__popup")
|
||
.parent()
|
||
.find(".question-success")
|
||
.addClass("hidden");
|
||
$(".question").removeClass("active");
|
||
}, 3000);
|
||
});
|
||
return false;
|
||
});
|
||
});
|
||
|
||
function question() {
|
||
$(".mobile-question-popup").on("click", function () {
|
||
const questionPopup = $(this).parent().find(".question-xs");
|
||
|
||
questionPopup.attr("style", "display:block;");
|
||
setTimeout(() => {
|
||
$(this).parent().find('textarea[name="help_question"]').focus();
|
||
}, 200);
|
||
});
|
||
|
||
$(document).mouseup(function (e) {
|
||
let container = $(".question-xs");
|
||
if (!container.is(e.target) && container.has(e.target).length === 0) {
|
||
container.attr("style", "display:none;");
|
||
}
|
||
});
|
||
|
||
$(".question-xs .close").on("click", function () {
|
||
$(this).parent().parent().attr("style", "display:none;");
|
||
});
|
||
|
||
$(".question-xs").on("submit", function () {
|
||
$(this).parent().find(".question-success-xs").removeClass("hidden");
|
||
$(this).removeClass("active");
|
||
setTimeout(() => {
|
||
$(this).parent().find(".question-success-xs").addClass("hidden");
|
||
$(this).addClass("active");
|
||
}, 3000);
|
||
});
|
||
}
|
||
|
||
question();
|
||
|
||
$(document).click(function (e) {
|
||
if ($(e.target).closest(".ReportTypo-popup").length != 0) return false;
|
||
$(".ReportTypo").fadeOut(100);
|
||
});
|
||
|
||
$(document).click(function (e) {
|
||
if ($(e.target).closest(".ReportTypo-popup").length != 0) return false;
|
||
$(".ReportTypo").fadeOut(100);
|
||
});
|
||
|
||
jQuery(function ($) {
|
||
$(document).mouseup(function (e) {
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
var div = $("#feedback-form"); // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (
|
||
!div.is(e.target) && // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
div.has(e.target).length === 0
|
||
) {
|
||
// <20> <20><> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
$(".feedback-form").find("input:checked").removeAttr("checked");
|
||
}
|
||
});
|
||
});
|
||
|
||
function feedback() {
|
||
const yesLabel = document.getElementById("feedback__useful_yes");
|
||
const thxWindow = document.getElementById("feedback__popup_thx");
|
||
const noLabel = document.getElementById("feedback__useful_no");
|
||
const feedbackWhyPopup = document.getElementById("feedback__popup_why");
|
||
const form = document.getElementById("feedback-form");
|
||
const otherInput = document.getElementById("other_reason");
|
||
const otherPopup = document.getElementById("feedback__popup-other");
|
||
const feedbackOtherBtn = document.querySelector(".feedback__other-btn");
|
||
|
||
const inputs = [
|
||
...document.querySelectorAll('#feedback__popup_why input[type="radio"]'),
|
||
];
|
||
const allRadio = inputs.filter((item) => item.id !== "other_reason");
|
||
|
||
allRadio.forEach((item) =>
|
||
item.addEventListener("change", function () {
|
||
$(this).closest("#feedback-form").submit();
|
||
|
||
thxWindow.style.display = "block";
|
||
|
||
setTimeout(() => {
|
||
thxWindow.style.display = "none";
|
||
}, 3000);
|
||
})
|
||
);
|
||
|
||
if (Boolean(otherInput)) {
|
||
otherInput.addEventListener("change", (e) => {
|
||
if (e.target.checked) {
|
||
feedbackWhyPopup.style.display = "none";
|
||
otherPopup.style.display = "block";
|
||
$(".feedback__popup").find('textarea[name="other"]').focus();
|
||
|
||
feedbackOtherBtn.addEventListener("click", function () {
|
||
otherPopup.style.display = "none";
|
||
$("#feedback-success-popup").show();
|
||
setTimeout(() => {
|
||
$("#feedback-success-popup").hide();
|
||
}, 3000);
|
||
});
|
||
} else {
|
||
e.target.checked = "false";
|
||
}
|
||
});
|
||
}
|
||
|
||
if (Boolean(feedbackWhyPopup)) {
|
||
document.addEventListener("click", (e) => {
|
||
const target = e.target;
|
||
feedbackWhyPopup.style.display = "none";
|
||
thxWindow.style.display = "none";
|
||
|
||
if (target.matches("#feedback__useful_no")) {
|
||
feedbackWhyPopup.style.display = "block";
|
||
}
|
||
|
||
if (target.matches("#feedback__useful_yes")) {
|
||
thxWindow.style.display = "block";
|
||
|
||
$("#feedback__useful_yes[type=radio]").on("change", function () {
|
||
$(this).closest("#feedback-form").submit();
|
||
|
||
setTimeout(() => {
|
||
thxWindow.style.display = "none";
|
||
}, 3000);
|
||
});
|
||
}
|
||
|
||
if (!target.closest("#feedback__popup-other")) {
|
||
otherPopup.style.display = "none";
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
feedback();
|
||
|
||
// находит элемент на странице и добавляет id #table - mobile - desktop_size
|
||
|
||
$(window).on("load", function () {
|
||
if (
|
||
/processing-time/i.test(window.location.href) &&
|
||
document.querySelectorAll("main article section div")[1]
|
||
) {
|
||
let el = document.querySelectorAll("main article section div")[1];
|
||
el.setAttribute("id", "table-mobile-desktop_size");
|
||
}
|
||
});
|
||
|
||
if (document.querySelector("#side-menu")) {
|
||
let sideMenu = document.querySelector("#side-menu");
|
||
|
||
sideMenu.addEventListener("click", (e) => {
|
||
let elem = e.target.textContent;
|
||
|
||
if (/обработки обращения/i.test(elem)) {
|
||
var intervalTimer = setInterval(() => {
|
||
if (
|
||
/processing-time/i.test(window.location.href) &&
|
||
document.querySelectorAll("main article section div")[1]
|
||
) {
|
||
let el = document.querySelectorAll("main article section div")[1];
|
||
el.setAttribute("id", "table-mobile-desktop_size");
|
||
}
|
||
}, 200);
|
||
|
||
setTimeout(() => {
|
||
clearInterval(intervalTimer);
|
||
}, 10000);
|
||
}
|
||
});
|
||
}
|
||
|
||
//аккордеон
|
||
|
||
if (document.getElementsByClassName("accordion-btn__show")) {
|
||
var showAccordionBtn = document.querySelector(".accordion-btn__show");
|
||
var elementAccordionHide = document.querySelector(".accordion__hide");
|
||
var linearGradient = document.querySelector(".linear-gradient");
|
||
var heightAccordionElem =
|
||
document.querySelector(".card-stack-50").scrollHeight;
|
||
|
||
var t = false;
|
||
showAccordionBtn.addEventListener("click", () => {
|
||
switch (true) {
|
||
case showAccordionBtn
|
||
.querySelector(".accordion-btn__text")
|
||
.classList.contains("arrow__show"):
|
||
elementAccordionHide.classList.add("accordion__show");
|
||
elementAccordionHide.style.maxHeight = heightAccordionElem + "px";
|
||
elementAccordionHide.classList.remove("accordion__hide");
|
||
showAccordionBtn
|
||
.querySelector(".accordion-btn__text")
|
||
.classList.remove("arrow__show");
|
||
showAccordionBtn
|
||
.querySelector(".accordion-btn__text")
|
||
.classList.add("arrow__hide");
|
||
|
||
setTimeout(() => {
|
||
linearGradient.classList.remove("linear-gradient");
|
||
showAccordionBtn.querySelector("p").textContent = "Свернуть";
|
||
}, 1000);
|
||
break;
|
||
|
||
case showAccordionBtn
|
||
.querySelector(".accordion-btn__text")
|
||
.classList.contains("arrow__hide"):
|
||
elementAccordionHide.classList.add("accordion__hide");
|
||
elementAccordionHide.classList.remove("accordion__show");
|
||
elementAccordionHide.style.maxHeight = "";
|
||
showAccordionBtn
|
||
.querySelector(".accordion-btn__text")
|
||
.classList.add("arrow__show");
|
||
|
||
setTimeout(() => {
|
||
showAccordionBtn
|
||
.querySelector(".accordion-btn__text")
|
||
.classList.remove("arrow__hide");
|
||
linearGradient.classList.add("linear-gradient");
|
||
showAccordionBtn.querySelector("p").textContent = "Показать всё";
|
||
}, 1000);
|
||
break;
|
||
}
|
||
});
|
||
}
|
||
|
||
//end аккордеон
|
||
|
||
//accordion
|
||
|
||
(function () {
|
||
if (document.querySelector(".accordion__items")) {
|
||
var btn = document.querySelectorAll(".accordion__item-question");
|
||
var dehiscentItems = document.querySelectorAll(
|
||
".accordion__item-question-answer"
|
||
);
|
||
|
||
btn.forEach((item, key) => {
|
||
item.addEventListener("click", function () {
|
||
var nextEl = this.nextElementSibling;
|
||
|
||
if (nextEl.style.maxHeight) {
|
||
removeActiveClass();
|
||
} else {
|
||
removeActiveClass();
|
||
this.classList.toggle("accordion__active");
|
||
nextEl.style.maxHeight = nextEl.scrollHeight + "px";
|
||
nextEl.style.marginBottom = "15px";
|
||
}
|
||
});
|
||
});
|
||
|
||
function removeActiveClass() {
|
||
btn.forEach((item) => {
|
||
item.classList.remove("accordion__active");
|
||
});
|
||
|
||
dehiscentItems.forEach((i) => {
|
||
i.style.maxHeight = null;
|
||
i.style.marginBottom = null;
|
||
});
|
||
}
|
||
}
|
||
})();
|
||
|
||
//accordion
|