diff --git a/.cursor/rules/laravel-boost.mdc b/.cursor/rules/laravel-boost.mdc
index bb4d1e9..a4623a3 100644
--- a/.cursor/rules/laravel-boost.mdc
+++ b/.cursor/rules/laravel-boost.mdc
@@ -13,6 +13,7 @@ This application is a Laravel application and its main Laravel ecosystems packag
- php - 8.3.12
- laravel/framework (LARAVEL) - v12
+- filament/filament (FILAMENT) - v4.0
- laravel/prompts (PROMPTS) - v0
- laravel/pint (PINT) - v1
- laravel/sail (SAIL) - v1
@@ -34,6 +35,15 @@ This application is a Laravel application and its main Laravel ecosystems packag
## Frontend Bundling
- If the user doesn't see a frontend change reflected in the UI, it could mean they need to run `npm run build`, `npm run dev`, or `composer run dev`. Ask them.
+## Localization
+- App should be in Turkmen language.
+- All the validation messages should be in Turkmen language.
+- All the error messages should be in Turkmen language.
+- All the success messages should be in Turkmen language.
+
+## Admin panel
+- Filament is used as the admin panel.
+
## Replies
- Be concise in your explanations - focus on what's important rather than explaining obvious details.
diff --git a/app/Filament/Pages/Dashboard.php b/app/Filament/Pages/Dashboard.php
new file mode 100644
index 0000000..d0dfc91
--- /dev/null
+++ b/app/Filament/Pages/Dashboard.php
@@ -0,0 +1,10 @@
+label('Täze topar'),
];
}
}
diff --git a/app/Filament/Resources/Groups/Schemas/GroupForm.php b/app/Filament/Resources/Groups/Schemas/GroupForm.php
index 0e5eba7..aeedd5c 100644
--- a/app/Filament/Resources/Groups/Schemas/GroupForm.php
+++ b/app/Filament/Resources/Groups/Schemas/GroupForm.php
@@ -2,7 +2,9 @@
namespace App\Filament\Resources\Groups\Schemas;
+use Carbon\Carbon;
use Filament\Forms\Components\DatePicker;
+use Filament\Schemas\Components\Utilities\Set;
use Filament\Schemas\Schema;
class GroupForm
@@ -12,8 +14,13 @@ class GroupForm
return $schema
->components([
DatePicker::make('start_date')
- ->required(),
+ ->label('Başlanýan senesi')
+ ->required()
+ ->live()
+ ->afterStateUpdated(fn(Set $set, ?string $state) => $set('end_date', $state ? Carbon::parse($state)->addDays(14)->format('Y-m-d') : null)),
+
DatePicker::make('end_date')
+ ->label('Gutarýan senesi')
->required(),
]);
}
diff --git a/app/Filament/Resources/Groups/Tables/GroupsTable.php b/app/Filament/Resources/Groups/Tables/GroupsTable.php
index 2056eb7..d5234ec 100644
--- a/app/Filament/Resources/Groups/Tables/GroupsTable.php
+++ b/app/Filament/Resources/Groups/Tables/GroupsTable.php
@@ -15,15 +15,20 @@ class GroupsTable
return $table
->columns([
TextColumn::make('start_date')
+ ->label('Başlanýan senesi')
->date()
->sortable(),
+
TextColumn::make('end_date')
+ ->label('Gutarýan senesi')
->date()
->sortable(),
+
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
+
TextColumn::make('updated_at')
->dateTime()
->sortable()
diff --git a/app/Filament/Resources/Pilgrims/PilgrimResource.php b/app/Filament/Resources/Pilgrims/PilgrimResource.php
index af9c0cf..cbfbd7d 100644
--- a/app/Filament/Resources/Pilgrims/PilgrimResource.php
+++ b/app/Filament/Resources/Pilgrims/PilgrimResource.php
@@ -21,6 +21,12 @@ class PilgrimResource extends Resource
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
+ protected static ?string $navigationLabel = 'Zyýaratçylar';
+
+ protected static ?string $pluralLabel = 'Zyýaratçylar';
+
+ protected static ?int $navigationSort = 2;
+
public static function form(Schema $schema): Schema
{
return PilgrimForm::configure($schema);
diff --git a/app/Models/Group.php b/app/Models/Group.php
index f57063f..3038198 100644
--- a/app/Models/Group.php
+++ b/app/Models/Group.php
@@ -6,6 +6,14 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Factories\HasFactory;
+/**
+ * @property string $name
+ * @property date $start_date
+ * @property date $end_date
+ * @property Pilgrim[] $pilgrims
+ * @property Carbon $created_at
+ * @property Carbon $updated_at
+ */
class Group extends Model
{
use HasFactory;
diff --git a/app/Providers/Filament/PanelPanelProvider.php b/app/Providers/Filament/PanelPanelProvider.php
index 35c4af3..4f006d0 100644
--- a/app/Providers/Filament/PanelPanelProvider.php
+++ b/app/Providers/Filament/PanelPanelProvider.php
@@ -2,11 +2,11 @@
namespace App\Providers\Filament;
+use App\Filament\Pages\Dashboard;
use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\AuthenticateSession;
use Filament\Http\Middleware\DisableBladeIconComponents;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
-use Filament\Pages\Dashboard;
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Colors\Color;
diff --git a/config/app.php b/config/app.php
index 423eed5..660d71b 100644
--- a/config/app.php
+++ b/config/app.php
@@ -65,7 +65,7 @@ return [
|
*/
- 'timezone' => 'UTC',
+ 'timezone' => 'Asia/Ashgabat',
/*
|--------------------------------------------------------------------------
@@ -78,9 +78,9 @@ return [
|
*/
- 'locale' => env('APP_LOCALE', 'en'),
+ 'locale' => env('APP_LOCALE', 'tk'),
- 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
+ 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'tk'),
'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'),
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index d01a0ef..c6286d0 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -2,8 +2,6 @@
namespace Database\Seeders;
-use App\Models\User;
-// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
@@ -13,11 +11,8 @@ class DatabaseSeeder extends Seeder
*/
public function run(): void
{
- // User::factory(10)->create();
-
- User::factory()->create([
- 'name' => 'Test User',
- 'email' => 'test@example.com',
+ $this->call([
+ UserTableSeeder::class,
]);
}
}
diff --git a/database/seeders/UserTableSeeder.php b/database/seeders/UserTableSeeder.php
new file mode 100644
index 0000000..e2cf000
--- /dev/null
+++ b/database/seeders/UserTableSeeder.php
@@ -0,0 +1,22 @@
+create([
+ 'name' => 'Nurmuhammet',
+ 'email' => 'nurmuhammet@mail.com',
+ 'password' => Hash::make('payload10'),
+ ]);
+ }
+}
diff --git a/lang/tk.json b/lang/tk.json
new file mode 100644
index 0000000..6de394e
--- /dev/null
+++ b/lang/tk.json
@@ -0,0 +1,13 @@
+{
+ "Login": "Giriş",
+ "Register": "Hasaba al",
+ "Email Address": "E-poçta salgysy",
+ "Password": "Açar sözi",
+ "Confirm Password": "Açar sözüni tassyklaň",
+ "Remember Me": "Meni ýatda sakla",
+ "Forgot Your Password?": "Açar sözüňizi unutdyňyzmy?",
+ "Dashboard": "Dolandyryş paneli",
+ "You are logged in!": "Siz içerde!",
+ "Name": "Ady",
+ "Logout": "Çykyş"
+}
diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php
index 85dcf1b..367abfe 100644
--- a/resources/views/welcome.blade.php
+++ b/resources/views/welcome.blade.php
@@ -28,21 +28,21 @@
href="{{ url('/dashboard') }}"
class="inline-block px-5 py-1.5 dark:text-[#EDEDEC] border-[#19140035] hover:border-[#1915014a] border text-[#1b1b18] dark:border-[#3E3E3A] dark:hover:border-[#62605b] rounded-sm text-sm leading-normal"
>
- Dashboard
+ {{ __('Dashboard') }}
@else
- Log in
+ {{ __('Login') }}
@if (Route::has('register'))
- Register
+ {{ __('Register') }}
@endif
@endauth