import { getCookie } from '/static/js/cookies.js'; import { apiRequest } from '/static/js/api.js'; let accessData; let userData; let currentToolboxData = null; async function getCookieData() { accessData = await getCookie('toolbox_access'); userData = await getCookie('toolbox_user'); } async function openTab(event, tabId) { // Убираем активный класс со всех вкладок и кнопок document.querySelectorAll('.tab-nav-btn').forEach(btn => { btn.classList.remove('active'); btn.querySelector('.nav-icon').classList.remove('text-primary'); btn.querySelector('.nav-icon').classList.add('text-muted'); }); document.querySelectorAll('.tab-pane').forEach(pane => { pane.classList.remove('show', 'active'); }); // Добавляем активный класс выбранной вкладке и кнопке event.currentTarget.classList.add('active'); event.currentTarget.querySelector('.nav-icon').classList.remove('text-muted'); event.currentTarget.querySelector('.nav-icon').classList.add('text-primary'); document.getElementById(tabId).classList.add('show', 'active'); await uploadTab(tabId); } function prepareTabs() { let tabsData = { 'toolbox': { title: 'Склад', icon: 'bi-box-seam', description: 'Управление остатками инструмента на складе' }, 'toolkits': { title: 'Инструменты', icon: 'bi-tools', description: 'Каталог инструментов' }, }; if (accessData.available_own_toolbox) { tabsData['requests'] = { title: 'Запросы', icon: 'bi-chat-left-text', description: 'Управление запросами на инструменты' }; } if (accessData.view_services) { tabsData['jurnal_toolkits'] = { title: 'Журнал перемещений', icon: 'bi-journal-text', description: 'Журнал перемещений инструментов' }; } if (accessData.view_requests) { tabsData['jurnal_service'] = { title: 'Сервисный журнал', icon: 'bi-journal-richtext', description: 'Журнал сервисных запросов' }; } if (accessData.users_view) { tabsData['users'] = { title: 'Пользователи', icon: 'bi-people', description: 'Управление пользователями' }; } const tabs = `
${tabData.description}
${typeof value === 'object' ? JSON.stringify(value, null, 4) : value}
${description}
У вас нет доступа ни к одному складу
Для отображения содержимого склада нажмите на одну из кнопок выше
Пожалуйста, подождите...
${toolboxInfo?.description || 'Описание отсутствует'}
| Название | Категория | Количество | ${quantityMonitoring ? 'Статус | ' : ''}Стоимость | ${toolboxOwn === 'Общий склад' ? `Расположение | ` : ''}Последнее изменение |
|---|
Не удалось загрузить содержимое склада
${error.message}