class PageRevision extends Model
{
- protected $fillable = ['name', 'html', 'text', 'markdown'];
+ protected $fillable = ['name', 'html', 'text', 'markdown', 'summary'];
/**
* Get the user that created the page revision
*/
public function createdBy()
{
- return $this->belongsTo('BookStack\User', 'created_by');
+ return $this->belongsTo(User::class, 'created_by');
}
/**
*/
public function page()
{
- return $this->belongsTo('BookStack\Page');
+ return $this->belongsTo(Page::class);
}
/**
* Get the url for this revision.
+ * @param null|string $path
* @return string
*/
- public function getUrl()
+ public function getUrl($path = null)
{
- return $this->page->getUrl() . '/revisions/' . $this->id;
+ $url = $this->page->getUrl() . '/revisions/' . $this->id;
+ if ($path) return $url . '/' . trim($path, '/');
+ return $url;
+ }
+
+ /**
+ * Get the previous revision for the same page if existing
+ * @return \BookStack\PageRevision|null
+ */
+ public function getPrevious()
+ {
+ if ($id = static::where('page_id', '=', $this->page_id)->where('id', '<', $this->id)->max('id')) {
+ return static::find($id);
+ }
+ return null;
}
}