| 
									
										
										
										
											2016-03-10 06:32:07 +08:00
										 |  |  | <?php namespace BookStack; | 
					
						
							| 
									
										
										
										
											2015-08-09 19:06:52 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class PageRevision extends Model | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-07-08 02:53:43 +08:00
										 |  |  |     protected $fillable = ['name', 'html', 'text', 'markdown', 'summary']; | 
					
						
							| 
									
										
										
										
											2015-08-09 19:06:52 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-10 06:32:07 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Get the user that created the page revision | 
					
						
							|  |  |  |      * @return \Illuminate\Database\Eloquent\Relations\BelongsTo | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-08-09 19:06:52 +08:00
										 |  |  |     public function createdBy() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-05-02 04:20:50 +08:00
										 |  |  |         return $this->belongsTo(User::class, 'created_by'); | 
					
						
							| 
									
										
										
										
											2015-08-09 19:06:52 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-10 06:32:07 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Get the page this revision originates from. | 
					
						
							|  |  |  |      * @return \Illuminate\Database\Eloquent\Relations\BelongsTo | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-08-09 19:06:52 +08:00
										 |  |  |     public function page() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-05-02 04:20:50 +08:00
										 |  |  |         return $this->belongsTo(Page::class); | 
					
						
							| 
									
										
										
										
											2015-08-09 19:06:52 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-10 06:32:07 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Get the url for this revision. | 
					
						
							| 
									
										
										
										
											2016-09-29 17:10:46 +08:00
										 |  |  |      * @param null|string $path | 
					
						
							| 
									
										
										
										
											2016-03-10 06:32:07 +08:00
										 |  |  |      * @return string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-09-29 17:10:46 +08:00
										 |  |  |     public function getUrl($path = null) | 
					
						
							| 
									
										
										
										
											2015-08-09 19:06:52 +08:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-09-29 17:10:46 +08:00
										 |  |  |         $url = $this->page->getUrl() . '/revisions/' . $this->id; | 
					
						
							|  |  |  |         if ($path) return $url . '/' . trim($path, '/'); | 
					
						
							|  |  |  |         return $url; | 
					
						
							| 
									
										
										
										
											2015-08-09 19:06:52 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-08 01:42:21 +08:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2016-09-29 17:10:46 +08:00
										 |  |  |      * Get the previous revision for the same page if existing | 
					
						
							|  |  |  |      * @return \BookStack\PageRevision|null | 
					
						
							| 
									
										
										
										
											2016-07-08 01:42:21 +08:00
										 |  |  |      */ | 
					
						
							|  |  |  |     public function getPrevious() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-09-29 17:10:46 +08:00
										 |  |  |         if ($id = static::where('page_id', '=', $this->page_id)->where('id', '<', $this->id)->max('id')) { | 
					
						
							|  |  |  |             return static::find($id); | 
					
						
							| 
									
										
										
										
											2016-07-08 01:42:21 +08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-09-29 17:10:46 +08:00
										 |  |  |         return null; | 
					
						
							| 
									
										
										
										
											2016-07-08 01:42:21 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-09 19:06:52 +08:00
										 |  |  | } |