убрал добавить в публичном режиме
Gitea Actions Demo / build_and_push (push) Successful in 47s Details

This commit is contained in:
artem 2026-09-17 21:45:28 +03:00
parent dd526eb743
commit 746e2c9a3c
3 changed files with 23 additions and 5 deletions

View File

@ -2,11 +2,24 @@
## Task State ## Task State
- task_id: TASK-F1 (PARENT) - task_id: TASK-LINK1
- status: success (CLOSED) - status: success
- parent_task: — - parent_task: —
- summary: **Галерея фото тренировки + загрузка/удаление + маркеры фото на Yandex-карте (components/WorkoutItem.vue).** npm run build exit 0 (vue-tsc + vite), npm run lint exit 0. - summary: **FIX: секция «Ссылки на описание» в components/WorkoutItem.vue — кнопка «Добавить» видна на публичной странице (isPrivate=false), но не работает (модалка скрыта v-if="isPrivate"). Правило: нет ссылки + нет прав → секция полностью скрыта.**
- next task: create a NEW task_id when starting the next feature. - next task: after Coder returns — review and close.
## TASK-LINK1 — TODO (delegate to Coder)
- [x] `src/pages/workouts/components/WorkoutItem.vue`, секция «Ссылки на описание» (~строка 183): добавить `v-if="dzenLink || isPrivate"` на внешний `div.workout-item-params` секции. Внутренняя логика без изменений: `v-if="dzenLink"` → `<a :href="dzenLink">Дзен</a>` + `VaIcon edit v-if="isPrivate"`; `v-else` → «Добавить» (теперь достижим только при isPrivate, т.к. секция скрыта иначе).
- [x] Файлы трогать ДРУГИЕ НЕЛЬЗЯ: только `src/pages/workouts/components/WorkoutItem.vue`.
- [x] Acceptance: `yarn lint` exit 0, `yarn build` exit 0. Поведение: публичная страница без ссылки → секции нет вообще; публичная со ссылкой → видна ссылка «Дзен» без иконки edit; приватная без ссылки → «Добавить» (открывает модалку, PATCH работает); приватная со ссылкой → «Дзен» + иконка edit.
## ✅ CODER SUCCESS REPORT — TASK-LINK1
- Изменен файл (единственный): `src/pages/workouts/components/WorkoutItem.vue` — одна строка: на внешний `div.workout-item-params` секции «Ссылки на описание» (стр. 183) добавлен `v-if="dzenLink || isPrivate"`. Внутренняя логика секции не тронута.
- Поведение после фикса: публичная страница без ссылки → секция полностью скрыта; публичная со ссылкой → только «Дзен» (иконка edit уже была `v-if="isPrivate"`); приватная без ссылки → «Добавить» (модалка `v-if="isPrivate"` доступна, PATCH работает); приватная со ссылкой → «Дзен» + иконка edit.
- `yarn lint`: exit 0 (prettier: файлы без изменений, eslint 0 ошибок).
- `yarn build`: exit 0 (`vue-tsc --noEmit` 0 ошибок, `vite build` ✓ built in 5.41s; warning о chunk >500kB — предсуществующий).
## TASK-F1 — TODO ## TASK-F1 — TODO

View File

@ -114,3 +114,8 @@
- Same file: `#workout-photos` section under the map/short-data container — grid of `<img :src="photo.url">` (auto-fill 160px, 120px cover), «Добавить фото» (`v-if="isPrivate"`, hidden `input[type=file] accept="image/*" multiple`, `axiosAuth.post` multipart field `file`, `Promise.allSettled`, success → push to `photos` + toast, partial failure → error toast, VaButton `:loading`), per-photo «Удалить» (`v-if="isPrivate"`, `axiosAuth.delete` → filter from `photos`, error toast). `isPrivate` added to `defineProps` destructure. Styles: `.workout-photos-*` block. - Same file: `#workout-photos` section under the map/short-data container — grid of `<img :src="photo.url">` (auto-fill 160px, 120px cover), «Добавить фото» (`v-if="isPrivate"`, hidden `input[type=file] accept="image/*" multiple`, `axiosAuth.post` multipart field `file`, `Promise.allSettled`, success → push to `photos` + toast, partial failure → error toast, VaButton `:loading`), per-photo «Удалить» (`v-if="isPrivate"`, `axiosAuth.delete` → filter from `photos`, error toast). `isPrivate` added to `defineProps` destructure. Styles: `.workout-photos-*` block.
- `WorkoutListItem.vue` untouched (per scope). - `WorkoutListItem.vue` untouched (per scope).
- Verified: `npm run build` exit 0 (vue-tsc --noEmit 0 errors, vite `✓ built in 11.71s`; pre-existing >500kB chunk warning), `npm run lint` exit 0 (prettier reformatted the component, eslint 0 errors). - Verified: `npm run build` exit 0 (vue-tsc --noEmit 0 errors, vite `✓ built in 11.71s`; pre-existing >500kB chunk warning), `npm run lint` exit 0 (prettier reformatted the component, eslint 0 errors).
### 2026-09-17 — TASK-LINK1: «Ссылки на описание» скрыта на публичной странице без ссылки (uncommitted)
- `src/pages/workouts/components/WorkoutItem.vue` (единственный файл, 1 строка): на внешний `div.workout-item-params` секции «Ссылки на описание» добавлен `v-if="dzenLink || isPrivate"`. Поведение: публичная без ссылки → секция скрыта; публичная со ссылкой → только «Дзен»; приватная без ссылки → «Добавить» (модалка доступна); приватная со ссылкой → «Дзен» + иконка edit. Внутренняя логика секции не тронута.
- Verified: `yarn lint` exit 0, `yarn build` exit 0 (vue-tsc --noEmit 0 ошибок, vite `✓ built in 5.41s`; pre-existing >500kB chunk warning).

View File

@ -180,7 +180,7 @@
v-on:change="changePublic(workoutItem.is_public)" v-on:change="changePublic(workoutItem.is_public)"
/> />
</div> </div>
<div class="workout-item-params"> <div class="workout-item-params" v-if="dzenLink || isPrivate">
<div class="workout-item-params-name">Ссылки на описание:&nbsp;</div> <div class="workout-item-params-name">Ссылки на описание:&nbsp;</div>
<div v-if="dzenLink"> <div v-if="dzenLink">
<a :href="dzenLink" target="_blank">Дзен</a> <a :href="dzenLink" target="_blank">Дзен</a>