From c07aa056c2e42974826285cd8e614ae49db24b4b Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Mon, 18 Dec 2023 18:31:16 +0000 Subject: [PATCH] Input WYSIWYG: Updated UpdateUrlCommand, Added chapter HTML display --- app/Console/Commands/UpdateUrlCommand.php | 3 +++ resources/views/chapters/show.blade.php | 2 +- tests/Commands/UpdateUrlCommandTest.php | 23 +++++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/app/Console/Commands/UpdateUrlCommand.php b/app/Console/Commands/UpdateUrlCommand.php index 27f84cc89..0c95b0a3c 100644 --- a/app/Console/Commands/UpdateUrlCommand.php +++ b/app/Console/Commands/UpdateUrlCommand.php @@ -46,6 +46,9 @@ class UpdateUrlCommand extends Command $columnsToUpdateByTable = [ 'attachments' => ['path'], 'pages' => ['html', 'text', 'markdown'], + 'chapters' => ['description_html'], + 'books' => ['description_html'], + 'bookshelves' => ['description_html'], 'images' => ['url'], 'settings' => ['value'], 'comments' => ['html', 'text'], diff --git a/resources/views/chapters/show.blade.php b/resources/views/chapters/show.blade.php index 0e5224d54..6fe1ce431 100644 --- a/resources/views/chapters/show.blade.php +++ b/resources/views/chapters/show.blade.php @@ -24,7 +24,7 @@

{{ $chapter->name }}

-

{!! nl2br(e($chapter->description)) !!}

+

{!! $chapter->descriptionHtml() !!}

@if(count($pages) > 0)
@foreach($pages as $page) diff --git a/tests/Commands/UpdateUrlCommandTest.php b/tests/Commands/UpdateUrlCommandTest.php index 280c81feb..62c39c274 100644 --- a/tests/Commands/UpdateUrlCommandTest.php +++ b/tests/Commands/UpdateUrlCommandTest.php @@ -2,6 +2,7 @@ namespace Tests\Commands; +use BookStack\Entities\Models\Entity; use Illuminate\Support\Facades\Artisan; use Symfony\Component\Console\Exception\RuntimeException; use Tests\TestCase; @@ -24,6 +25,28 @@ class UpdateUrlCommandTest extends TestCase ]); } + public function test_command_updates_description_html() + { + /** @var Entity[] $models */ + $models = [$this->entities->book(), $this->entities->chapter(), $this->entities->shelf()]; + + foreach ($models as $model) { + $model->description_html = ''; + $model->save(); + } + + $this->artisan('bookstack:update-url https://example.com https://cats.example.com') + ->expectsQuestion("This will search for \"https://example.com\" in your database and replace it with \"https://cats.example.com\".\nAre you sure you want to proceed?", 'y') + ->expectsQuestion('This operation could cause issues if used incorrectly. Have you made a backup of your existing database?', 'y'); + + foreach ($models as $model) { + $this->assertDatabaseHas($model->getTable(), [ + 'id' => $model->id, + 'description_html' => '', + ]); + } + } + public function test_command_requires_valid_url() { $badUrlMessage = 'The given urls are expected to be full urls starting with http:// or https://';