Language editor refactoring part 3 (backend + frontend)

This commit is contained in:
Peter Papp
2021-04-01 07:50:01 +02:00
parent a8fa3694be
commit 5130082111
15 changed files with 448 additions and 903 deletions
@@ -31,7 +31,7 @@ class LanguageController extends Controller
public function get_languages()
{
return response(
new LanguageCollection(Language::all()), 200
new LanguageCollection(Language::sortable(['created_at', 'DESC'])->get()), 200
);
}
@@ -40,12 +40,9 @@ class LanguageController extends Controller
*
* @param Language $language
*/
public function get_language_strings(Language $language)
public function get_language(Language $language)
{
return response([
'current' => $language->languageStrings,
'default' => get_default_language_strings()
], 200);
return response(new LanguageResource($language), 200);
}
/**
@@ -201,8 +201,6 @@ class AppFunctionsController extends Controller
->languageStrings;
});
return $translations->map(function ($string) {
return [$string->key => $string->value];
})->collapse();
return map_language_translations($translations);
}
}
+7 -1
View File
@@ -2,6 +2,7 @@
namespace App\Http\Resources;
use App\Models\Language;
use Illuminate\Http\Resources\Json\ResourceCollection;
class LanguageCollection extends ResourceCollection
@@ -16,10 +17,15 @@ class LanguageCollection extends ResourceCollection
*/
public function toArray($request)
{
$current_language = Language::with('languageStrings')
->whereLocale(get_setting('language') ?? 'en')
->first();
return [
'data' => $this->collection,
'meta' => [
'current_language' => get_setting('language') ?? 'en',
'current_language' => new LanguageResource($current_language),
'default_translations' => get_default_language_strings()
],
];
}
+5 -4
View File
@@ -19,10 +19,11 @@ class LanguageResource extends JsonResource
'id' => $this->id,
'type' => 'languages',
'attributes' => [
'name' => $this->name,
'locale' => $this->locale,
'updated_at' => $this->updated_at,
'created_at' => $this->created_at,
'name' => $this->name,
'locale' => $this->locale,
'translations' => map_language_translations($this->languageStrings),
'updated_at' => $this->updated_at,
'created_at' => $this->created_at,
]
],
];
+12
View File
@@ -526,6 +526,18 @@ function get_file_type($file_mimetype)
}
}
/**
* It map language translations as language key and language value
*
* @param $translations
* @return mixed
*/
function map_language_translations($translations)
{
return $translations->map(function ($string) {
return [$string->key => $string->value];
})->collapse();
}
/**
* Get file type from mimetype