From c23009b306a3cd582ca91725a085b6a903066703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Sun, 29 Jul 2018 17:24:44 +0200 Subject: [PATCH] recreate Proposals button/inbox, start of edit page --- app/Http/Controllers/TableController.php | 13 +++++++- app/Models/Table.php | 11 +++++-- resources/views/profile/_table-list.blade.php | 6 +++- .../views/table/_action-buttons.blade.php | 25 ++++++++++++++- resources/views/table/_rows.blade.php | 5 +++ resources/views/table/edit.blade.php | 31 +++++++++++++++++++ resources/views/table/view.blade.php | 20 ++++++------ routes/web.php | 2 ++ 8 files changed, 97 insertions(+), 16 deletions(-) create mode 100644 resources/views/table/edit.blade.php diff --git a/app/Http/Controllers/TableController.php b/app/Http/Controllers/TableController.php index 45c8b94..35c77f4 100644 --- a/app/Http/Controllers/TableController.php +++ b/app/Http/Controllers/TableController.php @@ -20,7 +20,7 @@ class TableController extends Controller ]); /** @var Table $tableModel */ - $tableModel = $user->tables()->withCount(['favourites', 'forks', 'revisions', 'comments']) + $tableModel = $user->tables()->withCount(['favourites', 'forks', 'revisions', 'comments', 'proposals']) ->where('name', $table)->first(); if ($tableModel === null) abort(404, "No such table."); @@ -66,6 +66,17 @@ class TableController extends Controller ); } + public function settings(Request $request, User $user, string $table) + { + /** @var Table $tableModel */ + $tableModel = $user->tables()->where('name', $table)->first(); + if ($tableModel === null) abort(404, "No such table."); + + return view('table.edit', [ + 'table' => $tableModel, + ]); + } + public function storeNew(Request $request) { /** @var User $u */ diff --git a/app/Models/Table.php b/app/Models/Table.php index 700043a..c78c232 100644 --- a/app/Models/Table.php +++ b/app/Models/Table.php @@ -21,7 +21,8 @@ use Illuminate\Database\Eloquent\Collection; * @property string $license * @property string $origin * @property int $visits - * @property-read string $viewPage + * @property-read string $viewRoute + * @property-read string $settingsRoute * @property-read User $owner * @property-read Table $parentTable * @property-read Table[]|Collection $forks @@ -122,16 +123,20 @@ class Table extends BaseModel public function __get($name) { - if ($name == 'viewPage') { + if ($name == 'viewRoute') { return route('table.view', ['user' => $this->cachedOwner()->name, 'table' => $this->name]); } + if ($name == 'settingsRoute') { + return route('table.conf', ['user' => $this->cachedOwner()->name, 'table' => $this->name]); + } + return parent::__get($name); } public function scopeForList(Builder $query) { return $query->with('revision:id,row_count')->with('owner:id,name,title') - ->withCount(['favourites', 'forks', 'revisions']); + ->withCount(['favourites', 'forks', 'revisions', 'proposals']); } } diff --git a/resources/views/profile/_table-list.blade.php b/resources/views/profile/_table-list.blade.php index 948f800..3ebeb92 100644 --- a/resources/views/profile/_table-list.blade.php +++ b/resources/views/profile/_table-list.blade.php @@ -2,6 +2,10 @@ if (!isset($showAuthors)) $showAuthors = false; @endphp +@php + /** @var \App\Models\Table[] $tables */ +@endphp +
@if(count($tables) == 0) No tables yet. @@ -14,7 +18,7 @@ $rows = $table->revision->row_count; @endphp + href="{{$table->viewRoute}}"> {{-- this must be span so that Lynx includes the table name in the anchor --}} @icon(fa-table fa-pr){!! diff --git a/resources/views/table/_action-buttons.blade.php b/resources/views/table/_action-buttons.blade.php index 016dd69..57edce6 100644 --- a/resources/views/table/_action-buttons.blade.php +++ b/resources/views/table/_action-buttons.blade.php @@ -2,6 +2,10 @@ args: $table --}} +@php + /** @var \App\Models\Table $table */ +@endphp +