Compare commits

...

3 commits

Author SHA1 Message Date
Anna-Sara Sélea
8a9c2f1b0e Translations 2025-03-24 18:49:49 +01:00
Anna-Sara Sélea
dc0df6d653 Translations 2025-03-24 18:43:30 +01:00
Anna-Sara Sélea
314854297c Translation 2025-03-24 15:10:22 +01:00
62 changed files with 2027 additions and 650 deletions

View file

@ -35,6 +35,7 @@ use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\ImageColumn;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Actions\Action;
use Filament\Support\Colors\Color;
class Reserve extends BasePage implements HasTable
{
@ -51,22 +52,24 @@ class Reserve extends BasePage implements HasTable
->query( Item::where('can_be_loaned', true)->where('type', "game"))
->columns([
TextColumn::make('desc')
->label('Description')
->label('Beskrivning')
->sortable()
->searchable(),
ImageColumn::make('image')
->label('Image'),
->label('Bild')
->disk('local')
->visibility('private'),
TextColumn::make('players')
->label('Players')
->label('Antal spelare')
->sortable(),
TextColumn::make('play_time')
->label('Play Time')
->label('Speltid')
->sortable(),
TextColumn::make('age')
->label('Age')
->label('Ålder')
->sortable(),
IconColumn::make('reserved')
->label('Available')
->label('Tillgängligt')
->falseIcon('heroicon-o-check-badge')
->trueIcon('heroicon-o-x-mark')
->falseColor('success')
@ -76,40 +79,50 @@ class Reserve extends BasePage implements HasTable
])
->filters([
SelectFilter::make('category_id')
->label('Category')
->multiple()
->preload()
->label('Kategori')
->options(Category::all()->where('type', 'game')->pluck('name', 'id')),
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('More info')
Action::make('Mer info')
->modalSubmitAction(false)
->infolist([
Section::make('Game')
Section::make('Spel')
->schema([
ImageEntry::make('image')
->label('Bild')
->width(300)
->height('auto'),
TextEntry::make('desc'),
TextEntry::make('acquisition_date'),
TextEntry::make('category.name'),
TextEntry::make('players'),
TextEntry::make('play_time'),
TextEntry::make('age'),
->height('auto')
->disk('local')
->visibility('private'),
TextEntry::make('desc')
->label('Beskrivning'),
TextEntry::make('acquisition_date')
->label('Inköpsdatum'),
TextEntry::make('category.name')
->label('Kategori'),
TextEntry::make('players')
->label('Antal spelare'),
TextEntry::make('play_time')
->label('Speltid'),
TextEntry::make('age')
->label('Ålder'),
])
->columns(),
]),
Action::make('reserve')
->label('Reserve')
->label('Reservera')
->button()
->color('success')
->color('primary')
->form([
TextInput::make('username')
->label('Name')
->label('Namn')
->required(),
TextInput::make('email')
->label('Email')

View file

@ -23,18 +23,31 @@ class CategoryResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-bookmark';
protected static ?string $modelLabel = 'Categories';
public static function getNavigationLabel(): string
{
return __('Categories');
}
protected static ?string $title = 'Categories';
public static function getPluralLabel(): string
{
return __('Categories');
}
public static function getLabel(): string
{
return __('Category');
}
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('name')
->translateLabel()
->required()
->maxLength(255),
Select::make('type')
->translateLabel()
->required()
->options([
'game' => 'Game',
@ -49,9 +62,11 @@ class CategoryResource extends Resource
->columns([
TextColumn::make('name')
->label('Name')
->translateLabel()
->searchable(),
TextColumn::make('type')
->label('Type')
->translateLabel()
->searchable(),
])
->filters([

View file

@ -13,7 +13,9 @@ class ListCategories extends ListRecords
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make()->label('Create new'),
Actions\CreateAction::make()
->label('Create new')
->translateLabel(),
];
}
}

View file

@ -45,34 +45,53 @@ class ItemResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-archive-box';
protected static ?string $modelLabel = 'Inventory';
public static function getNavigationLabel(): string
{
return __('Inventory');
}
public static function getPluralLabel(): string
{
return __('Inventory');
}
public static function getLabel(): string
{
return __('Inventory');
}
public static function form(Form $form): Form
{
return $form
->schema([
Radio::make('type')
->translateLabel()
->options([
'game' => 'Game',
'item' => 'Item',
'game' => __('Game'),
'item' => __('Item'),
])
->default('game')
->live(),
FileUpload::make('image')
->label('Image')
->translateLabel()
->minSize(25)
->maxSize(5500)
->columnSpan('full')
->disk('public')
->disk('local')
->visibility('private')
->image(),
TextInput::make('desc')
->label('Description')
->translateLabel()
->maxLength(255)
->default(null),
DatePicker::make('acquisition_date')
->label('Acquisition date'),
->label('Acquisition date')
->translateLabel(),
TextInput::make('quantity')
->label('Quantity')
->translateLabel()
->numeric()
->minValue(0)
->maxValue(1000)
@ -80,27 +99,33 @@ class ItemResource extends Resource
->hidden(fn ($get): string => $get('type') == 'game'),
Select::make('category_id')
->label('Category')
->translateLabel()
->options(Category::all()->pluck('name', 'id')),
TextInput::make('cost')
->label('Price')
->translateLabel()
->default(null),
TextInput::make('age')
->label('Age')
->translateLabel()
->maxLength(255)
->default(null)
->hidden(fn ($get): string => $get('type') == 'item'),
TextInput::make('players')
->label('Players')
->translateLabel()
->maxLength(255)
->default(null)
->hidden(fn ($get): string => $get('type') == 'item'),
TextInput::make('play_time')
->label('Play time')
->translateLabel()
->maxLength(255)
->default(null)
->hidden(fn ($get): string => $get('type') == 'item'),
Toggle::make('can_be_loaned')
->label('Can be loaned')
->translateLabel()
->hidden(fn ($get): string => $get('type') == 'game'),
]);
}
@ -111,16 +136,22 @@ class ItemResource extends Resource
->columns([
TextColumn::make('desc')
->label('Description')
->translateLabel()
->sortable()
->searchable(),
TextColumn::make('type')
->label('Type')
->searchable()
->sortable(),
//TextColumn::make('type')
// ->label('Type')
// ->translateLabel()
// ->searchable()
// ->sortable(),
ImageColumn::make('image')
->label('Image'),
->label('Image')
->translateLabel()
->disk('local')
->visibility('private'),
IconColumn::make('can_be_loaned')
->label('Can be loaned')
->translateLabel()
->sortable()
->trueIcon('heroicon-o-check-badge')
->falseIcon('heroicon-o-x-mark')
@ -128,6 +159,7 @@ class ItemResource extends Resource
->falseColor('danger'),
IconColumn::make('reserved')
->label('Available')
->translateLabel()
->falseIcon('heroicon-o-check-badge')
->trueIcon('heroicon-o-x-mark')
->falseColor('success')
@ -136,59 +168,79 @@ class ItemResource extends Resource
])
->filters([
SelectFilter::make('type')
->translateLabel()
->multiple()
->options([
'game' => 'Game',
'item' => 'Item',
'game' => __('Game'),
'item' => __('Item'),
]),
SelectFilter::make('category_id')
->label('Item Category')
->multiple()
->options(Category::all()->where('type', 'item')->pluck('name', 'id')),
SelectFilter::make('category_id')
->label('Category')
->translateLabel()
->multiple()
->options(
Category::all()->pluck('name', 'id'),
),
Filter::make('reserved')
->label('Available')
->translateLabel()
->query(fn (Builder $query): Builder => $query->where('reserved', false))
->columnSpanFull()
->toggle(),
Filter::make('can_be_loaned')
->label('Can be loaned')
->translateLabel()
->query(fn (Builder $query): Builder => $query->where('can_be_loaned', true))
->columnSpanFull()
->toggle()
],layout: FiltersLayout::AboveContent)
->actions([
Action::make('More info')
->translateLabel()
->modalSubmitAction(false)
->infolist([
Section::make('Game')
Section::make('')
->schema([
ImageEntry::make('image')
->translateLabel()
->width(300)
->height('auto'),
TextEntry::make('desc'),
TextEntry::make('acquisition_date'),
TextEntry::make('category.name'),
TextEntry::make('players'),
TextEntry::make('play_time'),
TextEntry::make('age'),
TextEntry::make('cost'),
->height('auto')
->disk('local')
->visibility('private'),
TextEntry::make('desc')
->label('Description')
->translateLabel(),
TextEntry::make('acquisition_date')
->translateLabel(),
TextEntry::make('category.name')
->translateLabel(),
TextEntry::make('players')
->translateLabel(),
TextEntry::make('play_time')
->translateLabel(),
TextEntry::make('age')
->translateLabel(),
TextEntry::make('cost')
->translateLabel(),
])
->columns()
->hidden(fn ($record) => $record->type === "item"),
Section::make('Item')
Section::make('')
->translateLabel()
->schema([
ImageEntry::make('image'),
TextEntry::make('desc'),
TextEntry::make('acquisition_date'),
TextEntry::make('category.name'),
TextEntry::make('quantity'),
TextEntry::make('cost'),
ImageEntry::make('image')
->translateLabel(),
TextEntry::make('desc')
->label('Description')
->translateLabel(),
TextEntry::make('acquisition_date')
->translateLabel(),
TextEntry::make('category.name')
->translateLabel(),
TextEntry::make('quantity')
->translateLabel(),
TextEntry::make('cost')
->translateLabel(),
])
->columns()
->hidden(fn ($record) => $record->type === "game"),
@ -200,14 +252,17 @@ class ItemResource extends Resource
->iconPosition(IconPosition::After),
Tables\Actions\Action::make('reserve')
->label('Reserve')
->translateLabel()
->button()
->color('success')
->color('primary')
->form([
TextInput::make('username')
->label('Name')
->translateLabel()
->required(),
TextInput::make('email')
->label('Email')
->translateLabel()
->required(),
])
->action(function (array $data, Item $record): void {

View file

@ -24,6 +24,6 @@ class EditItem extends EditRecord
public function getHeading(): string
{
return 'Edit: ' . $this->getRecord()->desc;
return $this->getRecord()->desc;
}
}

View file

@ -13,7 +13,9 @@ class ListItems extends ListRecords
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make()->label('Create new'),
Actions\CreateAction::make()
->label('Create new')
->translateLabel(),
];
}
}

View file

@ -31,9 +31,20 @@ class ReserveditemResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-archive-box-x-mark';
protected static ?string $modelLabel = 'Reservations';
public static function getNavigationLabel(): string
{
return __('Reservations');
}
protected static ?string $title = 'Reserve an item';
public static function getPluralLabel(): string
{
return __('Reservations');
}
public static function getLabel(): string
{
return __('Reservation');
}
public static function form(Form $form): Form
{
@ -41,14 +52,17 @@ class ReserveditemResource extends Resource
->schema([
TextInput::make('username')
->label('Name')
->translateLabel()
->default(null),
TextInput::make('email')
->label('Email')
->default(null),
Section::make('')
->schema([
Toggle::make('delivered'),
Toggle::make('delivered')
->translateLabel(),
Toggle::make('returned')
->translateLabel()
])
]);
@ -61,24 +75,30 @@ class ReserveditemResource extends Resource
->columns([
TextColumn::make('item.desc')
->label('Name')
->translateLabel()
->sortable(),
TextColumn::make('username')
->label('User')
->translateLabel()
->sortable(),
TextColumn::make('email')
->label('Email')
->sortable(),
TextColumn::make('reserved_date')
->label('Reservation 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

@ -64,6 +64,6 @@ class EditReserveditem extends EditRecord
public function getHeading(): string
{
return 'Edit: ' . Item::where('id', $this->getRecord()->item_id)->pluck('desc')->first();
return Item::where('id', $this->getRecord()->item_id)->pluck('desc')->first();
}
}

View file

@ -13,7 +13,9 @@ class ListReserveditems extends ListRecords
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make()->label('Create new'),
Actions\CreateAction::make()
->label('Create new')
->translateLabel(),
];
}
}

View file

@ -29,23 +29,42 @@ class UserResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-users';
public static function getNavigationLabel(): string
{
return __('Users');
}
public static function getPluralLabel(): string
{
return __('Users');
}
public static function getLabel(): string
{
return __('User');
}
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('name')
->translateLabel()
->required()
->maxLength(255),
TextInput::make('email')
->email()
->required()
->maxLength(255),
DateTimePicker::make('email_verified_at'),
DateTimePicker::make('email_verified_at')
->translateLabel(),
TextInput::make('password')
->translateLabel()
->password()
->required()
->maxLength(255),
Toggle::make('is_admin')
->translateLabel()
->required(),
]);
}
@ -56,11 +75,13 @@ class UserResource extends Resource
->columns([
TextColumn::make('name')
->label('Name')
->translateLabel()
->searchable(),
TextColumn::make('email')
->searchable(),
IconColumn::make('is_admin')
->boolean(),
->boolean()
->translateLabel(),
])
->filters([
//

View file

@ -13,7 +13,9 @@ class ListUsers extends ListRecords
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make()->label('Create new'),
Actions\CreateAction::make()
->label('Create new')
->translateLabel(),
];
}
}

View file

@ -16,9 +16,10 @@ class AdminWidget extends BaseWidget
protected function getStats(): array
{
return [
Card::make('Total number of users', User::count() ),
Card::make('Total number of items', Item::count() ),
Card::make('Reserved items', Reserveditem::count() ),
//Card::make(__('Total number of users'), User::count() ),
Card::make(__('Total number of games'), Item::where('type', 'game')->count() ),
Card::make(__('Total number of items'), Item::where('type', 'item')->count() ),
Card::make(__('Reserved games and items'), Reserveditem::count() ),
];
}

View file

@ -4,6 +4,10 @@ namespace App\Providers;
use Illuminate\Support\Facades\Vite;
use Illuminate\Support\ServiceProvider;
use BezhanSalleh\FilamentLanguageSwitch\LanguageSwitch;
use Filament\Support\Colors\Color;
use Filament\Support\Facades\FilamentColor;
class AppServiceProvider extends ServiceProvider
{
@ -21,5 +25,14 @@ class AppServiceProvider extends ServiceProvider
public function boot(): void
{
Vite::prefetch(concurrency: 3);
LanguageSwitch::configureUsing(function (LanguageSwitch $switch) {
$switch
->locales(['en','sv']); // also accepts a closure
});
FilamentColor::register([
'primary' => Color::hex('#0080bb'),
]);
}
}

View file

@ -7,6 +7,7 @@
"license": "MIT",
"require": {
"php": "^8.2",
"bezhansalleh/filament-language-switch": "^3.1",
"filament/filament": "^3.2",
"inertiajs/inertia-laravel": "^2.0",
"laravel/framework": "^11.31",

1104
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,12 @@
<?php
return [
'field' => [
'label' => 'Global search',
'placeholder' => 'Search',
],
'no_results_message' => 'No search results found.',
];

View file

@ -0,0 +1,63 @@
<?php
return [
'direction' => 'ltr',
'actions' => [
'billing' => [
'label' => 'Manage subscription',
],
'logout' => [
'label' => 'Sign out',
],
'open_database_notifications' => [
'label' => 'Open notifications',
],
'open_user_menu' => [
'label' => 'User menu',
],
'sidebar' => [
'collapse' => [
'label' => 'Collapse sidebar',
],
'expand' => [
'label' => 'Expand sidebar',
],
],
'theme_switcher' => [
'dark' => [
'label' => 'Enable dark theme',
],
'light' => [
'label' => 'Enable light theme',
],
'system' => [
'label' => 'Enable system theme',
],
],
],
'avatar' => [
'alt' => 'Avatar of :name',
],
'logo' => [
'alt' => ':name logo',
],
];

View file

@ -0,0 +1,51 @@
<?php
return [
'label' => 'Profile',
'form' => [
'email' => [
'label' => 'Email address',
],
'name' => [
'label' => 'Name',
],
'password' => [
'label' => 'New password',
],
'password_confirmation' => [
'label' => 'Confirm new password',
],
'actions' => [
'save' => [
'label' => 'Save changes',
],
],
],
'notifications' => [
'saved' => [
'title' => 'Saved',
],
],
'actions' => [
'cancel' => [
'label' => 'Cancel',
],
],
];

View file

@ -0,0 +1,35 @@
<?php
return [
'title' => 'Verify your email address',
'heading' => 'Verify your email address',
'actions' => [
'resend_notification' => [
'label' => 'Resend it',
],
],
'messages' => [
'notification_not_received' => 'Not received the email we sent?',
'notification_sent' => 'We\'ve sent an email to :email containing instructions on how to verify your email address.',
],
'notifications' => [
'notification_resent' => [
'title' => 'We\'ve resent the email.',
],
'notification_resend_throttled' => [
'title' => 'Too many resend attempts',
'body' => 'Please try again in :seconds seconds.',
],
],
];

View file

@ -0,0 +1,61 @@
<?php
return [
'title' => 'Login',
'heading' => 'Sign in',
'actions' => [
'register' => [
'before' => 'or',
'label' => 'sign up for an account',
],
'request_password_reset' => [
'label' => 'Forgot password?',
],
],
'form' => [
'email' => [
'label' => 'Email address',
],
'password' => [
'label' => 'Password',
],
'remember' => [
'label' => 'Remember me',
],
'actions' => [
'authenticate' => [
'label' => 'Sign in',
],
],
],
'messages' => [
'failed' => 'These credentials do not match our records.',
],
'notifications' => [
'throttled' => [
'title' => 'Too many login attempts',
'body' => 'Please try again in :seconds seconds.',
],
],
];

View file

@ -0,0 +1,42 @@
<?php
return [
'title' => 'Reset your password',
'heading' => 'Forgot password?',
'actions' => [
'login' => [
'label' => 'back to login',
],
],
'form' => [
'email' => [
'label' => 'Email address',
],
'actions' => [
'request' => [
'label' => 'Send email',
],
],
],
'notifications' => [
'throttled' => [
'title' => 'Too many requests',
'body' => 'Please try again in :seconds seconds.',
],
],
];

View file

@ -0,0 +1,43 @@
<?php
return [
'title' => 'Reset your password',
'heading' => 'Reset your password',
'form' => [
'email' => [
'label' => 'Email address',
],
'password' => [
'label' => 'Password',
'validation_attribute' => 'password',
],
'password_confirmation' => [
'label' => 'Confirm password',
],
'actions' => [
'reset' => [
'label' => 'Reset password',
],
],
],
'notifications' => [
'throttled' => [
'title' => 'Too many reset attempts',
'body' => 'Please try again in :seconds seconds.',
],
],
];

View file

@ -0,0 +1,56 @@
<?php
return [
'title' => 'Register',
'heading' => 'Sign up',
'actions' => [
'login' => [
'before' => 'or',
'label' => 'sign in to your account',
],
],
'form' => [
'email' => [
'label' => 'Email address',
],
'name' => [
'label' => 'Name',
],
'password' => [
'label' => 'Password',
'validation_attribute' => 'password',
],
'password_confirmation' => [
'label' => 'Confirm password',
],
'actions' => [
'register' => [
'label' => 'Sign up',
],
],
],
'notifications' => [
'throttled' => [
'title' => 'Too many registration attempts',
'body' => 'Please try again in :seconds seconds.',
],
],
];

View file

@ -0,0 +1,33 @@
<?php
return [
'title' => 'Dashboard',
'actions' => [
'filter' => [
'label' => 'Filter',
'modal' => [
'heading' => 'Filter',
'actions' => [
'apply' => [
'label' => 'Apply',
],
],
],
],
],
];

View file

@ -0,0 +1,25 @@
<?php
return [
'form' => [
'actions' => [
'save' => [
'label' => 'Save changes',
],
],
],
'notifications' => [
'saved' => [
'title' => 'Saved',
],
],
];

View file

@ -0,0 +1,37 @@
<?php
return [
'title' => 'Create :label',
'breadcrumb' => 'Create',
'form' => [
'actions' => [
'cancel' => [
'label' => 'Cancel',
],
'create' => [
'label' => 'Create',
],
'create_another' => [
'label' => 'Create & create another',
],
],
],
'notifications' => [
'created' => [
'title' => 'Created',
],
],
];

View file

@ -0,0 +1,41 @@
<?php
return [
'title' => 'Edit :label',
'breadcrumb' => 'Edit',
'form' => [
'actions' => [
'cancel' => [
'label' => 'Cancel',
],
'save' => [
'label' => 'Save changes',
],
],
],
'content' => [
'tab' => [
'label' => 'Edit',
],
],
'notifications' => [
'saved' => [
'title' => 'Saved',
],
],
];

View file

@ -0,0 +1,7 @@
<?php
return [
'breadcrumb' => 'List',
];

View file

@ -0,0 +1,17 @@
<?php
return [
'title' => 'View :label',
'breadcrumb' => 'View',
'content' => [
'tab' => [
'label' => 'View',
],
],
];

View file

@ -0,0 +1,7 @@
<?php
return [
'body' => 'You have unsaved changes. Are you sure you want to leave this page?',
];

View file

@ -0,0 +1,15 @@
<?php
return [
'actions' => [
'logout' => [
'label' => 'Sign out',
],
],
'welcome' => 'Welcome',
];

View file

@ -0,0 +1,17 @@
<?php
return [
'actions' => [
'open_documentation' => [
'label' => 'Documentation',
],
'open_github' => [
'label' => 'GitHub',
],
],
];

39
lang/vendor/filament-panels/sv.json vendored Normal file
View file

@ -0,0 +1,39 @@
{
"Type": "Typ",
"Name": "Namn",
"Create new": "Skapa ny",
"Categories": "Kategorier",
"Inventory": "Lager",
"Category": "Kategori",
"Game": "Spel",
"Item": "Sak",
"Image": "Bild",
"Description": "Beskrivning",
"Acquisition date": "Inköpsdatum",
"Quantity": "Antal",
"Price": "Pris",
"Age": "Ålder",
"Players": "Spelare",
"Play time": "Speltid",
"Can be loaned": "Kan bli utlånad",
"Available": "Tillgänglig",
"More info": "Mer info",
"Reserve": "Reservera",
"Cost": "Pris",
"Edit": "Redigera",
"User": "Användare",
"Reservations": "Reservationer",
"Reservation": "Reservation",
"Reservation date": "Reservationsdatum",
"Delivery date": "Utlämningsdatum",
"Return date": "Årterlämningsdatum",
"Returned": "Återlämnad",
"Delivered": "Utlämnad",
"Users": "Användare",
"Is admin": "Admin",
"Password": "Lösenord",
"Email verified at": "Email verifierad den",
"Total number of games": "Totalt antal spel i lager",
"Total number of items": "Totalt antal saker i lager",
"Reserved games and items": "Reserverade spel och saker"
}

View file

@ -0,0 +1,12 @@
<?php
return [
'field' => [
'label' => 'Global sökning',
'placeholder' => 'Sök',
],
'no_results_message' => 'Inga sökresultat.',
];

View file

@ -0,0 +1,63 @@
<?php
return [
'direction' => 'ltr',
'actions' => [
'billing' => [
'label' => 'Hantera prenumeration',
],
'logout' => [
'label' => 'Logga ut',
],
'open_database_notifications' => [
'label' => 'Öppna notiser',
],
'open_user_menu' => [
'label' => 'Användarmeny',
],
'sidebar' => [
'collapse' => [
'label' => 'Dölj sidopanel',
],
'expand' => [
'label' => 'Visa sidopanel',
],
],
'theme_switcher' => [
'dark' => [
'label' => 'Använd mörkt tema',
],
'light' => [
'label' => 'Använd ljust tema',
],
'system' => [
'label' => 'Följ systemets tema',
],
],
],
'avatar' => [
'alt' => 'Avatar för :name',
],
'logo' => [
'alt' => ':name logotyp',
],
];

View file

@ -0,0 +1,51 @@
<?php
return [
'label' => 'Profil',
'form' => [
'email' => [
'label' => 'Mejladress',
],
'name' => [
'label' => 'Namn',
],
'password' => [
'label' => 'Nytt lösenord',
],
'password_confirmation' => [
'label' => 'Bekräfta nytt lösenord',
],
'actions' => [
'save' => [
'label' => 'Spara ändringar',
],
],
],
'notifications' => [
'saved' => [
'title' => 'Sparades',
],
],
'actions' => [
'cancel' => [
'label' => 'Avbryt',
],
],
];

View file

@ -0,0 +1,35 @@
<?php
return [
'title' => 'Verifiera din mejladress',
'heading' => 'Verifiera din mejladress',
'actions' => [
'resend_notification' => [
'label' => 'Skicka igen',
],
],
'messages' => [
'notification_not_received' => 'Inte fått mejlet vi skickade?',
'notification_sent' => 'Vi skickade ett meddelande till :email med instruktioner på hur du verifierar din mejladress.',
],
'notifications' => [
'notification_resent' => [
'title' => 'Vi skickade meddelandet igen.',
],
'notification_resend_throttled' => [
'title' => 'För många försök att skicka igen',
'body' => 'Vänligen försök igen om :seconds sekunder.',
],
],
];

View file

@ -0,0 +1,61 @@
<?php
return [
'title' => 'Logga in',
'heading' => 'Logga in',
'actions' => [
'register' => [
'before' => 'eller',
'label' => 'skapa ett konto',
],
'request_password_reset' => [
'label' => 'Glömt ditt lösenord?',
],
],
'form' => [
'email' => [
'label' => 'Email',
],
'password' => [
'label' => 'Lösenord',
],
'remember' => [
'label' => 'Kom ihåg mig',
],
'actions' => [
'authenticate' => [
'label' => 'Logga in',
],
],
],
'messages' => [
'failed' => 'Inloggningsuppgifterna matchar inte våra register.',
],
'notifications' => [
'throttled' => [
'title' => 'För många inloggningsförsök',
'body' => 'Vänligen försök igen om :seconds sekunder.',
],
],
];

View file

@ -0,0 +1,42 @@
<?php
return [
'title' => 'Återställ ditt lösenord',
'heading' => 'Glömt ditt lösenord?',
'actions' => [
'login' => [
'label' => 'tillbaka till inloggningen',
],
],
'form' => [
'email' => [
'label' => 'Mejladress',
],
'actions' => [
'request' => [
'label' => 'Skicka mejlmeddelande',
],
],
],
'notifications' => [
'throttled' => [
'title' => 'För många förfrågningar',
'body' => 'Vänligen försök igen om :seconds sekunder.',
],
],
];

View file

@ -0,0 +1,43 @@
<?php
return [
'title' => 'Återställ ditt lösenord',
'heading' => 'Återställ ditt lösenord',
'form' => [
'email' => [
'label' => 'Mejladress',
],
'password' => [
'label' => 'Lösenord',
'validation_attribute' => 'lösenord',
],
'password_confirmation' => [
'label' => 'Bekräfta lösenord',
],
'actions' => [
'reset' => [
'label' => 'Återställ lösenord',
],
],
],
'notifications' => [
'throttled' => [
'title' => 'För många förfrågningar om återställning',
'body' => 'Vänligen försök igen om :seconds sekunder.',
],
],
];

View file

@ -0,0 +1,56 @@
<?php
return [
'title' => 'Registrera',
'heading' => 'Skapa konto',
'actions' => [
'login' => [
'before' => 'eller',
'label' => 'logga in på ditt konto',
],
],
'form' => [
'email' => [
'label' => 'Mejladress',
],
'name' => [
'label' => 'Namn',
],
'password' => [
'label' => 'Lösenord',
'validation_attribute' => 'lösenord',
],
'password_confirmation' => [
'label' => 'Bekräfta lösenord',
],
'actions' => [
'register' => [
'label' => 'Skapa konto',
],
],
],
'notifications' => [
'throttled' => [
'title' => 'För många registreringsförsök',
'body' => 'Vänligen försök igen om :seconds sekunder.',
],
],
];

View file

@ -0,0 +1,33 @@
<?php
return [
'title' => 'Dashboard',
'actions' => [
'filter' => [
'label' => 'Filter',
'modal' => [
'heading' => 'Filter',
'actions' => [
'apply' => [
'label' => 'Använd',
],
],
],
],
],
];

View file

@ -0,0 +1,25 @@
<?php
return [
'form' => [
'actions' => [
'save' => [
'label' => 'Spara ändringar',
],
],
],
'notifications' => [
'saved' => [
'title' => 'Sparades',
],
],
];

View file

@ -0,0 +1,37 @@
<?php
return [
'title' => 'Skapa :label',
'breadcrumb' => 'Skapa',
'form' => [
'actions' => [
'cancel' => [
'label' => 'Avbryt',
],
'create' => [
'label' => 'Skapa',
],
'create_another' => [
'label' => 'Skapa & skapa en till',
],
],
],
'notifications' => [
'created' => [
'title' => 'Skapades',
],
],
];

View file

@ -0,0 +1,41 @@
<?php
return [
'title' => 'Redigera :label',
'breadcrumb' => 'Redigera',
'form' => [
'actions' => [
'cancel' => [
'label' => 'Avbryt',
],
'save' => [
'label' => 'Spara ändringar',
],
],
],
'content' => [
'tab' => [
'label' => 'Redigera',
],
],
'notifications' => [
'saved' => [
'title' => 'Sparades',
],
],
];

View file

@ -0,0 +1,7 @@
<?php
return [
'breadcrumb' => 'Lista',
];

View file

@ -0,0 +1,17 @@
<?php
return [
'title' => 'Visa :label',
'breadcrumb' => 'Visa',
'content' => [
'tab' => [
'label' => 'Visa',
],
],
];

View file

@ -0,0 +1,7 @@
<?php
return [
'body' => 'Du har osparade ändringar. Är du säker på att du vill lämna sidan?',
];

View file

@ -0,0 +1,15 @@
<?php
return [
'actions' => [
'logout' => [
'label' => 'Logga ut',
],
],
'welcome' => 'Välkommen',
];

View file

@ -0,0 +1,17 @@
<?php
return [
'actions' => [
'open_documentation' => [
'label' => 'Dokumentation',
],
'open_github' => [
'label' => 'GitHub',
],
],
];

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
function i({state:a,splitKeys:n}){return{newTag:"",state:a,createTag:function(){if(this.newTag=this.newTag.trim(),this.newTag!==""){if(this.state.includes(this.newTag)){this.newTag="";return}this.state.push(this.newTag),this.newTag=""}},deleteTag:function(t){this.state=this.state.filter(e=>e!==t)},reorderTags:function(t){let e=this.state.splice(t.oldIndex,1)[0];this.state.splice(t.newIndex,0,e),this.state=[...this.state]},input:{["x-on:blur"]:"createTag()",["x-model"]:"newTag",["x-on:keydown"](t){["Enter",...n].includes(t.key)&&(t.preventDefault(),t.stopPropagation(),this.createTag())},["x-on:paste"](){this.$nextTick(()=>{if(n.length===0){this.createTag();return}let t=n.map(e=>e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")).join("|");this.newTag.split(new RegExp(t,"g")).forEach(e=>{this.newTag=e,this.createTag()})})}}}}export{i as default};
function i({state:a,splitKeys:n}){return{newTag:"",state:a,createTag:function(){if(this.newTag=this.newTag.trim(),this.newTag!==""){if(this.state.includes(this.newTag)){this.newTag="";return}this.state.push(this.newTag),this.newTag=""}},deleteTag:function(t){this.state=this.state.filter(e=>e!==t)},reorderTags:function(t){let e=this.state.splice(t.oldIndex,1)[0];this.state.splice(t.newIndex,0,e),this.state=[...this.state]},input:{"x-on:blur":"createTag()","x-model":"newTag","x-on:keydown"(t){["Enter",...n].includes(t.key)&&(t.preventDefault(),t.stopPropagation(),this.createTag())},"x-on:paste"(){this.$nextTick(()=>{if(n.length===0){this.createTag();return}let t=n.map(e=>e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")).join("|");this.newTag.split(new RegExp(t,"g")).forEach(e=>{this.newTag=e,this.createTag()})})}}}}export{i as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -6,8 +6,8 @@
<h1 class="fi-logo flex text-xl font-bold leading-5 tracking-tight text-gray-950 dark:text-white">vBytes</h1>
</nav>
<div class="py-12 mx-auto h-full w-full px-4 md:px-6 lg:px-8 max-w-7xl">
<h1 class="fi-header-heading text-2xl font-bold tracking-tight text-gray-950 dark:text-white sm:text-3xl">Game booking</h1>
<p class="py-4">Welcome! Here you can make a reservation for a game.</p>
<h1 class="fi-header-heading text-2xl font-bold tracking-tight text-gray-950 dark:text-white sm:text-3xl">Reservera spel</h1>
<p class="py-4">Välkommen! Här kan du reservera spel som du gärna vill låna.</p>
</div>
<div class="mx-auto h-full w-full px-4 md:px-6 lg:px-8 max-w-7xl">
{{ $this->table }}