- /**
- * Get a js representation of the current translations
- * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
- * @throws \Exception
- */
- public function getTranslations()
- {
- $locale = app()->getLocale();
- $cacheKey = 'GLOBAL_TRANSLATIONS_' . $locale;
- if (cache()->has($cacheKey) && config('app.env') !== 'development') {
- $resp = cache($cacheKey);
- } else {
- $translations = [
- // Get only translations which might be used in JS
- 'common' => trans('common'),
- 'components' => trans('components'),
- 'entities' => trans('entities'),
- 'errors' => trans('errors')
- ];
- if ($locale !== 'en') {
- $enTrans = [
- 'common' => trans('common', [], 'en'),
- 'components' => trans('components', [], 'en'),
- 'entities' => trans('entities', [], 'en'),
- 'errors' => trans('errors', [], 'en')
- ];
- $translations = array_replace_recursive($enTrans, $translations);
- }
- $resp = 'window.translations = ' . json_encode($translations);
- cache()->put($cacheKey, $resp, 120);
+ // Add required list ordering & sorting for books & shelves views.
+ if ($homepageOption === 'bookshelves' || $homepageOption === 'books') {
+ $key = $homepageOption;
+ $view = setting()->getForCurrentUser($key . '_view_type');
+ $listOptions = SimpleListOptions::fromRequest($request, $key)->withSortOptions([
+ 'name' => trans('common.sort_name'),
+ 'created_at' => trans('common.sort_created_at'),
+ 'updated_at' => trans('common.sort_updated_at'),
+ ]);
+
+ $commonData = array_merge($commonData, [
+ 'view' => $view,
+ 'listOptions' => $listOptions,
+ ]);