add members table

This commit is contained in:
fsociety
2024-09-29 18:21:09 +02:00
parent e76a60c600
commit c2f0014a8e
31 changed files with 1815 additions and 104 deletions

View File

@@ -0,0 +1,166 @@
<?php
namespace App\Livewire;
use App\Enums\AssociationStatus;
use App\Models\EinundzwanzigPleb;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use PowerComponents\LivewirePowerGrid\Button;
use PowerComponents\LivewirePowerGrid\Column;
use PowerComponents\LivewirePowerGrid\Detail;
use PowerComponents\LivewirePowerGrid\Exportable;
use PowerComponents\LivewirePowerGrid\Facades\Filter;
use PowerComponents\LivewirePowerGrid\Facades\Rule;
use PowerComponents\LivewirePowerGrid\Footer;
use PowerComponents\LivewirePowerGrid\Header;
use PowerComponents\LivewirePowerGrid\PowerGrid;
use PowerComponents\LivewirePowerGrid\PowerGridFields;
use PowerComponents\LivewirePowerGrid\PowerGridComponent;
final class EinundzwanzigPlebTable extends PowerGridComponent
{
public string $sortField = 'application_for';
public string $sortDirection = 'asc';
public bool $multiSort = true;
public function setUp(): array
{
return [
Exportable::make('export')
->striped()
->type(Exportable::TYPE_XLS, Exportable::TYPE_CSV),
Header::make()->showSearchInput(),
Footer::make()
->showPerPage(25)
->showRecordCount(),
Detail::make()
->view('components.detail')
->showCollapseIcon()
->params([]),
];
}
public function datasource(): Builder
{
return EinundzwanzigPleb::query()
->with([
'profile',
])
->where('association_status', '>', 1)
->orWhereNotNull('application_for');
}
public function fields(): PowerGridFields
{
return PowerGrid::fields()
->add('pubkey')
->add(
'avatar',
fn($model,
)
=> '<img class="w-8 h-8 shrink-0 grow-0 rounded-full" onerror="this.onerror=null; this.src=\'https://robohash.org/test\'";" src="' . asset(
$model->profile?->picture,
) . '">',
)
->add(
'for',
fn($model,
)
=> $model->application_for ? '<div class="m-1.5"><div class="text-xs inline-flex font-medium bg-red-500/20 text-red-700 rounded-full text-center px-2.5 py-1">' . AssociationStatus::from(
$model->application_for,
)->label() . '</div></div>' : '',
)
->add(
'npub',
fn(EinundzwanzigPleb $model)
=> '<a target="_blank" class="btn-xs bg-gray-900 text-gray-100 hover:bg-gray-800 dark:bg-gray-100 dark:text-gray-800 dark:hover:bg-white" href="https://next.nostrudel.ninja/#/u/' . e(
$model->npub,
) . '">Nostr Profile</a>',
)
->add(
'association_status_formatted',
fn(EinundzwanzigPleb $model)
=> $model->association_status->label(),
)
->add(
'name_lower',
fn(EinundzwanzigPleb $model)
=> strtolower(
e($model->profile?->name ?? $model->profile?->display_name ?? ''),
),
);
}
public function columns(): array
{
return [
Column::make('Avatar', 'avatar'),
Column::make('Npub', 'npub')
->searchable()
->sortable(),
Column::make('Name', 'name_lower')
->searchable()
->sortable(),
Column::make('Aktueller Status', 'association_status_formatted', 'association_status')
->searchable()
->sortable(),
Column::make('Bewirbt sich für', 'for', 'application_for')
->searchable()
->sortable(),
Column::action('Action'),
];
}
public function filters(): array
{
return [
Filter::inputText('name'),
Filter::datepicker('created_at_formatted', 'created_at'),
];
}
#[\Livewire\Attributes\On('edit')]
public function edit($rowId): void
{
$pleb = EinundzwanzigPleb::query()->findOrFail($rowId);
$for = $pleb->application_for;
$pleb->association_status = AssociationStatus::from($for);
$pleb->application_for = null;
$pleb->application_text = null;
$pleb->save();
$this->fillData();
}
public function actions(EinundzwanzigPleb $row): array
{
return [
Button::add('edit')
->slot('Approve')
->id()
->class(
'btn bg-white dark:bg-gray-800 border-gray-200 dark:border-gray-700/60 hover:border-gray-300 dark:hover:border-gray-600 text-green-500',
)
->dispatch('edit', ['rowId' => $row->id]),
];
}
public function actionRules(EinundzwanzigPleb $row): array
{
return [
// Hide button edit for ID 1
Rule::button('edit')
->when(fn($row) => false)
->hide(),
];
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Livewire\Forms;
use Livewire\Attributes\Validate;
use Livewire\Form;
class ApplicationForm extends Form
{
#[Validate('required|min:5')]
public $reason = '';
}

View File

@@ -2,7 +2,10 @@
"name": "laravel/laravel",
"type": "project",
"description": "The skeleton application for the Laravel framework.",
"keywords": ["laravel", "framework"],
"keywords": [
"laravel",
"framework"
],
"license": "MIT",
"require": {
"php": "^8.2",

View File

@@ -78,11 +78,11 @@ return [
|
*/
'locale' => env('APP_LOCALE', 'en'),
'locale' => env('APP_LOCALE', 'de'),
'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'),
'faker_locale' => env('APP_FAKER_LOCALE', 'de'),
/*
|--------------------------------------------------------------------------

View File

@@ -0,0 +1,27 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('einundzwanzig_plebs', function (Blueprint $table) {
$table->unsignedInteger('application_for')->nullable();
$table->text('application_text')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('einundzwanzig_plebs', function (Blueprint $table) {
});
}
};

View File

@@ -0,0 +1,76 @@
<?php
return [
'buttons' => [
'filter' => 'تصفية',
'clear_all_filters' => 'مسح الكل',
],
'labels' => [
'action' => 'العمليات',
'results_per_page' => 'عدد السجلات في الصفحة',
'clear_filter' => 'مسح الفلاتر',
'no_data' => 'لا يوجد اي سجلات',
'all' => 'الكل',
'selected' => 'محدد',
'filtered' => 'مصفى',
],
'placeholders' => [
'search' => 'البحث...',
'select' => 'اختر فترة',
],
'pagination' => [
'showing' => 'يتم عرض',
'to' => 'الى',
'of' => 'من',
'results' => 'النتائج',
'all' => 'الكل',
],
'multi_select' => [
'select' => 'اختيار',
'all' => 'الكل',
],
'select' => [
'select' => 'اختيار',
'all' => 'الكل',
],
'boolean_filter' => [
'all' => 'الكل',
],
'input_text_options' => [
'is' => 'يساوي',
'is_not' => 'لا يساوي',
'contains' => 'يحتوي',
'contains_not' => 'لا يحتوي',
'starts_with' => 'يبدأ ب',
'ends_with' => 'ينتهي ب',
'is_empty' => 'فارغ',
'is_not_empty' => 'غير فارغ',
'is_null' => 'غير مهيئ',
'is_not_null' => 'ليس غير مهيئ',
'is_blank' => 'فراغ',
'is_not_blank' => 'ليس فراغ',
],
'export' => [
'exporting' => 'الرجاء الانتظار!',
'completed' => 'تم الانتهاء من التصدير، الملف جاهز للتحميل',
],
'soft_deletes' => [
'message_with_trashed' => 'عرض جميع السجلات بما فيها المحذوفة',
'message_only_trashed' => 'عرض فقط السجلات المحذوفة',
'without_trashed' => 'بدون المحذوف',
'with_trashed' => 'مع المحذوف',
'only_trashed' => 'فقط محذوف',
],
'multi_sort' => [
'message' => 'Multiple sort is active',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filtre',
'clear_all_filters' => 'Clear all',
],
'labels' => [
'action' => 'Accions',
'results_per_page' => 'Registres per pàgina',
'clear_filter' => 'Esborra el filtre',
'no_data' => 'No s\'han trobat registres.',
'all' => 'Tots',
'selected' => 'Seleccionat',
'filtered' => 'Filtrat',
],
'placeholders' => [
'search' => 'Cerca...',
'select' => 'Seleccioneu un període',
],
'pagination' => [
'showing' => 'Mostrant',
'to' => 'a',
'of' => 'de',
'results' => 'Registres',
'all' => 'Tots',
],
'multi_select' => [
'select' => 'Seleccioneu',
'all' => 'Tots',
],
'select' => [
'select' => 'Seleccioneu',
'all' => 'Tots',
],
'boolean_filter' => [
'all' => 'Tots',
],
'input_text_options' => [
'is' => 'És',
'is_not' => 'No és',
'contains' => 'Té contingut',
'contains_not' => 'No té contingut',
'starts_with' => 'Comença per',
'ends_with' => 'Acaba en',
'is_null' => 'És nul',
'is_not_null' => 'No és nul',
'is_blank' => 'És blanc',
'is_not_blank' => 'No és blanc',
'is_empty' => 'És omplit',
'is_not_empty' => 'No és omplit',
],
'export' => [
'exporting' => 'Espereu, si us plau!',
'completed' => 'S\'ha completat l\'exportació. Els vostres fitxers estan a punt per descarregar-se',
],
'soft_deletes' => [
'message_with_trashed' => 'Displaying all records, including deleted ones.',
'message_only_trashed' => 'Displaying only deleted records.',
'without_trashed' => 'Without deleted',
'with_trashed' => 'With deleted',
'only_trashed' => 'Only deleted',
],
'multi_sort' => [
'message' => 'Multiple sort is active',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,76 @@
<?php
return [
'buttons' => [
'filter' => 'Filtrovat',
'clear_all_filters' => 'Vymazat vše',
],
'labels' => [
'action' => 'Akce',
'results_per_page' => 'Záznamy na stránku',
'clear_filter' => 'Vymazat filtry',
'no_data' => 'Nebyly nalezeny žádné záznamy',
'all' => 'Všechny',
'selected' => 'Vybrané',
'filtered' => 'Filtrovaný',
],
'placeholders' => [
'search' => 'Hledat...',
'select' => 'Vyberte období',
],
'pagination' => [
'showing' => 'Zobrazeno',
'to' => 'až',
'of' => 'z',
'results' => 'Výsledků',
'all' => 'Všechny',
],
'multi_select' => [
'select' => 'Vybrat',
'all' => 'Všechny',
],
'select' => [
'select' => 'Vybrat',
'all' => 'Všechny',
],
'boolean_filter' => [
'all' => 'Všechny',
],
'input_text_options' => [
'is' => 'Je',
'is_not' => 'Není',
'contains' => 'Obsahuje',
'contains_not' => 'Neobsahuje',
'starts_with' => 'Začíná na',
'ends_with' => 'Končí na',
'is_empty' => 'Je prázdný',
'is_not_empty' => 'Není prázdný',
'is_null' => 'Je nulový',
'is_not_null' => 'Není nulový',
'is_blank' => 'Je prázdný',
'is_not_blank' => 'Není prázdný',
],
'export' => [
'exporting' => 'Počkejte prosím!',
'completed' => 'Export dokončen! Vaše soubory jsou připraveny ke stažení',
],
'soft_deletes' => [
'message_with_trashed' => 'Zobrazení všech záznamů, včetně smazaných.',
'message_only_trashed' => 'Zobrazení pouze smazaných záznamů.',
'without_trashed' => 'Bez smazaných záznamů',
'with_trashed' => 'Se smazanými',
'only_trashed' => 'Pouze smazané',
],
'multi_sort' => [
'message' => 'Multiple sort is active',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Aktionen',
'clear_all_filters' => 'Alle löschen',
],
'labels' => [
'action' => 'Aktionen',
'results_per_page' => 'Ergebnisse pro Seite',
'clear_filter' => 'Filter löschen',
'no_data' => 'Keine Ergebnisse gefunden',
'all' => 'Alle',
'selected' => 'Ausgewählt',
'filtered' => 'Gefiltert',
],
'placeholders' => [
'search' => 'Suche',
'select' => 'wählen Sie einen Zeitraum',
],
'pagination' => [
'showing' => 'Anzeigen von',
'to' => 'bis',
'of' => 'von',
'results' => 'Ergebnissen',
'all' => 'Alle',
],
'multi_select' => [
'select' => 'Bitte wählen',
'all' => 'Alle',
],
'select' => [
'select' => 'Bitte wählen',
'all' => 'Alle',
],
'boolean_filter' => [
'all' => 'Alle',
],
'input_text_options' => [
'is' => 'ist genau',
'is_not' => 'ist nicht genau',
'contains' => 'enthält',
'contains_not' => 'enthält nicht',
'starts_with' => 'beginnt mit',
'ends_with' => 'endet with',
'is_null' => 'Null',
'is_not_null' => 'nicht null ',
'is_blank' => 'Leer',
'is_not_blank' => 'nicht leer',
'is_empty' => 'unausgefüllt',
'is_not_empty' => 'ausgefüllt',
],
'export' => [
'exporting' => 'Warten Sie mal!',
'completed' => 'Export abgeschlossen! Ihre Dateien stehen zum Download bereit',
],
'soft_deletes' => [
'message_with_trashed' => 'Alle Datensätze anzeigen, einschließlich gelöschter.',
'message_only_trashed' => 'Nur gelöschte Datensätze anzeigen.',
'without_trashed' => 'Ohne gelöschte',
'with_trashed' => 'Mit gelöschten',
'only_trashed' => 'Nur gelöschte',
],
'multi_sort' => [
'message' => 'Multiple Suche ist aktiv',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filter',
'clear_all_filters' => 'Clear all',
],
'labels' => [
'action' => 'Actions',
'results_per_page' => 'Records per page',
'clear_filter' => 'Clear filter',
'no_data' => 'No records found',
'all' => 'All',
'selected' => 'Selected',
'filtered' => 'Filtered',
],
'placeholders' => [
'search' => 'Search...',
'select' => 'Select a period',
],
'pagination' => [
'showing' => 'Showing',
'to' => 'to',
'of' => 'of',
'results' => 'Results',
'all' => 'All',
],
'multi_select' => [
'select' => 'Select',
'all' => 'All',
],
'select' => [
'select' => 'Select',
'all' => 'All',
],
'boolean_filter' => [
'all' => 'All',
],
'input_text_options' => [
'is' => 'Is',
'is_not' => 'Is not',
'contains' => 'Contains',
'contains_not' => 'Does not contain',
'starts_with' => 'Starts with',
'ends_with' => 'Ends with',
'is_empty' => 'Is empty',
'is_not_empty' => 'Is not empty',
'is_null' => 'Is null',
'is_not_null' => 'Is not null',
'is_blank' => 'Is blank',
'is_not_blank' => 'Is not blank',
],
'export' => [
'exporting' => 'Please wait!',
'completed' => 'Export completed! Your files are ready for download',
],
'soft_deletes' => [
'message_with_trashed' => 'Displaying all records, including deleted ones.',
'message_only_trashed' => 'Displaying only deleted records.',
'without_trashed' => 'Without deleted',
'with_trashed' => 'With deleted',
'only_trashed' => 'Only deleted',
],
'multi_sort' => [
'message' => 'Multiple sort is active',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filtrar',
'clear_all_filters' => 'Clear all',
],
'labels' => [
'action' => 'Acción',
'results_per_page' => 'Registros por página',
'clear_filter' => 'Borrar el filtro',
'no_data' => 'No se encontraron registros.',
'all' => 'Todos',
'selected' => 'Seleccionado',
'filtered' => 'Filtrada',
],
'placeholders' => [
'search' => 'Buscar',
'select' => 'Seleccione un período',
],
'pagination' => [
'showing' => 'Mostrando',
'to' => 'a',
'of' => 'de',
'results' => 'registros',
'all' => 'Todos',
],
'multi_select' => [
'select' => 'Seleccione',
'all' => 'Todos',
],
'select' => [
'select' => 'Seleccione',
'all' => 'Todos',
],
'boolean_filter' => [
'all' => 'Todos',
],
'input_text_options' => [
'is' => 'Es exactamente',
'is_not' => 'No es exactamente',
'contains' => 'Contiene',
'contains_not' => 'No contiene',
'starts_with' => 'Comienza por',
'ends_with' => 'Termina en',
'is_null' => 'És nulo',
'is_not_null' => 'No és nulo',
'is_blank' => 'És blanco',
'is_not_blank' => 'No és blanco',
'is_empty' => 'Esta relleno',
'is_not_empty' => 'No está relleno',
],
'export' => [
'exporting' => '¡Espere por favor!',
'completed' => '¡Exportación completada! Tus archivos están listos para descargar',
],
'soft_deletes' => [
'message_with_trashed' => 'Displaying all records, including deleted ones.',
'message_only_trashed' => 'Displaying only deleted records.',
'without_trashed' => 'Without deleted',
'with_trashed' => 'With deleted',
'only_trashed' => 'Only deleted',
],
'multi_sort' => [
'message' => 'Multiple sort is active',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'فیلتر',
'clear_all_filters' => 'حذف همه',
],
'labels' => [
'action' => 'اقدام ها',
'results_per_page' => 'آیتم در صفحه',
'clear_filter' => 'بدون فیلتر',
'no_data' => 'هیچ رکوردی یافت نشد',
'all' => 'همه',
'selected' => 'انتخاب شد',
'filtered' => 'پالوده',
],
'placeholders' => [
'search' => 'جستجو...',
'select' => 'انتخاب یک بازه زمانی',
],
'pagination' => [
'showing' => 'نمایش',
'to' => 'تا',
'of' => 'از',
'results' => 'نتایج',
'all' => 'همه',
],
'multi_select' => [
'select' => 'انتخاب',
'all' => 'همه',
],
'select' => [
'select' => 'انتخاب',
'all' => 'همه',
],
'boolean_filter' => [
'all' => 'همه',
],
'input_text_options' => [
'is' => 'برابرباشد',
'is_not' => 'برابرنباشد',
'contains' => 'شامل',
'contains_not' => 'شامل نباشد',
'starts_with' => 'شروع شود با',
'ends_with' => 'خاتمه یابد با',
'is_null' => 'is_null',
'is_not_null' => 'is_not_null',
'is_blank' => 'is_blank',
'is_not_blank' => 'is_not_blank',
'is_empty' => 'is_empty',
'is_not_empty' => 'is_not_empty',
],
'export' => [
'exporting' => 'لطفا صبر کنید!',
'completed' => 'صادرات به پایان رسید! فایل های شما آماده بارگیری هستند',
],
'soft_deletes' => [
'message_with_trashed' => 'نمایش همه سطرها همراه با حذف شده ها.',
'message_only_trashed' => 'نمایش حذف شده ها.',
'without_trashed' => 'بدون حذف شده ها',
'with_trashed' => 'همراه حذف شده ها',
'only_trashed' => 'فقط حذف شده ها',
],
'multi_sort' => [
'message' => 'سطح چند مدله فعال شد',
],
'buttons_macros' => [
'confirm' => [
'message' => 'آیا از انجام این اقدام اطمینان دارید؟',
],
'confirm_prompt' => [
'message' => "آیا از انجام این کار اطمینان دارید؟\n\n برای تایید :confirmValue را وارد کنید.",
],
],
];

View File

@@ -0,0 +1,76 @@
<?php
return [
'buttons' => [
'filter' => 'Filtrer',
'clear_all_filters' => 'Enlever tous les filtres',
],
'labels' => [
'action' => 'Actions',
'results_per_page' => 'Résultats par page',
'clear_filter' => 'Enlever les Filtres',
'no_data' => 'Aucune réponse',
'all' => 'Tous',
'selected' => 'Sélectionné',
'filtered' => 'Filtrée',
],
'placeholders' => [
'search' => 'Recherche...',
'select' => 'Sélectionner une période',
],
'pagination' => [
'showing' => 'Résultats',
'to' => 'à',
'of' => 'sur',
'results' => '',
'all' => 'Tous',
],
'multi_select' => [
'select' => 'Sélectionner',
'all' => 'Tous',
],
'select' => [
'select' => 'Sélectionner',
'all' => 'Tous',
],
'boolean_filter' => [
'all' => 'Tous',
],
'input_text_options' => [
'is' => 'Est',
'is_not' => 'N\'est pas',
'contains' => 'Contient',
'contains_not' => 'Ne contient pas',
'starts_with' => 'Commence par',
'ends_with' => 'Termine par',
'is_empty' => 'Est vide ou nul',
'is_not_empty' => 'N\'est ni vide ni nul',
'is_null' => 'Est nul',
'is_not_null' => 'N\'est pas nul',
'is_blank' => 'Est vide',
'is_not_blank' => 'N\'est pas vide',
],
'export' => [
'exporting' => 'Veuillez patienter !',
'completed' => 'Exportation terminée ! Vos fichiers sont téléchargés',
],
'soft_deletes' => [
'message_with_trashed' => 'Afficher toutes les lignes, même celles supprimées',
'message_only_trashed' => 'Afficher seulement les lignes supprimées',
'without_trashed' => 'Sans les lignes supprimées',
'with_trashed' => 'Avec les lignes supprimées',
'only_trashed' => 'Uniquement les lignes supprimées',
],
'multi_sort' => [
'message' => 'Multiple sort is active',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filter',
'clear_all_filters' => 'Clear all',
],
'labels' => [
'action' => 'Aksi',
'results_per_page' => 'Data per halaman',
'clear_filter' => 'Hapus filter',
'no_data' => 'Tidak ada data yang ditemukan',
'all' => 'Semua',
'selected' => 'Dipilih',
'filtered' => 'Tersaring',
],
'placeholders' => [
'search' => 'Cari...',
'select' => 'Pilih periode',
],
'pagination' => [
'showing' => 'Menampilkan',
'to' => 'hingga',
'of' => 'dari',
'results' => 'Hasil',
'all' => 'Semua',
],
'multi_select' => [
'select' => 'Pilih',
'all' => 'Semua',
],
'select' => [
'select' => 'Pilih',
'all' => 'Semua',
],
'boolean_filter' => [
'all' => 'Semua',
],
'input_text_options' => [
'is' => 'Tepat',
'is_not' => 'Tidak tepat',
'contains' => 'Terkait',
'contains_not' => 'Tidak terkait',
'starts_with' => 'Dimulai dengan',
'ends_with' => 'Diakhiri dengan',
'is_null' => 'Tidak ada',
'is_not_null' => 'Ada',
'is_blank' => 'Kosong',
'is_not_blank' => 'Tidak kosong',
'is_empty' => 'Kosong atau tidak ada',
'is_not_empty' => 'Tidak kosong dan ada',
],
'export' => [
'exporting' => 'Harap tunggu!',
'completed' => 'Ekspor selesai! File anda siap diunduh',
],
'soft_deletes' => [
'message_with_trashed' => 'Menampilkan semua data, termasuk yang telah dihapus',
'message_only_trashed' => 'Menampilkan data yang telah dihapus',
'without_trashed' => 'Tanpa data yang dihapus',
'with_trashed' => 'Dengan data yang dihapus',
'only_trashed' => 'Hanya data yang dihapus',
],
'multi_sort' => [
'message' => 'Pengurutan ganda diaktifkan',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filtra',
'clear_all_filters' => 'Svuota filtri',
],
'labels' => [
'action' => 'Azioni',
'results_per_page' => 'Risultati per pagina',
'clear_filter' => 'Rimuovi filtri',
'no_data' => 'Nessun risultato',
'all' => 'Tutti',
'selected' => 'Selezionati',
'filtered' => 'Filtrati',
],
'placeholders' => [
'search' => 'Cerca...',
'select' => 'Scegli un periodo',
],
'pagination' => [
'showing' => 'mostrati da',
'to' => 'a',
'of' => 'di',
'results' => 'risultati',
'all' => 'Tutti',
],
'multi_select' => [
'select' => 'Seleziona',
'all' => 'Tutti',
],
'select' => [
'select' => 'Seleziona',
'all' => 'Tutti',
],
'boolean_filter' => [
'all' => 'Tutti',
],
'input_text_options' => [
'is' => 'È',
'is_not' => 'Non è',
'contains' => 'Contiene',
'contains_not' => 'Non contiene',
'starts_with' => 'Inizia con',
'ends_with' => 'Termina con',
'is_null' => 'È nullo',
'is_not_null' => 'Non è nullo',
'is_blank' => 'È vergine',
'is_not_blank' => 'Non è vergine',
'is_empty' => 'È vuoto',
'is_not_empty' => 'Non è vuoto',
],
'export' => [
'exporting' => 'Attendere prego!',
'completed' => 'Esportazione completata! I tuoi file sono pronti per il download',
],
'soft_deletes' => [
'message_with_trashed' => 'Visualizza tutti i risultati, includendo quelli eliminati.',
'message_only_trashed' => 'Visualizza solo i risultati eliminati.',
'without_trashed' => 'Senza eliminati',
'with_trashed' => 'Con eliminati',
'only_trashed' => 'Solo eliminati',
],
'multi_sort' => [
'message' => 'E\' attivo l\'ordinamento multiplo',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Si è sicuri di voler eseguire questa azione?',
],
'confirm_prompt' => [
'message' => "Si è sicuri di voler eseguire questa azione? \n\n Scrivi :confirmValue per confermare.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Carian',
'clear_all_filters' => 'Clear all',
],
'labels' => [
'action' => 'Action',
'results_per_page' => 'Rekod per muka',
'clear_filter' => 'Kosongkan Carian',
'no_data' => 'Tiada rekod ditemui',
'all' => 'Semua',
'selected' => 'Pilihan',
'filtered' => 'Hasil yang ditapis',
],
'placeholders' => [
'search' => 'Cari...',
'select' => 'Pilih tempoh',
],
'pagination' => [
'showing' => 'Dalam Proses',
'to' => 'hingga',
'of' => 'daripada',
'results' => 'Keputusan',
'all' => 'Semua',
],
'multi_select' => [
'select' => 'Pilih',
'all' => 'Semua',
],
'select' => [
'select' => 'Pilih',
'all' => 'Semua',
],
'boolean_filter' => [
'all' => 'Semua',
],
'input_text_options' => [
'is' => 'Sama dengan',
'is_not' => 'Tidak sama dengan',
'contains' => 'Mengandungi',
'contains_not' => 'Tidak mengandungi',
'starts_with' => 'Bermula dengan',
'ends_with' => 'Berakhir dengan',
'is_null' => 'is_null',
'is_not_null' => 'is_not_null',
'is_blank' => 'is_blank',
'is_not_blank' => 'is_not_blank',
'is_empty' => 'is_empty',
'is_not_empty' => 'is_not_empty',
],
'export' => [
'exporting' => 'Sila tunggu!',
'completed' => 'Eksport selepas! Fail anda sudah siap untuk dimuatturun',
],
'soft_deletes' => [
'message_with_trashed' => 'Displaying all records, including deleted ones.',
'message_only_trashed' => 'Displaying only deleted records.',
'without_trashed' => 'Without deleted',
'with_trashed' => 'With deleted',
'only_trashed' => 'Only deleted',
],
'multi_sort' => [
'message' => 'Multiple sort is active',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filter',
'clear_all_filters' => 'Wis alle filters',
],
'labels' => [
'action' => 'Acties',
'results_per_page' => 'Records per pagina',
'clear_filter' => 'Wis filter',
'no_data' => 'Geen records gevonden',
'all' => 'Alles',
'selected' => 'Geselecteerd',
'filtered' => 'Gefilterd',
],
'placeholders' => [
'search' => 'Zoek...',
'select' => 'Selecteer een periode',
],
'pagination' => [
'showing' => 'Toont',
'to' => 'tot',
'of' => 'van',
'results' => 'Resultaten',
'all' => 'Alles',
],
'multi_select' => [
'select' => 'Selecteer',
'all' => 'Alles',
],
'select' => [
'select' => 'Selecteer',
'all' => 'Alles',
],
'boolean_filter' => [
'all' => 'Alles',
],
'input_text_options' => [
'is' => 'Is',
'is_not' => 'Is not',
'contains' => 'Bevat',
'contains_not' => 'Bevat geen',
'starts_with' => 'Begint met',
'ends_with' => 'Eindigt met',
'is_empty' => 'Is leeg',
'is_not_empty' => 'Is niet leeg',
'is_null' => 'Is null',
'is_not_null' => 'Is niet null',
'is_blank' => 'Is niet ingevuld',
'is_not_blank' => 'Is ingevuld',
],
'export' => [
'exporting' => 'Even geduld a.u.b.!',
'completed' => 'Export voltooid! Uw bestaanden staan klaar voor download.',
],
'soft_deletes' => [
'message_with_trashed' => 'Toont alle records, inclusief verwijderde.',
'message_only_trashed' => 'Toont enkele verwijderde records.',
'without_trashed' => 'Exclusief verwijderde',
'with_trashed' => 'Inclusief verwijderde',
'only_trashed' => 'Enkel verwijderde',
],
'multi_sort' => [
'message' => 'Meervoudige sortering is actief',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filtry',
'clear_all_filters' => 'Wyczyść wszystkie filtry',
],
'labels' => [
'action' => 'Akcje',
'results_per_page' => 'Pozycji na stronę',
'clear_filter' => 'Wyczyść filtr',
'no_data' => 'Nie znaleziono pasujących pozycji',
'all' => 'Wszystkie',
'selected' => 'Zaznaczone',
'filtered' => 'Przefiltrowany',
],
'placeholders' => [
'search' => 'Szukaj...',
'select' => 'Wybierz okres',
],
'pagination' => [
'showing' => 'Pozycje',
'to' => 'do',
'of' => 'z',
'results' => 'dostępnych',
'all' => 'Wszystko',
],
'multi_select' => [
'select' => 'Wybierz',
'all' => 'Wszystko',
],
'select' => [
'select' => 'Wybierz',
'all' => 'Wszystko',
],
'boolean_filter' => [
'all' => 'Wszystko',
],
'input_text_options' => [
'is' => 'Jest równy',
'is_not' => 'Nie jest równy',
'contains' => 'Zawiera',
'contains_not' => 'Nie zawiera',
'starts_with' => 'Zaczyna się od',
'ends_with' => 'Kończy się na',
'is_empty' => 'Jest pusty',
'is_not_empty' => 'Nie jest pusty',
'is_null' => 'Jest pusty (null)',
'is_not_null' => 'Nie pusty (null)',
'is_blank' => 'Jest pusty (blank)',
'is_not_blank' => 'Nie jest pusty (blank)',
],
'export' => [
'exporting' => 'Proszę czekać!',
'completed' => 'Eksport gotowy! Twoje pliki są gotowe do pobrania',
],
'soft_deletes' => [
'message_with_trashed' => 'Wyświetlam wszystkie pozycję, uwzględniając skasowane.',
'message_only_trashed' => 'Wyświetlam tylko pozycję w koszu.',
'without_trashed' => 'Bez skasowanych',
'with_trashed' => 'Uwzględnij kosz',
'only_trashed' => 'Pokaż tylko kosz',
],
'multi_sort' => [
'message' => 'Wielokolumnowe sortowanie jest aktywne',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filtrar',
'clear_all_filters' => 'Limpar Todos',
],
'labels' => [
'action' => 'Ações',
'results_per_page' => 'Registos por página',
'clear_filter' => 'Limpar filtro',
'no_data' => 'Nenhum registo encontrado',
'all' => 'Todos',
'selected' => 'Selecionados',
'filtered' => 'Filtrados',
],
'placeholders' => [
'search' => 'Pesquisar ...',
'select' => 'Selecione um período',
],
'pagination' => [
'showing' => 'A mostrar',
'to' => 'até',
'of' => 'de',
'results' => 'resultados',
'all' => 'Todos',
],
'multi_select' => [
'select' => 'Selecione',
'all' => 'Todos',
],
'select' => [
'select' => 'Selecione',
'all' => 'Todos',
],
'boolean_filter' => [
'all' => 'Todos',
],
'input_text_options' => [
'is' => 'É exatamente',
'is_not' => 'É diferente de',
'contains' => 'Contém',
'contains_not' => 'Não contém',
'starts_with' => 'Começa com',
'ends_with' => 'Termina com',
'is_null' => 'É nulo',
'is_not_null' => 'Não é núlo',
'is_blank' => 'Está em branco',
'is_not_blank' => 'Não está em branco',
'is_empty' => 'Não está preenchido',
'is_not_empty' => 'Está preenchido',
],
'export' => [
'exporting' => 'Por favor, aguarde!',
'completed' => 'Exportação concluída! Os seus ficheiros estão prontos para download',
],
'soft_deletes' => [
'message_with_trashed' => 'A mostrar todos os registos, incluindo os excluídos.',
'message_only_trashed' => 'A mostrar apenas os registos excluídos.',
'without_trashed' => 'Sem excluídos',
'with_trashed' => 'Com excluídos',
'only_trashed' => 'Apenas excluídos',
],
'multi_sort' => [
'message' => 'A classificação múltipla está ativa',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Tem a certeza que pretende executar esta ação?',
],
'confirm_prompt' => [
'message' => "Tem a certeza que pretende executar esta ação? \n\n Escreva :confirmValue para confirmar.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filtrar',
'clear_all_filters' => 'Limpar Todos',
],
'labels' => [
'action' => 'Ações',
'results_per_page' => 'Registros por página',
'clear_filter' => 'Limpar filtro',
'no_data' => 'Nenhum registro encontrado',
'all' => 'Todos',
'selected' => 'Selecionados',
'filtered' => 'Filtrados',
],
'placeholders' => [
'search' => 'Buscar ...',
'select' => 'Selecione um período',
],
'pagination' => [
'showing' => 'Mostrando',
'to' => 'até',
'of' => 'de',
'results' => 'Registros',
'all' => 'Todos',
],
'multi_select' => [
'select' => 'Selecione',
'all' => 'Todos',
],
'select' => [
'select' => 'Selecione',
'all' => 'Todos',
],
'boolean_filter' => [
'all' => 'Todos',
],
'input_text_options' => [
'is' => 'É exatamente',
'is_not' => 'É diferente de',
'contains' => 'Contém',
'contains_not' => 'Não contém',
'starts_with' => 'Começa com',
'ends_with' => 'Termina com',
'is_null' => 'É nulo',
'is_not_null' => 'Não é núlo',
'is_blank' => 'Está em branco',
'is_not_blank' => 'Não está em branco',
'is_empty' => 'Não está preenchido',
'is_not_empty' => 'Está preenchido',
],
'export' => [
'exporting' => 'Por favor, aguarde!',
'completed' => 'Exportação concluída! Seus arquivos estão prontos para download',
],
'soft_deletes' => [
'message_with_trashed' => 'Exibindo todos os registros, incluindo os excluídos.',
'message_only_trashed' => 'Exibindo apenas os registros excluídos.',
'without_trashed' => 'Sem excluídos',
'with_trashed' => 'Com excluídos',
'only_trashed' => 'Apenas excluídos',
],
'multi_sort' => [
'message' => 'A classificação múltipla está ativa',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Tem a certeza que pretende executar esta ação?',
],
'confirm_prompt' => [
'message' => "Tem a certeza que pretende executar esta ação? \n\n Escreva :confirmValue para confirmar.",
],
],
];

View File

@@ -0,0 +1,76 @@
<?php
return [
'buttons' => [
'filter' => 'Фильтр',
'clear_all_filters' => 'Очистить все',
],
'labels' => [
'action' => 'Действия',
'results_per_page' => 'Записей на страницу',
'clear_filter' => 'Удалить фильтры',
'no_data' => 'Записи не найдены',
'all' => 'Все',
'selected' => 'Выбранные',
'filtered' => 'Отфильтровано',
],
'placeholders' => [
'search' => 'Поиск...',
'select' => 'Выбрать период',
],
'pagination' => [
'showing' => 'Отображение',
'to' => 'к',
'of' => 'из',
'results' => 'Результаты',
'all' => 'Все',
],
'multi_select' => [
'select' => 'Выбрать',
'all' => 'Все',
],
'select' => [
'select' => 'Выбрать',
'all' => 'Все',
],
'boolean_filter' => [
'all' => 'Все',
],
'input_text_options' => [
'is' => 'Равно',
'is_not' => 'Не равно',
'contains' => 'Содержит',
'contains_not' => 'Не содержит',
'starts_with' => 'Начинается с',
'ends_with' => 'Заканчивается на',
'is_empty' => 'Пусто',
'is_not_empty' => 'Не пусто',
'is_null' => 'Пусто (null)',
'is_not_null' => 'Не пусто (null)',
'is_blank' => 'Пусто (blank)',
'is_not_blank' => 'Не пусто (blank)',
],
'export' => [
'exporting' => 'Пожалуйста подождите!',
'completed' => 'Экспорт завершен! Файлы готово для скачивания',
],
'soft_deletes' => [
'message_with_trashed' => 'Displaying all records, including deleted ones.',
'message_only_trashed' => 'Displaying only deleted records.',
'without_trashed' => 'Without deleted',
'with_trashed' => 'With deleted',
'only_trashed' => 'Only deleted',
],
'multi_sort' => [
'message' => 'Multiple sort is active',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'Filtre',
'clear_all_filters' => 'Tümünü Temizle',
],
'labels' => [
'action' => 'İşlemler',
'results_per_page' => 'Sayfa başına veri',
'clear_filter' => 'Filtreleri temizle',
'no_data' => 'Veri bulunamadı',
'all' => 'Tümü',
'selected' => 'Seçili',
'filtered' => 'Filtrelenmiş',
],
'placeholders' => [
'search' => 'Arama yap...',
'select' => 'Seç',
],
'pagination' => [
'showing' => 'Gösterilen:',
'to' => 'ile',
'of' => 'arası. Toplam:',
'results' => 'Sonuç',
'all' => 'Tümü',
],
'multi_select' => [
'select' => 'Seç',
'all' => 'Tümü',
],
'select' => [
'select' => 'Seç',
'all' => 'Tümü',
],
'boolean_filter' => [
'all' => 'Tümü',
],
'input_text_options' => [
'is' => 'Eşit',
'is_not' => 'Eşit olmayan',
'contains' => 'İçeren',
'contains_not' => 'İçermeyen',
'starts_with' => 'ile Başlayan',
'ends_with' => 'ile Biten',
'is_null' => 'Yok olan',
'is_not_null' => 'Yok olmayan',
'is_blank' => 'Boş olan',
'is_not_blank' => 'Boş olmayan',
'is_empty' => 'Boş olan',
'is_not_empty' => 'Boş olmayan',
],
'export' => [
'exporting' => 'Dışarı aktarılıyor, lütfen bekleyin!',
'completed' => 'Dışa aktarım tamamlandı! Dosyalarınız indirmek için hazır',
],
'soft_deletes' => [
'message_with_trashed' => 'Silinenler dahil tüm kayıtlar listeleniyor.',
'message_only_trashed' => 'Sadece silinenler listeleniyor.',
'without_trashed' => 'Silinenler hariç',
'with_trashed' => 'Silinenlerle birlikte',
'only_trashed' => 'Sadece silinenler',
],
'multi_sort' => [
'message' => 'Çoklu sıralama etkin',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,76 @@
<?php
return [
'buttons' => [
'filter' => 'Фильтр',
'clear_all_filters' => 'Очистити все',
],
'labels' => [
'action' => 'Дія',
'results_per_page' => 'Записів на сторінку',
'clear_filter' => 'Видалити фільтри',
'no_data' => 'Записи не знайдені',
'all' => 'Всі',
'selected' => 'Вибрані',
'filtered' => 'Відфільтровані',
],
'placeholders' => [
'search' => 'Пошук...',
'select' => 'Вибрати період',
],
'pagination' => [
'showing' => 'Відображення від',
'to' => 'до',
'of' => 'з',
'results' => 'результатів',
'all' => 'Всі',
],
'multi_select' => [
'select' => 'Вибрати',
'all' => 'Всі',
],
'select' => [
'select' => 'Вибрати',
'all' => 'Всі',
],
'boolean_filter' => [
'all' => 'Всі',
],
'input_text_options' => [
'is' => 'Дорівнює',
'is_not' => 'Не дорівнює',
'contains' => 'Містить',
'contains_not' => 'Не містить',
'starts_with' => 'Починається з',
'ends_with' => 'Закінчується на',
'is_empty' => 'Пусто',
'is_not_empty' => 'Не пусто',
'is_null' => 'Пусто (null)',
'is_not_null' => 'Не пусто (null)',
'is_blank' => 'Пусто (blank)',
'is_not_blank' => 'Не пусто (blank)',
],
'export' => [
'exporting' => 'Будь ласка зачекайте!',
'completed' => 'Експорт завершено! Файли готові для скачування',
],
'soft_deletes' => [
'message_with_trashed' => 'Показати всі записи, включаючи видалені',
'message_only_trashed' => 'Показати тільки видалені записи',
'without_trashed' => 'Без видалених записів',
'with_trashed' => 'З видаленими записами',
'only_trashed' => 'Тільки видалені записи',
],
'multi_sort' => [
'message' => 'Сортувати за',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,75 @@
<?php
return [
'buttons' => [
'filter' => 'àlẹmọ',
'clear_all_filters' => 'Clear all',
],
'labels' => [
'action' => 'Awọn Igbese',
'results_per_page' => 'Esi Ni oju-iwe',
'clear_filter' => 'Ko àlẹmọ',
'no_data' => 'Ko si awọn igbasilẹ ti a rii',
'all' => 'Gbogbo e',
'selected' => 'Oun To Mu',
'filtered' => 'Filter',
],
'placeholders' => [
'search' => 'Wa...',
'select' => 'Mu akoko Kan',
],
'pagination' => [
'showing' => 'Afihan',
'to' => 'Si',
'of' => 'ti',
'results' => 'Esi',
'all' => 'Gbogbo e',
],
'multi_select' => [
'select' => 'Mu',
'all' => 'Gbogbo e',
],
'select' => [
'select' => 'Mu',
'all' => 'Gbogbo e',
],
'boolean_filter' => [
'all' => 'Gbogbo e',
],
'input_text_options' => [
'is' => 'Ni',
'is_not' => 'kiise',
'contains' => 'Ninu',
'contains_not' => 'Ko Si Ninu',
'starts_with' => 'Bere Pelu',
'ends_with' => 'Pari Pelu',
'is_null' => 'is_null',
'is_not_null' => 'is_not_null',
'is_blank' => 'is_blank',
'is_not_blank' => 'is_not_blank',
'is_empty' => 'is_empty',
'is_not_empty' => 'is_not_empty',
],
'export' => [
'exporting' => 'jọwọ duro!',
'completed' => 'O ti setan! Awọn faili rẹ ti šetan fun igbasilẹ',
],
'soft_deletes' => [
'message_with_trashed' => 'Displaying all records, including deleted ones.',
'message_only_trashed' => 'Displaying only deleted records.',
'without_trashed' => 'Without deleted',
'with_trashed' => 'With deleted',
'only_trashed' => 'Only deleted',
],
'multi_sort' => [
'message' => 'Multiple sort is active',
],
'buttons_macros' => [
'confirm' => [
'message' => 'Are you sure you want to perform this action?',
],
'confirm_prompt' => [
'message' => "Are you sure you want to perform this action? \n\n Enter :confirmValue to confirm.",
],
],
];

View File

@@ -0,0 +1,14 @@
<div class="px-4 py-2 rounded-lg text-sm bg-violet-100 text-gray-700">
@if($row->application_text )
<div class="flex w-full justify-between items-start">
<div class="flex">
<svg class="shrink-0 fill-current text-violet-500 mt-[3px] mr-3" width="16" height="16" viewBox="0 0 16 16">
<path d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm1 12H7V7h2v5zM8 6c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1z"></path>
</svg>
<div>{{ $row->application_text }}</div>
</div>
</div>
@else
keine Bewerbung vorhanden
@endif
</div>

View File

@@ -30,5 +30,13 @@
</div>
</a>
</li>
<li class="{{ $currentRoute === 'association.members.admin' ? $isCurrentRouteClass : $isNotCurrentRouteClass }}">
<a class="block text-gray-800 dark:text-gray-100 hover:text-gray-900 dark:hover:text-white truncate transition" href="{{ route('association.members.admin') }}">
<div class="flex items-center">
<i class="fa-sharp-duotone fa-solid fa-users h-6 w-6"></i>
<span class="text-sm font-medium ml-4 lg:opacity-0 lg:sidebar-expanded:opacity-100 2xl:opacity-100 duration-200">Mitglieder</span>
</div>
</a>
</li>
</ul>
</div>

View File

@@ -1,73 +0,0 @@
<div class="min-w-fit">
@php
$isCurrentRouteClass = 'pl-4 pr-3 py-2 rounded-lg mb-0.5 last:mb-0 bg-[linear-gradient(135deg,var(--tw-gradient-stops))] from-violet-500/[0.12] dark:from-violet-500/[0.24] to-violet-500/[0.04]';
$isNotCurrentRouteClass = 'pl-4 pr-3 py-2 rounded-lg mb-0.5 last:mb-0';
$isCurrentSubItem = 'block text-violet-500 transition truncate';
$isNotCurrentSubItem = 'block text-gray-500/90 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 transition truncate';
@endphp
<!-- Sidebar backdrop (mobile only) -->
<div
class="fixed inset-0 bg-gray-900 bg-opacity-30 z-40 lg:hidden lg:z-auto transition-opacity duration-200"
:class="sidebarOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'"
aria-hidden="true"
x-cloak
></div>
<!-- Sidebar -->
<div
id="sidebar"
class="flex flex-col absolute z-40 left-0 top-0 lg:static lg:left-auto lg:top-auto lg:translate-x-0 h-[100dvh] overflow-y-scroll lg:overflow-y-auto no-scrollbar w-64 lg:w-20 lg:sidebar-expanded:!w-64 2xl:!w-64 shrink-0 bg-white dark:bg-[#222222] shadow-sm rounded-r-2xl p-4 transition-all duration-200 ease-in-out"
:class="sidebarOpen ? 'translate-x-0' : '-translate-x-64'"
@click.outside="sidebarOpen = false"
@keydown.escape.window="sidebarOpen = false"
x-cloak="lg"
>
<!-- Sidebar header -->
<div class="flex justify-between mb-10 pr-3 sm:px-2">
<!-- Close button -->
<button class="lg:hidden text-gray-500 hover:text-gray-400" @click.stop="sidebarOpen = !sidebarOpen"
aria-controls="sidebar" :aria-expanded="sidebarOpen">
<span class="sr-only">Close sidebar</span>
<svg class="w-6 h-6 fill-current" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M10.7 18.7l1.4-1.4L7.8 13H20v-2H7.8l4.3-4.3-1.4-1.4L4 12z"/>
</svg>
</button>
<!-- Logo -->
<img src="{{ asset('img/einundzwanzig-horizontal-inverted.svg') }}" alt="Logo" width="auto" height="32">
</div>
@php
$activeLinkGroupClass = ' bg-[linear-gradient(135deg,var(--tw-gradient-stops))] from-amber-500/[0.12] dark:from-amber-500/[0.24] to-amber-500/[0.04]';
$activeItemClass = 'block text-amber-500 transition truncate';
@endphp
<!-- Links -->
<div class="space-y-8">
@include('components.layouts.navigation.meetups', ['isCurrentRouteClass' => $isCurrentRouteClass, 'isNotCurrentRouteClass' => $isNotCurrentRouteClass])
@include('components.layouts.navigation.association', ['isCurrentRouteClass' => $isCurrentRouteClass, 'isNotCurrentRouteClass' => $isNotCurrentRouteClass])
{{--@include('components.layouts.navigation.events')
@include('components.layouts.navigation.courses')
@include('components.layouts.navigation.nostr')
@include('components.layouts.navigation.legacy')--}}
</div>
<!-- Expand / collapse button -->
<div class="pt-3 hidden lg:inline-flex 2xl:hidden justify-end mt-auto">
<div class="w-12 pl-4 pr-3 py-2">
<button
class="text-gray-400 hover:text-gray-500 dark:text-gray-500 dark:hover:text-gray-400 transition-colors"
@click="sidebarExpanded = !sidebarExpanded">
<span class="sr-only">Expand / collapse sidebar</span>
<svg class="shrink-0 fill-current text-gray-400 dark:text-gray-500 sidebar-expanded:rotate-180"
xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path
d="M15 16a1 1 0 0 1-1-1V1a1 1 0 1 1 2 0v14a1 1 0 0 1-1 1ZM8.586 7H1a1 1 0 1 0 0 2h7.586l-2.793 2.793a1 1 0 1 0 1.414 1.414l4.5-4.5A.997.997 0 0 0 12 8.01M11.924 7.617a.997.997 0 0 0-.217-.324l-4.5-4.5a1 1 0 0 0-1.414 1.414L8.586 7M12 7.99a.996.996 0 0 0-.076-.373Z"/>
</svg>
</button>
</div>
</div>
</div>
</div>

View File

@@ -59,7 +59,7 @@ mount(function() {
<!-- Links -->
<div class="space-y-8">
@include('components.layouts.navigation.meetups')
{{--@include('components.layouts.navigation.meetups')--}}
@include('components.layouts.navigation.association')
{{--@include('components.layouts.navigation.events')
@include('components.layouts.navigation.courses')

View File

@@ -278,8 +278,8 @@ $signEvent = function ($event) {
<li class="-mx-2">
<div class="flex w-full p-2 rounded text-left">
<img class="w-8 h-8 rounded-full mr-2 bg-black"
src="{{ $pleb['profile']['picture'] ?? 'https://robohash.org/' . $pleb['pubkey'] }}"
onerror="this.onerror=null; this.src='https://robohash.org/{{ $pleb['pubkey'] }}';"
src="{{ $pleb['profile']['picture'] ?? 'https://robohash.org/test' }}"
onerror="this.onerror=null; this.src='https://robohash.org/test';"
width="32"
height="32"
alt="{{ $pleb['pubkey'] }}"/>

View File

@@ -0,0 +1,33 @@
<?php
use Livewire\Volt\Component;
use function Livewire\Volt\computed;
use function Livewire\Volt\mount;
use function Livewire\Volt\state;
use function Livewire\Volt\with;
use function Livewire\Volt\updated;
use function Laravel\Folio\{middleware};
use function Laravel\Folio\name;
use function Livewire\Volt\{on};
name('association.members.admin');
state(['currentPubkey' => null]);
state(['members' => []]);
on([
'nostrLoggedIn' => function ($pubkey) {
$this->currentPubkey = $pubkey;
},
]);
?>
<x-layouts.app title="{{ __('Mitglieder') }}">
@volt
<div class="px-4 sm:px-6 lg:px-8 py-8 w-full max-w-9xl mx-auto">
<livewire:einundzwanzig-pleb-table/>
</div>
@endvolt
</x-layouts.app>

View File

@@ -8,10 +8,31 @@ use function Livewire\Volt\state;
use function Livewire\Volt\with;
use function Laravel\Folio\{middleware};
use function Laravel\Folio\name;
use function Livewire\Volt\{on};
use function Livewire\Volt\{on, form};
name('association.profile');
state(['currentPubkey' => null]);
state(['currentPleb' => null]);
form(\App\Livewire\Forms\ApplicationForm::class);
on([
'nostrLoggedIn' => function ($pubkey) {
$this->currentPubkey = $pubkey;
$this->currentPleb = \App\Models\EinundzwanzigPleb::query()->where('pubkey', $pubkey)->first();
},
]);
$save = function ($type) {
$this->form->validate();
$this->currentPleb
->update([
'application_for' => $type,
'application_text' => $this->form->reason,
]);
};
?>
<x-layouts.app title="{{ __('Wahl') }}">
@@ -42,7 +63,7 @@ name('association.profile');
<ul class="flex flex-nowrap md:block mr-3 md:mr-0">
<li class="mr-0.5 md:mr-0 md:mb-0.5">
<a class="flex items-center px-2.5 py-2 rounded-lg whitespace-nowrap bg-[linear-gradient(135deg,var(--tw-gradient-stops))] from-orange-500/[0.12] dark:from-orange-500/[0.24] to-orange-500/[0.04]"
href="settings.html">
href="#0">
<i class="fa-sharp-duotone fa-solid fa-id-card-clip shrink-0 fill-current text-orange-400 mr-2"></i>
<span
class="text-sm font-medium text-orange-500 dark:text-orange-400">Status</span>
@@ -92,50 +113,120 @@ name('association.profile');
<!-- Picture -->
<section>
<div class="flex items-center">
<x-button label="Mit Nostr verbinden" @click="openNostrLogin" x-show="!$store.nostr.user"/>
<div class="flex items-center justify-between">
<x-button label="Mit Nostr verbinden" @click="openNostrLogin"
x-show="!$store.nostr.user"/>
<template x-if="$store.nostr.user">
<div class="flex items">
<img class="w-12 h-12 rounded-full"
x-bind:src="$store.nostr.user.picture"
alt="">
<div class="ml-4">
<h3 class="text-lg leading-snug text-[#1B1B1B] dark:text-gray-100 font-bold" x-text="$store.nostr.user.nip05"></h3>
<div class="text-sm text-gray-500 dark:text-gray-400" x-text="$store.nostr.user.nip05"></div>
<h3 class="text-lg leading-snug text-[#1B1B1B] dark:text-gray-100 font-bold"
x-text="$store.nostr.user.nip05"></h3>
<div class="text-sm text-gray-500 dark:text-gray-400"
x-text="$store.nostr.user.nip05"></div>
</div>
</div>
</template>
@if($currentPubkey)
<div
class="inline-flex min-w-80 px-4 py-2 rounded-lg text-sm bg-white dark:bg-gray-800 shadow-sm border border-gray-200 dark:border-gray-700/60 text-gray-600 dark:text-gray-100">
<div class="flex w-full justify-between items-start">
<div class="flex">
<svg class="shrink-0 fill-current text-green-500 mt-[3px] mr-3"
width="16" height="16" viewBox="0 0 16 16">
<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>
<div>Profil in der Datenbank vorhanden. Bewerbung kann erfolgen.</div>
</div>
</div>
</div>
@endif
</div>
</section>
<!-- Business Profile -->
<section>
<h3 class="text-xl leading-snug text-[#1B1B1B] dark:text-gray-100 font-bold mb-1">
passives Mitglied werden
</h3>
<div class="text-sm">
TEXT
</div>
<div class="sm:flex sm:items-center space-y-4 sm:space-y-0 sm:space-x-4 mt-5">
<div class="sm:w-1/3">
<x-button label="Beantragen"/>
@if($currentPubkey && !$currentPleb->application_for && $currentPleb->association_status->value < 2)
<h3 class="text-xl leading-snug text-[#1B1B1B] dark:text-gray-100 font-bold mb-1">
passives Mitglied werden
</h3>
<div class="text-sm">
<x-textarea
corner="Beschreibe deine Motivation, passives Mitglied zu werden."
label="Warum möchtest du passives Mitglied werden?" wire:model="form.reason"/>
</div>
</div>
<div class="sm:flex sm:items-center space-y-4 sm:space-y-0 sm:space-x-4 mt-5">
<div class="sm:w-1/3 flex flex-col space-y-2">
<x-button label="Für passive Mitgliedschaft bewerben"
wire:click="save({{ \App\Enums\AssociationStatus::PASSIVE() }})"/>
<x-badge outline
label="Es wird im Anschluss ein Nostr Event erzeugt, das du mit dem Mitgliedsbeitrag zappen kannst, nachdem du bestätigt wurdest."/>
</div>
</div>
@endif
</section>
<!-- Email -->
<section>
<h3 class="text-xl leading-snug text-[#1B1B1B] dark:text-gray-100 font-bold mb-1">aktives
Mitglied werden</h3>
<div class="text-sm">
TEXT
</div>
<div class="sm:flex sm:items-center space-y-4 sm:space-y-0 sm:space-x-4 mt-5">
<div class="sm:w-1/3">
<x-button label="Beantragen"/>
@if($currentPubkey && !$currentPleb->application_for && $currentPleb->association_status->value < 2)
<h3 class="text-xl leading-snug text-[#1B1B1B] dark:text-gray-100 font-bold mb-1">
aktives Mitglied werden
</h3>
<div class="text-sm">
<x-textarea
corner="Woher kennen wir dich? Was möchtest du einbringen?"
description="Wir bitten dich mindestens von mind. 3 aktiven Mitgliedern auf Nostr gefolgt zu werden."
label="Warum möchtest du aktives Mitglied werden?" wire:model="form.reason"/>
</div>
</div>
<div class="sm:flex sm:items-center space-y-4 sm:space-y-0 sm:space-x-4 mt-5">
<div class="sm:w-1/3 flex flex-col space-y-2">
<x-button label="Für aktive Mitgliedschaft bewerben"
wire:click="save({{ \App\Enums\AssociationStatus::ACTIVE() }})"/>
<x-badge outline
label="Es wird im Anschluss ein Nostr Event erzeugt, das du mit dem Mitgliedsbeitrag zappen kannst, nachdem du bestätigt wurdest."/>
</div>
</div>
@endif
</section>
<section>
@if($currentPubkey && $currentPleb->application_for)
<div class="inline-flex flex-col w-full max-w-lg px-4 py-2 rounded-lg text-sm bg-white dark:bg-gray-800 shadow-sm border border-gray-200 dark:border-gray-700/60 text-gray-600 dark:text-gray-400">
<div class="flex w-full justify-between items-start">
<div class="flex">
<svg class="shrink-0 fill-current text-yellow-500 mt-[3px] mr-3" width="16" height="16" viewBox="0 0 16 16">
<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>
<div>
<div class="font-medium text-gray-800 dark:text-gray-100 mb-1">Du hast dich erfolgreich mit folgendem Grund beworben:</div>
<div>{{ $currentPleb->application_text }}</div>
</div>
</div>
</div>
</div>
@endif
</section>
<section>
@if($currentPleb && $currentPleb->association_status->value > 1)
<div class="inline-flex flex-col w-full max-w-lg px-4 py-2 rounded-lg text-sm bg-white dark:bg-gray-800 shadow-sm border border-gray-200 dark:border-gray-700/60 text-gray-600 dark:text-gray-400">
<div class="flex w-full justify-between items-start">
<div class="flex">
<svg class="shrink-0 fill-current text-yellow-500 mt-[3px] mr-3" width="16" height="16" viewBox="0 0 16 16">
<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>
<div>
<div class="font-medium text-gray-800 dark:text-gray-100 mb-1">Dein aktueller Status: {{ $currentPleb->association_status->label() }}</div>
</div>
</div>
</div>
</div>
@endif
</section>
</div>
<!-- Panel footer -->