Theme half of the cross-repo wiki global search work (plugin half: sow-nodebb-plugin-wiki#12). Search results tagged by the wiki plugin (`isWikiArticle` + `wikiPath`) now render with a gold "Wiki" badge and link to `/wiki/...` instead of `/post/...`: - `templates/partials/quick-search-results.tpl` — navbar quick-search dropdown - `templates/partials/search-results.tpl` — `/search` page, topics view - `templates/partials/posts_list_item.tpl` — `/search` page, posts view (default). Shared with account/group post lists, where the wiki flags are never set and the conditional no-ops. - `scss/westgate/_search.scss` — badge styling from existing `--wg-gold` / ledger-border tokens; imported from `theme.scss` - `languages/en-GB/westgate.json` — `[[westgate:wiki-badge]]` label - Spec updated with the resolved approach (template override, not client-side decoration) Untagged forum results render byte-identical to Harmony stock. Verification: all three overrides compiled and rendered against benchpressjs with mixed wiki/forum fixture rows (wiki row gets `/wiki/...` href + exactly one badge; forum rows keep stock `/post/...` links, `RE:` prefix and main-post icon preserved). New contract test in `tests/wiki-search-badge-contract.test.js`; suite passes except the pre-existing `global-footer-contract.test.js` failure (stale `join-the-team` link assertion from #10, also failing on main — not touched here). End-to-end visual check (badge in the live dropdown + /search) still needs the dev stack with plugin PR #12 merged. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: #14 Co-authored-by: vickydotbat <vickydotbat@tutamail.com> Co-committed-by: vickydotbat <vickydotbat@tutamail.com>
50 lines
2.2 KiB
Smarty
50 lines
2.2 KiB
Smarty
{{{ if (multiplePages && !config.theme.topMobilebar) }}}
|
|
<div class="show-more-container">
|
|
<div class="text-center d-block d-md-none">
|
|
<a href="{url}" class="btn btn-sm btn-primary">[[search:see-more-results, {matchCount}]]</a>
|
|
</div>
|
|
<li role="separator" class="dropdown-divider d-block d-md-none"></li>
|
|
</div>
|
|
{{{ end }}}
|
|
|
|
<ul id="quick-search-results" class="quick-search-results list-unstyled mb-0 p-0 pe-1 overflow-auto overscroll-behavior-contain ff-base ghost-scrollbar" style="max-width: {dropdown.maxWidth}; max-height: {dropdown.maxHeight};">
|
|
<li role="separator" class="dropdown-divider d-none d-md-block"></li>
|
|
{{{ each posts }}}
|
|
<li data-tid="{posts.topic.tid}" data-pid="{posts.pid}" class="d-flex flex-column gap-1">
|
|
<a href="{{{ if posts.isWikiArticle }}}{config.relative_path}{posts.wikiPath}{{{ else }}}{config.relative_path}/post/{encodeURIComponent(posts.pid)}{{{ end }}}"
|
|
class="btn btn-ghost btn-sm ff-secondary rounded-1 text-start text-reset d-block text-truncate px-2 py-1">
|
|
{{{ if posts.isWikiArticle }}}<span class="badge westgate-wiki-badge"><i class="fa fa-book-open"></i> [[westgate:wiki-badge]]</span> {{{ end }}}<span class="quick-search-title fw-semibold text-sm">{posts.topic.title}</span>
|
|
<br/>
|
|
<p class="snippet text-xs text-break text-wrap mb-0">
|
|
{posts.snippet}
|
|
</p>
|
|
</a>
|
|
<div class="d-flex gap-2 post-info px-2 text-xs">
|
|
<div class="category-item d-inline-block ff-secondary">
|
|
{buildCategoryLabel(posts.category, "span")}
|
|
</div>
|
|
<span class="timeago text-muted" title="{posts.timestampISO}"></span>
|
|
</div>
|
|
</li>
|
|
{{{ if !@last }}}
|
|
<li role="separator" class="dropdown-divider"></li>
|
|
{{{ end }}}
|
|
{{{ end }}}
|
|
|
|
</ul>
|
|
|
|
{{{ if multiplePages }}}
|
|
<div class="text-center mt-2 d-none d-md-block">
|
|
<a href="{url}" class="btn btn-sm btn-primary">[[search:see-more-results, {matchCount}]]</a>
|
|
</div>
|
|
{{{ end }}}
|
|
{{{ if (multiplePages && config.theme.topMobilebar) }}}
|
|
<div class="text-center mt-2 d-block d-md-none">
|
|
<a href="{url}" class="btn btn-sm btn-primary">[[search:see-more-results, {matchCount}]]</a>
|
|
</div>
|
|
{{{ end }}}
|
|
|
|
{{{if !posts.length}}}
|
|
<div class="text-center no-results py-2 py-md-0">[[search:no-matches]]</li>
|
|
<li role="separator" class="dropdown-divider d-block d-md-none"></li>
|
|
{{{end}}} |