Skip to content

Commit ec7a6b4

Browse files
committed
Brand wip
1 parent 6169d5e commit ec7a6b4

20 files changed

+122
-120
lines changed

composer.json

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@
1818
],
1919
"require": {
2020
"php": "^8.2.0",
21-
"adrolli/filament-title-with-slug": "*",
2221
"spatie/laravel-package-tools": "^1.13.0",
2322
"laravel/framework": "^11.0|^12.0",
24-
"filament/filament": "^3.2",
23+
"filament/filament": "4.0.0-beta2",
2524
"codeat3/blade-google-material-design-icons": "^1.0"
2625
},
2726
"autoload": {
@@ -36,51 +35,30 @@
3635
]
3736
},
3837
"moox": {
39-
"title": "Moox Core",
4038
"require": {
41-
"moox/data": {},
42-
"moox/localization": {},
4339
"spatie/laravel-medialibrary": {
44-
"auto_publish": "spatie-media-config",
45-
"replace_model": {
46-
"from": "Spatie\\MediaLibrary\\MediaCollections\\Models\\Media",
47-
"to": "Moox\\Core\\Media"
48-
},
49-
"replace_pathgenerator": {
50-
"info": "Replace the path generator with the Moox one.",
51-
"from": "Spatie\\MediaLibrary\\MediaCollections\\Models\\Media",
52-
"to": "Moox\\Core\\Media",
53-
"success": "Path generator replaced."
54-
}
40+
"auto_publish": "spatie-media-config"
5541
},
5642
"filament/spatie-media-library-plugin": {}
5743
},
5844
"install": {
59-
"migrate": {
60-
"path": "database/migrations"
45+
"auto_migrate": "database/migrations",
46+
"seed": "database/seeders/MediaSeeder.php",
47+
"auto_publish": "moox-media-config",
48+
"auto_entities": {
49+
"Some Resource": true,
50+
"Another Resource": null
6151
},
62-
"seed_demodata": {
63-
"ask": "Do you want to seed demo data?",
64-
"default": false,
65-
"file": "database/seeders/MediaDemoSeeder.php"
66-
},
67-
"publish": {
68-
"tag": "moox-media-config"
69-
},
70-
"entities": {
71-
"Job Manager": true,
72-
"Failed Jobs": false
73-
},
74-
"classes": {
52+
"auto_class": {
7553
"Some Class": "Moox\\Core\\SomeClass",
7654
"Another Class": "Moox\\Core\\AnotherClass"
7755
},
78-
"run": {
56+
"auto_run": {
7957
"Run this": "php artisan run:this",
8058
"Build the frontend": "npm run build",
8159
"Clear the cache": "php artisan cache:clear"
8260
},
83-
"runhere": {
61+
"auto_runhere": {
8462
"Build the frontend": "npm run build"
8563
}
8664
},

src/Entities/BaseResource.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
namespace Moox\Core\Entities;
44

5-
use Filament\Forms\Components\Actions\Action;
5+
use Filament\Actions\EditAction;
6+
use Filament\Actions\ViewAction;
7+
use Filament\Actions\RestoreAction;
8+
use Filament\Actions\RestoreBulkAction;
9+
use Filament\Actions\DeleteBulkAction;
10+
use Filament\Actions\Action;
611
use Filament\Resources\Pages\CreateRecord;
712
use Filament\Resources\Pages\EditRecord;
813
use Filament\Resources\Pages\ViewRecord;
914
use Filament\Resources\Resource;
10-
use Filament\Tables\Actions\DeleteBulkAction;
11-
use Filament\Tables\Actions\EditAction;
12-
use Filament\Tables\Actions\RestoreAction;
13-
use Filament\Tables\Actions\RestoreBulkAction;
14-
use Filament\Tables\Actions\ViewAction;
1515
use Illuminate\Database\Eloquent\Builder;
1616
use Illuminate\Database\Eloquent\SoftDeletes;
1717
use Illuminate\Database\Eloquent\SoftDeletingScope;
@@ -162,7 +162,7 @@ public static function getCancelAction(): Action
162162
->keyBindings(['escape'])
163163
->color('secondary')
164164
->outlined()
165-
->url(fn () => static::getUrl('index'));
165+
->url(fn () => static::getUrl('index', ));
166166
// ->visible(fn ($livewire): bool => $livewire instanceof CreateRecord);
167167
}
168168

@@ -175,7 +175,7 @@ public static function getDeleteAction(): Action
175175
->extraAttributes(attributes: ['class' => 'w-full'])
176176
->action(function ($livewire): void {
177177
$livewire->record->delete();
178-
$livewire->redirect(static::getUrl('index'));
178+
$livewire->redirect(static::getUrl('index', ));
179179
})
180180
->keyBindings(['delete'])
181181
->visible(fn ($livewire): bool => $livewire instanceof EditRecord)

src/Entities/Items/Draft/BaseDraftResource.php

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Moox\Core\Entities\Items\Draft;
44

5-
use Filament\Forms\Components\Actions;
5+
use Filament\Schemas\Components\Actions;
66
use Illuminate\Contracts\Database\Eloquent\Builder;
77
use Moox\Core\Entities\BaseResource;
88
use Moox\Core\Traits\Tabs\HasResourceTabs;
@@ -40,7 +40,6 @@ public static function enableEdit(): bool
4040

4141
return true;
4242
}
43-
4443
public static function enablePublish(): bool
4544
{
4645
if (static::getReadonlyConfig()) {
@@ -102,22 +101,22 @@ public static function getFormActions(): Actions
102101
static::getSaveAction()->extraAttributes(attributes: ['class' => 'w-full']),
103102
static::getCancelAction()->extraAttributes(attributes: ['class' => 'w-full']),
104103
];
105-
104+
106105
if (static::enableCreate()) {
107106
$actions[] = static::getSaveAndCreateAnotherAction()->extraAttributes(attributes: ['class' => 'w-full']);
108107
}
109-
108+
110109
if (static::enableDelete()) {
111110
$actions[] = static::getDeleteAction()->extraAttributes(attributes: ['class' => 'w-full']);
112111
}
113-
112+
114113
if (static::enableEdit()) {
115114
$actions[] = static::getEditAction()->extraAttributes(attributes: ['class' => 'w-full']);
116115
}
117-
if (static::enablePublish()) {
116+
if(static::enablePublish()) {
118117
$actions[] = static::getPublishAction()->extraAttributes(attributes: ['class' => 'w-full']);
119118
}
120-
119+
121120
return Actions::make($actions);
122121
}
123122

src/Entities/Items/Draft/BaseDraftTranslationModel.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
namespace Moox\Core\Entities\Items\Draft;
44

55
use Illuminate\Database\Eloquent\Model;
6-
use Illuminate\Database\Eloquent\Relations\MorphTo;
76
use Illuminate\Database\Eloquent\SoftDeletes;
7+
use Illuminate\Database\Eloquent\Relations\MorphTo;
8+
use Illuminate\Database\Eloquent\Relations\BelongsTo;
9+
use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract;
10+
use Astrotomic\Translatable\Translatable;
811

9-
abstract class BaseDraftTranslationModel extends Model
12+
abstract class BaseDraftTranslationModel extends Model
1013
{
1114
use SoftDeletes;
1215

@@ -17,7 +20,7 @@ public function getCasts(): array
1720
'published_at' => 'datetime',
1821
'to_unpublish_at' => 'datetime',
1922
'unpublished_at' => 'datetime',
20-
'restored_at' => 'datetime',
23+
'restored_at' => 'datetime'
2124
], $this->getCustomCasts());
2225
}
2326

src/Entities/Items/Draft/Pages/BaseCreateDraft.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
namespace Moox\Core\Entities\Items\Draft\Pages;
44

5+
use Moox\Localization\Models\Localization;
6+
use Filament\Actions\ActionGroup;
7+
use Filament\Actions\Action;
58
use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract;
69
use Filament\Resources\Pages\CreateRecord;
710
use Illuminate\Database\Eloquent\Model;
@@ -86,11 +89,11 @@ protected function resolveRecord($key): Model
8689

8790
public function getHeaderActions(): array
8891
{
89-
$languages = \Moox\Localization\Models\Localization::all();
92+
$languages = Localization::all();
9093

9194
return [
92-
\Filament\Actions\ActionGroup::make(
93-
$languages->map(fn ($localization) => \Filament\Actions\Action::make('language_'.$localization->language->alpha2)
95+
ActionGroup::make(
96+
$languages->map(fn ($localization) => Action::make('language_'.$localization->language->alpha2)
9497
->icon('flag-'.$localization->language->alpha2)
9598
->label('')
9699
->color('transparent')

src/Entities/Items/Draft/Pages/BaseEditDraft.php

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
namespace Moox\Core\Entities\Items\Draft\Pages;
44

5+
use Moox\Localization\Models\Localization;
6+
use Filament\Actions\ActionGroup;
7+
use Filament\Actions\Action;
58
use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract;
69
use Filament\Resources\Pages\EditRecord;
710
use Illuminate\Database\Eloquent\Model;
@@ -48,35 +51,36 @@ public function mutateFormDataBeforeFill(array $data): array
4851
}
4952

5053
protected function handleRecordUpdate(Model $record, array $data): Model
51-
{
52-
/** @var Model&TranslatableContract $record */
53-
if (! $this->lang) {
54-
return parent::handleRecordUpdate($record, $data);
55-
}
54+
{
55+
/** @var Model&TranslatableContract $record */
56+
if (! $this->lang) {
57+
return parent::handleRecordUpdate($record, $data);
58+
}
5659

57-
if (! property_exists($record, 'translatedAttributes')) {
58-
return parent::handleRecordUpdate($record, $data);
59-
}
60+
if (! property_exists($record, 'translatedAttributes')) {
61+
return parent::handleRecordUpdate($record, $data);
62+
}
6063

61-
// Save translation manually
62-
$translation = $record->translations()->firstOrNew([
63-
'locale' => $this->lang,
64-
]);
64+
// Save translation manually
65+
$translation = $record->translations()->firstOrNew([
66+
'locale' => $this->lang,
67+
]);
6568

66-
foreach ($record->translatedAttributes as $attr) {
67-
if (array_key_exists($attr, $data['translations'][$this->lang] ?? [])) {
68-
$translation->setAttribute($attr, $data['translations'][$this->lang][$attr]);
69-
}
69+
foreach ($record->translatedAttributes as $attr) {
70+
if (array_key_exists($attr, $data['translations'][$this->lang] ?? [])) {
71+
$translation->setAttribute($attr, $data['translations'][$this->lang][$attr]);
7072
}
71-
$translation->save();
73+
}
74+
$translation->save();
7275

73-
// Remove 'translations' from data before update
74-
unset($data['translations']);
76+
// Remove 'translations' from data before update
77+
unset($data['translations']);
7578

76-
$record->update($data);
79+
$record->update($data);
80+
81+
return $record;
82+
}
7783

78-
return $record;
79-
}
8084

8185
public function mutateFormDataBeforeSave(array $data): array
8286
{
@@ -107,12 +111,12 @@ public function mutateFormDataBeforeSave(array $data): array
107111

108112
public function getHeaderActions(): array
109113
{
110-
$languages = \Moox\Localization\Models\Localization::with('language')->get();
114+
$languages = Localization::with('language')->get();
111115
$languageCodes = $languages->map(fn ($localization) => $localization->language->alpha2);
112116

113117
return [
114-
\Filament\Actions\ActionGroup::make(
115-
$languages->map(fn ($localization) => \Filament\Actions\Action::make('language_'.$localization->language->alpha2)
118+
ActionGroup::make(
119+
$languages->map(fn ($localization) => Action::make('language_'.$localization->language->alpha2)
116120
->icon('flag-'.$localization->language->alpha2)
117121
->label('')
118122
->color('transparent')

src/Entities/Items/Draft/Pages/BaseViewDraft.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
namespace Moox\Core\Entities\Items\Draft\Pages;
44

5+
use Moox\Localization\Models\Localization;
6+
use Filament\Actions\ActionGroup;
7+
use Filament\Actions\Action;
58
use Filament\Actions\RestoreAction;
69
use Filament\Resources\Pages\ViewRecord;
710
use Moox\Core\Traits\CanResolveResourceClass;
@@ -41,11 +44,11 @@ public function mutateFormDataBeforeFill(array $data): array
4144

4245
public function getHeaderActions(): array
4346
{
44-
$localizations = \Moox\Localization\Models\Localization::with('language')->get();
47+
$localizations = Localization::with('language')->get();
4548

4649
return [
47-
\Filament\Actions\ActionGroup::make(
48-
$localizations->map(fn ($localization) => \Filament\Actions\Action::make('language_'.$localization->language->alpha2)
50+
ActionGroup::make(
51+
$localizations->map(fn ($localization) => Action::make('language_'.$localization->language->alpha2)
4952
->icon('flag-'.$localization->language->alpha2)
5053
->label('')
5154
->color('transparent')
@@ -58,9 +61,10 @@ public function getHeaderActions(): array
5861
->label('Language')
5962
->icon('flag-'.$this->lang)
6063
->extraAttributes(['class' => '']),
61-
64+
6265
RestoreAction::make(),
63-
66+
67+
6468
];
6569
}
6670
}

src/Entities/Items/Item/BaseItemResource.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Moox\Core\Entities\Items\Item;
44

5-
use Filament\Forms\Components\Actions;
5+
use Filament\Schemas\Components\Actions;
66
use Illuminate\Contracts\Database\Eloquent\Builder;
77
use Moox\Core\Entities\BaseResource;
88
use Moox\Core\Traits\Tabs\HasResourceTabs;

src/Entities/Items/Record/BaseRecordResource.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Moox\Core\Entities\Items\Item;
44

5-
use Filament\Forms\Components\Actions;
5+
use Filament\Schemas\Components\Actions;
66
use Illuminate\Contracts\Database\Eloquent\Builder;
77
use Moox\Core\Entities\BaseResource;
88
use Moox\Core\Traits\Tabs\HasResourceTabs;

src/Forms/Components/CopyableField.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
namespace Moox\Core\Forms\Components;
44

5-
use Filament\Forms\Components\Actions\Action;
5+
use Filament\Actions\Action;
6+
use Closure;
67
use Filament\Forms\Components\TextInput;
78

89
class CopyableField extends TextInput
@@ -51,7 +52,7 @@ public static function make(string $name): static
5152
return $component;
5253
}
5354

54-
public function defaultValue(string|\Closure $value): static
55+
public function defaultValue(string|Closure $value): static
5556
{
5657
return $this->default($value);
5758
}

0 commit comments

Comments
 (0)