10 Commits
main ... Lite

Author SHA1 Message Date
96cbfc69b5 update manifest for firefox 2024-12-09 23:49:46 +03:00
ec159f33f4 rm 2024-12-09 23:47:11 +03:00
f06d0f97aa small fix 2024-12-09 23:32:20 +03:00
78f7494790 dd 2024-12-09 23:24:01 +03:00
de32f37c97 add furefox support 2024-12-09 23:04:56 +03:00
ca11fb9ac9 refactoring manifest 2024-12-06 16:59:12 +03:00
601a0082a0 refactoring manifest 2024-12-06 16:58:16 +03:00
49c5dd0035 remove categories swapping 2024-12-06 16:49:33 +03:00
70702268fb full refactoring 2024-12-06 03:50:38 +03:00
99e0abf45a remove adding template 2024-12-06 03:09:42 +03:00
5 changed files with 301 additions and 422 deletions

View File

@@ -1,8 +1,8 @@
{
"name": "Izipus",
"name": "Izipus Lite",
"version": "0.3.1",
"manifest_version": 3,
"description": "Lzipus - assists your workflow by simplifying interactions.",
"description": "Lzipus Lite - assists your workflow by simplifying interactions.",
"homepage_url": "https://git.gorshenin.info/Dgors03/Answer_Templates",
"icons": {
"16": "icons/icon16.png",
@@ -11,7 +11,7 @@
},
"action": {
"default_icon": "icons/icon48.png",
"default_title": "Izipus - Quick Actions",
"default_title": "Izipus Lite- Quick Actions",
"default_popup": "src/popup.html"
},
"permissions": [
@@ -23,7 +23,7 @@
],
"browser_specific_settings": {
"gecko": {
"id": "dmitriy.gorshenin1@gmail.com"
"id": "dmitriy.gorshenin@gmail.com"
}
}
}

6
lzipus/src/popup.css Normal file → Executable file
View File

@@ -19,15 +19,15 @@ div.header {
display: flex;
flex-direction: row;
justify-content: center;
padding: 6px;
padding: 10px;
}
h1 {
padding: 6px;
padding: 10px;
}
h3 {
padding: 6px;
padding: 10px;
font-family: Helvetica, Arial, sans-serif; /* Более минималистичный шрифт для категорий */
font-size: 16px; /* Уменьшен размер шрифта */
font-weight: normal; /* Уменьшен вес шрифта для минималистичного вида */

564
lzipus/src/popup.html Normal file → Executable file
View File

@@ -2,283 +2,307 @@
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="popup.css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-4bw+/aepP/YC94hEpVNVgiZdgIC5+VKNBQNGCHeKRQN+PtmoHDEXuppvnDJzQIu9" crossorigin="anonymous">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" rel="stylesheet" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="popup.css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-4bw+/aepP/YC94hEpVNVgiZdgIC5+VKNBQNGCHeKRQN+PtmoHDEXuppvnDJzQIu9" crossorigin="anonymous">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" rel="stylesheet" />
</head>
<body>
<button id="theme-toggle" class="theme-btn">
<i id="theme-icon" class="fa-moon fa-solid"></i>
</button>
<div class="container">
<div class="header">
<h1 class="name fs-4 fw-lighter font-monospace">Твои шаблоны</h1>
<button class="template-add btn btn-primary" type="button"><i class="fa-duotone fa-plus"></i></button>
</div>
<div class="templates" id="template-list">
<div class="category">
<h3 class="font-monospace">
Промежуточные ответы
<i class="fa fa-chevron-down toggle-icon"></i>
<button id="theme-toggle" class="theme-btn">
<i id="theme-icon" class="fa-moon fa-solid"></i>
</button>
</h3>
<div class="category-content">
<span class="template">
<span class="template-title font-monospace">Приняли в работу</span>
<span class="buttons">
<span class="btn btn-light" id="inWorkRu">RU</span>
<span class="btn btn-light" id="inWorkEn">ENG</span>
<!-- <button class="template-edit-existed btn"><i class="fa-solid fa-pen-to-square"></i></button> -->
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Начали диалог с ОС</span>
<span class="buttons">
<span class="btn btn-light" id="dialogueRu">RU</span>
<span class="btn btn-light" id="dialogueEn">ENG</span>
<!-- <button class="template-edit-existed btn"><i class="fa-solid fa-pen-to-square"></i></button> -->
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Работаем над запросом</span>
<span class="buttons">
<span id="weworkRu" class="btn btn-light">RU</span>
<span id="weworkEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Ждем ответа от оператора</span>
<span class="buttons">
<span id="wework2Ru" class="btn btn-light">RU</span>
<span id="wework2En" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Всё еще ждем ответа от оператора</span>
<span class="buttons">
<span id="wework3Ru" class="btn btn-light">RU</span>
<span id="wework3En" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Появилась ли информация?</span>
<span class="buttons">
<span id="theyworkRu" class="btn btn-light">RU</span>
<span id="theyworkEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Появился ли ответ?</span>
<span class="buttons">
<span id="theywork2Ru" class="btn btn-light">RU</span>
<span id="theywork2En" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Появились ли новости?</span>
<span class="buttons">
<span id="theywork3Ru" class="btn btn-light">RU</span>
<span id="theywork3En" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Передали ответственной команде</span>
<span class="buttons">
<span id="fwd2treadRU" class="btn btn-light">RU</span>
<span id="fwd2treadEn" class="btn btn-light">ENG</span>
</span>
</span>
</div>
</div>
<div class="container">
<div class="header">
<h1 class="name fs-4 fw-lighter font-monospace">Твои шаблоны</h1>
</div>
<div id="template-list">
<div class="category">
<h3 class="font-monospace">
Промежуточные ответы
</h3>
<div class="template-group">
<span class="template">
<span class="template-title">Приняли в работу</span>
<span class="buttons">
<span class="btn btn-light" id="inWorkRu">RU</span>
<span class="btn btn-light" id="inWorkEn">ENG</span>
</span>
</span>
<div class="category">
<h3 class="font-monospace">
Запросы партнерам
<i class="fa fa-chevron-down toggle-icon"></i>
</h3>
<div class="category-content">
<span class="template">
<span class="template-title font-monospace">Запрос: Недоставка</span>
<span class="buttons">
<span id="nonDelRu" class="btn btn-light">RU</span>
<span id="nonDelEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Запрос: Фейк доставка</span>
<span class="buttons">
<span id="fakeRu" class="btn btn-light">RU</span>
<span id="fakeEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Запрос: Задержки</span>
<span class="buttons">
<span id="delayRu" class="btn btn-light">RU</span>
<span id="delayEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Разрыв соединения</span>
<span class="buttons">
<span id="conbreRu" class="btn btn-light">RU</span>
<span id="conbreEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Запрос: Корректность HLR</span>
<span class="buttons">
<span id="HLRRu" class="btn btn-light">RU</span>
<span id="HLREn" class="btn btn-light">ENG</span>
</span>
</span>
</div>
</div>
<span class="template">
<span class="template-title">Начали диалог с ОС</span>
<span class="buttons">
<span class="btn btn-light" id="dialogueRu">RU</span>
<span class="btn btn-light" id="dialogueEn">ENG</span>
</span>
</span>
<div class="category">
<h3 class="font-monospace">
Ответы клиентам
<i class="fa fa-chevron-down toggle-icon"></i>
</h3>
<div class="category-content">
<span class="template">
<span class="template-title font-monospace">Не фиксируем на платформе</span>
<span class="buttons">
<span id="fixItRu" class="btn btn-light">RU</span>
<span id="fixItEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Все доставлено</span>
<span class="buttons">
<span id="delivedRu" class="btn btn-light">RU</span>
<span id="delivedEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Проблемы с ТА</span>
<span class="buttons">
<span id="problphRu" class="btn btn-light">RU</span>
<span id="problphEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">501: Не обслуживается</span>
<span class="buttons">
<span id="notservRu" class="btn btn-light">RU</span>
<span id="notservEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">В статусе отправлено</span>
<span class="buttons">
<span id="insentRu" class="btn btn-light">RU</span>
<span id="insentEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">132: Дубликаты</span>
<span class="buttons">
<span id="dubleRu" class="btn btn-light">RU</span>
<span id="dubleEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">508: Недоступен</span>
<span class="buttons">
<span id="unvelbRu" class="btn btn-light">RU</span>
<span id="unvelbEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Корректировка маршрутизации</span>
<span class="buttons">
<span id="corroutRu" class="btn btn-light">RU</span>
<span id="corroutEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Технические неполадки</span>
<span class="buttons">
<span id="tehtroubRu" class="btn btn-light">RU</span>
<span id="tehtroubEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Регистрации сендеров</span>
<span class="buttons">
<span id="senderRu" class="btn btn-light">RU</span>
<span id="senderEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Block list by MSISDN</span>
<span class="buttons">
<span id="blockMsisdnRu" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Общее имя</span>
<span class="buttons">
<span id="commonSenderRu" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Нет ответа</span>
<span class="buttons">
<span id="noResponse" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Провели тестирование</span>
<span class="buttons">
<span id="conductedTesting" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Информация менеджеру</span>
<span class="buttons">
<span id="managerTemplate" class="btn btn-light">RU</span>
</span>
</span>
</div>
</div>
<span class="template">
<span class="template-title">Работаем над запросом</span>
<span class="buttons">
<span id="weworkRu" class="btn btn-light">RU</span>
<span id="weworkEn" class="btn btn-light">ENG</span>
</span>
</span>
<div class="category">
<h3 class="font-monospace">
Даофис
<i class="fa fa-chevron-down toggle-icon"></i>
</h3>
<div class="category-content">
<span class="template">
<span class="template-title font-monospace">Внести номер телефона в аксапту</span>
<span class="buttons">
<span id="daoffice1RU" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Учетка в порядке</span>
<span class="buttons">
<span id="officeRU" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title font-monospace">Нет ответа</span>
<span class="buttons">
<span id="notResponseRU" class="btn btn-light">RU</span>
<span id="notResponseEn" class="btn btn-light">ENG</span>
</span>
</span>
</div>
</div>
</div>
</1--div>
<script src="popup.js"></script>
<span class="template">
<span class="template-title">Ждем ответа от оператора</span>
<span class="buttons">
<span id="wework2Ru" class="btn btn-light">RU</span>
<span id="wework2En" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Всё еще ждем ответа от оператора</span>
<span class="buttons">
<span id="wework3Ru" class="btn btn-light">RU</span>
<span id="wework3En" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Появилась ли информация?</span>
<span class="buttons">
<span id="theyworkRu" class="btn btn-light">RU</span>
<span id="theyworkEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Появился ли ответ?</span>
<span class="buttons">
<span id="theywork2Ru" class="btn btn-light">RU</span>
<span id="theywork2En" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Появились ли новости?</span>
<span class="buttons">
<span id="theywork3Ru" class="btn btn-light">RU</span>
<span id="theywork3En" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Передали ответственной команде</span>
<span class="buttons">
<span id="fwd2treadRU" class="btn btn-light">RU</span>
<span id="fwd2treadEn" class="btn btn-light">ENG</span>
</span>
</span>
</div>
</div>
<div class="category">
<h3 class="font-monospace">
Запросы партнерам
</h3>
<div class="template-group">
<span class="template">
<span class="template-title">Запрос: Недоставка</span>
<span class="buttons">
<span id="nonDelRu" class="btn btn-light">RU</span>
<span id="nonDelEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Запрос: Фейк доставка</span>
<span class="buttons">
<span id="fakeRu" class="btn btn-light">RU</span>
<span id="fakeEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Запрос: Задержки</span>
<span class="buttons">
<span id="delayRu" class="btn btn-light">RU</span>
<span id="delayEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Разрыв соединения</span>
<span class="buttons">
<span id="conbreRu" class="btn btn-light">RU</span>
<span id="conbreEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Запрос: Корректность HLR</span>
<span class="buttons">
<span id="HLRRu" class="btn btn-light">RU</span>
<span id="HLREn" class="btn btn-light">ENG</span>
</span>
</span>
</div>
</div>
<div class="category">
<h3 class="font-monospace">
Ответы клиентам
</h3>
<div class="template-group">
<span class="template">
<span class="template-title">Не фиксируем на платформе</span>
<span class="buttons">
<span id="fixItRu" class="btn btn-light">RU</span>
<span id="fixItEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Все доставлено</span>
<span class="buttons">
<span id="delivedRu" class="btn btn-light">RU</span>
<span id="delivedEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Проблемы с ТА</span>
<span class="buttons">
<span id="problphRu" class="btn btn-light">RU</span>
<span id="problphEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">501: Не обслуживается</span>
<span class="buttons">
<span id="notservRu" class="btn btn-light">RU</span>
<span id="notservEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">В статусе отправлено</span>
<span class="buttons">
<span id="insentRu" class="btn btn-light">RU</span>
<span id="insentEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">132: Дубликаты</span>
<span class="buttons">
<span id="dubleRu" class="btn btn-light">RU</span>
<span id="dubleEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">508: Недоступен</span>
<span class="buttons">
<span id="unvelbRu" class="btn btn-light">RU</span>
<span id="unvelbEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Корректировка маршрутизации</span>
<span class="buttons">
<span id="corroutRu" class="btn btn-light">RU</span>
<span id="corroutEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Технические неполадки</span>
<span class="buttons">
<span id="tehtroubRu" class="btn btn-light">RU</span>
<span id="tehtroubEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Регистрации сендеров</span>
<span class="buttons">
<span id="senderRu" class="btn btn-light">RU</span>
<span id="senderEn" class="btn btn-light">ENG</span>
</span>
</span>
<span class="template">
<span class="template-title">Block list by MSISDN</span>
<span class="buttons">
<span id="blockMsisdnRu" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title">Общее имя</span>
<span class="buttons">
<span id="commonSenderRu" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title">Нет ответа</span>
<span class="buttons">
<span id="noResponse" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title">Провели тестирование</span>
<span class="buttons">
<span id="conductedTesting" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title">Информация менеджеру</span>
<span class="buttons">
<span id="managerTemplate" class="btn btn-light">RU</span>
</span>
</span>
</div>
</div>
<div class="category">
<h3 class="font-monospace">
Даофис
</h3>
<span class="template">
<span class="template-title">Внести номер телефона в аксапту</span>
<span class="buttons">
<span id="daoffice1RU" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title">Учетка в порядке</span>
<span class="buttons">
<span id="officeRU" class="btn btn-light">RU</span>
</span>
</span>
<span class="template">
<span class="template-title">Нет ответа</span>
<span class="buttons">
<span id="notResponseRU" class="btn btn-light">RU</span>
<span id="notResponseEn" class="btn btn-light">ENG</span>
</span>
</span>
</div>
</div>
</div>
<script src="popup.js"></script>
</body>
</html>

145
lzipus/src/popup.js Normal file → Executable file
View File

@@ -74,121 +74,6 @@ Object.keys(clipboardTexts).forEach(buttonId => {
button.addEventListener("click", () => handleClipboardClick(buttonId));
}
});
//---------------------------------------------------Создание новых шаблонов локально---------------------------------------------------------//
const templatesEl = document.querySelector('.templates');
const addBtn = document.querySelector('.template-add');
function createTemplate(title, RUText, ENText) {
const templateId = Date.now();
const templateEl = document.createElement('span');
templateEl.setAttribute('data-template-id', templateId);
templateEl.classList.add('template');
templateEl.innerHTML = `
<span id="template-title" class="font-monospace">${title}</span>
<div class="bigFormochka">
<div class="formochka">
<input id="template-title-input" class="hidden form-control-sm">
<textarea id="template-textareaRU" class="hidden form-control-lg border-2" rows="1" cols="30.5">${RUText}</textarea>
<textarea id="template-textareaEN" class="hidden form-control-lg border-2" rows="1" cols="30.5">${ENText}</textarea>
</div>
<span class="buttonsLong">
<span class="btn btn-light" data-ru-text="${RUText}" id="template-ru-text">RU</span>
<span class="btn btn-light" data-en-text="${ENText}" id="template-en-text">ENG</span>
<button class="template-edit btn"><i class="fa-solid fa-pen-to-square"></i></button>
<button class="template-delete btn"><i class="fa-solid fa-trash"></i></button>
</span>
</div>
`;
const editBtn = templateEl.querySelector('.template-edit');
const deleteBtn = templateEl.querySelector('.template-delete');
const titleEl = templateEl.querySelector('#template-title');
const textRUEl = templateEl.querySelector('#template-ru-text');
const textENEl = templateEl.querySelector('#template-en-text');
const titleInputEl = templateEl.querySelector('#template-title-input');
const textRUInputEl = templateEl.querySelector('#template-textareaRU');
const textENInputEl = templateEl.querySelector('#template-textareaEN');
// Функция для переключения видимости элементов
function toggleVisibility(...elements) {
elements.forEach(el => el.classList.toggle('hidden'));
}
// Обработчик для редактирования
editBtn.addEventListener('click', () => {
toggleVisibility(titleEl, textRUEl, textENEl, titleInputEl, textRUInputEl, textENInputEl);
});
// Обработчик для удаления
deleteBtn.addEventListener('click', () => {
const templates = JSON.parse(localStorage.getItem('templates')) || [];
const templateIndex = templates.findIndex(template => template.title === titleEl.innerText);
if (templateIndex !== -1) {
templates.splice(templateIndex, 1);
localStorage.setItem('templates', JSON.stringify(templates));
}
templateEl.remove();
});
// Обработчики для изменений в полях
const handleChange = (key, valueEl, inputEl) => {
valueEl.innerText = inputEl.value;
navigator.clipboard.writeText(valueEl);
updateTemplateInLocalStorage(title, key, inputEl.value);
};
titleInputEl.addEventListener('change', (e) => handleChange('title', titleEl, e.target));
textRUInputEl.addEventListener('change', (e) => handleChange('RUText', textRUEl, e.target));
textENInputEl.addEventListener('change', (e) => handleChange('ENText', textENEl, e.target));
// Обработчик для копирования текста в буфер обмена
const handleCopyText = (e, key) => {
navigator.clipboard.writeText(e.target.dataset[key])
.then(() => console.log(`Текст ${key} скопирован в буфер обмена`))
.catch(err => console.error(`Не удалось скопировать текст ${key}: `, err));
};
textRUEl.addEventListener('click', (e) => handleCopyText(e, 'ruText'));
textENEl.addEventListener('click', (e) => handleCopyText(e, 'enText'));
return templateEl;
}
function saveTemplateToLocalStorage(title, RUText, ENText) {
const template = { title, RUText, ENText };
const templates = JSON.parse(localStorage.getItem('templates')) || [];
templates.push(template);
localStorage.setItem('templates', JSON.stringify(templates));
}
function updateTemplateInLocalStorage(title, key, value) {
const templates = JSON.parse(localStorage.getItem('templates')) || [];
const templateIndex = templates.findIndex(template => template.title === title);
if (templateIndex !== -1) {
templates[templateIndex][key] = value;
localStorage.setItem('templates', JSON.stringify(templates));
}
}
addBtn.addEventListener('click', () => {
const title = "Title";
const RUText = "RUText";
const ENText = "ENText";
const el = createTemplate(title, RUText, ENText);
templatesEl.appendChild(el);
saveTemplateToLocalStorage(title, RUText, ENText);
});
window.onload = function () {
const templates = JSON.parse(localStorage.getItem('templates')) || [];
templates.forEach(template => {
const el = createTemplate(template.title, template.RUText, template.ENText);
templatesEl.appendChild(el);
});
};
//--------------------------------------------------------------------------------------------------------------------------------//
// Тема
const themeToggle = document.getElementById('theme-toggle');
@@ -223,34 +108,4 @@ if (themeToggle && themeIcon) {
// Применить сохраненную тему при загрузке страницы
applySavedTheme();
// Управление категориями
document.querySelectorAll('.category h3').forEach(function(header) {
const categoryId = header.textContent.trim(); // Уникальный идентификатор категории по названию
const content = header.nextElementSibling; // Содержимое категории
const icon = header.querySelector('.toggle-icon'); // Иконка стрелки
// Проверка состояния категории при загрузке страницы
const isCategoryOpen = localStorage.getItem(categoryId) === 'true';
if (isCategoryOpen) {
content.classList.add('show');
if (icon) {
icon.classList.replace('fa-chevron-down', 'fa-chevron-up');
}
} else {
content.classList.remove('show');
if (icon) {
icon.classList.replace('fa-chevron-up', 'fa-chevron-down');
}
}
// Обработчик клика по заголовку категории
header.addEventListener('click', function() {
content.classList.toggle('show'); // Переключаем видимость категории
icon.classList.toggle('fa-chevron-down');
icon.classList.toggle('fa-chevron-up');
// Сохраняем состояние категории как открытое или закрытое
localStorage.setItem(categoryId, content.classList.contains('show') ? 'true' : 'false');
});
});
});