mirror of
https://github.com/HolgerHatGarKeineNode/einundzwanzig-nostr.git
synced 2026-01-27 06:33:18 +00:00
🎨 Update color palette: replace gray with zinc across Blade templates for improved design consistency and accessibility.
🛠 Refactor forms: rename NostrAuth method for clarity and enhance Flux button usage for cleaner and reusable components.
✨ Add `WithNostrAuth` trait: refactor `show` template logic, streamline project-support handling, and improve layout readability.
This commit is contained in:
@@ -43,7 +43,7 @@ trait WithNostrAuth
|
|||||||
$this->canEdit = false;
|
$this->canEdit = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function mountNostrAuth(): void
|
public function mountWithNostrAuth(): void
|
||||||
{
|
{
|
||||||
if ($user = NostrAuth::user()) {
|
if ($user = NostrAuth::user()) {
|
||||||
$this->currentPubkey = $user->getPubkey();
|
$this->currentPubkey = $user->getPubkey();
|
||||||
|
|||||||
@@ -27,22 +27,23 @@
|
|||||||
src="{{ $project->getFirstMediaUrl('main') }}" alt="Meetup 01">
|
src="{{ $project->getFirstMediaUrl('main') }}" alt="Meetup 01">
|
||||||
<button class="absolute top-0 right-0 mt-4 mr-4">
|
<button class="absolute top-0 right-0 mt-4 mr-4">
|
||||||
<img class="rounded-full h-8 w-8"
|
<img class="rounded-full h-8 w-8"
|
||||||
src="{{ $project->einundzwanzigPleb->profile?->picture ?? asset('einundzwanzig-alpha.jpg') }}"
|
src="{{ $project->einundzwanzigPleb->profile?->picture }}"
|
||||||
|
onerror="this.src='{{ asset('einundzwanzig-alpha.jpg') }}'"
|
||||||
alt="">
|
alt="">
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
@else
|
@else
|
||||||
<div
|
<a class="relative block w-24 sm:w-56 xl:sidebar-expanded:w-40 2xl:sidebar-expanded:w-56 shrink-0"
|
||||||
class="relative block w-24 sm:w-56 xl:sidebar-expanded:w-40 2xl:sidebar-expanded:w-56 shrink-0"
|
|
||||||
href="{{ route('association.projectSupport.item', ['projectProposal' => $project]) }}">
|
href="{{ route('association.projectSupport.item', ['projectProposal' => $project]) }}">
|
||||||
<img class="absolute object-cover object-center w-full h-full"
|
<img class="absolute object-cover object-center w-full h-full"
|
||||||
src="{{ $project->getFirstMediaUrl('main') }}" alt="Meetup 01">
|
src="{{ $project->getFirstMediaUrl('main') }}" alt="Meetup 01">
|
||||||
<button class="absolute top-0 right-0 mt-4 mr-4">
|
<button class="absolute top-0 right-0 mt-4 mr-4">
|
||||||
<img class="rounded-full h-8 w-8"
|
<img class="rounded-full h-8 w-8"
|
||||||
src="{{ $project->einundzwanzigPleb->profile?->picture ?? asset('einundzwanzig-alpha.jpg') }}"
|
src="{{ $project->einundzwanzigPleb->profile?->picture }}"
|
||||||
|
onerror="this.src='{{ asset('einundzwanzig-alpha.jpg') }}'"
|
||||||
alt="">
|
alt="">
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</a>
|
||||||
@endif
|
@endif
|
||||||
<!-- Content -->
|
<!-- Content -->
|
||||||
<div class="grow p-5 flex flex-col">
|
<div class="grow p-5 flex flex-col">
|
||||||
@@ -63,21 +64,17 @@
|
|||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
<div class="flex justify-between items-center mt-3">
|
<div class="flex justify-between items-center mt-3">
|
||||||
<!-- Tag -->
|
<!-- Tag -->
|
||||||
|
<flux:badge color="amber">{{ number_format($project->support_in_sats, 0, ',', '.') }} Sats</flux:badge>
|
||||||
<div
|
<div
|
||||||
class="text-xs inline-flex items-center font-bold border border-gray-200 dark:border-gray-700/60 text-gray-600 dark:text-gray-200 rounded-full text-center px-2.5 py-1">
|
class="text-xs inline-flex items-center font-bold border border-gray-200 dark:border-gray-700/60 text-gray-600 dark:text-gray-200 rounded-full text-center px-2.5 py-1">
|
||||||
<span>{{ number_format($project->support_in_sats, 0, ',', '.') }} Sats</span>
|
<flux:link href="{{ $project->website }}" target="_blank">Webseite</flux:link>
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="text-xs inline-flex items-center font-bold border border-gray-200 dark:border-gray-700/60 text-gray-600 dark:text-gray-200 rounded-full text-center px-2.5 py-1">
|
|
||||||
<a href="{{ $project->website }}" target="_blank">Webseite</a>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Avatars -->
|
<!-- Avatars -->
|
||||||
@if($project->votes->where('value', true)->count() > 0)
|
@if($project->votes->where('value', true)->count() > 0)
|
||||||
<div class="hidden sm:flex items-center space-x-2">
|
<div class="hidden sm:flex items-center space-x-2">
|
||||||
<div class="text-xs font-medium text-gray-400 dark:text-gray-300 italic">
|
<flux:badge>
|
||||||
Anzahl der Unterstützer:
|
Anzahl der Unterstützer: +{{ $project->votes->where('value', true)->count() }}
|
||||||
+{{ $project->votes->where('value', true)->count() }}
|
</flux:badge>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
@@ -113,7 +110,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="py-2">
|
<div class="py-2">
|
||||||
@if($project->sats_paid)
|
@if($project->sats_paid)
|
||||||
<flux:badge color="green">Wurde mit {{ number_format($project->sats_paid, 0, ',', '.') }} Sats unterstützt</flux:badge>
|
<flux:badge color="green">Wurde mit {{ number_format($project->sats_paid, 0, ',', '.') }} Sats
|
||||||
|
unterstützt
|
||||||
|
</flux:badge>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ new class extends Component {
|
|||||||
|
|
||||||
<!-- Left: Title -->
|
<!-- Left: Title -->
|
||||||
<div class="mb-4 sm:mb-0">
|
<div class="mb-4 sm:mb-0">
|
||||||
<h1 class="text-2xl md:text-3xl text-gray-800 dark:text-gray-100 font-bold">
|
<h1 class="text-2xl md:text-3xl text-zinc-800 dark:text-zinc-100 font-bold">
|
||||||
Wahl des Vorstands {{ $election->year }}
|
Wahl des Vorstands {{ $election->year }}
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
@@ -183,9 +183,9 @@ new class extends Component {
|
|||||||
<!-- Cards -->
|
<!-- Cards -->
|
||||||
<div class="grid gap-y-4">
|
<div class="grid gap-y-4">
|
||||||
<div wire:key="presidency" wire:ignore
|
<div wire:key="presidency" wire:ignore
|
||||||
class="flex flex-col bg-white dark:bg-gray-800 shadow-sm rounded-xl">
|
class="flex flex-col bg-white dark:bg-zinc-800 shadow-sm rounded-xl">
|
||||||
<header class="px-5 py-4 border-b border-gray-100 dark:border-gray-700/60">
|
<header class="px-5 py-4 border-b border-zinc-100 dark:border-zinc-700/60">
|
||||||
<h2 class="font-semibold text-gray-800 dark:text-gray-100"><i
|
<h2 class="font-semibold text-zinc-800 dark:text-zinc-100"><i
|
||||||
class="fa-sharp-duotone fa-solid {{ $president['icon'] }} w-5 h-5 fill-current text-white mr-4"></i>{{ $president['title'] }}
|
class="fa-sharp-duotone fa-solid {{ $president['icon'] }} w-5 h-5 fill-current text-white mr-4"></i>{{ $president['title'] }}
|
||||||
</h2>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
@@ -196,9 +196,9 @@ new class extends Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div wire:key="board" wire:ignore
|
<div wire:key="board" wire:ignore
|
||||||
class="flex flex-col bg-white dark:bg-gray-800 shadow-sm rounded-xl">
|
class="flex flex-col bg-white dark:bg-zinc-800 shadow-sm rounded-xl">
|
||||||
<header class="px-5 py-4 border-b border-gray-100 dark:border-gray-700/60">
|
<header class="px-5 py-4 border-b border-zinc-100 dark:border-zinc-700/60">
|
||||||
<h2 class="font-semibold text-gray-800 dark:text-gray-100"><i
|
<h2 class="font-semibold text-zinc-800 dark:text-zinc-100"><i
|
||||||
class="fa-sharp-duotone fa-solid {{ $board['icon'] }} w-5 h-5 fill-current text-white mr-4"></i>{{ $board['title'] }}
|
class="fa-sharp-duotone fa-solid {{ $board['icon'] }} w-5 h-5 fill-current text-white mr-4"></i>{{ $board['title'] }}
|
||||||
</h2>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ new class extends Component {
|
|||||||
->get()
|
->get()
|
||||||
->map(function ($p) use ($loadedEvents, $c) {
|
->map(function ($p) use ($loadedEvents, $c) {
|
||||||
$votedClass = ' bg-green-500/20 text-green-700';
|
$votedClass = ' bg-green-500/20 text-green-700';
|
||||||
$notVotedClass = ' bg-gray-500/20 text-gray-100';
|
$notVotedClass = ' bg-zinc-500/20 text-zinc-100';
|
||||||
$hasVoted = $loadedEvents
|
$hasVoted = $loadedEvents
|
||||||
->filter(fn ($e) => $e['type'] === $c['type'] && $e['pubkey'] === $this->currentPubkey)
|
->filter(fn ($e) => $e['type'] === $c['type'] && $e['pubkey'] === $this->currentPubkey)
|
||||||
->firstWhere('votedFor.pubkey', $p->pubkey);
|
->firstWhere('votedFor.pubkey', $p->pubkey);
|
||||||
@@ -158,7 +158,7 @@ new class extends Component {
|
|||||||
->get()
|
->get()
|
||||||
->map(function ($p) use ($loadedBoardEvents, $c) {
|
->map(function ($p) use ($loadedBoardEvents, $c) {
|
||||||
$votedClass = ' bg-green-500/20 text-green-700';
|
$votedClass = ' bg-green-500/20 text-green-700';
|
||||||
$notVotedClass = ' bg-gray-500/20 text-gray-100';
|
$notVotedClass = ' bg-zinc-500/20 text-zinc-100';
|
||||||
$hasVoted = $loadedBoardEvents
|
$hasVoted = $loadedBoardEvents
|
||||||
->filter(fn ($e) => $e['type'] === $c['type'] && $e['pubkey'] === $this->currentPubkey)
|
->filter(fn ($e) => $e['type'] === $c['type'] && $e['pubkey'] === $this->currentPubkey)
|
||||||
->firstWhere('votedFor.pubkey', $p->pubkey);
|
->firstWhere('votedFor.pubkey', $p->pubkey);
|
||||||
@@ -311,13 +311,13 @@ new class extends Component {
|
|||||||
class="absolute z-20 top-0 bottom-0 w-full md:w-auto md:static md:top-auto md:bottom-auto -mr-px md:translate-x-0 transition-transform duration-200 ease-in-out"
|
class="absolute z-20 top-0 bottom-0 w-full md:w-auto md:static md:top-auto md:bottom-auto -mr-px md:translate-x-0 transition-transform duration-200 ease-in-out"
|
||||||
:class="inboxSidebarOpen ? 'translate-x-0' : '-translate-x-full'">
|
:class="inboxSidebarOpen ? 'translate-x-0' : '-translate-x-full'">
|
||||||
<div
|
<div
|
||||||
class="sticky top-16 bg-white dark:bg-[#1B1B1B] overflow-x-hidden overflow-y-auto no-scrollbar shrink-0 border-r border-gray-200 dark:border-gray-700/60 md:w-[18rem] xl:w-[20rem] h-[calc(100dvh-64px)]">
|
class="sticky top-16 bg-white dark:bg-[#1B1B1B] overflow-x-hidden overflow-y-auto no-scrollbar shrink-0 border-r border-zinc-200 dark:border-zinc-700/60 md:w-[18rem] xl:w-[20rem] h-[calc(100dvh-64px)]">
|
||||||
|
|
||||||
<!-- #Marketing group -->
|
<!-- #Marketing group -->
|
||||||
<div>
|
<div>
|
||||||
<!-- Group header -->
|
<!-- Group header -->
|
||||||
<div class="sticky top-0 z-10">
|
<div class="sticky top-0 z-10">
|
||||||
<div class="flex items-center bg-white dark:bg-[#1B1B1B] border-b border-gray-200 dark:border-gray-700/60 px-5 h-16">
|
<div class="flex items-center bg-white dark:bg-[#1B1B1B] border-b border-zinc-200 dark:border-zinc-700/60 px-5 h-16">
|
||||||
<div class="w-full flex items-center justify-between">
|
<div class="w-full flex items-center justify-between">
|
||||||
<!-- Channel menu -->
|
<!-- Channel menu -->
|
||||||
<div class="relative" x-data="{ open: false }">
|
<div class="relative" x-data="{ open: false }">
|
||||||
@@ -325,16 +325,16 @@ new class extends Component {
|
|||||||
@click.prevent="open = !open" :aria-expanded="open">
|
@click.prevent="open = !open" :aria-expanded="open">
|
||||||
<div class="truncate">
|
<div class="truncate">
|
||||||
<span
|
<span
|
||||||
class="font-semibold text-gray-800 dark:text-gray-100">2024</span>
|
class="font-semibold text-zinc-800 dark:text-zinc-100">2024</span>
|
||||||
</div>
|
</div>
|
||||||
<svg
|
<svg
|
||||||
class="w-3 h-3 shrink-0 ml-1 fill-current text-gray-400 dark:text-gray-500"
|
class="w-3 h-3 shrink-0 ml-1 fill-current text-zinc-400 dark:text-zinc-500"
|
||||||
viewBox="0 0 12 12">
|
viewBox="0 0 12 12">
|
||||||
<path d="M5.9 11.4L.5 6l1.4-1.4 4 4 4-4L11.3 6z"/>
|
<path d="M5.9 11.4L.5 6l1.4-1.4 4 4 4-4L11.3 6z"/>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<div
|
<div
|
||||||
class="origin-top-right z-10 absolute top-full left-0 min-w-60 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700/60 py-1.5 rounded-lg shadow-lg overflow-hidden mt-1"
|
class="origin-top-right z-10 absolute top-full left-0 min-w-60 bg-white dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700/60 py-1.5 rounded-lg shadow-lg overflow-hidden mt-1"
|
||||||
@click.outside="open = false" @keydown.escape.window="open = false"
|
@click.outside="open = false" @keydown.escape.window="open = false"
|
||||||
x-show="open"
|
x-show="open"
|
||||||
x-transition:enter="transition ease-out duration-200 transform"
|
x-transition:enter="transition ease-out duration-200 transform"
|
||||||
@@ -346,7 +346,7 @@ new class extends Component {
|
|||||||
x-cloak>
|
x-cloak>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a class="font-medium text-sm text-gray-600 dark:text-gray-300 hover:text-gray-800 dark:hover:text-gray-200 block py-1.5 px-3"
|
<a class="font-medium text-sm text-zinc-600 dark:text-zinc-300 hover:text-zinc-800 dark:hover:text-zinc-200 block py-1.5 px-3"
|
||||||
href="#0" @click="open = false" @focus="open = true"
|
href="#0" @click="open = false" @focus="open = true"
|
||||||
@focusout="open = false">
|
@focusout="open = false">
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
@@ -375,11 +375,11 @@ new class extends Component {
|
|||||||
<label for="inbox-search" class="sr-only">Search</label>
|
<label for="inbox-search" class="sr-only">Search</label>
|
||||||
<input
|
<input
|
||||||
wire:model.live.debounce="search"
|
wire:model.live.debounce="search"
|
||||||
id="inbox-search" class="form-input w-full pl-9 bg-white dark:bg-gray-800"
|
id="inbox-search" class="form-input w-full pl-9 bg-white dark:bg-zinc-800"
|
||||||
type="search" placeholder="Suche…"/>
|
type="search" placeholder="Suche…"/>
|
||||||
<button class="absolute inset-0 right-auto group" type="submit" aria-label="Search">
|
<button class="absolute inset-0 right-auto group" type="submit" aria-label="Search">
|
||||||
<svg
|
<svg
|
||||||
class="shrink-0 fill-current text-gray-400 dark:text-gray-500 group-hover:text-gray-500 dark:group-hover:text-gray-400 ml-3 mr-2"
|
class="shrink-0 fill-current text-zinc-400 dark:text-zinc-500 group-hover:text-zinc-500 dark:group-hover:text-zinc-400 ml-3 mr-2"
|
||||||
width="16" height="16" viewBox="0 0 16 16"
|
width="16" height="16" viewBox="0 0 16 16"
|
||||||
xmlns="http://www.w3.org/2000/svg">
|
xmlns="http://www.w3.org/2000/svg">
|
||||||
<path
|
<path
|
||||||
@@ -391,7 +391,7 @@ new class extends Component {
|
|||||||
</form>
|
</form>
|
||||||
<!-- Inbox -->
|
<!-- Inbox -->
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<div class="text-xs font-semibold text-gray-400 dark:text-gray-500 uppercase mb-3">
|
<div class="text-xs font-semibold text-zinc-400 dark:text-zinc-500 uppercase mb-3">
|
||||||
Plebs
|
Plebs
|
||||||
</div>
|
</div>
|
||||||
<ul class="mb-6">
|
<ul class="mb-6">
|
||||||
@@ -408,16 +408,16 @@ new class extends Component {
|
|||||||
<div class="flex items-center justify-between mb-1.5">
|
<div class="flex items-center justify-between mb-1.5">
|
||||||
<div class="truncate">
|
<div class="truncate">
|
||||||
<span
|
<span
|
||||||
class="text-sm font-semibold text-gray-800 dark:text-gray-100 truncate">{{ $pleb['profile']['name'] ?? $pleb['pubkey'] }}</span>
|
class="text-sm font-semibold text-zinc-800 dark:text-zinc-100 truncate">{{ $pleb['profile']['name'] ?? $pleb['pubkey'] }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-xs text-gray-500 font-medium">
|
<div class="text-xs text-zinc-500 font-medium">
|
||||||
<x-badge
|
<x-badge
|
||||||
:color="\App\Enums\AssociationStatus::from($pleb['association_status'])->color()"
|
:color="\App\Enums\AssociationStatus::from($pleb['association_status'])->color()"
|
||||||
:label="\App\Enums\AssociationStatus::from($pleb['association_status'])->label()"/>
|
:label="\App\Enums\AssociationStatus::from($pleb['association_status'])->label()"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="text-xs font-medium text-gray-800 dark:text-gray-100 truncate mb-0.5">
|
class="text-xs font-medium text-zinc-800 dark:text-zinc-100 truncate mb-0.5">
|
||||||
<div class="flex items-center space-x-2 h-5">
|
<div class="flex items-center space-x-2 h-5">
|
||||||
@foreach($positions as $name => $p)
|
@foreach($positions as $name => $p)
|
||||||
@php
|
@php
|
||||||
@@ -451,7 +451,7 @@ new class extends Component {
|
|||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="sticky top-16">
|
<div class="sticky top-16">
|
||||||
<div
|
<div
|
||||||
class="flex items-center justify-between before:absolute before:inset-0 before:backdrop-blur-md before:bg-gray-50/90 dark:before:bg-[#1B1B1B]/90 before:-z-10 border-b border-gray-200 dark:border-gray-700/60 px-4 sm:px-6 md:px-5 h-16">
|
class="flex items-center justify-between before:absolute before:inset-0 before:backdrop-blur-md before:bg-zinc-50/90 dark:before:bg-[#1B1B1B]/90 before:-z-10 border-b border-zinc-200 dark:border-zinc-700/60 px-4 sm:px-6 md:px-5 h-16">
|
||||||
<div
|
<div
|
||||||
class="flex flex-col space-y-2 sm:space-y-0 sm:flex-row justify-between items-center w-full">
|
class="flex flex-col space-y-2 sm:space-y-0 sm:flex-row justify-between items-center w-full">
|
||||||
<div>
|
<div>
|
||||||
@@ -476,7 +476,7 @@ new class extends Component {
|
|||||||
|
|
||||||
<!-- Mail subject -->
|
<!-- Mail subject -->
|
||||||
<header class="sm:flex sm:items-start space-x-4 mb-4">
|
<header class="sm:flex sm:items-start space-x-4 mb-4">
|
||||||
<h1 class="text-xl leading-snug text-gray-800 dark:text-gray-100 font-bold mb-1 sm:mb-0 ml-2">
|
<h1 class="text-xl leading-snug text-zinc-800 dark:text-zinc-100 font-bold mb-1 sm:mb-0 ml-2">
|
||||||
Wahlen
|
Wahlen
|
||||||
</h1>
|
</h1>
|
||||||
<button
|
<button
|
||||||
@@ -487,11 +487,11 @@ new class extends Component {
|
|||||||
|
|
||||||
<!-- Messages box -->
|
<!-- Messages box -->
|
||||||
<div
|
<div
|
||||||
class="shadow-sm rounded-xl px-6 divide-y divide-gray-200 dark:divide-gray-700/60">
|
class="shadow-sm rounded-xl px-6 divide-y divide-zinc-200 dark:divide-zinc-700/60">
|
||||||
|
|
||||||
<!-- Mail -->
|
<!-- Mail -->
|
||||||
<div class="py-6">
|
<div class="py-6">
|
||||||
<h1 class="text-xl leading-snug text-gray-800 dark:text-gray-100 font-bold mb-1 sm:mb-0 ml-2">
|
<h1 class="text-xl leading-snug text-zinc-800 dark:text-zinc-100 font-bold mb-1 sm:mb-0 ml-2">
|
||||||
Wahl des Präsidiums
|
Wahl des Präsidiums
|
||||||
</h1>
|
</h1>
|
||||||
<div class="grid sm:grid-cols-2 gap-6">
|
<div class="grid sm:grid-cols-2 gap-6">
|
||||||
@@ -503,7 +503,7 @@ new class extends Component {
|
|||||||
</header>
|
</header>
|
||||||
<div class="grow mt-2">
|
<div class="grow mt-2">
|
||||||
<div
|
<div
|
||||||
class="inline-flex text-gray-800 dark:text-gray-100 hover:text-gray-900 dark:hover:text-white mb-1">
|
class="inline-flex text-zinc-800 dark:text-zinc-100 hover:text-zinc-900 dark:hover:text-white mb-1">
|
||||||
<h2 class="text-xl leading-snug font-semibold">{{ $positions['presidency']['title'] }}</h2>
|
<h2 class="text-xl leading-snug font-semibold">{{ $positions['presidency']['title'] }}</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-sm">
|
<div class="text-sm">
|
||||||
@@ -541,7 +541,7 @@ new class extends Component {
|
|||||||
</flux:card>
|
</flux:card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1 class="mt-6 text-xl leading-snug text-gray-800 dark:text-gray-100 font-bold mb-1 sm:mb-0 ml-2">
|
<h1 class="mt-6 text-xl leading-snug text-zinc-800 dark:text-zinc-100 font-bold mb-1 sm:mb-0 ml-2">
|
||||||
Wahl der übrigen Vorstandsmitglieder
|
Wahl der übrigen Vorstandsmitglieder
|
||||||
</h1>
|
</h1>
|
||||||
<div class="grid gap-6">
|
<div class="grid gap-6">
|
||||||
@@ -583,18 +583,18 @@ new class extends Component {
|
|||||||
<div x-cloak x-show="showLog" class="mt-6 hidden sm:block">
|
<div x-cloak x-show="showLog" class="mt-6 hidden sm:block">
|
||||||
<flux:card mb-8>
|
<flux:card mb-8>
|
||||||
<header class="px-5 py-4">
|
<header class="px-5 py-4">
|
||||||
<h2 class="font-semibold text-gray-800 dark:text-gray-100">Präsidium Log <span
|
<h2 class="font-semibold text-zinc-800 dark:text-zinc-100">Präsidium Log <span
|
||||||
class="text-gray-400 dark:text-gray-500 font-medium">{{ count($this->loadedEvents) }}</span>
|
class="text-zinc-400 dark:text-zinc-500 font-medium">{{ count($this->loadedEvents) }}</span>
|
||||||
</h2>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div>
|
<div>
|
||||||
<!-- Table -->
|
<!-- Table -->
|
||||||
<div class="overflow-x-auto">
|
<div class="overflow-x-auto">
|
||||||
<table
|
<table
|
||||||
class="table-auto w-full dark:text-gray-300 divide-y divide-gray-100 dark:divide-gray-700/60">
|
class="table-auto w-full dark:text-zinc-300 divide-y divide-zinc-100 dark:divide-zinc-700/60">
|
||||||
<!-- Table header -->
|
<!-- Table header -->
|
||||||
<thead
|
<thead
|
||||||
class="text-xs uppercase text-gray-500 dark:text-gray-400 bg-gray-50 dark:bg-gray-900/20 border-t border-gray-100 dark:border-gray-700/60">
|
class="text-xs uppercase text-zinc-500 dark:text-zinc-400 bg-zinc-50 dark:bg-zinc-900/20 border-t border-zinc-100 dark:border-zinc-700/60">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
<th class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
||||||
<div class="font-semibold text-left">ID</div>
|
<div class="font-semibold text-left">ID</div>
|
||||||
@@ -650,18 +650,18 @@ new class extends Component {
|
|||||||
<div x-cloak x-show="showLog" class="mt-6 hidden sm:block">
|
<div x-cloak x-show="showLog" class="mt-6 hidden sm:block">
|
||||||
<flux:card mb-8>
|
<flux:card mb-8>
|
||||||
<header class="px-5 py-4">
|
<header class="px-5 py-4">
|
||||||
<h2 class="font-semibold text-gray-800 dark:text-gray-100">Board Log <span
|
<h2 class="font-semibold text-zinc-800 dark:text-zinc-100">Board Log <span
|
||||||
class="text-gray-400 dark:text-gray-500 font-medium">{{ count($this->loadedBoardEvents) }}</span>
|
class="text-zinc-400 dark:text-zinc-500 font-medium">{{ count($this->loadedBoardEvents) }}</span>
|
||||||
</h2>
|
</h2>
|
||||||
</header>
|
</header>
|
||||||
<div>
|
<div>
|
||||||
<!-- Table -->
|
<!-- Table -->
|
||||||
<div class="overflow-x-auto">
|
<div class="overflow-x-auto">
|
||||||
<table
|
<table
|
||||||
class="table-auto w-full dark:text-gray-300 divide-y divide-gray-100 dark:divide-gray-700/60">
|
class="table-auto w-full dark:text-zinc-300 divide-y divide-zinc-100 dark:divide-zinc-700/60">
|
||||||
<!-- Table header -->
|
<!-- Table header -->
|
||||||
<thead
|
<thead
|
||||||
class="text-xs uppercase text-gray-500 dark:text-gray-400 bg-gray-50 dark:bg-gray-900/20 border-t border-gray-100 dark:border-gray-700/60">
|
class="text-xs uppercase text-zinc-500 dark:text-zinc-400 bg-zinc-50 dark:bg-zinc-900/20 border-t border-zinc-100 dark:border-zinc-700/60">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
<th class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
||||||
<div class="font-semibold text-left">ID</div>
|
<div class="font-semibold text-left">ID</div>
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ class extends Component {
|
|||||||
|
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<header class="mb-6">
|
<header class="mb-6">
|
||||||
<h1 class="text-2xl md:text-3xl text-gray-800 dark:text-gray-100 font-bold">
|
<h1 class="text-2xl md:text-3xl text-zinc-800 dark:text-zinc-100 font-bold">
|
||||||
News
|
News
|
||||||
</h1>
|
</h1>
|
||||||
</header>
|
</header>
|
||||||
@@ -142,7 +142,7 @@ class extends Component {
|
|||||||
<!-- Group 1 -->
|
<!-- Group 1 -->
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div
|
||||||
class="text-xs font-semibold text-gray-400 dark:text-gray-500 uppercase mb-3 md:sr-only">
|
class="text-xs font-semibold text-zinc-400 dark:text-zinc-500 uppercase mb-3 md:sr-only">
|
||||||
Menu
|
Menu
|
||||||
</div>
|
</div>
|
||||||
<ul class="flex flex-nowrap md:block mr-3 md:mr-0">
|
<ul class="flex flex-nowrap md:block mr-3 md:mr-0">
|
||||||
@@ -180,7 +180,7 @@ class extends Component {
|
|||||||
<!-- Content -->
|
<!-- Content -->
|
||||||
<div class="grow">
|
<div class="grow">
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<h2 class="font-semibold text-gray-800 dark:text-gray-100 mb-2">
|
<h2 class="font-semibold text-zinc-800 dark:text-zinc-100 mb-2">
|
||||||
{{ $post->name }}
|
{{ $post->name }}
|
||||||
</h2>
|
</h2>
|
||||||
<p class="mb-6">
|
<p class="mb-6">
|
||||||
@@ -189,7 +189,7 @@ class extends Component {
|
|||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
<footer class="flex flex-wrap text-sm">
|
<footer class="flex flex-wrap text-sm">
|
||||||
<div
|
<div
|
||||||
class="flex items-center after:block after:content-['·'] last:after:content-[''] after:text-sm after:text-gray-400 dark:after:text-gray-600 after:px-2">
|
class="flex items-center after:block after:content-['·'] last:after:content-[''] after:text-sm after:text-zinc-400 dark:after:text-zinc-600 after:px-2">
|
||||||
<div
|
<div
|
||||||
class="font-medium text-amber-500 hover:text-amber-600 dark:hover:text-amber-400">
|
class="font-medium text-amber-500 hover:text-amber-600 dark:hover:text-amber-400">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
@@ -204,9 +204,9 @@ class extends Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="flex items-center after:block after:content-['·'] last:after:content-[''] after:text-sm after:text-gray-400 dark:after:text-gray-600 after:px-2">
|
class="flex items-center after:block after:content-['·'] last:after:content-[''] after:text-sm after:text-zinc-400 dark:after:text-zinc-600 after:px-2">
|
||||||
<span
|
<span
|
||||||
class="text-gray-500">{{ $post->created_at->format('d.m.Y') }}</span>
|
class="text-zinc-500">{{ $post->created_at->format('d.m.Y') }}</span>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
@@ -274,7 +274,7 @@ class extends Component {
|
|||||||
@if($canEdit)
|
@if($canEdit)
|
||||||
<flux:card>
|
<flux:card>
|
||||||
<div
|
<div
|
||||||
class="text-xs font-semibold text-gray-400 dark:text-gray-200 uppercase mb-4">
|
class="text-xs font-semibold text-zinc-400 dark:text-zinc-200 uppercase mb-4">
|
||||||
News anlegen
|
News anlegen
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-4 flex flex-col space-y-2">
|
<div class="mt-4 flex flex-col space-y-2">
|
||||||
@@ -348,7 +348,7 @@ class extends Component {
|
|||||||
<flux:heading>Zugriff auf News nicht möglich</flux:heading>
|
<flux:heading>Zugriff auf News nicht möglich</flux:heading>
|
||||||
<p>Um die News einzusehen, benötigst du:</p>
|
<p>Um die News einzusehen, benötigst du:</p>
|
||||||
<ul class="list-disc ml-5 mt-2 space-y-1">
|
<ul class="list-disc ml-5 mt-2 space-y-1">
|
||||||
<li>Einen Vereinsstatus von mindestens 2 (Aktives Mitglied)</li>
|
<li>Einen Vereinsstatus von "Aktives Mitglied"</li>
|
||||||
<li>Eine bezahlte Mitgliedschaft für das aktuelle Jahr ({{ date('Y') }})</li>
|
<li>Eine bezahlte Mitgliedschaft für das aktuelle Jahr ({{ date('Y') }})</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="mt-3">
|
<p class="mt-3">
|
||||||
|
|||||||
@@ -295,7 +295,7 @@ new class extends Component {
|
|||||||
<div>
|
<div>
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mb-8">
|
<div class="mb-8">
|
||||||
<h1 class="text-2xl md:text-3xl text-[#1B1B1B] dark:text-gray-100 font-bold">
|
<h1 class="text-2xl md:text-3xl text-[#1B1B1B] dark:text-zinc-100 font-bold">
|
||||||
Einundzwanzig ist, was du draus machst
|
Einundzwanzig ist, was du draus machst
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
@@ -321,10 +321,10 @@ new class extends Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-1 min-w-0">
|
<div class="flex-1 min-w-0">
|
||||||
<h3 class="text-lg font-semibold text-gray-800 dark:text-gray-100 mb-1">
|
<h3 class="text-lg font-semibold text-zinc-800 dark:text-zinc-100 mb-1">
|
||||||
Nostr Relay
|
Nostr Relay
|
||||||
</h3>
|
</h3>
|
||||||
<p class="text-sm text-gray-600 dark:text-gray-400">
|
<p class="text-sm text-zinc-600 dark:text-zinc-400">
|
||||||
Exklusive Schreib-Rechte auf Premium Nostr Relay von Einundzwanzig.
|
Exklusive Schreib-Rechte auf Premium Nostr Relay von Einundzwanzig.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -342,10 +342,10 @@ new class extends Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-1 min-w-0">
|
<div class="flex-1 min-w-0">
|
||||||
<h3 class="text-lg font-semibold text-gray-800 dark:text-gray-100 mb-1">
|
<h3 class="text-lg font-semibold text-zinc-800 dark:text-zinc-100 mb-1">
|
||||||
Get NIP-05 verified
|
Get NIP-05 verified
|
||||||
</h3>
|
</h3>
|
||||||
<p class="text-sm text-gray-600 dark:text-gray-400">
|
<p class="text-sm text-zinc-600 dark:text-zinc-400">
|
||||||
Verifiziere deine Identität mit einem menschenlesbaren Nostr-Namen.
|
Verifiziere deine Identität mit einem menschenlesbaren Nostr-Namen.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -378,8 +378,8 @@ new class extends Component {
|
|||||||
|
|
||||||
<!-- Rules Info -->
|
<!-- Rules Info -->
|
||||||
<div
|
<div
|
||||||
class="mt-3 p-3 bg-white/50 dark:bg-gray-800/50 rounded border border-gray-200 dark:border-gray-600">
|
class="mt-3 p-3 bg-white/50 dark:bg-zinc-800/50 rounded border border-zinc-200 dark:border-zinc-600">
|
||||||
<p class="text-xs text-gray-600 dark:text-gray-400 leading-relaxed">
|
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||||
<strong>Regeln für dein Handle:</strong> Nur Kleinbuchstaben (a-z), Zahlen
|
<strong>Regeln für dein Handle:</strong> Nur Kleinbuchstaben (a-z), Zahlen
|
||||||
(0-9) und die Zeichen "-" und "_" sind erlaubt. Dein Handle wird automatisch
|
(0-9) und die Zeichen "-" und "_" sind erlaubt. Dein Handle wird automatisch
|
||||||
kleingeschrieben.
|
kleingeschrieben.
|
||||||
@@ -388,8 +388,8 @@ new class extends Component {
|
|||||||
|
|
||||||
<!-- Explanation -->
|
<!-- Explanation -->
|
||||||
<div
|
<div
|
||||||
class="mt-4 p-3 bg-white/50 dark:bg-gray-800/50 rounded border border-gray-200 dark:border-gray-600">
|
class="mt-4 p-3 bg-white/50 dark:bg-zinc-800/50 rounded border border-zinc-200 dark:border-zinc-600">
|
||||||
<p class="text-xs text-gray-600 dark:text-gray-400 leading-relaxed">
|
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||||
<flux:link href="https://nostr.how/en/guides/get-verified#self-hosted"
|
<flux:link href="https://nostr.how/en/guides/get-verified#self-hosted"
|
||||||
target="_blank">NIP-05
|
target="_blank">NIP-05
|
||||||
</flux:link>
|
</flux:link>
|
||||||
@@ -401,7 +401,7 @@ new class extends Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
<div class="text-xs text-gray-500 dark:text-gray-400 italic">
|
<div class="text-xs text-zinc-500 dark:text-zinc-400 italic">
|
||||||
Aktiviere deine Mitgliedschaft, um NIP-05 zu verifizieren.
|
Aktiviere deine Mitgliedschaft, um NIP-05 zu verifizieren.
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@@ -413,10 +413,10 @@ new class extends Component {
|
|||||||
<div class="flex items-start gap-3">
|
<div class="flex items-start gap-3">
|
||||||
<i class="fa-sharp-duotone fa-solid fa-star text-amber-500 mt-0.5"></i>
|
<i class="fa-sharp-duotone fa-solid fa-star text-amber-500 mt-0.5"></i>
|
||||||
<div>
|
<div>
|
||||||
<p class="font-medium text-gray-800 dark:text-gray-100">
|
<p class="font-medium text-zinc-800 dark:text-zinc-100">
|
||||||
Mehr Vorteile kommen bald!
|
Mehr Vorteile kommen bald!
|
||||||
</p>
|
</p>
|
||||||
<p class="text-sm text-gray-600 dark:text-gray-400 mt-1">
|
<p class="text-sm text-zinc-600 dark:text-zinc-400 mt-1">
|
||||||
Wir arbeiten ständig daran, unsere Mitglieder-Vorteile auszubauen.
|
Wir arbeiten ständig daran, unsere Mitglieder-Vorteile auszubauen.
|
||||||
Bleib dran für neue exklusive Services und Kooperationen.
|
Bleib dran für neue exklusive Services und Kooperationen.
|
||||||
</p>
|
</p>
|
||||||
@@ -434,16 +434,16 @@ new class extends Component {
|
|||||||
<flux:callout variant="info">
|
<flux:callout variant="info">
|
||||||
<div class="flex items-start gap-4">
|
<div class="flex items-start gap-4">
|
||||||
<img
|
<img
|
||||||
class="w-12 h-12 rounded-full shrink-0 border-2 border-gray-200 dark:border-gray-600"
|
class="w-12 h-12 rounded-full shrink-0 border-2 border-zinc-200 dark:border-zinc-600"
|
||||||
src="{{ $currentPleb->profile?->picture ?? asset('apple-touch-icon.png') }}"
|
src="{{ $currentPleb->profile?->picture ?? asset('apple-touch-icon.png') }}"
|
||||||
alt="Avatar"
|
alt="Avatar"
|
||||||
>
|
>
|
||||||
<div class="flex-1 min-w-0">
|
<div class="flex-1 min-w-0">
|
||||||
<div class="mb-2">
|
<div class="mb-2">
|
||||||
<h4 class="font-semibold text-gray-800 dark:text-gray-100 text-base">
|
<h4 class="font-semibold text-zinc-800 dark:text-zinc-100 text-base">
|
||||||
{{ $currentPleb->profile?->display_name ?? $currentPleb->profile?->name ?? 'Unbekannt' }}
|
{{ $currentPleb->profile?->display_name ?? $currentPleb->profile?->name ?? 'Unbekannt' }}
|
||||||
</h4>
|
</h4>
|
||||||
<p class="text-xs text-gray-500 dark:text-gray-400 mt-0.5">
|
<p class="text-xs text-zinc-500 dark:text-zinc-400 mt-0.5">
|
||||||
@if($currentPleb->profile?->name)
|
@if($currentPleb->profile?->name)
|
||||||
{{ $currentPleb->profile->name }}
|
{{ $currentPleb->profile->name }}
|
||||||
@endif
|
@endif
|
||||||
@@ -451,24 +451,24 @@ new class extends Component {
|
|||||||
</div>
|
</div>
|
||||||
<div class="space-y-1 text-xs">
|
<div class="space-y-1 text-xs">
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<span class="text-gray-500 dark:text-gray-400 shrink-0">Pubkey:</span>
|
<span class="text-zinc-500 dark:text-zinc-400 shrink-0">Pubkey:</span>
|
||||||
<code
|
<code
|
||||||
class="bg-gray-100 dark:bg-gray-800 px-2 py-0.5 rounded text-gray-700 dark:text-gray-300 truncate font-mono">
|
class="bg-zinc-100 dark:bg-zinc-800 px-2 py-0.5 rounded text-zinc-700 dark:text-zinc-300 truncate font-mono">
|
||||||
{{ $currentPleb->pubkey }}
|
{{ $currentPleb->pubkey }}
|
||||||
</code>
|
</code>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<span class="text-gray-500 dark:text-gray-400 shrink-0">Npub:</span>
|
<span class="text-zinc-500 dark:text-zinc-400 shrink-0">Npub:</span>
|
||||||
<code
|
<code
|
||||||
class="bg-gray-100 dark:bg-gray-800 px-2 py-0.5 rounded text-gray-700 dark:text-gray-300 truncate font-mono text-xs">
|
class="bg-zinc-100 dark:bg-zinc-800 px-2 py-0.5 rounded text-zinc-700 dark:text-zinc-300 truncate font-mono text-xs">
|
||||||
{{ $currentPleb->npub }}
|
{{ $currentPleb->npub }}
|
||||||
</code>
|
</code>
|
||||||
</div>
|
</div>
|
||||||
@if($currentPleb->nip05_handle)
|
@if($currentPleb->nip05_handle)
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<span class="text-gray-500 dark:text-gray-400 shrink-0">NIP-05:</span>
|
<span class="text-zinc-500 dark:text-zinc-400 shrink-0">NIP-05:</span>
|
||||||
<code
|
<code
|
||||||
class="bg-gray-100 dark:bg-gray-800 px-2 py-0.5 rounded text-gray-700 dark:text-gray-300 font-mono text-xs">
|
class="bg-zinc-100 dark:bg-zinc-800 px-2 py-0.5 rounded text-zinc-700 dark:text-zinc-300 font-mono text-xs">
|
||||||
{{ $currentPleb->nip05_handle }}
|
{{ $currentPleb->nip05_handle }}
|
||||||
</code>
|
</code>
|
||||||
</div>
|
</div>
|
||||||
@@ -484,7 +484,7 @@ new class extends Component {
|
|||||||
@if(!$currentPleb)
|
@if(!$currentPleb)
|
||||||
<!-- Nostr Login Apps Section -->
|
<!-- Nostr Login Apps Section -->
|
||||||
<div class="space-y-4 mb-8">
|
<div class="space-y-4 mb-8">
|
||||||
<h3 class="text-lg md:text-xl text-gray-500 dark:text-gray-400 italic mb-4">
|
<h3 class="text-lg md:text-xl text-zinc-500 dark:text-zinc-400 italic mb-4">
|
||||||
Empfohlene Nostr Login und Signer-Apps
|
Empfohlene Nostr Login und Signer-Apps
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
@@ -494,11 +494,11 @@ new class extends Component {
|
|||||||
<div
|
<div
|
||||||
class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
|
class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<a class="font-semibold text-gray-800 dark:text-gray-100 hover:text-amber-500 dark:hover:text-amber-400 transition-colors"
|
<a class="font-semibold text-zinc-800 dark:text-zinc-100 hover:text-amber-500 dark:hover:text-amber-400 transition-colors"
|
||||||
href="https://github.com/greenart7c3/Amber">
|
href="https://github.com/greenart7c3/Amber">
|
||||||
Amber
|
Amber
|
||||||
</a>
|
</a>
|
||||||
<p class="text-sm text-gray-600 dark:text-gray-400 mt-1">
|
<p class="text-sm text-zinc-600 dark:text-zinc-400 mt-1">
|
||||||
Perfekt für mobile Android Geräte. Eine App, in der man alle Keys/nsecs
|
Perfekt für mobile Android Geräte. Eine App, in der man alle Keys/nsecs
|
||||||
verwalten kann.
|
verwalten kann.
|
||||||
</p>
|
</p>
|
||||||
@@ -513,11 +513,11 @@ new class extends Component {
|
|||||||
<div
|
<div
|
||||||
class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
|
class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<a class="font-semibold text-gray-800 dark:text-gray-100 hover:text-amber-500 dark:hover:text-amber-400 transition-colors"
|
<a class="font-semibold text-zinc-800 dark:text-zinc-100 hover:text-amber-500 dark:hover:text-amber-400 transition-colors"
|
||||||
href="https://addons.mozilla.org/en-US/firefox/addon/alby/">
|
href="https://addons.mozilla.org/en-US/firefox/addon/alby/">
|
||||||
Alby - Bitcoin Lightning Wallet & Nostr
|
Alby - Bitcoin Lightning Wallet & Nostr
|
||||||
</a>
|
</a>
|
||||||
<p class="text-sm text-gray-600 dark:text-gray-400 mt-1">
|
<p class="text-sm text-zinc-600 dark:text-zinc-400 mt-1">
|
||||||
Browser-Erweiterung in die man seinen Key/nsec eingeben kann. Pro Alby-Konto
|
Browser-Erweiterung in die man seinen Key/nsec eingeben kann. Pro Alby-Konto
|
||||||
ein nsec.
|
ein nsec.
|
||||||
</p>
|
</p>
|
||||||
@@ -532,11 +532,11 @@ new class extends Component {
|
|||||||
<div
|
<div
|
||||||
class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
|
class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<a class="font-semibold text-gray-800 dark:text-gray-100 hover:text-amber-500 dark:hover:text-amber-400 transition-colors"
|
<a class="font-semibold text-zinc-800 dark:text-zinc-100 hover:text-amber-500 dark:hover:text-amber-400 transition-colors"
|
||||||
href="https://chromewebstore.google.com/detail/nos2x/kpgefcfmnafjgpblomihpgmejjdanjjp">
|
href="https://chromewebstore.google.com/detail/nos2x/kpgefcfmnafjgpblomihpgmejjdanjjp">
|
||||||
nos2x
|
nos2x
|
||||||
</a>
|
</a>
|
||||||
<p class="text-sm text-gray-600 dark:text-gray-400 mt-1">
|
<p class="text-sm text-zinc-600 dark:text-zinc-400 mt-1">
|
||||||
Browser-Erweiterung für Chrome Browser. Multi-Key fähig.
|
Browser-Erweiterung für Chrome Browser. Multi-Key fähig.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -550,11 +550,11 @@ new class extends Component {
|
|||||||
<div
|
<div
|
||||||
class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
|
class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<a class="font-semibold text-gray-800 dark:text-gray-100 hover:text-amber-500 dark:hover:text-amber-400 transition-colors"
|
<a class="font-semibold text-zinc-800 dark:text-zinc-100 hover:text-amber-500 dark:hover:text-amber-400 transition-colors"
|
||||||
href="https://addons.mozilla.org/en-US/firefox/addon/nos2x-fox/">
|
href="https://addons.mozilla.org/en-US/firefox/addon/nos2x-fox/">
|
||||||
nos2x-fox
|
nos2x-fox
|
||||||
</a>
|
</a>
|
||||||
<p class="text-sm text-gray-600 dark:text-gray-400 mt-1">
|
<p class="text-sm text-zinc-600 dark:text-zinc-400 mt-1">
|
||||||
Browser-Erweiterung für Firefox Browser. Multi-Key fähig.
|
Browser-Erweiterung für Firefox Browser. Multi-Key fähig.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -568,14 +568,14 @@ new class extends Component {
|
|||||||
<!-- User Profile Display -->
|
<!-- User Profile Display -->
|
||||||
<div class="mt-6">
|
<div class="mt-6">
|
||||||
<template x-if="$store.nostr.user">
|
<template x-if="$store.nostr.user">
|
||||||
<div class="flex items-center gap-4 p-4 bg-gray-50 dark:bg-gray-800/50 rounded-lg">
|
<div class="flex items-center gap-4 p-4 bg-zinc-50 dark:bg-zinc-800/50 rounded-lg">
|
||||||
<img class="w-12 h-12 rounded-full"
|
<img class="w-12 h-12 rounded-full"
|
||||||
x-bind:src="$store.nostr.user.picture || '{{ asset('apple-touch-icon.png') }}'"
|
x-bind:src="$store.nostr.user.picture || '{{ asset('apple-touch-icon.png') }}'"
|
||||||
alt="Avatar">
|
alt="Avatar">
|
||||||
<div class="flex-1 min-w-0">
|
<div class="flex-1 min-w-0">
|
||||||
<h3 class="truncate text-lg leading-snug text-[#1B1B1B] dark:text-gray-100 font-bold"
|
<h3 class="truncate text-lg leading-snug text-[#1B1B1B] dark:text-zinc-100 font-bold"
|
||||||
x-text="$store.nostr.user.display_name"></h3>
|
x-text="$store.nostr.user.display_name"></h3>
|
||||||
<div class="truncate text-sm text-gray-500 dark:text-gray-400"
|
<div class="truncate text-sm text-zinc-500 dark:text-zinc-400"
|
||||||
x-text="$store.nostr.user.name"></div>
|
x-text="$store.nostr.user.name"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -589,7 +589,7 @@ new class extends Component {
|
|||||||
<path
|
<path
|
||||||
d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zM7 11.4L3.6 8 5 6.6l2 2 4-4L12.4 6 7 11.4z"></path>
|
d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zM7 11.4L3.6 8 5 6.6l2 2 4-4L12.4 6 7 11.4z"></path>
|
||||||
</svg>
|
</svg>
|
||||||
<p class="text-sm text-gray-700 dark:text-gray-300">Profil in der Datenbank
|
<p class="text-sm text-zinc-700 dark:text-zinc-300">Profil in der Datenbank
|
||||||
vorhanden.</p>
|
vorhanden.</p>
|
||||||
</div>
|
</div>
|
||||||
</flux:card>
|
</flux:card>
|
||||||
@@ -602,10 +602,10 @@ new class extends Component {
|
|||||||
<!-- Membership Registration Section -->
|
<!-- Membership Registration Section -->
|
||||||
<div class="space-y-4 py-6">
|
<div class="space-y-4 py-6">
|
||||||
<div>
|
<div>
|
||||||
<h3 class="text-xl md:text-2xl text-[#1B1B1B] dark:text-gray-100 font-bold mb-2">
|
<h3 class="text-xl md:text-2xl text-[#1B1B1B] dark:text-zinc-100 font-bold mb-2">
|
||||||
Einundzwanzig Mitglied werden
|
Einundzwanzig Mitglied werden
|
||||||
</h3>
|
</h3>
|
||||||
<p class="text-sm text-gray-600 dark:text-gray-400">
|
<p class="text-sm text-zinc-600 dark:text-zinc-400">
|
||||||
Nur Personen können Mitglied werden und zahlen 21.000 Satoshis im Jahr.
|
Nur Personen können Mitglied werden und zahlen 21.000 Satoshis im Jahr.
|
||||||
<a href="https://einundzwanzig.space/verein/"
|
<a href="https://einundzwanzig.space/verein/"
|
||||||
class="text-amber-500 hover:text-amber-600 dark:hover:text-amber-400 font-medium">
|
class="text-amber-500 hover:text-amber-600 dark:hover:text-amber-400 font-medium">
|
||||||
@@ -637,11 +637,11 @@ new class extends Component {
|
|||||||
<div class="py-6">
|
<div class="py-6">
|
||||||
<flux:callout variant="warning" class="mb-6">
|
<flux:callout variant="warning" class="mb-6">
|
||||||
<div class="space-y-4">
|
<div class="space-y-4">
|
||||||
<p class="font-medium text-gray-800 dark:text-gray-100">
|
<p class="font-medium text-zinc-800 dark:text-zinc-100">
|
||||||
Falls du möchtest, kannst du hier eine E-Mail Adresse hinterlegen, damit der Verein
|
Falls du möchtest, kannst du hier eine E-Mail Adresse hinterlegen, damit der Verein
|
||||||
dich darüber informieren kann, wenn es Neuigkeiten gibt.
|
dich darüber informieren kann, wenn es Neuigkeiten gibt.
|
||||||
</p>
|
</p>
|
||||||
<p class="text-sm text-gray-600 dark:text-gray-400">
|
<p class="text-sm text-zinc-600 dark:text-zinc-400">
|
||||||
Am besten eine anonymisierte E-Mail Adresse verwenden. Wir sichern diese Adresse
|
Am besten eine anonymisierte E-Mail Adresse verwenden. Wir sichern diese Adresse
|
||||||
AES-256 verschlüsselt in der Datenbank ab.
|
AES-256 verschlüsselt in der Datenbank ab.
|
||||||
</p>
|
</p>
|
||||||
@@ -694,7 +694,7 @@ new class extends Component {
|
|||||||
d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 12c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1zm1-3H7V4h2v5z"></path>
|
d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 12c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1zm1-3H7V4h2v5z"></path>
|
||||||
</svg>
|
</svg>
|
||||||
<div>
|
<div>
|
||||||
<p class="font-medium text-gray-800 dark:text-gray-100">
|
<p class="font-medium text-zinc-800 dark:text-zinc-100">
|
||||||
@if($currentYearIsPaid)
|
@if($currentYearIsPaid)
|
||||||
<span class="text-green-600 dark:text-green-400">Du bist derzeit ein Mitglied des Vereins. Das aktuelle Jahr ist bezahlt.</span>
|
<span class="text-green-600 dark:text-green-400">Du bist derzeit ein Mitglied des Vereins. Das aktuelle Jahr ist bezahlt.</span>
|
||||||
@else
|
@else
|
||||||
@@ -712,7 +712,7 @@ new class extends Component {
|
|||||||
<div class="space-y-6">
|
<div class="space-y-6">
|
||||||
<!-- Payment Info -->
|
<!-- Payment Info -->
|
||||||
<div>
|
<div>
|
||||||
<h3 class="text-xl md:text-2xl text-gray-800 dark:text-gray-100 font-bold mb-4">
|
<h3 class="text-xl md:text-2xl text-zinc-800 dark:text-zinc-100 font-bold mb-4">
|
||||||
Mitgliedsbeitrag
|
Mitgliedsbeitrag
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
@@ -729,7 +729,7 @@ new class extends Component {
|
|||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if(isset($latestEvent))
|
@if(isset($latestEvent))
|
||||||
<p class="text-gray-700 dark:text-gray-300 mb-6">{{ $latestEvent['content'] }}</p>
|
<p class="text-zinc-700 dark:text-zinc-300 mb-6">{{ $latestEvent['content'] }}</p>
|
||||||
|
|
||||||
<!-- Payment Button -->
|
<!-- Payment Button -->
|
||||||
<div class="flex justify-center py-6">
|
<div class="flex justify-center py-6">
|
||||||
@@ -763,8 +763,8 @@ new class extends Component {
|
|||||||
|
|
||||||
<!-- Payment History -->
|
<!-- Payment History -->
|
||||||
@if($payments && count($payments) > 0)
|
@if($payments && count($payments) > 0)
|
||||||
<div class="pt-6 border-t border-gray-200 dark:border-gray-600">
|
<div class="pt-6 border-t border-zinc-200 dark:border-zinc-600">
|
||||||
<h4 class="text-lg md:text-xl text-gray-800 dark:text-gray-100 font-bold mb-4">
|
<h4 class="text-lg md:text-xl text-zinc-800 dark:text-zinc-100 font-bold mb-4">
|
||||||
Bisherige Zahlungen
|
Bisherige Zahlungen
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
@@ -772,7 +772,7 @@ new class extends Component {
|
|||||||
<div class="hidden md:block overflow-x-auto">
|
<div class="hidden md:block overflow-x-auto">
|
||||||
<table class="table-auto w-full">
|
<table class="table-auto w-full">
|
||||||
<thead
|
<thead
|
||||||
class="text-xs font-semibold uppercase text-gray-500 dark:text-gray-400 border-b border-gray-200 dark:border-gray-600">
|
class="text-xs font-semibold uppercase text-zinc-500 dark:text-zinc-400 border-b border-zinc-200 dark:border-zinc-600">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap text-left">
|
<th class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap text-left">
|
||||||
<div class="font-semibold">Satoshis</div>
|
<div class="font-semibold">Satoshis</div>
|
||||||
@@ -788,20 +788,20 @@ new class extends Component {
|
|||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="text-sm divide-y divide-gray-200 dark:divide-gray-600">
|
<tbody class="text-sm divide-y divide-zinc-200 dark:divide-zinc-600">
|
||||||
@foreach($payments as $payment)
|
@foreach($payments as $payment)
|
||||||
<tr>
|
<tr>
|
||||||
<td class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
<td class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
||||||
<div
|
<div
|
||||||
class="font-medium text-gray-800 dark:text-gray-100">{{ $payment->amount }}</div>
|
class="font-medium text-zinc-800 dark:text-zinc-100">{{ $payment->amount }}</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
<td class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
||||||
<div
|
<div
|
||||||
class="text-gray-800 dark:text-gray-100">{{ $payment->year }}</div>
|
class="text-zinc-800 dark:text-zinc-100">{{ $payment->year }}</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-2 first:pl-5 last:pr-5 py-3">
|
<td class="px-2 first:pl-5 last:pr-5 py-3">
|
||||||
<div
|
<div
|
||||||
class="font-mono text-xs text-gray-600 dark:text-gray-400 break-all">{{ $payment->event_id }}</div>
|
class="font-mono text-xs text-zinc-600 dark:text-zinc-400 break-all">{{ $payment->event_id }}</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
<td class="px-2 first:pl-5 last:pr-5 py-3 whitespace-nowrap">
|
||||||
@if($payment->btc_pay_invoice)
|
@if($payment->btc_pay_invoice)
|
||||||
@@ -824,23 +824,23 @@ new class extends Component {
|
|||||||
<div class="md:hidden space-y-4">
|
<div class="md:hidden space-y-4">
|
||||||
@foreach($payments as $payment)
|
@foreach($payments as $payment)
|
||||||
<div
|
<div
|
||||||
class="bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-600 p-4">
|
class="bg-white dark:bg-zinc-800 rounded-lg border border-zinc-200 dark:border-zinc-600 p-4">
|
||||||
<div class="space-y-3">
|
<div class="space-y-3">
|
||||||
<div class="flex justify-between items-center">
|
<div class="flex justify-between items-center">
|
||||||
<span class="text-sm font-medium text-gray-500 dark:text-gray-400">Satoshis</span>
|
<span class="text-sm font-medium text-zinc-500 dark:text-zinc-400">Satoshis</span>
|
||||||
<span
|
<span
|
||||||
class="font-semibold text-gray-800 dark:text-gray-100">{{ $payment->amount }}</span>
|
class="font-semibold text-zinc-800 dark:text-zinc-100">{{ $payment->amount }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-between items-center">
|
<div class="flex justify-between items-center">
|
||||||
<span class="text-sm font-medium text-gray-500 dark:text-gray-400">Jahr</span>
|
<span class="text-sm font-medium text-zinc-500 dark:text-zinc-400">Jahr</span>
|
||||||
<span
|
<span
|
||||||
class="text-gray-800 dark:text-gray-100">{{ $payment->year }}</span>
|
class="text-zinc-800 dark:text-zinc-100">{{ $payment->year }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span
|
<span
|
||||||
class="text-sm font-medium text-gray-500 dark:text-gray-400 block mb-1">Event-ID</span>
|
class="text-sm font-medium text-zinc-500 dark:text-zinc-400 block mb-1">Event-ID</span>
|
||||||
<span
|
<span
|
||||||
class="font-mono text-xs text-gray-600 dark:text-gray-400 break-all">{{ $payment->event_id }}</span>
|
class="font-mono text-xs text-zinc-600 dark:text-zinc-400 break-all">{{ $payment->event_id }}</span>
|
||||||
</div>
|
</div>
|
||||||
@if($payment->btc_pay_invoice)
|
@if($payment->btc_pay_invoice)
|
||||||
<flux:button
|
<flux:button
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ class extends Component
|
|||||||
<div
|
<div
|
||||||
class="flex flex-col md:flex-row items-center mb-6 space-y-4 md:space-y-0 md:space-x-4">
|
class="flex flex-col md:flex-row items-center mb-6 space-y-4 md:space-y-0 md:space-x-4">
|
||||||
<div class="flex items-center justify-between w-full">
|
<div class="flex items-center justify-between w-full">
|
||||||
<h1 class="text-2xl md:text-3xl text-gray-800 dark:text-gray-100 font-bold">
|
<h1 class="text-2xl md:text-3xl text-zinc-800 dark:text-zinc-100 font-bold">
|
||||||
Projektförderung anlegen
|
Projektförderung anlegen
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
@@ -102,7 +102,7 @@ class extends Component
|
|||||||
|
|
||||||
@if($isAdmin)
|
@if($isAdmin)
|
||||||
<flux:separator />
|
<flux:separator />
|
||||||
<flux:heading level="3" class="text-sm font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400">Admin Felder</flux:heading>
|
<flux:heading level="3" class="text-sm font-semibold uppercase tracking-wide text-zinc-500 dark:text-zinc-400">Admin Felder</flux:heading>
|
||||||
<div class="space-y-3 mt-3">
|
<div class="space-y-3 mt-3">
|
||||||
<flux:field>
|
<flux:field>
|
||||||
<flux:label>Akzeptiert</flux:label>
|
<flux:label>Akzeptiert</flux:label>
|
||||||
@@ -127,7 +127,7 @@ class extends Component
|
|||||||
<div>
|
<div>
|
||||||
<flux:card>
|
<flux:card>
|
||||||
<flux:heading level="2">Information</flux:heading>
|
<flux:heading level="2">Information</flux:heading>
|
||||||
<p class="text-sm text-gray-800 dark:text-gray-100 mt-4">
|
<p class="text-sm text-zinc-800 dark:text-zinc-100 mt-4">
|
||||||
Fülle das Formular aus, um eine neue Projektförderung anzulegen.
|
Fülle das Formular aus, um eine neue Projektförderung anzulegen.
|
||||||
</p>
|
</p>
|
||||||
</flux:card>
|
</flux:card>
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ class extends Component
|
|||||||
<div
|
<div
|
||||||
class="flex flex-col md:flex-row items-center mb-6 space-y-4 md:space-y-0 md:space-x-4">
|
class="flex flex-col md:flex-row items-center mb-6 space-y-4 md:space-y-0 md:space-x-4">
|
||||||
<div class="flex items-center justify-between w-full">
|
<div class="flex items-center justify-between w-full">
|
||||||
<h1 class="text-2xl md:text-3xl text-gray-800 dark:text-gray-100 font-bold">
|
<h1 class="text-2xl md:text-3xl text-zinc-800 dark:text-zinc-100 font-bold">
|
||||||
Projektförderung bearbeiten
|
Projektförderung bearbeiten
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
@@ -128,7 +128,7 @@ class extends Component
|
|||||||
|
|
||||||
@if($isAdmin)
|
@if($isAdmin)
|
||||||
<flux:separator />
|
<flux:separator />
|
||||||
<flux:heading level="3" class="text-sm font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400">Admin Felder</flux:heading>
|
<flux:heading level="3" class="text-sm font-semibold uppercase tracking-wide text-zinc-500 dark:text-zinc-400">Admin Felder</flux:heading>
|
||||||
<div class="space-y-3 mt-3">
|
<div class="space-y-3 mt-3">
|
||||||
<flux:field>
|
<flux:field>
|
||||||
<flux:label>Akzeptiert</flux:label>
|
<flux:label>Akzeptiert</flux:label>
|
||||||
@@ -153,7 +153,7 @@ class extends Component
|
|||||||
<div>
|
<div>
|
||||||
<flux:card>
|
<flux:card>
|
||||||
<flux:heading level="2">Information</flux:heading>
|
<flux:heading level="2">Information</flux:heading>
|
||||||
<p class="text-sm text-gray-800 dark:text-gray-100 mt-4">
|
<p class="text-sm text-zinc-800 dark:text-zinc-100 mt-4">
|
||||||
Bearbeite die Projektförderung und speichere deine Änderungen.
|
Bearbeite die Projektförderung und speichere deine Änderungen.
|
||||||
</p>
|
</p>
|
||||||
</flux:card>
|
</flux:card>
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ new class extends Component {
|
|||||||
|
|
||||||
<!-- Left: Title -->
|
<!-- Left: Title -->
|
||||||
<div class="mb-4 sm:mb-0">
|
<div class="mb-4 sm:mb-0">
|
||||||
<h1 class="text-2xl md:text-3xl text-gray-800 dark:text-gray-100 font-bold">
|
<h1 class="text-2xl md:text-3xl text-zinc-800 dark:text-zinc-100 font-bold">
|
||||||
Einundzwanzig Projektunterstützungen
|
Einundzwanzig Projektunterstützungen
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
@@ -124,32 +124,28 @@ new class extends Component {
|
|||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
<ul class="flex flex-wrap -m-1">
|
<ul class="flex flex-wrap -m-1">
|
||||||
<li class="m-1">
|
<li class="m-1">
|
||||||
<button wire:click="setFilter('all')"
|
<flux:button wire:click="setFilter('all')" :variant="$activeFilter === 'all' ? 'primary' : 'ghost'">
|
||||||
class="inline-flex items-center justify-center text-sm font-medium leading-5 rounded-full px-3 py-1 border @if($activeFilter === 'all') border-transparent shadow-sm bg-gray-900 dark:bg-gray-100 text-white dark:text-gray-800 @else border-gray-200 dark:border-gray-700/60 hover:border-gray-300 dark:hover:border-gray-600 shadow-sm bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 @endif transition">
|
|
||||||
Alle
|
Alle
|
||||||
</button>
|
</flux:button>
|
||||||
</li>
|
</li>
|
||||||
<li class="m-1">
|
<li class="m-1">
|
||||||
<button wire:click="setFilter('new')"
|
<flux:button wire:click="setFilter('new')" :variant="$activeFilter === 'new' ? 'primary' : 'ghost'">
|
||||||
class="inline-flex items-center justify-center text-sm font-medium leading-5 rounded-full px-3 py-1 border @if($activeFilter === 'new') border-transparent shadow-sm bg-gray-900 dark:bg-gray-100 text-white dark:text-gray-800 @else border-gray-200 dark:border-gray-700/60 hover:border-gray-300 dark:hover:border-gray-600 shadow-sm bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 @endif transition">
|
|
||||||
Neu
|
Neu
|
||||||
</button>
|
</flux:button>
|
||||||
</li>
|
</li>
|
||||||
<li class="m-1">
|
<li class="m-1">
|
||||||
<button wire:click="setFilter('supported')"
|
<flux:button wire:click="setFilter('supported')" :variant="$activeFilter === 'supported' ? 'primary' : 'ghost'">
|
||||||
class="inline-flex items-center justify-center text-sm font-medium leading-5 rounded-full px-3 py-1 border @if($activeFilter === 'supported') border-transparent shadow-sm bg-gray-900 dark:bg-gray-100 text-white dark:text-gray-800 @else border-gray-200 dark:border-gray-700/60 hover:border-gray-300 dark:hover:border-gray-600 shadow-sm bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 @endif transition">
|
|
||||||
Unterstützt
|
Unterstützt
|
||||||
</button>
|
</flux:button>
|
||||||
</li>
|
</li>
|
||||||
<li class="m-1">
|
<li class="m-1">
|
||||||
<button wire:click="setFilter('rejected')"
|
<flux:button wire:click="setFilter('rejected')" :variant="$activeFilter === 'rejected' ? 'primary' : 'ghost'">
|
||||||
class="inline-flex items-center justify-center text-sm font-medium leading-5 rounded-full px-3 py-1 border @if($activeFilter === 'rejected') border-transparent shadow-sm bg-gray-900 dark:bg-gray-100 text-white dark:text-gray-800 @else border-gray-200 dark:border-gray-700/60 hover:border-gray-300 dark:hover:border-gray-600 shadow-sm bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 @endif transition">
|
|
||||||
Abgelehnt
|
Abgelehnt
|
||||||
</button>
|
</flux:button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-sm text-gray-500 dark:text-gray-400 italic mb-4">{{ $projects->count() }} Projekte</div>
|
<div class="text-sm text-zinc-500 dark:text-zinc-400 italic mb-4">{{ $projects->count() }} Projekte</div>
|
||||||
|
|
||||||
<!-- Content -->
|
<!-- Content -->
|
||||||
<div class="grid xl:grid-cols-2 gap-6 mb-8">
|
<div class="grid xl:grid-cols-2 gap-6 mb-8">
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Livewire\Forms\VoteForm;
|
use App\Livewire\Traits\WithNostrAuth;
|
||||||
use App\Models\Vote;
|
use App\Models\Vote;
|
||||||
use App\Support\NostrAuth;
|
use App\Support\NostrAuth;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
|
|
||||||
new class extends Component {
|
new class extends Component {
|
||||||
|
use WithNostrAuth;
|
||||||
|
|
||||||
public $projectProposal;
|
public $projectProposal;
|
||||||
|
|
||||||
public bool $isAllowed = false;
|
public bool $isAllowed = false;
|
||||||
@@ -67,12 +69,12 @@ new class extends Component {
|
|||||||
?>
|
?>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@if($projectProposal->accepted || $isAllowed)
|
|
||||||
<div class="px-4 sm:px-6 lg:px-8 py-8 w-full">
|
<div class="px-4 sm:px-6 lg:px-8 py-8 w-full">
|
||||||
<div class="mx-auto flex flex-col lg:flex-row lg:space-x-8 xl:space-x-12">
|
<div class="mx-auto flex flex-col lg:flex-row lg:space-x-8 xl:space-x-12">
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<flux:button :href="route('association.projectSupport')" variant="primary" size="sm" icon="chevron-left">
|
<flux:button :href="route('association.projectSupport')" variant="primary" size="sm"
|
||||||
|
icon="chevron-left">
|
||||||
Zurück zur Übersicht
|
Zurück zur Übersicht
|
||||||
</flux:button>
|
</flux:button>
|
||||||
</div>
|
</div>
|
||||||
@@ -80,7 +82,7 @@ new class extends Component {
|
|||||||
{{ $projectProposal->created_at->translatedFormat('d.m.Y') }}
|
{{ $projectProposal->created_at->translatedFormat('d.m.Y') }}
|
||||||
</div>
|
</div>
|
||||||
<header class="mb-4">
|
<header class="mb-4">
|
||||||
<h1 class="text-2xl md:text-3xl text-gray-800 dark:text-gray-100 font-bold mb-2">
|
<h1 class="text-2xl md:text-3xl text-zinc-800 dark:text-zinc-100 font-bold mb-2">
|
||||||
{{ $projectProposal->name }}
|
{{ $projectProposal->name }}
|
||||||
</h1>
|
</h1>
|
||||||
<x-markdown>
|
<x-markdown>
|
||||||
@@ -96,14 +98,14 @@ new class extends Component {
|
|||||||
width="32" height="32" alt="User">
|
width="32" height="32" alt="User">
|
||||||
</a>
|
</a>
|
||||||
<div class="text-sm whitespace-nowrap">Eingereicht von
|
<div class="text-sm whitespace-nowrap">Eingereicht von
|
||||||
<div class="font-semibold text-gray-800 dark:text-gray-100">
|
<div class="font-semibold text-zinc-800 dark:text-zinc-100">
|
||||||
{{ $projectProposal->einundzwanzigPleb?->profile->name ?? str($projectProposal->einundzwanzigPleb->npub)->limit(32) }}
|
{{ $projectProposal->einundzwanzigPleb?->profile->name ?? str($projectProposal->einundzwanzigPleb->npub)->limit(32) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-wrap items-center sm:justify-end space-x-2">
|
<div class="flex flex-wrap items-center sm:justify-end space-x-2">
|
||||||
<div
|
<div
|
||||||
class="text-xs inline-flex items-center font-medium border border-gray-200 dark:border-gray-700/60 text-gray-600 dark:text-gray-400 rounded-full text-center px-2.5 py-1">
|
class="text-xs inline-flex items-center font-medium border border-zinc-200 dark:border-zinc-700/60 text-zinc-600 dark:text-zinc-400 rounded-full text-center px-2.5 py-1">
|
||||||
<a target="_blank" href="{{ $projectProposal->website }}">Webseite</a>
|
<a target="_blank" href="{{ $projectProposal->website }}">Webseite</a>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@@ -118,12 +120,11 @@ new class extends Component {
|
|||||||
alt="Picture">
|
alt="Picture">
|
||||||
</figure>
|
</figure>
|
||||||
|
|
||||||
<hr class="my-6 border-t border-gray-100 dark:border-gray-700/60">
|
<hr class="my-6 border-t border-zinc-100 dark:border-zinc-700/60">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if($isAllowed && !$projectProposal->accepted)
|
|
||||||
<div class="lg:w-80 xl:w-96 shrink-0 space-y-4">
|
<div class="lg:w-80 xl:w-96 shrink-0 space-y-4">
|
||||||
<div class="bg-white dark:bg-gray-800 p-5 shadow-sm rounded-xl">
|
<div class="bg-white dark:bg-zinc-800 p-5 shadow-sm rounded-xl">
|
||||||
@if(!$ownVoteExists)
|
@if(!$ownVoteExists)
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<flux:button wire:click="handleApprove" class="w-full">
|
<flux:button wire:click="handleApprove" class="w-full">
|
||||||
@@ -136,51 +137,36 @@ new class extends Component {
|
|||||||
</flux:button>
|
</flux:button>
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
<p class="text-sm text-gray-700 dark:text-gray-300">Du hast bereits abgestimmt.</p>
|
<p class="text-sm text-zinc-700 dark:text-zinc-300">Du hast bereits abgestimmt.</p>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-white dark:bg-gray-800 p-5 shadow-sm rounded-xl">
|
<div class="bg-white dark:bg-zinc-800 p-5 shadow-sm rounded-xl">
|
||||||
<div class="text-sm font-semibold text-gray-800 dark:text-gray-100 mb-2">
|
<div class="text-sm font-semibold text-zinc-800 dark:text-zinc-100 mb-2">
|
||||||
Zustimmungen des Vorstands ({{ count($this->boardVotes->where('value', 1)) }})
|
Zustimmungen des Vorstands ({{ count($this->boardVotes->where('value', 1)) }})
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-white dark:bg-gray-800 p-5 shadow-sm rounded-xl">
|
<div class="bg-white dark:bg-zinc-800 p-5 shadow-sm rounded-xl">
|
||||||
<div class="text-sm font-semibold text-gray-800 dark:text-gray-100 mb-2">
|
<div class="text-sm font-semibold text-zinc-800 dark:text-zinc-100 mb-2">
|
||||||
Ablehnungen des Vorstands ({{ count($this->boardVotes->where('value', 0)) }})
|
Ablehnungen des Vorstands ({{ count($this->boardVotes->where('value', 0)) }})
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-white dark:bg-gray-800 p-5 shadow-sm rounded-xl">
|
<div class="bg-white dark:bg-zinc-800 p-5 shadow-sm rounded-xl">
|
||||||
<div class="text-sm font-semibold text-gray-800 dark:text-gray-100 mb-2">
|
<div class="text-sm font-semibold text-zinc-800 dark:text-zinc-100 mb-2">
|
||||||
Zustimmungen der übrigen Mitglieder
|
Zustimmungen der übrigen Mitglieder
|
||||||
({{ count($this->otherVotes->where('value', 1)) }})
|
({{ count($this->otherVotes->where('value', 1)) }})
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-white dark:bg-gray-800 p-5 shadow-sm rounded-xl">
|
<div class="bg-white dark:bg-zinc-800 p-5 shadow-sm rounded-xl">
|
||||||
<div class="text-sm font-semibold text-gray-800 dark:text-gray-100 mb-2">
|
<div class="text-sm font-semibold text-zinc-800 dark:text-zinc-100 mb-2">
|
||||||
Ablehnungen der übrigen Mitglieder
|
Ablehnungen der übrigen Mitglieder
|
||||||
({{ count($this->otherVotes->where('value', 0)) }})
|
({{ count($this->otherVotes->where('value', 0)) }})
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@else
|
|
||||||
<div class="px-4 sm:px-6 lg:px-8 py-8 w-full mx-auto">
|
|
||||||
<flux:callout variant="warning" icon="exclamation-circle">
|
|
||||||
<flux:heading>Zugriff auf Projektförderung nicht möglich</flux:heading>
|
|
||||||
<p>
|
|
||||||
@if(!NostrAuth::check())
|
|
||||||
Bitte melde dich zunächst mit Nostr an, um Zugriff auf die Projektförderung zu erhalten.
|
|
||||||
@else
|
|
||||||
Du benötigst eine gültige Nostr-Authentifizierung, um diese Projektförderung einzusehen.
|
|
||||||
@endif
|
|
||||||
</p>
|
|
||||||
</flux:callout>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user