Skip to content

Commit 4ff3fe7

Browse files
committed
Media Collection Plugin, migration
1 parent 07d9dc2 commit 4ff3fe7

4 files changed

Lines changed: 104 additions & 37 deletions

File tree

app/Providers/Filament/AdminPanelProvider.php

Lines changed: 38 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,53 +2,54 @@
22

33
namespace App\Providers\Filament;
44

5-
use Filament\Http\Middleware\Authenticate;
6-
use Filament\Http\Middleware\DisableBladeIconComponents;
7-
use Filament\Http\Middleware\DispatchServingFilamentEvent;
8-
use Filament\Pages\Dashboard;
95
use Filament\Panel;
6+
use Moox\Tag\TagPlugin;
7+
use Moox\Jobs\JobsPlugin;
8+
use Moox\Page\PagePlugin;
9+
use Moox\User\UserPlugin;
1010
use Filament\PanelProvider;
11-
use Filament\Support\Colors\Color;
12-
use Filament\Widgets\AccountWidget;
13-
use Filament\Widgets\FilamentInfoWidget;
14-
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
15-
use Illuminate\Cookie\Middleware\EncryptCookies;
16-
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
17-
use Illuminate\Routing\Middleware\SubstituteBindings;
18-
use Illuminate\Session\Middleware\AuthenticateSession;
19-
use Illuminate\Session\Middleware\StartSession;
20-
use Illuminate\View\Middleware\ShareErrorsFromSession;
2111
use Moox\Audit\AuditPlugin;
22-
use Moox\Category\Moox\Entities\Categories\Plugins\CategoryPlugin;
23-
use Moox\Data\Filament\Plugins\StaticCountryPlugin;
24-
use Moox\Data\Filament\Plugins\StaticCurrencyPlugin;
25-
use Moox\Data\Filament\Plugins\StaticLanguagePlugin;
26-
use Moox\Data\Filament\Plugins\StaticLocalePlugin;
27-
use Moox\Data\Filament\Plugins\StaticTimezonePlugin;
28-
use Moox\Draft\Moox\Plugins\DraftPlugin;
12+
use Moox\Media\MediaPlugin;
13+
use Filament\Pages\Dashboard;
2914
use Moox\Expiry\ExpiryPlugin;
30-
use Moox\Item\Moox\Plugins\ItemPlugin;
31-
use Moox\Jobs\JobsBatchesPlugin;
15+
use Moox\User\Services\Login;
3216
use Moox\Jobs\JobsFailedPlugin;
33-
use Moox\Jobs\JobsPlugin;
17+
use Moox\Passkey\PasskeyPlugin;
18+
use Moox\Jobs\JobsBatchesPlugin;
3419
use Moox\Jobs\JobsWaitingPlugin;
35-
use Moox\Localization\Filament\Plugins\LocalizationPlugin;
20+
use Moox\Training\TrainingPlugin;
21+
use Filament\Support\Colors\Color;
22+
use Filament\Widgets\AccountWidget;
3623
use Moox\LoginLink\LoginLinkPlugin;
37-
use Moox\Media\MediaPlugin;
38-
use Moox\Notification\NotificationPlugin;
39-
use Moox\Page\PagePlugin;
40-
use Moox\Passkey\PasskeyPlugin;
41-
use Moox\Security\ResetPasswordPlugin;
42-
use Moox\Security\Services\RequestPasswordReset;
43-
use Moox\Tag\TagPlugin;
24+
use Moox\Media\MediaCollectionPlugin;
4425
use Moox\Training\TrainingDatePlugin;
45-
use Moox\Training\TrainingInvitationPlugin;
46-
use Moox\Training\TrainingPlugin;
4726
use Moox\Training\TrainingTypePlugin;
48-
use Moox\User\Services\Login;
49-
use Moox\User\UserPlugin;
5027
use Moox\UserDevice\UserDevicePlugin;
28+
use Moox\Item\Moox\Plugins\ItemPlugin;
29+
use Moox\Security\ResetPasswordPlugin;
5130
use Moox\UserSession\UserSessionPlugin;
31+
use Filament\Widgets\FilamentInfoWidget;
32+
use Moox\Draft\Moox\Plugins\DraftPlugin;
33+
use Moox\Notification\NotificationPlugin;
34+
use Filament\Http\Middleware\Authenticate;
35+
use Moox\Training\TrainingInvitationPlugin;
36+
use Illuminate\Session\Middleware\StartSession;
37+
use Illuminate\Cookie\Middleware\EncryptCookies;
38+
use Moox\Security\Services\RequestPasswordReset;
39+
use Moox\Data\Filament\Plugins\StaticLocalePlugin;
40+
use Moox\Data\Filament\Plugins\StaticCountryPlugin;
41+
use Moox\Data\Filament\Plugins\StaticCurrencyPlugin;
42+
use Moox\Data\Filament\Plugins\StaticLanguagePlugin;
43+
use Moox\Data\Filament\Plugins\StaticTimezonePlugin;
44+
use Illuminate\Routing\Middleware\SubstituteBindings;
45+
use Illuminate\Session\Middleware\AuthenticateSession;
46+
use Illuminate\View\Middleware\ShareErrorsFromSession;
47+
use Filament\Http\Middleware\DisableBladeIconComponents;
48+
use Filament\Http\Middleware\DispatchServingFilamentEvent;
49+
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
50+
use Moox\Localization\Filament\Plugins\LocalizationPlugin;
51+
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
52+
use Moox\Category\Moox\Entities\Categories\Plugins\CategoryPlugin;
5253

5354
class AdminPanelProvider extends PanelProvider
5455
{
@@ -111,6 +112,7 @@ public function panel(Panel $panel): Panel
111112
// CMS
112113
PagePlugin::make(),
113114
MediaPlugin::make(),
115+
MediaCollectionPlugin::make(),
114116
CategoryPlugin::make(),
115117
TagPlugin::make(),
116118

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
use Illuminate\Database\Migrations\Migration;
4+
use Illuminate\Database\Schema\Blueprint;
5+
use Illuminate\Support\Facades\Schema;
6+
7+
return new class extends Migration {
8+
public function up(): void
9+
{
10+
Schema::create('media_collections', function (Blueprint $table) {
11+
$table->id();
12+
$table->string('name')->unique();
13+
$table->string('description')->nullable();
14+
$table->timestamps();
15+
});
16+
17+
Schema::table('media', function (Blueprint $table) {
18+
$table->foreignId('collection_id')->nullable()->constrained('media_collections')->nullOnDelete();
19+
});
20+
}
21+
22+
public function down(): void
23+
{
24+
Schema::table('media', function (Blueprint $table) {
25+
$table->dropForeign(['collection_id']);
26+
$table->dropColumn('collection_id');
27+
});
28+
29+
Schema::dropIfExists('media_collections');
30+
}
31+
};
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
namespace Moox\Media;
4+
5+
use Filament\Panel;
6+
use Filament\Contracts\Plugin;
7+
use Filament\Support\Concerns\EvaluatesClosures;
8+
use Moox\Media\Resources\MediaCollectionResource;
9+
10+
class MediaCollectionPlugin implements Plugin
11+
{
12+
use EvaluatesClosures;
13+
14+
public function getId(): string
15+
{
16+
return 'media-collection';
17+
}
18+
19+
public function register(Panel $panel): void
20+
{
21+
$panel->resources([
22+
MediaCollectionResource::class,
23+
]);
24+
}
25+
26+
public function boot(Panel $panel): void
27+
{
28+
//
29+
}
30+
31+
public static function make(): static
32+
{
33+
return app(static::class);
34+
}
35+
}

packages/media/src/MediaPlugin.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ public function register(Panel $panel): void
2121
{
2222
$panel->resources([
2323
MediaResource::class,
24-
MediaCollectionResource::class,
2524
]);
2625
}
2726

0 commit comments

Comments
 (0)