Install
Works with Drupal: ^11.2 || ^12Using 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 updbfirst: 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 withcomposer require drupal/groupbefore runningdrush updb. The update installs Group and moves every organization into a group of the typemapillary_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_referencefields 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 fieldorganization_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.settingsare removed; its setting was never read. Remove custom menu links to the routesmapillary.tuningandmapillary.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-iconthere 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-wrapperdoubles 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 insettings.phpand 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, whichtextfields need on Drupal 12, one created field storages before the image entity schema, and one data provider gave more arguments than the tests accept.
- Fix: four kernel tests did not enable
- #3631465: Remove the code deprecated in Mapillary Module
- Removed: the services
mapillary_field.api_clientandmapillary_field.image_importerand the old class names inDrupal\mapillary_field, the old constructor signatures of the client and the importers,MapillaryImageImporter::importSequence(),MapillaryThumbnailRefresher::isServiceWideFailure()andMapillaryLeafletWidgetBase::GRAPH_BASE_URL.CHANGELOG.mdlists the replacements. - The tests are ready for PHPUnit 12.
- Removed: the services
- #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.
- 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
- #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.
- Organizations are groups with four group roles (Admin, Editor, Importer, Member), six group permissions, and "Site administrator" roles for sites whose administrator role is
- #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 contentis 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.
- The status report says whether the server access token is set in
- #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-leafletonly for a vector layer.
- 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
- #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_jslibrary 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.