-<?php
+<?php namespace BookStack;
-namespace BookStack;
-
-use Illuminate\Database\Eloquent\Model;
class PageRevision extends Model
{
- protected $fillable = ['name', 'html', 'text'];
+ protected $fillable = ['name', 'html', 'text', 'markdown', 'summary'];
+ /**
+ * Get the user that created the page revision
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
public function createdBy()
{
- return $this->belongsTo('BookStack\User', 'created_by');
+ return $this->belongsTo(User::class, 'created_by');
}
+ /**
+ * Get the page this revision originates from.
+ * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
+ */
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($path = null)
+ {
+ $url = $this->page->getUrl() . '/revisions/' . $this->id;
+ if ($path) return $url . '/' . trim($path, '/');
+ return $url;
}
- public function getUrl()
+ /**
+ * Get the previous revision for the same page if existing
+ * @return \BookStack\PageRevision|null
+ */
+ public function getPrevious()
{
- return $this->page->getUrl() . '/revisions/' . $this->id;
+ if ($id = static::where('page_id', '=', $this->page_id)->where('id', '<', $this->id)->max('id')) {
+ return static::find($id);
+ }
+ return null;
}
}