mirror of
https://github.com/anna-sara/filament_inventory
synced 2025-10-27 00:37:14 +01:00
Compare commits
4 commits
7908161f26
...
4de915aa42
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4de915aa42 | ||
|
|
2f1af4345b | ||
|
|
fa300b9668 | ||
|
|
ef49675ffe |
15 changed files with 71 additions and 68 deletions
|
|
@ -25,37 +25,38 @@ class ItemResource extends Resource
|
|||
|
||||
protected static ?string $modelLabel = 'Items';
|
||||
|
||||
|
||||
public static function form(Form $form): Form
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
Forms\Components\FileUpload::make('image')
|
||||
->label('Bild')
|
||||
->label('Image')
|
||||
->minSize(512)
|
||||
->maxSize(1024)
|
||||
->maxSize(5500)
|
||||
->columnSpan('full')
|
||||
->image(),
|
||||
Forms\Components\TextInput::make('desc')
|
||||
->label('Beskrivning')
|
||||
->label('Description')
|
||||
->maxLength(255)
|
||||
->default(null),
|
||||
Forms\Components\DatePicker::make('acquisition_date')
|
||||
->label('Inköpsdatum'),
|
||||
->label('Acquisition date'),
|
||||
Forms\Components\TextInput::make('quantity')
|
||||
->label('Antal')
|
||||
->label('Quantity')
|
||||
->numeric()
|
||||
->minValue(0)
|
||||
->maxValue(1000)
|
||||
->default(0),
|
||||
Forms\Components\Select::make('type_id')
|
||||
->label('Typ')
|
||||
->label('Type')
|
||||
->options(Type::all()->pluck('name', 'id'))
|
||||
->required(),
|
||||
Forms\Components\TextInput::make('cost')
|
||||
->label('Kostnad')
|
||||
->label('Price')
|
||||
->default(null),
|
||||
Forms\Components\Toggle::make('can_be_loaned')
|
||||
->label('Kan lånas ut'),
|
||||
->label('Can be loaned'),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -64,28 +65,28 @@ class ItemResource extends Resource
|
|||
return $table
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('desc')
|
||||
->label('Beskrivning')
|
||||
->label('Description')
|
||||
->searchable(),
|
||||
Tables\Columns\TextColumn::make('acquisition_date')
|
||||
->label('Inköpsdatum')
|
||||
->label('Acquisition date')
|
||||
->date()
|
||||
->sortable()
|
||||
->toggleable(isToggledHiddenByDefault: true),
|
||||
Tables\Columns\TextColumn::make('quantity')
|
||||
->label('Antal')
|
||||
->label('Quantity')
|
||||
->numeric()
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('type.name')
|
||||
->label('Typ')
|
||||
->label('Type')
|
||||
->numeric()
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('cost')
|
||||
->label('Kostnad')
|
||||
->label('Price')
|
||||
->toggleable(isToggledHiddenByDefault: true),
|
||||
Tables\Columns\ImageColumn::make('image')
|
||||
->label('Bild'),
|
||||
->label('Image'),
|
||||
Tables\Columns\IconColumn::make('can_be_loaned')
|
||||
->label('Kan bli utlånad')
|
||||
->label('Can be loaned')
|
||||
->trueIcon('heroicon-o-check-badge')
|
||||
->falseIcon('heroicon-o-x-mark')
|
||||
->trueColor('success')
|
||||
|
|
@ -100,7 +101,7 @@ class ItemResource extends Resource
|
|||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\EditAction::make()
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class ListItems extends ListRecords
|
|||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
Actions\CreateAction::make()->label('Create new'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,22 +19,22 @@ class ItemsOverview extends BaseWidget
|
|||
->query(
|
||||
Item::where('can_be_loaned', true)
|
||||
)
|
||||
->heading('Items för utlåning')
|
||||
->heading('Items for lending')
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('desc')
|
||||
->label('Beskrivning')
|
||||
->label('Description')
|
||||
->searchable(),
|
||||
Tables\Columns\ImageColumn::make('image')
|
||||
->label('Bild'),
|
||||
Tables\Columns\IconColumn::make('reserveditem.reserved')
|
||||
->label('Tillgänglig')
|
||||
->trueIcon('heroicon-o-check-badge')
|
||||
->falseIcon('heroicon-o-x-mark')
|
||||
->trueColor('success')
|
||||
->falseColor('danger')
|
||||
->default(true),
|
||||
->label('Image'),
|
||||
Tables\Columns\IconColumn::make('reserved')
|
||||
->label('Available')
|
||||
->falseIcon('heroicon-o-check-badge')
|
||||
->trueIcon('heroicon-o-x-mark')
|
||||
->falseColor('success')
|
||||
->trueColor('danger')
|
||||
->default(false),
|
||||
Tables\Columns\TextColumn::make('reserveditem.return_date')
|
||||
->label('Tillbaka')
|
||||
->label('Available again')
|
||||
->searchable(),
|
||||
]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,16 +22,16 @@ class ReserveditemResource extends Resource
|
|||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-archive-box-x-mark';
|
||||
|
||||
protected static ?string $modelLabel = 'Reserverade items';
|
||||
protected static ?string $modelLabel = 'Reserved items';
|
||||
|
||||
protected static ?string $title = 'Reserverade item';
|
||||
protected static ?string $title = 'Reserve an item';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
Forms\Components\Select::make('item_id')
|
||||
->label('Välj item att lån')
|
||||
->label('Choose item to reserve')
|
||||
->relationship(
|
||||
name: 'item',
|
||||
titleAttribute: 'desc',
|
||||
|
|
@ -60,22 +60,22 @@ class ReserveditemResource extends Resource
|
|||
//->query(Reserveditem::withTrashed())
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('item.desc')
|
||||
->label('Namn')
|
||||
->label('Name')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('username')
|
||||
->label('Användare')
|
||||
->label('User')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('reserved_date')
|
||||
->label('Reserveringsdatum')
|
||||
->label('Reservation date')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('delivered_date')
|
||||
->label('Utlämningsdatum')
|
||||
->label('Delivery date')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('return_date')
|
||||
->label('Återlämningsdatum')
|
||||
->label('Return date')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('returned_date')
|
||||
->label('Återlämnad')
|
||||
->label('Returned')
|
||||
->sortable(),
|
||||
])
|
||||
->filters([
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ class CreateReserveditem extends CreateRecord
|
|||
{
|
||||
protected static string $resource = ReserveditemResource::class;
|
||||
|
||||
protected static ?string $title = 'Reserve an item';
|
||||
|
||||
protected function handleRecordCreation(array $data): Model
|
||||
{
|
||||
|
|
|
|||
|
|
@ -22,8 +22,6 @@ class EditReserveditem extends EditRecord
|
|||
|
||||
protected function mutateFormDataBeforeSave(array $data): array
|
||||
{
|
||||
$data['user_id'] = auth()->id();
|
||||
$data['username'] = auth()->user()->name;
|
||||
|
||||
if ($data['delivered'])
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class ListReserveditems extends ListRecords
|
|||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
Actions\CreateAction::make()->label('Create new'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,9 +20,7 @@ class ReserveditemResourceUser extends Resource
|
|||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-archive-box-x-mark';
|
||||
|
||||
protected static ?string $modelLabel = 'Reservera item';
|
||||
|
||||
protected static ?string $title = 'Reservera item';
|
||||
protected static ?string $modelLabel = 'Reserve items';
|
||||
|
||||
protected static ?string $slug = 'user';
|
||||
|
||||
|
|
@ -31,7 +29,7 @@ class ReserveditemResourceUser extends Resource
|
|||
return $form
|
||||
->schema([
|
||||
Forms\Components\Select::make('item_id')
|
||||
->label('Välj item att låna')
|
||||
->label('Choose an item to reserve')
|
||||
->relationship(
|
||||
name: 'item',
|
||||
titleAttribute: 'desc',
|
||||
|
|
@ -52,22 +50,22 @@ class ReserveditemResourceUser extends Resource
|
|||
return $table
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('items.desc')
|
||||
->label('Namn')
|
||||
->label('Name')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('username')
|
||||
->label('Användare')
|
||||
->label('User')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('reserved_date')
|
||||
->label('Reserveringsdatum')
|
||||
->label('Reserved date')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('delivered_date')
|
||||
->label('Utlämningsdatum')
|
||||
->label('Delivery date')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('return_date')
|
||||
->label('Återlämningsdatum')
|
||||
->label('Return date')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('returned_date')
|
||||
->label('Återlämnad')
|
||||
->label('Returned')
|
||||
->sortable(),
|
||||
])
|
||||
->filters([
|
||||
|
|
@ -102,4 +100,9 @@ class ReserveditemResourceUser extends Resource
|
|||
ItemResource\Widgets\ItemsOverview::class,
|
||||
];
|
||||
}
|
||||
|
||||
public static function canViewAny(): bool
|
||||
{
|
||||
return auth()->user()->is_admin==false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class CreateReserveditemUser extends CreateRecord
|
|||
{
|
||||
protected static string $resource = ReserveditemResourceUser::class;
|
||||
|
||||
protected static ?string $title = 'Reserverade item';
|
||||
protected static ?string $title = 'Reserve an item';
|
||||
|
||||
protected function handleRecordCreation(array $data): Model
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@ class TypeResource extends Resource
|
|||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-bookmark';
|
||||
|
||||
protected static ?string $modelLabel = 'Items types';
|
||||
protected static ?string $modelLabel = 'Item types';
|
||||
|
||||
protected static ?string $title = 'Items Types';
|
||||
protected static ?string $title = 'Item Types';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
{
|
||||
|
|
@ -38,7 +38,7 @@ class TypeResource extends Resource
|
|||
return $table
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('name')
|
||||
->label('Namn')
|
||||
->label('Name')
|
||||
->searchable(),
|
||||
])
|
||||
->filters([
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class ListTypes extends ListRecords
|
|||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
Actions\CreateAction::make()->label('Create new'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class UserResource extends Resource
|
|||
return $table
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('name')
|
||||
->label('Namn')
|
||||
->label('Name')
|
||||
->searchable(),
|
||||
Tables\Columns\TextColumn::make('email')
|
||||
->searchable(),
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class ListUsers extends ListRecords
|
|||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
Actions\CreateAction::make()->label('Create new'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@ class AdminWidget extends BaseWidget
|
|||
protected function getStats(): array
|
||||
{
|
||||
return [
|
||||
Card::make('Totalt antal användare', User::count() ),
|
||||
Card::make('Totalt antal items', Item::count() ),
|
||||
Card::make('Utlånande items', Reserveditem::count() ),
|
||||
Card::make('Total number of users', User::count() ),
|
||||
Card::make('Total number of items', Item::count() ),
|
||||
Card::make('Reserved items', Reserveditem::count() ),
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,27 +19,27 @@ class ReserveditemsOverview extends BaseWidget
|
|||
->query(
|
||||
Reserveditem::where('user_id', auth()->id())->where('returned', false)
|
||||
)
|
||||
->heading('Dina lånade items')
|
||||
->heading('Your reserved items')
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('item.desc')
|
||||
->label('Beskrivning')
|
||||
->label('Description')
|
||||
->searchable(),
|
||||
Tables\Columns\ImageColumn::make('item.image')
|
||||
->label('Bild'),
|
||||
->label('Image'),
|
||||
Tables\Columns\TextColumn::make('reserved_date')
|
||||
->label('Reserveringsdatum')
|
||||
->label('Reserved date')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('return_date')
|
||||
->label('Återlämnningsdatum')
|
||||
->label('Return date')
|
||||
->sortable(),
|
||||
Tables\Columns\IconColumn::make('delivered')
|
||||
->label('Utlämnad')
|
||||
->label('Delivered')
|
||||
->trueIcon('heroicon-o-check-badge')
|
||||
->falseIcon('heroicon-o-x-mark')
|
||||
->trueColor('success')
|
||||
->falseColor('danger'),
|
||||
Tables\Columns\IconColumn::make('returned')
|
||||
->label('Återlämnad')
|
||||
->label('Returned')
|
||||
->trueIcon('heroicon-o-check-badge')
|
||||
->falseIcon('heroicon-o-x-mark')
|
||||
->trueColor('success')
|
||||
|
|
|
|||
Loading…
Reference in a new issue