162 lines
5.8 KiB
PHP
162 lines
5.8 KiB
PHP
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title>
|
|
Check In: {{$event->title}}
|
|
</title>
|
|
|
|
{!! HTML::script('vendor/vue/dist/vue.min.js') !!}
|
|
{!! HTML::script('vendor/vue-resource/dist/vue-resource.min.js') !!}
|
|
|
|
{!! HTML::style('assets/stylesheet/application.css') !!}
|
|
{!! HTML::style('assets/stylesheet/check_in.css') !!}
|
|
{!! HTML::script('vendor/jquery/dist/jquery.min.js') !!}
|
|
|
|
@include('Shared/Layouts/ViewJavascript')
|
|
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0">
|
|
|
|
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
<!--[if lt IE 9]>
|
|
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
|
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
|
<![endif]-->
|
|
<style>
|
|
body {
|
|
background: url({{asset('assets/images/background.png')}}) repeat;
|
|
background-color: #2E3254;
|
|
background-attachment: fixed;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body id="app">
|
|
<header>
|
|
<div class="menuToggle hide">
|
|
<i class="ico-menu"></i>
|
|
</div>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="attendee_input_wrap">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button @click="showQrModal" title="Scan QR Code" class="btn btn-default qr_search" type="button"><i
|
|
class="ico-qrcode"></i></button>
|
|
</span>
|
|
{!! Form::text('attendees_q', null, [
|
|
'class' => 'form-control attendee_search',
|
|
'id' => 'search',
|
|
'v-model' => 'searchTerm',
|
|
'@keyup' => 'fetchAttendees | debounce 500',
|
|
'@keyup.esc' => 'clearSearch',
|
|
'placeholder' => 'Search by Attendee Name, Order Reference, Attendee Reference... '
|
|
]) !!}
|
|
|
|
|
|
</div>
|
|
|
|
<span v-if='searchTerm' @click='clearSearch' class="clearSearch ico-cancel"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
|
|
<section class="attendeeList">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="attendee_list">
|
|
<h4 class="attendees_title">
|
|
<span v-if="!searchTerm">
|
|
All Attendees
|
|
</span>
|
|
<span v-else v-cloak>
|
|
@{{searchResultsCount}} @{{searchResultsCount | pluralize 'Result'}}
|
|
for <b>@{{ searchTerm }}</b>
|
|
</span>
|
|
</h4>
|
|
|
|
<div style="margin: 10px;" v-if="searchResultsCount == 0 && searchTerm" class="alert alert-info"
|
|
v-cloak>
|
|
No Attendees matching <b>@{{ searchTerm }}</b>
|
|
</div>
|
|
|
|
<ul v-if="searchResultsCount > 0" class="list-group" id="attendee_list" v-cloak>
|
|
<li
|
|
@click="toggleCheckin(attendee)"
|
|
v-for="attendee in attendees"
|
|
class="at list-group-item"
|
|
:class = "{arrived : attendee.has_arrived}"
|
|
>
|
|
Name: <b>@{{ attendee.first_name }} @{{ attendee.last_name }} </b>
|
|
<br>
|
|
Reference: <b>@{{ attendee.reference }}</b>
|
|
<br>
|
|
Ticket: <b>@{{ attendee.ticket }}</b>
|
|
<a href="" class="ci btn btn-successfulQrRead">
|
|
<i class="ico-checkmark"></i>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<footer class="hide">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
{{--QR Modal--}}
|
|
<div role="dialog" id="QrModal" class="scannerModal" v-show="showScannerModal" v-cloak>
|
|
<div class="scannerModalContent">
|
|
|
|
<a @click="closeScanner" class="closeScanner" href="javascript:void(0);">
|
|
<i class="ico-close"></i>
|
|
</a>
|
|
<video id="scannerVideo" autoplay></video>
|
|
|
|
<div class="scannerButtons">
|
|
<a @click="initScanner" v-show="!isScanning" href="javascript:void(0);">
|
|
Scan another ticket
|
|
</a>
|
|
</div>
|
|
<div v-if="isScanning" class="scannerAimer">
|
|
</div>
|
|
|
|
<div v-if="scanResult" class="scannerResult @{{ scanResultType }}">
|
|
<i v-if="scanResultType == 'success'" class="ico-checkmark"></i>
|
|
<i v-if="scanResultType == 'error'" class="ico-close"></i>
|
|
</div>
|
|
|
|
<div class="ScanResultMessage">
|
|
<span class="message" v-if="!isScanning">
|
|
@{{{ scanResultMessage }}}
|
|
</span>
|
|
<span v-else>
|
|
<div id="scanning-ellipsis">Scanning<span>.</span><span>.</span><span>.</span></div>
|
|
</span>
|
|
</div>
|
|
<canvas id="QrCanvas" width="800" height="600"></canvas>
|
|
</div>
|
|
</div>
|
|
{{-- /END QR Modal--}}
|
|
|
|
<script>
|
|
Vue.http.headers.common['X-CSRF-TOKEN'] = '{{ csrf_token() }}';
|
|
</script>
|
|
|
|
{!! HTML::script('vendor/qrcode-scan/llqrcode.js') !!}
|
|
{!! HTML::script('assets/javascript/check_in.js') !!}
|
|
</body>
|
|
</html>
|