Logo, emoji pois lomakkeesta, alikategoria-bugifi
- logo.svg: SVG-tekstilogo (sydän + tykkää kursiivillaa + .fi cream) korvaa emoji+h1-yhdistelmän; .logo-svg CSS-luokka headeriin - index.html: emoji-kenttä poistettu julkaisulomakkeesta; kategoria-select ilman erillistä paria - script.js: emoji haetaan automaattisesti kategoriasta, ei lomakkeen kentästä; sub-emoji poistettu reset-listalta - api.php: seed_categories-toiminto päivittää categories.json:n uusilla subcategories-tiedoilla - admin.html: seedPosts() kutsuu myös seed_categories ensin → alikategoriat toimivat nyt heti "Lataa esimerkkisisältö" -napin jälkeen Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -425,13 +425,15 @@
|
||||
// LOGIN
|
||||
// ===========================
|
||||
async function seedPosts() {
|
||||
if (!confirm('Tämä korvaa KAIKKI nykyiset julkaisut oletussisällöllä (30 julkaisua). Jatketaanko?')) return;
|
||||
if (!confirm('Tämä korvaa KAIKKI nykyiset julkaisut ja kategoriat oletussisällöllä. Jatketaanko?')) return;
|
||||
// Seed categories first (needed for subcategories to work)
|
||||
await apiPost('seed_categories', {});
|
||||
const data = await apiPost('seed_posts', {});
|
||||
if (data.ok) {
|
||||
const postsData = await apiGet('posts');
|
||||
ADMIN.posts = postsData.posts || [];
|
||||
renderPostList();
|
||||
showToast('✅ Ladattu ' + data.count + ' julkaisua!');
|
||||
showToast('✅ Ladattu ' + data.count + ' julkaisua + kategoriat päivitetty!');
|
||||
} else {
|
||||
showToast('⚠️ ' + (data.error || 'Virhe'));
|
||||
}
|
||||
|
||||
6
api.php
6
api.php
@@ -418,6 +418,12 @@ switch ($action) {
|
||||
writeData('posts.json', $posts);
|
||||
ok(['count' => count($posts)]);
|
||||
|
||||
case 'seed_categories':
|
||||
if (!isAdmin()) err('Unauthorized', 403);
|
||||
$cats = defaultCategories();
|
||||
writeData('categories.json', $cats);
|
||||
ok(['count' => count($cats)]);
|
||||
|
||||
case 'admin_login':
|
||||
if (($body['password'] ?? '') === ADMIN_PASSWORD) {
|
||||
$_SESSION['tykkaafi_admin'] = true;
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
<header>
|
||||
<div class="header-inner">
|
||||
<div class="logo">
|
||||
<span class="logo-icon">🍳</span>
|
||||
<h1>tykkää.fi</h1>
|
||||
<img src="logo.svg" alt="tykkää.fi" class="logo-svg" />
|
||||
</div>
|
||||
<p class="tagline" data-i18n="tagline"></p>
|
||||
<nav>
|
||||
@@ -106,16 +105,10 @@
|
||||
<input type="text" id="sub-title" placeholder="esim. Mummon mustikkapiirakka" maxlength="100" />
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label>Kategoria</label>
|
||||
<select id="sub-category"></select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Emoji</label>
|
||||
<input type="text" id="sub-emoji" placeholder="🍽️" maxlength="4" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Kirjoittaja</label>
|
||||
|
||||
17
logo.svg
Normal file
17
logo.svg
Normal file
@@ -0,0 +1,17 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 252 62" width="252" height="62" role="img" aria-label="tykkää.fi">
|
||||
<!-- Heart -->
|
||||
<path fill="#e07b39" d="M14,5.5 C14,0.5 7.5,-3 3.5,1 C-0.5,-3 -7,0.5 -7,5.5 C-7,12 3.5,20.5 3.5,20.5 C3.5,20.5 14,12 14,5.5Z" transform="translate(9,18)"/>
|
||||
<!-- tykkää -->
|
||||
<text x="36" y="46"
|
||||
font-family="Georgia, 'Times New Roman', serif"
|
||||
font-style="italic"
|
||||
font-size="44"
|
||||
fill="#ffffff"
|
||||
letter-spacing="-0.5">tykkää</text>
|
||||
<!-- .fi -->
|
||||
<text x="196" y="46"
|
||||
font-family="Georgia, 'Times New Roman', serif"
|
||||
font-style="italic"
|
||||
font-size="34"
|
||||
fill="#e8c9a8">.fi</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 701 B |
@@ -507,8 +507,9 @@ async function submitPublicPost() {
|
||||
return;
|
||||
}
|
||||
|
||||
const emoji = document.getElementById('sub-emoji').value.trim() || '📝';
|
||||
const category = document.getElementById('sub-category').value;
|
||||
const cat = APP.categories.find(c => c.id === category);
|
||||
const emoji = cat?.emoji || '📝';
|
||||
const author = document.getElementById('sub-author').value.trim() || 'Vieras';
|
||||
const desc = document.getElementById('sub-desc').value.trim();
|
||||
const images = [
|
||||
@@ -551,7 +552,7 @@ async function submitPublicPost() {
|
||||
renderCategoryFilters();
|
||||
|
||||
// Reset form fields
|
||||
['sub-title','sub-emoji','sub-author','sub-desc','sub-img1','sub-img2','sub-img3',
|
||||
['sub-title','sub-author','sub-desc','sub-img1','sub-img2','sub-img3',
|
||||
'sub-time','sub-servings','sub-ingredients','sub-steps','sub-body'].forEach(id => {
|
||||
const el = document.getElementById(id);
|
||||
if (el) el.value = '';
|
||||
|
||||
Reference in New Issue
Block a user