photoprism/assets
Ömer Duran 6dc0acac13
Settings: Reorganize UI and add an Accessibility section #848 #799 #5429
* Frontend: Add settings for albums, favorites, folders, and media features

* Frontend: Enhance download settings for files and albums #848

* Frontend: Enhance download settings for files and albums #848

* Frontend: Update album download settings to restrict access to super admins

* Frontend: Add album sorting options to settings for super admins

* Frontend: Update download settings visibility

* Frontend: Refine download settings access control for user roles

* Tests: Add album, folder, moment, state, and month order selection options to page-model

* Frontend: Update access control for super admins in settings to include scope check

* Tests: Add new tests for download name and album order settings persistence

* Tests: Implement new tests for default album sort order persistence in settings

* Frontend: Move default album order settings

* Frontend: Add zoom accessibility option in settings #799

* Frontend: Update download name from "Share Identifier" to "Share Friendly" and refine hints for download options in settings

* Tests: Add new acceptance test for disabling album downloads while allowing file downloads in settings

* Frontend: Improve download options layout and hints

* Frontend: Refactor download options condition in settings page

* Frontend: Implement native zoom control in lightbox component

* Settings: Add Collections tab and move Services to its own page #848 #5429

- Add a super-admin Collections tab after Content holding the album
  Download and Sort Order settings; remove those cards from Content.
- Move Services from a settings tab to a dedicated page
  (page/services.vue) with a search toolbar and a Reload / Learn More
  action menu; link it from the navigation settings menu.
- Implement server-side services search (acc_name filter) with tests.
- De-duplicate the picture sort-order options into a shared
  SortOrderOptions builder in options.js.
- Update acceptance/unit tests and page models to match.

* Frontend: Regenerate translation catalogs #848 #5429

Ran `make gettext-extract` to pick up the new settings strings
(Collections, Features, Disable Downloads, and related messages) so
Weblate can translate them. Existing translations are preserved.

* Frontend: Move lightbox viewport-zoom handling into the view helper

- Move the viewport pinch-zoom lock/restore (disableNativeZoom /
  restoreNativeZoom + savedViewportContent) from lightbox.vue onto the
  View singleton in common/view.js.
- Drive it passively from View.apply() via a disableViewportZoom flag in
  the PLightbox case, alongside hideScrollbar / disableScrolling /
  disableNavigationGestures; lightbox.vue no longer references zoom.
- Make save/restore idempotent and extract the viewport constants.
- Cover the helpers and the apply() wiring in view.test.js.

* Settings: Add Accessibility section to General with Reduce Motion #848 #5429

- Move the page-zoom checkbox out of the feature-flags grid into a
  dedicated Accessibility card (super-admin only) with four toggles:
  Open on Hover, Reduce Motion, Hide Scrollbar, and Allow Page Zoom.
- Add a UI.ReduceMotion flag (defaults false) that toggles an
  html.reduce-motion class via config.setReduceMotion and suppresses map
  fly-to animations non-destructively (util.mapAnimateDuration).
- Make Open on Hover apply live by reading shouldOpenOnHover() through a
  reactive computed in the action/auth/lightbox menus; Zoom and Hide
  Scrollbar reload since they are baked into the server-rendered HTML.
- Reword two feature-grid hints to the "pictures" convention and cover
  the new helpers with Go and Vitest tests.

* Frontend: Regenerate translation catalogs #848 #5429

Ran `make gettext-extract` to pick up the new Accessibility settings
strings (Accessibility, Allow Page Zoom, Open on Hover, Hide Scrollbar,
Reduce Motion, and their hints) and the reworded feature-grid hints.
Existing translations are preserved.

---------

Co-authored-by: Michael Mayer <michael@photoprism.app>
2026-07-08 14:11:36 +02:00
..
locales Settings: Reorganize UI and add an Accessibility section #848 #799 #5429 2026-07-08 14:11:36 +02:00
models Config: Change default vision model assets path to assets/models/ #127 2025-08-08 19:06:56 +02:00
profiles Thumbs: Enhance embedding of ICC profiles based on InteropIndex #5178 2025-11-23 12:56:58 +01:00
samples JPEG XL: Decode natively via libvips with "djxl" fallback #5693 2026-06-25 14:31:10 +00:00
static PWA: Add maskable icons, lang/dir, and install screenshots #5696 2026-06-30 19:53:52 +02:00
templates Frontend: Render auth error toasts in the current UI locale #5699 #5682 2026-06-27 11:34:54 +00:00
.buildignore Assets: Align .buildignore across editions 2026-05-22 06:48:32 +00:00
README Assets: Improve readability of README file 2023-04-05 09:51:33 +02:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

               PhotoPrism® Documentation and Digital Assets

This Agreement is between you and PhotoPrism UG ("PhotoPrism", "we" or "us").
Visit photoprism.app/contact to view our full contact information as required
by law.

We may update this Agreement as necessary (1) for legal reasons or (2) to
improve readability and make clarifications that our users request.

By using the Documentation and Digital Assets we provide, you agree to the
terms of this Agreement.

Last Updated: April 5, 2023

DEFINITIONS

"Software" means any software published and distributed by PhotoPrism, either
self-hosted, installed on a device, managed, or as a service.

"Open Source Software" is any software component or software application,
including third-party software, distributed under a Public License.

"Services" means any backend services, world maps, hosted documentation, remote
access, cloud storage, software as a service, support forums, member benefits
and/or other services offered by PhotoPrism that are based on or complementary
to the Software.

"Documentation" means all instructions, diagrams, screenshots, manuals, guides,
references and/or other written documents related to the Software and the
Services.

"Digital Assets" means icons, fonts, illustrations, graphics, background
images, videos, sounds, models, and sample files related to or accompanying the
Software and/or Documentation, such as those provided on GitHub, distributed at
dl.photoprism.app, or used on docs.photoprism.app.

"Brand Assets" means trademarks, logos, icons, fonts, corporate designs,
product and service names, and any other brand features and elements, whether
registered or unregistered.

"Customer" means an individual, company or partnership that has entered into a
written agreement with PhotoPrism to license Software.

"Affiliate(s)" means any entity that controls, is controlled by, or is under
common control with a party, where "control" means the ability to direct the
management and policies of an entity.

"Intellectual Property Rights" means all intellectual property rights,
including but not limited to patents, copyrights, trademarks, goodwill, moral
rights, trade secrets and all other intellectual and industrial property rights
and proprietary rights, including registrations, applications, renewals and
extensions of such rights worldwide.

"License Agreement" means the agreement between PhotoPrism (or a PhotoPrism
Affiliate or an authorized reseller of the Software) and Customer under which
Customer has acquired or will acquire license rights to use the Software.

"Public License" means any license that conforms to the Open Source Definition
(as promulgated by the Open Source Initiative) or the Free Software Definition
(as promulgated by the Free Software Foundation) or a substantially similar
license, including any license approved by the Open Source Initiative or a
Creative Commons license. "Open Source Licenses" include copyleft licenses.

TERMS OF USE

(a) Our public Documentation is available under the terms of the CC BY-NC-SA
4.0 License. Other terms may apply to Digital Assets — in particular
illustrations, graphics, and videos — embedded in the documentation if they
are licensed to us solely for direct distribution. When in doubt, please ask
before distributing or using them for other works.

(b) We hereby grant you a non-exclusive, royalty-free, worldwide,
non-sublicensable, non-transferable right to use the Digital Assets in
combination with the Software and Services, unless otherwise noted.

(c) Because some Digital Assets are licensed to us solely for direct
distribution, we cannot redistribute them under a more permissive license for
other purposes. If the author or copyright holder has not released them under a
permissive license, you must obtain a license before using them in your own
work, whether commercial or non-commercial in nature.

(d) All rights not expressly licensed by PhotoPrism under a License Agreement or
provided under a Public License are reserved. For the avoidance of doubt, this
also applies to promotional materials, legal documents, and any other
Intellectual Property Rights. The use, reproduction, and distribution of Open
Source Software is subject to the terms of the applicable Public License.

TRADEMARK AND BRAND ASSETS

(a) PhotoPrisms Brand Assets are proprietary assets owned exclusively by
PhotoPrism. We reserve the right to object to any use or misuse in any
jurisdiction worldwide. Visit photoprism.app/trademark to learn more.

(b) Contributors, licensees, business partners, and other third parties may
never claim ownership of PhotoPrism's Brand Assets or brands confusingly
similar to PhotoPrism's Brand Assets in any way, including, without limitation,
as a trademark, service mark, company name or designation, domain name, social
media profile/handle, or in any other manner.

(c) You may not include the PhotoPrism trademark in the name of your app,
product, or service, whether commercial or non-commercial in nature. This
includes online services such as e-commerce, community, blog, information,
advertising, and personal home pages, as well as apps, app stores, client apps,
or third-party apps that interact with PhotoPrism.

DISCLAIMER OF WARRANTY

OUR SOFTWARE, SERVICES AND DOCUMENTATION ARE PROVIDED "AS-IS" AND WITHOUT
WARRANTY OF ANY KIND. WE DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, TITLE,
NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.

PHOTOPRISM DOES NOT WARRANT THAT THE SOFTWARE, SERVICES OR DOCUMENTATION WILL
BE UNINTERRUPTED OR ERROR-FREE OR THAT ALL ERRORS WILL BE CORRECTED. WE
DISCLAIM ALL LIABILITY AND RESPONSIBILITY FOR ANY THIRD-PARTY PRODUCTS OR
SERVICES OR FOR ANY ACTS OR OMISSIONS OF ANY THIRD-PARTY SUPPLIERS, VENDORS OR
SERVICE PROVIDERS.

LIMITATION OF LIABILITY

TO THE FULLEST EXTENT PERMITTED BY LAW, WE WILL NOT BE LIABLE FOR ANY DAMAGES
ASSOCIATED WITH OUR SOFTWARE, SERVICES OR DOCUMENTATION, INCLUDING WITHOUT
LIMITATION ORDINARY, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OF ANY
KIND, INCLUDING BUT NOT LIMITED TO DAMAGES RELATING TO LOST DATA OR LOST
PROFITS, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

IN NO EVENT SHALL PHOTOPRISM HAVE ANY LIABILITY TO ANY THIRD-PARTY SUPPLIER,
VENDOR OR SERVICE PROVIDER. NOTWITHSTANDING ANY OTHER PROVISION IN THESE TERMS,
OUR MAXIMUM AGGREGATE LIABILITY IS EUR 50.

FINAL PROVISIONS

(a) These terms do not imply any rights other than those expressly granted in
these terms.

(b) In the event that you breach these terms and we do not take any action, we
will still be entitled to use our rights and remedies in any other situation
where you breach these terms.

(c) If a provision of these terms is or becomes legally invalid or if there is
any gap that needs to be filled, the validity of the remainder of these terms
shall not be affected thereby. Invalid provisions shall be replaced by common
consent with such provisions which come as close as possible to the intended
result of the invalid provision. In the event of gaps, such provisions shall
come into force by common consent which comes as close as possible to the
intended result of these terms, should the matter have been considered in
advance. Any changes of or amendments to these terms must be in writing to
become effective.