mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 00:02:15 +00:00
Language editor refactoring part 3 (backend + frontend)
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -6,9 +6,19 @@ use App\Services\HelperService;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Kyslik\ColumnSortable\Sortable;
|
||||
|
||||
/**
|
||||
* @method static whereLocale(string $param)
|
||||
*/
|
||||
class Language extends Model
|
||||
{
|
||||
use Sortable;
|
||||
|
||||
public $sortable = [
|
||||
'created_at',
|
||||
];
|
||||
|
||||
protected $guarded = [
|
||||
'id'
|
||||
];
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
{
|
||||
"/js/main.js": "/js/main.js",
|
||||
"/css/app.css": "/css/app.css",
|
||||
"/chunks/admin.js": "/chunks/admin.js?id=f52318f519af18cb8050",
|
||||
"/chunks/admin.js": "/chunks/admin.js?id=72b9b9917f6cc48e8349",
|
||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=3036df3e72596fabc42e",
|
||||
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~9fa266bc.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~9fa266bc.js?id=ccdd01df520484db752a",
|
||||
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=62b552a0492fe95b2223",
|
||||
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a001bb84.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a001bb84.js?id=0cad8279d29d79cd0e82",
|
||||
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js?id=99dbb760d4e3dd0acdbf",
|
||||
"/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js?id=9b66c2dab4c6103bb53c",
|
||||
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=5efddad1c72c0f672608",
|
||||
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=861487bdb5c3a4fa3ff2",
|
||||
"/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=12f0aaeb615c37d0515d",
|
||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=ff4a6b02105eaac93dcd",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=45c8f27411287c7bbf73",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=7702f37f277478ad66c6",
|
||||
@@ -15,6 +16,8 @@
|
||||
"/chunks/app-billings.js": "/chunks/app-billings.js?id=82133cc16f55222bbbe6",
|
||||
"/chunks/app-email.js": "/chunks/app-email.js?id=c578a85112c6a4b1ed0e",
|
||||
"/chunks/app-index.js": "/chunks/app-index.js?id=7f07dceace5c9c8255bb",
|
||||
"/chunks/app-language.js": "/chunks/app-language.js?id=218c5ee4bf34a6fdb487",
|
||||
"/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js?id=91d6a4649c9277a7bb29",
|
||||
"/chunks/app-others.js": "/chunks/app-others.js?id=9156adba3b1697a8bf3e",
|
||||
"/chunks/app-payments.js": "/chunks/app-payments.js?id=7e1a982c90174f568fb2",
|
||||
"/chunks/app-settings.js": "/chunks/app-settings.js?id=bbf2a2e436d939f7fc07",
|
||||
@@ -25,7 +28,6 @@
|
||||
"/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=5814ff43ba7c67297af1",
|
||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=48dc53ccbd502c2739ec",
|
||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=d93f9d9fbc991dd6a080",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.js?id=177c14bbfda39282a380",
|
||||
"/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=7540af768b1cfda01a13",
|
||||
"/chunks/database.js": "/chunks/database.js?id=7374830dc3cbddf41abb",
|
||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=6dccc2158cc6278f683d",
|
||||
@@ -51,8 +53,8 @@
|
||||
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=66123f72696b47a986a2",
|
||||
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=08e2056bc3744b2ea8f9",
|
||||
"/chunks/plans.js": "/chunks/plans.js?id=608bdbd5c041b728691a",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=d01fa913eb61faa32f92",
|
||||
"/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=4752741257e431e69704",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=6900ccecf3a9a157be76",
|
||||
"/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=3d5804463c897995e9d1",
|
||||
"/chunks/profile.js": "/chunks/profile.js?id=fb4a46afdd09cdcdc7da",
|
||||
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=d448806bfefc6cc43f0d",
|
||||
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=e00ee12cde704060e15b",
|
||||
@@ -86,307 +88,7 @@
|
||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=4aec2d7b60ec0bc35fb9",
|
||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=99efdd410910267db66e",
|
||||
"/chunks/users.js": "/chunks/users.js?id=f1057be5cf73ebc32c14",
|
||||
"/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~68e3c6cf.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~68e3c6cf.js?id=b490efdc8470a6c2f625",
|
||||
"/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~a4a4a595.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~a4a4a595.js?id=be99c10088b00578891b",
|
||||
"/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=66afa0e341251a68c3d3",
|
||||
"/js/main.72f0a691590d8f44f157.hot-update.js": "/js/main.72f0a691590d8f44f157.hot-update.js",
|
||||
"/js/main.1f68b69727b9e3d27042.hot-update.js": "/js/main.1f68b69727b9e3d27042.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.7831b0195938e6264eb8.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.7831b0195938e6264eb8.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.986f5160c7754d265e84.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.986f5160c7754d265e84.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.9a812a909df92f6d32da.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.9a812a909df92f6d32da.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.c3867d1cd7c4181a21e3.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.c3867d1cd7c4181a21e3.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.c3867d1cd7c4181a21e3.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.c3867d1cd7c4181a21e3.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.e1f67c3f18cbb53803db.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.e1f67c3f18cbb53803db.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.3d7eb1e8c8210c3ee8f0.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.3d7eb1e8c8210c3ee8f0.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.9840fdda58f5b935da2f.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.9840fdda58f5b935da2f.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.9840fdda58f5b935da2f.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.9840fdda58f5b935da2f.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.db2a4ef70c44454e3465.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.db2a4ef70c44454e3465.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.a794ed149f704a490f8c.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.a794ed149f704a490f8c.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.a794ed149f704a490f8c.hot-update.js": "/chunks/platform~chunks/shared.a794ed149f704a490f8c.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.1e6e34f7d2ab0fd5427b.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.1e6e34f7d2ab0fd5427b.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.1e6e34f7d2ab0fd5427b.hot-update.js": "/chunks/platform~chunks/shared.1e6e34f7d2ab0fd5427b.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.c30ba9966a1e43efc4d5.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.c30ba9966a1e43efc4d5.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.c30ba9966a1e43efc4d5.hot-update.js": "/chunks/platform~chunks/shared.c30ba9966a1e43efc4d5.hot-update.js",
|
||||
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.fd47538d52b72f3294f2.hot-update.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.fd47538d52b72f3294f2.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.65532797efcc12385959.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.65532797efcc12385959.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.65532797efcc12385959.hot-update.js": "/chunks/platform~chunks/shared.65532797efcc12385959.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.6271012800583810345a.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.6271012800583810345a.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.6271012800583810345a.hot-update.js": "/chunks/platform~chunks/shared.6271012800583810345a.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.ee10b07c2298a884bfbc.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.ee10b07c2298a884bfbc.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.ee10b07c2298a884bfbc.hot-update.js": "/chunks/platform~chunks/shared.ee10b07c2298a884bfbc.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.5b4c8306b88a089c15f0.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.5b4c8306b88a089c15f0.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.5b4c8306b88a089c15f0.hot-update.js": "/chunks/platform~chunks/shared.5b4c8306b88a089c15f0.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.7709ce3e5e919205acf7.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.7709ce3e5e919205acf7.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.7709ce3e5e919205acf7.hot-update.js": "/chunks/platform~chunks/shared.7709ce3e5e919205acf7.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.b1a564c4e7e8a24e2a71.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.b1a564c4e7e8a24e2a71.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.b1a564c4e7e8a24e2a71.hot-update.js": "/chunks/platform~chunks/shared.b1a564c4e7e8a24e2a71.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.7d91685b5e69c3fa4fb3.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.7d91685b5e69c3fa4fb3.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.7d91685b5e69c3fa4fb3.hot-update.js": "/chunks/platform~chunks/shared.7d91685b5e69c3fa4fb3.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.fd994ab71f104cc92ef3.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.fd994ab71f104cc92ef3.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.fd994ab71f104cc92ef3.hot-update.js": "/chunks/platform~chunks/shared.fd994ab71f104cc92ef3.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.5d8c58abd1866409693e.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.5d8c58abd1866409693e.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.5d8c58abd1866409693e.hot-update.js": "/chunks/platform~chunks/shared.5d8c58abd1866409693e.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.8179a190056560b445ae.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.8179a190056560b445ae.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.def56808e4d294830370.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.def56808e4d294830370.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.a36ba60d667f61e9eec7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.a36ba60d667f61e9eec7.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.e15f1fa548a93f65eb16.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.e15f1fa548a93f65eb16.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.c312ac01a49b929fba87.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.c312ac01a49b929fba87.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.c312ac01a49b929fba87.hot-update.js": "/chunks/platform~chunks/shared.c312ac01a49b929fba87.hot-update.js",
|
||||
"/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.7453a9ff96009e423e9c.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.7453a9ff96009e423e9c.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.7453a9ff96009e423e9c.hot-update.js": "/chunks/platform~chunks/shared.7453a9ff96009e423e9c.hot-update.js",
|
||||
"/chunks/app-appearance.486aa26f480ea05b1176.hot-update.js": "/chunks/app-appearance.486aa26f480ea05b1176.hot-update.js",
|
||||
"/chunks/app-appearance.bc60f50b88f5a93e42f8.hot-update.js": "/chunks/app-appearance.bc60f50b88f5a93e42f8.hot-update.js",
|
||||
"/chunks/app-appearance.fb0cb4011641be8de4f8.hot-update.js": "/chunks/app-appearance.fb0cb4011641be8de4f8.hot-update.js",
|
||||
"/chunks/app-appearance.e815a589597dff4f5685.hot-update.js": "/chunks/app-appearance.e815a589597dff4f5685.hot-update.js",
|
||||
"/chunks/app-appearance.44d5b8dcf013107a5294.hot-update.js": "/chunks/app-appearance.44d5b8dcf013107a5294.hot-update.js",
|
||||
"/chunks/app-appearance.d3d27ea24498ba39c361.hot-update.js": "/chunks/app-appearance.d3d27ea24498ba39c361.hot-update.js",
|
||||
"/chunks/app-appearance.844fe0955143cc8be1ed.hot-update.js": "/chunks/app-appearance.844fe0955143cc8be1ed.hot-update.js",
|
||||
"/chunks/app-setup.1a41ce9be4b75218db5b.hot-update.js": "/chunks/app-setup.1a41ce9be4b75218db5b.hot-update.js",
|
||||
"/js/main.6bae121ef6a8035d49a6.hot-update.js": "/js/main.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/admin.6bae121ef6a8035d49a6.hot-update.js": "/chunks/admin.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/admin-account.6bae121ef6a8035d49a6.hot-update.js": "/chunks/admin-account.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.6bae121ef6a8035d49a6.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/app-language.js": "/chunks/app-language.js?id=f8203bca52494677f210",
|
||||
"/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js?id=91d6a4649c9277a7bb29",
|
||||
"/chunks/app-setup.6bae121ef6a8035d49a6.hot-update.js": "/chunks/app-setup.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/billings-detail.6bae121ef6a8035d49a6.hot-update.js": "/chunks/billings-detail.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/create-new-password.6bae121ef6a8035d49a6.hot-update.js": "/chunks/create-new-password.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/database.6bae121ef6a8035d49a6.hot-update.js": "/chunks/database.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/environment-setup.6bae121ef6a8035d49a6.hot-update.js": "/chunks/environment-setup.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js?id=9824eedb24e6bfeef1ae",
|
||||
"/chunks/forgotten-password.6bae121ef6a8035d49a6.hot-update.js": "/chunks/forgotten-password.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/installation-disclaimer.6bae121ef6a8035d49a6.hot-update.js": "/chunks/installation-disclaimer.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/page-edit.6bae121ef6a8035d49a6.hot-update.js": "/chunks/page-edit.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/plan-create.6bae121ef6a8035d49a6.hot-update.js": "/chunks/plan-create.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/profile.6bae121ef6a8035d49a6.hot-update.js": "/chunks/profile.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/profile~chunks/settings-password.6bae121ef6a8035d49a6.hot-update.js": "/chunks/profile~chunks/settings-password.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/settings-create-payment-methods.6bae121ef6a8035d49a6.hot-update.js": "/chunks/settings-create-payment-methods.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/settings-invoices.6bae121ef6a8035d49a6.hot-update.js": "/chunks/settings-invoices.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/settings-payment-methods.6bae121ef6a8035d49a6.hot-update.js": "/chunks/settings-payment-methods.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/settings-storage.6bae121ef6a8035d49a6.hot-update.js": "/chunks/settings-storage.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/settings-subscription.6bae121ef6a8035d49a6.hot-update.js": "/chunks/settings-subscription.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/sign-in.6bae121ef6a8035d49a6.hot-update.js": "/chunks/sign-in.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/sign-up.6bae121ef6a8035d49a6.hot-update.js": "/chunks/sign-up.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/stripe-credentials.6bae121ef6a8035d49a6.hot-update.js": "/chunks/stripe-credentials.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/subscription-plans.6bae121ef6a8035d49a6.hot-update.js": "/chunks/subscription-plans.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/upgrade-billing.6bae121ef6a8035d49a6.hot-update.js": "/chunks/upgrade-billing.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/user-create.6bae121ef6a8035d49a6.hot-update.js": "/chunks/user-create.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/user-detail.6bae121ef6a8035d49a6.hot-update.js": "/chunks/user-detail.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/chunks/user-subscription.6bae121ef6a8035d49a6.hot-update.js": "/chunks/user-subscription.6bae121ef6a8035d49a6.hot-update.js",
|
||||
"/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~96026abe.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~96026abe.js?id=36437b5b5c9f3949f1f9",
|
||||
"/js/main.07fb5f2187ba01ab7de3.hot-update.js": "/js/main.07fb5f2187ba01ab7de3.hot-update.js",
|
||||
"/chunks/admin.07fb5f2187ba01ab7de3.hot-update.js": "/chunks/admin.07fb5f2187ba01ab7de3.hot-update.js",
|
||||
"/chunks/platform.07fb5f2187ba01ab7de3.hot-update.js": "/chunks/platform.07fb5f2187ba01ab7de3.hot-update.js",
|
||||
"/chunks/admin.bfe85963adcdd74eee09.hot-update.js": "/chunks/admin.bfe85963adcdd74eee09.hot-update.js",
|
||||
"/js/main.10e51312059b92b7fed6.hot-update.js": "/js/main.10e51312059b92b7fed6.hot-update.js",
|
||||
"/js/main.92ddec9ebe187485a417.hot-update.js": "/js/main.92ddec9ebe187485a417.hot-update.js",
|
||||
"/js/main.a48a803ca675201bb2c5.hot-update.js": "/js/main.a48a803ca675201bb2c5.hot-update.js",
|
||||
"/js/main.44a3d4c8448d73f43276.hot-update.js": "/js/main.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.44a3d4c8448d73f43276.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/app-language.44a3d4c8448d73f43276.hot-update.js": "/chunks/app-language.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/dashboard.44a3d4c8448d73f43276.hot-update.js": "/chunks/dashboard.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/files.44a3d4c8448d73f43276.hot-update.js": "/chunks/files.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/invoices.44a3d4c8448d73f43276.hot-update.js": "/chunks/invoices.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/page-edit.44a3d4c8448d73f43276.hot-update.js": "/chunks/page-edit.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/pages.44a3d4c8448d73f43276.hot-update.js": "/chunks/pages.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/plan-create.44a3d4c8448d73f43276.hot-update.js": "/chunks/plan-create.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/plans.44a3d4c8448d73f43276.hot-update.js": "/chunks/plans.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.44a3d4c8448d73f43276.hot-update.js": "/chunks/platform~chunks/shared.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/profile~chunks/settings-password.44a3d4c8448d73f43276.hot-update.js": "/chunks/profile~chunks/settings-password.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/settings.44a3d4c8448d73f43276.hot-update.js": "/chunks/settings.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/settings-create-payment-methods.44a3d4c8448d73f43276.hot-update.js": "/chunks/settings-create-payment-methods.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/settings-subscription.44a3d4c8448d73f43276.hot-update.js": "/chunks/settings-subscription.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/shared.44a3d4c8448d73f43276.hot-update.js": "/chunks/shared.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/shared/single-file.44a3d4c8448d73f43276.hot-update.js": "/chunks/shared/single-file.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/subscription-plans.44a3d4c8448d73f43276.hot-update.js": "/chunks/subscription-plans.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/upgrade-billing~chunks/upgrade-plan.44a3d4c8448d73f43276.hot-update.js": "/chunks/upgrade-billing~chunks/upgrade-plan.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/user-create.44a3d4c8448d73f43276.hot-update.js": "/chunks/user-create.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/user-subscription.44a3d4c8448d73f43276.hot-update.js": "/chunks/user-subscription.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/users.44a3d4c8448d73f43276.hot-update.js": "/chunks/users.44a3d4c8448d73f43276.hot-update.js",
|
||||
"/chunks/admin-account.8ddde69945402fc189b4.hot-update.js": "/chunks/admin-account.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.8ddde69945402fc189b4.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/app-language.8ddde69945402fc189b4.hot-update.js": "/chunks/app-language.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/app-setup.8ddde69945402fc189b4.hot-update.js": "/chunks/app-setup.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/billings-detail.8ddde69945402fc189b4.hot-update.js": "/chunks/billings-detail.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/database.8ddde69945402fc189b4.hot-update.js": "/chunks/database.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/environment-setup.8ddde69945402fc189b4.hot-update.js": "/chunks/environment-setup.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/installation-disclaimer.8ddde69945402fc189b4.hot-update.js": "/chunks/installation-disclaimer.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/page-edit.8ddde69945402fc189b4.hot-update.js": "/chunks/page-edit.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/plan-create.8ddde69945402fc189b4.hot-update.js": "/chunks/plan-create.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/profile~chunks/settings-password.8ddde69945402fc189b4.hot-update.js": "/chunks/profile~chunks/settings-password.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/settings-create-payment-methods.8ddde69945402fc189b4.hot-update.js": "/chunks/settings-create-payment-methods.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/settings-invoices.8ddde69945402fc189b4.hot-update.js": "/chunks/settings-invoices.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/settings-payment-methods.8ddde69945402fc189b4.hot-update.js": "/chunks/settings-payment-methods.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/settings-storage.8ddde69945402fc189b4.hot-update.js": "/chunks/settings-storage.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/settings-subscription.8ddde69945402fc189b4.hot-update.js": "/chunks/settings-subscription.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/stripe-credentials.8ddde69945402fc189b4.hot-update.js": "/chunks/stripe-credentials.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/subscription-plans.8ddde69945402fc189b4.hot-update.js": "/chunks/subscription-plans.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/upgrade-billing.8ddde69945402fc189b4.hot-update.js": "/chunks/upgrade-billing.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/user-create.8ddde69945402fc189b4.hot-update.js": "/chunks/user-create.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/user-subscription.8ddde69945402fc189b4.hot-update.js": "/chunks/user-subscription.8ddde69945402fc189b4.hot-update.js",
|
||||
"/chunks/admin-account.02523e285411c4492fda.hot-update.js": "/chunks/admin-account.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.02523e285411c4492fda.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/app-language.02523e285411c4492fda.hot-update.js": "/chunks/app-language.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/app-setup.02523e285411c4492fda.hot-update.js": "/chunks/app-setup.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/billings-detail.02523e285411c4492fda.hot-update.js": "/chunks/billings-detail.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/database.02523e285411c4492fda.hot-update.js": "/chunks/database.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/environment-setup.02523e285411c4492fda.hot-update.js": "/chunks/environment-setup.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/installation-disclaimer.02523e285411c4492fda.hot-update.js": "/chunks/installation-disclaimer.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/page-edit.02523e285411c4492fda.hot-update.js": "/chunks/page-edit.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/plan-create.02523e285411c4492fda.hot-update.js": "/chunks/plan-create.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/profile~chunks/settings-password.02523e285411c4492fda.hot-update.js": "/chunks/profile~chunks/settings-password.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/settings-create-payment-methods.02523e285411c4492fda.hot-update.js": "/chunks/settings-create-payment-methods.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/settings-invoices.02523e285411c4492fda.hot-update.js": "/chunks/settings-invoices.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/settings-payment-methods.02523e285411c4492fda.hot-update.js": "/chunks/settings-payment-methods.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/settings-storage.02523e285411c4492fda.hot-update.js": "/chunks/settings-storage.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/settings-subscription.02523e285411c4492fda.hot-update.js": "/chunks/settings-subscription.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/stripe-credentials.02523e285411c4492fda.hot-update.js": "/chunks/stripe-credentials.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/subscription-plans.02523e285411c4492fda.hot-update.js": "/chunks/subscription-plans.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/upgrade-billing.02523e285411c4492fda.hot-update.js": "/chunks/upgrade-billing.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/user-create.02523e285411c4492fda.hot-update.js": "/chunks/user-create.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/user-subscription.02523e285411c4492fda.hot-update.js": "/chunks/user-subscription.02523e285411c4492fda.hot-update.js",
|
||||
"/chunks/app-language.c8716262e93847f9fd31.hot-update.js": "/chunks/app-language.c8716262e93847f9fd31.hot-update.js",
|
||||
"/chunks/app-language.b58d5d80370333ef35f0.hot-update.js": "/chunks/app-language.b58d5d80370333ef35f0.hot-update.js",
|
||||
"/chunks/app-language.38d2a21a08247d1696e4.hot-update.js": "/chunks/app-language.38d2a21a08247d1696e4.hot-update.js",
|
||||
"/js/main.d6c4bb9aff18595d3daa.hot-update.js": "/js/main.d6c4bb9aff18595d3daa.hot-update.js",
|
||||
"/js/main.f62f909a87cf282c8c3d.hot-update.js": "/js/main.f62f909a87cf282c8c3d.hot-update.js",
|
||||
"/js/main.d5320dff27364885b2ad.hot-update.js": "/js/main.d5320dff27364885b2ad.hot-update.js",
|
||||
"/js/main.72da76c0d4f9a836d014.hot-update.js": "/js/main.72da76c0d4f9a836d014.hot-update.js",
|
||||
"/js/main.10729f5c19355b549f49.hot-update.js": "/js/main.10729f5c19355b549f49.hot-update.js",
|
||||
"/js/main.c2fea80b35358d7b859d.hot-update.js": "/js/main.c2fea80b35358d7b859d.hot-update.js",
|
||||
"/js/main.f6b17630a977096356f0.hot-update.js": "/js/main.f6b17630a977096356f0.hot-update.js",
|
||||
"/js/main.5876b8710dd46bc3aa10.hot-update.js": "/js/main.5876b8710dd46bc3aa10.hot-update.js",
|
||||
"/js/main.7bb9166a9c24e78b0758.hot-update.js": "/js/main.7bb9166a9c24e78b0758.hot-update.js",
|
||||
"/js/main.83ad71514c6960e9886c.hot-update.js": "/js/main.83ad71514c6960e9886c.hot-update.js",
|
||||
"/js/main.3ba68bded39b935f4638.hot-update.js": "/js/main.3ba68bded39b935f4638.hot-update.js",
|
||||
"/js/main.6e51a85243ead144abbb.hot-update.js": "/js/main.6e51a85243ead144abbb.hot-update.js",
|
||||
"/js/main.1835342cfe8bd1e5d588.hot-update.js": "/js/main.1835342cfe8bd1e5d588.hot-update.js",
|
||||
"/js/main.0ede215e9ff7c7da96db.hot-update.js": "/js/main.0ede215e9ff7c7da96db.hot-update.js",
|
||||
"/js/main.240b44b249b29ae23a07.hot-update.js": "/js/main.240b44b249b29ae23a07.hot-update.js",
|
||||
"/js/main.2f6367f55101bf82d44c.hot-update.js": "/js/main.2f6367f55101bf82d44c.hot-update.js",
|
||||
"/js/main.4e9c07e35cb8b64730c8.hot-update.js": "/js/main.4e9c07e35cb8b64730c8.hot-update.js",
|
||||
"/js/main.55ace7d973622e7a3b3d.hot-update.js": "/js/main.55ace7d973622e7a3b3d.hot-update.js",
|
||||
"/js/main.b39147c7eb8e57812b7e.hot-update.js": "/js/main.b39147c7eb8e57812b7e.hot-update.js",
|
||||
"/js/main.a135172ab0de5b0be3fc.hot-update.js": "/js/main.a135172ab0de5b0be3fc.hot-update.js",
|
||||
"/js/main.6c7cd57cfab9e3fbfeb3.hot-update.js": "/js/main.6c7cd57cfab9e3fbfeb3.hot-update.js",
|
||||
"/chunks/app-language.7a17dc97730856d8f00e.hot-update.js": "/chunks/app-language.7a17dc97730856d8f00e.hot-update.js",
|
||||
"/chunks/app-language.c9c9e921c3fd5569074c.hot-update.js": "/chunks/app-language.c9c9e921c3fd5569074c.hot-update.js",
|
||||
"/chunks/app-language.21043dd8ce9480e40e25.hot-update.js": "/chunks/app-language.21043dd8ce9480e40e25.hot-update.js",
|
||||
"/chunks/app-language.2d3af715ee6df810a0f2.hot-update.js": "/chunks/app-language.2d3af715ee6df810a0f2.hot-update.js",
|
||||
"/chunks/app-language.291a9c3748c17466a6bf.hot-update.js": "/chunks/app-language.291a9c3748c17466a6bf.hot-update.js",
|
||||
"/chunks/app-language.b1f0a7a5c0c8cfae17df.hot-update.js": "/chunks/app-language.b1f0a7a5c0c8cfae17df.hot-update.js",
|
||||
"/chunks/app-language.142bd08c814ef3ee93b7.hot-update.js": "/chunks/app-language.142bd08c814ef3ee93b7.hot-update.js",
|
||||
"/chunks/app-language.682670b7f00787e62cce.hot-update.js": "/chunks/app-language.682670b7f00787e62cce.hot-update.js",
|
||||
"/chunks/app-language.5a36f023c2a4e4d159aa.hot-update.js": "/chunks/app-language.5a36f023c2a4e4d159aa.hot-update.js",
|
||||
"/chunks/app-language.95cc932bd06ddecce973.hot-update.js": "/chunks/app-language.95cc932bd06ddecce973.hot-update.js",
|
||||
"/chunks/app-language.7b9e75abfe1177de4cab.hot-update.js": "/chunks/app-language.7b9e75abfe1177de4cab.hot-update.js",
|
||||
"/chunks/app-language.0b5ef75da485aab561db.hot-update.js": "/chunks/app-language.0b5ef75da485aab561db.hot-update.js",
|
||||
"/chunks/admin.cf15182869b124a46768.hot-update.js": "/chunks/admin.cf15182869b124a46768.hot-update.js",
|
||||
"/js/main.5f22439b137aa576c9fe.hot-update.js": "/js/main.5f22439b137aa576c9fe.hot-update.js",
|
||||
"/js/main.73cc0ba938f5bbbcfb7a.hot-update.js": "/js/main.73cc0ba938f5bbbcfb7a.hot-update.js",
|
||||
"/js/main.25d741914ffe4a282e4e.hot-update.js": "/js/main.25d741914ffe4a282e4e.hot-update.js",
|
||||
"/js/main.12c196e4398f7a20fa1f.hot-update.js": "/js/main.12c196e4398f7a20fa1f.hot-update.js",
|
||||
"/js/main.24b9e39d89ae5b0fa313.hot-update.js": "/js/main.24b9e39d89ae5b0fa313.hot-update.js",
|
||||
"/js/main.f51962c478c3f07fefb9.hot-update.js": "/js/main.f51962c478c3f07fefb9.hot-update.js",
|
||||
"/js/main.5a2bf9b87650aff64fd5.hot-update.js": "/js/main.5a2bf9b87650aff64fd5.hot-update.js",
|
||||
"/js/main.f054d8b8dd508b0f990c.hot-update.js": "/js/main.f054d8b8dd508b0f990c.hot-update.js",
|
||||
"/js/main.68dfa850d922b0e6735e.hot-update.js": "/js/main.68dfa850d922b0e6735e.hot-update.js",
|
||||
"/js/main.6503768e6598d7b0f613.hot-update.js": "/js/main.6503768e6598d7b0f613.hot-update.js",
|
||||
"/js/main.ece1a3972ed2db71b251.hot-update.js": "/js/main.ece1a3972ed2db71b251.hot-update.js",
|
||||
"/js/main.11de7137d4e877344840.hot-update.js": "/js/main.11de7137d4e877344840.hot-update.js",
|
||||
"/js/main.fd1a2e92c26d75430cc0.hot-update.js": "/js/main.fd1a2e92c26d75430cc0.hot-update.js",
|
||||
"/js/main.22a9d4bc8715e0d1e6f4.hot-update.js": "/js/main.22a9d4bc8715e0d1e6f4.hot-update.js",
|
||||
"/js/main.5aee59e2daa05a84f23f.hot-update.js": "/js/main.5aee59e2daa05a84f23f.hot-update.js",
|
||||
"/js/main.fcd523fdfaadc502165e.hot-update.js": "/js/main.fcd523fdfaadc502165e.hot-update.js",
|
||||
"/js/main.5b815448277a546420bd.hot-update.js": "/js/main.5b815448277a546420bd.hot-update.js",
|
||||
"/js/main.e8e018712bf8029e01c8.hot-update.js": "/js/main.e8e018712bf8029e01c8.hot-update.js",
|
||||
"/js/main.c6691d9c45c307c43918.hot-update.js": "/js/main.c6691d9c45c307c43918.hot-update.js",
|
||||
"/js/main.5cf4fd56f1898056455a.hot-update.js": "/js/main.5cf4fd56f1898056455a.hot-update.js",
|
||||
"/js/main.658eb718f5a8cb57f236.hot-update.js": "/js/main.658eb718f5a8cb57f236.hot-update.js",
|
||||
"/js/main.9773de534e46d93390ef.hot-update.js": "/js/main.9773de534e46d93390ef.hot-update.js",
|
||||
"/js/main.bf30b07e4dd1995e85a0.hot-update.js": "/js/main.bf30b07e4dd1995e85a0.hot-update.js",
|
||||
"/js/main.7ecc1b7aad3dc3021c98.hot-update.js": "/js/main.7ecc1b7aad3dc3021c98.hot-update.js",
|
||||
"/js/main.4010b76509bf45947101.hot-update.js": "/js/main.4010b76509bf45947101.hot-update.js",
|
||||
"/js/main.65a3d466223e5e6c1beb.hot-update.js": "/js/main.65a3d466223e5e6c1beb.hot-update.js",
|
||||
"/js/main.3eb9149083fb318a0963.hot-update.js": "/js/main.3eb9149083fb318a0963.hot-update.js",
|
||||
"/js/main.6ae22926ae15c1767990.hot-update.js": "/js/main.6ae22926ae15c1767990.hot-update.js",
|
||||
"/js/main.9c5390bef5da0e9e6925.hot-update.js": "/js/main.9c5390bef5da0e9e6925.hot-update.js",
|
||||
"/js/main.242ffff65076162bec7c.hot-update.js": "/js/main.242ffff65076162bec7c.hot-update.js",
|
||||
"/js/main.3733c1423bed0ce7e0f9.hot-update.js": "/js/main.3733c1423bed0ce7e0f9.hot-update.js",
|
||||
"/js/main.1c655c61e7eaa93d426b.hot-update.js": "/js/main.1c655c61e7eaa93d426b.hot-update.js",
|
||||
"/js/main.8da9a71671e9894184cc.hot-update.js": "/js/main.8da9a71671e9894184cc.hot-update.js",
|
||||
"/js/main.effea649478a1ff5afc3.hot-update.js": "/js/main.effea649478a1ff5afc3.hot-update.js",
|
||||
"/js/main.2feca9387b29299382e8.hot-update.js": "/js/main.2feca9387b29299382e8.hot-update.js",
|
||||
"/js/main.524799cef36fd2add28a.hot-update.js": "/js/main.524799cef36fd2add28a.hot-update.js",
|
||||
"/js/main.321e16ed74b62b1bc65a.hot-update.js": "/js/main.321e16ed74b62b1bc65a.hot-update.js",
|
||||
"/js/main.2d3b0e5931d977aeff92.hot-update.js": "/js/main.2d3b0e5931d977aeff92.hot-update.js",
|
||||
"/js/main.78defc1a15bab59f210e.hot-update.js": "/js/main.78defc1a15bab59f210e.hot-update.js",
|
||||
"/js/main.f52c39d754bee5a76d48.hot-update.js": "/js/main.f52c39d754bee5a76d48.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.32a53e956e9fc646121b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.32a53e956e9fc646121b.hot-update.js",
|
||||
"/js/main.f8f6d9903beeb494c2c4.hot-update.js": "/js/main.f8f6d9903beeb494c2c4.hot-update.js",
|
||||
"/chunks/upgrade-billing.be406f8d88294226946e.hot-update.js": "/chunks/upgrade-billing.be406f8d88294226946e.hot-update.js",
|
||||
"/js/main.bbdfe1e59fd5beefb761.hot-update.js": "/js/main.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/app-language.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/app-language.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/app-settings.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/app-settings.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/dashboard.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/dashboard.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/invoices.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/invoices.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/page-edit.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/page-edit.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/pages.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/pages.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/plan.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/plan.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/plan-create.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/plan-create.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/plans.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/plans.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/settings.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/settings.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/upgrade-plan.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/upgrade-plan.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/user.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/user.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/user-create.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/user-create.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/chunks/users.bbdfe1e59fd5beefb761.hot-update.js": "/chunks/users.bbdfe1e59fd5beefb761.hot-update.js",
|
||||
"/js/main.01104cf99d2419e4cff5.hot-update.js": "/js/main.01104cf99d2419e4cff5.hot-update.js",
|
||||
"/chunks/user-detail.70aa7cd8919409d5329d.hot-update.js": "/chunks/user-detail.70aa7cd8919409d5329d.hot-update.js",
|
||||
"/chunks/user-detail.abab6cd92cf0ce6e5da1.hot-update.js": "/chunks/user-detail.abab6cd92cf0ce6e5da1.hot-update.js",
|
||||
"/chunks/user-detail.3aeb7d2c0d711416d022.hot-update.js": "/chunks/user-detail.3aeb7d2c0d711416d022.hot-update.js",
|
||||
"/js/main.c3bb4db3a10c3e7da846.hot-update.js": "/js/main.c3bb4db3a10c3e7da846.hot-update.js",
|
||||
"/chunks/user-detail.b8273c0cbf64d8c37f0d.hot-update.js": "/chunks/user-detail.b8273c0cbf64d8c37f0d.hot-update.js",
|
||||
"/js/main.8d2870a7f6cd043b1b56.hot-update.js": "/js/main.8d2870a7f6cd043b1b56.hot-update.js",
|
||||
"/chunks/user-detail.481fcbccadf1d85bb84d.hot-update.js": "/chunks/user-detail.481fcbccadf1d85bb84d.hot-update.js",
|
||||
"/chunks/user-create.21af3e31acb57affbb30.hot-update.js": "/chunks/user-create.21af3e31acb57affbb30.hot-update.js",
|
||||
"/chunks/platform.82ef2de1f5d5a15e5446.hot-update.js": "/chunks/platform.82ef2de1f5d5a15e5446.hot-update.js",
|
||||
"/js/main.d4655186eae7d4540c7f.hot-update.js": "/js/main.d4655186eae7d4540c7f.hot-update.js",
|
||||
"/js/main.64ddd23eefa675cfaab6.hot-update.js": "/js/main.64ddd23eefa675cfaab6.hot-update.js",
|
||||
"/chunks/platform.64ddd23eefa675cfaab6.hot-update.js": "/chunks/platform.64ddd23eefa675cfaab6.hot-update.js",
|
||||
"/js/main.db75ecd9cb148f639799.hot-update.js": "/js/main.db75ecd9cb148f639799.hot-update.js",
|
||||
"/chunks/platform.03e534084ee57f0df865.hot-update.js": "/chunks/platform.03e534084ee57f0df865.hot-update.js",
|
||||
"/js/main.cad4d506db65c874752f.hot-update.js": "/js/main.cad4d506db65c874752f.hot-update.js",
|
||||
"/js/main.e0ca35e6005ab952ca74.hot-update.js": "/js/main.e0ca35e6005ab952ca74.hot-update.js",
|
||||
"/chunks/platform.c9ef0bbe6780298726c3.hot-update.js": "/chunks/platform.c9ef0bbe6780298726c3.hot-update.js",
|
||||
"/js/main.ed1830b2e9923c4fc468.hot-update.js": "/js/main.ed1830b2e9923c4fc468.hot-update.js",
|
||||
"/js/main.2f3472937802bef1d477.hot-update.js": "/js/main.2f3472937802bef1d477.hot-update.js",
|
||||
"/js/main.72a0e44bc3f667c8827e.hot-update.js": "/js/main.72a0e44bc3f667c8827e.hot-update.js",
|
||||
"/js/main.393fa5e7c6f032bd7ed3.hot-update.js": "/js/main.393fa5e7c6f032bd7ed3.hot-update.js",
|
||||
"/chunks/platform.9c847b10ae42904ade0c.hot-update.js": "/chunks/platform.9c847b10ae42904ade0c.hot-update.js",
|
||||
"/js/main.25e97be58e8ad534ac68.hot-update.js": "/js/main.25e97be58e8ad534ac68.hot-update.js",
|
||||
"/chunks/platform.79c947683f7b736dfbf4.hot-update.js": "/chunks/platform.79c947683f7b736dfbf4.hot-update.js",
|
||||
"/js/main.99a27194326c25d6c5f1.hot-update.js": "/js/main.99a27194326c25d6c5f1.hot-update.js",
|
||||
"/js/main.76b686290715137fa46c.hot-update.js": "/js/main.76b686290715137fa46c.hot-update.js",
|
||||
"/js/main.bff53b154a3a16bef585.hot-update.js": "/js/main.bff53b154a3a16bef585.hot-update.js",
|
||||
"/js/main.d1bb5dc97a65d1a1a05e.hot-update.js": "/js/main.d1bb5dc97a65d1a1a05e.hot-update.js",
|
||||
"/js/main.f873615bdd326afe3081.hot-update.js": "/js/main.f873615bdd326afe3081.hot-update.js",
|
||||
"/js/main.048230621fbc0d8c6d6a.hot-update.js": "/js/main.048230621fbc0d8c6d6a.hot-update.js",
|
||||
"/js/main.20aa3ff157dd70285d03.hot-update.js": "/js/main.20aa3ff157dd70285d03.hot-update.js",
|
||||
"/vendors~chunks/admin-account~chunks/app-email~chunks/app-payments~chunks/app-setup~chunks/billings-d~23f47ab3.js": "/vendors~chunks/admin-account~chunks/app-email~chunks/app-payments~chunks/app-setup~chunks/billings-d~23f47ab3.js?id=6e0b5019781341c44a55",
|
||||
"/js/main.2f5369d54fc47cc3613a.hot-update.js": "/js/main.2f5369d54fc47cc3613a.hot-update.js",
|
||||
"/js/main.0b552d8a9f2f71d60a3f.hot-update.js": "/js/main.0b552d8a9f2f71d60a3f.hot-update.js",
|
||||
"/js/main.b6d9a605b27d6f90d3fb.hot-update.js": "/js/main.b6d9a605b27d6f90d3fb.hot-update.js",
|
||||
"/js/main.588244a8f38242c0f498.hot-update.js": "/js/main.588244a8f38242c0f498.hot-update.js",
|
||||
"/js/main.625211bd2d49952ddaec.hot-update.js": "/js/main.625211bd2d49952ddaec.hot-update.js",
|
||||
"/js/main.35317a4f599286d0cc33.hot-update.js": "/js/main.35317a4f599286d0cc33.hot-update.js",
|
||||
"/js/main.a865b9e77d0cdb2d3b26.hot-update.js": "/js/main.a865b9e77d0cdb2d3b26.hot-update.js",
|
||||
"/js/main.6da8349a3377d596fee1.hot-update.js": "/js/main.6da8349a3377d596fee1.hot-update.js",
|
||||
"/js/main.2359a05cb36cbfe74a5d.hot-update.js": "/js/main.2359a05cb36cbfe74a5d.hot-update.js",
|
||||
"/js/main.8afc74651778fba7ba28.hot-update.js": "/js/main.8afc74651778fba7ba28.hot-update.js",
|
||||
"/js/main.434d7133378bdca4046d.hot-update.js": "/js/main.434d7133378bdca4046d.hot-update.js",
|
||||
"/js/main.083f1ce04dbf53d25a69.hot-update.js": "/js/main.083f1ce04dbf53d25a69.hot-update.js",
|
||||
"/js/main.5fd6b0c0ac064f4a2961.hot-update.js": "/js/main.5fd6b0c0ac064f4a2961.hot-update.js",
|
||||
"/js/main.dfdfbf318f0ffeccb0f9.hot-update.js": "/js/main.dfdfbf318f0ffeccb0f9.hot-update.js",
|
||||
"/js/main.80201fafcbad093d3a45.hot-update.js": "/js/main.80201fafcbad093d3a45.hot-update.js",
|
||||
"/js/main.2083d295513550522f63.hot-update.js": "/js/main.2083d295513550522f63.hot-update.js"
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~0d496e20.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~0d496e20.js?id=a9facd8e57a0dd054f8c",
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~7afe9e20.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~7afe9e20.js?id=6d6e7e4191c9e2705c8a",
|
||||
"/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=66afa0e341251a68c3d3"
|
||||
}
|
||||
|
||||
@@ -2,46 +2,46 @@
|
||||
<PopupWrapper name="create-language">
|
||||
|
||||
<!--Title-->
|
||||
<PopupHeader :title="'Create Language'" icon="edit" />
|
||||
<!--TODO: jazyk-->
|
||||
<PopupHeader title="Create Language" icon="edit" />
|
||||
|
||||
<!--Content-->
|
||||
<PopupContent>
|
||||
|
||||
<!--Form to set sharing-->
|
||||
<ValidationObserver @submit.prevent="createFolder" ref="createForm" v-slot="{ invalid }" tag="form" class="form-wrapper">
|
||||
<ValidationObserver @submit.prevent="createLanguage" ref="createForm" v-slot="{ invalid }" tag="form" class="form-wrapper">
|
||||
|
||||
<!--Set password-->
|
||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper password" name="Language Name" rules="required" v-slot="{ errors }">
|
||||
<label class="input-label">Type Name:</label>
|
||||
<input v-model="name" :class="{'is-error': errors[0]}" type="text" ref="input" placeholder="Type Language Name">
|
||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||
</ValidationProvider>
|
||||
|
||||
<!--Set password-->
|
||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper password" name="Language Locale" rules="required" v-slot="{ errors }">
|
||||
<label class="input-label">Select Locale:</label>
|
||||
<SelectInput v-model="locale" :options="allLocals" placeholder="Select Language Locale" :isError="errors[0]"/>
|
||||
<SelectInput v-model="form.locale" :options="locals" placeholder="Select Language Locale" :isError="errors[0]" />
|
||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||
</ValidationProvider>
|
||||
|
||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper password" name="Language Name" rules="required" v-slot="{ errors }">
|
||||
<label class="input-label">Type Name:</label>
|
||||
<input v-model="form.name" :class="{'is-error': errors[0]}" type="text" ref="input" class="focus-border-theme" placeholder="Type Language Name">
|
||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||
</ValidationProvider>
|
||||
|
||||
</ValidationObserver>
|
||||
</PopupContent>
|
||||
|
||||
<!--Actions-->
|
||||
<PopupActions>
|
||||
<ButtonBase
|
||||
class="popup-button"
|
||||
@click.native="$closePopup()"
|
||||
button-style="secondary"
|
||||
>Cancel
|
||||
class="popup-button"
|
||||
@click.native="$closePopup()"
|
||||
button-style="secondary"
|
||||
>
|
||||
Cancel
|
||||
</ButtonBase>
|
||||
<ButtonBase
|
||||
class="popup-button"
|
||||
@click.native="createLanguage"
|
||||
button-style="theme"
|
||||
:loading="isLoading"
|
||||
:disabled="isLoading"
|
||||
>Create Language
|
||||
class="popup-button"
|
||||
@click.native="createLanguage"
|
||||
button-style="theme"
|
||||
:loading="isLoading"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
Create Language
|
||||
</ButtonBase>
|
||||
</PopupActions>
|
||||
</PopupWrapper>
|
||||
@@ -74,10 +74,12 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
name: undefined,
|
||||
locale: undefined,
|
||||
form: {
|
||||
name: undefined,
|
||||
locale: undefined,
|
||||
},
|
||||
isLoading: false,
|
||||
allLocals: [
|
||||
locals: [
|
||||
{
|
||||
value: "ab",
|
||||
label: "Abkhaz"
|
||||
@@ -823,43 +825,43 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
async createLanguage() {
|
||||
|
||||
|
||||
// Validate fields
|
||||
const isValid = await this.$refs.createForm.validate();
|
||||
|
||||
if (isValid) {
|
||||
this.isLoading = true
|
||||
this.isLoading = true
|
||||
|
||||
axios.post('/api/languages', {
|
||||
name: this.name,
|
||||
locale: this.locale
|
||||
})
|
||||
.then((response) => {
|
||||
axios.post('/api/admin/languages', this.form)
|
||||
.then(response => {
|
||||
events.$emit('reload:languages', response.data)
|
||||
})
|
||||
.catch(() => {
|
||||
this.$isSomethingWrong()
|
||||
})
|
||||
.finally(() => {
|
||||
|
||||
events.$emit('add-language', response.data)
|
||||
|
||||
})
|
||||
.catch(() => Vue.prototype.$isSomethingWrong())
|
||||
.finally(() => {
|
||||
this.form = {
|
||||
name: undefined,
|
||||
locale: undefined,
|
||||
}
|
||||
|
||||
this.name = undefined
|
||||
this.locale = undefined
|
||||
this.isLoading = false
|
||||
this.$closePopup()
|
||||
})
|
||||
this.isLoading = false
|
||||
this.$closePopup()
|
||||
})
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
mounted() {
|
||||
this.name = undefined,
|
||||
this.locale = undefined
|
||||
this.locale = undefined
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "@assets/vue-file-manager/_inapp-forms.scss";
|
||||
@import '@assets/vue-file-manager/_forms';
|
||||
@import "@assets/vuefilemanager/_inapp-forms.scss";
|
||||
@import '@assets/vuefilemanager/_forms';
|
||||
|
||||
.item-thumbnail {
|
||||
margin-bottom: 20px;
|
||||
|
||||
108
resources/js/components/Others/Forms/SearchInput.vue
Normal file
108
resources/js/components/Others/Forms/SearchInput.vue
Normal file
@@ -0,0 +1,108 @@
|
||||
<template>
|
||||
<div class="search-bar">
|
||||
<div v-if="!query" class="icon">
|
||||
<search-icon size="19" />
|
||||
</div>
|
||||
<div @click="clearInput" v-if="query" class="icon">
|
||||
<x-icon class="pointer" size="19"></x-icon>
|
||||
</div>
|
||||
<input
|
||||
v-model="query"
|
||||
@input="$emit('input', query)"
|
||||
class="query"
|
||||
type="text"
|
||||
name="searchInput"
|
||||
placeholder="Search Language Strings..."
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {SearchIcon, XIcon} from 'vue-feather-icons'
|
||||
|
||||
export default {
|
||||
name: 'SearchInput',
|
||||
components: {
|
||||
SearchIcon,
|
||||
XIcon,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
query: undefined,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clearInput() {
|
||||
this.query = undefined
|
||||
|
||||
this.$emit('reset-query')
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '@assets/vuefilemanager/_variables';
|
||||
@import '@assets/vuefilemanager/_mixins';
|
||||
@import '@assets/vuefilemanager/_forms';
|
||||
|
||||
.search-bar {
|
||||
padding: 7px 0px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
border-radius: 8px;
|
||||
|
||||
input {
|
||||
background: $light_background;
|
||||
border-radius: 8px;
|
||||
outline: 0;
|
||||
padding: 9px 20px 9px 43px;
|
||||
font-weight: 700;
|
||||
@include font-size(16);
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
min-width: 175px;
|
||||
transition: 0.15s all ease;
|
||||
border: 1px solid transparent;
|
||||
-webkit-appearance: none;
|
||||
box-shadow: none;
|
||||
|
||||
&::placeholder {
|
||||
color: $light_text;
|
||||
@include font-size(14);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border: 1px solid $theme;
|
||||
box-shadow: 0 0 7px rgba($theme, 0.3);
|
||||
}
|
||||
|
||||
&:focus + .icon {
|
||||
path {
|
||||
fill: $theme;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 11px 15px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
circle,
|
||||
line {
|
||||
color: $light_text;
|
||||
}
|
||||
|
||||
.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -1,8 +1,14 @@
|
||||
<template>
|
||||
<section id="viewport">
|
||||
|
||||
<!--Confirm Popup-->
|
||||
<Confirm />
|
||||
|
||||
<!-- Create language popup -->
|
||||
<CreateLanguage/>
|
||||
|
||||
<!--Navigation Sidebar-->
|
||||
<MenuBar />
|
||||
<MenuBar/>
|
||||
|
||||
<ContentSidebar>
|
||||
|
||||
@@ -82,7 +88,9 @@
|
||||
<script>
|
||||
import { UsersIcon, SettingsIcon, FileTextIcon, CreditCardIcon, DatabaseIcon, BoxIcon, MonitorIcon, GlobeIcon } from 'vue-feather-icons'
|
||||
import ContentSidebar from '@/components/Sidebar/ContentSidebar'
|
||||
import CreateLanguage from '@/components/Others/CreateLanguage'
|
||||
import ContentGroup from '@/components/Sidebar/ContentGroup'
|
||||
import Confirm from '@/components/Others/Popup/Confirm'
|
||||
import MenuBar from '@/components/Sidebar/MenuBar'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
@@ -92,6 +100,7 @@
|
||||
...mapGetters(['config']),
|
||||
},
|
||||
components: {
|
||||
CreateLanguage,
|
||||
ContentSidebar,
|
||||
CreditCardIcon,
|
||||
FileTextIcon,
|
||||
@@ -100,9 +109,10 @@
|
||||
SettingsIcon,
|
||||
MonitorIcon,
|
||||
UsersIcon,
|
||||
GlobeIcon,
|
||||
Confirm,
|
||||
MenuBar,
|
||||
BoxIcon,
|
||||
GlobeIcon
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,161 +1,246 @@
|
||||
<template>
|
||||
<div id="single-page">
|
||||
<div id="page-content">
|
||||
<MobileHeader :title="$t($router.currentRoute.meta.title)" />
|
||||
|
||||
<div class="wrapper">
|
||||
<Spinner v-if="! isLoadedLanguages" />
|
||||
<div v-if="isLoadedLanguages" class="side-content">
|
||||
<PageHeader :can-back="true" :title="$t($router.currentRoute.meta.title)" />
|
||||
<MobileHeader title="Languages" />
|
||||
<PageHeader title="Languages" />
|
||||
|
||||
<div class="languages-wrapper page-tab from-fixed-width">
|
||||
<div class="language-label-wrapper">
|
||||
<label class="language-label">Languages</label>
|
||||
</div>
|
||||
<div v-if="languages" class="content-page">
|
||||
|
||||
<!-- Languages -->
|
||||
<div class="all-language-wrapper">
|
||||
<div @click="openLanguage(language)" v-for="language in languages" :key="language.id">
|
||||
<div class="language">
|
||||
<label class="name" :class="{'active' :activeLanguage.locale === language.locale}">
|
||||
{{ language.name }}
|
||||
<!--Sidebar-->
|
||||
<div class="side-content">
|
||||
|
||||
<div class="sticky top-65">
|
||||
<div class="languages-wrapper page-tab from-fixed-width">
|
||||
<div class="language-label-wrapper">
|
||||
<label class="language-label">Languages</label>
|
||||
</div>
|
||||
|
||||
<!-- Languages -->
|
||||
<div class="all-language-wrapper">
|
||||
<div @click="getLanguage(language)" v-for="language in languages" :key="language.data.id" class="language">
|
||||
<label class="name" :class="{'active': selectedLanguage && selectedLanguage.data.attributes.locale === language.data.attributes.locale}">
|
||||
{{ language.data.attributes.name }}
|
||||
</label>
|
||||
<x-icon v-if="language.locale !== 'en' && language.locale !== current_language"
|
||||
@click.stop="deleteLanguageConfirm(language)"
|
||||
class="icon" size="17" />
|
||||
<x-icon
|
||||
v-if="language.data.attributes.locale !== 'en'"
|
||||
@click.stop="deleteLanguage(language)"
|
||||
class="icon"
|
||||
size="17"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<MobileActionButton @click.native="createLanguage" icon="plus" class="button-add-language">
|
||||
Add Language
|
||||
</MobileActionButton>
|
||||
<MobileActionButton @click.native="createLanguage" icon="plus" class="button-add-language">
|
||||
Add Language
|
||||
</MobileActionButton>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Strings -->
|
||||
<!--<LanguageStrings :active-language="activeLanguage" :set-language="current_language" />-->
|
||||
<!--Content-->
|
||||
<div class="form block-form content">
|
||||
|
||||
<div v-if="! selectedLanguage">
|
||||
<Spinner />
|
||||
</div>
|
||||
|
||||
<div v-if="selectedLanguage">
|
||||
<FormLabel icon="settings">
|
||||
Language Settings
|
||||
</FormLabel>
|
||||
|
||||
<!--Set default language-->
|
||||
<div class="block-wrapper">
|
||||
<div class="input-wrapper">
|
||||
<div class="inline-wrapper">
|
||||
<div class="switch-label">
|
||||
<label class="input-label">
|
||||
Set as Default Language:
|
||||
</label>
|
||||
</div>
|
||||
<SwitchInput
|
||||
@input="$updateText(`/admin/languages/${selectedLanguage.data.id}`, 'language', selectedLanguage.data.attributes.locale)"
|
||||
class="switch"
|
||||
:class="{'disable-switch': selectedLanguage.data.attributes.locale !== }"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--Language name-->
|
||||
<div class="block-wrapper">
|
||||
<label>Language Name:</label>
|
||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Description" rules="required" v-slot="{ errors }">
|
||||
<input @input="$updateText(`/admin/languages/${selectedLanguage.data.id}`, 'name', selectedLanguage.data.attributes.name)" v-model="selectedLanguage.data.attributes.name"
|
||||
:placeholder="$t('admin_settings.appearance.description_plac')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||
</ValidationProvider>
|
||||
</div>
|
||||
|
||||
<!--Translations-->
|
||||
<FormLabel class="mt-70">
|
||||
Edit Translations
|
||||
</FormLabel>
|
||||
|
||||
<!--Inline Search-->
|
||||
<div class="block-wrapper sticky top-50 search-bar-wrapper">
|
||||
<SearchInput v-model="query" @reset-query="query = ''" />
|
||||
</div>
|
||||
|
||||
<div class="block-wrapper" v-for="(translation, key) in translationList" :key="key">
|
||||
<label> {{ defaultTranslations[key] }}:</label>
|
||||
<ValidationProvider tag="div" class="input-wrapper" name="Language string" rules="required" v-slot="{ errors }">
|
||||
<input type="text"
|
||||
:class="{'is-error': errors[0]}"
|
||||
class="focus-border-theme"
|
||||
@input="$updateText(`/admin/languages/${selectedLanguage.data.id}/strings`, key, selectedLanguage.data.attributes.translations[key])"
|
||||
v-model="selectedLanguage.data.attributes.translations[key]"
|
||||
/>
|
||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||
</ValidationProvider>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Spinner v-if="! languages" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import LanguageStrings from '@/views/Admin/Languages/LanguageStrings'
|
||||
import MobileHeader from '@/components/Mobile/MobileHeader'
|
||||
import ButtonBase from '@/components/FilesView/ButtonBase'
|
||||
import MobileActionButton from '@/components/FilesView/MobileActionButton'
|
||||
import PageHeader from '@/components/Others/PageHeader'
|
||||
import Spinner from '@/components/FilesView/Spinner'
|
||||
import {PlusIcon, XIcon} from 'vue-feather-icons'
|
||||
import {events} from '@/bus'
|
||||
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
|
||||
import MobileActionButton from '@/components/FilesView/MobileActionButton'
|
||||
import SwitchInput from '@/components/Others/Forms/SwitchInput'
|
||||
import SearchInput from '@/components/Others/Forms/SearchInput'
|
||||
import FormLabel from '@/components/Others/Forms/FormLabel'
|
||||
import MobileHeader from '@/components/Mobile/MobileHeader'
|
||||
import ButtonBase from '@/components/FilesView/ButtonBase'
|
||||
import PageHeader from '@/components/Others/PageHeader'
|
||||
import Spinner from '@/components/FilesView/Spinner'
|
||||
import {PlusIcon, XIcon} from 'vue-feather-icons'
|
||||
import {debounce, omitBy} from 'lodash'
|
||||
import {events} from '@/bus'
|
||||
|
||||
export default {
|
||||
name: 'Language',
|
||||
components: {
|
||||
MobileActionButton,
|
||||
LanguageStrings,
|
||||
MobileHeader,
|
||||
ButtonBase,
|
||||
PageHeader,
|
||||
PlusIcon,
|
||||
Spinner,
|
||||
XIcon
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
languages: undefined,
|
||||
|
||||
activeLanguage: undefined,
|
||||
languagesStrings: undefined,
|
||||
current_language: undefined,
|
||||
isLoadedLanguages: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deleteLanguageConfirm(language) {
|
||||
events.$emit('confirm:open', {
|
||||
title: `Delete ${language.name} language?`,
|
||||
message: 'Your language will be permanently deleted.',
|
||||
buttonColor: 'danger-solid',
|
||||
action: language
|
||||
})
|
||||
export default {
|
||||
name: 'Language',
|
||||
components: {
|
||||
ValidationProvider,
|
||||
ValidationObserver,
|
||||
MobileActionButton,
|
||||
MobileHeader,
|
||||
SearchInput,
|
||||
SwitchInput,
|
||||
ButtonBase,
|
||||
PageHeader,
|
||||
FormLabel,
|
||||
PlusIcon,
|
||||
Spinner,
|
||||
XIcon
|
||||
},
|
||||
deleteLanguage(language) {
|
||||
axios.delete(`/api/admin/languages/${language.id}`)
|
||||
.then(() => {
|
||||
this.getLanguages()
|
||||
})
|
||||
data() {
|
||||
return {
|
||||
defaultTranslations: undefined,
|
||||
selectedLanguage: undefined,
|
||||
occurrences: undefined,
|
||||
languages: undefined,
|
||||
query: '',
|
||||
}
|
||||
},
|
||||
createLanguage() {
|
||||
events.$emit('popup:open', {name: 'create-language'})
|
||||
watch: {
|
||||
query: debounce(function (val) {
|
||||
this.occurrences = omitBy(this.selectedLanguage.data.attributes.translations, (string, key) => {
|
||||
return !string.toLowerCase().includes(val.toLowerCase())
|
||||
})
|
||||
}, 300),
|
||||
},
|
||||
getLanguages() {
|
||||
axios
|
||||
.get('/api/admin/languages')
|
||||
.then(response => {
|
||||
this.languages = response.data.data
|
||||
|
||||
this.activeLanguage = response.data.languages[0]
|
||||
|
||||
this.current_language = response.data.meta.current_language
|
||||
})
|
||||
.catch(() => {
|
||||
this.$isSomethingWrong()
|
||||
})
|
||||
.finally(() => {
|
||||
this.isLoadedLanguages = true
|
||||
})
|
||||
computed: {
|
||||
translationList() {
|
||||
return this.occurrences && this.query !== ''
|
||||
? this.occurrences
|
||||
: this.selectedLanguage.data.attributes.translations
|
||||
}
|
||||
},
|
||||
openLanguage(language) {
|
||||
this.activeLanguage = language
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getLanguages()
|
||||
methods: {
|
||||
getLanguages() {
|
||||
axios
|
||||
.get('/api/admin/languages')
|
||||
.then(response => {
|
||||
this.languages = response.data.data
|
||||
this.defaultTranslations = response.data.meta.default_translations
|
||||
this.selectedLanguage = response.data.meta.current_language
|
||||
})
|
||||
.catch(() => {
|
||||
this.$isSomethingWrong()
|
||||
})
|
||||
},
|
||||
getLanguage(language) {
|
||||
this.selectedLanguage = undefined
|
||||
|
||||
events.$on('add-language', () => {
|
||||
axios
|
||||
.get(`/api/admin/languages/${language.data.id}`)
|
||||
.then(response => {
|
||||
this.selectedLanguage = response.data
|
||||
})
|
||||
.catch(() => {
|
||||
this.$isSomethingWrong()
|
||||
})
|
||||
},
|
||||
deleteLanguage(language) {
|
||||
events.$emit('confirm:open', {
|
||||
title: `Delete "${language.data.attributes.name}" language?`,
|
||||
message: 'Your language will be permanently deleted.',
|
||||
buttonColor: 'danger-solid',
|
||||
action: {
|
||||
id: language.data.id,
|
||||
operation: 'delete-language'
|
||||
}
|
||||
})
|
||||
},
|
||||
createLanguage() {
|
||||
events.$emit('popup:open', {name: 'create-language'})
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.getLanguages()
|
||||
})
|
||||
|
||||
events.$on('action:confirmed', language => {
|
||||
this.deleteLanguage(language)
|
||||
})
|
||||
events.$on('reload:languages', () => this.getLanguages())
|
||||
|
||||
events.$on('language-name:update', (language) => {
|
||||
events.$on('action:confirmed', data => {
|
||||
|
||||
let index = _.findIndex(this.languages, function (item) {
|
||||
return item.id === language.id
|
||||
if (data.operation === 'delete-language')
|
||||
axios.delete(`/api/admin/languages/${data.id}`)
|
||||
.then(() => this.getLanguages())
|
||||
.catch(() => this.$isSomethingWrong())
|
||||
})
|
||||
|
||||
this.languages[index].name = language.name
|
||||
})
|
||||
|
||||
events.$on('language:set-as-default', (locale) => {
|
||||
this.current_language = locale
|
||||
})
|
||||
},
|
||||
destroyed() {
|
||||
events.$off('action:confirmed')
|
||||
},
|
||||
}
|
||||
},
|
||||
destroyed() {
|
||||
events.$off('action:confirmed')
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '@assets/vuefilemanager/_variables';
|
||||
@import '@assets/vuefilemanager/_mixins';
|
||||
@import '@assets/vuefilemanager/_forms';
|
||||
@import '@assets/vuefilemanager/_vuewind';
|
||||
|
||||
#single-page {
|
||||
height: 100%;
|
||||
|
||||
#page-content {
|
||||
height: 100%;
|
||||
}
|
||||
.search-bar-wrapper {
|
||||
background: white;
|
||||
padding: 10px 10px 0 10px;
|
||||
margin: 0 -10px;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
.content-page {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
max-width: 1000px;
|
||||
margin: 20px auto 0;
|
||||
|
||||
.content {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.side-content {
|
||||
@@ -163,22 +248,9 @@ export default {
|
||||
|
||||
.button-add-language {
|
||||
margin-top: 30px;
|
||||
|
||||
|
||||
/deep/ .content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@include font-size(14);
|
||||
font-weight: 700;
|
||||
|
||||
.icon {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.languages-wrapper {
|
||||
margin-top: 70px;
|
||||
|
||||
.language-label-wrapper {
|
||||
margin-bottom: 5px;
|
||||
@@ -261,6 +333,7 @@ export default {
|
||||
color: $dark_mode_text_primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.language-label {
|
||||
color: $dark_mode_text_secondary !important;
|
||||
}
|
||||
|
||||
@@ -1,397 +0,0 @@
|
||||
<template>
|
||||
<!-- Serach bar -->
|
||||
<div v-if="strings" class="language-strings-wrapper form">
|
||||
<div class="search-bar-wrapper">
|
||||
<div class="search-bar">
|
||||
<div v-if="!searchInput" class="icon" >
|
||||
<search-icon size="19"></search-icon>
|
||||
</div>
|
||||
<div @click="resetInput" v-if="searchInput" class="icon">
|
||||
<x-icon class="pointer" size="19"></x-icon>
|
||||
</div>
|
||||
<input
|
||||
v-model="searchInput"
|
||||
@input="searchStrings"
|
||||
class="query"
|
||||
type="text"
|
||||
name="searchInput"
|
||||
placeholder="Search Language Strings..."
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Spinner v-if="!loadedStrings"/>
|
||||
|
||||
<!-- Set Language as default switch -->
|
||||
<div v-if="loadedStrings" class="form block-form">
|
||||
<FormLabel class="mt-70" icon="settings">Language Settings</FormLabel>
|
||||
<div class="block-wrapper">
|
||||
<div class="input-wrapper">
|
||||
<div class="inline-wrapper">
|
||||
<div class="switch-label">
|
||||
<label class="input-label">
|
||||
Set as Default Language:
|
||||
</label>
|
||||
</div>
|
||||
<SwitchInput
|
||||
@input="updateLanguageSetting"
|
||||
class="switch"
|
||||
:class="{'disable-switch': languageSettingHandle }"
|
||||
:state="languageSettingHandle"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Language name -->
|
||||
<div class="block-wrapper">
|
||||
<label> Language Name:</label>
|
||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Language Name" rules="required" v-slot="{ errors }">
|
||||
<input type="text"
|
||||
v-model="language.name"
|
||||
@input="updateName"
|
||||
:class="{'is-error': errors[0]}"
|
||||
/>
|
||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||
</ValidationProvider>
|
||||
</div>
|
||||
|
||||
<!-- Strings -->
|
||||
<FormLabel class="mt-70">Language Strings</FormLabel>
|
||||
<div v-if="!loadSearch || filteredStrings.length === 0 && !searchInput" class="spinner-wrapper">
|
||||
<Spinner class="spinner" />
|
||||
</div>
|
||||
|
||||
<div v-if="loadSearch && filteredStrings.length > 0">
|
||||
<div class="block-wrapper string" v-for="(string,index) in filteredStrings" :key="index">
|
||||
<label> {{string.value}}:</label>
|
||||
<ValidationProvider tag="div" class="input-wrapper" name="Language string" rules="required" v-slot="{ errors }">
|
||||
<input type="text"
|
||||
:class="{'is-error': errors[0]}"
|
||||
@input="updateString(string.key)"
|
||||
v-model="strings[getIndex(string.key)].value"
|
||||
/>
|
||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||
</ValidationProvider>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Not Fount -->
|
||||
<div class="not-found-wrapper" v-if="loadSearch && filteredStrings.length === 0 && searchInput">
|
||||
<span class="not-found">Not Found</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ValidationProvider, ValidationObserver } from 'vee-validate/dist/vee-validate.full'
|
||||
import SwitchInput from '@/components/Others/Forms/SwitchInput'
|
||||
import FormLabel from '@/components/Others/Forms/FormLabel'
|
||||
import { SearchIcon, XIcon } from 'vue-feather-icons'
|
||||
import Spinner from '@/components/FilesView/Spinner'
|
||||
import { events } from '@/bus'
|
||||
import lodash from 'lodash'
|
||||
|
||||
|
||||
export default {
|
||||
name: 'LanguageStrings',
|
||||
props: [ 'activeLanguage', 'setLanguage' ],
|
||||
components: {
|
||||
ValidationProvider,
|
||||
ValidationObserver,
|
||||
SwitchInput,
|
||||
SearchIcon,
|
||||
FormLabel,
|
||||
Spinner,
|
||||
XIcon,
|
||||
},
|
||||
computed: {
|
||||
languageSettingHandle() {
|
||||
return this.language.locale === this.setLanguage
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
defaultStrings: [],
|
||||
filteredStrings: [],
|
||||
loadSearch: false,
|
||||
loadedStrings: false,
|
||||
strings: undefined,
|
||||
language: undefined,
|
||||
searchInput: '',
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
activeLanguage () {
|
||||
this.getLanguageStrings(this.activeLanguage)
|
||||
|
||||
this.searchInput = ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateLanguageSetting() {
|
||||
|
||||
this.$updateText('/settings', 'language', this.language.locale)
|
||||
|
||||
events.$emit('language:set-as-default', this.language.locale)
|
||||
|
||||
this.$loadLanguage(this.language.locale)
|
||||
},
|
||||
resetInput(){
|
||||
|
||||
this.searchInput = ''
|
||||
|
||||
this.searchStrings()
|
||||
},
|
||||
getIndex(key){
|
||||
|
||||
if(this.strings)
|
||||
return _.findIndex(this.strings, function(string) { return string.key === key })
|
||||
},
|
||||
updateName() {
|
||||
|
||||
this.$updateText(`/languages/${this.language.id}`, 'name', this.language.name)
|
||||
|
||||
events.$emit('language-name:update', this.language)
|
||||
},
|
||||
updateString (key) {
|
||||
|
||||
// Return if the input is empty
|
||||
if(! this.strings[this.getIndex(key)].value) return
|
||||
|
||||
this.$updateText(
|
||||
`/languages/${this.language.id}/string`, `${key}`, this.strings[this.getIndex(key)].value,
|
||||
)
|
||||
},
|
||||
searchStrings() {
|
||||
|
||||
this.loadSearch = false
|
||||
|
||||
this.filteredStrings = []
|
||||
|
||||
this.filterStrings()
|
||||
|
||||
},
|
||||
filterStrings: _.debounce(function () {
|
||||
|
||||
this.filteredStrings = this.defaultStrings.filter(string => string.value.toLowerCase().includes( this.searchInput.toLowerCase() ))
|
||||
|
||||
this.loadSearch = true
|
||||
|
||||
}, 200),
|
||||
getLanguageStrings (language) {
|
||||
|
||||
this.loadedStrings = false
|
||||
|
||||
this.defaultStrings = []
|
||||
this.filteredStrings= []
|
||||
|
||||
axios
|
||||
.get(`/api/languages/${language.id}/strings`)
|
||||
.then(response => {
|
||||
|
||||
this.strings = response.data.translated_strings.language_strings
|
||||
|
||||
this.language = {
|
||||
'id': response.data.translated_strings.id,
|
||||
'name': response.data.translated_strings.name,
|
||||
'locale': response.data.translated_strings.locale,
|
||||
}
|
||||
|
||||
// Make from JSON object array of objects
|
||||
for (const [key, value] of Object.entries(response.data.default_strings)) {
|
||||
this.defaultStrings.push({
|
||||
'key': key,
|
||||
'value': value,
|
||||
})
|
||||
}
|
||||
|
||||
this.filterStrings()
|
||||
})
|
||||
.catch(() => Vue.prototype.$isSomethingWrong())
|
||||
.finally(() => {
|
||||
this.loadedStrings = true
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@import '@assets/vuefilemanager/_variables';
|
||||
@import '@assets/vuefilemanager/_mixins';
|
||||
@import '@assets/vuefilemanager/_forms';
|
||||
|
||||
.spinner-wrapper {
|
||||
position: relative;
|
||||
height: 50%;
|
||||
.spinner {
|
||||
top: 60% !important;
|
||||
}
|
||||
}
|
||||
|
||||
.not-found-wrapper {
|
||||
display: flex;
|
||||
margin-top: 20%;
|
||||
|
||||
.not-found {
|
||||
margin: auto;
|
||||
font-weight: 700;
|
||||
padding: 10px;
|
||||
border-radius: 8px;
|
||||
background: $light_background;
|
||||
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.12);
|
||||
}
|
||||
}
|
||||
|
||||
.string:last-child {
|
||||
margin-bottom: 32px !important;
|
||||
}
|
||||
|
||||
.block-form {
|
||||
padding: 1px;
|
||||
height: 100%;
|
||||
}
|
||||
.disable-switch {
|
||||
cursor: not-allowed;
|
||||
|
||||
/deep/.text-right {
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
.language-strings-wrapper {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
|
||||
.block-form{
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
.search-bar-wrapper {
|
||||
padding: 7px 0px;
|
||||
}
|
||||
|
||||
.search-bar {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
border-radius: 8px;
|
||||
|
||||
input {
|
||||
background: $light-background;
|
||||
border-radius: 8px;
|
||||
outline: 0;
|
||||
padding: 9px 20px 9px 43px;
|
||||
font-weight: 700;
|
||||
@include font-size(16);
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
min-width: 175px;
|
||||
transition: 0.15s all ease;
|
||||
border: 1px solid transparent;
|
||||
-webkit-appearance: none;
|
||||
|
||||
&::placeholder {
|
||||
color: $light_text;
|
||||
@include font-size(14);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border: 1px solid $theme;
|
||||
box-shadow: 0 0 7px rgba($theme, 0.3);
|
||||
}
|
||||
|
||||
&:focus + .icon {
|
||||
path {
|
||||
fill: $theme;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 11px 15px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
circle,
|
||||
line {
|
||||
color: $light_text;
|
||||
}
|
||||
|
||||
.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @media only screen and (max-width: 1024px) {
|
||||
|
||||
// .search-bar input {
|
||||
// max-width: 190px;
|
||||
// padding-right: 0;
|
||||
// }
|
||||
// }
|
||||
|
||||
@media only screen and (max-width: 690px) {
|
||||
|
||||
// .search-bar {
|
||||
|
||||
// input {
|
||||
// min-width: initial;
|
||||
// width: 100%;
|
||||
// max-width: initial;
|
||||
// padding: 9px 20px 9px 30px;
|
||||
|
||||
// &:focus {
|
||||
// box-shadow: none;
|
||||
// }
|
||||
// }
|
||||
|
||||
// .icon {
|
||||
// padding: 11px 15px 11px 0;
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.search-bar {
|
||||
input {
|
||||
background: $dark_mode_background ;
|
||||
|
||||
&::placeholder {
|
||||
color: $dark_mode_text_secondary;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
circle,
|
||||
line {
|
||||
color: $dark_mode_text_secondary !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.not-found-wrapper {
|
||||
.not-found {
|
||||
background: $dark_mode_foreground !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -45,7 +45,7 @@
|
||||
<keep-alive :include="['Admin', 'Users']">
|
||||
<router-view :class="{'is-scaled-down': isScaledDown}" />
|
||||
</keep-alive>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
23
resources/sass/vuefilemanager/_vuewind.scss
vendored
Normal file
23
resources/sass/vuefilemanager/_vuewind.scss
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
.sticky {
|
||||
position: sticky;
|
||||
}
|
||||
|
||||
.top-10 {
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.top-30 {
|
||||
top: 30px;
|
||||
}
|
||||
|
||||
.top-50 {
|
||||
top: 50px;
|
||||
}
|
||||
|
||||
.top-65 {
|
||||
top: 65px;
|
||||
}
|
||||
|
||||
.top-80 {
|
||||
top: 80px;
|
||||
}
|
||||
@@ -60,7 +60,7 @@ Route::group(['prefix' => 'settings'], function () {
|
||||
|
||||
// Language
|
||||
Route::group(['prefix' => 'languages'], function () {
|
||||
Route::get('/{language}/strings', [LanguageController::class, 'get_language_strings']);
|
||||
Route::get('/{language}', [LanguageController::class, 'get_language']);
|
||||
Route::patch('/{language}/strings', [LanguageController::class, 'update_string']);
|
||||
Route::delete('/{language}', [LanguageController::class, 'delete_language']);
|
||||
Route::patch('/{language}', [LanguageController::class, 'update_language']);
|
||||
|
||||
Reference in New Issue
Block a user