mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-16 02:05:01 +00:00
Language editor refactoring part 4 (backend + frontend)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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()
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
]
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user