diff --git a/Changelog b/Changelog index 639de4d23..366756147 100755 --- a/Changelog +++ b/Changelog @@ -1,4 +1,5 @@ 2018-04-18 DariusIII + * Chg: Add ShowsController * Chg: Add and use admin middleware * Chg: Update Regexes class getRegex function * Chg: Add ReleasesController diff --git a/app/Http/Controllers/Admin/ShowsController.php b/app/Http/Controllers/Admin/ShowsController.php new file mode 100644 index 000000000..5c1c86378 --- /dev/null +++ b/app/Http/Controllers/Admin/ShowsController.php @@ -0,0 +1,80 @@ +setAdminPrefs(); + + $title = 'TV Shows List'; + + $tvshowname = ($request->has('showname') && ! empty($request->input('showname')) ? $request->input('showname') : ''); + + $this->smarty->assign( + [ + 'showname' => $tvshowname, + 'tvshowlist' => Video::getRange($tvshowname), + ] + ); + + $content = $this->smarty->fetch('show-list.tpl'); + $this->smarty->assign( + [ + 'title' => $title, + 'content' => $content, + ] + ); + $this->adminrender(); + } + + /** + * @param \Illuminate\Http\Request $request + * @throws \Exception + */ + public function edit(Request $request) + { + $this->setAdminPrefs(); + + switch ($request->input('action') ?? 'view') { + case 'submit': + if ($request->has('from') && ! empty($request->input('from'))) { + header('Location:'.$request->input('from')); + exit; + } + + header('Location:'.WWW_TOP.'/show-list.php'); + break; + + case 'view': + default: + if ($request->has('id')) { + $title = 'TV Show Edit'; + $show = Video::getByVideoID($request->input('id')); + } + break; + } + + $this->smarty->assign('show', $show); + + $title = 'Edit TV Show Data'; + $content = $this->smarty->fetch('show-edit.tpl'); + $this->smarty->assign( + [ + 'title' => $title, + 'content' => $content, + ] + ); + $this->adminrender(); + } +} diff --git a/app/Models/Video.php b/app/Models/Video.php index 692d90872..23f206786 100644 --- a/app/Models/Video.php +++ b/app/Models/Video.php @@ -66,12 +66,10 @@ class Video extends Model * Retrieves a range of all shows for the show-edit admin list. * * - * @param $start - * @param $num * @param string $showname - * @return array + * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ - public static function getRange($start, $num, $showname = ''): array + public static function getRange($showname = '') { $sql = self::query() ->select(['videos.*', 'tv_info.summary', 'tv_info.publisher', 'tv_info.image']) @@ -81,11 +79,7 @@ class Video extends Model $sql->where('videos.title', 'like', '%'.$showname.'%'); } - if ($start !== false) { - $sql->limit($num)->offset($start); - } - - return $sql->get()->toArray(); + return $sql->paginate(config('nntmux.items_per_page')); } /** diff --git a/public/oldadmin/show-delete.php b/public/oldadmin/show-delete.php deleted file mode 100755 index a0f81b273..000000000 --- a/public/oldadmin/show-delete.php +++ /dev/null @@ -1,12 +0,0 @@ -has('id')) { - (new smartyTV(['Settings' => $page->pdo]))->delete(request()->input('id')); -} - -$referrer = request()->server('HTTP_REFERER'); -header('Location: '.$referrer); diff --git a/public/oldadmin/show-edit.php b/public/oldadmin/show-edit.php deleted file mode 100755 index 87c8c990f..000000000 --- a/public/oldadmin/show-edit.php +++ /dev/null @@ -1,39 +0,0 @@ -setAdminPrefs(); -$tv = new smartyTV(['Settings' => $page->pdo]); - -switch (request()->input('action') ?? 'view') { - case 'submit': - //TODO: Use a function that allows overwrites - //$tv->update($_POST["id"], $_POST["title"],$_POST["summary"], $_POST['countries_id']); - - if (request()->has('from') && ! empty(request()->input('from'))) { - header('Location:'.request()->input('from')); - exit; - } - - header('Location:'.WWW_TOP.'/show-list.php'); - break; - - case 'view': - default: - if (request()->has('id')) { - $page->title = 'TV Show Edit'; - $show = Video::getByVideoID(request()->input('id')); - } - break; -} - -$page->smarty->assign('show', $show); - -$page->title = 'Edit TV Show Data'; -$page->content = $page->smarty->fetch('show-edit.tpl'); -$page->adminrender(); diff --git a/public/oldadmin/show-list.php b/public/oldadmin/show-list.php deleted file mode 100755 index e159d03a3..000000000 --- a/public/oldadmin/show-list.php +++ /dev/null @@ -1,31 +0,0 @@ -setAdminPrefs(); - -$page->title = 'TV Shows List'; - -$tvshowname = (request()->has('showname') && ! empty(request()->input('showname')) ? request()->input('showname') : ''); -$offset = request()->input('offset') ?? 0; - -$page->smarty->assign( - [ - 'showname' => $tvshowname, - 'tvshowlist' => Video::getRange($offset, config('nntmux.items_per_page'), $tvshowname), - 'pagertotalitems' => Video::getCount($tvshowname), - 'pageroffset' => $offset, - 'pageritemsperpage' => config('nntmux.items_per_page'), - 'pagerquerysuffix' => '', - 'pagerquerybase' => WWW_TOP.'/show-list.php?'. - ($tvshowname !== '' ? 'showname='.$tvshowname.'&' : '').'&offset=', - ] -); -$page->smarty->assign('pager', $page->smarty->fetch('pager.tpl')); - -$page->content = $page->smarty->fetch('show-list.tpl'); -$page->adminrender(); diff --git a/routes/web.php b/routes/web.php index ef8bc34ad..b01792c43 100644 --- a/routes/web.php +++ b/routes/web.php @@ -274,5 +274,9 @@ Route::middleware('admin')->prefix('admin')->group(function () { Route::post('release-edit', 'ReleasesController@edit'); Route::get('release-delete/{id}', 'ReleasesController@destroy'); Route::post('release-delete/{id}', 'ReleasesController@destroy'); + Route::get('show-list', 'ShowsController@index'); + Route::post('show-list', 'ShowsController@index'); + Route::get('show-edit', 'ShowsController@edit'); + Route::post('show-edit', 'ShowsController@edit'); }); });