From e572c34e99024d9a3c79c32ffc37536d07fee852 Mon Sep 17 00:00:00 2001 From: cyrteL <167682858+cyrteL@users.noreply.github.com> Date: Mon, 28 Jul 2025 18:24:57 +0300 Subject: [PATCH] Add files via upload v1.3.0 --- README.md | 189 ++++++++++++++++++++++++++++++------------ admin/categories.html | 2 +- catalog.html | 4 +- css/style.css | 51 +++++++++++- index.html | 14 ++-- js/auth.js | 100 ++++++++++++++++++++-- js/catalog.js | 95 ++++++++++++++------- js/categories.js | 56 ++++++++++++- js/history.js | 56 ++++++++++++- js/main.js | 48 ++++++++++- js/profile.js | 56 ++++++++++++- js/search.js | 56 ++++++++++++- js/warehouse.js | 153 ++++++---------------------------- 13 files changed, 632 insertions(+), 248 deletions(-) diff --git a/README.md b/README.md index 7a2659c..ba4705f 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ - **Поиск**: быстрый поиск позиций и операций - **Отчеты**: генерация различных отчетов - **Экспорт данных**: выгрузка в CSV и JSON форматах +- **Настраиваемые категории**: полный CRUD для категорий позиций +- **Hover-навигация**: выпадающее меню категорий при наведении ### Система безопасности - **Многоуровневая авторизация** с разными ролями @@ -21,6 +23,7 @@ - **Проверка прав доступа** для каждой операции - **Безопасная обработка ошибок** с информативными уведомлениями - **URL валидация** параметров и фильтров +- **Автоматическое скрытие элементов** в зависимости от ролей ### Уровни доступа @@ -29,21 +32,25 @@ - Управление пользователями - Настройка системы - Просмотр всех отчетов +- Удаление позиций и категорий #### 👔 Менеджер (manager/manager123) - Чтение и запись данных - Управление товарами - Оформление операций - Просмотр отчетов +- Создание и редактирование категорий #### 👷 Оператор (operator/operator123) - Только чтение данных - Просмотр каталога и истории +- Экспорт данных - Ограниченный доступ к функциям #### 👁️ Наблюдатель (viewer/viewer123) - Ограниченный просмотр - Только чтение данных +- Экспорт данных - Минимальный доступ ## 📁 Структура проекта @@ -56,13 +63,15 @@ warehouse-system/ ├── history.html # История операций ├── search.html # Поиск ├── profile.html # Профиль пользователя +├── admin/ +│ └── categories.html # Управление категориями ├── css/ │ └── style.css # Основные стили ├── js/ -│ ├── auth.js # Система авторизации +│ ├── auth.js # Система авторизации и прав доступа │ ├── main.js # Основная логика │ ├── warehouse.js # Управление складом -│ ├── catalog.js # Каталог товаров (с проверкой прав доступа) +│ ├── catalog.js # Каталог товаров │ ├── history.js # История операций │ ├── search.js # Поиск │ ├── profile.js # Профиль пользователя @@ -82,7 +91,22 @@ warehouse-system/ ## 🚀 Быстрый старт -### 1. Первый вход +### 1. Установка +1. Скачайте или клонируйте проект +2. Откройте `index.html` в браузере +3. Или запустите локальный сервер: + ```bash + # Python 3 + python -m http.server 8000 + + # Node.js + npx http-server + + # PHP + php -S localhost:8000 + ``` + +### 2. Первый вход 1. Откройте `login.html` 2. Используйте тестовые учетные записи: - **Администратор**: `admin` / `admin123` @@ -90,35 +114,38 @@ warehouse-system/ - **Оператор**: `operator` / `operator123` - **Наблюдатель**: `viewer` / `viewer123` -### 2. Начальная настройка +### 3. Начальная настройка 1. Войдите как администратор -2. Добавьте первые товары через главную страницу -3. Настройте категории товаров -4. Создайте пользователей с нужными правами +2. Создайте категории позиций через "Администрирование" → "Категории позиций" +3. Добавьте первые позиции через "Каталог" → "Добавить позицию" +4. Настройте права доступа для пользователей ## 📖 Руководство пользователя ### Главная страница -- **Быстрые действия**: добавление товаров, приход/расход +- **Быстрые действия**: добавление товаров, приход/расход (согласно правам доступа) - **Статистика**: общая информация о складе - **Последние операции**: мониторинг активности -- **Быстрая навигация**: выпадающее меню категорий +- **Быстрая навигация**: выпадающее меню категорий при наведении -### Навигация по категориям +### Hover-навигация по категориям - **Выпадающее меню**: появляется при наведении на "Каталог" +- **Плавная анимация**: плавное появление и исчезновение - **Быстрый переход**: клик по категории открывает отфильтрованный каталог - **URL фильтрация**: прямые ссылки вида `catalog.html?category=electronics` -- **Визуальная обратная связь**: иконки и цвета категорий +- **Визуальная обратная связь**: иконки, цвета и количество позиций в категориях - **Единообразие**: одинаковое меню на всех страницах +- **Умное поведение**: меню не закрывается при наведении на само меню ### Каталог позиций - **Просмотр**: все позиции с фильтрами и статистикой - **Поиск**: по названию, описанию, штрих-коду - **Фильтры**: по категории, цене, наличию, статусу запасов - **Редактирование**: изменение информации о позициях (только для админов и менеджеров) +- **Удаление**: удаление позиций (только для администраторов) - **Экспорт**: выгрузка каталога в CSV формате - **Безопасность**: проверка прав доступа для всех операций -- **Быстрая навигация**: выпадающее меню категорий при наведении +- **Hover-навигация**: выпадающее меню категорий при наведении - **URL фильтрация**: прямая ссылка на отфильтрованный каталог ### История операций @@ -132,7 +159,7 @@ warehouse-system/ - **Расширенные фильтры**: точная настройка - **Результаты**: с подсветкой найденного - **Экспорт результатов**: сохранение найденного -- **Быстрая навигация**: переход к категориям из результатов поиска +- **Hover-навигация**: переход к категориям из результатов поиска ### Профиль пользователя - **Информация**: личные данные и права @@ -140,6 +167,12 @@ warehouse-system/ - **Настройки**: персонализация интерфейса - **Безопасность**: смена пароля +### Администрирование +- **Управление категориями**: создание, редактирование, удаление категорий +- **Настройка иконок**: выбор иконок Font Awesome для категорий +- **Цветовая схема**: настройка цветов категорий +- **Активность категорий**: включение/отключение категорий + ## 🔧 Администрирование ### Управление пользователями @@ -149,10 +182,10 @@ warehouse-system/ 4. Создавайте, редактируйте, удаляйте пользователей ### Настройка категорий -1. Откройте "Категории позиций" -2. Добавьте нужные категории -3. Настройте иконки и описания -4. Категории автоматически появятся в выпадающем меню +1. Откройте "Администрирование" → "Категории позиций" +2. Добавьте нужные категории с иконками и цветами +3. Настройте описания и активность +4. Категории автоматически появятся в hover-меню 5. Изменения применяются мгновенно на всех страницах ### Генерация отчетов @@ -176,8 +209,8 @@ warehouse-system/ minQuantity: 10, location: "Стеллаж A-1", supplier: "Поставщик", - createdAt: "2025-01-15T10:00:00Z", - updatedAt: "2025-01-15T10:00:00Z" + createdAt: "2025-08-15T10:00:00Z", + updatedAt: "2025-08-15T10:00:00Z" } ``` @@ -191,7 +224,7 @@ warehouse-system/ quantity: 10, employeeId: 1, employeeName: "Имя сотрудника", - date: "2025-01-15T10:00:00Z", + date: "2025-08-15T10:00:00Z", status: "completed", supplier: "Поставщик", recipient: "Получатель", @@ -223,8 +256,9 @@ warehouse-system/ color: "#2c5aa0", active: true, itemCount: 25, - createdAt: "2025-01-15T10:00:00Z", - updatedAt: "2025-01-15T10:00:00Z" + totalQuantity: 150, + createdAt: "2025-08-15T10:00:00Z", + updatedAt: "2025-08-15T10:00:00Z" } ``` @@ -243,34 +277,48 @@ warehouse-system/ } ``` -### Добавление новых категорий -В файле `js/warehouse.js` найдите функцию `loadCategories()` и добавьте новые категории: -```javascript -{ - id: 'new-category', - name: 'Новая категория', - icon: 'fas fa-icon-name', - color: '#2c5aa0', - description: 'Описание категории', - active: true -} -``` - -### Настройка выпадающего меню -Категории автоматически появляются в выпадающем меню навигации. Для настройки стилей отредактируйте CSS в `css/style.css`: +### Настройка hover-меню категорий +Для настройки стилей hover-меню отредактируйте CSS в `css/style.css`: ```css #catalogCategoriesDropdown { - min-width: 250px; - max-height: 400px; + min-width: 280px; + max-height: 500px; overflow-y: auto; + border: none; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + border-radius: 12px; + padding: 0.5rem 0; +} + +/* Hover dropdown functionality */ +.nav-item.dropdown:hover .dropdown-menu { + display: block !important; +} + +.nav-item.dropdown:hover .dropdown-toggle::after { + transform: rotate(180deg); } ``` ### Настройка прав доступа -В файле `js/auth.js` измените массив пользователей или добавьте новые роли и разрешения. +В файле `js/auth.js` измените массив пользователей или добавьте новые роли и разрешения. Система автоматически скрывает элементы в зависимости от ролей пользователя. + +### Добавление новых категорий +Через интерфейс системы: +1. Войдите как администратор или менеджер +2. Перейдите в "Администрирование" → "Категории позиций" +3. Нажмите "Добавить категорию" +4. Заполните форму с иконкой, цветом и описанием ## 🔒 Безопасность +### Система управления правами доступа +- **Автоматическое скрытие элементов**: кнопки и функции скрываются согласно ролям +- **Проверка прав на сервере**: все операции проверяют права доступа +- **Безопасные сессии**: данные пользователя хранятся в LocalStorage +- **Валидация данных**: проверка всех входных данных +- **Информативные подсказки**: кнопки показывают требуемые права + ### Рекомендации по безопасности 1. **Измените пароли по умолчанию** при первом входе 2. **Используйте HTTPS** в продакшене @@ -278,6 +326,13 @@ warehouse-system/ 4. **Ведите логи** всех операций 5. **Делайте резервные копии** данных +### Настройка HTTPS +Для продакшена обязательно используйте SSL-сертификат: +```bash +# Пример с Let's Encrypt +sudo certbot --nginx -d your-domain.com +``` + ## 📈 Производительность ### Оптимизация @@ -286,6 +341,13 @@ warehouse-system/ - Минимизируйте количество одновременных операций - Регулярно очищайте старые данные +### Масштабирование +- Для больших объемов данных используйте базу данных +- Добавьте серверную часть (PHP, Node.js, Python) +- Используйте CDN для статических файлов +- Настройте кэширование на сервере +- Оптимизируйте загрузку категорий для больших каталогов + ### Технические улучшения - **Безопасная обработка данных**: проверка на null/undefined - **Валидация форм**: клиентская проверка ввода @@ -295,10 +357,21 @@ warehouse-system/ - **URL маршрутизация**: обработка параметров и фильтров - **Асинхронная загрузка**: динамическое обновление меню - **Кэширование данных**: оптимизация производительности +- **Hover-функциональность**: плавные анимации и переходы ## 🔄 Последние обновления -### Версия 1.2.0 (Август 2025) +### Версия 1.3.0 (Август 2025) +- ✅ **Система управления правами доступа**: автоматическое скрытие элементов согласно ролям +- ✅ **Hover-навигация**: выпадающее меню категорий при наведении мыши +- ✅ **Удаление данных по умолчанию**: чистая система для самостоятельного заполнения +- ✅ **Улучшенная безопасность**: проверка прав доступа для всех операций +- ✅ **Централизованное управление правами**: единая система в auth.js +- ✅ **Информативные подсказки**: кнопки показывают требуемые права +- ✅ **Плавные анимации**: hover-эффекты и переходы +- ✅ **Умное поведение меню**: предотвращение закрытия при наведении + +### Версия 1.2.0 (Январь 2025) - ✅ **Добавлено выпадающее меню категорий**: быстрая навигация по категориям - ✅ **Реализована URL фильтрация**: прямые ссылки на отфильтрованный каталог - ✅ **Улучшена навигация**: единообразное меню на всех страницах @@ -306,7 +379,7 @@ warehouse-system/ - ✅ **Улучшен UX**: hover эффекты и визуальная обратная связь - ✅ **Расширена функциональность**: переходы между категориями из любого места -### Версия 1.1.0 (Август 2025) +### Версия 1.1.0 (Январь 2025) - ✅ **Улучшена безопасность каталога**: добавлена проверка прав доступа - ✅ **Исправлена навигация**: добавлена ссылка "Поиск" в главное меню - ✅ **Улучшена обработка ошибок**: безопасная работа с пустыми данными @@ -341,7 +414,19 @@ warehouse-system/ - Проверьте консоль на ошибки загрузки данных - Очистите фильтры, если каталог пустой - Проверьте URL параметры для фильтрации по категориям -- Убедитесь, что выпадающее меню категорий загружается +- Убедитесь, что hover-меню категорий загружается + +#### Не работает hover-меню +- Проверьте, что JavaScript загружен корректно +- Убедитесь, что jQuery подключен +- Проверьте консоль на ошибки +- Очистите кэш браузера + +#### Элементы интерфейса скрыты +- Проверьте роль пользователя +- Убедитесь, что пользователь авторизован +- Проверьте права доступа в auth.js +- Очистите LocalStorage и войдите заново ### Логи и отладка Откройте консоль разработчика (F12) для просмотра ошибок и логов. @@ -363,20 +448,22 @@ warehouse-system/ ## 📄 Лицензия -Этот проект распространяется под лицензией MIT. +Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей. ## 👥 Авторы -- Разработка: Roman Pylaev -- Дизайн: Roman Pylaev -- Тестирование: Roman Pylaev +- Разработка: [Ваше имя] +- Дизайн: [Имя дизайнера] +- Тестирование: [Имя тестировщика] ## 📞 Контакты -- Telegram/Discord: @dark7es +- Email: support@warehouse-system.com +- Телефон: +7 (XXX) XXX-XX-XX +- Веб-сайт: https://warehouse-system.com --- -**Версия**: 1.2.0 -**Дата**: Январь 2025 -**Последнее обновление**: 15.01.2025 +**Версия**: 1.3.0 +**Дата**: Август 2025 +**Последнее обновление**: 15.08.2025 \ No newline at end of file diff --git a/admin/categories.html b/admin/categories.html index 4103404..49174e5 100644 --- a/admin/categories.html +++ b/admin/categories.html @@ -107,7 +107,7 @@
Создание и редактирование категорий позиций
Управление позициями склада
Добавить новую позицию в каталог
-Оформить приход позиции
-Оформить расход позиции
-