Commit 40a0535f authored by Yassine Doghri's avatar Yassine Doghri
Browse files

feat(public-ui): adapt public podcast and episode pages to wireframes

- adapt wireframes with responsive design
- refactor models methods to cache requests for faster queries
- update public controllers to cache pages while retaining analytics hits
- add platform links to podcast page
- add previous / next episodes in episode page
- update npm packages to latest versions

closes #30, #13
parent 2517808c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ class Contributor extends BaseController

    public function _remap($method, ...$params)
    {
        $this->podcast = (new PodcastModel())->find($params[0]);
        $this->podcast = (new PodcastModel())->getPodcastById($params[0]);

        if (count($params) > 1) {
            if (
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ class Episode extends BaseController

    public function _remap($method, ...$params)
    {
        $this->podcast = (new PodcastModel())->find($params[0]);
        $this->podcast = (new PodcastModel())->getPodcastById($params[0]);

        if (count($params) > 1) {
            if (
+11 −61
Original line number Diff line number Diff line
@@ -25,7 +25,11 @@ class Podcast extends BaseController
    public function _remap($method, ...$params)
    {
        if (count($params) > 0) {
            if (!($this->podcast = (new PodcastModel())->find($params[0]))) {
            if (
                !($this->podcast = (new PodcastModel())->getPodcastById(
                    $params[0]
                ))
            ) {
                throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound();
            }
        }
@@ -58,26 +62,8 @@ class Podcast extends BaseController
    {
        helper(['form', 'misc']);

        $categories = (new CategoryModel())->findAll();
        $languages = (new LanguageModel())->findAll();
        $languageOptions = array_reduce(
            $languages,
            function ($result, $language) {
                $result[$language->code] = $language->native_name;
                return $result;
            },
            []
        );
        $categoryOptions = array_reduce(
            $categories,
            function ($result, $category) {
                $result[$category->id] = lang(
                    'Podcast.category_options.' . $category->code
                );
                return $result;
            },
            []
        );
        $languageOptions = (new LanguageModel())->getLanguageOptions();
        $categoryOptions = (new CategoryModel())->getCategoryOptions();

        $data = [
            'languageOptions' => $languageOptions,
@@ -157,26 +143,8 @@ class Podcast extends BaseController
    {
        helper(['form', 'misc']);

        $categories = (new CategoryModel())->findAll();
        $languages = (new LanguageModel())->findAll();
        $languageOptions = array_reduce(
            $languages,
            function ($result, $language) {
                $result[$language->code] = $language->native_name;
                return $result;
            },
            []
        );
        $categoryOptions = array_reduce(
            $categories,
            function ($result, $category) {
                $result[$category->id] = lang(
                    'Podcast.category_options.' . $category->code
                );
                return $result;
            },
            []
        );
        $languageOptions = (new LanguageModel())->getLanguageOptions();
        $categoryOptions = (new CategoryModel())->getCategoryOptions();

        $data = [
            'languageOptions' => $languageOptions,
@@ -373,26 +341,8 @@ class Podcast extends BaseController
    {
        helper('form');

        $categories = (new CategoryModel())->findAll();
        $languages = (new LanguageModel())->findAll();
        $languageOptions = array_reduce(
            $languages,
            function ($result, $language) {
                $result[$language->code] = $language->native_name;
                return $result;
            },
            []
        );
        $categoryOptions = array_reduce(
            $categories,
            function ($result, $category) {
                $result[$category->id] = lang(
                    'Podcast.category_options.' . $category->code
                );
                return $result;
            },
            []
        );
        $languageOptions = (new LanguageModel())->getLanguageOptions();
        $categoryOptions = (new CategoryModel())->getCategoryOptions();

        $data = [
            'podcast' => $this->podcast,
+6 −2
Original line number Diff line number Diff line
@@ -21,7 +21,9 @@ class PodcastSettings extends BaseController

    public function _remap($method, ...$params)
    {
        if (!($this->podcast = (new PodcastModel())->find($params[0]))) {
        if (
            !($this->podcast = (new PodcastModel())->getPodcastById($params[0]))
        ) {
            throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound();
        }
        unset($params[0]);
@@ -40,7 +42,9 @@ class PodcastSettings extends BaseController

        $data = [
            'podcast' => $this->podcast,
            'platforms' => (new PlatformModel())->getPlatformsWithLinks(),
            'platforms' => (new PlatformModel())->getPlatformsWithLinks(
                $this->podcast->id
            ),
        ];

        replace_breadcrumb_params([0 => $this->podcast->title]);
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ class BaseController extends Controller
     *
     * @var array
     */
    protected $helpers = ['analytics'];
    protected $helpers = ['analytics', 'svg'];

    /**
     * Constructor.
Loading