From b07ac093b2cae646f9a897bc9dfeeaef6eda6561 Mon Sep 17 00:00:00 2001 From: Yassine Doghri Date: Wed, 19 Oct 2022 14:46:54 +0000 Subject: [PATCH] fix: validate slug length when submitting episode form + clean permalink edit prefix --- app/Resources/js/modules/permalink-edit.ts | 7 ++++++- modules/Admin/Controllers/EpisodeController.php | 2 ++ themes/cp_admin/episode/create.php | 4 ++-- themes/cp_admin/episode/edit.php | 4 ++-- themes/cp_admin/page/create.php | 4 ++-- themes/cp_admin/page/edit.php | 4 ++-- 6 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/Resources/js/modules/permalink-edit.ts b/app/Resources/js/modules/permalink-edit.ts index fdda43cf..2ea12f2d 100644 --- a/app/Resources/js/modules/permalink-edit.ts +++ b/app/Resources/js/modules/permalink-edit.ts @@ -25,6 +25,9 @@ export class PermalinkEdit extends LitElement { @property({ attribute: "copy-label" }) copyLabel = "Copy"; + @property({ attribute: "permalink-base" }) + permalinkBase = ""; + @state() isEditable = false; @@ -68,6 +71,8 @@ export class PermalinkEdit extends LitElement { } firstUpdated(): void { + this.permalinkBase += this.permalinkBase.endsWith("/") ? "" : "/"; + // set permalink value this.setPermalink(); @@ -130,7 +135,7 @@ export class PermalinkEdit extends LitElement { } setPermalink(): void { - this.permalink = this._domain[0].innerHTML + this._slugInput[0].value; + this.permalink = this.permalinkBase + this._slugInput[0].value; } static styles = css` diff --git a/modules/Admin/Controllers/EpisodeController.php b/modules/Admin/Controllers/EpisodeController.php index 23a90cc6..903cab0d 100644 --- a/modules/Admin/Controllers/EpisodeController.php +++ b/modules/Admin/Controllers/EpisodeController.php @@ -135,6 +135,7 @@ class EpisodeController extends BaseController public function attemptCreate(): RedirectResponse { $rules = [ + 'slug' => 'max_length[128]', 'audio_file' => 'uploaded[audio_file]|ext_in[audio_file,mp3,m4a]', 'cover' => 'is_image[cover]|ext_in[cover,jpg,png]|min_dims[cover,1400,1400]|is_image_ratio[cover,1,1]', @@ -272,6 +273,7 @@ class EpisodeController extends BaseController public function attemptEdit(): RedirectResponse { $rules = [ + 'slug' => 'max_length[128]', 'audio_file' => 'uploaded[audio_file]|ext_in[audio_file,mp3,m4a]|permit_empty', 'cover' => diff --git a/themes/cp_admin/episode/create.php b/themes/cp_admin/episode/create.php index 4953d28b..64e3f995 100644 --- a/themes/cp_admin/episode/create.php +++ b/themes/cp_admin/episode/create.php @@ -45,8 +45,8 @@
- - handle) . '/episodes') . '/' ?> + + at_handle) . '/' ?>
diff --git a/themes/cp_admin/episode/edit.php b/themes/cp_admin/episode/edit.php index ab7d6a44..346ec7da 100644 --- a/themes/cp_admin/episode/edit.php +++ b/themes/cp_admin/episode/edit.php @@ -49,8 +49,8 @@
- - handle) . '/episodes') . '/' ?> + + handle) . '/' ?>
diff --git a/themes/cp_admin/page/create.php b/themes/cp_admin/page/create.php index 50c6351b..125196c5 100644 --- a/themes/cp_admin/page/create.php +++ b/themes/cp_admin/page/create.php @@ -23,8 +23,8 @@
- - + + …/pages/
diff --git a/themes/cp_admin/page/edit.php b/themes/cp_admin/page/edit.php index e1864e21..8047a1d0 100644 --- a/themes/cp_admin/page/edit.php +++ b/themes/cp_admin/page/edit.php @@ -25,8 +25,8 @@
- - + + …/pages/