2016-02-29 15:59:36 +00:00
|
|
|
<?php namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
|
|
use Response, Input, Validator;
|
|
|
|
|
use Auth;
|
|
|
|
|
use Image;
|
|
|
|
|
use Storage;
|
|
|
|
|
use View;
|
|
|
|
|
use Carbon\Carbon;
|
|
|
|
|
use App\Models\EventImage;
|
|
|
|
|
use App\Models\Organiser;
|
|
|
|
|
use App\Models\Event;
|
|
|
|
|
|
|
|
|
|
class EventController extends MyBaseController {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function showCreateEvent() {
|
|
|
|
|
|
|
|
|
|
$data = [
|
|
|
|
|
'modal_id' => Input::get('modal_id'),
|
|
|
|
|
'organisers' => Organiser::scope()->lists('name', 'id'),
|
|
|
|
|
'organiser_id' => Input::get('organiser_id') ? Input::get('organiser_id') : false
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
return View::make('ManageOrganiser.Modals.CreateEvent', $data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function postCreateEvent() {
|
|
|
|
|
|
|
|
|
|
$event = Event::createNew();
|
|
|
|
|
|
|
|
|
|
if (!$event->validate(Input::all())) {
|
|
|
|
|
return Response::json(array(
|
|
|
|
|
'status' => 'error',
|
|
|
|
|
'messages' => $event->errors()
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$event->title = Input::get('title');
|
|
|
|
|
$event->description = strip_tags(Input::get('description'));
|
|
|
|
|
$event->start_date = Input::get('start_date') ? Carbon::createFromFormat('d-m-Y H:i', Input::get('start_date')) : NULL;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Venue location info (Usually autofilled from google maps)
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
$is_auto_address = (trim(Input::get('place_id')) !== '');
|
|
|
|
|
|
|
|
|
|
if ($is_auto_address) { /* Google auto filled */
|
|
|
|
|
$event->venue_name = Input::get('name');
|
|
|
|
|
$event->venue_name_full = Input::get('venue_name_full');
|
|
|
|
|
$event->location_lat = Input::get('lat');
|
|
|
|
|
$event->location_long = Input::get('lng');
|
|
|
|
|
$event->location_address = Input::get('formatted_address');
|
|
|
|
|
$event->location_country = Input::get('country');
|
|
|
|
|
$event->location_country_code = Input::get('country_short');
|
|
|
|
|
$event->location_state = Input::get('administrative_area_level_1');
|
|
|
|
|
$event->location_address_line_1 = Input::get('route');
|
|
|
|
|
$event->location_address_line_2 = Input::get('locality');
|
|
|
|
|
$event->location_post_code = Input::get('postal_code');
|
|
|
|
|
$event->location_street_number = Input::get('street_number');
|
|
|
|
|
$event->location_google_place_id = Input::get('place_id');
|
|
|
|
|
$event->location_is_manual = 0;
|
|
|
|
|
} else { /* Manually entered */
|
|
|
|
|
$event->venue_name = Input::get('location_venue_name');
|
|
|
|
|
$event->location_address_line_1 = Input::get('location_address_line_1');
|
|
|
|
|
$event->location_address_line_2 = Input::get('location_address_line_2');
|
|
|
|
|
$event->location_state = Input::get('location_state');
|
|
|
|
|
$event->location_post_code = Input::get('location_post_code');
|
|
|
|
|
$event->location_is_manual = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$event->end_date = Input::get('end_date') ? Carbon::createFromFormat('d-m-Y H:i', Input::get('end_date')) : NULL;
|
|
|
|
|
|
|
|
|
|
$event->currency_id = Auth::user()->account->currency_id;
|
|
|
|
|
//$event->timezone_id = Auth::user()->account->timezone_id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (Input::get('organiser_name')) {
|
|
|
|
|
|
|
|
|
|
$organiser = Organiser::createNew(FALSE, FALSE, TRUE);
|
|
|
|
|
|
|
|
|
|
$rules = array(
|
|
|
|
|
'organiser_name' => array('required'),
|
|
|
|
|
'organiser_email' => array('required', 'email'),
|
|
|
|
|
);
|
|
|
|
|
$messages = array(
|
|
|
|
|
'organiser_name.required' => 'You must give a name for the event organiser.'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
$validator = Validator::make(Input::all(), $rules, $messages);
|
|
|
|
|
|
|
|
|
|
if ($validator->fails()) {
|
|
|
|
|
return Response::json(array(
|
|
|
|
|
'status' => 'error',
|
|
|
|
|
'messages' => $validator->messages()->toArray()
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$organiser->name = Input::get('organiser_name');
|
|
|
|
|
$organiser->about = Input::get('organiser_about');
|
|
|
|
|
$organiser->email = Input::get('organiser_email');
|
|
|
|
|
$organiser->facebook = Input::get('organiser_facebook');
|
|
|
|
|
$organiser->twitter = Input::get('organiser_twitter');
|
|
|
|
|
$organiser->save();
|
|
|
|
|
$event->organiser_id = $organiser->id;
|
|
|
|
|
} elseif (Input::get('organiser_id')) {
|
|
|
|
|
$event->organiser_id = Input::get('organiser_id');
|
|
|
|
|
} else { /* Somethings gone horribly wrong */}
|
|
|
|
|
|
|
|
|
|
$event->save();
|
|
|
|
|
|
|
|
|
|
if (Input::hasFile('event_image')) {
|
|
|
|
|
|
2016-03-04 23:27:13 +00:00
|
|
|
$path = public_path() . '/' . config('attendize.event_images_path');
|
2016-02-29 15:59:36 +00:00
|
|
|
$filename = 'event_image-' . md5(time() . $event->id) . '.' . strtolower(Input::file('event_image')->getClientOriginalExtension());
|
|
|
|
|
|
|
|
|
|
$file_full_path = $path . '/' . $filename;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Input::file('event_image')->move($path, $filename);
|
|
|
|
|
|
|
|
|
|
$img = Image::make($file_full_path);
|
|
|
|
|
|
|
|
|
|
$img->resize(800, null, function ($constraint) {
|
|
|
|
|
$constraint->aspectRatio();
|
|
|
|
|
$constraint->upsize();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$img->save($file_full_path);
|
|
|
|
|
|
|
|
|
|
/* Upload to s3 */
|
2016-03-04 23:27:13 +00:00
|
|
|
\Storage::put(config('attendize.event_images_path').'/'.$filename, file_get_contents($file_full_path));
|
2016-02-29 15:59:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
$eventImage = EventImage::createNew();
|
2016-03-04 23:27:13 +00:00
|
|
|
$eventImage->image_path = config('attendize.event_images_path') . '/' . $filename;
|
2016-02-29 15:59:36 +00:00
|
|
|
$eventImage->event_id = $event->id;
|
|
|
|
|
$eventImage->save();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Response::json(array(
|
|
|
|
|
'status' => 'success',
|
|
|
|
|
'id' => $event->id,
|
|
|
|
|
'redirectUrl' => route('showEventTickets', array(
|
|
|
|
|
'event_id' => $event->id,
|
|
|
|
|
'first_run' => 'yup'
|
|
|
|
|
))
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function postEditEvent($event_id) {
|
|
|
|
|
|
|
|
|
|
$event = Event::scope()->findOrFail($event_id);
|
|
|
|
|
|
|
|
|
|
if (!$event->validate(Input::all())) {
|
|
|
|
|
return Response::json(array(
|
|
|
|
|
'status' => 'error',
|
|
|
|
|
'messages' => $event->errors()
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$event->is_live = Input::get('is_live');
|
|
|
|
|
$event->title = Input::get('title');
|
|
|
|
|
$event->description = strip_tags(Input::get('description'));
|
|
|
|
|
$event->start_date = Input::get('start_date') ? Carbon::createFromFormat('d-m-Y H:i', Input::get('start_date')) : NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* If the google place ID is the same as before then don't update the venue
|
|
|
|
|
*/
|
|
|
|
|
if ((Input::get('place_id') !== $event->location_google_place_id) || $event->location_google_place_id == '') {
|
|
|
|
|
$is_auto_address = (trim(Input::get('place_id')) !== '');
|
|
|
|
|
|
|
|
|
|
if ($is_auto_address) { /* Google auto filled */
|
|
|
|
|
$event->venue_name = Input::get('name');
|
|
|
|
|
$event->venue_name_full = Input::get('venue_name_full');
|
|
|
|
|
$event->location_lat = Input::get('lat');
|
|
|
|
|
$event->location_long = Input::get('lng');
|
|
|
|
|
$event->location_address = Input::get('formatted_address');
|
|
|
|
|
$event->location_country = Input::get('country');
|
|
|
|
|
$event->location_country_code = Input::get('country_short');
|
|
|
|
|
$event->location_state = Input::get('administrative_area_level_1');
|
|
|
|
|
$event->location_address_line_1 = Input::get('route');
|
|
|
|
|
$event->location_address_line_2 = Input::get('locality');
|
|
|
|
|
$event->location_post_code = Input::get('postal_code');
|
|
|
|
|
$event->location_street_number = Input::get('street_number');
|
|
|
|
|
$event->location_google_place_id = Input::get('place_id');
|
|
|
|
|
$event->location_is_manual = 0;
|
|
|
|
|
} else { /* Manually entered */
|
|
|
|
|
$event->venue_name = Input::get('location_venue_name');
|
|
|
|
|
$event->location_address_line_1 = Input::get('location_address_line_1');
|
|
|
|
|
$event->location_address_line_2 = Input::get('location_address_line_2');
|
|
|
|
|
$event->location_state = Input::get('location_state');
|
|
|
|
|
$event->location_post_code = Input::get('location_post_code');
|
|
|
|
|
$event->location_is_manual = 1;
|
|
|
|
|
$event->location_google_place_id = '';
|
|
|
|
|
$event->venue_name_full = '';
|
|
|
|
|
$event->location_lat = '';
|
|
|
|
|
$event->location_long = '';
|
|
|
|
|
$event->location_address = '';
|
|
|
|
|
$event->location_country = '';
|
|
|
|
|
$event->location_country_code = '';
|
|
|
|
|
$event->location_street_number = '';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$event->end_date = Input::get('end_date') ? Carbon::createFromFormat('d-m-Y H:i', Input::get('end_date')) : NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (Input::get('remove_current_image') == '1') {
|
|
|
|
|
EventImage::where('event_id', '=', $event->id)->delete();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$event->save();
|
|
|
|
|
|
|
|
|
|
if (Input::hasFile('event_image')) {
|
|
|
|
|
|
2016-03-04 23:27:13 +00:00
|
|
|
$path = public_path() . '/' . config('attendize.event_images_path');
|
2016-02-29 15:59:36 +00:00
|
|
|
$filename = 'event_image-' . md5(time() . $event->id) . '.' . strtolower(Input::file('event_image')->getClientOriginalExtension());
|
|
|
|
|
|
|
|
|
|
$file_full_path = $path . '/' . $filename;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Input::file('event_image')->move($path, $filename);
|
|
|
|
|
|
|
|
|
|
$img = Image::make($file_full_path);
|
|
|
|
|
|
|
|
|
|
$img->resize(800, null, function ($constraint) {
|
|
|
|
|
$constraint->aspectRatio();
|
|
|
|
|
$constraint->upsize();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$img->save($file_full_path);
|
|
|
|
|
|
2016-03-04 23:27:13 +00:00
|
|
|
\Storage::put(config('attendize.event_images_path').'/'.$filename, file_get_contents($file_full_path));
|
2016-02-29 15:59:36 +00:00
|
|
|
|
|
|
|
|
EventImage::where('event_id', '=', $event->id)->delete();
|
|
|
|
|
|
|
|
|
|
$eventImage = EventImage::createNew();
|
2016-03-04 23:27:13 +00:00
|
|
|
$eventImage->image_path = config('attendize.event_images_path') . '/' . $filename;
|
2016-02-29 15:59:36 +00:00
|
|
|
$eventImage->event_id = $event->id;
|
|
|
|
|
$eventImage->save();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Response::json(array(
|
|
|
|
|
'status' => 'success',
|
|
|
|
|
'id' => $event->id,
|
|
|
|
|
'message' => 'Event Successfully Updated',
|
|
|
|
|
'redirectUrl' => ''
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function postUploadEventImage() {
|
|
|
|
|
|
|
|
|
|
if (Input::hasFile('event_image')) {
|
|
|
|
|
|
|
|
|
|
$the_file = \File::get(Input::file('event_image')->getRealPath());
|
|
|
|
|
$file_name = 'event_details_image-' . md5(microtime()) . '.' . strtolower(Input::file('event_image')->getClientOriginalExtension());
|
|
|
|
|
|
2016-03-04 23:27:13 +00:00
|
|
|
$relative_path_to_file = config('attendize.event_images_path') . '/' . $file_name;
|
2016-02-29 15:59:36 +00:00
|
|
|
$full_path_to_file = public_path().'/'.$relative_path_to_file;
|
|
|
|
|
|
|
|
|
|
$img = Image::make($the_file);
|
|
|
|
|
|
|
|
|
|
$img->resize(1000, null, function ($constraint) {
|
|
|
|
|
$constraint->aspectRatio();
|
|
|
|
|
$constraint->upsize();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$img->save($full_path_to_file);
|
|
|
|
|
if(\Storage::put($file_name, $the_file)) {
|
|
|
|
|
return Response::json([
|
|
|
|
|
'link' => '/'.$relative_path_to_file
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Response::json([
|
|
|
|
|
'error' => 'There was a problem uploading your image.'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|