{% extends "base.html" %} {% block title %}Файлы — Morozovka Portal{% endblock %} {% block main_class %}container{% endblock %} {% block content %} {# ═══════════════════════════════════════════════════════════════════ #} {# ROOT: пространства + файлы без пространства #} {# ═══════════════════════════════════════════════════════════════════ #} {% if view == 'root' %}

📁 Файлохранилище

Пространства, папки, файлы с версиями и правами доступа

{% if can_create_space %} + Пространство {% endif %} 🔍 Поиск

🗂 Пространства {{ spaces|length }}

{% if spaces %}
{% for item in spaces %} {% set sp = item.space %}
{% if sp.project_id %}📦{% else %}📂{% endif %}
{% if sp.visibility == 'public' %}Публичное {% elif sp.visibility == 'internal' %}Внутреннее {% else %}Приватное{% endif %}
{{ sp.name }}
{% if sp.description %}
{{ sp.description }}
{% else %}
Без описания
{% endif %}
📄 {{ item.file_count }} файлов {% if sp.project_id %}🔗 Проект{% endif %}
{% endfor %}
{% else %}
🗂

Пространств пока нет

{% if can_create_space %}Создайте первое — например, «Документы команды» или «Материалы проекта».{% else %}Попросите lead/admin создать пространство.{% endif %}

{% if can_create_space %}Создать пространство{% endif %}
{% endif %}

📎 Без пространства {{ loose_files|length }}

Старые файлы и вложения постов. Можно переместить в пространство кнопкой ↔.

☁️
Перетащите файлы сюда или кликните
Можно выбрать несколько файлов · суммарно до 100 МБ
{% if loose_files %}
{% for f, uploader in loose_files %}
{% if f.original_name|is_image %} {{ f.original_name }} {% else %}
{{ f.original_name|file_icon }}
{% endif %}
{{ f.original_name }}
{{ f.size_bytes|format_size }} · {{ uploader }} · {{ f.uploaded_at|msk_strftime('%d.%m.%Y') }}
⬇ ↔ {% if session.get('role') == 'admin' or f.uploaded_by == session.get('user_id') %}
{% endif %}
{% endfor %}
{% else %}
📎

Файлов без пространства нет

Перетащите файл в зону выше или создайте пространство.

{% endif %}
{% endif %} {# ═══════════════════════════════════════════════════════════════════ #} {# SPACE / FOLDER #} {# ═══════════════════════════════════════════════════════════════════ #} {% if view in ('space', 'folder') %}

{% if view == 'space' %}📂 {{ space.name }}{% else %}📁 {{ folder.name }}{% endif %}

{% if view == 'space' and space.description %}{{ space.description }} {% elif view == 'space' %}Пространство · {{ space.visibility }} {% else %}Папка в «{{ space.name }}»{% endif %}

{% if perms.can_upload %} {% endif %} {% if view == 'space' and perms.can_manage %} 🔐 Права ⚙ Настройки {% endif %} {% if view == 'folder' and perms.can_manage %} 🔐 Права папки {% endif %} 🔍 Поиск {% if view == 'space' and (perms.is_owner or session.get('role') == 'admin') %}
{% endif %} {% if view == 'folder' and perms.can_delete %}
{% endif %}
{% if perms.can_upload %}
☁️
Перетащите файлы сюда или кликните
Загрузится в {% if view == 'folder' %}«{{ folder.name }}»{% else %}корень пространства{% endif %} · суммарно до 100 МБ
{% endif %} {% if folders %}

📁 Папки {{ folders|length }}

{% for fd in folders %}
📁
{{ fd.name }}
{{ fd.created_at|msk_strftime('%d.%m.%Y') }}
{% if perms.can_delete or perms.can_manage %}
{% endif %}
{% endfor %}
{% endif %}

📄 Файлы {{ files|length }}

{% if files %}
{% for f, uploader in files %}
{% if f.original_name|is_image %} {{ f.original_name }} {% else %}
{{ f.original_name|file_icon }}
{% endif %} v{{ f.version }}
{{ f.original_name }}
{% if f.description %}
{{ f.description }}
{% endif %}
{{ f.size_bytes|format_size }} · {{ uploader }} · {{ f.uploaded_at|msk_strftime('%d.%m.%Y') }}
⬇ 🕘 ↔ ✎ {% if perms.can_delete or session.get('role') == 'admin' %}
{% endif %}
{% endfor %}
{% else %}
📄

{% if folders %}В этой папке файлов нет{% else %}Пусто{% endif %}

{% if perms.can_upload %}Перетащите файл в зону выше или кликните по ней.{% else %}Файлы появятся, когда их загрузят.{% endif %}

{% endif %}
{% if perms.can_upload %} {% endif %} {% endif %} {# ═══════════════════════════════════════════════════════════════════ #} {# SEARCH #} {# ═══════════════════════════════════════════════════════════════════ #} {% if view == 'search' %}

🔍 Поиск файлов

{% if space_scope %}в пространстве «{{ space_scope.name }}»{% else %}по всем пространствам{% endif %}

← Все файлы
{% if space_scope %}{% endif %} {% if q %}✕ Сбросить{% endif %}
{% if q %}
Найдено: {{ results|length }}
{% endif %} {% if results %}
{% for f, uploader in results %}
{% if f.original_name|is_image %} {{ f.original_name }} {% else %}
{{ f.original_name|file_icon }}
{% endif %} {% if f.version and f.version > 1 %}v{{ f.version }}{% endif %}
{{ f.original_name }}
{% if f.tags %}
#{{ f.tags }}
{% elif f.description %}
{{ f.description }}
{% endif %}
{{ f.size_bytes|format_size }} · {{ uploader }} · {{ f.uploaded_at|msk_strftime('%d.%m.%Y') }}
⬇ {% if f.space_id %} 🕘 {% endif %}
{% endfor %}
{% elif q %}
🔍

Ничего не найдено

Попробуйте другой запрос или вернитесь к списку.

{% else %}
🔍

Введите запрос

Поиск по имени файла, описанию и тегам.

{% endif %} {% endif %} {% endblock %} {% block scripts %} {% endblock %}