From 99ad293289ae2959e4d4f4cc6c447832826446c5 Mon Sep 17 00:00:00 2001 From: Henri Date: Mon, 6 Apr 2026 15:12:14 +0300 Subject: [PATCH] temporary push, with testing changes for nav and Juhatus --- src/layout/Navbar.svelte | 237 ++++++---- src/lib/locales/en/Management.json | 17 + src/lib/locales/est/Management.json | 17 + src/routes/Managment.svelte | 681 ++++++++++++++++++++++++---- 4 files changed, 778 insertions(+), 174 deletions(-) create mode 100644 src/lib/locales/en/Management.json create mode 100644 src/lib/locales/est/Management.json diff --git a/src/layout/Navbar.svelte b/src/layout/Navbar.svelte index 15d223d..b01b732 100644 --- a/src/layout/Navbar.svelte +++ b/src/layout/Navbar.svelte @@ -22,6 +22,45 @@ let isClosing = $state(false); let currentPath = $state(getPath()); + const aboutRoutes = [ + "/lapikutest", + "/aboutus", + "/tudengile", + "/student", + "/mentorid", + "/mentors", + "/juhatus", + "/management", + ]; + + const eventsRoutes = ["/kalender", "/striim", "/koolitused"]; + + function isCurrent(path) { + return currentPath === path; + } + + function isInGroup(paths) { + return paths.includes(currentPath); + } + + function navButtonClass(active = false) { + return active + ? "border-transparent text-orange-500 bg-white/5" + : "border-transparent text-white/75 hover:text-white hover:bg-white/5"; + } + + function dropdownButtonClass(active = false) { + return active + ? "border-transparent text-orange-500 bg-white/5" + : "border-transparent text-white/75 hover:text-white hover:bg-white/5"; + } + + function dropdownItemClass(active = false) { + return active + ? "bg-orange-500/10 text-orange-500" + : "bg-transparent text-black hover:text-orange-500"; + } + // Update currentPath when navigation occurs $effect(() => { const handleNavigation = () => { @@ -125,84 +164,111 @@
- - {#if $text && Object.keys($text).length > 0} -
- - {#if currentPath !== "/"} -
- -
- {/if} - -
- - +
+ + {#if $text && Object.keys($text).length > 0} +
+ - - {#if !mobileMenuOpen} - - {/if} +
+ + + {#if !mobileMenuOpen} + + {/if} +
-
- {/if} - + {/if} + +
@@ -226,33 +292,40 @@ + +

{$text.about}

diff --git a/src/lib/locales/en/Management.json b/src/lib/locales/en/Management.json new file mode 100644 index 0000000..4ada50d --- /dev/null +++ b/src/lib/locales/en/Management.json @@ -0,0 +1,17 @@ +{ + "hero": { + "eyebrow": "MTÜ Lapikud", + "title": "Management", + "intro": "People who keep the organisation moving forward." + }, + "current": { + "label": "Current board", + "hint": "Contacts and responsibilities" + }, + "history": { + "label": "People who have led the organisation over time", + "hint": "Thanks to everyone who has helped guide Lapikud" + }, + "loading": "Loading data…", + "error": "Failed to load the management data." +} diff --git a/src/lib/locales/est/Management.json b/src/lib/locales/est/Management.json new file mode 100644 index 0000000..40537d0 --- /dev/null +++ b/src/lib/locales/est/Management.json @@ -0,0 +1,17 @@ +{ + "hero": { + "eyebrow": "MTÜ Lapikud", + "title": "Juhtkond", + "intro": "Inimesed, kes viivad organisatsiooni edasi." + }, + "current": { + "label": "Praegune juhtkond", + "hint": "Kontaktid ja vastutusvaldkonnad" + }, + "history": { + "label": "Organisatsiooni juhtinud inimesed läbi aegade", + "hint": "Tänu kõigile, kes on Lapikuid juhtinud" + }, + "loading": "Laadin andmeid…", + "error": "Juhtkonna andmete laadimine ebaõnnestus." +} diff --git a/src/routes/Managment.svelte b/src/routes/Managment.svelte index 380df1e..3087ab0 100644 --- a/src/routes/Managment.svelte +++ b/src/routes/Managment.svelte @@ -1,113 +1,610 @@ - -
-
-

Praegune juhtkond

-
- - {#each currentManagement as member (member.name)} -
-
- {member.name} -
-
-

{member.name}

-

- {getLangText(member, 'role', lang)} - {getLangText(member, 'subrole', lang)} -

- - {member.email} - - - {member.phone} - -
-
- {/each} -
+
+
+ + + + +
+

{getText().hero.eyebrow}

+

{getText().hero.title}

+

{getText().hero.intro}

+
+
+
- -
- -
-

- Organisatsiooni juhtinud inimesed läbi aegade -

-
- - {#each pastManagement as yearData (yearData.year)} -
-
-

- {yearData.year} -

-
- - {#each yearData.members as member (member.name)} -
-
- {member.name} -
-

- {member.name} -

+
+ + + +
+
+

{getText().current.label}

+

{getText().current.hint}

+
+
+ + {#if loading} +

{getText().loading}

+ {:else if loadError} +

{getText().error}

+ {:else} + + {#each currentManagement as member (member.name)} +
+
+ {#if member.photo} + {member.name} + {:else} +
{getInitials(member.name)}
+ {/if} +
+ +
+
{getBoardLabel(member)}
+
{member.name}
+ +
+ {#if member.email} + + + {member.email} + + {/if} + + {#if member.phone} + + + {member.phone} + + {/if}
- {/each} - -
- {/each} - +
+ + {/each} +
+ {/if} -
\ No newline at end of file +
+ +
+ +
+ + + +
+
+

{getText().history.label}

+

{getText().history.hint}

+
+
+ + {#if loading} +

{getText().loading}

+ {:else if loadError} +

{getText().error}

+ {:else} +
+ {#each pastManagement as yearData (yearData.year)} +
+
+
+ {parseYearLabel(yearData.year).year} + {#if parseYearLabel(yearData.year).tag} + {parseYearLabel(yearData.year).tag} + {/if} +
+ +
+ + + {#each yearData.members as member (member.name)} +
+
+ {#if member.image} + {member.name} + {:else} +
{getInitials(member.name)}
+ {/if} +
+ {member.name} +
+ {/each} +
+
+ {/each} +
+ {/if} +
+
+ + \ No newline at end of file