Language editor refactoring part 4 (backend + frontend)

This commit is contained in:
Peter Papp
2021-04-01 10:40:48 +02:00
parent 5130082111
commit 7772ef6b40
32 changed files with 288 additions and 161 deletions
@@ -6,7 +6,7 @@ use App\Http\Resources\LanguageCollection;
use App\Http\Resources\LanguageResource;
use App\Models\Language;
use App\Http\Controllers\Controller;
use App\Services\DemoService;
use App\Models\Setting;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
@@ -16,13 +16,6 @@ use App\Http\Requests\Languages\UpdateLanguageRequest;
class LanguageController extends Controller
{
protected $demo;
public function __construct()
{
$this->demo = resolve(DemoService::class);
}
/**
* Get all languages for admin translate
*
@@ -42,7 +35,9 @@ class LanguageController extends Controller
*/
public function get_language(Language $language)
{
return response(new LanguageResource($language), 200);
return response(
new LanguageResource($language), 200
);
}
/**
@@ -53,6 +48,7 @@ class LanguageController extends Controller
*/
public function create_language(CreateLanguageRequest $request)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
$language = Language::create([
@@ -73,6 +69,7 @@ class LanguageController extends Controller
*/
public function update_language(UpdateLanguageRequest $request, Language $language)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
$language->update(make_single_input($request));
@@ -91,18 +88,21 @@ class LanguageController extends Controller
*/
public function update_string(UpdateStringRequest $request, Language $language)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
$language
->languageStrings()
->languageTranslations()
->where('key', $request->name)
->update([
'value' => $request->value
]);
cache()->forget("language-strings-{$language->locale}");
cache()->forget("language-translations-{$language->locale}");
return response('Done', 204);
return response(
'Done', 204
);
}
/**
@@ -113,14 +113,24 @@ class LanguageController extends Controller
*/
public function delete_language(Language $language)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
if ($language->locale === 'en') {
abort(401, "Sorry, you can't delete default language.");
}
// If user try to delete language used as default,
// then set en language as default
if ($language->locale === get_setting('language')) {
Setting::whereName('language')->first()
->update(['value' => 'en']);
}
$language->delete();
return response('Done', 204);
return response(
'Done', 204
);
}
}
@@ -51,6 +51,7 @@ class PagesController extends Controller
*/
public function update(Request $request, Page $page)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
$page->update(
@@ -110,6 +110,7 @@ class PlanController extends Controller
*/
public function update(Request $request, $id)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
// Update plan
@@ -129,6 +130,7 @@ class PlanController extends Controller
*/
public function delete($id)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
// Delete plan
@@ -49,6 +49,7 @@ class SettingController extends Controller
*/
public function update(Request $request)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
// Store image if exist
@@ -82,6 +83,7 @@ class SettingController extends Controller
public function set_email(Request $request)
{
// TODO: pridat validator do requestu
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
if (!app()->runningUnitTests()) {
@@ -174,6 +176,7 @@ class SettingController extends Controller
*/
public function flush_cache()
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
if (!app()->runningUnitTests()) {
@@ -164,17 +164,10 @@ class AppFunctionsController extends Controller
*/
public function get_storage_plans()
{
if (Cache::has('pricing')) {
// Get pricing from cache
$pricing = Cache::get('pricing');
} else {
// Store pricing to cache
$pricing = Cache::rememberForever('pricing', function () {
return $this->stripe->getActivePlans();
});
}
// Get pricing from cache
$pricing = Cache::rememberForever('pricing', function () {
return $this->stripe->getActivePlans();
});
// Format pricing to collection
$collection = new PricingCollection($pricing);
@@ -194,11 +187,10 @@ class AppFunctionsController extends Controller
*/
public function get_translations($lang)
{
$translations = Cache::rememberForever("language-strings-$lang", function () use ($lang) {
$translations = Cache::rememberForever("language-translations-$lang", function () use ($lang) {
return Language::whereLocale($lang)
->firstOrFail()
->languageStrings;
->languageTranslations;
});
return map_language_translations($translations);
+3 -3
View File
@@ -17,15 +17,15 @@ class LanguageCollection extends ResourceCollection
*/
public function toArray($request)
{
$current_language = Language::with('languageStrings')
$current_language = Language::with('languageTranslations')
->whereLocale(get_setting('language') ?? 'en')
->first();
return [
'data' => $this->collection,
'meta' => [
'current_language' => new LanguageResource($current_language),
'default_translations' => get_default_language_strings()
'current_language' => new LanguageResource($current_language),
'reference_translations' => get_default_language_translations()
],
];
}
+1 -1
View File
@@ -21,7 +21,7 @@ class LanguageResource extends JsonResource
'attributes' => [
'name' => $this->name,
'locale' => $this->locale,
'translations' => map_language_translations($this->languageStrings),
'translations' => map_language_translations($this->languageTranslations),
'updated_at' => $this->updated_at,
'created_at' => $this->created_at,
]
+8 -7
View File
@@ -6,7 +6,7 @@ use App\Models\Setting;
use App\Models\User;
use App\Models\Share;
use App\Models\Language;
use App\Models\LanguageString;
use App\Models\LanguageTranslation;
use ByteUnits\Metric;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
@@ -599,11 +599,12 @@ function get_image_meta_data($file)
/**
* @return Collection
*/
function get_default_language_strings()
function get_default_language_translations()
{
return collect([
config("language-strings.extended"),
config("language-strings.regular")
config("language-translations.extended"),
config("language-translations.regular"),
config("custom-language-translations")
])->collapse();
}
@@ -614,7 +615,7 @@ function get_default_language_strings()
*/
function is_dev()
{
return env('APP_ENV') === 'local' ? 1 : 0;
return env('APP_ENV') === 'local';
}
/**
@@ -853,8 +854,8 @@ function __t($key, $values = null)
return get_setting('language') ?? 'en';
});
$strings = cache()->rememberForever("language-strings-$locale", function () use ($locale) {
return Language::whereLocale($locale)->first()->languageStrings ?? get_default_language_strings();
$strings = cache()->rememberForever("language-translations-$locale", function () use ($locale) {
return Language::whereLocale($locale)->first()->languageTranslations ?? get_default_language_translations();
});
// Find the string by key