Input WYSIWYG: Updated UpdateUrlCommand, Added chapter HTML display

This commit is contained in:
Dan Brown 2023-12-18 18:31:16 +00:00
parent bc354e8b12
commit c07aa056c2
No known key found for this signature in database
GPG key ID: 46D9F943C24A2EF9
3 changed files with 27 additions and 1 deletions

View file

@ -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'],

View file

@ -24,7 +24,7 @@
<main class="content-wrap card">
<h1 class="break-text">{{ $chapter->name }}</h1>
<div refs="entity-search@contentView" class="chapter-content">
<p class="text-muted break-text">{!! nl2br(e($chapter->description)) !!}</p>
<p class="text-muted break-text">{!! $chapter->descriptionHtml() !!}</p>
@if(count($pages) > 0)
<div class="entity-list book-contents">
@foreach($pages as $page)

View file

@ -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 = '<a href="https://example.com/donkeys"></a>';
$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' => '<a href="https://cats.example.com/donkeys"></a>',
]);
}
}
public function test_command_requires_valid_url()
{
$badUrlMessage = 'The given urls are expected to be full urls starting with http:// or https://';