diff --git a/app/Helpers/form_helper.php b/app/Helpers/form_helper.php deleted file mode 100644 index 5b732a2e68406dd99ef6dfc3d16a2dfd0dbee21f..0000000000000000000000000000000000000000 --- a/app/Helpers/form_helper.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -declare(strict_types=1); - -/** - * @copyright 2020 Podlibre - * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 - * @link https://castopod.org/ - */ - -//-------------------------------------------------------------------- - -if (! function_exists('form_dropdown')) { - /** - * Drop-down Menu (based on html select tag) - * - * @param array<string, mixed> $options - * @param array<string|int> $selected - * @param array<string, mixed> $customExtra - */ - function form_dropdown( - string $name = '', - array $options = [], - array $selected = [], - array $customExtra = [] - ): string { - $defaultExtra = [ - 'data-select-text' => lang('Common.forms.multiSelect.selectText'), - 'data-loading-text' => lang('Common.forms.multiSelect.loadingText'), - 'data-no-results-text' => lang('Common.forms.multiSelect.noResultsText'), - 'data-no-choices-text' => lang('Common.forms.multiSelect.noChoicesText'), - 'data-max-item-text' => lang('Common.forms.multiSelect.maxItemText'), - ]; - $extra = array_merge($defaultExtra, $customExtra); - $defaults = [ - 'name' => $name, - ]; - - // standardize selected as strings, like the option keys will be. - foreach ($selected as $key => $item) { - $selected[$key] = $item; - } - - $placeholderOption = ''; - if (isset($extra['placeholder'])) { - $placeholderOption = '<option value="" disabled="disabled" hidden="hidden"' . (in_array( - '', - $selected, - true - ) ? ' selected="selected"' : '') . '>' . $extra['placeholder'] . '</option>'; - unset($extra['placeholder']); - } - - $extra = stringify_attributes($extra); - $multiple = (count($selected) > 1 && stripos($extra, 'multiple') === false) ? ' multiple="multiple"' : ''; - $form = '<select ' . rtrim(parse_form_attributes($name, $defaults)) . $extra . $multiple . ">\n"; - $form .= $placeholderOption; - - foreach ($options as $key => $val) { - if (is_array($val)) { - if ($val === []) { - continue; - } - $form .= '<optgroup label="' . $key . "\">\n"; - foreach ($val as $optgroupKey => $optgroupVal) { - $sel = in_array($optgroupKey, $selected, true) ? ' selected="selected"' : ''; - $form .= '<option value="' . htmlspecialchars($optgroupKey) . '"' . $sel . '>' - . $optgroupVal . "</option>\n"; - } - $form .= "</optgroup>\n"; - } else { - /** @noRector RecastingRemovalRector */ - $form .= '<option value="' . htmlspecialchars((string) $key) . '"' - . (in_array($key, $selected, true) ? ' selected="selected"' : '') . '>' - . $val . "</option>\n"; - } - } - - return $form . "</select>\n"; - } -} diff --git a/app/Views/Components/Forms/Checkbox.php b/app/Views/Components/Forms/Checkbox.php index 440300b78862f9fb140c02fc4b2a25df635ac9fb..b93160cae9aa9e5dfdf086c7d3822347f0580a27 100644 --- a/app/Views/Components/Forms/Checkbox.php +++ b/app/Views/Components/Forms/Checkbox.php @@ -23,7 +23,7 @@ class Checkbox extends FormComponent 'name' => $this->name, 'class' => 'form-checkbox text-pine-500 border-black border-3 focus:ring-2 focus:ring-pine-500 focus:ring-offset-2 focus:ring-offset-pine-100 w-6 h-6', ], - $this->value, + 'yes', old($this->name) ? old($this->name) === $this->value : $this->isChecked, ); diff --git a/app/Views/Components/Forms/Input.php b/app/Views/Components/Forms/Input.php index 1729e6c3668498ca8210f78aca32672e0b69fdc6..2b1cb5e451b1bfe77a4e7faa3335e583e631399d 100644 --- a/app/Views/Components/Forms/Input.php +++ b/app/Views/Components/Forms/Input.php @@ -10,16 +10,7 @@ class Input extends FormComponent public function render(): string { - $class = 'px-3 py-2 bg-white rounded-lg border-3 focus:ring-2 focus:ring-pine-500 focus:ring-offset-2 focus:ring-offset-pine-100 ' . $this->class; - - if (session()->has('errors')) { - $error = session('errors')[$this->name]; - if ($error) { - $class .= ' border-red'; - } - } else { - $class .= ' border-black focus:border-black'; - } + $class = 'px-3 py-2 bg-white border-black rounded-lg focus:border-black border-3 focus:ring-2 focus:ring-pine-500 focus:ring-offset-2 focus:ring-offset-pine-100 ' . $this->class; $this->attributes['class'] = $class; diff --git a/app/Views/Components/Forms/MultiSelect.php b/app/Views/Components/Forms/MultiSelect.php index 9ae032aaac7c516ff5e8642ebe78628836170a6a..276f8d4113b1d040d4c9a7432096c16735232a35 100644 --- a/app/Views/Components/Forms/MultiSelect.php +++ b/app/Views/Components/Forms/MultiSelect.php @@ -31,6 +31,11 @@ class MultiSelect extends FormComponent $defaultAttributes = [ 'data-class' => $this->attributes['class'], 'multiple' => 'multiple', + 'data-select-text' => lang('Common.forms.multiSelect.selectText'), + 'data-loading-text' => lang('Common.forms.multiSelect.loadingText'), + 'data-no-results-text' => lang('Common.forms.multiSelect.noResultsText'), + 'data-no-choices-text' => lang('Common.forms.multiSelect.noChoicesText'), + 'data-max-item-text' => lang('Common.forms.multiSelect.maxItemText'), ]; $extra = array_merge($defaultAttributes, $this->attributes); diff --git a/app/Views/Components/Forms/Select.php b/app/Views/Components/Forms/Select.php index 3cfd062e2f0de5b00b8e4fb03b12b636eaf61102..ee8ed27731ee0883ef43d57ac3acb2d8c90287d8 100644 --- a/app/Views/Components/Forms/Select.php +++ b/app/Views/Components/Forms/Select.php @@ -23,6 +23,11 @@ class Select extends FormComponent $defaultAttributes = [ 'class' => 'focus:border-black focus:ring-2 focus:ring-pine-500 focus:ring-offset-2 focus:ring-offset-pine-100 border-3 rounded-lg border-black ' . $this->class, 'data-class' => $this->class, + 'data-select-text' => lang('Common.forms.multiSelect.selectText'), + 'data-loading-text' => lang('Common.forms.multiSelect.loadingText'), + 'data-no-results-text' => lang('Common.forms.multiSelect.noResultsText'), + 'data-no-choices-text' => lang('Common.forms.multiSelect.noChoicesText'), + 'data-max-item-text' => lang('Common.forms.multiSelect.maxItemText'), ]; $extra = array_merge($this->attributes, $defaultAttributes); diff --git a/app/Views/pager/default_full.php b/app/Views/pager/default_full.php index 55685ef78fac3a284c012a46351c174498736c55..b712a1e5b979a87c56411c3ea04ef902ece3a209 100644 --- a/app/Views/pager/default_full.php +++ b/app/Views/pager/default_full.php @@ -30,7 +30,7 @@ $pager->setSurroundCount(2); <?php foreach ($pager->links() as $link): ?> <li> <?php if ($link['active']): ?> - <span class="block px-4 py-2 font-semibold text-white rounded-full bg-pine-600"> + <span class="block px-4 py-2 font-semibold text-white rounded-full bg-pine-500"> <?= $link['title'] ?> </span> <?php else: ?> diff --git a/modules/Admin/Controllers/PodcastImportController.php b/modules/Admin/Controllers/PodcastImportController.php index 044f25a66af10a04a066aa2f74b5d42de971cb88..f3d7a4ebd7ab0245c8dcd72b5a311d54d877242e 100644 --- a/modules/Admin/Controllers/PodcastImportController.php +++ b/modules/Admin/Controllers/PodcastImportController.php @@ -285,17 +285,17 @@ class PodcastImportController extends BaseController } } - $numberItems = $feed->channel[0]->item->count(); + $itemsCount = $feed->channel[0]->item->count(); $lastItem = $this->request->getPost('max_episodes') !== '' && - $this->request->getPost('max_episodes') < $numberItems + $this->request->getPost('max_episodes') < $itemsCount ? (int) $this->request->getPost('max_episodes') - : $numberItems; + : $itemsCount; $slugs = []; for ($itemNumber = 1; $itemNumber <= $lastItem; ++$itemNumber) { - $item = $feed->channel[0]->item[$numberItems - $itemNumber]; + $item = $feed->channel[0]->item[$itemsCount - $itemNumber]; $nsItunes = $item->children('http://www.itunes.com/dtds/podcast-1.0.dtd'); $nsPodcast = $item->children( diff --git a/themes/cp_admin/_message_block.php b/themes/cp_admin/_message_block.php index 3794ba39aca8ad566c3caf40ffc07293da1fafca..ffe70e09c72c39084be4025eaef16a7f08526ae1 100644 --- a/themes/cp_admin/_message_block.php +++ b/themes/cp_admin/_message_block.php @@ -1,15 +1,15 @@ <?php declare(strict_types=1); if (session()->has('message')): ?> - <Alert variant="success"><?= session('message') ?></Alert> + <Alert variant="success" class="mb-4"><?= session('message') ?></Alert> <?php endif; ?> <?php if (session()->has('error')): ?> - <Alert variant="danger"><?= session('error') ?></Alert> + <Alert variant="danger" class="mb-4"><?= session('error') ?></Alert> <?php endif; ?> <?php if (session()->has('errors')): ?> - <Alert variant="danger"> + <Alert variant="danger" class="mb-4"> <ul> <?php foreach (session('errors') as $error): ?> <li><?= $error ?></li> diff --git a/themes/cp_admin/episode/list.php b/themes/cp_admin/episode/list.php index 7693633821b04bb9f63fd6cc1b5802b06f522dbc..ea736f12662032c4ba16d1ad27e54f0e0a1b6d63 100644 --- a/themes/cp_admin/episode/list.php +++ b/themes/cp_admin/episode/list.php @@ -88,7 +88,7 @@ $podcast->id, $episode->id, ) . '">' . lang( - 'Episode.embeddable_player.add', + 'Episode.embeddable_player.title', ) . '</a>' . '<a class="px-4 py-1 hover:bg-gray-100" href="' . route_to( 'episode-persons-manage', diff --git a/themes/cp_admin/episode/persons.php b/themes/cp_admin/episode/persons.php index a903f0ce1f505335d353c676be32f3ba2e1707ad..b274da5cc80505005a408e4b20aad15ac037ebc1 100644 --- a/themes/cp_admin/episode/persons.php +++ b/themes/cp_admin/episode/persons.php @@ -50,7 +50,7 @@ [ 'header' => lang('Common.actions'), 'cell' => function ($person): string { - return '<Button uri="' . route_to('episode-person-remove', $person->podcast_id, $person->episode_id, $person->id) . '" variant="danger" size="small">' . lang('Person.episode_form.remove') . '</Button>'; + return '<Button uri="' . route_to('episode-person-remove', $person->podcast_id, $person->episode_id, $person->id) . '" variant="danger" size="small" iconLeft="delete-bin">' . lang('Person.episode_form.remove') . '</Button>'; }, ], ], @@ -58,7 +58,7 @@ 'max-w-xl' ) ?> -<form action="<?= route_to('episode-persons-manage', $episode->id) ?>" method="POST" class="mt-6"> +<form action="<?= route_to('episode-persons-manage', $podcast->id, $episode->id) ?>" method="POST" class="mt-6"> <?= csrf_field() ?> <Forms.Section diff --git a/themes/cp_admin/podcast/latest_episodes.php b/themes/cp_admin/podcast/latest_episodes.php index 540f993740a74d0d6943ef22dd0b45a803356e18..3a0cb19c46ecbbc3b350219e2ae2baea13623fce 100644 --- a/themes/cp_admin/podcast/latest_episodes.php +++ b/themes/cp_admin/podcast/latest_episodes.php @@ -68,7 +68,7 @@ $podcast->id, $episode->id, ) ?>"><?= lang( - 'Episode.embeddable_player.add', + 'Episode.embeddable_player.title', ) ?></a> <a class="px-4 py-1 hover:bg-gray-100" href="<?= route_to( 'episode-persons-manage', diff --git a/themes/cp_auth/_message_block.php b/themes/cp_auth/_message_block.php index 3794ba39aca8ad566c3caf40ffc07293da1fafca..ffe70e09c72c39084be4025eaef16a7f08526ae1 100644 --- a/themes/cp_auth/_message_block.php +++ b/themes/cp_auth/_message_block.php @@ -1,15 +1,15 @@ <?php declare(strict_types=1); if (session()->has('message')): ?> - <Alert variant="success"><?= session('message') ?></Alert> + <Alert variant="success" class="mb-4"><?= session('message') ?></Alert> <?php endif; ?> <?php if (session()->has('error')): ?> - <Alert variant="danger"><?= session('error') ?></Alert> + <Alert variant="danger" class="mb-4"><?= session('error') ?></Alert> <?php endif; ?> <?php if (session()->has('errors')): ?> - <Alert variant="danger"> + <Alert variant="danger" class="mb-4"> <ul> <?php foreach (session('errors') as $error): ?> <li><?= $error ?></li>