Compare commits

..

No commits in common. "0e57494e0b889d8ee95408bb469bd9a22511b423" and "8f3986c8c2b6192fde3dff514b7638cc09a86ba6" have entirely different histories.

19 changed files with 34 additions and 132 deletions

View file

@ -51,17 +51,14 @@ class Reserve extends BasePage implements HasTable
protected string $view = 'filament.pages.reserve';
public function getTitle(): string
{
return __('Reserve games');
}
protected static ?string $title = 'Reservera spel';
public static function table(Table $table): Table
{
return $table
->query( Item::where('can_be_loaned', true)->whereIn('type', ["game", "literature"]))
->emptyStateHeading(__('No results'))
->emptyStateHeading('Inga resultat')
->searchable(true)
->columns([
Grid::make()
@ -70,11 +67,11 @@ class Reserve extends BasePage implements HasTable
Stack::make([
TextColumn::make('reserved')
->weight(FontWeight::Bold)
->formatStateUsing(fn (string $state): string => $state ? __('On loan') : __('Available'))
->formatStateUsing(fn (string $state): string => $state ? 'Utlånad' : 'Tillgänglig')
->color(fn($record) => $record->reserved ? 'danger' : 'success' )
->badge(),
ImageColumn::make('image')
->label(__('Image'))
->label('Bild')
->disk('public')
->size('100%')
->extraImgAttributes([
@ -83,29 +80,29 @@ class Reserve extends BasePage implements HasTable
]),
//->visibility('private'),
TextColumn::make('desc')
->label(__('Description'))
->label('Beskrivning')
->sortable()
->searchable()
->weight(FontWeight::Bold)
->size(TextSize::Large),
Stack::make([
TextColumn::make('players')
->label(__('Players'))
->default(__('No information'))
->label('Antal spelare')
->default('Ingen uppgift')
->sortable()
->prefix(__('Players') . ': '),
->prefix('Spelare: '),
//->suffix(' st'),
TextColumn::make('play_time')
->label(__('Play time'))
->label('Speltid')
->sortable()
->default(__('No information'))
->prefix(__('Play time (min)') . ': '),
->default('Ingen uppgift')
->prefix('Speltid (min): '),
//->suffix(' min'),
TextColumn::make('age')
->label(__('Age'))
->label('Ålder')
->sortable()
->default(__('No information'))
->prefix(__('Age') . ': ')
->default('Ingen uppgift')
->prefix('Ålder: ')
//->suffix(' år'),
])
->extraAttributes(['class' => 'reserve-card-meta'])
@ -132,7 +129,7 @@ class Reserve extends BasePage implements HasTable
Filter::make('filters')
->form([
Select::make('type')
->label(__('Type'))
->label('Typ')
->live()
->options([
'game' => __('Game'),
@ -140,13 +137,13 @@ class Reserve extends BasePage implements HasTable
]),
Select::make('category_id')
->multiple()
->label(__('Category literature'))
->label('Kategorier Litteratur')
->options(Category::all()->whereIn('type', 'literature')->pluck('name', 'id'))
->hidden(fn ($get): string => $get('type') == 'game' || $get('type') == ''),
Select::make('category_id')
->multiple()
->label(__('Category games'))
->label('Kategorier Spel')
->options(Category::all()->whereIn('type', 'game')->pluck('name', 'id'))
->hidden(fn ($get): string => $get('type') == 'literature' || $get('type') == ''),
])
@ -167,30 +164,30 @@ class Reserve extends BasePage implements HasTable
])
->columnSpan(2),
Filter::make('reserved')
->label(__('Available'))
->label('Tillgänglig')
->query(fn (Builder $query): Builder => $query->where('reserved', false))
->columnSpanFull()
->toggle()
],layout: FiltersLayout::AboveContent)
->actions([
Action::make('reserve')
->label(__('Reserve'))
->label('Reservera')
->button()
->color('primary')
->form([
TextInput::make('username')
->label(__('Name'))
->label('Namn')
->required(),
TextInput::make('email')
->label(__('Email'))
->label('Email')
->email()
->required(),
TextInput::make('phone')
->label(__('Phone'))
->label('Telefonnummer')
->tel()
->required(),
Checkbox::make('gdpr')
->label(__('By checking this box you agree that we store your email address and phone number.'))
->label('Genom att checka i denna rutan godkänner du att vi lagrar din mailadress och telefonnummer.')
->accepted(),
])
->action(function (array $data, Item $record): void {
@ -207,8 +204,8 @@ class Reserve extends BasePage implements HasTable
Mail::to(env('MAIL_TO_ADDRESS'))
->send(new ReservationCreated($reservation));
Notification::make()
->title(__('The game is reserved!'))
->body(__('A confirmation email has been sent to the address you provided. Read it for more information about collecting the game.'))
->title('Spelet är reserverat!')
->body('Ett bekräftelsemail har skickats till emailadressen du uppgav. Läs det för mer info om utlämning av spelet.')
->success()
->seconds(10)
->send();

View file

@ -341,7 +341,7 @@ class ItemResource extends Resource
->tel()
->required(),
Checkbox::make('gdpr')
->label(__('By checking this box you agree that we store your email address and phone number.'))
->label('Genom att checka i denna rutan godkänner du att vi lagrar din mailadress och telefonnummer.')
->accepted(),
])
->action(function (array $data, Item $record): void {

View file

@ -9,11 +9,12 @@ use App\Models\Item;
use Filament\Forms;
use Filament\Schemas\Schema;
use Filament\Resources\Resource;
use Filament\Resources\Get;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Schemas\Components\Section;
use Filament\Forms\Components\Section;
use Filament\Forms\Components\Radio;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
@ -65,13 +66,11 @@ class ReserveditemResource extends Resource
->required(),
TextInput::make('email')
->label('Email')
->translateLabel()
->default(null)
->email()
->required(),
TextInput::make('phone')
->label('Phone')
->translateLabel()
->default(null)
->tel()
->required(),
@ -105,12 +104,10 @@ class ReserveditemResource extends Resource
->icon('heroicon-m-user'),
TextColumn::make('email')
->label('Email')
->translateLabel()
->sortable()
->icon('heroicon-m-envelope'),
TextColumn::make('phone')
->label('Phone')
->translateLabel()
->sortable()
->icon('heroicon-m-phone'),
TextColumn::make('reserved_date')

View file

@ -13,9 +13,8 @@ use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Schemas\Components\Section;
use Filament\Forms\Components\Section;
use Filament\Forms\Components\Radio;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Filament\Support\Enums\IconPosition;
@ -42,7 +41,6 @@ class ReserveditemResourceUser extends Resource
->schema([
Select::make('item_id')
->label('Choose an item to reserve')
->translateLabel()
->relationship(
name: 'item',
titleAttribute: 'desc',
@ -64,27 +62,21 @@ class ReserveditemResourceUser extends Resource
->columns([
TextColumn::make('items.desc')
->label('Name')
->translateLabel()
->sortable(),
TextColumn::make('username')
->label('User')
->translateLabel()
->sortable(),
TextColumn::make('reserved_date')
->label('Reserved date')
->translateLabel()
->sortable(),
TextColumn::make('delivered_date')
->label('Delivery date')
->translateLabel()
->sortable(),
TextColumn::make('return_date')
->label('Return date')
->translateLabel()
->sortable(),
TextColumn::make('returned_date')
->label('Returned')
->translateLabel()
->sortable(),
])
->filters([

View file

@ -12,7 +12,7 @@ use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Schemas\Components\Section;
use Filament\Forms\Components\Section;
use Filament\Forms\Components\Radio;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;

View file

@ -4,6 +4,7 @@ namespace App\Filament\Widgets;
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
use Filament\Widgets\StatsOverviewWidget\Card;
use App\Models\User;
use App\Models\Item;
use App\Models\Reserveditem;
@ -31,7 +32,7 @@ class AdminWidget extends BaseWidget
}
return [
//Stat::make(__('Total number of users'), User::count() ),
//Card::make(__('Total number of users'), User::count() ),
Stat::make(__('Total amount of games'), Item::where('type', 'game')->count() ),
Stat::make(__('Total amount of items'), Item::where('type', 'item')->count() ),
Stat::make(__('Total amount of literature'), Item::where('type', 'literature')->count() ),

View file

@ -27,7 +27,6 @@ class AdminPanelProvider extends PanelProvider
->id('admin')
->path('/')
->login()
->favicon(asset('img/favicon-32.png') . '?v=2')
->colors([
'primary' => Color::hex('#0080bb'),
])

View file

@ -29,10 +29,7 @@ class PublicPanelProvider extends PanelProvider
->brandName('vBytes')
->brandLogo(asset('img/logo.png'))
->brandLogoHeight('2rem')
// ?v= tvingar webbläsare att hämta om ikonen; höj siffran vid byte
->favicon(asset('img/favicon-32.png') . '?v=2')
->topNavigation()
->navigation(false)
->darkMode(true)
->renderHook(
PanelsRenderHook::TOPBAR_END,

View file

@ -1,66 +0,0 @@
{
"A confirmation email has been sent to the address you provided. Read it for more information about collecting the game.": "Ett bekräftelsemail har skickats till emailadressen du uppgav. Läs det för mer info om utlämning av spelet.",
"Acquisition date": "Inköpsdatum",
"Age": "Ålder",
"Available": "Tillgänglig",
"By checking this box you agree that we store your email address and phone number.": "Genom att checka i denna rutan godkänner du att vi lagrar din mailadress och telefonnummer.",
"Can be loaned": "Kan lånas",
"Categories": "Kategorier",
"Category": "Kategori",
"Category games": "Kategorier Spel",
"Category id": "Kategori",
"Category items": "Kategorier Prylar",
"Category literature": "Kategorier Litteratur",
"Choose an item to reserve": "Välj en post att reservera",
"Cost": "Pris",
"Create new": "Skapa ny",
"Delivered": "Utlämnad",
"Delivered date": "Utlämningsdatum",
"Delivery date": "Utlämningsdatum",
"Desc": "Beskrivning",
"Description": "Beskrivning",
"Email": "Email",
"Game": "Spel",
"Image": "Bild",
"Inventory": "Inventarie",
"Is admin": "Administratör",
"Item": "Pryl",
"Item id": "Post",
"Literature": "Litteratur",
"Loanable": "Kan lånas",
"More info": "Mer info",
"Most reserved game": "Mest reserverade spel",
"Name": "Namn",
"No information": "Ingen uppgift",
"No results": "Inga resultat",
"On loan": "Utlånad",
"Password": "Lösenord",
"Phone": "Telefonnummer",
"Play time": "Speltid",
"Play time (min)": "Speltid (min)",
"Players": "Spelare",
"Price": "Pris",
"Quantity": "Antal",
"Reservation": "Reservation",
"Reservation date": "Reservationsdatum",
"Reservations": "Reservationer",
"Reservations at the moment": "Aktuella reservationer",
"Reservations over time": "Reservationer över tid",
"Reserve": "Reservera",
"Reserve games": "Reservera spel",
"Reserved": "Reserverad",
"Reserved date": "Reservationsdatum",
"Return date": "Återlämningsdatum",
"Returned": "Återlämnad",
"Returned date": "Återlämnad datum",
"The game is reserved!": "Spelet är reserverat!",
"Total amount of games": "Antal spel",
"Total amount of items": "Antal prylar",
"Total amount of literature": "Antal litteratur",
"Total number of users": "Antal användare",
"Type": "Typ",
"User": "Användare",
"Username": "Namn",
"Users": "Användare",
"Welcome! Here you can reserve games that you would like to borrow.": "Välkommen! Här kan du reservera spel som du gärna vill låna."
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

View file

@ -6,11 +6,6 @@
<title inertia>{{ config('app.name', 'Laravel') }}</title>
<link rel="icon" href="{{ asset('favicon.ico') }}?v=2" sizes="any">
<link rel="icon" type="image/png" sizes="32x32" href="{{ asset('img/favicon-32.png') }}?v=2">
<link rel="icon" type="image/png" sizes="16x16" href="{{ asset('img/favicon-16.png') }}?v=2">
<link rel="apple-touch-icon" href="{{ asset('img/apple-touch-icon.png') }}?v=2">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />

View file

@ -23,20 +23,10 @@
.reserve-card-meta > * + * {
margin-top: 0 !important;
}
.fi-topbar-start {
display: flex;
}
@media (width < 64rem) {
.fi-topbar-start .fi-logo {
margin-inline-start: 0;
}
}
</style>
<p class="text-sm text-gray-500 dark:text-gray-400 -mt-4">
{{ __('Welcome! Here you can reserve games that you would like to borrow.') }}
Välkommen! Här kan du reservera spel som du gärna vill låna.
</p>
{{ $this->table }}