my changes
This commit is contained in:
parent
28301e4312
commit
8dc1f1b048
263 changed files with 36882 additions and 4453 deletions
|
@ -1,41 +0,0 @@
|
|||
<?php namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\Auth\Guard;
|
||||
use Illuminate\Contracts\Auth\Registrar;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
|
||||
|
||||
class AuthController extends Controller {
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Registration & Login Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles the registration of new users, as well as the
|
||||
| authentication of existing users. By default, this controller uses
|
||||
| a simple trait to add these behaviors. Why don't you explore it?
|
||||
|
|
||||
*/
|
||||
|
||||
use AuthenticatesAndRegistersUsers;
|
||||
|
||||
//kalo sudah login redirect kemana
|
||||
protected $redirectTo = '/';
|
||||
|
||||
/**
|
||||
* Create a new authentication controller instance.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Auth\Guard $auth
|
||||
* @param \Illuminate\Contracts\Auth\Registrar $registrar
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Guard $auth, Registrar $registrar)
|
||||
{
|
||||
$this->auth = $auth;
|
||||
$this->registrar = $registrar;
|
||||
|
||||
$this->middleware('guest', ['except' => 'getLogout']);
|
||||
}
|
||||
|
||||
}
|
32
app/Http/Controllers/Auth/ForgotPasswordController.php
Normal file
32
app/Http/Controllers/Auth/ForgotPasswordController.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
||||
|
||||
class ForgotPasswordController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password reset emails and
|
||||
| includes a trait which assists in sending these notifications from
|
||||
| your application to your users. Feel free to explore this trait.
|
||||
|
|
||||
*/
|
||||
|
||||
use SendsPasswordResetEmails;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
}
|
51
app/Http/Controllers/Auth/LoginController.php
Normal file
51
app/Http/Controllers/Auth/LoginController.php
Normal file
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Login Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles authenticating users for the application and
|
||||
| redirecting them to your home screen. The controller uses a trait
|
||||
| to conveniently provide its functionality to your applications.
|
||||
|
|
||||
*/
|
||||
|
||||
use AuthenticatesUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest', ['except' => 'logout']);
|
||||
}
|
||||
|
||||
public function logout(Request $request)
|
||||
{
|
||||
$this->guard()->logout();
|
||||
|
||||
$request->session()->flush();
|
||||
|
||||
$request->session()->regenerate();
|
||||
|
||||
return redirect('/');
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
<?php namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\Auth\Guard;
|
||||
use Illuminate\Contracts\Auth\PasswordBroker;
|
||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||
|
||||
class PasswordController extends Controller {
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password reset requests
|
||||
| and uses a simple trait to include this behavior. You're free to
|
||||
| explore this trait and override any methods you wish to tweak.
|
||||
|
|
||||
*/
|
||||
|
||||
use ResetsPasswords;
|
||||
|
||||
/**
|
||||
* Create a new password controller instance.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Auth\Guard $auth
|
||||
* @param \Illuminate\Contracts\Auth\PasswordBroker $passwords
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Guard $auth, PasswordBroker $passwords)
|
||||
{
|
||||
$this->auth = $auth;
|
||||
$this->passwords = $passwords;
|
||||
|
||||
$this->middleware('guest');
|
||||
}
|
||||
|
||||
}
|
71
app/Http/Controllers/Auth/RegisterController.php
Normal file
71
app/Http/Controllers/Auth/RegisterController.php
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\User;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
|
||||
class RegisterController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Register Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles the registration of new users as well as their
|
||||
| validation and creation. By default this controller uses a trait to
|
||||
| provide this functionality without requiring any additional code.
|
||||
|
|
||||
*/
|
||||
|
||||
use RegistersUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after registration.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a validator for an incoming registration request.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Illuminate\Contracts\Validation\Validator
|
||||
*/
|
||||
protected function validator(array $data)
|
||||
{
|
||||
return Validator::make($data, [
|
||||
'name' => 'required|max:255',
|
||||
'email' => 'required|email|max:255|unique:users',
|
||||
'password' => 'required|min:6|confirmed',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return User
|
||||
*/
|
||||
protected function create(array $data)
|
||||
{
|
||||
return User::create([
|
||||
'name' => $data['name'],
|
||||
'email' => $data['email'],
|
||||
'password' => bcrypt($data['password']),
|
||||
]);
|
||||
}
|
||||
}
|
39
app/Http/Controllers/Auth/ResetPasswordController.php
Normal file
39
app/Http/Controllers/Auth/ResetPasswordController.php
Normal file
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||
|
||||
class ResetPasswordController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password reset requests
|
||||
| and uses a simple trait to include this behavior. You're free to
|
||||
| explore this trait and override any methods you wish to tweak.
|
||||
|
|
||||
*/
|
||||
|
||||
use ResetsPasswords;
|
||||
|
||||
/**
|
||||
* Where to redirect users after resetting their password.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
}
|
|
@ -1,96 +1,82 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Book;
|
||||
use App\Category;
|
||||
use App\Project;
|
||||
use App\Shelf;
|
||||
use App\Http\Requests\BookRequest;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class BookController extends Controller {
|
||||
class BookController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
public function index() : View
|
||||
{
|
||||
//$books = Book::with('category', 'shelf')->get();
|
||||
$books = Book::with('project')->get();
|
||||
return view('rdr.settings.book.book', compact('books'));
|
||||
}
|
||||
|
||||
$this->middleware('auth');
|
||||
public function add()
|
||||
{
|
||||
$categories = Project::pluck('name', 'id');
|
||||
$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('rdr.settings.book.add', compact('categories', 'shelves', 'years'));
|
||||
}
|
||||
|
||||
}
|
||||
public function store(BookRequest $request)
|
||||
{
|
||||
$input = $request->all();
|
||||
$book = Book::create($input);
|
||||
session()->flash('flash_message', 'You have been addded 1 book!');
|
||||
return redirect()->route('settings.book');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
$books = Book::with('category', 'shelf')->get();
|
||||
public function edit($id)
|
||||
{
|
||||
$book = Book::findOrFail($id);
|
||||
$categories = Project::pluck('name', 'id');
|
||||
// $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('rdr.settings.book.edit', compact('book', 'categories', 'years'));
|
||||
//return view('rdr.settings.book.edit', compact('book', 'categories', 'shelves', 'years'));
|
||||
}
|
||||
|
||||
return view('lms.settings.book.book', compact('books'));
|
||||
|
||||
}
|
||||
|
||||
public function add()
|
||||
{
|
||||
$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'));
|
||||
}
|
||||
|
||||
public function store(BookRequest $request)
|
||||
{
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$book = Book::create($input);
|
||||
|
||||
session()->flash('flash_message', 'You have been addded 1 book!');
|
||||
|
||||
return redirect()->route('settings.book');
|
||||
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
|
||||
$book = Book::findOrFail($id);
|
||||
$categories = Category::lists('category', 'id');
|
||||
$shelves = Shelf::lists('shelf', 'id');
|
||||
|
||||
return view('lms.settings.book.edit', compact('book', 'categories', 'shelves'));
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function update($id, BookRequest $request)
|
||||
{
|
||||
|
||||
$book = Book::findOrFail($id);
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$book->update($input);
|
||||
|
||||
session()->flash('flash_message', 'You have been updated 1 book!');
|
||||
|
||||
return redirect()->route('settings.book');
|
||||
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
|
||||
$book = Book::findOrFail($id);
|
||||
|
||||
$book->delete();
|
||||
|
||||
session()->flash('flash_message', 'You have been deleted 1 book!');
|
||||
|
||||
return redirect()->route('settings.book');
|
||||
|
||||
}
|
||||
public function update($id, BookRequest $request)
|
||||
{
|
||||
$book = Book::findOrFail($id);
|
||||
$input = $request->all();
|
||||
$book->update($input);
|
||||
session()->flash('flash_message', 'You have updated 1 book!');
|
||||
return redirect()->route('settings.book');
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
$book = Book::findOrFail($id);
|
||||
$book->delete();
|
||||
session()->flash('flash_message', 'You have deleted 1 book!');
|
||||
return redirect()->route('settings.book');
|
||||
}
|
||||
}
|
||||
|
|
107
app/Http/Controllers/BorrowController.php
Normal file
107
app/Http/Controllers/BorrowController.php
Normal file
|
@ -0,0 +1,107 @@
|
|||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Book;
|
||||
use App\Person;
|
||||
use App\Transaction;
|
||||
use App\Project;
|
||||
use App\Http\Requests\PeminjamanRequest;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class BorrowController extends Controller
|
||||
{
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
//$books = Book::available()->orderByTitle()->lists('title', 'id');
|
||||
$persons = Person::active()->orderByName()->pluck('last_name', 'id');
|
||||
//$categories = Category::lists('category', 'id');
|
||||
$categories = Project::get();
|
||||
|
||||
return view('rdr.borrow.borrow', compact('persons', 'categories'));
|
||||
}
|
||||
|
||||
public function store(PeminjamanRequest $request)
|
||||
{
|
||||
$input = $request->all();
|
||||
$book_id = $input['book_id'];
|
||||
$person_id = $input['person_id'];
|
||||
$input['borrowed_at'] = time();
|
||||
$transaction = Transaction::create($input);
|
||||
$book = Book::findOrFail($book_id);
|
||||
$stock = $book['stock'] - 1;
|
||||
$book->update(['stock' => $stock]);
|
||||
$person = Person::findOrFail($person_id);
|
||||
$borrow = $person['borrow'] + 1;
|
||||
$person->update(['borrow' => $borrow]);
|
||||
session()->flash('flash_message', 'You have added 1 transaction!');
|
||||
|
||||
return redirect()->route('borrow.report');
|
||||
}
|
||||
|
||||
public function report()
|
||||
{
|
||||
$dateNow = time();
|
||||
$transactions = Transaction::with('student', 'book')->notReturnedYet()->get();
|
||||
|
||||
foreach ($transactions as $transaction) {
|
||||
$dateDiff = $dateNow - $transaction['borrowed_at'];
|
||||
$durasi = floor($dateDiff/(60 * 60 * 24));
|
||||
// $fines = Fine::first();
|
||||
// if($durasi > $fines['days'])
|
||||
// {
|
||||
// $hariDenda = $durasi - $fines['days'];
|
||||
// $denda = $hariDenda * $fines['fines'];
|
||||
// $transaction->update(['fines' => $denda]);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// $denda = 0;
|
||||
// $transaction->update(['fines' => $denda]);
|
||||
// }
|
||||
}
|
||||
//ambil tanggal
|
||||
//$date2 = mktime(0,0,0,05,31,2015);
|
||||
//return $date2;
|
||||
return view('rdr.borrow.report', compact('transactions', 'durasi'));
|
||||
}
|
||||
|
||||
public function pengembalian($id)
|
||||
{
|
||||
$returnedAt = time();
|
||||
$transaction = Transaction::findOrFail($id);
|
||||
$transaction->update(['status' => 1, 'returned_at' => $returnedAt]);
|
||||
|
||||
$book = Book::findOrFail($transaction['book_id']);
|
||||
$stock = $book['stock'] + 1;
|
||||
$book->update(['stock' => $stock]);
|
||||
$student = Student::findOrFail($transaction['student_id']);
|
||||
$borrow = $student['borrow'] - 1;
|
||||
$student->update(['borrow' => $borrow]);
|
||||
|
||||
session()->flash('flash_message', 'You have returned 1 book!');
|
||||
return redirect()->route('borrow.histori');
|
||||
}
|
||||
|
||||
public function perpanjang($id)
|
||||
{
|
||||
$transaction = Transaction::findOrFail($id);
|
||||
$dateNow = time();
|
||||
$transaction->update(['borrowed_at' => $dateNow, 'fines' => 0]);
|
||||
session()->flash('flash_message', 'You have added 1 perpanjang!');
|
||||
return redirect()->route('borrow.report');
|
||||
}
|
||||
|
||||
public function histori()
|
||||
{
|
||||
$transactions = Transaction::returned()->get();
|
||||
return view('rdr.borrow.histori', compact('transactions'));
|
||||
}
|
||||
}
|
|
@ -1,85 +0,0 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Category;
|
||||
use App\Http\Requests\CategoryRequest;
|
||||
|
||||
class CategoryController extends Controller {
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$this->middleware('auth');
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
$categories = Category::get();
|
||||
|
||||
return view('lms.settings.category.category', compact('categories'));
|
||||
|
||||
}
|
||||
|
||||
public function add()
|
||||
{
|
||||
|
||||
return view('lms.settings.category.add');
|
||||
|
||||
}
|
||||
|
||||
public function store(CategoryRequest $request)
|
||||
{
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$category = Category::create($input);
|
||||
|
||||
session()->flash('flash_message', 'You have been addded 1 category!');
|
||||
|
||||
return redirect()->route('settings.category');
|
||||
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
|
||||
$category = Category::findOrFail($id);
|
||||
|
||||
return view('lms.settings.category.edit', compact('category'));
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function update($id, CategoryRequest $request)
|
||||
{
|
||||
|
||||
$category = Category::findOrFail($id);
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
session()->flash('flash_message', 'You have been updated 1 category!');
|
||||
|
||||
$category->update($input);
|
||||
|
||||
return redirect()->route('settings.category');
|
||||
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
|
||||
$category = Category::findOrFail($id);
|
||||
|
||||
$category->delete();
|
||||
|
||||
session()->flash('flash_message', 'You have been deleted 1 category!');
|
||||
|
||||
return redirect()->route('settings.category');
|
||||
|
||||
}
|
||||
|
||||
}
|
96
app/Http/Controllers/CollectionController.php
Normal file
96
app/Http/Controllers/CollectionController.php
Normal file
|
@ -0,0 +1,96 @@
|
|||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Collection;
|
||||
|
||||
class CollectionController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//$collections = Collection::take(10)->get();
|
||||
//$collections = Collection::get();
|
||||
$collections = Collection::with('documents')
|
||||
->paginate(8); //get();
|
||||
return view('rdr.settings.collection.collection', compact('collections'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function delete($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -1,11 +1,13 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Foundation\Bus\DispatchesCommands;
|
||||
//use Illuminate\Foundation\Bus\DispatchesCommands;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
|
||||
abstract class Controller extends BaseController {
|
||||
|
||||
use DispatchesCommands, ValidatesRequests;
|
||||
|
||||
abstract class Controller extends BaseController
|
||||
{
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
}
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Fine;
|
||||
use App\Http\Requests\FinesRequest;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class FinesController extends Controller {
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$this->middleware('auth');
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
$fines = Fine::get();
|
||||
|
||||
return view('lms.settings.fine.fine', compact('fines'));
|
||||
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
|
||||
$fine = Fine::findOrFail($id);
|
||||
|
||||
return view('lms.settings.fine.edit', compact('fine'));
|
||||
|
||||
}
|
||||
|
||||
public function update($id, FinesRequest $request)
|
||||
{
|
||||
$fines = Fine::findOrFail($id);
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$fines->update($input);
|
||||
|
||||
session()->flash('flash_message', 'You have been updated fines!');
|
||||
|
||||
return redirect()->route('settings.fines');
|
||||
|
||||
}
|
||||
|
||||
}
|
85
app/Http/Controllers/HomeController.php
Normal file
85
app/Http/Controllers/HomeController.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//$this->middleware('auth');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(): View
|
||||
{
|
||||
// $tglSekarang = time();
|
||||
|
||||
// $students = Student::get();
|
||||
|
||||
// foreach ($students as $student) {
|
||||
|
||||
// $dateDiff = $tglSekarang - $student['registered_at'];
|
||||
// $durasi = floor($dateDiff/(60 * 60 * 24));
|
||||
// $periode = Periode::first();
|
||||
// if($durasi > $periode['days']){
|
||||
// $student->update(['status' => 0]);
|
||||
// }
|
||||
// else{
|
||||
// $student->update(['status' => 1]);
|
||||
// }
|
||||
|
||||
// }
|
||||
return view('rdr.home.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function contact(): View
|
||||
{
|
||||
return view('rdr.home.contact');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function imprint(): View
|
||||
{
|
||||
return view('rdr.home.imprint');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function about(): View
|
||||
{
|
||||
return view('rdr.home.about');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function news(): View
|
||||
{
|
||||
return view('rdr.home.news');
|
||||
}
|
||||
}
|
417
app/Http/Controllers/Oai/RequestController.php
Normal file
417
app/Http/Controllers/Oai/RequestController.php
Normal file
|
@ -0,0 +1,417 @@
|
|||
<?php
|
||||
namespace App\Http\Controllers\Oai;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Dataset;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Book;
|
||||
|
||||
class RequestController extends Controller
|
||||
{
|
||||
/**
|
||||
* Holds information about which dataset state aka server_state
|
||||
* are delivered out
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $_deliveringDocumentStates = array('published', 'deleted'); // maybe deleted documents too
|
||||
const SET_SPEC_PATTERN = '[A-Za-z0-9\-_\.!~\*\'\(\)]+';
|
||||
|
||||
|
||||
/**
|
||||
* Holds xml representation of document information to be processed.
|
||||
*
|
||||
* @var \DomDocument Defaults to null.
|
||||
*/
|
||||
protected $_xml = null;
|
||||
|
||||
/**
|
||||
* Holds the stylesheet for the transformation.
|
||||
*
|
||||
* @var \DomDocument Defaults to null.
|
||||
*/
|
||||
protected $_xslt = null;
|
||||
|
||||
/**
|
||||
* Holds the xslt processor.
|
||||
*
|
||||
* @var \XSLTProcessor Defaults to null.
|
||||
*/
|
||||
protected $_proc = null;
|
||||
|
||||
/**
|
||||
* Load an xslt stylesheet.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function loadStyleSheet($stylesheet)
|
||||
{
|
||||
$this->_xslt = new \DomDocument;
|
||||
$this->_xslt->load($stylesheet);
|
||||
$this->_proc->importStyleSheet($this->_xslt);
|
||||
if (isset($_SERVER['HTTP_HOST'])) {
|
||||
$this->_proc->setParameter('', 'host', $_SERVER['HTTP_HOST']);
|
||||
}
|
||||
//$this->_proc->setParameter('', 'server', $this->getRequest()->getBaseUrl());
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
//$this->middleware('auth');
|
||||
// Initialize member variables.
|
||||
$this->_xml = new \DomDocument;
|
||||
$this->_proc = new \XSLTProcessor;
|
||||
}
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$oaiRequest = $request->all();
|
||||
$safeRemoveParameters = array('module', 'controller', 'action', 'role');
|
||||
foreach ($safeRemoveParameters as $parameter) {
|
||||
unset($oaiRequest[$parameter]);
|
||||
}
|
||||
return $this->__handleRequest($oaiRequest);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private function __handleRequest(array $oaiRequest)
|
||||
{
|
||||
// Setup stylesheet
|
||||
$this->loadStyleSheet('oai-pmh.xslt');
|
||||
|
||||
// Set response time
|
||||
$this->_proc->setParameter('', 'responseDate', date("Y-m-d\TH:i:s\Z"));
|
||||
|
||||
// set OAI base url
|
||||
$uri = explode('?', $_SERVER['REQUEST_URI'], 2);
|
||||
$this->_proc->setParameter('', 'baseURL', url('/') . $uri[0]);
|
||||
|
||||
if (isset($oaiRequest['verb'])) {
|
||||
$this->_proc->setParameter('', 'oai_verb', $oaiRequest['verb']);
|
||||
if ($oaiRequest['verb'] == 'Identify') {
|
||||
$this->_handleIdentify();
|
||||
} elseif ($oaiRequest['verb'] == 'ListMetadataFormats') {
|
||||
$this->_handleListMetadataFormats();
|
||||
} elseif ($oaiRequest['verb'] == 'ListRecords') {
|
||||
$this->_handleListRecords($oaiRequest);
|
||||
} elseif ($oaiRequest['verb'] == 'ListIdentifiers') {
|
||||
$this->_handleListIdentifiers($oaiRequest);
|
||||
} elseif ($oaiRequest['verb'] == 'ListSets') {
|
||||
$this->_handleListSets($oaiRequest);
|
||||
} else {
|
||||
$this->_handleIllegalVerb();
|
||||
}
|
||||
} else {
|
||||
$oaiRequest['verb'] = 'Identify';
|
||||
$this->_proc->setParameter('', 'oai_verb', $oaiRequest['verb']);
|
||||
$this->doc = $this->_handleIdentify();
|
||||
}
|
||||
|
||||
//$xml = $this->_xml->saveXML();
|
||||
$xml = $this->_proc->transformToXML($this->_xml);
|
||||
|
||||
//$xml = $this->doc->asXML();
|
||||
return response($xml)//->view('rss', array('rss'=>$this->rss))
|
||||
->header('Content-Type', 'application/xml')
|
||||
->header('charset', 'utf-8');
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements response for OAI-PMH verb 'Identify'.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function _handleIdentify()
|
||||
{
|
||||
$email = "repository@geologie.ac.at";
|
||||
$repositoryName = "Data Research Repository";
|
||||
$repIdentifier = "rdr.gba.ac.at";
|
||||
//$sampleIdentifier = $this->_configuration->getSampleIdentifier();
|
||||
$earliestDateFromDb = Dataset::earliestPublicationDate();
|
||||
|
||||
// set parameters for oai-pmh.xslt
|
||||
$this->_proc->setParameter('', 'email', $email);
|
||||
$this->_proc->setParameter('', 'repositoryName', $repositoryName);
|
||||
$this->_proc->setParameter('', 'repIdentifier', $repIdentifier);
|
||||
//$this->_proc->setParameter('', 'sampleIdentifier', $sampleIdentifier);
|
||||
$this->_proc->setParameter('', 'earliestDatestamp', $earliestDateFromDb);
|
||||
$this->_xml->appendChild($this->_xml->createElement('Documents'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Implements response for OAI-PMH verb 'ListMetadataFormats'.
|
||||
*
|
||||
* @param array &$oaiRequest Contains full request information
|
||||
* @return void
|
||||
*/
|
||||
private function _handleListMetadataFormats()
|
||||
{
|
||||
$this->_xml->appendChild($this->_xml->createElement('Documents'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements response for OAI-PMH verb 'ListRecords'.
|
||||
*
|
||||
* @param array &$oaiRequest Contains full request information
|
||||
* @return void
|
||||
*/
|
||||
private function _handleListRecords($oaiRequest)
|
||||
{
|
||||
$maxRecords = 20;//$this->_configuration->getMaxListRecords();
|
||||
$this->_handlingOfLists($oaiRequest, $maxRecords);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements response for OAI-PMH verb 'ListIdentifiers'.
|
||||
*
|
||||
* @param array &$oaiRequest Contains full request information
|
||||
* @return void
|
||||
*/
|
||||
private function _handleListIdentifiers(array &$oaiRequest)
|
||||
{
|
||||
$maxIdentifier = 20;//$this->_configuration->getMaxListIdentifiers();
|
||||
$this->_handlingOfLists($oaiRequest, $maxIdentifier);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements response for OAI-PMH verb 'ListSets'.
|
||||
*
|
||||
* @param array &$oaiRequest Contains full request information
|
||||
* @return void
|
||||
*/
|
||||
private function _handleListSets()
|
||||
{
|
||||
$repIdentifier = "rdr.gba.ac.at";
|
||||
$this->_proc->setParameter('', 'repIdentifier', $repIdentifier);
|
||||
$this->_xml->appendChild($this->_xml->createElement('Documents'));
|
||||
|
||||
//$oaiSets = new Oai_Model_Sets();
|
||||
$sets = array(
|
||||
'bibliography:true' => 'Set for bibliographic entries',
|
||||
'bibliography:false' => 'Set for non-bibliographic entries',
|
||||
);
|
||||
$sets = array_merge(
|
||||
$sets,
|
||||
$this->getSetsForDocumentTypes()
|
||||
);
|
||||
//$sets = $this->getSetsForDocumentTypes();
|
||||
|
||||
foreach ($sets as $type => $name) {
|
||||
$opusDoc = $this->_xml->createElement('Rdr_Sets');
|
||||
$typeAttr = $this->_xml->createAttribute('Type');
|
||||
$typeValue = $this->_xml->createTextNode($type);
|
||||
$typeAttr->appendChild($typeValue);
|
||||
$opusDoc->appendChild($typeAttr);
|
||||
$nameAttr = $this->_xml->createAttribute('TypeName');
|
||||
$nameValue = $this->_xml->createTextNode($name);
|
||||
$nameAttr->appendChild($nameValue);
|
||||
$opusDoc->appendChild($nameAttr);
|
||||
$this->_xml->documentElement->appendChild($opusDoc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function _handleIllegalVerb()
|
||||
{
|
||||
$this->_proc->setParameter('', 'oai_error_code', 'badVerb');
|
||||
$this->_proc->setParameter('', 'oai_error_message', 'The verb provided in the request is illegal.');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Helper method for handling lists.
|
||||
*
|
||||
* @param array $oaiRequest query parameter
|
||||
* @param mixed $maxRecords max count of records
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function _handlingOfLists(array &$oaiRequest, $maxRecords)
|
||||
{
|
||||
if (true === empty($maxRecords)) {
|
||||
$maxRecords = 100;
|
||||
}
|
||||
$repIdentifier = "rdr.gba.ac.at";
|
||||
$this->_proc->setParameter('', 'repIdentifier', $repIdentifier);
|
||||
$this->_xml->appendChild($this->_xml->createElement('Documents'));
|
||||
|
||||
// do some initialisation
|
||||
$cursor = 0;
|
||||
//$totalIds = 0;
|
||||
$start = $maxRecords + 1;
|
||||
$reldocIds = array();
|
||||
|
||||
$metadataPrefix = null;
|
||||
if (true === array_key_exists('metadataPrefix', $oaiRequest)) {
|
||||
$metadataPrefix = $oaiRequest['metadataPrefix'];
|
||||
}
|
||||
$this->_proc->setParameter('', 'oai_metadataPrefix', $metadataPrefix);
|
||||
|
||||
// no resumptionToken is given
|
||||
$finder = Dataset::query();
|
||||
// add server state restrictions
|
||||
$finder->whereIn('server_state', $this->_deliveringDocumentStates);
|
||||
if (array_key_exists('set', $oaiRequest)) {
|
||||
$setarray = explode(':', $oaiRequest['set']);
|
||||
if ($setarray[0] == 'doc-type') {
|
||||
if (count($setarray) === 2 and !empty($setarray[1])) {
|
||||
$finder->where('type', $setarray[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$totalIds = $finder->count();
|
||||
$reldocIds = $finder->pluck('id')->toArray();
|
||||
|
||||
// handling of document ids
|
||||
$restIds = $reldocIds;
|
||||
$workIds = array_splice($restIds, 0, $maxRecords);
|
||||
//foreach ($datasets as $dataset)
|
||||
foreach ($workIds as $dataId) {
|
||||
$dataset = Dataset::findOrFail($dataId);
|
||||
$this->createXmlRecord($dataset);
|
||||
}
|
||||
}
|
||||
|
||||
private function createXmlRecord(Dataset $dataset)
|
||||
{
|
||||
//$node = $this->_xml->createElement('Rdr_Dataset');
|
||||
$domNode = $this->getDatasetXmlDomNode($dataset);
|
||||
// add frontdoor url
|
||||
$this->_addLandingPageAttribute($domNode, $dataset->id);
|
||||
|
||||
// add access rights to element
|
||||
//$this->_addAccessRights($domNode, $dataset);
|
||||
|
||||
$node = $this->_xml->importNode($domNode, true);
|
||||
|
||||
//$node->setAttribute("Id", $dataset->id);
|
||||
//$node->setAttribute("ServerState", $dataset->server_state);
|
||||
|
||||
////$child = new \DOMElement("ServerDateModified");
|
||||
//$child = $this->_xml->createElement('ServerDateModified');
|
||||
//$child->setAttribute("Year", $dataset->server_date_modified->format('Y'));
|
||||
//$child->setAttribute("Month", $dataset->server_date_modified->month);
|
||||
//$child->setAttribute("Day", $dataset->server_date_modified->day);
|
||||
//$node->appendChild($child);
|
||||
|
||||
//$type = $dataset->type;
|
||||
$this->_addSpecInformation($node, 'doc-type:' . $dataset->type);
|
||||
//$this->_addSpecInformation($node, 'bibliography:' . 'false');
|
||||
|
||||
$this->_xml->documentElement->appendChild($node);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the landingpage attribute to Rdr_Dataset XML output.
|
||||
*
|
||||
* @param \DOMNode $document Rdr_Dataset XML serialisation
|
||||
* @param string $docid Id of the dataset
|
||||
* @return void
|
||||
*/
|
||||
private function _addLandingPageAttribute(\DOMNode $document, $dataid)
|
||||
{
|
||||
$url = route('document.show', $dataid);
|
||||
|
||||
$owner = $document->ownerDocument;
|
||||
$attr = $owner->createAttribute('landingpage');
|
||||
$attr->appendChild($owner->createTextNode($url));
|
||||
$document->appendChild($attr);
|
||||
}
|
||||
|
||||
private function _addSpecInformation(\DOMNode $document, $information)
|
||||
{
|
||||
$setSpecAttribute = $this->_xml->createAttribute('Value');
|
||||
$setSpecAttributeValue = $this->_xml->createTextNode($information);
|
||||
$setSpecAttribute->appendChild($setSpecAttributeValue);
|
||||
|
||||
$setSpecElement = $this->_xml->createElement('SetSpec');
|
||||
//$setSpecElement =new \DOMElement("SetSpec");
|
||||
$setSpecElement->appendChild($setSpecAttribute);
|
||||
$document->appendChild($setSpecElement);
|
||||
}
|
||||
|
||||
private function getDatasetXmlDomNode($dataset)
|
||||
{
|
||||
if (!in_array($dataset->server_state, $this->_deliveringDocumentStates)) {
|
||||
$message = 'Trying to get a document in server state "' . $dataset->server_state . '"';
|
||||
//Zend_Registry::get('Zend_Log')->err($message);
|
||||
Log::error("server state: $message");
|
||||
throw new \Exception($message);
|
||||
}
|
||||
|
||||
$dataset->fetchValues();
|
||||
$xmlModel = new \App\Library\Xml\XmlModel();
|
||||
$xmlModel->setModel($dataset);
|
||||
$xmlModel->excludeEmptyFields();
|
||||
$xmlModel->setXmlCache(new \App\XmlCache());
|
||||
return $xmlModel->getDomDocument()->getElementsByTagName('Rdr_Dataset')->item(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns oai sets for document types.
|
||||
* @return array
|
||||
*/
|
||||
private function getSetsForDocumentTypes()
|
||||
{
|
||||
$setSpecPattern = self::SET_SPEC_PATTERN;
|
||||
$sets = array();
|
||||
|
||||
$finder = new \App\DatasetFinder();
|
||||
$finder->setServerState('published');
|
||||
foreach ($finder->groupedTypesPlusCount() as $doctype => $row) {
|
||||
if (0 == preg_match("/^$setSpecPattern$/", $doctype)) {
|
||||
$msg = "Invalid SetSpec (doctype='" . $doctype . "')."
|
||||
. " Allowed characters are [$setSpecPattern].";
|
||||
Log::error("OAI-PMH: $msg");
|
||||
continue;
|
||||
}
|
||||
|
||||
$setSpec = 'doc-type:' . $doctype;
|
||||
// $count = $row['count'];
|
||||
$sets[$setSpec] = "Set for document type '$doctype'";
|
||||
}
|
||||
|
||||
return $sets;
|
||||
}
|
||||
|
||||
private function handleIdentifyOld()
|
||||
{
|
||||
//$earliestDateFromDb = Opus_Document::getEarliestPublicationDate();
|
||||
//$earliestDateFromDb = Dataset::select('server_date_created')->orderBy('server_date_created', 'desc')->first()->toDateTimeString();
|
||||
$earliestDateFromDb = Dataset::earliestPublicationDate();
|
||||
|
||||
$sxe = new \SimpleXMLElement('<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="xsl/oai2.xslt"?><OAI-PMH/>');
|
||||
$sxe->addAttribute('xmlns', 'http://www.openarchives.org/OAI/2.0/');
|
||||
$sxe->addAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
|
||||
$sxe->addAttribute('xmlns:mml', 'http://www.w3.org/1998/Math/MathML');
|
||||
$sxe->addAttribute('xsi:schemaLocation', 'http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd');
|
||||
$sxe->addChild('responseDate', date("Y-m-d\TH:i:s\Z"));
|
||||
|
||||
$uri = explode('?', $_SERVER['REQUEST_URI'], 2);
|
||||
$requestChild = $sxe->addChild('request', url('/') . $uri[0]);
|
||||
$requestChild->addAttribute('verb', 'Identify');
|
||||
|
||||
$identify = $sxe->addChild('Identify');
|
||||
$identify->addChild('repositoryName', "Data Research Repository");
|
||||
$identify->addChild('baseURL', "http://rdr.gba.geolba.ac.at/");
|
||||
$identify->addChild('protocolVersion', '2.0');
|
||||
$identify->addChild('adminEmail', 'repository@geologie.ac.at');
|
||||
//$identify->addChild('earliestDatestamp', '2017-04-07');
|
||||
$identify->addChild('earliestDatestamp', $earliestDateFromDb);
|
||||
$identify->addChild('deletedRecord', 'persistent');
|
||||
|
||||
//$description = $identify->addChild('description');
|
||||
//$oaiIdentifier = $description->addChild('oai-identifier');
|
||||
//$oaiIdentifier->addAttribute('xmlns', 'http://www.openarchives.org/OAI/2.0/oai-identifier');
|
||||
//$oaiIdentifier->addAttribute('xsi:schemaLocation', 'http://www.openarchives.org/OAI/2.0/oai-identifier');
|
||||
//$oaiIdentifier->addChild('scheme', 'oai');
|
||||
|
||||
return $sxe;
|
||||
}
|
||||
}
|
|
@ -1,57 +1,42 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
<?php
|
||||
|
||||
use App\Http\Requests;
|
||||
use App\Http\Controllers\Controller;
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Dataset;
|
||||
use App\Book;
|
||||
use App\Category;
|
||||
use App\Shelf;
|
||||
use App\Periode;
|
||||
use App\Student;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class PagesController extends Controller {
|
||||
class PagesController extends Controller
|
||||
{
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// $this->middleware('auth');
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$this->middleware('auth');
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$tglSekarang = time();
|
||||
|
||||
$students = Student::get();
|
||||
|
||||
foreach ($students as $student) {
|
||||
|
||||
$dateDiff = $tglSekarang - $student['registered_at'];
|
||||
$durasi = floor($dateDiff/(60 * 60 * 24));
|
||||
$periode = Periode::first();
|
||||
if($durasi > $periode['days']){
|
||||
$student->update(['status' => 0]);
|
||||
}
|
||||
else{
|
||||
$student->update(['status' => 1]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return view('lms.index');
|
||||
|
||||
}
|
||||
|
||||
public function books()
|
||||
{
|
||||
|
||||
$books = Book::with('category', 'shelf')->orderByTitle()->get();
|
||||
|
||||
return view('lms.books', compact('books'));
|
||||
|
||||
}
|
||||
public function documents() : View
|
||||
{
|
||||
// $books = Book::with('category', 'shelf')->orderByTitle()->get();
|
||||
$documents = Dataset::orderByType()->get();
|
||||
return view('rdr.document.documents', 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('rdr.document.show', compact('document'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,148 +0,0 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Book;
|
||||
use App\Student;
|
||||
use App\Transaction;
|
||||
use App\Fine;
|
||||
use App\Category;
|
||||
use App\Http\Requests\PeminjamanRequest;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class PeminjamanController extends Controller {
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$this->middleware('auth');
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
//$books = Book::available()->orderByTitle()->lists('title', 'id');
|
||||
$students = Student::notLimit()->active()->orderByName()->lists('name', 'id');
|
||||
//$categories = Category::lists('category', 'id');
|
||||
$categories = Category::get();
|
||||
|
||||
|
||||
return view('lms.peminjaman.peminjaman', compact('students', 'categories'));
|
||||
|
||||
}
|
||||
|
||||
public function store(PeminjamanRequest $request)
|
||||
{
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$book_id = $input['book_id'];
|
||||
|
||||
$student_id = $input['student_id'];
|
||||
|
||||
$input['borrowed_at'] = time();
|
||||
|
||||
$transaction = Transaction::create($input);
|
||||
|
||||
$book = Book::findOrFail($book_id);
|
||||
|
||||
$stock = $book['stock'] - 1;
|
||||
|
||||
$book->update(['stock' => $stock]);
|
||||
|
||||
$student = Student::findOrFail($student_id);
|
||||
|
||||
$borrow = $student['borrow'] + 1;
|
||||
|
||||
$student->update(['borrow' => $borrow]);
|
||||
|
||||
session()->flash('flash_message', 'You have been added 1 transaction!');
|
||||
|
||||
return redirect()->route('peminjaman.laporan');
|
||||
|
||||
}
|
||||
|
||||
public function laporan()
|
||||
{
|
||||
$tglSekarang = time();
|
||||
|
||||
$transactions = Transaction::with('student', 'book')->notReturnedYet()->get();
|
||||
|
||||
foreach ($transactions as $transaction) {
|
||||
|
||||
$dateDiff = $tglSekarang - $transaction['borrowed_at'];
|
||||
$durasi = floor($dateDiff/(60 * 60 * 24));
|
||||
$fines = Fine::first();
|
||||
if($durasi > $fines['days']){
|
||||
$hariDenda = $durasi - $fines['days'];
|
||||
$denda = $hariDenda * $fines['fines'];
|
||||
$transaction->update(['fines' => $denda]);
|
||||
}
|
||||
else{
|
||||
$denda = 0;
|
||||
$transaction->update(['fines' => $denda]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//ambil tanggal
|
||||
//$date2 = mktime(0,0,0,05,31,2015);
|
||||
//return $date2;
|
||||
return view('lms.peminjaman.laporan', compact('transactions', 'durasi'));
|
||||
}
|
||||
|
||||
public function pengembalian($id)
|
||||
{
|
||||
$returnedAt = time();
|
||||
|
||||
$transaction = Transaction::findOrFail($id);
|
||||
|
||||
$transaction->update(['status' => 1, 'returned_at' => $returnedAt]);
|
||||
|
||||
//ini bisa langsung, cuman kan harus ambil data stock nya dulu mzzz
|
||||
//$transaction->book()->update(['stock' => 7]);
|
||||
|
||||
$book = Book::findOrFail($transaction['book_id']);
|
||||
|
||||
$stock = $book['stock'] + 1;
|
||||
|
||||
$book->update(['stock' => $stock]);
|
||||
|
||||
$student = Student::findOrFail($transaction['student_id']);
|
||||
|
||||
$borrow = $student['borrow'] - 1;
|
||||
|
||||
$student->update(['borrow' => $borrow]);
|
||||
|
||||
session()->flash('flash_message', 'You have been doing 1 returned transaction!');
|
||||
|
||||
return redirect()->route('peminjaman.histori');
|
||||
|
||||
}
|
||||
|
||||
public function perpanjang($id)
|
||||
{
|
||||
|
||||
$transaction = Transaction::findOrFail($id);
|
||||
|
||||
$dateNow = time();
|
||||
|
||||
$transaction->update(['borrowed_at' => $dateNow, 'fines' => 0]);
|
||||
|
||||
session()->flash('flash_message', 'You have been added 1 perpanjang!');
|
||||
|
||||
return redirect()->route('peminjaman.laporan');
|
||||
|
||||
}
|
||||
|
||||
public function histori()
|
||||
{
|
||||
$transactions = Transaction::returned()->get();
|
||||
|
||||
return view('lms.peminjaman.histori', compact('transactions'));
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests;
|
||||
use App\Http\Controllers\Controller;
|
||||
|
@ -7,65 +8,51 @@ use App\Student;
|
|||
use App\Http\Requests\PeriodeRequest;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class PeriodeController extends Controller {
|
||||
class PeriodeController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$this->middleware('auth');
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
}
|
||||
public function index()
|
||||
{
|
||||
$periodes = Periode::get();
|
||||
return view('lms.settings.periode.periode', compact('periodes'));
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
$periodes = Periode::get();
|
||||
public function edit($id)
|
||||
{
|
||||
$periode = Periode::findOrFail($id);
|
||||
return view('lms.settings.periode.edit', compact('periode'));
|
||||
}
|
||||
|
||||
return view('lms.settings.periode.periode', compact('periodes'));
|
||||
public function update($id, PeriodeRequest $request)
|
||||
{
|
||||
$periode = Periode::findOrFail($id);
|
||||
|
||||
}
|
||||
$input = $request->all();
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
|
||||
$periode = Periode::findOrFail($id);
|
||||
$periode->update($input);
|
||||
|
||||
return view('lms.settings.periode.edit', compact('periode'));
|
||||
//process
|
||||
$tglSekarang = time();
|
||||
|
||||
}
|
||||
|
||||
public function update($id, PeriodeRequest $request)
|
||||
{
|
||||
$periode = Periode::findOrFail($id);
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$periode->update($input);
|
||||
|
||||
//process
|
||||
$tglSekarang = time();
|
||||
|
||||
$students = Student::get();
|
||||
|
||||
foreach ($students as $student) {
|
||||
|
||||
$dateDiff = $tglSekarang - $student['registered_at'];
|
||||
$durasi = floor($dateDiff/(60 * 60 * 24));
|
||||
$periodes = Periode::first();
|
||||
if($durasi > $periodes['days']){
|
||||
$student->update(['status' => 0]);
|
||||
}
|
||||
else{
|
||||
$student->update(['status' => 1]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
session()->flash('flash_message', 'You have been updated periode!');
|
||||
|
||||
return redirect()->route('settings.periode');
|
||||
|
||||
}
|
||||
$students = Student::get();
|
||||
|
||||
foreach ($students as $student) {
|
||||
$dateDiff = $tglSekarang - $student['registered_at'];
|
||||
$durasi = floor($dateDiff/(60 * 60 * 24));
|
||||
$periodes = Periode::first();
|
||||
if ($durasi > $periodes['days']) {
|
||||
$student->update(['status' => 0]);
|
||||
} else {
|
||||
$student->update(['status' => 1]);
|
||||
}
|
||||
}
|
||||
|
||||
session()->flash('flash_message', 'You have been updated periode!');
|
||||
return redirect()->route('settings.periode');
|
||||
}
|
||||
}
|
||||
|
|
219
app/Http/Controllers/Publish/IndexController.php
Normal file
219
app/Http/Controllers/Publish/IndexController.php
Normal file
|
@ -0,0 +1,219 @@
|
|||
<?php
|
||||
//https://www.5balloons.info/multi-page-step-form-in-laravel-with-validation/
|
||||
namespace App\Http\Controllers\Publish;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Dataset;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class IndexController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function createStep1(Request $request)
|
||||
{
|
||||
$dataset = $request->session()->get('dataset');
|
||||
return view('publish.create-step1', compact('dataset', $dataset));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function storeStep1(Request $request)
|
||||
{
|
||||
$validatedData = $this->validate($request, [
|
||||
'Type' => 'required|min:4',
|
||||
'rights' => 'required|boolean|in:1'
|
||||
]);
|
||||
// $validatedData = $request->validate([
|
||||
// 'name' => 'required|unique:products',
|
||||
// 'amount' => 'required|numeric',
|
||||
// 'company' => 'required',
|
||||
// 'available' => 'required',
|
||||
// 'description' => 'required',
|
||||
// ]);
|
||||
if (empty($request->session()->get('dataset'))) {
|
||||
// $dataset = new Dataset();
|
||||
//$dataset->fill($validatedData);
|
||||
// $dataset->type = $request->input('type');
|
||||
$dataset = $request->except('rights', '_token');
|
||||
$request->session()->put('dataset', $dataset);
|
||||
} else {
|
||||
$dataset = $request->session()->get('dataset');
|
||||
//$dataset->fill($validatedData);
|
||||
$dataset['Type'] = $request->input('Type');
|
||||
$request->session()->put('dataset', $dataset);
|
||||
}
|
||||
return redirect()->route('dataset.create2');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the step 2 Form for creating a new dataset.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function createStep2(Request $request)
|
||||
{
|
||||
//if no dataset is'nt in session variable return to step1
|
||||
if (empty($request->session()->get('dataset'))) {
|
||||
return redirect()->route('dataset.create1');
|
||||
}
|
||||
|
||||
$dataset = $request->session()->get('dataset');
|
||||
|
||||
//fill select variable
|
||||
$languages = DB::table('languages')
|
||||
->where('active', true)
|
||||
->pluck('part2_t', 'part2_t');
|
||||
|
||||
return view('publish.create-step2', compact('dataset', 'languages'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function storeStep2(Request $request)
|
||||
{
|
||||
$validatedData = $this->validate($request, [
|
||||
'Type' => 'required|min:4',
|
||||
'BelongsToBibliography' => 'required|boolean',
|
||||
"TitleMain.Value" => 'required|min:5|max:255',
|
||||
"TitleMain.Language" => 'required|min:3',
|
||||
"TitleAbstract.Value" => 'required|min:5|max:255',
|
||||
"TitleAbstract.Language" => 'required|min:3'
|
||||
]);
|
||||
$optionalData = $request->all();
|
||||
|
||||
// $dataset = $request->except('rights', '_token', 'input_img');
|
||||
|
||||
$dataset = $request->session()->get('dataset');
|
||||
|
||||
//update dataset with validated data
|
||||
$dataset['Type'] = $validatedData['Type'];
|
||||
$dataset['BelongsToBibliography'] = $validatedData['BelongsToBibliography'];
|
||||
$dataset['TitleMain']['Value'] = $validatedData['TitleMain']['Value'];
|
||||
$dataset['TitleMain']['Language'] = $validatedData['TitleMain']['Language'];
|
||||
$dataset['TitleAbstract']['Value'] = $validatedData['TitleAbstract']['Value'];
|
||||
$dataset['TitleAbstract']['Language'] = $validatedData['TitleAbstract']['Language'];
|
||||
if (isset($optionalData['CreatingCorporation'])) {
|
||||
$dataset['CreatingCorporation'] = $optionalData['CreatingCorporation'];
|
||||
}
|
||||
if (isset($optionalData['EmbargoDate'])) {
|
||||
$dataset['EmbargoDate'] = $optionalData['EmbargoDate'];
|
||||
}
|
||||
|
||||
if (!isset($dataset['DatasetFile'])) {
|
||||
$this->validate($request, [
|
||||
'dataset_file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048'
|
||||
]);
|
||||
|
||||
//update session variable
|
||||
// $dataset = $request->session()->get('dataset');
|
||||
$image = $request->file('dataset_file');
|
||||
$fileName = "productImage-" . time() . '.' . $image->getClientOriginalExtension();
|
||||
$path = $image->storeAs(
|
||||
'files',
|
||||
$fileName
|
||||
);
|
||||
// $path = Storage::putFile('files', $image, $fileName);
|
||||
|
||||
//$dataset = $request->session()->get('dataset');
|
||||
$dataset['DatasetFile'] = $fileName;
|
||||
}
|
||||
$request->session()->put('dataset', $dataset);
|
||||
return redirect()->route('dataset.create3');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Product Review page
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function createStep3(Request $request)
|
||||
{
|
||||
//if no dataset is'nt in session variable return to step1
|
||||
if (empty($request->session()->get('dataset'))) {
|
||||
return redirect()->route('dataset.create1');
|
||||
}
|
||||
$dataset = $request->session()->get('dataset');
|
||||
return view('publish.create-step3', compact('dataset'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$dataset = $request->session()->get('dataset');
|
||||
// $product->save();
|
||||
// return redirect('/dataset');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
162
app/Http/Controllers/SearchController.php
Normal file
162
app/Http/Controllers/SearchController.php
Normal file
|
@ -0,0 +1,162 @@
|
|||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Book;
|
||||
use App\Dataset;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
use App\Library\Search\Navigation;
|
||||
use App\Library\Util\SolrSearchSearcher;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class SearchController extends Controller
|
||||
{
|
||||
private $_query;
|
||||
private $_numOfHits;
|
||||
private $_searchtype;
|
||||
private $_resultList;
|
||||
private $_facetMenu;
|
||||
|
||||
protected $client;
|
||||
|
||||
/**
|
||||
* Initialize controller.
|
||||
*/
|
||||
public function __construct(\Solarium\Client $client)
|
||||
{
|
||||
$this->client = $client;
|
||||
// $config = config('solarium');
|
||||
// $config = array(
|
||||
// 'endpoint' => array(
|
||||
// 'localhost' => array(
|
||||
// 'host' => '127.0.0.1',
|
||||
// 'port' => '8983',
|
||||
// 'path' => '/solr/#',
|
||||
// 'core' => 'opus4'
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// $this->client = new \Solarium\Client($config);
|
||||
}
|
||||
|
||||
public function ping()
|
||||
{
|
||||
// create a ping query
|
||||
$ping = $this->client->createPing();
|
||||
|
||||
// execute the ping query
|
||||
try {
|
||||
$this->client->ping($ping);
|
||||
return response()->json('OK');
|
||||
} catch (\Solarium\Exception\HttpException $e) {
|
||||
return response()->json('ERROR', 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function search1(Request $request) : View
|
||||
{
|
||||
$this->_request = $request;
|
||||
$data=$request->all();
|
||||
//$this->_searchtype = $request->input('searchtype');
|
||||
$this->_searchtype = $request->input('searchtype');
|
||||
return view('rdr.solrsearch.index');
|
||||
}
|
||||
|
||||
public function search(Request $request) : View
|
||||
{
|
||||
Log::info('Received new search request. Redirecting to search action of IndexController.');
|
||||
$this->_request = $request;
|
||||
|
||||
//$filter =$request->input('query');
|
||||
// $query = $this->client->createSelect();
|
||||
// $query->setQuery('%P1%', array($filter));
|
||||
// // $query->setQuery('*:*');
|
||||
|
||||
// $results = $this->client->select($query);
|
||||
// // // display the total number of documents found by solr
|
||||
// echo 'NumFound: ' .$results->getNumFound();
|
||||
|
||||
//$this->_query = Navigation::getQueryUrl($request);
|
||||
$query = $this->buildQuery();
|
||||
if (!is_null($query)) {
|
||||
$this->_query = $query;
|
||||
$this->performSearch();
|
||||
|
||||
// set start and rows param (comparable to SQL limit) using fluent interface
|
||||
//$query->setStart(2)->setRows(20);
|
||||
// set fields to fetch (this overrides the default setting 'all fields')
|
||||
//$query->setFields(array('id','year'));
|
||||
|
||||
|
||||
$results = $this->_resultList->getResults();
|
||||
$numOfHits = $this->_numOfHits;
|
||||
|
||||
|
||||
return view('rdr.solrsearch.index', compact('results', 'numOfHits'));
|
||||
}
|
||||
return view('rdr.solrsearch.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays simple search form.
|
||||
*/
|
||||
public function index() : View
|
||||
{
|
||||
$totalNumOfDocs = Dataset::count();
|
||||
return view('rdr.solrsearch.index', compact('totalNumOfDocs'));
|
||||
}
|
||||
|
||||
|
||||
public function searchDb(Request $request) : View
|
||||
{
|
||||
$searchType = "simple";
|
||||
$params = $request->all();
|
||||
//build query
|
||||
$this->_searchtype = $request->input('searchtype');
|
||||
|
||||
|
||||
// Gets the query string from our form submission
|
||||
//$query = Request::input('search');
|
||||
$filter = $request->input('search');
|
||||
|
||||
//$query = Input::get('search', '');
|
||||
// Returns an array of articles that have the query string located somewhere within
|
||||
// our articles titles. Paginates them so we can break up lots of search results.
|
||||
$books = Book::where('title', 'LIKE', '%' . $filter . '%')
|
||||
->get();//paginate(10);
|
||||
|
||||
// returns a view and passes the view the list of articles and the original query.
|
||||
return view('rdr.solrsearch.index', compact('books'));
|
||||
}
|
||||
|
||||
|
||||
#region private helper
|
||||
|
||||
private function buildQuery()
|
||||
{
|
||||
$request = $this->_request;
|
||||
$this->_searchtype = $request->input('searchtype');
|
||||
return Navigation::getQueryUrl($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO this should happen in model class so it can be tested directly
|
||||
*/
|
||||
private function performSearch()
|
||||
{
|
||||
//$this->getLogger()->debug('performing search');
|
||||
try {
|
||||
$searcher = new SolrSearchSearcher();
|
||||
// $openFacets = $this->_facetMenu->buildFacetArray( $this->getRequest()->getParams() );
|
||||
// $searcher->setFacetArray($openFacets);
|
||||
$this->_resultList = $searcher->search($this->_query);
|
||||
// $this->view->openFacets = $openFacets;
|
||||
} catch (Exception $e) {
|
||||
// $this->getLogger()->err(__METHOD__ . ' : ' . $e);
|
||||
//throw new Application_SearchException($e);
|
||||
echo 'Exception abgefangen: ', $e->getMessage(), "\n";
|
||||
}
|
||||
$this->_numOfHits = $this->_resultList->getNumberOfHits();
|
||||
}
|
||||
#endregion private helper
|
||||
}
|
96
app/Http/Controllers/Settings/CategoryController.php
Normal file
96
app/Http/Controllers/Settings/CategoryController.php
Normal 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');
|
||||
}
|
||||
}
|
||||
}
|
200
app/Http/Controllers/Settings/DatasetController.php
Normal file
200
app/Http/Controllers/Settings/DatasetController.php
Normal 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');
|
||||
}
|
||||
}
|
47
app/Http/Controllers/Settings/LicenseController.php
Normal file
47
app/Http/Controllers/Settings/LicenseController.php
Normal 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');
|
||||
}
|
||||
}
|
133
app/Http/Controllers/Settings/PersonController.php
Normal file
133
app/Http/Controllers/Settings/PersonController.php
Normal 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');
|
||||
}
|
||||
}
|
108
app/Http/Controllers/Settings/RoleController.php
Normal file
108
app/Http/Controllers/Settings/RoleController.php
Normal 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)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
169
app/Http/Controllers/Settings/UserController.php
Normal file
169
app/Http/Controllers/Settings/UserController.php
Normal 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.');
|
||||
}
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests;
|
||||
use App\Http\Controllers\Controller;
|
||||
|
@ -6,78 +7,64 @@ use App\Shelf;
|
|||
use App\Http\Requests\ShelfRequest;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ShelfController extends Controller {
|
||||
class ShelfController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
$this->middleware('auth');
|
||||
public function index()
|
||||
{
|
||||
$shelves = Shelf::get();
|
||||
return view('lms.settings.shelf.shelf', compact('shelves'));
|
||||
}
|
||||
|
||||
}
|
||||
public function add()
|
||||
{
|
||||
return view('lms.settings.shelf.add');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$shelves = Shelf::get();
|
||||
public function store(ShelfRequest $request)
|
||||
{
|
||||
$input = $request->all();
|
||||
|
||||
return view('lms.settings.shelf.shelf', compact('shelves'));
|
||||
}
|
||||
$shelf = Shelf::create($input);
|
||||
|
||||
public function add()
|
||||
{
|
||||
|
||||
return view('lms.settings.shelf.add');
|
||||
//flash messaging
|
||||
session()->flash('flash_message', 'You have been added 1 shelf!');
|
||||
|
||||
}
|
||||
return redirect()->route('settings.shelf');
|
||||
}
|
||||
|
||||
public function store(ShelfRequest $request)
|
||||
{
|
||||
|
||||
$input = $request->all();
|
||||
public function edit($id)
|
||||
{
|
||||
$shelf = Shelf::findOrFail($id);
|
||||
return view('lms.settings.shelf.edit', compact('shelf'));
|
||||
}
|
||||
|
||||
$shelf = Shelf::create($input);
|
||||
public function update($id, ShelfRequest $request)
|
||||
{
|
||||
$shelf = Shelf::findOrFail($id);
|
||||
|
||||
//flash messaging
|
||||
session()->flash('flash_message', 'You have been added 1 shelf!');
|
||||
$input = $request->all();
|
||||
|
||||
return redirect()->route('settings.shelf');
|
||||
$shelf->update($input);
|
||||
|
||||
}
|
||||
session()->flash('flash_message', 'You have been updated 1 shelf!');
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
|
||||
$shelf = Shelf::findOrFail($id);
|
||||
return redirect()->route('settings.shelf');
|
||||
}
|
||||
|
||||
return view('lms.settings.shelf.edit', compact('shelf'));
|
||||
public function delete($id)
|
||||
{
|
||||
$shelf = Shelf::findOrFail($id);
|
||||
|
||||
}
|
||||
$shelf->delete();
|
||||
|
||||
public function update($id, ShelfRequest $request)
|
||||
{
|
||||
|
||||
$shelf = Shelf::findOrFail($id);
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$shelf->update($input);
|
||||
|
||||
session()->flash('flash_message', 'You have been updated 1 shelf!');
|
||||
|
||||
return redirect()->route('settings.shelf');
|
||||
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
|
||||
$shelf = Shelf::findOrFail($id);
|
||||
|
||||
$shelf->delete();
|
||||
|
||||
session()->flash('flash_message', 'You have been deleted 1 shelf!');
|
||||
|
||||
return redirect()->route('settings.shelf');
|
||||
|
||||
}
|
||||
session()->flash('flash_message', 'You have been deleted 1 shelf!');
|
||||
|
||||
return redirect()->route('settings.shelf');
|
||||
}
|
||||
}
|
||||
|
|
61
app/Http/Controllers/SitelinkController.php
Normal file
61
app/Http/Controllers/SitelinkController.php
Normal file
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Dataset;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SitelinkController extends Controller
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
//get server state published
|
||||
$serverState = 'published';
|
||||
$select = DB::table('documents')
|
||||
->where('server_state', 'LIKE', "%".$serverState."%");
|
||||
|
||||
$select
|
||||
->select(DB::raw('YEAR(published_date) as published_date'))
|
||||
->distinct(true);
|
||||
|
||||
$this->years = $select->pluck('published_date');
|
||||
$this->ids = array();
|
||||
return view('rdr.sitelink.index')->with(['years'=> $this->years,'documents'=> $this->ids]);
|
||||
}
|
||||
|
||||
public function list($year)
|
||||
{
|
||||
$this->index();
|
||||
if (preg_match('/^\d{4}$/', $year) > 0) {
|
||||
$serverState = 'published';
|
||||
//$select = DB::table('documents')
|
||||
//->where('server_state','LIKE', "%".$serverState."%");
|
||||
$select = Dataset::with('titles', 'authors')
|
||||
->where('server_state', 'LIKE', "%".$serverState."%");
|
||||
|
||||
$from = (int)$year;
|
||||
$until = $year + 1;
|
||||
$select
|
||||
->whereYear('server_date_published', '>=', $from)
|
||||
->whereYear('server_date_published', '<', $until);
|
||||
|
||||
|
||||
$documents = $select
|
||||
->get();
|
||||
|
||||
//$this->years = Dataset::select(DB::raw('YEAR(server_date_modified) as server_date_modified'))
|
||||
//->distinct(true)
|
||||
//->pluck('server_date_modified');
|
||||
//->filter(function ($item) use ($year){
|
||||
// return $item->year !== $year;
|
||||
//});
|
||||
|
||||
|
||||
//$select->select('id');
|
||||
//$this->ids = $select->pluck('id');
|
||||
//return view('rdr.sitelink.index')->with(['years'=> $this->years,'ids'=> $this->ids]);
|
||||
return view('rdr.sitelink.index')->with(['years'=> $this->years,'documents'=> $documents]);
|
||||
}
|
||||
}
|
||||
}
|
25
app/Http/Controllers/StaticPageController.php
Normal file
25
app/Http/Controllers/StaticPageController.php
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class StaticPageController extends Controller
|
||||
{
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
public function imprint()
|
||||
{
|
||||
////$books = Book::available()->orderByTitle()->lists('title', 'id');
|
||||
//$persons = Person::active()->orderByName()->pluck('last_name', 'id');
|
||||
////$categories = Category::lists('category', 'id');
|
||||
//$categories = Project::get();
|
||||
|
||||
//return view('rdr.borrow.borrow', compact('persons', 'categories'));
|
||||
}
|
||||
}
|
|
@ -1,114 +0,0 @@
|
|||
<?php namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Student;
|
||||
use App\Http\Requests\StudentRequest;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class StudentController extends Controller {
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$this->middleware('auth');
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
$students = Student::get();
|
||||
|
||||
return view('lms.settings.student.student', compact('students'));
|
||||
|
||||
}
|
||||
|
||||
public function add()
|
||||
{
|
||||
|
||||
return view('lms.settings.student.add');
|
||||
|
||||
}
|
||||
|
||||
public function store(StudentRequest $request)
|
||||
{
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$input['registered_at'] = time();
|
||||
|
||||
$student = Student::create($input);
|
||||
|
||||
return redirect()->route('settings.student');
|
||||
|
||||
session()->flash('flash_message', 'You have been added 1 student!');
|
||||
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
|
||||
$student = Student::findOrFail($id);
|
||||
|
||||
return view('lms.settings.student.edit', compact('student'));
|
||||
|
||||
}
|
||||
|
||||
public function update($id, StudentRequest $request)
|
||||
{
|
||||
|
||||
$student = Student::findOrFail($id);
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$student->update($input);
|
||||
|
||||
session()->flash('flash_message', 'You have been updated 1 student!');
|
||||
|
||||
return redirect()->route('settings.student');
|
||||
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
|
||||
$student = Student::findOrFail($id);
|
||||
|
||||
$student->delete();
|
||||
|
||||
session()->flash('flash_message', 'You have been deleted 1 student!');
|
||||
|
||||
return redirect()->route('settings.student');
|
||||
|
||||
}
|
||||
|
||||
public function down($id)
|
||||
{
|
||||
|
||||
$student = Student::findOrFail($id);
|
||||
|
||||
$student->update(['status' => 0, 'registered_at' => 12960000]);
|
||||
|
||||
session()->flash('flash_message', 'Anda telah mematikan masa aktif 1 siswa!');
|
||||
|
||||
return redirect()->route('settings.student');
|
||||
|
||||
}
|
||||
|
||||
public function up($id)
|
||||
{
|
||||
$dateNow = time();
|
||||
|
||||
$student = Student::findOrFail($id);
|
||||
|
||||
$student->update(['status' => 1, 'registered_at' => $dateNow]);
|
||||
|
||||
session()->flash('flash_message', 'Anda telah melakukan perpanjangan masa aktif siswa!');
|
||||
|
||||
return redirect()->route('settings.student');
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue