diff --git a/app/Http/Controllers/ProjectsController.php b/app/Http/Controllers/ProjectsController.php index 9eec38b..0c3cd88 100644 --- a/app/Http/Controllers/ProjectsController.php +++ b/app/Http/Controllers/ProjectsController.php @@ -22,15 +22,6 @@ class ProjectsController extends Controller return view('projects.index', ['projects' => $projects]); } - public function WpAutoLogin(Request $request) - { - $url = $request->url; - $login = $request->login; - $pwd = $request->pwd; - - return view('projects.wp-auto-login', ['url' => $url, 'login' => $login, 'pwd' => $pwd]); - } - public function add(Request $request) { $dev_db_server = Servers::where([ diff --git a/app/Models/Projects.php b/app/Models/Projects.php index 5e16f6c..f31030a 100644 --- a/app/Models/Projects.php +++ b/app/Models/Projects.php @@ -7,6 +7,16 @@ use Illuminate\Database\Eloquent\Model; class Projects extends Model { + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'dev_login' => 'array', + 'prod_login' => 'array' + ]; + public function getDevWebIpAttribute() { $value = Servers::find($this->dev_web_server_id); if ($value) diff --git a/app/Providers/TranslationServiceProvider.php b/app/Providers/TranslationServiceProvider.php new file mode 100644 index 0000000..816aaa6 --- /dev/null +++ b/app/Providers/TranslationServiceProvider.php @@ -0,0 +1,77 @@ +collectLocalesStrings() as $locale) { + // * Suported locales + Cache::rememberForever(sprintf('translations.%s', $locale), function () use ($locale) { + $translations = [ + 'php' => $this->phpTranslations($locale), + 'json' => $this->jsonTranslations($locale), + ]; + return $translations; + }); + } + } + + /** + * Gather provided langs checking from files + * + * @return Collection + */ + private function collectLocalesStrings(): Collection + { + return collect(File::allFiles(resource_path('lang/')))->flatMap(function ($file) { + if ($file->getRelativePath()) { + return [$file->getRelativePath() => '']; + } + })->keys(); + } + + /** + * Gather all php translations + * + * @param string $locale + * @return array + */ + private function phpTranslations(string $locale): array + { + $path = resource_path("lang/$locale"); + + return collect(File::allFiles($path))->flatMap(function ($file) use ($locale) { + $translation = $file->getBasename('.php'); + return [$translation => trans($translation, [], $locale)]; + })->all(); + } + + /** + * Gather json translations + * + * @param string $locale + * @return array + */ + private function jsonTranslations(string $locale): array + { + $path = resource_path("lang/$locale.json"); + + if (is_string($path) && is_readable($path)) { + return json_decode(file_get_contents($path), true) ?? []; + } + + return []; + } +} diff --git a/config/app.php b/config/app.php index beb4f78..055b48b 100644 --- a/config/app.php +++ b/config/app.php @@ -174,6 +174,7 @@ return [ // App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, + App\Providers\TranslationServiceProvider::class, App\Providers\MailjetSmsServiceProvider::class, ], diff --git a/resources/ts/components/LoginIDComponent.vue b/resources/ts/components/LoginIdComponent.vue similarity index 86% rename from resources/ts/components/LoginIDComponent.vue rename to resources/ts/components/LoginIdComponent.vue index 929fa61..1495bcd 100644 --- a/resources/ts/components/LoginIDComponent.vue +++ b/resources/ts/components/LoginIdComponent.vue @@ -31,14 +31,13 @@ >
diff --git a/resources/ts/components/WPAutoLoginComponent.vue b/resources/ts/components/WPAutoLoginComponent.vue deleted file mode 100644 index d6dc955..0000000 --- a/resources/ts/components/WPAutoLoginComponent.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - diff --git a/resources/ts/index.d.ts b/resources/ts/index.d.ts index a7464d0..e5eac6e 100644 --- a/resources/ts/index.d.ts +++ b/resources/ts/index.d.ts @@ -35,5 +35,14 @@ declare global { interface Window { axios: AxiosStatic; Swal: Function; + __SYSTEM: { + _asset: string; + _locale: string; + _routes: Record