d44fb337e2
fix(security): replace REQUEST_URI with fixed path in redirects ( #43 )
...
Deploy Feature Branch to Test / deploy (push) Successful in 24s
Lint / PHP Syntax Check (push) Successful in 33s
Lint / CSS Lint (stylelint) (push) Successful in 1m14s
Lint / HTML Lint (htmlhint) (push) Successful in 1m8s
Lint / PHP Syntax Check (pull_request) Successful in 32s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m12s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m8s
- Replace all 3 occurrences of $_SERVER['REQUEST_URI'] with '/'
- Prevents potential open redirect via client-controlled REQUEST_URI
- Safe since contact form only exists on homepage
Fix #43
2026-05-21 23:06:19 +00:00
36b5639801
Merge pull request 'Refactoring: Umstellung auf Mini-MVC-Architektur (Issue #46 )' ( #47 ) from feature/issue-46-mvc-refactoring into main
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m14s
Lint / HTML Lint (htmlhint) (push) Successful in 1m10s
2026-05-21 14:05:07 +02:00
ffbf23a524
merge: resolve conflicts with main – remove old files (MVC has all changes)
Deploy Feature Branch to Test / deploy (push) Successful in 26s
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m12s
Lint / HTML Lint (htmlhint) (push) Successful in 1m10s
Lint / PHP Syntax Check (pull_request) Successful in 32s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m13s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m11s
2026-05-21 11:42:39 +00:00
1aedcaf314
refactor: Umstellung auf Mini-MVC-Architektur (Issue #46 )
...
Deploy Feature Branch to Test / deploy (push) Successful in 24s
- Front Controller Pattern mit public/index.php als Einstiegspunkt
- Eigenes Routing (App\Core\Router) ohne externes Framework
- Controller: HomeController, ImpressumController, DatenschutzController
- Views mit gemeinsamem Layout (app/views/layouts/main.php)
- PSR-4 Autoloading
- Statische Assets nach public/ verschoben
- Alte Dateien (index.php, impressum.html, datenschutz.html) geloescht
- 301-Redirects fuer alte URLs
- PHP 8.5 kompatibel
- Apache DocumentRoot auf public/ gesetzt
2026-05-19 14:38:38 +00:00
7e3b89bf63
Merge pull request 'Fix #44 : CI Pipeline mit PHP/CSS/HTML Linting' ( #45 ) from feature/issue-44-ci-lint-pipeline into main
...
Lint / PHP Syntax Check (push) Successful in 34s
Lint / CSS Lint (stylelint) (push) Successful in 1m13s
Lint / HTML Lint (htmlhint) (push) Successful in 1m15s
Reviewed-on: #45
2026-05-19 16:05:46 +02:00
Claw
afbf4ef80e
fix(ci): run lint on all branches, not just main
Deploy Feature Branch to Test / deploy (push) Successful in 25s
Lint / PHP Syntax Check (push) Successful in 32s
Lint / CSS Lint (stylelint) (push) Successful in 1m13s
Lint / HTML Lint (htmlhint) (push) Successful in 1m17s
Lint / PHP Syntax Check (pull_request) Successful in 34s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m13s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m9s
2026-05-19 14:04:59 +00:00
Claw
a0615d10e2
fix(css): kebab-case keyframe name and empty line before rule
...
Deploy Feature Branch to Test / deploy (push) Successful in 32s
Lint / PHP Syntax Check (pull_request) Successful in 37s
Lint / CSS Lint (stylelint) (pull_request) Successful in 1m26s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m23s
fix(php): duplicate id 'form-result' → 'form-errors' for error container
2026-05-19 13:58:11 +00:00
Claw
a0d89a93a6
feat(ci): add lint pipeline for PHP, CSS and HTML ( #44 )
Deploy Feature Branch to Test / deploy (push) Successful in 30s
Lint / PHP Syntax Check (pull_request) Successful in 34s
Lint / CSS Lint (stylelint) (pull_request) Failing after 1m24s
Lint / HTML Lint (htmlhint) (pull_request) Successful in 1m18s
2026-05-19 13:53:46 +00:00
6612a0207a
Merge pull request 'Fix #17 : Bildoptimierung – WebP, Lazy Loading, Caching' ( #22 ) from feature/issue-17-bildoptimierung-webp into main
2026-05-19 15:29:04 +02:00
Claw
9c0a9a856a
merge: resolve conflicts with main (WebP + vanilla JS + a11y)
Deploy Feature Branch to Test / deploy (push) Successful in 32s
2026-05-19 13:28:52 +00:00
4ca48a7445
Merge pull request 'fix: JavaScript doppelte Funktionen & toter Code ( #39 )' ( #40 ) from feature/39-js-duplicate-functions-fix into main
...
Reviewed-on: #40
2026-05-19 15:13:29 +02:00
6b13b95102
fix: remove duplicate openLightbox/closeLightbox and dead code ( #39 )
...
Deploy Feature Branch to Test / deploy (push) Successful in 26s
- Consolidate openLightbox() and closeLightbox() to single vanilla JS definition
- Remove orphaned keyboard handler block that caused ReferenceError
- Refs: #39
2026-05-19 12:41:58 +00:00
9a8776412e
Merge pull request 'Fix #36 : Favicon erstellen und einbinden' ( #37 ) from feature/issue-36-favicon into main
2026-05-15 10:45:31 +02:00
127faaffaf
feat(favicon): use Außenansicht as favicon base
Deploy Feature Branch to Test / deploy (push) Successful in 24s
2026-05-15 08:43:47 +00:00
c6eda36750
feat(favicon): add favicon and browser icons for Issue #36
...
Deploy Feature Branch to Test / deploy (push) Successful in 37s
- favicon.ico (16x16 + 32x32)
- favicon-32x32.png, favicon-16x16.png
- apple-touch-icon.png (180x180)
- site.webmanifest
- Linked in index.php head
Resolves #36
2026-05-15 08:40:16 +00:00
336fbc12a6
Merge pull request 'Fix #18 : Accessibility – ARIA-Labels, Focus-Management, Skip-Navigation' ( #24 ) from feature/issue-18-accessibility into main
2026-05-15 10:32:45 +02:00
Claw AI
8b73603293
feat(a11y): ARIA labels, focus management, skip-nav, keyboard nav, contrast fix
...
Deploy Feature Branch to Test / deploy (push) Successful in 23s
Accessibility improvements per WCAG 2.1 AA:
- Skip-to-content link (TA-1)
- ARIA landmarks and roles for nav, main, sections, footer (TA-2)
- Accordion keyboard navigation + aria-expanded (TA-3)
- Lightbox focus trap + focus management + dialog role (TA-4)
- Gallery grid items keyboard accessible (TA-5)
- Improved alt texts for all images (TA-6)
- Focus-visible styles for all interactive elements (TA-7)
- Darker --stone color for WCAG AA contrast compliance (TA-8)
Fix #18
2026-05-15 08:32:26 +00:00
d609175b3c
Merge pull request 'Fix #19 : Remove jQuery dependency, replace with vanilla JS' ( #21 ) from feature/issue-19-remove-jquery-masonry into main
2026-05-15 10:29:56 +02:00
Claw (AI)
73635a5f03
fix(js): improve lightbox WebP fallback error handler
...
Deploy Feature Branch to Test / deploy (push) Successful in 24s
- Use .off('error') to prevent stacking error handlers
- Simplify fallback logic: only replace .webp → .png on error
- Prevents infinite error loops
2026-05-15 07:57:09 +00:00
Claw (AI)
b237cb6315
fix(images): remove unused masonry.js and fix broken references
...
- Delete js/masonry.pkgd.min.js (24 KB, never referenced in HTML)
- Fix bad3.jpg → Bad-3.webp reference (was 404)
- Fix WhatsApp Image reference → replaced with Bad-4.webp (existing image)
- Update data-img attributes to use WebP paths
2026-05-15 07:57:09 +00:00
Claw (AI)
98cb53df09
fix(images): update nginx with gzip and 30d cache headers
...
- Enable gzip for CSS, JS, SVG, JSON, XML
- Add 30-day cache headers for static assets (images, CSS, JS, fonts)
- Set Cache-Control: public, immutable for static files
2026-05-15 07:57:09 +00:00
Claw (AI)
8666bc1eec
feat(images): convert all images to WebP with 87% size reduction
...
- Convert 34 images (PNG/JPG) to WebP at quality 80
- Total savings: 21.6 MB → 2.8 MB (87% reduction)
- Add <picture> elements with WebP source + original fallback
- Add loading=lazy to all below-the-fold images
- Update lightbox to serve WebP images with error fallback
2026-05-15 07:57:09 +00:00
greggy
1fcdca95b7
refactor(js): remove jQuery dependency and replace with vanilla JS
...
Deploy Feature Branch to Test / deploy (push) Successful in 24s
- Rewrite haus-schleusingen.js entirely in vanilla JavaScript
- Use IntersectionObserver instead of scroll event for scroll animations
- Replace jQuery slideUp/slideDown with display toggle for accordion
- Replace jQuery fadeIn with CSS opacity transition for form success
- Remove jQuery CDN script tag from haus-schleusingen.html
- Delete unused masonry.pkgd.min.js
- Remove jquery globals from eslint.config.js
Ref #19
2026-05-15 07:57:01 +00:00
88ef7aa6ac
Merge pull request 'Fix #34 : Kontaktformular E-Mail-Versand via PHP' ( #35 ) from feature/issue-34-contact-form-mail into main
2026-05-15 09:50:43 +02:00
bf53da13be
Fix: Scroll to form result after submission (PRG pattern with anchor)
Deploy Feature Branch to Test / deploy (push) Successful in 23s
2026-05-14 22:38:27 +00:00
2307c379dc
Revert to PHP mail() for portability, remove AgentMail API dependency
Deploy Feature Branch to Test / deploy (push) Successful in 24s
2026-05-14 22:25:24 +00:00
2c6ed749d5
Fix: Use AgentMail API instead of mail(), fix reply_to format
Deploy Feature Branch to Test / deploy (push) Successful in 24s
2026-05-14 22:20:59 +00:00
c2f2709790
feat(contact): server-side PHP mail handler for contact form
...
Deploy Feature Branch to Test / deploy (push) Successful in 24s
Fix #34 : E-Mail-Versand via PHP
- PHP POST handler with server-side validation (name, email, message)
- mail() with From/Reply-To set to form email address
- Recipient: mki@kies-media.de
- Honeypot spam protection (hidden field)
- Minimum submit time check (3 seconds)
- Session-based rate limiting (60s between submissions)
- Header injection protection
- Error messages displayed above form
- Success message after successful send
- Form values preserved on validation errors
- Removed client-side mailto: JavaScript logic
- Added CSS for error display and honeypot hiding
2026-05-14 19:12:43 +00:00
69ca8efa47
Merge pull request 'Rename haus-schleusingen.html to index.php' ( #33 ) from feature/rename-to-index-php into main
2026-05-14 20:55:38 +02:00
40001adbce
Rename haus-schleusingen.html to index.php
Deploy Feature Branch to Test / deploy (push) Successful in 24s
2026-05-14 18:53:15 +00:00
158f07e374
Merge pull request 'Fix #27 : Mobile Navigation – Hamburger-Menü implementieren' ( #32 ) from feature/issue-27-hamburger-menu into main
2026-05-14 20:46:19 +02:00
76b1ec58c2
style(nav): remove duplicate display property in mobile nav links
Deploy Feature Branch to Test / deploy (push) Successful in 24s
2026-05-14 17:40:51 +00:00
565c8b304d
feat(nav): add hamburger menu for mobile navigation ( Fix #27 )
...
Deploy Feature Branch to Test / deploy (push) Successful in 24s
- Hamburger button with animated X toggle (CSS-only icon)
- Slide-down mobile nav on ≤900px with 44px+ tap targets
- Semi-transparent overlay when menu is open
- Escape key + outside click + link click closes menu
- Auto-close on resize to desktop
- Desktop navigation unchanged
- Pure vanilla JS toggle, no jQuery dependency
2026-05-14 17:40:20 +00:00
51d4f96b20
Merge pull request 'Fix #28 : CTA-Button im Header auffälliger gestalten' ( #30 ) from feature/issue-28-cta-button into main
2026-05-14 18:43:37 +02:00
5167634ee6
Merge pull request 'Fix #29 : Impressum und Datenschutz als eigene Seiten' ( #31 ) from feature/issue-29-impressum-datenschutz into main
2026-05-14 18:43:36 +02:00
0995684989
feat(legal): add impressum and datenschutz pages
...
Deploy Feature Branch to Test / deploy (push) Successful in 23s
Fix #29 : Create impressum.html with full §5 TMG details and
datenschutz.html with DSGVO-compliant privacy policy.
Fix footer links in main page. Both pages use landingpage design,
have meta robots noindex, and are responsive.
2026-05-14 16:33:33 +00:00
7706f11106
feat(cta): make header CTA button more prominent
...
Deploy Feature Branch to Test / deploy (push) Successful in 24s
Fix #28 : Enlarge CTA button, increase font weight, add border-radius
and box-shadow for better visibility. Improve hover effect with
stronger lift and shadow. Touch target >= 44px.
2026-05-14 16:31:30 +00:00
143962a0fa
Merge remote-tracking branch 'origin/feature/issue-16-seo-meta-schema'
2026-05-14 16:17:34 +00:00
04d570cb91
Merge pull request 'Fix #6 : Datenschutz-Link im Footer aktualisieren' ( #25 ) from feature/issue-6-datenschutz-link into main
...
Reviewed-on: #25
2026-05-14 11:23:54 +02:00
Claw AI
8706cb2b70
Merge branch 'main' into feature/issue-6-datenschutz-link
Deploy Feature Branch to Test / deploy (push) Successful in 23s
2026-05-14 09:21:55 +00:00
Claw AI
3df40952c1
chore: remove pipeline test marker
2026-05-14 09:07:41 +00:00
Claw AI
c467f8cc1e
ci: add index.html copy from main page
Deploy Feature Branch to Test / deploy (push) Successful in 23s
2026-05-14 09:03:03 +00:00
Claw AI
d4a59ee306
ci: fix rsync dependency and permissions in deployment
Deploy Feature Branch to Test / deploy (push) Successful in 24s
2026-05-14 09:01:26 +00:00
Claw AI
7be0a2e9d5
test: add pipeline test marker
Deploy Feature Branch to Test / deploy (push) Failing after 42s
2026-05-14 08:59:26 +00:00
Claw AI
10bc7c1d77
ci: fix volume mount for deployment target
2026-05-14 08:59:16 +00:00
Claw AI
e24db23888
ci: add deploy pipeline for feature branches to test environment
2026-05-14 08:58:55 +00:00
48df09df6c
fix: Datenschutz-Link auf /datenschutz mit target=_blank ( resolves #6 )
2026-05-14 08:42:05 +00:00
Claw (AI)
3bbbe85599
feat(seo): add meta description, canonical, Open Graph and Schema.org JSON-LD
...
- Add meta description with property details
- Add canonical URL (haus-schleusingen.de placeholder, pending Martin's confirmation)
- Add Open Graph tags (og:type, og:title, og:description, og:image, og:url, og:locale, og:site_name)
- Add Schema.org RealEstateListing structured data (JSON-LD)
- Optimize title tag for SEO
- Create robots.txt with sitemap reference
Ref #16
2026-05-13 23:10:55 +00:00
88780c300a
Merge pull request 'Fix #15 : Kontaktformular – mailto:-Integration für echte Anfragen' ( #20 ) from feature/issue-15-kontaktformular-backend into main
...
Reviewed-on: #20
2026-05-14 00:45:55 +02:00
Claw
cc7b2d8d70
fix(kontakt): replace simulated form submit with mailto: link
...
- Generate mailto: link with all form data on submit
- Opens user's email client with pre-filled email to mki@kies-media.de
- Subject includes interest type, body contains all form fields
- Update success message to reflect email client behavior
- Remove fake setTimeout simulation
Fix #15
2026-05-13 22:39:42 +00:00