From 47d47a9cf1292c8978243f82ef8a6589488ff4f8 Mon Sep 17 00:00:00 2001 From: vasya Date: Sun, 22 Mar 2026 19:45:03 +0300 Subject: [PATCH 01/15] =?UTF-8?q?INITIAL=20COMMIT=20-=20=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BE=D1=8F=D1=82=D0=BD=D0=BE,=20=D0=BC=D1=83=D1=81=D0=BE?= =?UTF-8?q?=D1=80=D0=BD=D1=8B=D0=B5=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82?= =?UTF-8?q?=D1=8B,=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D1=8B=D0=B5=20=D1=81?= =?UTF-8?q?=20=D0=B2=D0=B5=D1=80=D0=BE=D1=8F=D1=82=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=D1=8E=2090%=20=D0=BD=D0=B5=20=D1=83=D1=87=D0=B0=D1=81?= =?UTF-8?q?=D1=82=D0=B2=D1=83=D1=8E=D1=82=20=D0=B2=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F,=20=D0=BD=D0=BE=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B8=D1=81=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D1=8F=20=D0=B8?= =?UTF-8?q?=D1=85=20=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D1=8F=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Console/Commands/testDataCommand.php | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 app/Console/Commands/testDataCommand.php diff --git a/app/Console/Commands/testDataCommand.php b/app/Console/Commands/testDataCommand.php new file mode 100644 index 0000000..d087dcf --- /dev/null +++ b/app/Console/Commands/testDataCommand.php @@ -0,0 +1,34 @@ +get(); + var_dump($test); + + } +} -- 2.52.0 From 3db92a5ad65980513e5bcf9f811efea89b82f54c Mon Sep 17 00:00:00 2001 From: vasya Date: Sun, 22 Mar 2026 20:20:27 +0300 Subject: [PATCH 02/15] =?UTF-8?q?=D1=81=D0=BC=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Providers/AuthServiceProvider.php | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 app/Providers/AuthServiceProvider.php diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php new file mode 100644 index 0000000..333196c --- /dev/null +++ b/app/Providers/AuthServiceProvider.php @@ -0,0 +1,29 @@ + + */ + protected $policies = [ + // + ]; + + /** + * Register any authentication / authorization services. + */ + public function boot(): void + { + // + } +} -- 2.52.0 From bad1c3bedb63d06a0b9c5d5ef3b81b8b26c6db8d Mon Sep 17 00:00:00 2001 From: vasya Date: Sun, 22 Mar 2026 20:22:31 +0300 Subject: [PATCH 03/15] =?UTF-8?q?=D1=81=D0=BC=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Providers/BroadcastServiceProvider.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 app/Providers/BroadcastServiceProvider.php diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 0000000..2be04f5 --- /dev/null +++ b/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,19 @@ + Date: Sun, 22 Mar 2026 20:29:26 +0300 Subject: [PATCH 04/15] =?UTF-8?q?=D1=81=D0=BC=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Providers/EventServiceProvider.php | 38 ++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 app/Providers/EventServiceProvider.php diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php new file mode 100644 index 0000000..2d65aac --- /dev/null +++ b/app/Providers/EventServiceProvider.php @@ -0,0 +1,38 @@ +> + */ + protected $listen = [ + Registered::class => [ + SendEmailVerificationNotification::class, + ], + ]; + + /** + * Register any events for your application. + */ + public function boot(): void + { + // + } + + /** + * Determine if events and listeners should be automatically discovered. + */ + public function shouldDiscoverEvents(): bool + { + return false; + } +} -- 2.52.0 From 1de437cc3c00e0a437d34e3dcf142a30537bf432 Mon Sep 17 00:00:00 2001 From: vasya Date: Sun, 29 Mar 2026 19:11:01 +0300 Subject: [PATCH 05/15] =?UTF-8?q?=D1=81=D0=BC=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phpunit.xml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/phpunit.xml b/phpunit.xml index d703241..bc86714 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -19,17 +19,14 @@ - - - - - + + + + - - -- 2.52.0 From 31e725b29fd6732e84917491549378c0d74319c9 Mon Sep 17 00:00:00 2001 From: vasya Date: Sun, 29 Mar 2026 20:10:34 +0300 Subject: [PATCH 06/15] =?UTF-8?q?=D1=81=D0=BC=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/channels.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 routes/channels.php diff --git a/routes/channels.php b/routes/channels.php new file mode 100644 index 0000000..5d451e1 --- /dev/null +++ b/routes/channels.php @@ -0,0 +1,18 @@ +id === (int) $id; +}); -- 2.52.0 From 21eb65ad4b2fad292c7e92c906ad11e8adf8d8d0 Mon Sep 17 00:00:00 2001 From: vasya Date: Sun, 29 Mar 2026 20:27:21 +0300 Subject: [PATCH 07/15] =?UTF-8?q?=D1=81=D0=BC=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index a186cd2..8f0de65 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,5 +14,5 @@ trim_trailing_whitespace = false [*.{yml,yaml}] indent_size = 2 -[compose.yaml] +[docker-compose.yml] indent_size = 4 -- 2.52.0 From 77bd5c2581f39fccaaa7a3eed7cb6f706d517873 Mon Sep 17 00:00:00 2001 From: vasya Date: Sat, 11 Apr 2026 19:33:53 +0300 Subject: [PATCH 08/15] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D1=8E=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D0=B9?= =?UTF-8?q?=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C.=20=D0=9D=D0=B5=20?= =?UTF-8?q?=D1=83=D0=B2=D0=B5=D1=80=D0=B5=D0=BD,=20=D1=87=D1=82=D0=BE=20?= =?UTF-8?q?=D0=BE=D0=BD=20=D0=BD=D1=83=D0=B6=D0=B5=D0=BD,=20=D0=BD=D0=BE?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=B2=D1=81=D1=8F=D0=BA=D0=B8=D0=B9=20=D1=81?= =?UTF-8?q?=D0=BB=D1=83=D1=87=D0=B0=D0=B9=20=D0=BF=D1=83=D1=81=D1=82=D1=8C?= =?UTF-8?q?=20=D0=B1=D1=83=D0=B4=D0=B5=D1=82,=20=D0=B5=D1=81=D0=BB=D0=B8?= =?UTF-8?q?=20=D1=82=D0=B0=D0=BC=20=D1=87=D1=82=D0=BE-=D1=82=D0=BE=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=D1=81=D1=8C=20=D0=BD=D1=83=D0=B6=D0=BD=D0=BE=D0=B5=20?= =?UTF-8?q?=D0=B8=D0=BB=D0=B8=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D0=B5=D1=81?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Modules/Test/App/Http/Controllers/.gitkeep | 0 .../App/Http/Controllers/TestController.php | 67 ++++++++++ Modules/Test/App/Providers/.gitkeep | 0 .../App/Providers/RouteServiceProvider.php | 59 +++++++++ .../App/Providers/TestServiceProvider.php | 114 ++++++++++++++++++ Modules/Test/Database/Seeders/.gitkeep | 0 .../Database/Seeders/TestDatabaseSeeder.php | 16 +++ Modules/Test/composer.json | 31 +++++ Modules/Test/config/.gitkeep | 0 Modules/Test/config/config.php | 5 + Modules/Test/module.json | 11 ++ Modules/Test/package.json | 15 +++ Modules/Test/resources/assets/js/app.js | 0 Modules/Test/resources/assets/sass/app.scss | 0 Modules/Test/resources/views/.gitkeep | 0 Modules/Test/resources/views/index.blade.php | 7 ++ .../resources/views/layouts/master.blade.php | 29 +++++ Modules/Test/routes/.gitkeep | 0 Modules/Test/routes/api.php | 19 +++ Modules/Test/routes/web.php | 19 +++ Modules/Test/vite.config.js | 26 ++++ 21 files changed, 418 insertions(+) create mode 100644 Modules/Test/App/Http/Controllers/.gitkeep create mode 100644 Modules/Test/App/Http/Controllers/TestController.php create mode 100644 Modules/Test/App/Providers/.gitkeep create mode 100644 Modules/Test/App/Providers/RouteServiceProvider.php create mode 100644 Modules/Test/App/Providers/TestServiceProvider.php create mode 100644 Modules/Test/Database/Seeders/.gitkeep create mode 100644 Modules/Test/Database/Seeders/TestDatabaseSeeder.php create mode 100644 Modules/Test/composer.json create mode 100644 Modules/Test/config/.gitkeep create mode 100644 Modules/Test/config/config.php create mode 100644 Modules/Test/module.json create mode 100644 Modules/Test/package.json create mode 100644 Modules/Test/resources/assets/js/app.js create mode 100644 Modules/Test/resources/assets/sass/app.scss create mode 100644 Modules/Test/resources/views/.gitkeep create mode 100644 Modules/Test/resources/views/index.blade.php create mode 100644 Modules/Test/resources/views/layouts/master.blade.php create mode 100644 Modules/Test/routes/.gitkeep create mode 100644 Modules/Test/routes/api.php create mode 100644 Modules/Test/routes/web.php create mode 100644 Modules/Test/vite.config.js diff --git a/Modules/Test/App/Http/Controllers/.gitkeep b/Modules/Test/App/Http/Controllers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Test/App/Http/Controllers/TestController.php b/Modules/Test/App/Http/Controllers/TestController.php new file mode 100644 index 0000000..8a56baa --- /dev/null +++ b/Modules/Test/App/Http/Controllers/TestController.php @@ -0,0 +1,67 @@ +mapApiRoutes(); + + $this->mapWebRoutes(); + } + + /** + * Define the "web" routes for the application. + * + * These routes all receive session state, CSRF protection, etc. + */ + protected function mapWebRoutes(): void + { + Route::middleware('web') + ->namespace($this->moduleNamespace) + ->group(module_path('Test', '/routes/web.php')); + } + + /** + * Define the "api" routes for the application. + * + * These routes are typically stateless. + */ + protected function mapApiRoutes(): void + { + Route::prefix('api') + ->middleware('api') + ->namespace($this->moduleNamespace) + ->group(module_path('Test', '/routes/api.php')); + } +} diff --git a/Modules/Test/App/Providers/TestServiceProvider.php b/Modules/Test/App/Providers/TestServiceProvider.php new file mode 100644 index 0000000..4ea9ddf --- /dev/null +++ b/Modules/Test/App/Providers/TestServiceProvider.php @@ -0,0 +1,114 @@ +registerCommands(); + $this->registerCommandSchedules(); + $this->registerTranslations(); + $this->registerConfig(); + $this->registerViews(); + $this->loadMigrationsFrom(module_path($this->moduleName, 'Database/migrations')); + } + + /** + * Register the service provider. + */ + public function register(): void + { + $this->app->register(RouteServiceProvider::class); + } + + /** + * Register commands in the format of Command::class + */ + protected function registerCommands(): void + { + // $this->commands([]); + } + + /** + * Register command Schedules. + */ + protected function registerCommandSchedules(): void + { + // $this->app->booted(function () { + // $schedule = $this->app->make(Schedule::class); + // $schedule->command('inspire')->hourly(); + // }); + } + + /** + * Register translations. + */ + public function registerTranslations(): void + { + $langPath = resource_path('lang/modules/'.$this->moduleNameLower); + + if (is_dir($langPath)) { + $this->loadTranslationsFrom($langPath, $this->moduleNameLower); + $this->loadJsonTranslationsFrom($langPath); + } else { + $this->loadTranslationsFrom(module_path($this->moduleName, 'lang'), $this->moduleNameLower); + $this->loadJsonTranslationsFrom(module_path($this->moduleName, 'lang')); + } + } + + /** + * Register config. + */ + protected function registerConfig(): void + { + $this->publishes([module_path($this->moduleName, 'config/config.php') => config_path($this->moduleNameLower.'.php')], 'config'); + $this->mergeConfigFrom(module_path($this->moduleName, 'config/config.php'), $this->moduleNameLower); + } + + /** + * Register views. + */ + public function registerViews(): void + { + $viewPath = resource_path('views/modules/'.$this->moduleNameLower); + $sourcePath = module_path($this->moduleName, 'resources/views'); + + $this->publishes([$sourcePath => $viewPath], ['views', $this->moduleNameLower.'-module-views']); + + $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower); + + $componentNamespace = str_replace('/', '\\', config('modules.namespace').'\\'.$this->moduleName.'\\'.config('modules.paths.generator.component-class.path')); + Blade::componentNamespace($componentNamespace, $this->moduleNameLower); + } + + /** + * Get the services provided by the provider. + */ + public function provides(): array + { + return []; + } + + private function getPublishableViewPaths(): array + { + $paths = []; + foreach (config('view.paths') as $path) { + if (is_dir($path.'/modules/'.$this->moduleNameLower)) { + $paths[] = $path.'/modules/'.$this->moduleNameLower; + } + } + + return $paths; + } +} diff --git a/Modules/Test/Database/Seeders/.gitkeep b/Modules/Test/Database/Seeders/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Test/Database/Seeders/TestDatabaseSeeder.php b/Modules/Test/Database/Seeders/TestDatabaseSeeder.php new file mode 100644 index 0000000..fc898bb --- /dev/null +++ b/Modules/Test/Database/Seeders/TestDatabaseSeeder.php @@ -0,0 +1,16 @@ +call([]); + } +} diff --git a/Modules/Test/composer.json b/Modules/Test/composer.json new file mode 100644 index 0000000..c8f0da0 --- /dev/null +++ b/Modules/Test/composer.json @@ -0,0 +1,31 @@ +{ + "name": "nwidart/test", + "description": "", + "authors": [ + { + "name": "Nicolas Widart", + "email": "n.widart@gmail.com" + } + ], + "extra": { + "laravel": { + "providers": [], + "aliases": { + + } + } + }, + "autoload": { + "psr-4": { + "Modules\\Test\\": "", + "Modules\\Test\\App\\": "app/", + "Modules\\Test\\Database\\Factories\\": "database/factories/", + "Modules\\Test\\Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Modules\\Test\\Tests\\": "tests/" + } + } +} diff --git a/Modules/Test/config/.gitkeep b/Modules/Test/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Test/config/config.php b/Modules/Test/config/config.php new file mode 100644 index 0000000..a054070 --- /dev/null +++ b/Modules/Test/config/config.php @@ -0,0 +1,5 @@ + 'Test', +]; diff --git a/Modules/Test/module.json b/Modules/Test/module.json new file mode 100644 index 0000000..d5dff7d --- /dev/null +++ b/Modules/Test/module.json @@ -0,0 +1,11 @@ +{ + "name": "Test", + "alias": "test", + "description": "", + "keywords": [], + "priority": 0, + "providers": [ + "Modules\\Test\\App\\Providers\\TestServiceProvider" + ], + "files": [] +} diff --git a/Modules/Test/package.json b/Modules/Test/package.json new file mode 100644 index 0000000..d6fbfc8 --- /dev/null +++ b/Modules/Test/package.json @@ -0,0 +1,15 @@ +{ + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "axios": "^1.1.2", + "laravel-vite-plugin": "^0.7.5", + "sass": "^1.69.5", + "postcss": "^8.3.7", + "vite": "^4.0.0" + } +} diff --git a/Modules/Test/resources/assets/js/app.js b/Modules/Test/resources/assets/js/app.js new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Test/resources/assets/sass/app.scss b/Modules/Test/resources/assets/sass/app.scss new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Test/resources/views/.gitkeep b/Modules/Test/resources/views/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Test/resources/views/index.blade.php b/Modules/Test/resources/views/index.blade.php new file mode 100644 index 0000000..a34a6f4 --- /dev/null +++ b/Modules/Test/resources/views/index.blade.php @@ -0,0 +1,7 @@ +@extends('test::layouts.master') + +@section('content') +

Hello World

+ +

Module: {!! config('test.name') !!}

+@endsection diff --git a/Modules/Test/resources/views/layouts/master.blade.php b/Modules/Test/resources/views/layouts/master.blade.php new file mode 100644 index 0000000..0f18a22 --- /dev/null +++ b/Modules/Test/resources/views/layouts/master.blade.php @@ -0,0 +1,29 @@ + + + + + + + + + + Test Module - {{ config('app.name', 'Laravel') }} + + + + + + + + + + {{-- Vite CSS --}} + {{-- {{ module_vite('build-test', 'resources/assets/sass/app.scss') }} --}} + + + + @yield('content') + + {{-- Vite JS --}} + {{-- {{ module_vite('build-test', 'resources/assets/js/app.js') }} --}} + diff --git a/Modules/Test/routes/.gitkeep b/Modules/Test/routes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/Test/routes/api.php b/Modules/Test/routes/api.php new file mode 100644 index 0000000..2c95d06 --- /dev/null +++ b/Modules/Test/routes/api.php @@ -0,0 +1,19 @@ +prefix('v1')->name('api.')->group(function () { + Route::get('test', fn (Request $request) => $request->user())->name('test'); +}); diff --git a/Modules/Test/routes/web.php b/Modules/Test/routes/web.php new file mode 100644 index 0000000..14ce95d --- /dev/null +++ b/Modules/Test/routes/web.php @@ -0,0 +1,19 @@ +names('test'); +}); diff --git a/Modules/Test/vite.config.js b/Modules/Test/vite.config.js new file mode 100644 index 0000000..8a2aecc --- /dev/null +++ b/Modules/Test/vite.config.js @@ -0,0 +1,26 @@ +import { defineConfig } from 'vite'; +import laravel from 'laravel-vite-plugin'; + +export default defineConfig({ + build: { + outDir: '../../public/build-test', + emptyOutDir: true, + manifest: true, + }, + plugins: [ + laravel({ + publicDirectory: '../../public', + buildDirectory: 'build-test', + input: [ + __dirname + '/resources/assets/sass/app.scss', + __dirname + '/resources/assets/js/app.js' + ], + refresh: true, + }), + ], +}); + +//export const paths = [ +// 'Modules/$STUDLY_NAME$/resources/assets/sass/app.scss', +// 'Modules/$STUDLY_NAME$/resources/assets/js/app.js', +//]; \ No newline at end of file -- 2.52.0 From 2c5dbfc4d17e541e34c70ed5a5becfa635fe53f3 Mon Sep 17 00:00:00 2001 From: vasya Date: Sat, 11 Apr 2026 19:38:43 +0300 Subject: [PATCH 09/15] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D1=8E=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D0=B5?= =?UTF-8?q?=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D1=8B=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B2=D1=81=D1=8F=D0=BA=D0=B8=D0=B9=20=D1=81=D0=BB=D1=83=D1=87?= =?UTF-8?q?=D0=B0=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/TestController.php | 53 +++++++++++++++++++++ app/Http/Controllers/TestDataController.php | 19 ++++++++ app/Http/Controllers/TestFormController.php | 25 ++++++++++ 3 files changed, 97 insertions(+) create mode 100644 app/Http/Controllers/TestController.php create mode 100644 app/Http/Controllers/TestDataController.php create mode 100644 app/Http/Controllers/TestFormController.php diff --git a/app/Http/Controllers/TestController.php b/app/Http/Controllers/TestController.php new file mode 100644 index 0000000..4aa3bb1 --- /dev/null +++ b/app/Http/Controllers/TestController.php @@ -0,0 +1,53 @@ +table('arch_lk_access_list')->select(['*'])->get(); + return view('roles', ['roles' => $roles]); + } + + + public function getAccess($id) + { + $roles = DB::connection('mysql')->table('arch_lk_access_list')->select(['*'])->where('access_id', '=', $id)->get(); + $response = new Response(json_encode($roles[0])); + $response->header('Content-type', 'text/plain'); + $response->header('Access-Control-Allow-Methods', 'POST'); + + return $response; + } + + + public function redirect() + { + // return redirect()->away('https://google.com'); + //return redirect()->action([TestController::class, 'getAccess'], ['id' => 3]); + return redirect()->route('getAccessById', ['id' => 2]); + } + + public function getParam(Request $rqst) + { + //echo '
'; var_dump($rqst->cookie('test_cookie')); echo'
'; + //return response('test')->cookie('test_cookie', $rqst->id); + } + + public function setRole(Request $rqst) + { + $lastInsert = DB::connection('mysql')->table('arch_lk_access_list')->insertGetId(['role' => $rqst->roleName, 'title' => $rqst->roleTitle]); + return redirect()->route('get_role'); + } + + public function delRole(Request $rqst) + { + $lastInsert = DB::connection('mysql')->table('arch_lk_access_list')->where('access_id', '=', $rqst->access_id)->delete(); + return redirect()->route('get_role'); + } +} diff --git a/app/Http/Controllers/TestDataController.php b/app/Http/Controllers/TestDataController.php new file mode 100644 index 0000000..76cb7eb --- /dev/null +++ b/app/Http/Controllers/TestDataController.php @@ -0,0 +1,19 @@ +test_int = $rqst->int; + $model->test_char = $rqst->char; + + $model->save(); + } + +} diff --git a/app/Http/Controllers/TestFormController.php b/app/Http/Controllers/TestFormController.php new file mode 100644 index 0000000..0cda314 --- /dev/null +++ b/app/Http/Controllers/TestFormController.php @@ -0,0 +1,25 @@ +first_name = $rqst->first_name; + $testTable->last_name = $rqst->last_name; + $testTable->department_name = $rqst->department_name; + $testTable->save(); + + return redirect('/test_table'); + } +} -- 2.52.0 From ebdcd9485b2178216510236c6b3265351567d09b Mon Sep 17 00:00:00 2001 From: vasya Date: Sat, 11 Apr 2026 19:44:06 +0300 Subject: [PATCH 10/15] =?UTF-8?q?=D1=81=D0=BC=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/TestData.php | 13 +++++++++++++ app/Models/TestFormModel.php | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 app/Models/TestData.php create mode 100644 app/Models/TestFormModel.php diff --git a/app/Models/TestData.php b/app/Models/TestData.php new file mode 100644 index 0000000..99dbcd5 --- /dev/null +++ b/app/Models/TestData.php @@ -0,0 +1,13 @@ + Date: Sat, 11 Apr 2026 21:00:51 +0300 Subject: [PATCH 11/15] =?UTF-8?q?=D1=81=D0=BC=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/seeders/DatabaseSeeder.php | 15 ++++------ resources/views/access_list.blade.php | 22 +++++++++++++++ resources/views/roles.blade.php | 40 +++++++++++++++++++++++++++ resources/views/test_form.blade.php | 18 ++++++++++++ 4 files changed, 86 insertions(+), 9 deletions(-) create mode 100644 resources/views/access_list.blade.php create mode 100644 resources/views/roles.blade.php create mode 100644 resources/views/test_form.blade.php diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 6b901f8..a9f4519 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -2,24 +2,21 @@ namespace Database\Seeders; -use App\Models\User; -use Illuminate\Database\Console\Seeds\WithoutModelEvents; +// use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { - use WithoutModelEvents; - /** * Seed the application's database. */ public function run(): void { - // User::factory(10)->create(); + // \App\Models\User::factory(10)->create(); - User::factory()->create([ - 'name' => 'Test User', - 'email' => 'test@example.com', - ]); + // \App\Models\User::factory()->create([ + // 'name' => 'Test User', + // 'email' => 'test@example.com', + // ]); } } diff --git a/resources/views/access_list.blade.php b/resources/views/access_list.blade.php new file mode 100644 index 0000000..c0e4a30 --- /dev/null +++ b/resources/views/access_list.blade.php @@ -0,0 +1,22 @@ + + + @vite(['resources/js/app.js', 'resources/css/app.css']) + Страница с ролями + + +

{{ $roleData }}

+ + + + + + + diff --git a/resources/views/roles.blade.php b/resources/views/roles.blade.php new file mode 100644 index 0000000..115bbb0 --- /dev/null +++ b/resources/views/roles.blade.php @@ -0,0 +1,40 @@ + + + + Страница с ролями + + + + + + + + + + @foreach($roles as $role) + + + + + + + @endforeach + +
id ролиимя ролизаголовок ролиудалить
{{ $role->access_id }}{{ $role->role }}{{ $role->title }} +
+ @csrf + + +
+
+ +
+ @csrf + + + + + +
+ + diff --git a/resources/views/test_form.blade.php b/resources/views/test_form.blade.php new file mode 100644 index 0000000..5aa7e49 --- /dev/null +++ b/resources/views/test_form.blade.php @@ -0,0 +1,18 @@ + + + + Страница с ролями + + +
+ @csrf + + + + + + + +
+ + -- 2.52.0 From 4bacf61bf8bf8a7cbbd3c072a34c3db387a2461d Mon Sep 17 00:00:00 2001 From: vasya Date: Sat, 11 Apr 2026 21:04:01 +0300 Subject: [PATCH 12/15] =?UTF-8?q?=D1=81=D0=BA=D0=BE=D1=80=D0=B5=D0=B5=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=D0=B3=D0=BE=20=D1=8D=D1=82=D0=BE=D1=82=20?= =?UTF-8?q?=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=20=D0=B8=D1=81=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BB=D1=81=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=B3=D0=B4=D0=B0=20=D0=BC=D1=8B=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=D0=B8=20Inertia=20JS?= =?UTF-8?q?.=20=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BE=D0=BD=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=BD=D1=83=D0=B6=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/views/app.blade.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 resources/views/app.blade.php diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php new file mode 100644 index 0000000..e474bd7 --- /dev/null +++ b/resources/views/app.blade.php @@ -0,0 +1,16 @@ + + + + + + Laravel + React + Inertia + @viteReactRefresh + @vite(['resources/js/app.jsx']) + + @inertiaHead + + + + @inertia + + \ No newline at end of file -- 2.52.0 From da6d13eab3f466a17e67aae4aa544bc0d8da7663 Mon Sep 17 00:00:00 2001 From: vasya Date: Sat, 11 Apr 2026 21:08:37 +0300 Subject: [PATCH 13/15] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BF=D0=BE=D0=BD=D0=B5=D0=BD=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B2=D1=81=D0=BF=D0=BB=D1=8B=D0=B2=D0=B0=D1=8E=D1=89=D0=B8?= =?UTF-8?q?=D1=85=20=D0=BE=D0=BA=D0=BE=D0=BD.=20=D0=9F=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=BC=20=D1=8F=20=D0=BE=D1=82=D0=BA=D0=B0=D0=B7=D0=B0=D0=BB?= =?UTF-8?q?=D1=81=D1=8F=20=D0=BE=D1=82=20=D1=85=D1=83=D0=BA=D0=B0=20=D0=B8?= =?UTF-8?q?=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D0=BB?= =?UTF-8?q?=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20=D0=BA=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D1=82=20=D0=B2=D1=80=D0=BE=D0=B4=D0=B5=20?= =?UTF-8?q?=D0=B1=D1=8B.=20=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D1=8E=20=D0=BD=D0=B0=20=D1=81=D0=BB=D1=83=D1=87=D0=B0=D0=B9=20?= =?UTF-8?q?=D0=B5=D1=81=D0=BB=D0=B8=20=D1=83=D0=B2=D0=B8=D0=B4=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=20=D1=83=D0=BF=D0=BE=D0=BC=D0=B8=D0=BD=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BF=D0=BE=20=D0=BA=D0=BE=D0=B4=D1=83=20=D1=8D=D1=82?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D0=B0?= =?UTF-8?q?,=20=D0=BD=D0=BE=20=D1=81=D0=B0=D0=BC=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B5=D0=B3=D0=BE=20=D0=BD=D0=B5=20=D0=BD=D0=B0=D0=B9=D0=B4?= =?UTF-8?q?=D0=B5=D1=82=D0=B5=20=D0=B8=20=D0=B1=D1=83=D0=B4=D0=B5=D1=82?= =?UTF-8?q?=D0=B5=20=D0=B4=D1=83=D0=BC=D0=B0=D1=82=D1=8C=20-=20=D0=BD?= =?UTF-8?q?=D1=83=20=D1=87=D1=82=D0=BE=20=D0=B7=D0=B0=20=D0=BC=D1=83=D0=B4?= =?UTF-8?q?=D0=B0=D0=BA,=20=D0=BD=D0=B5=20=D0=B7=D0=B0=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D0=B8=D0=BB=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js/hooks/popup/MagicPopupHook.tsx | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 resources/js/hooks/popup/MagicPopupHook.tsx diff --git a/resources/js/hooks/popup/MagicPopupHook.tsx b/resources/js/hooks/popup/MagicPopupHook.tsx new file mode 100644 index 0000000..985734b --- /dev/null +++ b/resources/js/hooks/popup/MagicPopupHook.tsx @@ -0,0 +1,32 @@ +import { useState } from 'react'; +import { MagicPopupType } from '../../components/MagicPopupContainer'; + +export const MagicPopupHook = () => { + // //Стейт с набором попапов для отрисовки + // const [popupArr, setPopupArr] = useState( [] ); + // //ИСПОЛЬЗОВАНИЕ USECALLBACK? я не использую его для функций удаления и добавления новых попапов в этом хуке, что должно приводить к созданию новых экземпляров функций каждый вызов хука (удаление, добавления попапа). Функция добавления попапа является пропсом для TaxiForm, значит, содание нового экземпляра функции добавления попапа в хуке должно вызывать перерендер TaxiForm? Но я его не замечаю (нет мигания в дом дереве элемента где рендерится TaxiForm ни при создании, не при удалении попапа) + + // //Колбэк для добавление нового попапа. Его нужно передавать в каждый компонент, где планируется вызывать попапы. В аргументы этого колбэка передаются объекты с информацией для каждого попапа (текст, таймер и т.д.) + // function addPopup (newPopupArrData: MagicPopupType[]) { + // setPopupArr(prev => { + // //Конкатенируем предыдущее состояние набора попапов и новые попапы, присваивая новому попапу параметр id с уникальным рандомным значением + // return [...prev, ...newPopupArrData].map(popup => popup.id ? popup : {...popup, id: getRandomId()}) + // }); + // }; + + // //Колбэк для удаления попапа из набора + // function delPopup (popupDelKey: number) { + // setPopupArr(prev => { + // return prev.filter(popup => popup.id !== popupDelKey); + // }); + // }; + + // //Функция генерации случайного числа для формирования на его основе уникального идентификатора для каждого компонента попаппа + // function getRandomId(): number { return Date.now() - Math.random() }; + + // return { + // popupArr, + // addPopup, + // delPopup, + // } +} -- 2.52.0 From 554a416bf4b9d63d7ceb6ce65edce112789fa7e6 Mon Sep 17 00:00:00 2001 From: vasya Date: Sat, 11 Apr 2026 21:33:45 +0300 Subject: [PATCH 14/15] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BF=D0=BE=D0=BD=D0=B5=D0=BD=D1=82=D0=B0=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B5=D0=BB=D0=BE=D0=B0=D0=B4=D0=B5=D1=80=D0=B0,?= =?UTF-8?q?=20=D0=B2=D1=80=D0=BE=D0=B4=D0=B5=20=D0=B1=D1=8B,=20=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=D0=B7=D0=B0=D0=BB=D1=81=D1=8F=20=D0=BE=D1=82?= =?UTF-8?q?=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8?= =?UTF-8?q?=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20=D1=85=D1=83=D0=BA=20=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BF=D0=B8=D1=81=D0=B0=D0=BB,=20?= =?UTF-8?q?=D0=BA=D0=B0=D0=BA=20=D0=B8=20=D0=B2=D1=81=D0=BF=D0=BB=D1=8B?= =?UTF-8?q?=D0=B2=D0=B0=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BE=D0=BA=D0=BD=D0=B0?= =?UTF-8?q?,=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20=D0=BA=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/hooks/preloader/MagicPreloaderHook.tsx | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 resources/js/hooks/preloader/MagicPreloaderHook.tsx diff --git a/resources/js/hooks/preloader/MagicPreloaderHook.tsx b/resources/js/hooks/preloader/MagicPreloaderHook.tsx new file mode 100644 index 0000000..ff5c3b0 --- /dev/null +++ b/resources/js/hooks/preloader/MagicPreloaderHook.tsx @@ -0,0 +1,26 @@ +import React, { useState } from "react"; +import Preloader from "../../components/preloader/Preloader"; + +//Хук для формирования пропсов управления состояний прелоадера, экспортируемых в компоненты страницы, где планируется вызывать прелоадер +export const MagicPreloaderHook = () => { + //Стейт для видимости прелоадера + const [preloaderVisibleState, setPreloaderVisibleState] = useState(true); + //Стейт для текста прелоадера + const [preloaderTextState, setPreloaderTextState] = useState('загрузка'); + //Сеттер для смены состояний прелоадера + function setPreloaderParams (visibleState: boolean, textState?: string) + { + setPreloaderVisibleState(visibleState) + textState ? setPreloaderTextState(textState) : true, [] + }; + + return { + setPreloaderParams, + PreloaderComponent: ( {preloaderVisible = preloaderVisibleState, preloaderText = preloaderTextState} ) => ( + + ) + } +} -- 2.52.0 From 2e555cea9f615f3a167ec3992af8593d2c35353b Mon Sep 17 00:00:00 2001 From: vasya Date: Sat, 11 Apr 2026 21:45:26 +0300 Subject: [PATCH 15/15] =?UTF-8?q?=D0=BA=D0=B0=D0=B6=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F,=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=D1=81=D1=8F=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D0=BE=D0=BD=D0=B0=D0=BB=20=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF?= =?UTF-8?q?=D0=BE=D0=B2,=20=D1=80=D0=B5=D1=88=D0=B8=D0=BB=20=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D0=B2=D0=B8=D1=82=D1=8C,=20=D0=BD=D0=BE=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=20(=D0=B2=D1=80=D0=BE=D0=B4=D0=B5=20=D0=B1=D1=8B)?= =?UTF-8?q?=20=D0=B2=20=D1=81=D0=B2=D0=BE=D0=B5=D0=B9=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=D0=BE=D0=B9=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/AccessListController.php | 36 +++++++++++++++++++ app/Models/AccessModel.php | 17 +++++++++ 2 files changed, 53 insertions(+) create mode 100644 app/Http/Controllers/AccessListController.php create mode 100644 app/Models/AccessModel.php diff --git a/app/Http/Controllers/AccessListController.php b/app/Http/Controllers/AccessListController.php new file mode 100644 index 0000000..6700c57 --- /dev/null +++ b/app/Http/Controllers/AccessListController.php @@ -0,0 +1,36 @@ + $id])->select('access_id')->get(); + if ($id) { + echo '
'; var_dump($accessListData->toArray()); echo'
'; + } else { + var_dump($accessListModel::all()); + } + + } + + public function postAccess(Request $rqst) + { + $accessListModel = new AccessModel(); + $accessListModel->role = $rqst['role']; + $accessListModel->title = $rqst['title']; + $accessListModel->save(); + } + + public function delAccess($id) + { + $accessListModel = new AccessModel(); + //$accessListModel::where(['access_id' => $id])->delete(); + $accessListModel::destroy($id); + } +} diff --git a/app/Models/AccessModel.php b/app/Models/AccessModel.php new file mode 100644 index 0000000..3f33b06 --- /dev/null +++ b/app/Models/AccessModel.php @@ -0,0 +1,17 @@ +