my changes

This commit is contained in:
Arno Kaimbacher 2018-08-06 14:30:51 +02:00
parent 28301e4312
commit 8dc1f1b048
263 changed files with 36882 additions and 4453 deletions

View file

@ -0,0 +1,96 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Project;
use App\Http\Requests\ProjectRequest;
use Illuminate\View\View;
use Illuminate\Http\RedirectResponse;
class CategoryController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index() : View
{
$projects = Project::get();
return view('settings.project.category', compact('projects'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function add() : View
{
return view('settings.project.add');
}
public function store(ProjectRequest $request) : RedirectResponse
{
$input = $request->all();
Project::create($input);
session()->flash('flash_message', 'You have added 1 project!');
return redirect()->route('settings.project');
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id) : View
{
$project = Project::findOrFail($id);
return view('settings.project.edit', compact('project'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update($id, ProjectRequest $request) : RedirectResponse
{
$project = Project::findOrFail($id);
$input = $request->all();
$project->update($input);
session()->flash('flash_message', 'You have updated 1 project!');
return redirect()->route('settings.project');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function delete($id) : RedirectResponse
{
$project = Project::with('documents')->findOrFail($id);
if ($project->documents->count() > 0) {
session()->flash(
'flash_message',
'You cannot delete this project!'
. ' There are '
. $project->documents->count()
. ' documents in this project!'
);
return redirect()->route('settings.project');
} else {
$project->delete();
session()->flash('flash_message', 'You have deleted 1 project!');
return redirect()->route('settings.project');
}
}
}

View file

@ -0,0 +1,200 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Dataset;
use App\Project;
use App\License;
use App\Title;
use App\Http\Requests\DocumentRequest;
use Illuminate\View\View;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class DatasetController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index(Request $request) : View
{
$searchType = $request->input('searchtype');
$builder = Dataset::query();
//$registers = array();
$filter = $request->input('search');
$state = (strlen($request->input('state')) > 0) ? $request->input('state') : "published";
$data = $request->all();
if ($searchType == "simple") {
if (strlen($filter) > 0) {
//$builder->where('field1', '=', $criteria1);
$builder->whereHas('titles', function ($query) use ($filter) {
$query->where('value', 'LIKE', '%' . $filter . '%');
});
// ::with(['titles' => function ($query) use($filter) {
// $query->where('value', 'LIKE', '%' . $filter . '%');
// }])
}
}
$builder->where('server_state', $state);
//$perPage = $request->get('perPage', 20);
$documents = $builder
->paginate(8);
return view('settings.document.document', compact('documents'));
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id): View
{
$document = Dataset::findOrFail($id);
$document->load('titles');
$document->load('abstracts');
return view('settings.document.show', compact('document'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
// $categories = Category::lists('category', 'id');
// $shelves = Shelf::lists('shelf', 'id');
// $tanggal = date('Y-m-d');
// $ambilTahun = substr($tanggal, 0, 4);
// for($tahun = 1990; $tahun <= $ambilTahun; $tahun++){
// $years[] = $tahun;
// }
// return view('lms.settings.book.add', compact('categories', 'shelves', 'years'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(DocumentRequest $request)
{
// $input = $request->all();
// $book = Book::create($input);
// session()->flash('flash_message', 'You have been addded 1 dataset!');
// return redirect()->route('settings.book');
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id) : View
{
$document = Dataset::findOrFail($id);
$document->load('licenses', 'titles', 'abstracts');
$projects = Project::pluck('label', 'id');
$datum = date('Y-m-d');
$nowYear = substr($datum, 0, 4);
$years = array();
for ($jahr = 1990; $jahr <= $nowYear; $jahr++) {
$years[$jahr] = $jahr;
}
$languages = DB::table('languages')
->where('active', true)
->pluck('part2_t', 'part2_t');
//$options = License::all();
$options = License::all('id', 'name_long');
$checkeds = $document->licenses->pluck('id')->toArray();
//$shelves = Shelf::pluck('shelf', 'id');
// $datum = date('Y-m-d');
// $nowYear = substr($datum, 0, 4);
// $years = array();
// for($jahr = 1990; $jahr <= $nowYear; $jahr++){
// $years[$jahr] = $jahr;
// }
return view('settings.document.edit', compact('document', 'projects', 'options', 'checkeds', 'years', 'languages'));
}
//https://stackoverflow.com/questions/17480200/using-laravel-how-do-i-create-a-view-that-will-update-a-one-to-many-relationshi?rq=1
// https://laravel.io/forum/06-11-2014-how-to-save-eloquent-model-with-relations-in-one-go
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(DocumentRequest $request, $id) : RedirectResponse
{
$document = Dataset::findOrFail($id);
//$input = $request->all();
$input = $request->except('licenses', 'titles');
$document->update($input);
// $document->type = $input['type'];
// $document->thesis_year_accepted = $input['thesis_year_accepted'];
// $document->project_id = $input['project_id'];
// $document->save();
$licenses = $request->input('licenses');
//$licenses = $input['licenses'];
$document->licenses()->sync($licenses);
//save the titles:
$titles = $request->input('titles');
if (is_array($titles) && count($titles) > 0) {
foreach ($titles as $key => $formTitle) {
$title = Title::findOrFail($key);
$title->value = $formTitle['value'];
$title->language = $formTitle['language'];
$title->save();
}
}
//save the abstracts:
$abstracts = $request->input('abstracts');
if (is_array($abstracts) && count($abstracts) > 0) {
foreach ($abstracts as $key => $formAbstract) {
$abstract = Title::findOrFail($key);
$abstract->value = $formAbstract['value'];
$abstract->language = $formAbstract['language'];
$abstract->save();
}
}
session()->flash('flash_message', 'You have updated 1 dataset!');
return redirect()->route('settings.document');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id) : RedirectResponse
{
// $document = Document::findOrFail($id);
// $document->delete();
// session()->flash('flash_message', 'You have been deleted 1 dataset!');
return redirect()->route('settings.document');
}
}

View file

@ -0,0 +1,47 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\License;
use App\Language;
use App\Http\Requests\LicenseRequest;
use Illuminate\Http\Request;
use Illuminate\View\View;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\DB;
class LicenseController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$test = "test";
}
public function index() : View
{
$licenses = License::get();
return view('settings.license.license', compact('licenses'));
}
public function edit($id): View
{
$license = License::findOrFail($id);
//$languages = Language::where('active', true)->pluck('part2_t');
$languages = DB::table('languages')
->where('active', true)
->pluck('part2_t', 'part2_t');
return view('settings.license.edit', compact('license', 'languages'));
}
public function update($id, LicenseRequest $request): RedirectResponse
{
$license = License::findOrFail($id);
$input = $request->all();
$license->update($input);
session()->flash('flash_message', 'You have updated the license!');
return redirect()->route('settings.license');
}
}

View file

@ -0,0 +1,133 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Person;
use App\Http\Requests\PersonRequest;
use Illuminate\Http\Request;
use Illuminate\View\View;
use Illuminate\Http\RedirectResponse;
class PersonController extends Controller
{
public function __construct()
{
$this->middleware('auth');
//$this->middleware('role:reviewer');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(): View
{
//$persons = Person::get();
$persons = Person::with('documents')->get();
return view('settings.person.person', compact('persons'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function add(): View
{
return view('settings.person.add');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(PersonRequest $request)
{
$input = $request->all();
$input['registered_at'] = time();
Person::create($input);
session()->flash('flash_message', 'You have added 1 person!');
return redirect()->route('settings.person');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$person = Person::with('documents')->findOrFail($id);
return view('settings.person.edit', compact('person'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update($id, PersonRequest $request)
{
$person = Person::findOrFail($id);
$input = $request->all();
$person->update($input);
session()->flash('flash_message', 'You have updated 1 person!');
return redirect()->route('settings.person');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function delete($id)
{
$person = Person::with('documents')->findOrFail($id);
if ($person->documents->count() > 0) {
// $person->documents()->detach();
// $person->delete();
session()->flash('flash_message', 'You cannot delete this person!');
} else {
$person->delete();
session()->flash('flash_message', 'You have deleted 1 person!');
}
return redirect()->route('settings.person');
}
/**
* deactivate author, submitter etc....
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function down($id): RedirectResponse
{
$person = Person::findOrFail($id);
$person->update(['status' => 0, 'registered_at' => 00000000]);
session()->flash('flash_message', 'person has been deactivated!');
return redirect()->route('settings.person');
}
/**
* activatew author, submitter etc....
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function up($id): RedirectResponse
{
$dateNow = time();
$person = Person::findOrFail($id);
$person->update(['status' => 1, 'registered_at' => $dateNow]);
session()->flash('flash_message', 'person has been activated!');
return redirect()->route('settings.person');
}
}

View file

@ -0,0 +1,108 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Role;
use App\Permission;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class RoleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$roles = Role::all();
return view('settings.role.role', compact('roles'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$permissions = Permission::all('id', 'name');
return view('settings.role.create', compact('permissions'));
}
/**
* 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 \App\Role $role
* @return \Illuminate\Http\Response
*/
public function show(Role $role)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Role $role
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$role = Role::find($id);
$permissions = Permission::all('id', 'name');
//$userRoles = $user->roles->pluck('name','name')->all();
$checkeds = $role->permissions->pluck('id')->toArray();
return view('settings.role.edit', compact('role', 'permissions', 'checkeds'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Role $role
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$this->validate(request(), [
'name' => 'required'
]);
$role = Role::findOrFail($id);
$role->update($request->except('permissions'));
$permissions = $request->input('permissions') ? $request->input('permissions') : [];
//$role->syncPermissions($permissions);
if (isset($permissions)) {
$role->permissions()->sync($permissions);//If one or more role is selected associate user to roles
} else {
$role->permissions()->detach(); //If no role is selected remove exisiting role associated to a user
}
return redirect()->route('role.index')
->with('flash_message', 'Role successfully edited.');
}
/**
* Remove the specified resource from storage.
*
* @param \App\Role $role
* @return \Illuminate\Http\Response
*/
public function destroy(Role $role)
{
//
}
}

View file

@ -0,0 +1,169 @@
<?php
namespace App\Http\Controllers\Settings;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
//use Spatie\Permission\Models\Role;
use App\Role;
use Illuminate\Support\Facades\Gate;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
//if (! Gate::allows('settings'))
//{
// return abort(401, 'Unauthorized action.');
//}
$users = User::orderBy('id', 'DESC')->paginate(5);
return view('settings.user.user', compact('users'))
->with('i', ($request->input('page', 1) - 1) * 5);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//$roles = Role::pluck('name','name')->all();
$roles = Role::all('id', 'name');
return view('settings.user.create', compact('roles'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, [
'login' => 'required',
'email' => 'required|email|unique:accounts',
'password' => 'required|min:6|confirmed'
//'roles' => 'required'
]);
//$input = $request->all();
$input = $request->only(['login', 'email', 'password']); //Retreive the name, email and password fields
$input['password'] = bcrypt($input['password']);
$user = User::create($input);
$roles = $request['roles']; //Retrieving the roles field
//Checking if a role was selected
if (isset($roles)) {
foreach ($roles as $role) {
$role_r = Role::where('id', '=', $role)->firstOrFail();
$user->assignRole($role_r); //Assigning role to user
}
}
return redirect()
->route('user.index')
->with('success', 'User has been created successfully');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$user = User::find($id);
return view('settings.user.show', compact('user'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$user = User::find($id);
$roles = Role::all('id', 'name');
//$userRoles = $user->roles->pluck('name','name')->all();
$checkeds = $user->roles->pluck('id')->toArray();
return view('settings.user.edit', compact('user', 'roles', 'checkeds'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$this->validate(request(), [
'login' => 'required',
'email' => 'required|email|unique:accounts,email,' . $id,
'password' => 'required|min:6|confirmed'
]);
$user = User::findOrFail($id);
// $input = $request->except('roles');
// $user->fill($input)->save();
$input = $request->only(['login', 'email', 'password']); //Retreive the name, email and password fields
//$input = $request->all();
$user->login = $input['login'];
$user->email = $input['email'];
$user->password = bcrypt($input['password']);
$user->save();
$roles = $request['roles']; //Retreive all roles
if (isset($roles)) {
$user->roles()->sync($roles);//If one or more role is selected associate user to roles
} else {
$user->roles()->detach(); //If no role is selected remove exisiting role associated to a user
}
//return back()->with('flash_message', 'user successfully updated.');
return redirect()
->route('user.index')
->with('flash_message', 'User successfully edited.');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//Find a user with a given id and delete
$user = User::findOrFail($id);
$user->delete();
return redirect()
->route('user.index')
->with('flash_message', 'User successfully deleted.');
}
}