From 6127084c366e2e4b27f0b2f783b918ad7672c7ca Mon Sep 17 00:00:00 2001 From: Dave Date: Thu, 7 Apr 2016 14:33:07 +0100 Subject: [PATCH] Working on surveys/attendee questions Working on attendee check-in page --- .../Controllers/EventAttendeesController.php | 3 +- .../Controllers/EventCheckInController.php | 8 + .../Controllers/EventCheckoutController.php | 2 +- .../Controllers/EventSurveyController.php | 2 +- app/Http/routes.php | 4 + app/Models/Event.php | 10 + app/Models/Question.php | 2 +- public/assets/stylesheet/qrcode-check-in.css | 2 +- resources/views/ManageEvent/CheckIn.blade.php | 259 +++++++++++++++++- .../Modals/CreateQuestion.blade.php | 2 +- .../ManageEvent/Modals/EditQuestion.blade.php | 2 +- .../Modals/QrcodeCheckIn.blade.php | 0 .../ManageEvent/Modals/ViewAnswers.blade.php | 19 +- .../views/ManageEvent/QrcodeCheckIn.blade.php | 8 +- resources/views/ManageEvent/Surveys.blade.php | 10 + .../views/Shared/Layouts/Master.blade.php | 1 + 16 files changed, 311 insertions(+), 23 deletions(-) create mode 100644 resources/views/ManageEvent/Modals/QrcodeCheckIn.blade.php diff --git a/app/Http/Controllers/EventAttendeesController.php b/app/Http/Controllers/EventAttendeesController.php index b8cd01d1..071d71a4 100644 --- a/app/Http/Controllers/EventAttendeesController.php +++ b/app/Http/Controllers/EventAttendeesController.php @@ -45,7 +45,8 @@ class EventAttendeesController extends MyBaseController ->where(function ($query) use ($searchQuery) { $query->where('orders.order_reference', 'like', $searchQuery.'%') ->orWhere('attendees.first_name', 'like', $searchQuery.'%') - ->orWhere('attendees.email', 'like', $searchQuery.'%') + ->orWhere('attendees.email', 'like', $searchQuery.'%') + ->orWhere('attendees.reference', 'like', $searchQuery.'%') ->orWhere('attendees.last_name', 'like', $searchQuery.'%'); }) ->orderBy(($sort_by == 'order_reference' ? 'orders.' : 'attendees.').$sort_by, $sort_order) diff --git a/app/Http/Controllers/EventCheckInController.php b/app/Http/Controllers/EventCheckInController.php index 68b05946..59c9b814 100644 --- a/app/Http/Controllers/EventCheckInController.php +++ b/app/Http/Controllers/EventCheckInController.php @@ -18,12 +18,20 @@ class EventCheckInController extends MyBaseController */ public function showCheckIn($event_id) { + + $data['event'] = Event::scope()->findOrFail($event_id); $data['attendees'] = $data['event']->attendees; + return view('ManageEvent.CheckIn', $data); } + public function showQRCodeModal(Request $request, $event_id) + { + return view('ManageEvent.Modals.QrcodeCheckIn'); + } + /** * Search attendees * diff --git a/app/Http/Controllers/EventCheckoutController.php b/app/Http/Controllers/EventCheckoutController.php index cb534797..590eb5b7 100644 --- a/app/Http/Controllers/EventCheckoutController.php +++ b/app/Http/Controllers/EventCheckoutController.php @@ -431,7 +431,7 @@ class EventCheckoutController extends Controller $event = Event::findOrFail($ticket_order['event_id']); $attendee_increment = 1; $mirror_buyer_info = isset($request_data['mirror_buyer_info']) ? ($request_data['mirror_buyer_info'] == 'on') : false; - $ticket_questions = $request_data['ticket_holder_questions']; + $ticket_questions = isset($request_data['ticket_holder_questions']) ? $request_data['ticket_holder_questions'] : []; /* diff --git a/app/Http/Controllers/EventSurveyController.php b/app/Http/Controllers/EventSurveyController.php index 494e939a..1717cd8a 100644 --- a/app/Http/Controllers/EventSurveyController.php +++ b/app/Http/Controllers/EventSurveyController.php @@ -9,6 +9,7 @@ use App\Models\Question; use App\Models\QuestionAnswer; use App\Models\QuestionType; use Illuminate\Http\Request; +use Excel; /* Attendize.com - Event Management & Ticketing @@ -222,7 +223,6 @@ class EventSurveyController extends MyBaseController */ public function showEventQuestionAnswers(Request $request, $event_id, $question_id) { - $answers = QuestionAnswer::scope()->where('question_id', $question_id)->get(); $question = Question::scope()->withTrashed()->find($question_id); diff --git a/app/Http/routes.php b/app/Http/routes.php index 0d35d10c..0d3a474a 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -609,6 +609,10 @@ Route::group(['middleware' => ['auth', 'first.run']], function () { 'uses' => 'EventCheckInController@postCheckInAttendee', ]); + Route::get('{event_id}/check_in_qrcode', [ + 'as' => 'showQRCodeModal', + 'uses' => 'EventCheckInController@showQRCodeModal' + ]); /* * ------- diff --git a/app/Models/Event.php b/app/Models/Event.php index 4c9c386b..af8360d0 100644 --- a/app/Models/Event.php +++ b/app/Models/Event.php @@ -51,6 +51,16 @@ class Event extends MyBaseModel return $this->belongsToMany('\App\Models\Question', 'event_question'); } + /** + * The questions associated with the event. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany + */ + public function questions_with_tashed() + { + return $this->belongsToMany('\App\Models\Question', 'event_question')->withTrashed(); + } + /** * The attendees associated with the event. * diff --git a/app/Models/Question.php b/app/Models/Question.php index 8075d92a..6474efd8 100644 --- a/app/Models/Question.php +++ b/app/Models/Question.php @@ -37,7 +37,7 @@ class Question extends MyBaseModel public function answers() { - return $this->hasMany('\App\Models\Answers'); + return $this->hasMany('\App\Models\QuestionAnswer'); } /** diff --git a/public/assets/stylesheet/qrcode-check-in.css b/public/assets/stylesheet/qrcode-check-in.css index 2d289264..0ac50db8 100644 --- a/public/assets/stylesheet/qrcode-check-in.css +++ b/public/assets/stylesheet/qrcode-check-in.css @@ -94,6 +94,6 @@ a:hover{ } #v{ - width: 300px; + width: 300px; } } diff --git a/resources/views/ManageEvent/CheckIn.blade.php b/resources/views/ManageEvent/CheckIn.blade.php index 95fdf0f4..c6c86dea 100644 --- a/resources/views/ManageEvent/CheckIn.blade.php +++ b/resources/views/ManageEvent/CheckIn.blade.php @@ -7,6 +7,7 @@ {!! HTML::style('assets/stylesheet/application.css') !!} {!! HTML::script('vendor/jquery/jquery.js') !!} + {!! HTML::style('assets/stylesheet/qrcode-check-in.css') !!} @@ -40,6 +41,11 @@ :-ms-input-placeholder { /* Internet Explorer 10+ */ } + + body { + background-color: #0384a6; + } + .attendeeList .container { background: #fff; border-radius: 2px; @@ -65,7 +71,7 @@ } header { - background: #6784DB; + background-color: #FFF; padding: 10px 0; position: fixed; top: 0; @@ -93,11 +99,20 @@ height: 40px; } + .qr_search { + height: 40px; + background: #FFF; + color: #000; + font-size: 25px; + border: none; + border-right: 1px solid #999; + } + .clearSearch { position: absolute; - top: 10px; + top: 8px; right: 25px; - font-size: 20px; + font-size: 24px; cursor: pointer; display: none; } @@ -149,6 +164,10 @@ @media (min-width: 100px) and (max-width: 767px) { + header { + border-bottom: 1px solid #ddd; + } + section.attendeeList { margin-top: 60px; } @@ -300,6 +319,12 @@ search(); }); + + $('.qr_search').on('click', function(e) { + load(); + $('#QrModal').modal('show'); + }); + $("input#search").on("keyup", function(e) { clearTimeout($.data(this, 'timer')); var search_string = $(this).val(); @@ -319,6 +344,7 @@ +