+ 'draftPages' => $draftPages,
+ ];
+
+ if ($homepageOption === 'bookshelves') {
+ $shelves = $this->entityRepo->getAllPaginated('bookshelf', 18);
+ $shelvesViewType = setting()->getUser($this->currentUser, 'bookshelves_view_type', config('app.views.bookshelves', 'grid'));
+ $data = array_merge($commonData, ['shelves' => $shelves, 'shelvesViewType' => $shelvesViewType]);
+ return view('common.home-shelves', $data);
+ }
+
+ if ($homepageOption === 'books') {
+ $books = $this->entityRepo->getAllPaginated('book', 18);
+ $booksViewType = setting()->getUser($this->currentUser, 'books_view_type', config('app.views.books', 'list'));
+ $data = array_merge($commonData, ['books' => $books, 'booksViewType' => $booksViewType]);
+ return view('common.home-book', $data);
+ }
+
+ if ($homepageOption === 'page') {
+ $homepageSetting = setting('app-homepage', '0:');
+ $id = intval(explode(':', $homepageSetting)[0]);
+ $customHomepage = $this->entityRepo->getById('page', $id, false, true);
+ $this->entityRepo->renderPage($customHomepage, true);
+ return view('common.home-custom', array_merge($commonData, ['customHomepage' => $customHomepage]));
+ }
+
+ return view('common.home', $commonData);
+ }
+
+ /**
+ * 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')
+ ];
+ $resp = 'window.translations = ' . json_encode($translations);
+ cache()->put($cacheKey, $resp, 120);
+ }
+
+ return response($resp, 200, [
+ 'Content-Type' => 'application/javascript'