Add admin GroupController

This commit is contained in:
DariusIII
2018-04-17 15:55:15 +02:00
parent aa63c18607
commit befb2bc35e
7 changed files with 255 additions and 199 deletions
+1
View File
@@ -1,4 +1,5 @@
2018-04-17 DariusIII
* Chg: Add admin GroupController
* Chg: Add admin ContentController
* Chg: Add admin RoleController
* Chg: Add admin SiteController
@@ -0,0 +1,254 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\BasePageController;
use App\Models\Group;
use Illuminate\Http\Request;
class GroupController extends BasePageController
{
/**
* @param \Illuminate\Http\Request $request
*
* @throws \Exception
*/
public function index(Request $request)
{
$this->setAdminPrefs();
$groupName = $request->input('groupname') ?? '';
$this->smarty->assign(
[
'groupname' => $groupName,
'grouplist' => Group::getGroupsRange(config('nntmux.items_per_page'), $groupName),
]
);
$title = 'Group List';
$content = $this->smarty->fetch('group-list.tpl');
$this->smarty->assign(
[
'title' => $title,
'content' => $content,
]
);
$this->adminrender();
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* @param \Illuminate\Http\Request $request
*
* @throws \Exception
*/
public function createBulk(Request $request)
{
$this->setAdminPrefs();
// set the current action
$action = $request->input('action') ?? 'view';
if ($action === 'submit') {
if ($request->has('groupfilter') && ! empty($request->input('groupfilter'))) {
$msgs = Group::addBulk($request->input('groupfilter'), $request->input('active'), $request->input('backfill'));
}
} else {
$msgs = '';
}
$this->smarty->assign('groupmsglist', $msgs);
$this->smarty->assign('yesno_ids', [1, 0]);
$this->smarty->assign('yesno_names', ['Yes', 'No']);
$title = 'Bulk Add Newsgroups';
$content = $this->smarty->fetch('group-bulk.tpl');
$this->smarty->assign(
[
'title' => $title,
'content' => $content,
]
);
$this->adminrender();
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* @param \Illuminate\Http\Request $request
*
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
* @throws \Exception
*/
public function edit(Request $request)
{
$this->setAdminPrefs();
// Set the current action.
$action = $request->input('action') ?? 'view';
$group = [
'id' => '',
'name' => '',
'description' => '',
'minfilestoformrelease' => 0,
'active' => 0,
'backfill' => 0,
'minsizetoformrelease' => 0,
'first_record' => 0,
'last_record' => 0,
'backfill_target' => 0,
];
switch ($action) {
case 'submit':
if ($request->input('id') === '') {
// Add a new group.
$request->merge(['name' => Group::isValidGroup($request->input('name'))]);
if ($request->input('name') !== false) {
Group::addGroup($request->all());
}
} else {
// Update an existing group.
Group::updateGroup($request->all());
}
return redirect('group-list');
break;
case 'view':
default:
if ($request->has('id')) {
$title = 'Newsgroup Edit';
$id = $request->input('id');
$group = Group::getGroupByID($id);
} else {
$this->title = 'Newsgroup Add';
}
break;
}
$this->smarty->assign('yesno_ids', [1, 0]);
$this->smarty->assign('yesno_names', ['Yes', 'No']);
$this->smarty->assign('group', $group);
$content = $this->smarty->fetch('group-edit.tpl');
$this->smarty->assign(
[
'title' => $title,
'content' => $content,
]
);
$this->adminrender();
}
/**
* @param \Illuminate\Http\Request $request
*
* @throws \Exception
*/
public function active(Request $request)
{
$this->setAdminPrefs();
$gname = '';
if (! empty($request->input('groupname'))) {
$gname = $request->input('groupname');
}
$groupname = ! empty($request->input('groupname')) ? $request->input('groupname') : '';
$this->smarty->assign('groupname', $groupname);
$page = $request->has('page') ? $request->input('page') : 1;
$grouplist = Group::getGroupsRange($page, $gname, true);
$this->smarty->assign('grouplist', $grouplist);
$title = 'Group List';
$content = $this->smarty->fetch('group-list.tpl');
$this->smarty->assign(
[
'title' => $title,
'content' => $content,
]
);
$this->adminrender();
}
/**
* @param \Illuminate\Http\Request $request
*
* @throws \Exception
*/
public function inactive(Request $request)
{
$this->setAdminPrefs();
$gname = '';
if (! empty($request->input('groupname'))) {
$gname = $request->input('groupname');
}
$groupname = ! empty($request->input('groupname')) ? $request->input('groupname') : '';
$this->smarty->assign('groupname', $groupname);
$page = $request->has('page') ? $request->input('page') : 1;
$grouplist = Group::getGroupsRange($page, $gname, false);
$this->smarty->assign('grouplist', $grouplist);
$title = 'Group List';
$content = $this->smarty->fetch('group-list.tpl');
$this->smarty->assign(
[
'title' => $title,
'content' => $content,
]
);
$this->adminrender();
}
}
-31
View File
@@ -1,31 +0,0 @@
<?php
require_once dirname(__DIR__, 2).DIRECTORY_SEPARATOR.'resources/views/themes/smarty.php';
use App\Models\Group;
use Blacklight\http\BasePage;
$page = new BasePage();
$page->setAdminPrefs();
// set the current action
$action = request()->input('action') ?? 'view';
switch ($action) {
case 'submit':
if (request()->has('groupfilter') && ! empty(request()->input('groupfilter'))) {
$msgs = Group::addBulk(request()->input('groupfilter'), request()->input('active'), request()->input('backfill'));
}
break;
default:
$msgs = '';
break;
}
$page->smarty->assign('groupmsglist', $msgs);
$page->smarty->assign('yesno_ids', [1, 0]);
$page->smarty->assign('yesno_names', ['Yes', 'No']);
$page->title = 'Bulk Add Newsgroups';
$page->content = $page->smarty->fetch('group-bulk.tpl');
$page->adminrender();
-62
View File
@@ -1,62 +0,0 @@
<?php
require_once dirname(__DIR__, 2).DIRECTORY_SEPARATOR.'resources/views/themes/smarty.php';
use App\Models\Group;
use Blacklight\http\BasePage;
$page = new BasePage();
$page->setAdminPrefs();
$id = 0;
// Set the current action.
$action = request()->input('action') ?? 'view';
$group = [
'id' => '',
'name' => '',
'description' => '',
'minfilestoformrelease' => 0,
'active' => 0,
'backfill' => 0,
'minsizetoformrelease' => 0,
'first_record' => 0,
'last_record' => 0,
'backfill_target' => 0,
];
switch ($action) {
case 'submit':
if (request()->input('id') === '') {
// Add a new group.
request()->merge(['name' => Group::isValidGroup(request()->input('name'))]);
if (request()->input('name') !== false) {
Group::addGroup(request()->all());
}
} else {
// Update an existing group.
Group::updateGroup(request()->all());
}
header('Location:'.WWW_TOP.'/group-list.php');
break;
case 'view':
default:
if (request()->has('id')) {
$page->title = 'Newsgroup Edit';
$id = request()->input('id');
$group = Group::getGroupByID($id);
} else {
$page->title = 'Newsgroup Add';
}
break;
}
$page->smarty->assign('yesno_ids', [1, 0]);
$page->smarty->assign('yesno_names', ['Yes', 'No']);
$page->smarty->assign('group', $group);
$page->content = $page->smarty->fetch('group-edit.tpl');
$page->adminrender();
-38
View File
@@ -1,38 +0,0 @@
<?php
require_once dirname(__DIR__, 2).DIRECTORY_SEPARATOR.'resources/views/themes/smarty.php';
use App\Models\Group;
use Blacklight\http\BasePage;
$page = new BasePage();
$page->setAdminPrefs();
$gname = '';
if (! empty(request()->input('groupname'))) {
$gname = request()->input('groupname');
}
$groupcount = Group::getGroupsCount($gname, 1);
$offset = request()->input('offset') ?? 0;
$groupname = ! empty(request()->input('groupname')) ? request()->input('groupname') : '';
$page->smarty->assign('groupname', $groupname);
$page->smarty->assign('pagertotalitems', $groupcount);
$page->smarty->assign('pageroffset', $offset);
$page->smarty->assign('pageritemsperpage', config('nntmux.items_per_page'));
$page->smarty->assign('pagerquerysuffix', '#results');
$groupsearch = $gname !== '' ? 'groupname='.$gname.'&amp;' : '';
$page->smarty->assign('pagerquerybase', WWW_TOP.'/group-list-active.php?'.$groupsearch.'offset=');
$pager = $page->smarty->fetch('pager.tpl');
$page->smarty->assign('pager', $pager);
$grouplist = Group::getGroupsRange($offset, config('nntmux.items_per_page'), $gname, true);
$page->smarty->assign('grouplist', $grouplist);
$page->title = 'Group List';
$page->content = $page->smarty->fetch('group-list.tpl');
$page->adminrender();
-39
View File
@@ -1,39 +0,0 @@
<?php
require_once dirname(__DIR__, 2).DIRECTORY_SEPARATOR.'resources/views/themes/smarty.php';
use App\Models\Group;
use Blacklight\http\BasePage;
$page = new BasePage();
$page->setAdminPrefs();
$gname = '';
if (! empty(request()->input('groupname'))) {
$gname = request()->input('groupname');
}
$groupcount = Group::getGroupsCount($gname, 0);
$offset = request()->input('offset') ?? 0;
$groupname = ! empty(request()->input('groupname')) ? request()->input('groupname') : '';
$page->smarty->assign('groupname', $groupname);
$page->smarty->assign('pagertotalitems', $groupcount);
$page->smarty->assign('pageroffset', $offset);
$page->smarty->assign('pageritemsperpage', config('nntmux.items_per_page'));
$page->smarty->assign('pagerquerysuffix', '#results');
$groupsearch = $gname !== '' ? 'groupname='.$gname.'&amp;' : '';
$page->smarty->assign('pagerquerybase', WWW_TOP.'/group-list-inactive.php?'.$groupsearch.'offset=');
$pager = $page->smarty->fetch('pager.tpl');
$page->smarty->assign('pager', $pager);
$grouplist = Group::getGroupsRange($offset, config('nntmux.items_per_page'), $gname, false);
$page->smarty->assign('grouplist', $grouplist);
$page->title = 'Group List';
$page->content = $page->smarty->fetch('group-list.tpl');
$page->adminrender();
-29
View File
@@ -1,29 +0,0 @@
<?php
require_once dirname(__DIR__, 2).DIRECTORY_SEPARATOR.'resources/views/themes/smarty.php';
use App\Models\Group;
use Blacklight\http\BasePage;
$page = new BasePage();
$page->setAdminPrefs();
$groupName = request()->input('groupname') ?? '';
$offset = request()->input('offset') ?? 0;
$page->smarty->assign(
[
'groupname' => $groupName,
'pagertotalitems' => Group::getGroupsCount($groupName, -1),
'pageroffset' => $offset,
'pageritemsperpage' => config('nntmux.items_per_page'),
'pagerquerybase' => WWW_TOP.'/group-list.php?'.(($groupName !== '') ? "groupname=$groupName" : '').'&offset=',
'pagerquerysuffix' => '',
'grouplist' => Group::getGroupsRange($offset, config('nntmux.items_per_page'), $groupName),
]
);
$page->smarty->assign('pager', $page->smarty->fetch('pager.tpl'));
$page->title = 'Group List';
$page->content = $page->smarty->fetch('group-list.tpl');
$page->adminrender();