Files
dogfather-universe/bewerben.html
T
DogFatherGitandClaude Opus 5 5b2a1daabe Öffentliche Avatar-Uploads vor dem Absenden verkleinern (1,1 MB -> ~40 KB)
Der Performance-Check (pruef-tempo.mjs, neu) fand als größte Einzel-
ressource ein 1,1-MB-Profilbild, ausgeliefert an jeden Besucher der
Startseite und von stimmen.html -- angezeigt wird es handgroß.

Ursache: Das öffentliche Stimmen-Formular (stimmen.js) lud Profilbilder
ROH hoch. Die Bildaufbereitung vom 27.08. bekam nur die Verwaltung, nicht
das öffentliche Formular. So landete das Kamera-Foto in voller Auflösung
auf dem Server.

- bild-vorbereiten.js (neu): die Verkleinerungs-Funktion, jetzt einmal
  und parametrisierbar (maxBreite). Verwaltung nutzt weiter 1600px,
  Avatare 512px. Test pruef-bild-vorbereiten.mjs: 8/8, u.a. 512er-Avatar
  ~40 KB statt >1 MB.
- stimmen.js: verkleinert vor dem Upload (window.bildVorbereiten mit
  maxBreite 512); fällt die Funktion aus, wird das Original genommen --
  kein Upload darf daran scheitern.
- stimmen.html: lädt bild-vorbereiten.js; veralteten Kommentar
  richtiggestellt (behauptete "kein Upload", obwohl es seit 21.08. einen
  gibt -- mit Bremse, Typ-/Größenlimit, Freigabe-Pflicht).

Zwei neue Checks als bleibende Absicherung mit committet: pruef-links.mjs
(41 interne Ziele, 0 kaputt) und pruef-assets.mjs (67 Ressourcen, 0 fehlen).

NOCH OFFEN: verwaltung.html hat noch eine eigene, identische Inline-Kopie
der Funktion -- die Zusammenführung ist ein eigener, testbarer Schritt
(das Inline-Skript dort ist groß und die Verwaltung hinter dem Gate schwer
live zu testen). Das bestehende 1,1-MB-Bild auf dem Server bleibt, bis es
neu hochgeladen/ersetzt wird.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-08-27 15:17:30 +02:00

92 lines
4.9 KiB
HTML

<!DOCTYPE html>
<html lang="de" data-theme="spicymedia">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Bewerben — DOGFATHER UNIVERSE</title>
<meta name="description" content="Werde Teil vom Team: Modi bei Team Dogi, Scout oder Creator bei Spicy Media, oder Kooperation anfragen." />
<link rel="icon" type="image/png" href="assets/img/favicon.png" />
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#0b0d10" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="DOGFATHER UNIVERSE" />
<meta property="og:title" content="Bewerben — DOGFATHER UNIVERSE" />
<meta property="og:description" content="Werde Teil vom Team: Modi bei Team Dogi, Scout oder Creator bei Spicy Media, oder Kooperation anfragen." />
<meta property="og:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<meta property="og:url" content="https://dogfather-universe.com/bewerben.html" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Bewerben — DOGFATHER UNIVERSE" />
<meta name="twitter:description" content="Werde Teil vom Team: Modi bei Team Dogi, Scout oder Creator bei Spicy Media, oder Kooperation anfragen." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828c" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828c" />
</head>
<body class="mit-hintergrund bewerben-seite" style="--page-bg:url('/assets/img/bg-bewerben-split.jpg');--page-bg-mobile:url('/assets/img/bg-bewerben-split-mobile.jpg');">
<div id="site-header"></div>
<main>
<section class="hero page-bg">
<div class="hero-banner"><img src="/assets/img/bg-bewerben-split.jpg" alt="" loading="eager" /></div>
<div class="container">
<span class="eyebrow" data-i18n="bw_eyebrow">Werde Teil vom Team</span>
<h1 data-i18n="bw_h1">Community oder Agentur — such dir deinen&nbsp;Weg</h1>
<p class="lead worlds" data-i18n="bw_lead">Vier Bewerbungen, drei ganz unterschiedliche Rollen. Wähl, was zu dir passt.</p>
</div>
</section>
<section class="section-tight">
<div class="container">
<div class="bewerben-showcase">
<div class="bewerben-poster bewerben-poster-blau" aria-hidden="true">
<img src="assets/img/bewerben-poster-dogfather.jpg" alt="" loading="lazy" />
</div>
<div class="bewerben-split">
<div class="bewerben-side bewerben-side-blau">
<h2 class="bewerben-side-label" data-i18n="bw_label_community">🩵 Community — Team Dogi</h2>
<a class="card card-duel" href="bewerben-modi.html" style="--accent:#8fd9ea;--accent-2:#8b5cf6;">
<span class="tag" data-i18n="bw_tag_community">Community</span>
<h3 data-i18n="bw_modi_h3">Modi werden</h3>
<p data-i18n="bw_modi_p">DogFathers persönliches Team. Chat, Community und Zusammenhalt im Alltag.</p>
</a>
<a class="card card-duel" href="bewerben-kooperation.html" style="--accent:#8fd9ea;--accent-2:#8b5cf6;">
<span class="tag" data-i18n="bw_tag_anfrage">Anfrage</span>
<h3 data-i18n="bw_koop_h3">Kooperation anfragen</h3>
<p data-i18n="bw_koop_p">Firma, Marke oder eigenes Projekt — schick deine Idee direkt an Team Dogi.</p>
</a>
</div>
<div class="bewerben-wall" aria-hidden="true"><span>⚡</span></div>
<div class="bewerben-side bewerben-side-rot">
<h2 class="bewerben-side-label" data-i18n="bw_label_agentur">Agentur — Spicy Media 🌶️</h2>
<a class="card card-duel" href="bewerben-scout.html">
<span class="tag" data-i18n="bw_tag_agentur">Agentur</span>
<h3 data-i18n="bw_scout_h3">Scout werden</h3>
<p data-i18n="bw_scout_p">Finde und begleite neue Talente für DogFather als Manager.</p>
</a>
<a class="card card-duel" href="bewerben-creator.html">
<span class="tag" data-i18n="bw_tag_manager">Manager-Bewerbung</span>
<h3 data-i18n="bw_creator_h3">Als Streamer bewerben</h3>
<p data-i18n="bw_creator_p">Du suchst einen Manager? Bewirb dich als Creator bei Spicy Media.</p>
</a>
</div>
</div>
<div class="bewerben-poster bewerben-poster-rot" aria-hidden="true">
<img src="assets/img/bewerben-poster-spicymedia.jpg" alt="" loading="lazy" />
</div>
</div>
</div>
</section>
</main>
<div id="site-footer"></div>
<script src="assets/js/i18n-bewerben.js?v=20260828c"></script>
<script src="assets/js/main.js?v=20260828c"></script>
</body>
</html>