Attendize/app/Http/Controllers/OrganiserController.php

128 lines
4.1 KiB
PHP
Raw Normal View History

2016-02-29 15:59:36 +00:00
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Session;
use Response,
Input,
Image,
View;
use App\Models\Event;
use App\Models\Organiser;
class OrganiserController extends MyBaseController {
public function showSelectOragniser() {
return View::make('ManageOrganiser.SelectOrganiser');
}
public function showOrganiserDashboard($organiser_id = FALSE) {
$allowed_sorts = ['created_at', 'start_date', 'end_date', 'title'];
$searchQuery = Input::get('q');
//$sort_order = Input::get('sort_order') == 'asc' ? 'asc' : 'desc';
$sort_by = (in_array(Input::get('sort_by'), $allowed_sorts) ? Input::get('sort_by') : 'start_date');
$events = $searchQuery
? Event::scope()->where('title', 'like', '%' . $searchQuery . '%')->orderBy($sort_by, 'desc')->where('organiser_id', '=', $organiser_id)->paginate(12)
: Event::scope()->where('organiser_id', '=', $organiser_id)->orderBy($sort_by, 'desc')->paginate(12);
$data = [
'events' => $events,
'organisers' => Organiser::scope()->orderBy('name')->get(),
'current_organiser' => Organiser::scope()->find($organiser_id),
'q' => $searchQuery ? $searchQuery : '', //Redundant
'search' => [
'q' => $searchQuery ? $searchQuery : '',
'sort_by' => $sort_by,
'showPast' => Input::get('past')
]
];
return View::make('ManageEvents.OrganiserDashboard', $data);
}
public function showEditOrganiser($organiser_id) {
$organiser = Organiser::scope()->findOrfail($organiser_id);
return View::make('ManageEvents.Modals.EditOrganiser', [
'modal_id' => Input::get('modal_id'),
'organiser' => $organiser
]);
}
public function showCreateOrganiser() {
return View::make('ManageOrganiser.CreateOrganiser', [
'modal_id' => 'createOrganiser'
]);
return View::make('ManageEvents.Modals.CreateOrganiser', [
'modal_id' => Input::get('modal_id')
]);
}
public function postCreateOrganiser() {
$organiser = Organiser::createNew(FALSE, FALSE, TRUE);
if (!$organiser->validate(Input::all())) {
return Response::json(array(
'status' => 'error',
'messages' => $organiser->errors()
));
}
$organiser->name = Input::get('name');
$organiser->about = Input::get('about');
$organiser->email = Input::get('email');
$organiser->facebook = Input::get('facebook');
$organiser->twitter = Input::get('twitter');
$organiser->confirmation_key = md5(time().rand(0,999999));
if (Input::hasFile('organiser_logo')) {
$path = public_path() . '/' . config('attendize.organiser_images_path');
2016-02-29 15:59:36 +00:00
$filename = 'organiser_logo-' . $organiser->id . '.' . strtolower(Input::file('organiser_logo')->getClientOriginalExtension());
$file_full_path = $path . '/' . $filename;
Input::file('organiser_logo')->move($path, $filename);
$img = Image::make($file_full_path);
$img->resize(250, 250, function ($constraint) {
//$constraint->aspectRatio();
$constraint->upsize();
});
$img->save($file_full_path);
if(file_exists($file_full_path)) {
$organiser->logo_path = config('attendize.organiser_images_path') . '/' . $filename;
2016-02-29 15:59:36 +00:00
}
}
$organiser->save();
\Session::flash('message', 'Successfully Created Organiser');
return Response::json(array(
'status' => 'success',
'message' => 'Refreshing..',
'redirectUrl' => route('showOrganiserDashboard', [
'organiser_id' => $organiser->id
])
));
}
}