Добавлен полнофункциональный экспорт/импорт профилей
- Кнопки 'убрать фон' для всех элементов: профиль, группы, ссылки - Кнопка 'сбросить настройки интерфейса' с подтверждением - Django app export_import с полным API для бэкапа и восстановления - Экспорт: создание ZIP архивов с данными профиля и медиафайлами - Импорт: селективная загрузка групп, ссылок, стилей, медиа - Обработка мультипарт форм, Django транзакции, управление ошибками - Полное тестирование: экспорт → импорт данных между пользователями - API эндпоинты: /api/export/, /api/import/, превью архивов - Готовая система для производственного развертывания
This commit is contained in:
@@ -464,13 +464,23 @@ export function CustomizationPanel({ isOpen, onClose, onSettingsUpdate }: Custom
|
||||
{settings.background_image_url && (
|
||||
<div className="mb-2">
|
||||
<label className="form-label small">Текущее изображение:</label>
|
||||
<div>
|
||||
<div className="d-flex align-items-center gap-2">
|
||||
<img
|
||||
src={settings.background_image_url}
|
||||
alt="Текущий фон"
|
||||
className="img-thumbnail"
|
||||
style={{ maxWidth: '200px', maxHeight: '100px', objectFit: 'cover' }}
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-outline-danger btn-sm"
|
||||
onClick={() => {
|
||||
handleChange('background_image_url', '')
|
||||
}}
|
||||
title="Убрать фон"
|
||||
>
|
||||
<i className="bi bi-trash"></i> Убрать фон
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
@@ -1019,6 +1029,49 @@ export function CustomizationPanel({ isOpen, onClose, onSettingsUpdate }: Custom
|
||||
>
|
||||
Отмена
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-outline-warning"
|
||||
onClick={() => {
|
||||
if (confirm('Вы уверены, что хотите сбросить все настройки интерфейса к значениям по умолчанию? Это действие нельзя отменить.')) {
|
||||
// Сброс к дефолтным настройкам
|
||||
const defaultSettings = {
|
||||
theme_color: '#007bff',
|
||||
background_image_url: '',
|
||||
dashboard_layout: 'list' as const,
|
||||
groups_default_expanded: true,
|
||||
show_group_icons: true,
|
||||
show_link_icons: true,
|
||||
dashboard_background_color: '#ffffff',
|
||||
font_family: 'Inter, sans-serif',
|
||||
custom_css: '',
|
||||
group_text_color: '',
|
||||
link_text_color: '',
|
||||
header_text_color: '',
|
||||
cover_overlay_enabled: false,
|
||||
cover_overlay_color: '#000000',
|
||||
cover_overlay_opacity: 0.3,
|
||||
group_overlay_enabled: false,
|
||||
group_overlay_color: '#000000',
|
||||
group_overlay_opacity: 0.3,
|
||||
show_groups_title: true,
|
||||
group_description_text_color: '',
|
||||
body_font_family: 'Inter, sans-serif',
|
||||
heading_font_family: 'Inter, sans-serif',
|
||||
link_overlay_enabled: false,
|
||||
link_overlay_color: '#000000',
|
||||
link_overlay_opacity: 0.3
|
||||
}
|
||||
setSettings(defaultSettings)
|
||||
onSettingsUpdate(defaultSettings)
|
||||
}
|
||||
}}
|
||||
disabled={loading}
|
||||
title="Сбросить все настройки к значениям по умолчанию"
|
||||
>
|
||||
<i className="bi bi-arrow-counterclockwise me-2"></i>
|
||||
Сбросить настройки
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn-primary"
|
||||
|
||||
Reference in New Issue
Block a user