Install

Works with Drupal: ^11.2 || ^12

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 594.63 KB
MD5: dac08a4f55422d55bf48e26ffb0b56f1
SHA-1: f77e726cef5876041f04ad4a1c598bb3b296565b
SHA-256: 8d31b026b2ca8ddc56bcbd96d319d3e77e824e0055ad5effb77f99f0b131497b
Download zip 916.27 KB
MD5: 59f9d9f60b969d070575d67ed79bef28
SHA-1: b2e69ad9e4e4a23fea92f3a4a5e0b09f302a0672
SHA-256: 6f273bcecce0d1a08b265ade23b1b1b02bb3d79b1d523d4c39f77698a415a84e

Release notes

First beta: Mapillary organizations become Groups with members, roles and members-only content, the viewer formatters can open the viewer on click and open at most 8 viewers on a page, the split viewer's map shows the viewing direction, and the map picker and the split viewer work better with a keyboard, a screen reader, reduced motion and narrow screens. The code deprecated in 1.0.0-alpha6 is removed.

Important

  • Sites on 1.0.0-alpha5 or older must update to 1.0.0-alpha6 and run drush updb first: the code deprecated in 1.0.0-alpha6 is removed, and their container still builds the old services.
  • Mapillary Organization needs the Group module (^3.3 || ^4.0); the other submodules do not. Add it with composer require drupal/group before running drush updb. The update installs Group and moves every organization into a group of the type mapillary_organization, with its name, Mapillary organization ID, slug, description, translations and the fields a site builder added. A site with no organizations, no added fields and no other module that depends on Mapillary Organization gets the submodule uninstalled instead; enable it again to use organizations.
  • The organization update stops, changing nothing, when entity_reference fields or views other than the shipped listing use the old organization entity type, or when a field added to the old organizations has the name of an existing group field storage of another type. It lists what to change; run it again afterwards.
  • Run database updates (drush updb). Besides the organization update, the updates add the image field organization_id, add the Location column and the organization table to Mapillary Logs, write "When the page loads" to the displays that use the viewer formatters, and rebuild the container.
  • Access: images whose Mapillary organization ID belongs to a members-only organization, and their sequences, map features and detections, are visible only to that organization's members with the relevant group permission and to site administrators. The permissions of the old organization entity type are revoked from every role. Organization members need the Drupal permission "access <type> overview" to open the admin listings.
  • The Tuning tab and the configuration mapillary_organization.settings are removed; its setting was never read. Remove custom menu links to the routes mapillary.tuning and mapillary.entity_settings.organization. Per-organization settings replace it.
  • Theme CSS: the split viewer's map marker is a dot with the class mapillary-split-marker, so CSS aimed at .leaflet-marker-icon there no longer applies; the dot markers of the map picker are 24 pixel targets; on screens narrower than 40rem the split viewer shows the map above the viewer, so .mapillary-leaflet-split-wrapper doubles its height.
  • The status report has a "Mapillary access token" entry. A server token saved in the configuration is written to the sync directory by drush config:export; the README describes how to read it from an environment variable in settings.php and remove the stored value.

Changes since 1.0.0-alpha6

  • #3631047: Kernel tests fail on Drupal 12
    • Fix: four kernel tests did not enable filter, which text fields need on Drupal 12, one created field storages before the image entity schema, and one data provider gave more arguments than the tests accept.
  • #3631465: Remove the code deprecated in Mapillary Module
    • Removed: the services mapillary_field.api_client and mapillary_field.image_importer and the old class names in Drupal\mapillary_field, the old constructor signatures of the client and the importers, MapillaryImageImporter::importSequence(), MapillaryThumbnailRefresher::isServiceWideFailure() and MapillaryLeafletWidgetBase::GRAPH_BASE_URL. CHANGELOG.md lists the replacements.
    • The tests are ready for PHPUnit 12.
  • #3631523: Record where each Mapillary API call was made from
    • The report of API calls has a "Location" column: the path of the page request, or the script and command on the command line, for example drush mapillary:thumbnails-refresh. Earlier entries have none.
  • #3631545: Turn Mapillary organizations into groups with members, roles and content
    • Organizations are groups with four group roles (Admin, Editor, Importer, Member), six group permissions, and "Site administrator" roles for sites whose administrator role is administrator.
    • Members-only organizations govern their content: only their members and site administrators view or edit it, and only site administrators and the organization's Admins delete it.
    • Images, sequences, map features and detections join organizations by their Mapillary organization ID, by the Mapillary username of their creator, or by hand.
    • A "Mismatched content" tab and notices on the organization page and the page of the creator.
    • Per-organization settings: visibility, creator matching and the scheduled fetch (stored only, nothing reads it yet).
    • An Organization column and filter in the listings of Mapillary content and in the report of API calls.
    • The image field organization_id, filled from the Mapillary API on import and thumbnail refresh.
    • The Tuning tab is removed.
  • #3633409: Clean up the deferred findings of Mapillary organizations on Group
    • The page of a public organization is open to people who are not members, and the "Member since" date shows on its memberships.
    • The Organization filter of the listings is a select list of the organizations the viewer may see.
    • Uninstalling a Mapillary submodule revokes the permissions of its content from the organization roles. The unused group permission add mapillary content is removed.
    • The organization update also carries the display components, third party settings and content language settings of the old organizations.
    • Fix: update listings showed Editors no content, an image added to an organization by hand did not bring its content along, an account in no organization was matched against all its images, and a refused import could delete a sequence other images use.
  • #3633727: Keep the Mapillary access token out of exported configuration
    • The status report says whether the server access token is set in settings.php, stored in the configuration, both, or missing.
    • The README describes how to keep the token out of the repository.
  • #3633821: The split viewer formatter ignores vector and WMS base layers
    • Fix: the split viewer showed no base map when the site's base layer was a vector or a WMS layer. It creates the layer by its type and loads leaflet/maplibre-gl-leaflet only for a vector layer.
  • #3633914: Let the viewer formatters open the viewer on click and limit the viewers on a page
    • "Open the viewer" setting in both viewer formatters: when the page loads (the default) or on click, with the thumbnail and an "Open image" button until then. In the split viewer a click on the map opens the nearest image.
    • A page opens at most 8 viewers, because browsers allow only about 16 WebGL contexts per page; a viewer over the limit stays a preview and says why.
    • Without a browser token the formatters show the thumbnail and a "View on Mapillary" link, and load no MapillaryJS.
    • The mapillary/mapillary_js library declares MapillaryJS 4.1.2.
  • #3633965: Show the active image and its viewing direction on the split viewer's map
    • The split viewer's map shows the active image as a dot with a viewing cone that turns with the viewer, instead of Leaflet's default pin. An image without a position has no marker until the viewer reports one.
  • #3634056: Improve screen reader, keyboard focus, reduced motion and narrow screen support in the map picker and the split viewer
    • The markers of the map picker have labels and a pressed state, clusters say what they count, the focus stays on the picked marker after "Select", and dot markers are larger touch targets with a visible focus ring.
    • The split viewer and every MapillaryJS viewer respect the browser's reduced motion setting.
    • On narrow screens the split viewer shows the map above the viewer.
  • #3634264: Reduce the per-row cost of organization access checks and finish the follow-ups of recent issues
    • The access checks of a page of Mapillary content read the organizations of all its rows with one query and remember the answers for the request.
    • The clusters of the map picker do not animate under reduced motion, and the focus moves to the nearest marker or cluster when the focused cluster is replaced.

Full list, including removed classes and upgrade notes: CHANGELOG.md.

Created by: orkutmuratyilmaz
Created on: 30 Oct 2026 at 12:25 UTC
Last updated: 30 Oct 2026 at 12:25 UTC
Bug fixes
New features

Other releases