X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/fef433a9cb1ae8c0daf2444e16e590cd9df114aa..refs/pull/5676/head:/app/Activity/Models/Comment.php diff --git a/app/Activity/Models/Comment.php b/app/Activity/Models/Comment.php index bcbed6c56..91cea4fe0 100644 --- a/app/Activity/Models/Comment.php +++ b/app/Activity/Models/Comment.php @@ -4,26 +4,30 @@ namespace BookStack\Activity\Models; use BookStack\App\Model; use BookStack\Users\Models\HasCreatorAndUpdater; +use BookStack\Util\HtmlContentFilter; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\MorphTo; /** * @property int $id - * @property string $text + * @property string $text - Deprecated & now unused (#4821) * @property string $html - * @property int|null $parent_id + * @property int|null $parent_id - Relates to local_id, not id * @property int $local_id * @property string $entity_type * @property int $entity_id + * @property int $created_by + * @property int $updated_by + * @property string $content_ref + * @property bool $archived */ class Comment extends Model implements Loggable { use HasFactory; use HasCreatorAndUpdater; - protected $fillable = ['text', 'parent_id']; - protected $appends = ['created', 'updated']; + protected $fillable = ['parent_id']; /** * Get the entity that this comment belongs to. @@ -38,7 +42,9 @@ class Comment extends Model implements Loggable */ public function parent(): BelongsTo { - return $this->belongsTo(Comment::class); + return $this->belongsTo(Comment::class, 'parent_id', 'local_id', 'parent') + ->where('entity_type', '=', $this->entity_type) + ->where('entity_id', '=', $this->entity_id); } /** @@ -49,24 +55,13 @@ class Comment extends Model implements Loggable return $this->updated_at->timestamp > $this->created_at->timestamp; } - /** - * Get created date as a relative diff. - */ - public function getCreatedAttribute(): string - { - return $this->created_at->diffForHumans(); - } - - /** - * Get updated date as a relative diff. - */ - public function getUpdatedAttribute(): string + public function logDescriptor(): string { - return $this->updated_at->diffForHumans(); + return "Comment #{$this->local_id} (ID: {$this->id}) for {$this->entity_type} (ID: {$this->entity_id})"; } - public function logDescriptor(): string + public function safeHtml(): string { - return "Comment #{$this->local_id} (ID: {$this->id}) for {$this->entity_type} (ID: {$this->entity_id})"; + return HtmlContentFilter::removeScriptsFromHtmlString($this->html ?? ''); } }