Address PR #313 review (TIGER-232..236): restore TigerCombo + harden pathbox/discovery - #314
Merged
Merged
Conversation
…he pathbox + discovery Astra (Codex) static review of PR #313. Five P2 findings, all remediated. TIGER-233 (regression I introduced): PR #313 overwrote the shared tiger.combobox.js (TigerCombo — the closed <select> enhancer the admin layout loads globally for the timezone fields on profile + access), reverting them to plain native selects. Restored TigerCombo verbatim; moved the new remote "pick or type" control to its own asset tiger.pathbox.js (TigerPathbox / data-tg-pathbox). Closed-set fields keep their filter-as-you-type; the CMS home field keeps pick-or-type. TIGER-232: the pathbox committed free text only in a delayed blur, so clicking Save fast captured the old value. It now exposes el._tgPathbox.flush() + TigerPathbox.flushAll(scope); cms.settings.js calls flushAll synchronously before building FormData. home_page validation errors now decorate the VISIBLE search input, not the hidden backing field. TIGER-234: every fetch response rendered unconditionally and reopened the panel. Added a per-request generation stamp + open-intent guard: a superseded or post-dismissal/post-selection response is dropped (can't overwrite newer results or reopen a closed control). TIGER-235: Cms_Service_Paths built a Zend_Db_Select and fetched full published-page rows (bodies + meta) per keystroke, then filtered/capped after — against the "query building belongs in a model" rule. Added Tiger_Model_Page::publishedSummaries($q, $limit) (small columns, published+scheduled gate, search + cap in the model); the service calls it, no query builder. Theme HOMES are now emitted for ALL themes before any advanced sub-pages so the per-group cap can't crowd a later theme's home out. One memoised Tiger_Theme::inventory() replaces re-globbing/re-reading manifests per dirForKey/pagesForKey call. TIGER-236: theme discovery (dirForKey et al.) scanned only 2 of the 4 locations Bootstrap::_initTheme resolves from, so a theme in app/themes/<name> or core/modules/theme-<name> was activatable but invisible to the selector and unresolvable by @theme:<key>. inventory() now scans all four in the SAME precedence (app over core), keyed by manifest key. Tests: HomePageSelectorTest unchanged (service contract stable); new PageTest coverage for publishedSummaries (published-only + small columns; query filter + limit). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ASauLLscjqdsNqBNsx2Typ
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ASauLLscjqdsNqBNsx2Typ
Merged
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.
Remediates Astra's (Codex) static review of #313. Five P2 findings, all fixed.
tiger.combobox.js(TigerCombo, the closed-<select>enhancer the admin layout loads globally), reverting the timezone fields to native selectsTigerComboverbatim; moved the new remote control to its own assettiger.pathbox.js(TigerPathbox). Closed-set fields keep filter-as-you-type; CMS keeps pick-or-typeflush()/TigerPathbox.flushAll();cms.settings.jsflushes synchronously before FormData.home_pageerrors now decorate the visible inputCms_Service_Pathsbuilt aZend_Db_Selectand loaded full page rows per keystrokeTiger_Model_Page::publishedSummaries($q,$limit)(small cols, published gate, search+cap in the model); service calls it. Theme homes first so the cap can't crowd them; one memoisedTiger_Theme::inventory()replaces per-call re-globbingBootstrap::_initThemelocationsinventory()scans all four, same precedence (app over core), keyed by manifest keyVerified on dev
TigerComborestored (asset serves the<select>enhancer);tiger.pathbox.jsserves the new control.Tiger_Theme::inventory()resolves every installed theme;dirForKey/assetBaseForKeyintact.publishedSummariesruns clean (small columns, no body load).Tests
HomePageSelectorTestunchanged (service contract stable). NewPageTestcoverage forpublishedSummaries: published-only + scheduled gate + soft-delete exclusion + small columns; query filter + limit.Closes TIGER-232, TIGER-233, TIGER-234, TIGER-235, TIGER-236.
🤖 Generated with Claude Code
https://claude.ai/code/session_01ASauLLscjqdsNqBNsx2Typ