Skip to content

Keep image selection and position when many images are selected - #4613

Merged
ildyria merged 2 commits into
LycheeOrg:masterfrom
jphuguet:feat/keep-images-selection
Aug 14, 2026
Merged

Keep image selection and position when many images are selected#4613
ildyria merged 2 commits into
LycheeOrg:masterfrom
jphuguet:feat/keep-images-selection

Conversation

@jphuguet

@jphuguet jphuguet commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

to run actions (tag, copy...)

Select some images, tag them or copy them : the page is not reload when it's done, you keep the very same image selection and can continue to work with it.

Summary by CodeRabbit

  • Bug Fixes
    • Album photo updates now refresh thumbnails in place without disrupting the current view or valid selections.
    • Selections are automatically cleared for photos or albums no longer available.
    • Album tag filters refresh after photo tags are changed.
    • Pressing Escape now clears an active selection before navigating back.
    • Tag, license, and copy actions provide more consistent refresh behavior.
    • Album data can now be refreshed to show the latest photos and tags when needed.

@jphuguet
jphuguet requested a review from a team as a code owner August 14, 2026 14:24
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: cf3d1daa-c168-4f36-a058-d63e20246fe2

📥 Commits

Reviewing files that changed from the base of the PR and between 93c8885 and b030ef6.

📒 Files selected for processing (4)
  • resources/js/v7/views/gallery-panels/Album.vue
  • resources/js/v7/views/gallery-panels/Tag.vue
  • resources/js/v8/views/gallery-panels/Album.vue
  • resources/js/v8/views/gallery-panels/Tag.vue
🚧 Files skipped from review as they are similar to previous changes (4)
  • resources/js/v7/views/gallery-panels/Album.vue
  • resources/js/v8/views/gallery-panels/Album.vue
  • resources/js/v7/views/gallery-panels/Tag.vue
  • resources/js/v8/views/gallery-panels/Tag.vue

📝 Walkthrough

Walkthrough

The change adds forced album-data refreshes, tag revision tracking, loaded-photo reloading, selection pruning, and in-place refresh behavior to v7 and v8 gallery views.

Changes

Album refresh and selection flow

Layer / File(s) Summary
Tag cache and revision updates
resources/js/services/album-service.ts, resources/js/stores/AlbumState.ts, resources/js/v7/components/..., resources/js/v8/components/...
Album photo and tag requests support forced cache bypasses. Successful tag updates increment tags_revision. Tag filters force-refresh when the revision changes.
Loaded photo reload and selection pruning
resources/js/composables/selections/selections.ts, resources/js/stores/AlbumState.ts
The store reloads loaded photo pages with active filters. The selection composable removes IDs that are no longer present.
Gallery panel in-place operations
resources/js/v7/views/gallery-panels/..., resources/js/v8/views/gallery-panels/...
Tag, license, and copy operations refresh loaded photos in place. Panels prune stale selections and clear active selections before back navigation.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Merge Risk: ⚪ Minimal · up to b030e

The image-selection behavior change has no actionable merge-blocking risk remaining and is merge-ready after normal checks and review.

Poem

I’m a rabbit with a refreshed little view,
Tags hop through caches, pages load anew.
Selections stay where the photos remain,
Stale IDs vanish like drops in the rain.
Thump, thump—albums update in place!

🚥 Pre-merge checks | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 01e50573-92ad-4a90-bd1e-e5179ca3e25a

📥 Commits

Reviewing files that changed from the base of the PR and between 142c330 and 93c8885.

📒 Files selected for processing (11)
  • resources/js/composables/selections/selections.ts
  • resources/js/services/album-service.ts
  • resources/js/stores/AlbumState.ts
  • resources/js/v7/components/forms/photo/PhotoTagDialog.vue
  • resources/js/v7/components/gallery/albumModule/AlbumTagFilter.vue
  • resources/js/v7/views/gallery-panels/Album.vue
  • resources/js/v7/views/gallery-panels/Tag.vue
  • resources/js/v8/components/forms/photo/PhotoTagDialog.vue
  • resources/js/v8/components/gallery/albumModule/AlbumTagFilter.vue
  • resources/js/v8/views/gallery-panels/Album.vue
  • resources/js/v8/views/gallery-panels/Tag.vue

Comment thread resources/js/v7/views/gallery-panels/Album.vue Outdated
@ildyria
ildyria merged commit 1ae58bd into LycheeOrg:master Aug 14, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants