Repository navigation
DEV: возврат стандартной обложки проекта - #350
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Редактор больше не удаляет обложку через
/files/. Для пользовательской обложки доступно «Вернуть стандартную обложку»: project-scoped POST возвращает стандартный URL, форма сразу обновляется и остаётся валидной. У стандартной обложки нет корзины/сброса, загрузка замены сохранена.Base DEV:
c0bbdd7a97f2575864e3d4d8c7d88e927b61bd47Head:
688e4a8ed2bed0d614a6cb027ec291ae25cdaaf2Зависимость: backend Draft PROCOLLAB-github/api#743, head
d35f9edc5536067db178c3fd1d6a21e13ce4fd9f. Для будущего DEV нужен backend раньше Angular.Причина и контракт
Подтверждённый пользователем DEV 403 воспроизведён локально на исходном Angular: стандартный UserFile другого владельца → DELETE /files → 403. Удаление собственного файла оставляло пустой обязательный control. Права файлов и Validators.required ослаблять нельзя.
POST /projects/{Project.id}/reset-cover/→ 200{cover_image_address, is_default_cover: true}; ID берётся из инициализированного Project, не из связи с программой.is_default_cover, существующий interceptor преобразует его вisDefaultCover; Angular не угадывает тип по URL/403. Пока флаг неизвестен, сброс недоступен.default_cover_unavailable, старый URL и понятная ошибка в UI.Уточнение UI
Действие сброса теперь находится внутри рамки обложки: компактная кнопка с подсказкой и aria-label, без текста под блоком. В браузере при 1280 × 720 геометрия обложки, презентации и соседних полей точно совпала с исходной страницей: обложка 319,421875 × 120 px. Custom, pending и default не меняют размеры или координаты. Сброс с клавиатуры проверен. Актуальный скриншот.
После правки: 37/37 targeted, lint:ts, scoped Prettier/Stylelint, build:pr и diff check прошли. Полный suite повторно для HTML/SCSS не запускался; результаты исходной реализации ниже.
Проверки первоначальной реализации
--pool=forks --maxWorkers=4 --minWorkers=1: 121/121, 11 файлов, exit 0.window is not defined), без подавления ошибок.npm run test:ci: локальный NG0401 до выполнения тестов, exit 1. Та же ошибка воспроизведена на исходном неизменённом дереве. Успешный forks suite не выдаётся за успешный test:ci. Настройки тестов/CI не менялись.npm run lint:ts, scoped Prettier, scoped Stylelint,npm run build:pr,git diff --check: успешно; существующие предупреждения ESLint/Sass.Локальная интеграция и ограничения
Настоящие Angular + Django + JWT + отдельная синтетическая PostgreSQL БД. Только транспорт внешнего CDN заменён локальным файловым хранилищем. Выполнены A–F: default без удаления; upload/save/reopen; reset/GET/reopen; чужой файл сохранён; отсутствие default → 409 без потери custom; CDN fail → standard остаётся. Дополнительно проверен переход между шагами во время запроса. Кейс программной связи и обычное сохранение сохранились.
Новая UI-цепочка не отправляла DELETE /files и /projects/NaN/, /0/, /null/; 5xx не было. Ожидаемые 409 и 401 обновления локальной сессии не скрыты. Presentation deletion проверен тестами; повторного удаления презентации в браузере этой задачи не выполнялось. Живой DEV, реальные пользовательские данные и настоящий Selectel не использовались.
Полный отчёт, команды и ограничения · Сетевые ответы/GET readback · Скриншоты
Только Draft PR → dev. Merge/deploy не выполнять.