mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
Apply Laravel coding style
Shift automatically applies the Laravel coding style - which uses the PSR-12 coding style as a base with some minor additions. You may customize the code style applied by configuring [Pint](https://laravel.com/docs/pint), [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer), or [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) for your project root. For more information on customizing the code style applied by Shift, [watch this short video](https://laravelshift.com/videos/shift-code-style).
This commit is contained in:
committed by
HolgerHatGarKeineNode
parent
a15ca4a2bc
commit
5776b01d15
@@ -10,8 +10,8 @@ use Rappasoft\LaravelLivewireTables\Views\Filters\TextFilter;
|
||||
|
||||
class BitcoinEventTable extends DataTableComponent
|
||||
{
|
||||
|
||||
public string $country;
|
||||
|
||||
public string $tableName = 'bitcoin_events';
|
||||
|
||||
public function configure(): void
|
||||
@@ -20,17 +20,17 @@ class BitcoinEventTable extends DataTableComponent
|
||||
->setDefaultSort('from', 'asc')
|
||||
->setAdditionalSelects([
|
||||
'bitcoin_events.id',
|
||||
'bitcoin_events.venue_id'
|
||||
'bitcoin_events.venue_id',
|
||||
])
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
@@ -54,29 +54,29 @@ class BitcoinEventTable extends DataTableComponent
|
||||
return [
|
||||
Column::make(__('Country'), 'venue.city.country.name')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => view('columns.bitcoin_events.country')->withRow($row)
|
||||
fn ($value, $row, Column $column) => view('columns.bitcoin_events.country')->withRow($row)
|
||||
)
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Title'), 'title')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => view('columns.bitcoin_events.title')->withRow($row)
|
||||
fn ($value, $row, Column $column) => view('columns.bitcoin_events.title')->withRow($row)
|
||||
)
|
||||
->sortable(),
|
||||
Column::make(__('From'), 'from')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => $value->asDateTime()
|
||||
fn ($value, $row, Column $column) => $value->asDateTime()
|
||||
),
|
||||
Column::make(__('To'), 'to')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => $value->asDateTime()
|
||||
fn ($value, $row, Column $column) => $value->asDateTime()
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Venue'), 'venue.name')
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Link'), 'link')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => view('columns.bitcoin_events.link')->withRow($row)
|
||||
fn ($value, $row, Column $column) => view('columns.bitcoin_events.link')->withRow($row)
|
||||
)
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
@@ -87,12 +87,12 @@ class BitcoinEventTable extends DataTableComponent
|
||||
{
|
||||
return BitcoinEvent::query()
|
||||
->with([
|
||||
'venue.city.country'
|
||||
'venue.city.country',
|
||||
])
|
||||
->where('bitcoin_events.from', '>=', now())
|
||||
->where(fn($query) => $query
|
||||
->where(fn ($query) => $query
|
||||
->whereHas('venue.city.country',
|
||||
fn($query) => $query->where('code', $this->country))
|
||||
fn ($query) => $query->where('code', $this->country))
|
||||
->orWhere('show_worldwide', true)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
namespace App\Http\Livewire\Tables;
|
||||
|
||||
use App\Models\BookCase;
|
||||
use App\Models\OrangePill;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Livewire\WithFileUploads;
|
||||
use Rappasoft\LaravelLivewireTables\DataTableComponent;
|
||||
use Rappasoft\LaravelLivewireTables\Views\Column;
|
||||
use Rappasoft\LaravelLivewireTables\Views\Filters\TextFilter;
|
||||
@@ -16,6 +14,7 @@ class BookCaseTable extends DataTableComponent
|
||||
use Actions;
|
||||
|
||||
public string $country;
|
||||
|
||||
public string $tableName = 'bookcases';
|
||||
|
||||
public function configure(): void
|
||||
@@ -24,14 +23,13 @@ class BookCaseTable extends DataTableComponent
|
||||
->setAdditionalSelects(['id', 'homepage'])
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
@@ -39,7 +37,6 @@ class BookCaseTable extends DataTableComponent
|
||||
->setPerPage(10);
|
||||
}
|
||||
|
||||
|
||||
public function filters(): array
|
||||
{
|
||||
return [
|
||||
@@ -54,27 +51,27 @@ class BookCaseTable extends DataTableComponent
|
||||
public function columns(): array
|
||||
{
|
||||
return [
|
||||
Column::make("Name", "title")
|
||||
Column::make('Name', 'title')
|
||||
->sortable()
|
||||
->searchable(
|
||||
function (Builder $query, $searchTerm) {
|
||||
$query->where('title', 'ilike', '%'.$searchTerm.'%');
|
||||
}
|
||||
),
|
||||
Column::make("Adresse", "address")
|
||||
Column::make('Adresse', 'address')
|
||||
->sortable()
|
||||
->searchable(),
|
||||
Column::make("Bitcoin-Bücher")
|
||||
Column::make('Bitcoin-Bücher')
|
||||
->label(
|
||||
fn(
|
||||
fn (
|
||||
$row,
|
||||
Column $column
|
||||
) => $row->orangePills->sum('amount')
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make("Letzter Input")
|
||||
Column::make('Letzter Input')
|
||||
->label(
|
||||
fn(
|
||||
fn (
|
||||
$row,
|
||||
Column $column
|
||||
) => $row->orangePills()
|
||||
@@ -82,9 +79,9 @@ class BookCaseTable extends DataTableComponent
|
||||
->first()?->date->asDate()
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make("Link")
|
||||
Column::make('Link')
|
||||
->label(
|
||||
fn(
|
||||
fn (
|
||||
$row,
|
||||
Column $column
|
||||
) => $row->homepage ? '<a target="_blank" class="underline text-amber-500" href="'.$this->url_to_absolute($row->homepage).'">Link</a>' : null
|
||||
@@ -92,7 +89,7 @@ class BookCaseTable extends DataTableComponent
|
||||
->html()
|
||||
->collapseOnMobile(),
|
||||
Column::make('Orange-Pilled', 'orange_pilled')
|
||||
->label(fn($row, Column $column) => view('columns.book_cases.oranged-pilled')
|
||||
->label(fn ($row, Column $column) => view('columns.book_cases.oranged-pilled')
|
||||
->withRow($row)
|
||||
->withCountry($this->country))
|
||||
->collapseOnMobile(),
|
||||
@@ -104,7 +101,7 @@ class BookCaseTable extends DataTableComponent
|
||||
if (str($url)->contains('http')) {
|
||||
return $url;
|
||||
}
|
||||
if (!str($url)->contains('http')) {
|
||||
if (! str($url)->contains('http')) {
|
||||
return str($url)->prepend('https://');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ class CityTable extends DataTableComponent
|
||||
use Actions;
|
||||
|
||||
public string $country;
|
||||
|
||||
public string $type;
|
||||
|
||||
public string $tableName = 'cities';
|
||||
@@ -24,44 +25,44 @@ class CityTable extends DataTableComponent
|
||||
->setAdditionalSelects(['id'])
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setColumnSelectStatus(false)
|
||||
->setPerPage(10)
|
||||
->setConfigurableAreas([
|
||||
'toolbar-left-end' => [
|
||||
'columns.cities.areas.toolbar-left-end', [
|
||||
'country' => $this->country,
|
||||
],
|
||||
],
|
||||
]);
|
||||
'toolbar-left-end' => [
|
||||
'columns.cities.areas.toolbar-left-end', [
|
||||
'country' => $this->country,
|
||||
],
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
public function columns(): array
|
||||
{
|
||||
$columns = collect([
|
||||
Column::make("Stadt Name", "name")
|
||||
Column::make('Stadt Name', 'name')
|
||||
->sortable()
|
||||
->searchable(fn($builder, $term) => $builder->where('cities.name', 'ilike', '%'.$term.'%')),
|
||||
->searchable(fn ($builder, $term) => $builder->where('cities.name', 'ilike', '%'.$term.'%')),
|
||||
]);
|
||||
if ($this->type === 'school') {
|
||||
$columns = $columns->merge([
|
||||
Column::make('Veranstaltungs-Orte')
|
||||
->label(
|
||||
fn($row, Column $column) => $row->venues_count
|
||||
fn ($row, Column $column) => $row->venues_count
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make('Termine')
|
||||
->label(
|
||||
fn($row, Column $column) => $row->course_events_count
|
||||
fn ($row, Column $column) => $row->course_events_count
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
]);
|
||||
@@ -70,7 +71,7 @@ class CityTable extends DataTableComponent
|
||||
return $columns->merge([
|
||||
Column::make('')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.cities.action')
|
||||
fn ($row, Column $column) => view('columns.cities.action')
|
||||
->withRow($row)
|
||||
->withType($this->type)
|
||||
),
|
||||
@@ -85,7 +86,7 @@ class CityTable extends DataTableComponent
|
||||
'venues',
|
||||
'courseEvents',
|
||||
])
|
||||
->whereHas('country', fn($query) => $query->where('code', $this->country))
|
||||
->whereHas('country', fn ($query) => $query->where('code', $this->country))
|
||||
->orderByDesc('course_events_count')
|
||||
->orderBy('cities.id');
|
||||
}
|
||||
@@ -96,16 +97,17 @@ class CityTable extends DataTableComponent
|
||||
->find($id);
|
||||
$query = City::radius($city->latitude, $city->longitude, 100)
|
||||
->where('id', '!=', $id);
|
||||
|
||||
return to_route('school.table.event', [
|
||||
'#table',
|
||||
'country' => $this->country,
|
||||
'course_events' => [
|
||||
'course_events' => [
|
||||
'filters' => [
|
||||
'stadt' => $query->pluck('name')
|
||||
->push($city->name)
|
||||
->implode(',')
|
||||
->implode(','),
|
||||
],
|
||||
]
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -118,17 +120,18 @@ class CityTable extends DataTableComponent
|
||||
if ($ids->isEmpty()) {
|
||||
$this->notification()
|
||||
->error(__('No bookcases found in the radius of 5km'));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return to_route('bookCases.table.bookcases', [
|
||||
'#table',
|
||||
'country' => $this->country,
|
||||
'bookcases' => [
|
||||
'bookcases' => [
|
||||
'filters' => [
|
||||
'byids' => $ids->implode(',')
|
||||
'byids' => $ids->implode(','),
|
||||
],
|
||||
]
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ use Rappasoft\LaravelLivewireTables\Views\Filters\MultiSelectFilter;
|
||||
class CourseTable extends DataTableComponent
|
||||
{
|
||||
public string $country;
|
||||
|
||||
public string $tableName = 'courses';
|
||||
|
||||
public function configure(): void
|
||||
@@ -20,13 +21,13 @@ class CourseTable extends DataTableComponent
|
||||
->setAdditionalSelects(['id'])
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
@@ -42,7 +43,7 @@ class CourseTable extends DataTableComponent
|
||||
Tag::query()
|
||||
->withType('course')
|
||||
->get()
|
||||
->mapWithKeys(fn($item, $key) => [$item->name => $item->name])
|
||||
->mapWithKeys(fn ($item, $key) => [$item->name => $item->name])
|
||||
->toArray()
|
||||
)
|
||||
->filter(function (Builder $builder, array $values) {
|
||||
@@ -54,33 +55,33 @@ class CourseTable extends DataTableComponent
|
||||
public function columns(): array
|
||||
{
|
||||
return [
|
||||
Column::make('Dozent', "lecturer.name")
|
||||
Column::make('Dozent', 'lecturer.name')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.courses.lecturer')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.courses.lecturer')->withRow($row)
|
||||
)
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make("Name", "name")
|
||||
->searchable(fn(Builder $query, string $term) => $query->where('name', 'ilike', '%'.$term.'%'))
|
||||
Column::make('Name', 'name')
|
||||
->searchable(fn (Builder $query, string $term) => $query->where('name', 'ilike', '%'.$term.'%'))
|
||||
->sortable(),
|
||||
Column::make("Tags")
|
||||
Column::make('Tags')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.courses.tags')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.courses.tags')->withRow($row)
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make("Termine")
|
||||
Column::make('Termine')
|
||||
->label(
|
||||
fn($row, Column $column) => '<strong>'.$row->course_events_count.'</strong>'
|
||||
fn ($row, Column $column) => '<strong>'.$row->course_events_count.'</strong>'
|
||||
)
|
||||
->html()
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make("Erstellt am", "created_at")
|
||||
Column::make('Erstellt am', 'created_at')
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make('')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.courses.action')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.courses.action')->withRow($row)
|
||||
),
|
||||
];
|
||||
}
|
||||
@@ -96,7 +97,7 @@ class CourseTable extends DataTableComponent
|
||||
'courseEvents',
|
||||
])
|
||||
->whereHas('courseEvents.venue.city.country',
|
||||
fn($query) => $query->where('countries.code', $this->country))
|
||||
fn ($query) => $query->where('countries.code', $this->country))
|
||||
->orderByDesc('course_events_count')
|
||||
->orderBy('courses.id');
|
||||
}
|
||||
@@ -105,12 +106,12 @@ class CourseTable extends DataTableComponent
|
||||
{
|
||||
return to_route('school.table.event', [
|
||||
'#table',
|
||||
'country' => $this->country,
|
||||
'country' => $this->country,
|
||||
'course_events' => [
|
||||
'filters' => [
|
||||
'course_id' => $id,
|
||||
],
|
||||
]
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,11 @@ use Rappasoft\LaravelLivewireTables\Views\Filters\TextFilter;
|
||||
class EventTable extends DataTableComponent
|
||||
{
|
||||
public string $country;
|
||||
|
||||
public bool $viewingModal = false;
|
||||
|
||||
public $currentModal;
|
||||
|
||||
public string $tableName = 'course_events';
|
||||
|
||||
public function configure(): void
|
||||
@@ -31,13 +34,13 @@ class EventTable extends DataTableComponent
|
||||
])
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
@@ -66,7 +69,7 @@ class EventTable extends DataTableComponent
|
||||
});
|
||||
} else {
|
||||
$builder->whereHas('venue.city',
|
||||
fn($query) => $query->where('cities.name', 'ilike', "%$value%"));
|
||||
fn ($query) => $query->where('cities.name', 'ilike', "%$value%"));
|
||||
}
|
||||
}),
|
||||
TextFilter::make(__('Venue'), 'venue')
|
||||
@@ -75,7 +78,7 @@ class EventTable extends DataTableComponent
|
||||
])
|
||||
->filter(function (Builder $builder, string $value) {
|
||||
$builder->whereHas('venue',
|
||||
fn($query) => $query->where('venues.name', 'ilike', "%$value%"));
|
||||
fn ($query) => $query->where('venues.name', 'ilike', "%$value%"));
|
||||
}),
|
||||
TextFilter::make(__('Course'))
|
||||
->config([
|
||||
@@ -83,13 +86,13 @@ class EventTable extends DataTableComponent
|
||||
])
|
||||
->filter(function (Builder $builder, string $value) {
|
||||
$builder->whereHas('course',
|
||||
fn($query) => $query->where('courses.name', 'ilike', "%$value%"));
|
||||
fn ($query) => $query->where('courses.name', 'ilike', "%$value%"));
|
||||
}),
|
||||
TextFilter::make('Course by ID', 'course_id')
|
||||
->hiddenFromMenus()
|
||||
->filter(function (Builder $builder, string $value) {
|
||||
$builder->whereHas('course',
|
||||
fn($query) => $query->where('courses.id', '=', $value));
|
||||
fn ($query) => $query->where('courses.id', '=', $value));
|
||||
}),
|
||||
MultiSelectFilter::make(__('Type'))
|
||||
->options(
|
||||
@@ -99,7 +102,7 @@ class EventTable extends DataTableComponent
|
||||
)
|
||||
->filter(function (Builder $builder, array $values) {
|
||||
$builder->whereHas('course.categories',
|
||||
fn($query) => $query->whereIn('categories.id', $values));
|
||||
fn ($query) => $query->whereIn('categories.id', $values));
|
||||
}),
|
||||
SelectFilter::make(__('Lecturer'))
|
||||
->options(
|
||||
@@ -109,7 +112,7 @@ class EventTable extends DataTableComponent
|
||||
)
|
||||
->filter(function (Builder $builder, string $value) {
|
||||
$builder->whereHas('course.lecturer',
|
||||
fn($query) => $query->where('lecturers.id', $value));
|
||||
fn ($query) => $query->where('lecturers.id', $value));
|
||||
}),
|
||||
];
|
||||
}
|
||||
@@ -117,33 +120,33 @@ class EventTable extends DataTableComponent
|
||||
public function columns(): array
|
||||
{
|
||||
return [
|
||||
Column::make(_('City'), "venue.city.name")
|
||||
Column::make(_('City'), 'venue.city.name')
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Venue'), "venue.name")
|
||||
Column::make(__('Venue'), 'venue.name')
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Lecturer'), "course.lecturer.name")
|
||||
Column::make(__('Lecturer'), 'course.lecturer.name')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.events.lecturer')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.events.lecturer')->withRow($row)
|
||||
)
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Course'), "course.name")
|
||||
Column::make(__('Course'), 'course.name')
|
||||
->sortable(),
|
||||
Column::make(__('Type'))
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.events.categories')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.events.categories')->withRow($row)
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('From'), "from")
|
||||
Column::make(__('From'), 'from')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => $value->asDateTime()
|
||||
fn ($value, $row, Column $column) => $value->asDateTime()
|
||||
)
|
||||
->sortable(),
|
||||
Column::make(__('To'), "to")
|
||||
Column::make(__('To'), 'to')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => $value->asDateTime()
|
||||
fn ($value, $row, Column $column) => $value->asDateTime()
|
||||
)
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
@@ -155,7 +158,7 @@ class EventTable extends DataTableComponent
|
||||
->sortable(),*/
|
||||
Column::make(__('Actions'))
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.events.action')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.events.action')->withRow($row)
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
];
|
||||
@@ -170,7 +173,7 @@ class EventTable extends DataTableComponent
|
||||
])
|
||||
->where('from', '>=', now())
|
||||
->whereHas('venue.city.country',
|
||||
fn($query) => $query->where('countries.code', $this->country));
|
||||
fn ($query) => $query->where('countries.code', $this->country));
|
||||
}
|
||||
|
||||
public function viewHistoryModal($modelId): void
|
||||
|
||||
@@ -12,6 +12,7 @@ use Rappasoft\LaravelLivewireTables\Views\Columns\ImageColumn;
|
||||
class LecturerTable extends DataTableComponent
|
||||
{
|
||||
public string $country;
|
||||
|
||||
public string $tableName = 'lecturers';
|
||||
|
||||
public function configure(): void
|
||||
@@ -20,13 +21,13 @@ class LecturerTable extends DataTableComponent
|
||||
->setAdditionalSelects(['id'])
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
@@ -39,32 +40,32 @@ class LecturerTable extends DataTableComponent
|
||||
return [
|
||||
ImageColumn::make('Bild')
|
||||
->location(
|
||||
fn($row) => $row->getFirstMediaUrl('avatar', 'thumb')
|
||||
fn ($row) => $row->getFirstMediaUrl('avatar', 'thumb')
|
||||
)
|
||||
->attributes(fn($row) => [
|
||||
->attributes(fn ($row) => [
|
||||
'class' => 'rounded h-16 w-16',
|
||||
'alt' => $row->name.' Avatar',
|
||||
'alt' => $row->name.' Avatar',
|
||||
])
|
||||
->collapseOnMobile(),
|
||||
Column::make("Name", "name")
|
||||
->searchable(fn($query, $term) => $query->where('name', 'ilike', '%'.$term.'%'))
|
||||
Column::make('Name', 'name')
|
||||
->searchable(fn ($query, $term) => $query->where('name', 'ilike', '%'.$term.'%'))
|
||||
->sortable(),
|
||||
BooleanColumn::make("Aktiv", 'active')
|
||||
BooleanColumn::make('Aktiv', 'active')
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make('Kurse')
|
||||
->label(
|
||||
fn($row, Column $column) => $row->courses_count
|
||||
fn ($row, Column $column) => $row->courses_count
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make('Inhalte')
|
||||
->label(
|
||||
fn($row, Column $column) => $row->library_items_count
|
||||
fn ($row, Column $column) => $row->library_items_count
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make('')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.lectures.action')
|
||||
fn ($row, Column $column) => view('columns.lectures.action')
|
||||
->withRow($row)
|
||||
->withCountry($this->country)
|
||||
),
|
||||
@@ -89,22 +90,22 @@ class LecturerTable extends DataTableComponent
|
||||
if ($event) {
|
||||
return to_route('school.table.event', [
|
||||
'#table',
|
||||
'country' => $this->country,
|
||||
'country' => $this->country,
|
||||
'course_events' => [
|
||||
'filters' => [
|
||||
'dozent' => $lecturer->id,
|
||||
],
|
||||
]
|
||||
],
|
||||
]);
|
||||
} else {
|
||||
return to_route('library.table.libraryItems', [
|
||||
'#table',
|
||||
'country' => $this->country,
|
||||
'country' => $this->country,
|
||||
'library_items' => [
|
||||
'filters' => [
|
||||
'lecturer_id' => $lecturer->id,
|
||||
],
|
||||
]
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ use Spatie\LaravelOptions\Options;
|
||||
class LibraryItemTable extends DataTableComponent
|
||||
{
|
||||
public string $currentTab;
|
||||
|
||||
public string $tableName = 'library_items';
|
||||
|
||||
public function configure(): void
|
||||
@@ -27,13 +28,13 @@ class LibraryItemTable extends DataTableComponent
|
||||
->setDefaultSort('order_column', 'asc')
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
@@ -88,7 +89,7 @@ class LibraryItemTable extends DataTableComponent
|
||||
});
|
||||
} else {
|
||||
$builder->whereHas('libraries',
|
||||
fn($query) => $query->where('libraries.name', 'ilike', "%$value%"));
|
||||
fn ($query) => $query->where('libraries.name', 'ilike', "%$value%"));
|
||||
}
|
||||
}),
|
||||
SelectFilter::make('Art')
|
||||
@@ -97,7 +98,7 @@ class LibraryItemTable extends DataTableComponent
|
||||
Options::forEnum(LibraryItemType::class)
|
||||
->toArray()
|
||||
)
|
||||
->mapWithKeys(fn($value, $key) => [$value['value'] => $value['label']])
|
||||
->mapWithKeys(fn ($value, $key) => [$value['value'] => $value['label']])
|
||||
->prepend('*', '')
|
||||
->toArray()
|
||||
)
|
||||
@@ -115,18 +116,18 @@ class LibraryItemTable extends DataTableComponent
|
||||
return [
|
||||
Column::make(__('Image'))
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.library_items.image')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.library_items.image')->withRow($row)
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Creator'), "lecturer.name")
|
||||
Column::make(__('Creator'), 'lecturer.name')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.courses.lecturer')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.courses.lecturer')->withRow($row)
|
||||
)
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make("Name", "name")
|
||||
Column::make('Name', 'name')
|
||||
->sortable(),
|
||||
Column::make("Art", "type")
|
||||
Column::make('Art', 'type')
|
||||
->format(
|
||||
function ($value, $row, Column $column) {
|
||||
return '<span class="whitespace-nowrap inline-flex items-center rounded-full bg-amber-400 px-2.5 py-0.5 text-base font-medium text-gray-900"><i class="mr-2 fa fa-thin fa-'
|
||||
@@ -138,14 +139,14 @@ class LibraryItemTable extends DataTableComponent
|
||||
->html()
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make("Tags")
|
||||
Column::make('Tags')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.library_items.tags')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.library_items.tags')->withRow($row)
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make('')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.library_items.action')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.library_items.action')->withRow($row)
|
||||
),
|
||||
];
|
||||
}
|
||||
@@ -167,14 +168,14 @@ class LibraryItemTable extends DataTableComponent
|
||||
'lecturer',
|
||||
'tags',
|
||||
])
|
||||
->whereHas('libraries', fn($query) => $query->where('libraries.is_public', $shouldBePublic))
|
||||
->when($this->currentTab !== '*', fn($query) => $query
|
||||
->whereHas('libraries', fn ($query) => $query->where('libraries.is_public', $shouldBePublic))
|
||||
->when($this->currentTab !== '*', fn ($query) => $query
|
||||
->whereHas('libraries',
|
||||
fn($query) => $query
|
||||
fn ($query) => $query
|
||||
->where('libraries.name', $this->currentTab)
|
||||
)
|
||||
->orWhereHas('libraries',
|
||||
fn($query) => $query
|
||||
fn ($query) => $query
|
||||
->where('libraries.parent_id', $parentLibrary->id)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -21,13 +21,13 @@ class MeetupEventTable extends DataTableComponent
|
||||
->setDefaultSort('start', 'asc')
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
@@ -63,31 +63,31 @@ class MeetupEventTable extends DataTableComponent
|
||||
$columns = [
|
||||
Column::make(__('Meetup'), 'meetup.name')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => view('columns.meetup_events.name')
|
||||
fn ($value, $row, Column $column) => view('columns.meetup_events.name')
|
||||
->withRow($row)
|
||||
->withCountry($this->country)
|
||||
)
|
||||
->searchable(fn($builder, $term) => $builder->where('meetups.name', 'ilike', '%'.$term.'%'))
|
||||
->searchable(fn ($builder, $term) => $builder->where('meetups.name', 'ilike', '%'.$term.'%'))
|
||||
->sortable(),
|
||||
Column::make(__('Location'), 'location')
|
||||
->searchable(fn($builder, $term) => $builder->where('location', 'ilike', '%'.$term.'%'))
|
||||
->searchable(fn ($builder, $term) => $builder->where('location', 'ilike', '%'.$term.'%'))
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Start'), 'start')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => $value->asDateTime()
|
||||
fn ($value, $row, Column $column) => $value->asDateTime()
|
||||
)
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Confirmations'))
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.meetup_events.confirmations')
|
||||
fn ($row, Column $column) => view('columns.meetup_events.confirmations')
|
||||
->withRow($row)
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Link'))
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.meetup_events.link')
|
||||
fn ($row, Column $column) => view('columns.meetup_events.link')
|
||||
->withRow($row)
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
@@ -96,7 +96,7 @@ class MeetupEventTable extends DataTableComponent
|
||||
$adminColumns = auth()->check() ? [
|
||||
Column::make(__('Actions'))
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.meetup_events.manage')
|
||||
fn ($row, Column $column) => view('columns.meetup_events.manage')
|
||||
->withRow($row)
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
@@ -109,7 +109,7 @@ class MeetupEventTable extends DataTableComponent
|
||||
{
|
||||
return MeetupEvent::query()
|
||||
->where('meetup_events.start', '>=', now())
|
||||
->whereHas('meetup.city.country', fn($query) => $query->where('code', $this->country))
|
||||
->whereHas('meetup.city.country', fn ($query) => $query->where('code', $this->country))
|
||||
->with([
|
||||
'meetup.city.country',
|
||||
]);
|
||||
|
||||
@@ -29,16 +29,16 @@ class MeetupForBtcMapTable extends DataTableComponent
|
||||
public function columns(): array
|
||||
{
|
||||
return [
|
||||
Column::make("Id", "id")
|
||||
Column::make('Id', 'id')
|
||||
->sortable(),
|
||||
Column::make("Name", "name")
|
||||
Column::make('Name', 'name')
|
||||
->sortable(),
|
||||
Column::make("City", "city.name")
|
||||
Column::make('City', 'city.name')
|
||||
->sortable(),
|
||||
Column::make("Country", "city.country.name")
|
||||
Column::make('Country', 'city.country.name')
|
||||
->sortable(),
|
||||
Column::make("Actions")
|
||||
->label(fn($row, Column $column) => view('columns.meetups.osm-actions', ['row' => $row])),
|
||||
Column::make('Actions')
|
||||
->label(fn ($row, Column $column) => view('columns.meetups.osm-actions', ['row' => $row])),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ use Rappasoft\LaravelLivewireTables\Views\Filters\TextFilter;
|
||||
class MeetupTable extends DataTableComponent
|
||||
{
|
||||
public ?string $country = null;
|
||||
|
||||
public string $tableName = 'meetups';
|
||||
|
||||
public function configure(): void
|
||||
@@ -19,13 +20,13 @@ class MeetupTable extends DataTableComponent
|
||||
->setAdditionalSelects(['id', 'slug'])
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
@@ -49,16 +50,16 @@ class MeetupTable extends DataTableComponent
|
||||
return [
|
||||
Column::make(__('Name'), 'name')
|
||||
->format(
|
||||
fn($value, $row, Column $column) => view('columns.meetups.name')
|
||||
fn ($value, $row, Column $column) => view('columns.meetups.name')
|
||||
->withRow($row)
|
||||
)
|
||||
->searchable(fn($builder, $term) => $builder->where('meetups.name', 'ilike', '%'.$term.'%')),
|
||||
->searchable(fn ($builder, $term) => $builder->where('meetups.name', 'ilike', '%'.$term.'%')),
|
||||
Column::make(__('Plebs'))
|
||||
->label(fn($row, Column $column) => $row->users_count)
|
||||
->label(fn ($row, Column $column) => $row->users_count)
|
||||
->collapseOnMobile(),
|
||||
Column::make(__('Links'))
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.meetups.action')
|
||||
fn ($row, Column $column) => view('columns.meetups.action')
|
||||
->withRow($row)
|
||||
->withIcs(route('meetup.ics',
|
||||
['country' => $this->country ?? $row->city->country->code, 'meetup' => $row->id]))
|
||||
@@ -77,15 +78,15 @@ class MeetupTable extends DataTableComponent
|
||||
'meetupEvents',
|
||||
])
|
||||
->when($this->country,
|
||||
fn($query, $country) => $query->whereRelation('city.country', 'code', $this->country))
|
||||
fn ($query, $country) => $query->whereRelation('city.country', 'code', $this->country))
|
||||
->withCount([
|
||||
'users',
|
||||
'meetupEvents' => fn($query) => $query->where('start', '>=',
|
||||
'meetupEvents' => fn ($query) => $query->where('start', '>=',
|
||||
now()),
|
||||
])
|
||||
->when(!$this->country, fn($query) => $query->orderByDesc('users_count')
|
||||
->when(! $this->country, fn ($query) => $query->orderByDesc('users_count')
|
||||
->orderBy('meetups.id'))
|
||||
->when($this->country, fn($query) => $query->orderByDesc('meetup_events_count')
|
||||
->when($this->country, fn ($query) => $query->orderByDesc('meetup_events_count')
|
||||
->orderBy('meetups.id'));
|
||||
}
|
||||
|
||||
@@ -95,10 +96,10 @@ class MeetupTable extends DataTableComponent
|
||||
->find($id);
|
||||
|
||||
return to_route('meetup.table.meetupEvent', [
|
||||
'country' => $this->country ?? $meetup->city->country->code,
|
||||
'country' => $this->country ?? $meetup->city->country->code,
|
||||
'meetup_events' => [
|
||||
'filters' => ['bymeetupid' => $id],
|
||||
]
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ class VenueTable extends DataTableComponent
|
||||
->setAdditionalSelects(['id'])
|
||||
->setThAttributes(function (Column $column) {
|
||||
return [
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
->setTdAttributes(function (Column $column, $row, $columnIndex, $rowIndex) {
|
||||
return [
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'class' => 'px-6 py-4 text-sm font-medium dark:text-white',
|
||||
'default' => false,
|
||||
];
|
||||
})
|
||||
@@ -39,27 +39,27 @@ class VenueTable extends DataTableComponent
|
||||
return [
|
||||
ImageColumn::make('Bild')
|
||||
->location(
|
||||
fn($row) => $row->getFirstMediaUrl('images', 'thumb')
|
||||
fn ($row) => $row->getFirstMediaUrl('images', 'thumb')
|
||||
)
|
||||
->attributes(fn($row) => [
|
||||
->attributes(fn ($row) => [
|
||||
'class' => 'rounded h-16 w-16',
|
||||
'alt' => $row->name.' Avatar',
|
||||
'alt' => $row->name.' Avatar',
|
||||
])
|
||||
->collapseOnMobile(),
|
||||
Column::make("Name", "name")
|
||||
->searchable(fn($query, $term) => $query->where('name', 'ilike', '%'.$term.'%'))
|
||||
Column::make('Name', 'name')
|
||||
->searchable(fn ($query, $term) => $query->where('name', 'ilike', '%'.$term.'%'))
|
||||
->sortable(),
|
||||
Column::make("Street", "street")
|
||||
Column::make('Street', 'street')
|
||||
->sortable()
|
||||
->collapseOnMobile(),
|
||||
Column::make('Termine')
|
||||
->label(
|
||||
fn($row, Column $column) => $row->course_events_count
|
||||
fn ($row, Column $column) => $row->course_events_count
|
||||
)
|
||||
->collapseOnMobile(),
|
||||
Column::make('')
|
||||
->label(
|
||||
fn($row, Column $column) => view('columns.venues.action')->withRow($row)
|
||||
fn ($row, Column $column) => view('columns.venues.action')->withRow($row)
|
||||
),
|
||||
];
|
||||
}
|
||||
@@ -70,7 +70,7 @@ class VenueTable extends DataTableComponent
|
||||
->withCount([
|
||||
'courseEvents',
|
||||
])
|
||||
->whereHas('city.country', fn($query) => $query->where('code', $this->country))
|
||||
->whereHas('city.country', fn ($query) => $query->where('code', $this->country))
|
||||
->orderByDesc('course_events_count')
|
||||
->orderBy('venues.id');
|
||||
}
|
||||
@@ -82,12 +82,12 @@ class VenueTable extends DataTableComponent
|
||||
|
||||
return to_route('school.table.event', [
|
||||
'#table',
|
||||
'country' => $this->country,
|
||||
'country' => $this->country,
|
||||
'course_events' => [
|
||||
'filters' => [
|
||||
'venue' => $venue->name,
|
||||
],
|
||||
]
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user