Добавляем все файлы
This commit is contained in:
88
main_plugin/siteSettings/siteSettings.js
Executable file
88
main_plugin/siteSettings/siteSettings.js
Executable file
@@ -0,0 +1,88 @@
|
||||
/**
|
||||
* @file siteSettings.js
|
||||
* @brief Основной файл siteSettings, открытие плагинов
|
||||
*/
|
||||
|
||||
addEventListener("load", function() {
|
||||
|
||||
let menu = document.getElementById('siteSettings');
|
||||
let button = document.getElementById('siteSettingsButton');
|
||||
|
||||
menu.onclick = function() {
|
||||
menu.style.display = 'none';
|
||||
};
|
||||
|
||||
function hbodyHref() {
|
||||
let hbody = document.getElementById('hbody');
|
||||
let links = hbody.querySelectorAll('a[href]');
|
||||
links.forEach(link => {
|
||||
let originalHref = link.getAttribute('href');
|
||||
link.removeAttribute('href');
|
||||
link.onclick = function(event) {
|
||||
event.preventDefault();
|
||||
hbodyHrefFunction(originalHref);
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
async function hbodyHrefFunction(href) {
|
||||
if (document.getElementById('basis3')?.style.visibility === "visible" && window.contentIsEdit == true) {
|
||||
messageQueue.push("{{save_data_question}}");
|
||||
try {
|
||||
const userConfirmed = await messageCreateQuestion();
|
||||
if (userConfirmed) {
|
||||
if (window.newPageFunValue == "newPage") {
|
||||
document.getElementById("saveHow").click();
|
||||
messageFunction("{{save_new_page}}");
|
||||
return;
|
||||
} else {
|
||||
await saveChanges();
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("Ошибка: ", error);
|
||||
}
|
||||
}
|
||||
window.location.href = href;
|
||||
}
|
||||
|
||||
hbodyHref();
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Подключает или отключает плагин по ID
|
||||
* @param id ID элемента DOM
|
||||
* @param plugin Название плагина
|
||||
* @param fnName Имя функции инициализации
|
||||
*/
|
||||
async function togglePlugin(id, plugin, fnName) {
|
||||
const exists = !!document.getElementById(id);
|
||||
if (exists) {
|
||||
if (plugin === 'editor') await removePluginDom('pickr');
|
||||
if (typeof window[fnName] === 'function') window[fnName]();
|
||||
await removePluginDom(plugin);
|
||||
} else {
|
||||
await includePlugin(plugin);
|
||||
await new Promise(res => {
|
||||
const i = setInterval(() => {
|
||||
if (typeof window[fnName] === 'function') {
|
||||
clearInterval(i);
|
||||
window[fnName]();
|
||||
res();
|
||||
}
|
||||
});
|
||||
});
|
||||
if (plugin === 'editor') await includePlugin('pickr');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** @brief Переключает редактор */
|
||||
function toggleEditor() { return togglePlugin("basis3", "editor", "basisVis"); }
|
||||
/** @brief Переключает дерево сайта */
|
||||
function toggleSiteTree() { return togglePlugin("treeDiv", "site_tree", "basisVisSiteTree"); }
|
||||
/** @brief Переключает менеджер */
|
||||
function toggleManager() { return togglePlugin("managerDiv", "manager", "basisVisManager"); }
|
||||
Reference in New Issue
Block a user