Do SikiandClaude Sonnet 5 74e40329a0
CI Pipeline with Test Management / 🧪 Run Tests & Generate Reports (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 🧪 Run Tests & Generate Reports (push) Canceled after 0s
CI Pipeline with Test Management / 🐳 Docker Integration Tests (push) Canceled after 0s
CI Pipeline with Test Management / 🏗️ Build Docker Image (push) Canceled after 0s
CI Pipeline with Test Management / 📊 Generate Test Summary (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 📊 Analyze Test Coverage (push) Canceled after 0s
Test Reporting & Gherkin Analysis / 🔄 Sync with Linear (push) Canceled after 0s
Test Reporting & Gherkin Analysis / ⚡ Performance Monitoring (push) Canceled after 0s
feat(cms): admin quick-search across all content (MITHOME-120)
Adds a search box to the top of every Payload admin page
(admin.components.header) that searches by text across every field of
every Global and Collection, in both locales — something Payload has
no built-in equivalent for: collection list views only search their
own title/slug fields, and Globals have no list view at all.

Implementation is deliberately client-side and index-free rather than
@payloadcms/plugin-search (a server-side search collection kept in
sync via hooks): this project's entire content is 5 Globals + 2 small
Collections, so a plugin-managed search index would be disproportionate
maintenance for the actual data volume — the same reasoning already
applied to the logo editor (MITHOME-118). On first use, the component
fetches every Global/Collection doc in both locales via the existing
REST API (same-origin, admin session cookie), recursively flattens
every field to (path, value) pairs client-side, and filters by
case-insensitive substring as the user types. Each result links
straight to the right edit view (global or collection/id).

New: src/components/admin/QuickSearch.tsx. Registered via
payload.config.ts admin.components.header, which required a
generate:importmap run — the useful gotcha this surfaced: Payload
resolves component paths against admin.importMap.baseDir, which
defaults to process.cwd() (the proto/ the CLI is run from), not
dirname(payload.config.ts) — so the path needed to be
'./src/components/admin/QuickSearch#QuickSearch', not
'./components/admin/QuickSearch#QuickSearch'. Documented inline.

Verified live in the browser (not just tsc/lint): search finds matches
in both a Global (Home hero.cta.secondary.text / services description)
and a Collection (Partners name/url), shows source + field path +
locale + a snippet per result, clicking a result navigates to the
correct edit view, and the search state persists across client-side
admin navigation since the header component doesn't remount. Zero
console errors in a fresh tab. Full gate green: tsc, lint, unit tests
(51 passed), production build.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-12 00:03:13 +02:00

mozdIT Bt. — Weboldal fejlesztés (websitedev)

Modern Next.js weboldal a mozdIT Bt. számára — webtárhely, email- és DNS-szolgáltatás, magyar IT vállalkozás.

Stack

  • Frontend: Next.js 15 (Turbopack), React 19, TypeScript, Tailwind CSS 4
  • CMS: Payload CMS (self-hosted, /admin), MongoDB adapter, draft/publish + verziózás, hu/en lokalizáció
  • Tartalom: Payload Globals/Collections (a korábbi JSON-alapú content rendszer, proto/src/content/, csak a migrációs script forrásaként és teszt-fixture-ként él tovább — MITHOME-91/93)
  • Backend: Next.js API routes, MongoDB
  • Tesztelés: Jest, React Testing Library, Playwright (smoke)
  • Deploy: natív Docker Compose (deploy.sh) + Gitea Actions nélkül, lokálisan vezérelt
  • Monitoring: Winston + Loki, plusz scripts/security-scan.sh (ntfy riasztással)

Gyors indítás

# Fejlesztői szerver
cd proto && npm run dev

# Docker fejlesztői környezet
docker-compose -f docker-compose.dev.yml up -d

# Teljes pre-deploy tesztkészlet
scripts/pre-deploy-tests.sh

Feladatkezelés (Plane)

  • Projekt: MITHOME (workspace: developments)
  • TODO.md: helyi tükör, a Plane az elsődleges forrás
  • Szinkron: node plane-sync.js (Plane → TODO.md)
  • Ticket-azonosítók: MITHOME-XX

Deploy

./scripts/deploy_to_stage_on_local.sh   # staging: teljes tesztkészlet + push + deploy + smoke
./deploy.sh production                  # éles (szerveren, staging ellenőrzése után)

A CMS „Publikálás" gombja szintén commitol + pushol + deployol (csak a beállított környezetre). Részletek: .agent/workflows/deploy.md, docs/helyi-staging-deploy.md.

Tartalomkezelés

A weboldal szövegei és a CMS a proto/src/content/ JSON-fájljaiból jönnek:

proto/src/content/
├── schema.js        # közös séma-validátor (Next + CMS)
├── types.ts         # TypeScript típusok
├── index.ts         # tartalom-betöltő
├── common.json      # közös szövegek (gombok, lábléc, a11y)
└── pages/           # oldalankénti tartalom (home, about, services, …)

Használat:

import { content, getPageContent } from '@/content'
const about = content.pages.about

Dokumentáció

  • Agent-szabályok: .agent/AGENTS.md, .agent/steering/, .agent/workflows/
  • CMS felhasználói útmutató: docs/felhasznaloi-utmutato.md (a CMS-ben a Súgó is ezt rendereli)
  • Plane szinkron: PLANE-SYNC-GUIDE.md
  • Staging deploy: docs/helyi-staging-deploy.md
  • Gitea runner: docs/gitea-runner-telepites.md

Környezetek

Biztonsági monitoring

scripts/security-scan.sh (cron, 5 percenként) kriptominer/backdoor indikátorokat figyel (álcázott folyamatnevek, /tmp/.kworkerd-jellegű maradványok, magas CPU), és találat esetén ntfy push-t küld a st_limidev_security topicra.

S
Description
No description provided
Readme MIT
2.5 MiB
Languages
TypeScript 60.3%
JavaScript 24.8%
HTML 7%
Shell 4.4%
CSS 3%
Other 0.4%