1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-31 15:24:31 +03:00

Input WYSIWYG: Added description_html field, added store logic

Rolled out HTML editor field and store logic across all target entity
types. Cleaned up WYSIWYG input logic and design.
Cleaned up some injected classes while there.
This commit is contained in:
Dan Brown
2023-12-17 15:02:15 +00:00
parent 569542f0bb
commit c622b785a9
17 changed files with 167 additions and 64 deletions

View File

@ -26,10 +26,11 @@ use Illuminate\Support\Collection;
class Book extends Entity implements HasCoverImage
{
use HasFactory;
use HasHtmlDescription;
public $searchFactor = 1.2;
protected $fillable = ['name', 'description'];
protected $fillable = ['name'];
protected $hidden = ['pivot', 'image_id', 'deleted_at'];
/**

View File

@ -11,6 +11,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class Bookshelf extends Entity implements HasCoverImage
{
use HasFactory;
use HasHtmlDescription;
protected $table = 'bookshelves';

View File

@ -15,6 +15,7 @@ use Illuminate\Support\Collection;
class Chapter extends BookChild
{
use HasFactory;
use HasHtmlDescription;
public $searchFactor = 1.2;

View File

@ -0,0 +1,21 @@
<?php
namespace BookStack\Entities\Models;
use BookStack\Util\HtmlContentFilter;
/**
* @property string $description
* @property string $description_html
*/
trait HasHtmlDescription
{
/**
* Get the HTML description for this book.
*/
public function descriptionHtml(): string
{
$html = $this->description_html ?: '<p>' . e($this->description) . '</p>';
return HtmlContentFilter::removeScriptsFromHtmlString($html);
}
}