Repository navigation
OpenConceptLab/ocl_online#418 | Unified navigation: shared tray, + menu and Mapping Projects profile tab - #89
Conversation
…nu and Mapping Projects profile tab
|
Updated review after Jon's revised unified-navigation design on OpenConceptLab/ocl_online#418. Correction: I withdraw the earlier app-switcher/one-click finding. Sending Remaining findings — request changes:
The corrected cross-repo review is on OpenConceptLab/ocl_online#418. |
…counts, selection, configurable URLs, tests
|
Addressed the review in 53657dc: the Mapping Projects tab now lists user and organization projects (deduplicated), the tray shows the Mapping Projects count, the tray highlights Mapping Projects on nested paths, and tests cover Mapper URL resolution (configured, official host, localhost, custom host), project merging, counts and tray items. An unconfigured custom host resolves to the production Mapper, as intended. |
Final review — DO NOT MERGE (
|
…nfigured or on a recognized OCL host
|
Addressed the final review in e10a4e5: the Mapper URL now resolves only from configuration or a recognized openconceptlab.org app host; otherwise there is no Mapper and the Mapper-dependent items stay hidden. Tests updated. |
Final review — round 2Recommendation: MERGE once the PR is marked ready. Reviewed head Validation:
No remaining blocking findings in this PR. (Final review round 2) |
…e owner, the organization's members and staff Mapping projects are private. Someone else's profile, or an organization you don't belong to, no longer gets the tab; a direct link to it shows Overview. Staff see it on every profile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ab filters its list The search drawer's owner option used to send the Mapping Projects tab to a broken address. It now stays on the tab, which loads every page of the owner's projects and filters them by name and ID; a chip shows the term and clears it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the owner's repositories or mapping projects On a user or organization profile the drawer said "Search jon map-projects" or "Search jon repos", with the hint "Search this repository". It now reads "Search jon's repositories for ..." (Overview and Repositories) or "Search jon's mapping projects for ..." (Mapping Projects), with a matching hint. Repository pages keep "Search this repository". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Summary panel on user and organization profiles shows "N mapping projects", linking to the tab, wherever that tab shows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…CL Community website The community site was reachable only from the profile menu. The left tray now ends with an "OCL Community website" link, and the footer shows it beside Terms of Use and Privacy Policy. All three use one constant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ranslated in Spanish and Chinese Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the rows in repository lists In tables with medium rows (a user's Repositories tab), the header's padding pushed the select-all box about 12px right of the row boxes. Small tables (concepts, mappings, search) were already aligned and keep their padding. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ilters only when the list has room On user and organization profiles the list shares its width with the summary panel, so the filter panel opened on any 1200px window and squeezed the table. Profiles now measure the list itself and open the panel by default only when it is at least 1000px wide. On profiles and repository pages, the panel follows the window as it is resized until the person opens or closes it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ldn't load, with Try again, instead of showing a partial list The community-site link constant moves below PRIVACY_POLICY_URL, away from the lines the banner PR (oclweb3#88) removes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…PER_URL to localhost:4004, so a self-hosted TBv3 shows no Mapper links until one is configured Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex review, pass 1 (codex-cli 0.166.0, commit 7e8f964)Verdict: findings: 1 P1, 1 P2.
findings.json{
"reviewer": "codex-cli 0.166.0",
"perspective": "defects",
"mode": "full",
"commit": "7e8f964e471731102ec0c93654ae4dabba932756",
"verdict": "findings",
"prior": [],
"findings": [
{
"id": "F1.1",
"severity": "P1",
"tag": null,
"file": "src/components/map-projects/MapProjects.jsx",
"line": 27,
"claim": "Failed page requests silently produce an apparently complete empty or partial project list.",
"scenario": "An owner has 150 projects and page 2 returns HTTP 500. APIService resolves failures rather than rejecting, so this code treats the response as an empty final page and displays only the first 100 projects. Searching for a project on page 2 falsely reports no results. A first-page failure instead displays 'No mapping projects yet.'",
"action": "Validate each response before accepting its data. Surface a loading failure or incomplete-list state with retry instead of presenting failed requests as successful empty pages; apply equivalent validation to project counts.",
"lines_delta": null,
"confidence": "high"
},
{
"id": "F1.2",
"severity": "P2",
"tag": null,
"file": "src/components/map-projects/MapProjects.jsx",
"line": 28,
"claim": "The 20-page cutoff violates A3's requirement to load every page.",
"scenario": "A user or organization endpoint contains 2,001 projects. Loading stops after 2,000 despite the API returning a next-page header. The remaining project cannot appear in the list or its client-side search, and there is no pagination control to reach it.",
"action": "Continue until the API has no next page. If a protective cutoff is necessary, expose an explicit continuation mechanism and avoid presenting truncated search results as complete.",
"lines_delta": null,
"confidence": "high"
}
]
}Codex review, pass 2 (codex-cli 0.166.0, commit dbcfeda)Verdict: clean. F1.1 resolved; F1.2 stands as accepted. Also reviewed: dbcfeda (docker-compose's MAPPER_URL default is now empty) and COMMUNITY_SITE_URL's move in constants.js. findings.json{
"reviewer": "codex-cli 0.166.0",
"perspective": "defects",
"mode": "verify",
"commit": "dbcfedaaa26d5e6d0a70d72038d6eba32af06a6e",
"verdict": "clean",
"prior": [
{
"id": "F1.1",
"status": "resolved"
},
{
"id": "F1.2",
"status": "unresolved"
}
],
"findings": []
} |
…and the count hook get shorter Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Simplification review (Claude subagent, commit dbcfeda)9 suggestions. Applied in 8aa83e3: S1 and S2 (mergeProjects is a flat dedupe; its non-list guard and test go) and S4 (the count hook builds its requests like the tab does). Declined for today's deploy:
Codex check of commits dbcfeda..8aa83e3 (codex-cli 0.166.0)Verdict: clean. findings.json{"reviewer":"codex-cli 0.166.0","perspective":"defects","mode":"final","commit":"8aa83e3b42e79e5ca5f6b93205d85a10faeafca0","verdict":"clean","prior":[],"findings":[]} |
paynejd
left a comment
There was a problem hiding this comment.
Approved after the takeover review: Codex clean (2 passes + final check), simplification review applied, CI green. OpenConceptLab/ocl_online#418
Part of OpenConceptLab/ocl_online#418, following the design revision on the ticket.
map-projectsprofile tab; the Create link beside My Organizations now worksProfileTabsslot for the private packageMAPPER_URLconfig; unset on a non-openconceptlab.org host hides the Mapper itemsSibling PRs: OpenConceptLab/oclmap#122, https://github.com/OpenConceptLab/ocl-community-site/pull/213
🤖 Generated with Claude Code