X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/22a91c955d8258c73dd5dbcf7f46cc302d31c4bd..refs/pull/5689/head:/app/Entities/Models/Entity.php diff --git a/app/Entities/Models/Entity.php b/app/Entities/Models/Entity.php index 8bfe69365..0de83c938 100644 --- a/app/Entities/Models/Entity.php +++ b/app/Entities/Models/Entity.php @@ -2,27 +2,27 @@ namespace BookStack\Entities\Models; -use BookStack\Actions\Activity; -use BookStack\Actions\Comment; -use BookStack\Actions\Favourite; -use BookStack\Actions\Tag; -use BookStack\Actions\View; -use BookStack\Auth\Permissions\EntityPermission; -use BookStack\Auth\Permissions\JointPermission; -use BookStack\Auth\Permissions\JointPermissionBuilder; -use BookStack\Auth\Permissions\PermissionApplicator; +use BookStack\Activity\Models\Activity; +use BookStack\Activity\Models\Comment; +use BookStack\Activity\Models\Favouritable; +use BookStack\Activity\Models\Favourite; +use BookStack\Activity\Models\Loggable; +use BookStack\Activity\Models\Tag; +use BookStack\Activity\Models\View; +use BookStack\Activity\Models\Viewable; +use BookStack\Activity\Models\Watch; +use BookStack\App\Model; +use BookStack\App\Sluggable; use BookStack\Entities\Tools\SlugGenerator; -use BookStack\Interfaces\Deletable; -use BookStack\Interfaces\Favouritable; -use BookStack\Interfaces\Loggable; -use BookStack\Interfaces\Sluggable; -use BookStack\Interfaces\Viewable; -use BookStack\Model; +use BookStack\Permissions\JointPermissionBuilder; +use BookStack\Permissions\Models\EntityPermission; +use BookStack\Permissions\Models\JointPermission; +use BookStack\Permissions\PermissionApplicator; use BookStack\References\Reference; use BookStack\Search\SearchIndex; use BookStack\Search\SearchTerm; -use BookStack\Traits\HasCreatorAndUpdater; -use BookStack\Traits\HasOwner; +use BookStack\Users\Models\HasCreatorAndUpdater; +use BookStack\Users\Models\HasOwner; use Carbon\Carbon; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection; @@ -57,12 +57,17 @@ abstract class Entity extends Model implements Sluggable, Favouritable, Viewable /** * @var string - Name of property where the main text content is found */ - public $textField = 'description'; + public string $textField = 'description'; + + /** + * @var string - Name of the property where the main HTML content is found + */ + public string $htmlField = 'description_html'; /** * @var float - Multiplier for search indexing. */ - public $searchFactor = 1.0; + public float $searchFactor = 1.0; /** * Get the entities that are visible to the current user. @@ -132,7 +137,7 @@ abstract class Entity extends Model implements Sluggable, Favouritable, Viewable */ public function activity(): MorphMany { - return $this->morphMany(Activity::class, 'entity') + return $this->morphMany(Activity::class, 'loggable') ->orderBy('created_at', 'desc'); } @@ -331,6 +336,14 @@ abstract class Entity extends Model implements Sluggable, Favouritable, Viewable ->exists(); } + /** + * Get the related watches for this entity. + */ + public function watches(): MorphMany + { + return $this->morphMany(Watch::class, 'watchable'); + } + /** * {@inheritdoc} */