return $this->hasMany('Oxbow\Chapter');
}
+ public function createdBy()
+ {
+ return $this->belongsTo('Oxbow\User', 'created_by');
+ }
+
+ public function updatedBy()
+ {
+ return $this->belongsTo('Oxbow\User', 'updated_by');
+ }
+
public function children()
{
$pages = $this->pages()->where('chapter_id', '=', 0)->get();
return $this->hasMany('Oxbow\Page')->orderBy('priority', 'ASC');
}
+ public function createdBy()
+ {
+ return $this->belongsTo('Oxbow\User', 'created_by');
+ }
+
+ public function updatedBy()
+ {
+ return $this->belongsTo('Oxbow\User', 'updated_by');
+ }
+
public function getUrl()
{
return '/books/' . $this->book->slug . '/chapter/' . $this->slug;
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
use Oxbow\Http\Requests;
use Oxbow\Repos\BookRepo;
$slug .= '1';
}
$book->slug = $slug;
+ $book->created_by = Auth::user()->id;
+ $book->updated_by = Auth::user()->id;
$book->save();
return redirect('/books');
}
$slug += '1';
}
$book->slug = $slug;
+ $book->updated_by = Auth::user()->id;
$book->save();
return redirect($book->getUrl());
}
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
use Oxbow\Http\Requests;
use Oxbow\Http\Controllers\Controller;
use Oxbow\Repos\BookRepo;
$chapter = $this->chapterRepo->newFromInput($request->all());
$chapter->slug = $this->chapterRepo->findSuitableSlug($chapter->name, $book->id);
$chapter->priority = $this->bookRepo->getNewPriority($book);
+ $chapter->created_by = Auth::user()->id;
+ $chapter->updated_by = Auth::user()->id;
$book->chapters()->save($chapter);
return redirect($book->getUrl());
}
$chapter = $this->chapterRepo->getBySlug($chapterSlug, $book->id);
$chapter->fill($request->all());
$chapter->slug = $this->chapterRepo->findSuitableSlug($chapter->name, $book->id, $chapter->id);
+ $chapter->updated_by = Auth::user()->id;
$chapter->save();
return redirect($chapter->getUrl());
}
use Illuminate\Filesystem\Filesystem as File;
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
use Intervention\Image\Facades\Image as ImageTool;
use Illuminate\Support\Facades\DB;
use Oxbow\Http\Requests;
// Create and save image object
$this->image->name = $name;
$this->image->url = $imagePath . $name;
+ $this->image->created_by = Auth::user()->id;
+ $this->image->updated_by = Auth::user()->id;
$this->image->save();
return response()->json($this->image);
}
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
use Oxbow\Http\Requests;
use Oxbow\Repos\BookRepo;
$page->book_id = $book->id;
$page->text = strip_tags($page->html);
+ $page->created_by = Auth::user()->id;
+ $page->updated_by = Auth::user()->id;
$page->save();
return redirect($page->getUrl());
}
$page->fill($request->all());
$page->slug = $this->pageRepo->findSuitableSlug($page->name, $book->id, $page->id);
$page->text = strip_tags($page->html);
+ $page->updated_by = Auth::user()->id;
$page->save();
return redirect($page->getUrl());
}
{
return storage_path() . $this->url;
}
+
+ public function createdBy()
+ {
+ return $this->belongsTo('Oxbow\User', 'created_by');
+ }
+
+ public function updatedBy()
+ {
+ return $this->belongsTo('Oxbow\User', 'updated_by');
+ }
}
return $this->chapter()->count() > 0;
}
- public function parent()
+ public function createdBy()
{
- return $this->belongsTo('Oxbow\Page', 'page_id');
+ return $this->belongsTo('Oxbow\User', 'created_by');
+ }
+
+ public function updatedBy()
+ {
+ return $this->belongsTo('Oxbow\User', 'updated_by');
}
public function getUrl()
--- /dev/null
+<?php
+
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddUsersToEntities extends Migration
+{
+ /**
+ * Run the migrations.
+ *
+ * @return void
+ */
+ public function up()
+ {
+ Schema::table('pages', function (Blueprint $table) {
+ $table->integer('created_by');
+ $table->integer('updated_by');
+ });
+ Schema::table('chapters', function (Blueprint $table) {
+ $table->integer('created_by');
+ $table->integer('updated_by');
+ });
+ Schema::table('images', function (Blueprint $table) {
+ $table->integer('created_by');
+ $table->integer('updated_by');
+ });
+ Schema::table('books', function (Blueprint $table) {
+ $table->integer('created_by');
+ $table->integer('updated_by');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('pages', function (Blueprint $table) {
+ $table->dropColumn('created_by');
+ $table->dropColumn('updated_by');
+ });
+ Schema::table('chapters', function (Blueprint $table) {
+ $table->dropColumn('created_by');
+ $table->dropColumn('updated_by');
+ });
+ Schema::table('images', function (Blueprint $table) {
+ $table->dropColumn('created_by');
+ $table->dropColumn('updated_by');
+ });
+ Schema::table('books', function (Blueprint $table) {
+ $table->dropColumn('created_by');
+ $table->dropColumn('updated_by');
+ });
+ }
+}
p.muted, p .muted, span.muted, .text-muted {
color: lighten($text-dark, 26%);
+ &.small, .small {
+ color: lighten($text-dark, 42%);
+ }
}
p.primary, p .primary, span.primary, .text-primary {
{{$childElement->getExcerpt()}}
</p>
- @if(is_a($childElement, 'Oxbow\Chapter'))
+ @if(is_a($childElement, 'Oxbow\Chapter') && count($childElement->pages) > 0)
<div class="inset-list">
@foreach($childElement->pages as $page)
<h4><a href="{{$page->getUrl()}}"><i class="zmdi zmdi-file-text"></i> {{$page->name}}</a></h4>
@endforeach
</div>
+ <p class="text-muted small">
+ Created {{$book->created_at->diffForHumans()}} @if($book->createdBy) by {{$book->createdBy->name}} @endif
+ <br>
+ Last Updated {{$book->updated_at->diffForHumans()}} @if($book->createdBy) by {{$book->updatedBy->name}} @endif
+ </p>
+
</div>
@else
<p class="text-muted">No pages are in this chapter</p>
@endif
+
+ <p class="text-muted small">
+ Created {{$chapter->created_at->diffForHumans()}} @if($chapter->createdBy) by {{$chapter->createdBy->name}} @endif
+ <br>
+ Last Updated {{$chapter->updated_at->diffForHumans()}} @if($chapter->createdBy) by {{$chapter->updatedBy->name}} @endif
+ </p>
</div>
</div>
@endif
{!! $page->html !!}
+
+ <hr>
+ <p class="text-muted small">
+ Created {{$page->created_at->diffForHumans()}} @if($page->createdBy) by {{$page->createdBy->name}} @endif
+ <br>
+ Last Updated {{$page->updated_at->diffForHumans()}} @if($page->createdBy) by {{$page->updatedBy->name}} @endif
+ </p>
</div>