Skip to content

Add possibility to contact form in the footer of gallery & album - #4615

Merged
ildyria merged 5 commits into
masterfrom
contact-everywhere
Aug 15, 2026
Merged

Add possibility to contact form in the footer of gallery & album#4615
ildyria merged 5 commits into
masterfrom
contact-everywhere

Conversation

@ildyria

@ildyria ildyria commented Aug 14, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • New Features
    • Added configurable contact-form visibility for gallery pages, album pages, and logged-in visitors.
    • Contact links now follow global and page-specific settings while respecting access permissions.
    • Added a consistent contact form with configurable fields, validation, consent options, security questions, and success/error feedback.
    • New visibility settings default to disabled.
  • Improvements
    • Gallery and album interfaces now receive the appropriate contact-form availability settings.
  • Documentation
    • Added localized descriptions for contact-form settings across supported languages.
    • Clarified privacy-policy and contact-method setting descriptions.

@ildyria
ildyria requested a review from a team as a code owner August 14, 2026 20:59
@ildyria ildyria added the v8 label Aug 14, 2026
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The change adds three contact-form context settings, enforces access rules, adds a reusable contact form, stores visibility flags in frontend state, and renders context-specific forms in gallery and album footers. It also adds contact-form documentation in 23 localization files.

Changes

Contact form context configuration

Layer / File(s) Summary
Register contact form context settings
database/migrations/2026_08_14_000000_add_contact_form_context_configs.php, app/Http/Middleware/ConfigIntegrity.php, database/migrations/2026_02_28_000006_add_contact_form_configs.php
Adds three disabled settings for gallery, album, and logged-in-user visibility. Registers the keys as standard configuration fields. Corrects two existing descriptions.
Compute initialization visibility
app/Http/Resources/GalleryConfigs/InitConfig.php
Adds gallery and album flags. Computes contact-form availability from global enablement and user access rules.
Apply context-specific footer visibility
resources/js/lychee.d.ts, resources/js/stores/LycheeState.ts, resources/js/v8/components/footers/GalleryFooter.vue, resources/js/v8/views/gallery-panels/Albums.vue, resources/js/v8/components/gallery/albumModule/AlbumPanel.vue
Stores initialization flags and selects the matching contact-form setting for gallery and album footers.
Implement reusable contact form
resources/js/v8/components/forms/contact/ContactForm.vue, resources/js/v8/views/Contact.vue
Adds configuration loading, validation, submission, result states, and reset behavior to ContactForm. Contact.vue delegates form behavior to the component and redirects when contact forms are disabled.
Document contact form settings
lang/*/all_settings.php
Adds contact-form labels and detailed descriptions for supported languages.

Estimated code review effort: 4 (Complex) | ~45 minutes

Merge Risk: 🟡 Moderate · up to 552e5

The contact form can disappear without recovery when its configuration fails to load, and required consent can be submitted as unchecked when custom consent text is empty; the Traditional Chinese administrator guidance also points to the wrong setting. These bounded correctness and usability issues should be fixed or explicitly accepted before merging.

Poem

I’m a rabbit checking forms in the sun,
Gallery and album paths now run.
Settings guide each view,
State carries the flags through,
And contact submissions hop when done.

🚥 Pre-merge checks | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.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: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 135605cc-8ae7-4af5-a034-befcf7239938

📥 Commits

Reviewing files that changed from the base of the PR and between b810668 and 65d5301.

📒 Files selected for processing (31)
  • app/Http/Middleware/ConfigIntegrity.php
  • app/Http/Resources/GalleryConfigs/InitConfig.php
  • database/migrations/2026_08_14_000000_add_contact_form_context_configs.php
  • lang/ar/all_settings.php
  • lang/bg/all_settings.php
  • lang/cz/all_settings.php
  • lang/de/all_settings.php
  • lang/el/all_settings.php
  • lang/en/all_settings.php
  • lang/es/all_settings.php
  • lang/fa/all_settings.php
  • lang/fr/all_settings.php
  • lang/hu/all_settings.php
  • lang/it/all_settings.php
  • lang/ja/all_settings.php
  • lang/nl/all_settings.php
  • lang/no/all_settings.php
  • lang/pl/all_settings.php
  • lang/pt/all_settings.php
  • lang/ru/all_settings.php
  • lang/sk/all_settings.php
  • lang/sv/all_settings.php
  • lang/tr/all_settings.php
  • lang/vi/all_settings.php
  • lang/zh_CN/all_settings.php
  • lang/zh_TW/all_settings.php
  • resources/js/lychee.d.ts
  • resources/js/stores/LycheeState.ts
  • resources/js/v8/components/footers/GalleryFooter.vue
  • resources/js/v8/components/gallery/albumModule/AlbumPanel.vue
  • resources/js/v8/views/gallery-panels/Albums.vue

Comment thread lang/en/all_settings.php Outdated
Comment thread lang/zh_TW/all_settings.php
@codecov

codecov Bot commented Aug 14, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 60.00000% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.09%. Comparing base (3ecb613) to head (ddb483e).

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@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: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e0daa521-1bf5-4a04-9cda-34c99afecf9b

📥 Commits

Reviewing files that changed from the base of the PR and between 5babf1e and 552e582.

📒 Files selected for processing (4)
  • app/Http/Resources/GalleryConfigs/InitConfig.php
  • resources/js/v8/components/footers/GalleryFooter.vue
  • resources/js/v8/components/forms/contact/ContactForm.vue
  • resources/js/v8/views/Contact.vue
🚧 Files skipped from review as they are similar to previous changes (1)
  • app/Http/Resources/GalleryConfigs/InitConfig.php

Comment thread resources/js/v8/components/footers/GalleryFooter.vue
Comment thread resources/js/v8/components/forms/contact/ContactForm.vue
Comment thread resources/js/v8/components/forms/contact/ContactForm.vue
@ildyria
ildyria merged commit 46f3382 into master Aug 15, 2026
50 checks passed
@ildyria
ildyria deleted the contact-everywhere branch August 15, 2026 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant