Repository navigation
Dev To Stage - #188
Merged
Merged
Dev To Stage#188
Conversation
Replace the old kartaview util with a new util/street-images.ts that extracts ext:street_images or ext:kartaview_url tags and resolves legacy KartaView/OpenStreetCam storage URLs into the CDN-proxied form. Update components and pages: rename UI label from "KartaView" to "Street Image" and switch imports/logic in review.vue to use streetImageUrl and resolveStreetImageUrl. Remove util/kartaview.ts and add unit tests (test/unit/util/street-images.test.ts) covering extraction and URL resolution behavior.
Trim trailing blank lines at end of test/unit/util/street-images.test.ts and util/street-images.ts for code cleanliness. No functional changes are made.
## DevBoard Task https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/4639 ### Changes Implemented - Added support for reading street-level image URLs from both `ext:street_images` and `ext:kartaview_url` tags on reviewed map elements. - Updated image URL resolution so self-hosted Panoramax URLs (and other standard image URLs) are loaded directly as-is, while retaining CDN proxy conversion only for legacy KartaView/OpenStreetCam storage URLs. - Replaced KartaView-specific naming and UI caption text (`KartaView` → `Street Image`) with generic street-image terminology. - Added unit tests covering `ext:street_images`, `ext:kartaview_url`, Panoramax URLs, KartaView CDN URLs, and legacy KartaView/OpenStreetCam URLs. ### Impacted Areas for Testing - **Review Queue - Panoramax Image Display:** Select a changeset in the workspace review page and click a map feature containing an `ext:street_images` tag (e.g., a Panoramax `/api/pictures/.../hd.jpg` URL). Verify the image thumbnail loads in the bottom-left preview panel on desktop and via the **"View photo submission"** button on smaller screens. - **Review Queue - KartaView Backward Compatibility:** Click a map feature containing an `ext:kartaview_url` tag (both `cdn.kartaview.org` links and legacy `kartaview.org` / `openstreetcam.org` storage links) and verify the image still displays as expected. - **Image Viewer & External Link:** Click the thumbnail (or **"View photo submission"** button) to verify the full-screen photo viewer modal opens, and click the **Street Image** link in the thumbnail caption to confirm it opens the image URL in a new browser tab. - **Elements Without Photos:** Click a map feature that has neither `ext:street_images` nor `ext:kartaview_url` and confirm no image panel or photo button is shown. ### Screenshots <img width="1469" height="877" alt="Screenshot 2026-11-04 at 5 59 15 PM" src="https://github.com/user-attachments/assets/b0a4d6f4-86f5-42f1-800e-162ed3206703" /> <img width="1470" height="956" alt="Screenshot 2026-11-05 at 11 52 43 AM" src="https://github.com/user-attachments/assets/84991967-c333-4dd9-8ec1-6cc72d58eb71" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary - Added `streetImageUrl` to read trimmed `ext:street_images` values, with `ext:kartaview_url` as a fallback. - Added `resolveStreetImageUrl` to preserve standard image URLs and existing KartaView CDN URLs. It converts URLs on legacy KartaView and OpenStreetCam hosts to CDN-proxied URLs. - Updated the review page to use the new helpers and changed the image link label to “Street Image.” - Added unit tests for tag extraction and URL resolution. ## Testing Test execution results are not available. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Add a user-scoped dashboard selection utility and integrate it into the dashboard UI. Introduce util/dashboard-selection.ts (read/write/get key/resolve) to persist the selected project group and a per-project-group remembered workspace in localStorage, with safe parsing and legacy sessionStorage handling. Update pages/dashboard.vue to load/save the selection, resolve project group IDs, remember per-group workspaces, clear stale ?workspace= query params when switching to an empty project group, and remove the old sessionStorage helper functions. Adjust workspace members messaging in pages/workspace/[id]/settings/members.vue to show an access-denied message when appropriate and update the E2E test to expect the new text. Add unit tests for dashboard selection persistence (test/unit/util/dashboard-selection.test.ts) and update the e2e spec (test/e2e/settings-members.spec.ts).
Make dashboard selection read/write resilient to storage failures: add try/catch in loadDashboardSelection and saveDashboardSelection, merge latest stored state before writing, and update save API to accept the updated project group/workspace. Add helper utilities and small JSDoc comments in util/dashboard-selection.ts, and guard against invalid workspace IDs. Update workspace members UI to show a conditional message when access is denied and adjust E2E tests to assert the new structure. Add unit tests to cover storage get/set failures and a small doc update in street-images.ts.
…d fix non-POC members tab message (#186) ## DevBoard Task https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/4601 **Changes Implemented** - Persist the selected project group and last selected workspace per group in `localStorage` (per user). - Stop previous workspace selections from overriding the active project group on return to the dashboard. - Clear stale `?workspace=` URL query parameters when switching to an empty project group. - Fall back to the first available project group if access to the saved group is removed. **Impacted Areas for Testing** - Select an empty project group, navigate away, and return to the dashboard to confirm the empty project group stays selected. - Select a non-default workspace in one project group, switch to another group and back, and confirm that workspace stays selected. - Open the dashboard in a new tab or reload to confirm the last selected project group persists. - Open a direct `/dashboard?workspace=<id>` link to confirm it still opens that workspace and its project group. <img width="1470" height="956" alt="Screenshot 2026-11-05 at 5 52 17 PM" src="https://github.com/user-attachments/assets/02fa466d-3b24-4060-b9eb-dedceabeb94c" /> <img width="1470" height="956" alt="Screenshot 2026-11-05 at 5 52 26 PM" src="https://github.com/user-attachments/assets/d34533fd-c891-4ed8-85da-b03f6732ea14" /> <img width="1470" height="956" alt="Screenshot 2026-11-05 at 5 52 34 PM" src="https://github.com/user-attachments/assets/7cb4de93-29c9-4d37-95f9-f1612dd758ce" /> <img width="1470" height="956" alt="Screenshot 2026-11-05 at 5 52 45 PM" src="https://github.com/user-attachments/assets/96caaabd-4c21-4435-8c95-ace0b7a6ed5a" /> <img width="1470" height="956" alt="Screenshot 2026-11-05 at 5 52 59 PM" src="https://github.com/user-attachments/assets/d5a7aa65-d85f-4c52-a8bd-714ee15dcbfa" /> <img width="1470" height="956" alt="Screenshot 2026-11-05 at 5 53 46 PM" src="https://github.com/user-attachments/assets/01d4d8fb-c3c7-4a42-94ee-0caf2af66db5" /> <img width="1470" height="956" alt="Screenshot 2026-11-05 at 5 53 57 PM" src="https://github.com/user-attachments/assets/6bb22db1-4135-4e62-bbcd-4142e065d399" /> --- ## DevBoard Task https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/4400 **Changes Implemented** - Replace `"No one has a TDEI POC role in this project group."` with `"You do not have permission to view the member list."` on the Members tab. - Show `"You do not have permission to view the member list."` in the Data Generators and Workspace Members sections when a non-POC user is denied access (403). **Impacted Areas for Testing** - View Workspace Settings -> Members as a non-POC user and confirm all three sections show `"You do not have permission to view the member list."` - View Workspace Settings -> Members as a POC user and confirm member lists and empty role messages still display normally. <img width="1470" height="880" alt="Screenshot 2026-11-05 at 6 11 46 PM" src="https://github.com/user-attachments/assets/4738ae9d-473d-4d8c-8f94-7cab244a6cb2" /> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary - Persist the selected project group and each group’s last selected workspace in user-scoped `localStorage`. Restore saved selections when available, fall back to the first available group or workspace, and clear stale `?workspace=` parameters for empty groups. Use the legacy session-stored project group as a fallback. - Show “You do not have permission to view the member list.” in the Project Group Admins, Data Generators, and Workspace Members sections when access is denied. Preserve the existing empty-list messages when access is allowed. - Add dashboard-selection unit tests and update the unauthorized-user E2E expectations. ## Checks - CI, build, and test results: not available. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
susrisha
approved these changes
Nov 9, 2026
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DevBoard Task
https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/4639
Changes Implemented
ext:street_imagesandext:kartaview_urltags on reviewed map elements.KartaView→Street Image) with generic street-image terminology.ext:street_images,ext:kartaview_url, Panoramax URLs, KartaView CDN URLs, and legacy KartaView/OpenStreetCam URLs.Impacted Areas for Testing
ext:street_imagestag (e.g., a Panoramax/api/pictures/.../hd.jpgURL). Verify the image thumbnail loads in the bottom-left preview panel on desktop and via the "View photo submission" button on smaller screens.ext:kartaview_urltag (bothcdn.kartaview.orglinks and legacykartaview.org/openstreetcam.orgstorage links) and verify the image still displays as expected.ext:street_imagesnorext:kartaview_urland confirm no image panel or photo button is shown.Screenshots
DevBoard Task
https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/4601
Changes Implemented
localStorage(per user).?workspace=URL query parameters when switching to an empty project group.Impacted Areas for Testing
/dashboard?workspace=<id>link to confirm it still opens that workspace and its project group.DevBoard Task
https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/4400
Changes Implemented
"No one has a TDEI POC role in this project group."with"You do not have permission to view the member list."on the Members tab."You do not have permission to view the member list."in the Data Generators and Workspace Members sections when a non-POC user is denied access (403).Impacted Areas for Testing
"You do not have permission to view the member list."