diff --git a/app/Http/Controllers/EventQrcodeCheckInController.php b/app/Http/Controllers/EventQrcodeCheckInController.php new file mode 100644 index 00000000..d3093b91 --- /dev/null +++ b/app/Http/Controllers/EventQrcodeCheckInController.php @@ -0,0 +1,114 @@ +findOrFail($event_id); + + JavaScript::put([ + 'qrcodeCheckInRoute' => route('postQRCodeCheckInAttendee', ['event_id' => $event->id]) + ]); + + return view('ManageEvent.QrcodeCheckIn', compact('event')); + } + + /** + * Check in an attendee + * + * @param $event_id + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\JsonResponse + */ + public function postCheckInAttendee($event_id, Request $request) + { + $event = Event::scope()->findOrFail($event_id); + + $qrcodeToken = $request->get('qrcode_token'); + + $attendee = Attendee::scope()->withoutCancelled() + ->join('tickets', 'tickets.id', '=', 'attendees.ticket_id') + ->where(function ($query) use ($event, $qrcodeToken) { + $query->where('attendees.event_id', $event->id) + ->where('attendees.private_reference_number', $qrcodeToken); + })->select([ + 'attendees.id', + 'attendees.order_id', + 'attendees.first_name', + 'attendees.last_name', + 'attendees.email', + 'attendees.reference', + 'attendees.arrival_time', + 'attendees.has_arrived', + 'tickets.title as ticket', + ])->first(); + + if(is_null($attendee)){ + return response()->json(['status' => 'error', 'message' => "Invalid Ticket! Please try again."]); + } + + $relatedAttendesCount = Attendee::where('id', '!=', $attendee->id) + ->where([ + 'order_id' => $attendee->order_id, + 'has_arrived' => false + ])->count(); + + if($relatedAttendesCount >= 1){ + $confirmOrderTicketsRoute = route('confirmCheckInOrderTickets', [$event->id, $attendee->order_id]); + + $appendedText = '

'. csrf_field() .'
'; + } else { + $appendedText = ''; + } + + if ($attendee->has_arrived) { + return response()->json([ + 'status' => 'error', + 'message' => 'Warning: This attendee has already been checked in at '. $attendee->arrival_time->format('H:i A, F j'). '.' . $appendedText + ]); + } + + Attendee::find($attendee->id)->update(['has_arrived' => true, 'arrival_time' => Carbon::now()]); + + return response()->json([ + 'status' => 'success', + 'message' => 'Success !
Name: ' . $attendee->first_name . ' ' . $attendee->last_name . '
Reference: '. $attendee->reference . '
Ticket: '. $attendee->ticket . '.' . $appendedText + ]); + } + + /** + * Confirm tickets of same order. + * + * @param $event_id + * @param $order_id + * @return \Illuminate\Http\Response + */ + public function confirmOrderTickets($event_id, $order_id) + { + $updateRowsCount = Attendee::where([ + 'event_id' => $event_id, + 'order_id' => $order_id, + 'has_arrived' => false + ]) + ->update(['has_arrived' => true, 'arrival_time' => Carbon::now()]); + + session()->flash('success_message', $updateRowsCount . ' other tickets checked in.'); + return back(); + } +} diff --git a/app/Http/routes.php b/app/Http/routes.php index 5b43fedf..98ccfcf2 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -562,6 +562,27 @@ Route::group(['middleware' => ['auth', 'first.run']], function () { 'uses' => 'EventCheckInController@postCheckInAttendee', ]); + + /* + * ------- + * QRCode Check In App + * ------- + */ + Route::get('{event_id}/qrcode_check_in', [ + 'as' => 'showQRCodeChechIn', + 'uses' => 'EventQrcodeCheckInController@showCheckIn', + ]); + + Route::post('{event_id}/qrcode_check_in', [ + 'as' => 'postQRCodeCheckInAttendee', + 'uses' => 'EventQrcodeCheckInController@postCheckInAttendee', + ]); + + Route::match(['PUT', 'PATCH'], '{event_id}/confirm_order_tickets/{order_id}', [ + 'as' => 'confirmCheckInOrderTickets', + 'uses' => 'EventQrcodeCheckInController@confirmOrderTickets', + ]); + /* * ------- * Promote diff --git a/app/Models/Attendee.php b/app/Models/Attendee.php index 4c29e953..caa548ae 100644 --- a/app/Models/Attendee.php +++ b/app/Models/Attendee.php @@ -32,6 +32,8 @@ class Attendee extends MyBaseModel 'ticket_id', 'account_id', 'reference', + 'has_arrived', + 'arrival_time' ]; /** diff --git a/composer.json b/composer.json index 562b06a0..c5c7215a 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,8 @@ "omnipay/paypal": "*", "omnipay/bitpay": "dev-master", "omnipay/coinbase": "dev-master", - "barryvdh/laravel-ide-helper": "^2.1" + "barryvdh/laravel-ide-helper": "^2.1", + "laracasts/utilities": "^2.1" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 45639a4f..49f9932b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,21 +4,21 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "b6dfd5bcb7b2f80c05599fa36f052c64", - "content-hash": "729dadad52da044f226f319cdd758770", + "hash": "a32ff9293593f1a4ebbba773feb95f77", + "content-hash": "047498c5561f95ec60c3ab8660f2c2dc", "packages": [ { "name": "aws/aws-sdk-php", - "version": "3.17.3", + "version": "3.17.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "4d70cbe397c03e84907e10436358f627aab428e6" + "reference": "4853bf1f865f6c6df44db0cd5664319ae806f319" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4d70cbe397c03e84907e10436358f627aab428e6", - "reference": "4d70cbe397c03e84907e10436358f627aab428e6", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4853bf1f865f6c6df44db0cd5664319ae806f319", + "reference": "4853bf1f865f6c6df44db0cd5664319ae806f319", "shasum": "" }, "require": { @@ -85,7 +85,7 @@ "s3", "sdk" ], - "time": "2016-03-29 22:53:44" + "time": "2016-03-17 23:57:52" }, { "name": "barryvdh/laravel-ide-helper", @@ -152,29 +152,29 @@ }, { "name": "classpreloader/classpreloader", - "version": "3.0.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/ClassPreloader/ClassPreloader.git", - "reference": "9b10b913c2bdf90c3d2e0d726b454fb7f77c552a" + "reference": "8c3c14b10309e3b40bce833913a6c0c0b8c8f962" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/9b10b913c2bdf90c3d2e0d726b454fb7f77c552a", - "reference": "9b10b913c2bdf90c3d2e0d726b454fb7f77c552a", + "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/8c3c14b10309e3b40bce833913a6c0c0b8c8f962", + "reference": "8c3c14b10309e3b40bce833913a6c0c0b8c8f962", "shasum": "" }, "require": { - "nikic/php-parser": "^1.0|^2.0", + "nikic/php-parser": "~1.3", "php": ">=5.5.9" }, "require-dev": { - "phpunit/phpunit": "^4.8|^5.0" + "phpunit/phpunit": "~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -202,7 +202,63 @@ "class", "preload" ], - "time": "2015-11-09 22:51:51" + "time": "2015-06-28 21:39:13" + }, + { + "name": "danielstjules/stringy", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/danielstjules/Stringy.git", + "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/danielstjules/Stringy/zipball/4749c205db47ee5b32e8d1adf6d9aff8db6caf3b", + "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Stringy\\": "src/" + }, + "files": [ + "src/Create.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel St. Jules", + "email": "danielst.jules@gmail.com", + "homepage": "http://www.danielstjules.com" + } + ], + "description": "A string manipulation library with multibyte support", + "homepage": "https://github.com/danielstjules/Stringy", + "keywords": [ + "UTF", + "helpers", + "manipulation", + "methods", + "multibyte", + "string", + "utf-8", + "utility", + "utils" + ], + "time": "2015-07-23 00:54:12" }, { "name": "dnoegel/php-xdg-base-dir", @@ -310,12 +366,12 @@ "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "adf81af61c89f0be9c091e905ca7c6f1f2398271" + "reference": "eaa6b4f3cb9a779bd9f8ead71bd30427f8e863e1" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/dompdf/dompdf/zipball/adf81af61c89f0be9c091e905ca7c6f1f2398271", - "reference": "adf81af61c89f0be9c091e905ca7c6f1f2398271", + "reference": "eaa6b4f3cb9a779bd9f8ead71bd30427f8e863e1", "shasum": "" }, "require": { @@ -363,7 +419,7 @@ ], "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", "homepage": "https://github.com/dompdf/dompdf", - "time": "2016-03-27 20:25:38" + "time": "2016-03-09 04:08:12" }, { "name": "erusev/parsedown", @@ -603,16 +659,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.2.0", + "version": "6.1.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d094e337976dff9d8e2424e8485872194e768662" + "reference": "c6851d6e48f63b69357cbfa55bca116448140e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d094e337976dff9d8e2424e8485872194e768662", - "reference": "d094e337976dff9d8e2424e8485872194e768662", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/c6851d6e48f63b69357cbfa55bca116448140e0c", + "reference": "c6851d6e48f63b69357cbfa55bca116448140e0c", "shasum": "" }, "require": { @@ -628,7 +684,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.2-dev" + "dev-master": "6.1-dev" } }, "autoload": { @@ -661,7 +717,7 @@ "rest", "web service" ], - "time": "2016-03-21 20:02:09" + "time": "2015-11-23 00:47:50" }, { "name": "guzzlehttp/promises", @@ -880,48 +936,6 @@ ], "time": "2016-02-26 18:18:19" }, - { - "name": "ircmaxell/password-compat", - "version": "v1.0.4", - "source": { - "type": "git", - "url": "https://github.com/ircmaxell/password_compat.git", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", - "shasum": "" - }, - "require-dev": { - "phpunit/phpunit": "4.*" - }, - "type": "library", - "autoload": { - "files": [ - "lib/password.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthony Ferrara", - "email": "ircmaxell@php.net", - "homepage": "http://blog.ircmaxell.com" - } - ], - "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", - "homepage": "https://github.com/ircmaxell/password_compat", - "keywords": [ - "hashing", - "password" - ], - "time": "2014-11-20 16:49:30" - }, { "name": "iron-io/iron_core", "version": "1.0.1", @@ -1170,44 +1184,90 @@ "time": "2015-12-05 17:17:57" }, { - "name": "laravel/framework", - "version": "v5.2.27", + "name": "laracasts/utilities", + "version": "2.1", "source": { "type": "git", - "url": "https://github.com/laravel/framework.git", - "reference": "ccda783ffa253ed27dd1d4b41dbbc95e76e48a2a" + "url": "https://github.com/laracasts/PHP-Vars-To-Js-Transformer.git", + "reference": "4402a0ed774f8eb36ea7ba169341d9d5b6049378" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/ccda783ffa253ed27dd1d4b41dbbc95e76e48a2a", - "reference": "ccda783ffa253ed27dd1d4b41dbbc95e76e48a2a", + "url": "https://api.github.com/repos/laracasts/PHP-Vars-To-Js-Transformer/zipball/4402a0ed774f8eb36ea7ba169341d9d5b6049378", + "reference": "4402a0ed774f8eb36ea7ba169341d9d5b6049378", "shasum": "" }, "require": { - "classpreloader/classpreloader": "~3.0", + "illuminate/support": "~5.0", + "php": ">=5.4.0" + }, + "require-dev": { + "phpspec/phpspec": "~2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laracasts\\Utilities\\JavaScript\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeffrey Way", + "email": "jeffrey@laracasts.com" + } + ], + "description": "Transform your PHP to JavaScript", + "keywords": [ + "javascript", + "laravel" + ], + "time": "2015-10-01 05:16:28" + }, + { + "name": "laravel/framework", + "version": "v5.1.20", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "435af155ed15a6b1d03a0d0a46ae4c347d96b0d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/435af155ed15a6b1d03a0d0a46ae4c347d96b0d7", + "reference": "435af155ed15a6b1d03a0d0a46ae4c347d96b0d7", + "shasum": "" + }, + "require": { + "classpreloader/classpreloader": "~2.0", + "danielstjules/stringy": "~1.8", "doctrine/inflector": "~1.0", "ext-mbstring": "*", "ext-openssl": "*", - "jeremeamia/superclosure": "~2.2", + "jeremeamia/superclosure": "~2.0", "league/flysystem": "~1.0", "monolog/monolog": "~1.11", "mtdowling/cron-expression": "~1.0", - "nesbot/carbon": "~1.20", - "paragonie/random_compat": "~1.4", + "nesbot/carbon": "~1.19", + "paragonie/random_compat": "^1.0.4", "php": ">=5.5.9", - "psy/psysh": "0.7.*", + "psy/psysh": "~0.5.1", "swiftmailer/swiftmailer": "~5.1", - "symfony/console": "2.8.*|3.0.*", - "symfony/debug": "2.8.*|3.0.*", - "symfony/finder": "2.8.*|3.0.*", - "symfony/http-foundation": "2.8.*|3.0.*", - "symfony/http-kernel": "2.8.*|3.0.*", - "symfony/polyfill-php56": "~1.0", - "symfony/process": "2.8.*|3.0.*", - "symfony/routing": "2.8.*|3.0.*", - "symfony/translation": "2.8.*|3.0.*", - "symfony/var-dumper": "2.8.*|3.0.*", - "vlucas/phpdotenv": "~2.2" + "symfony/console": "2.7.*", + "symfony/css-selector": "2.7.*", + "symfony/debug": "2.7.*", + "symfony/dom-crawler": "2.7.*", + "symfony/finder": "2.7.*", + "symfony/http-foundation": "2.7.*", + "symfony/http-kernel": "2.7.*", + "symfony/process": "2.7.*", + "symfony/routing": "2.7.*", + "symfony/translation": "2.7.*", + "symfony/var-dumper": "2.7.*", + "vlucas/phpdotenv": "~1.0" }, "replace": { "illuminate/auth": "self.version", @@ -1224,6 +1284,7 @@ "illuminate/events": "self.version", "illuminate/exception": "self.version", "illuminate/filesystem": "self.version", + "illuminate/foundation": "self.version", "illuminate/hashing": "self.version", "illuminate/http": "self.version", "illuminate/log": "self.version", @@ -1241,30 +1302,28 @@ }, "require-dev": { "aws/aws-sdk-php": "~3.0", - "mockery/mockery": "~0.9.2", + "iron-io/iron_mq": "~2.0", + "mockery/mockery": "~0.9.1", "pda/pheanstalk": "~3.0", - "phpunit/phpunit": "~4.1", - "predis/predis": "~1.0", - "symfony/css-selector": "2.8.*|3.0.*", - "symfony/dom-crawler": "2.8.*|3.0.*" + "phpunit/phpunit": "~4.0", + "predis/predis": "~1.0" }, "suggest": { "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.4).", "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).", + "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers (~5.3|~6.0).", + "iron-io/iron_mq": "Required to use the iron queue driver (~2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0).", - "symfony/css-selector": "Required to use some of the crawler integration testing tools (2.8.*|3.0.*).", - "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (2.8.*|3.0.*)." + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.2-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -1295,20 +1354,20 @@ "framework", "laravel" ], - "time": "2016-03-29 13:32:58" + "time": "2015-10-14 15:49:40" }, { "name": "laravel/socialite", - "version": "v2.0.15", + "version": "v2.0.14", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "edd00ab96933e3ef053533cce81e958fb26921af" + "reference": "b15f4be0ac739405120d74b837af423aa71502d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/edd00ab96933e3ef053533cce81e958fb26921af", - "reference": "edd00ab96933e3ef053533cce81e958fb26921af", + "url": "https://api.github.com/repos/laravel/socialite/zipball/b15f4be0ac739405120d74b837af423aa71502d9", + "reference": "b15f4be0ac739405120d74b837af423aa71502d9", "shasum": "" }, "require": { @@ -1349,7 +1408,7 @@ "laravel", "oauth" ], - "time": "2016-03-21 14:30:30" + "time": "2015-10-16 15:39:46" }, { "name": "league/flysystem", @@ -1546,38 +1605,38 @@ }, { "name": "maatwebsite/excel", - "version": "v2.0.9", + "version": "v2.0.10", "source": { "type": "git", "url": "https://github.com/Maatwebsite/Laravel-Excel.git", - "reference": "bd9428da19fb3de9bbdd80f18f31b744485dc250" + "reference": "be63dcef4394a4bbeaf524e7fe89340b7dab6b7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Maatwebsite/Laravel-Excel/zipball/bd9428da19fb3de9bbdd80f18f31b744485dc250", - "reference": "bd9428da19fb3de9bbdd80f18f31b744485dc250", + "url": "https://api.github.com/repos/Maatwebsite/Laravel-Excel/zipball/be63dcef4394a4bbeaf524e7fe89340b7dab6b7a", + "reference": "be63dcef4394a4bbeaf524e7fe89340b7dab6b7a", "shasum": "" }, "require": { - "illuminate/cache": "~5.0|~5.1", - "illuminate/config": "~5.0|~5.1", - "illuminate/filesystem": "~5.0|~5.1", - "illuminate/support": "~5.0|~5.1", + "illuminate/cache": "5.0.*|5.1.*", + "illuminate/config": "5.0.*|5.1.*", + "illuminate/filesystem": "5.0.*|5.1.*", + "illuminate/support": "5.0.*|5.1.*", "nesbot/carbon": "~1.0", - "php": ">=5.3.0", - "phpoffice/phpexcel": "~1.8.0", + "php": ">=5.4", + "phpoffice/phpexcel": "1.8.*", "tijsverkoyen/css-to-inline-styles": "~1.5" }, "require-dev": { "mockery/mockery": "~0.9", - "orchestra/testbench": "~3.0.0", - "phpseclib/phpseclib": ">=0.3.7", + "orchestra/testbench": "3.0.*", + "phpseclib/phpseclib": "~1.0", "phpunit/phpunit": "~4.0" }, "suggest": { - "illuminate/http": "~5.0|~5.1", - "illuminate/routing": "~5.0|~5.1", - "illuminate/view": "~5.0|~5.1" + "illuminate/http": "5.0.*|5.1.*", + "illuminate/routing": "5.0.*|5.1.*", + "illuminate/view": "5.0.*|5.1.*" }, "type": "library", "autoload": { @@ -1609,7 +1668,7 @@ "import", "laravel" ], - "time": "2015-10-26 10:15:37" + "time": "2015-10-26 11:52:19" }, { "name": "maxhoffmann/parsedown-laravel", @@ -1993,38 +2052,32 @@ }, { "name": "nikic/php-parser", - "version": "v2.0.1", + "version": "v1.4.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "ce5be709d59b32dd8a88c80259028759991a4206" + "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/ce5be709d59b32dd8a88c80259028759991a4206", - "reference": "ce5be709d59b32dd8a88c80259028759991a4206", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51", + "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=5.4" + "php": ">=5.3" }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "bin": [ - "bin/php-parse" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.4-dev" } }, "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } + "files": [ + "lib/bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2040,7 +2093,7 @@ "parser", "php" ], - "time": "2016-02-28 19:48:28" + "time": "2015-09-19 14:15:08" }, { "name": "nitmedia/wkhtml2pdf", @@ -2727,29 +2780,29 @@ }, { "name": "psy/psysh", - "version": "v0.7.2", + "version": "v0.5.2", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "e64e10b20f8d229cac76399e1f3edddb57a0f280" + "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/e64e10b20f8d229cac76399e1f3edddb57a0f280", - "reference": "e64e10b20f8d229cac76399e1f3edddb57a0f280", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/aaf8772ade08b5f0f6830774a5d5c2f800415975", + "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975", "shasum": "" }, "require": { "dnoegel/php-xdg-base-dir": "0.1", "jakub-onderka/php-console-highlighter": "0.3.*", - "nikic/php-parser": "^1.2.1|~2.0", + "nikic/php-parser": "^1.2.1", "php": ">=5.3.9", "symfony/console": "~2.3.10|^2.4.2|~3.0", "symfony/var-dumper": "~2.7|~3.0" }, "require-dev": { "fabpot/php-cs-fixer": "~1.5", - "phpunit/phpunit": "~3.7|~4.0|~5.0", + "phpunit/phpunit": "~3.7|~4.0", "squizlabs/php_codesniffer": "~2.0", "symfony/finder": "~2.1|~3.0" }, @@ -2765,15 +2818,15 @@ "type": "library", "extra": { "branch-alias": { - "dev-develop": "0.8.x-dev" + "dev-develop": "0.6.x-dev" } }, "autoload": { "files": [ "src/Psy/functions.php" ], - "psr-4": { - "Psy\\": "src/Psy/" + "psr-0": { + "Psy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2795,7 +2848,7 @@ "interactive", "shell" ], - "time": "2016-03-09 05:03:14" + "time": "2015-07-16 15:26:57" }, { "name": "swiftmailer/swiftmailer", @@ -2908,26 +2961,25 @@ }, { "name": "symfony/console", - "version": "v3.0.3", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "2ed5e2706ce92313d120b8fe50d1063bcfd12e04" + "reference": "ee91ec301cd88ee38ab14505025fe94bbc19a9c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/2ed5e2706ce92313d120b8fe50d1063bcfd12e04", - "reference": "2ed5e2706ce92313d120b8fe50d1063bcfd12e04", + "url": "https://api.github.com/repos/symfony/console/zipball/ee91ec301cd88ee38ab14505025fe94bbc19a9c1", + "reference": "ee91ec301cd88ee38ab14505025fe94bbc19a9c1", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=5.3.9" }, "require-dev": { "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0" + "symfony/event-dispatcher": "~2.1", + "symfony/process": "~2.1" }, "suggest": { "psr/log": "For using the console logger", @@ -2937,7 +2989,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -2964,29 +3016,29 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2016-02-28 16:24:34" + "time": "2016-02-28 16:19:47" }, { "name": "symfony/css-selector", - "version": "v3.0.3", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "6605602690578496091ac20ec7a5cbd160d4dff4" + "reference": "5377825bb6496514f63603af417fa07afaa12357" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/6605602690578496091ac20ec7a5cbd160d4dff4", - "reference": "6605602690578496091ac20ec7a5cbd160d4dff4", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/5377825bb6496514f63603af417fa07afaa12357", + "reference": "5377825bb6496514f63603af417fa07afaa12357", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -3017,37 +3069,37 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2016-01-27 05:14:46" + "time": "2016-01-27 05:09:39" }, { "name": "symfony/debug", - "version": "v3.0.3", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "29606049ced1ec715475f88d1bbe587252a3476e" + "reference": "e96f1ff28e2b8b2f3b906245b18d5e6a52e73648" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/29606049ced1ec715475f88d1bbe587252a3476e", - "reference": "29606049ced1ec715475f88d1bbe587252a3476e", + "url": "https://api.github.com/repos/symfony/debug/zipball/e96f1ff28e2b8b2f3b906245b18d5e6a52e73648", + "reference": "e96f1ff28e2b8b2f3b906245b18d5e6a52e73648", "shasum": "" }, "require": { - "php": ">=5.5.9", + "php": ">=5.3.9", "psr/log": "~1.0" }, "conflict": { "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" }, "require-dev": { - "symfony/class-loader": "~2.8|~3.0", - "symfony/http-kernel": "~2.8|~3.0" + "symfony/class-loader": "~2.2", + "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -3074,20 +3126,75 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2016-01-27 05:14:46" + "time": "2016-01-25 23:34:19" }, { - "name": "symfony/event-dispatcher", - "version": "v2.8.4", + "name": "symfony/dom-crawler", + "version": "v2.7.10", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "47d2d8cade9b1c3987573d2943bb9352536cdb87" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "c7a6dfd2720581a61d06c04489e9b3df1e4f7eaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/47d2d8cade9b1c3987573d2943bb9352536cdb87", - "reference": "47d2d8cade9b1c3987573d2943bb9352536cdb87", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c7a6dfd2720581a61d06c04489e9b3df1e4f7eaf", + "reference": "c7a6dfd2720581a61d06c04489e9b3df1e4f7eaf", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/css-selector": "~2.3" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2016-02-28 16:19:47" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.8.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "78c468665c9568c3faaa9c416a7134308f2d85c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/78c468665c9568c3faaa9c416a7134308f2d85c3", + "reference": "78c468665c9568c3faaa9c416a7134308f2d85c3", "shasum": "" }, "require": { @@ -3134,29 +3241,29 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2016-03-07 14:04:32" + "time": "2016-01-27 05:14:19" }, { "name": "symfony/finder", - "version": "v3.0.3", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "623bda0abd9aa29e529c8e9c08b3b84171914723" + "reference": "addcb70b33affbca4f3979b0d000259b63dd6711" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/623bda0abd9aa29e529c8e9c08b3b84171914723", - "reference": "623bda0abd9aa29e529c8e9c08b3b84171914723", + "url": "https://api.github.com/repos/symfony/finder/zipball/addcb70b33affbca4f3979b0d000259b63dd6711", + "reference": "addcb70b33affbca4f3979b0d000259b63dd6711", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -3183,41 +3290,41 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2016-01-27 05:14:46" + "time": "2016-02-22 16:12:29" }, { "name": "symfony/http-foundation", - "version": "v2.8.4", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "06d6b2c755b2f34ce21e688b62072e9c625709c4" + "reference": "6aeb70d26da8f30753111b3f9cf47eb0421c0735" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/06d6b2c755b2f34ce21e688b62072e9c625709c4", - "reference": "06d6b2c755b2f34ce21e688b62072e9c625709c4", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6aeb70d26da8f30753111b3f9cf47eb0421c0735", + "reference": "6aeb70d26da8f30753111b3f9cf47eb0421c0735", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php54": "~1.0", - "symfony/polyfill-php55": "~1.0" + "php": ">=5.3.9" }, "require-dev": { - "symfony/expression-language": "~2.4|~3.0.0" + "symfony/expression-language": "~2.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "2.7-dev" } }, "autoload": { "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" }, + "classmap": [ + "Resources/stubs" + ], "exclude-from-classmap": [ "/Tests/" ] @@ -3238,48 +3345,48 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2016-03-27 12:57:53" + "time": "2016-02-28 16:19:47" }, { "name": "symfony/http-kernel", - "version": "v3.0.3", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "59c0a1972e9aad87b7a56bbe1ccee26b7535a0db" + "reference": "11082f03c03e17dd2ca9c149988b229e04829fdc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/59c0a1972e9aad87b7a56bbe1ccee26b7535a0db", - "reference": "59c0a1972e9aad87b7a56bbe1ccee26b7535a0db", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/11082f03c03e17dd2ca9c149988b229e04829fdc", + "reference": "11082f03c03e17dd2ca9c149988b229e04829fdc", "shasum": "" }, "require": { - "php": ">=5.5.9", + "php": ">=5.3.9", "psr/log": "~1.0", - "symfony/debug": "~2.8|~3.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0" + "symfony/debug": "~2.6,>=2.6.2", + "symfony/event-dispatcher": "~2.6,>=2.6.7", + "symfony/http-foundation": "~2.5,>=2.5.4" }, "conflict": { - "symfony/config": "<2.8" + "symfony/config": "<2.7" }, "require-dev": { - "symfony/browser-kit": "~2.8|~3.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0", - "symfony/console": "~2.8|~3.0", - "symfony/css-selector": "~2.8|~3.0", - "symfony/dependency-injection": "~2.8|~3.0", - "symfony/dom-crawler": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/finder": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0", - "symfony/routing": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0", - "symfony/templating": "~2.8|~3.0", - "symfony/translation": "~2.8|~3.0", - "symfony/var-dumper": "~2.8|~3.0" + "symfony/browser-kit": "~2.3", + "symfony/class-loader": "~2.1", + "symfony/config": "~2.7", + "symfony/console": "~2.3", + "symfony/css-selector": "~2.0,>=2.0.5", + "symfony/dependency-injection": "~2.2", + "symfony/dom-crawler": "~2.0,>=2.0.5", + "symfony/expression-language": "~2.4", + "symfony/finder": "~2.0,>=2.0.5", + "symfony/process": "~2.0,>=2.0.5", + "symfony/routing": "~2.2", + "symfony/stopwatch": "~2.3", + "symfony/templating": "~2.2", + "symfony/translation": "~2.0,>=2.0.5", + "symfony/var-dumper": "~2.6" }, "suggest": { "symfony/browser-kit": "", @@ -3293,7 +3400,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -3320,180 +3427,7 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2016-02-28 21:33:13" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "1289d16209491b584839022f29257ad859b8532d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d", - "reference": "1289d16209491b584839022f29257ad859b8532d", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2016-01-20 09:13:37" - }, - { - "name": "symfony/polyfill-php54", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php54.git", - "reference": "9ba741ca01c77282ecf5796c2c1d667f03454ffb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/9ba741ca01c77282ecf5796c2c1d667f03454ffb", - "reference": "9ba741ca01c77282ecf5796c2c1d667f03454ffb", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php54\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2016-01-25 19:13:00" - }, - { - "name": "symfony/polyfill-php55", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php55.git", - "reference": "b4f3f07d91702f8f926339fc4fcf81671d8c27e6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/b4f3f07d91702f8f926339fc4fcf81671d8c27e6", - "reference": "b4f3f07d91702f8f926339fc4fcf81671d8c27e6", - "shasum": "" - }, - "require": { - "ircmaxell/password-compat": "~1.0", - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php55\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 5.5+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2016-01-20 09:13:37" + "time": "2016-02-28 20:37:08" }, { "name": "symfony/polyfill-php56", @@ -3605,25 +3539,25 @@ }, { "name": "symfony/process", - "version": "v3.0.3", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "dfecef47506179db2501430e732adbf3793099c8" + "reference": "faa89438017392585abdf7f5a47f3f5f282d93c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/dfecef47506179db2501430e732adbf3793099c8", - "reference": "dfecef47506179db2501430e732adbf3793099c8", + "url": "https://api.github.com/repos/symfony/process/zipball/faa89438017392585abdf7f5a47f3f5f282d93c1", + "reference": "faa89438017392585abdf7f5a47f3f5f282d93c1", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -3650,41 +3584,40 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2016-02-02 13:44:19" + "time": "2016-02-02 13:32:58" }, { "name": "symfony/routing", - "version": "v3.0.3", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "fa1e9a8173cf0077dd995205da453eacd758fdf6" + "reference": "c63128f6dd5095351a87cd7c8801963001e22aff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/fa1e9a8173cf0077dd995205da453eacd758fdf6", - "reference": "fa1e9a8173cf0077dd995205da453eacd758fdf6", + "url": "https://api.github.com/repos/symfony/routing/zipball/c63128f6dd5095351a87cd7c8801963001e22aff", + "reference": "c63128f6dd5095351a87cd7c8801963001e22aff", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.9" }, "conflict": { - "symfony/config": "<2.8" + "symfony/config": "<2.7" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/common": "~2.2", "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/yaml": "~2.8|~3.0" + "symfony/config": "~2.7", + "symfony/expression-language": "~2.4", + "symfony/http-foundation": "~2.3", + "symfony/yaml": "~2.0,>=2.0.5" }, "suggest": { "doctrine/annotations": "For using the annotation loader", "symfony/config": "For using the all-in-one router or any loader", - "symfony/dependency-injection": "For loading routes from a service", "symfony/expression-language": "For using expression matching", "symfony/http-foundation": "For using a Symfony Request object", "symfony/yaml": "For using the YAML loader" @@ -3692,7 +3625,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -3725,34 +3658,33 @@ "uri", "url" ], - "time": "2016-02-04 13:53:13" + "time": "2016-02-04 13:52:46" }, { "name": "symfony/translation", - "version": "v3.0.3", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "2de0b6f7ebe43cffd8a06996ebec6aab79ea9e91" + "reference": "4c61cf815af17eee4cebf0e4c66f56a2f704cfd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/2de0b6f7ebe43cffd8a06996ebec6aab79ea9e91", - "reference": "2de0b6f7ebe43cffd8a06996ebec6aab79ea9e91", + "url": "https://api.github.com/repos/symfony/translation/zipball/4c61cf815af17eee4cebf0e4c66f56a2f704cfd8", + "reference": "4c61cf815af17eee4cebf0e4c66f56a2f704cfd8", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=5.3.9" }, "conflict": { - "symfony/config": "<2.8" + "symfony/config": "<2.7" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/intl": "~2.8|~3.0", - "symfony/yaml": "~2.8|~3.0" + "symfony/config": "~2.7", + "symfony/intl": "~2.4", + "symfony/yaml": "~2.2" }, "suggest": { "psr/log": "To use logging capability in translator", @@ -3762,7 +3694,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -3789,28 +3721,24 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2016-02-02 13:44:19" + "time": "2016-02-01 20:45:15" }, { "name": "symfony/var-dumper", - "version": "v3.0.3", + "version": "v2.7.10", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "9a6a883c48acb215d4825ce9de61dccf93d62074" + "reference": "e4fdc92abb3dae0d840f4276af701d58ddc9b733" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9a6a883c48acb215d4825ce9de61dccf93d62074", - "reference": "9a6a883c48acb215d4825ce9de61dccf93d62074", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e4fdc92abb3dae0d840f4276af701d58ddc9b733", + "reference": "e4fdc92abb3dae0d840f4276af701d58ddc9b733", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "twig/twig": "~1.20|~2.0" + "php": ">=5.3.9" }, "suggest": { "ext-symfony_debug": "" @@ -3818,7 +3746,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -3852,7 +3780,7 @@ "debug", "dump" ], - "time": "2016-02-13 09:23:44" + "time": "2016-02-12 17:39:33" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -3953,33 +3881,28 @@ }, { "name": "vlucas/phpdotenv", - "version": "v2.2.0", + "version": "v1.1.1", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "9caf304153dc2288e4970caec6f1f3b3bc205412" + "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/9caf304153dc2288e4970caec6f1f3b3bc205412", - "reference": "9caf304153dc2288e4970caec6f1f3b3bc205412", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa", + "reference": "0cac554ce06277e33ddf9f0b7ade4b8bbf2af3fa", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.3.2" }, "require-dev": { - "phpunit/phpunit": "^4.8|^5.0" + "phpunit/phpunit": "~4.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - } - }, "autoload": { - "psr-4": { - "Dotenv\\": "src/" + "psr-0": { + "Dotenv": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4000,7 +3923,7 @@ "env", "environment" ], - "time": "2015-12-29 15:10:30" + "time": "2015-05-30 15:59:26" } ], "packages-dev": [ @@ -4146,16 +4069,16 @@ }, { "name": "phpspec/phpspec", - "version": "2.5.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/phpspec/phpspec.git", - "reference": "385ecb015e97c13818074f1517928b24d4a26067" + "reference": "5528ce1e93a1efa090c9404aba3395c329b4e6ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/phpspec/zipball/385ecb015e97c13818074f1517928b24d4a26067", - "reference": "385ecb015e97c13818074f1517928b24d4a26067", + "url": "https://api.github.com/repos/phpspec/phpspec/zipball/5528ce1e93a1efa090c9404aba3395c329b4e6ed", + "reference": "5528ce1e93a1efa090c9404aba3395c329b4e6ed", "shasum": "" }, "require": { @@ -4220,7 +4143,7 @@ "testing", "tests" ], - "time": "2016-03-20 20:34:32" + "time": "2016-01-01 10:17:54" }, { "name": "phpspec/prophecy", @@ -5023,62 +4946,6 @@ "homepage": "https://github.com/sebastianbergmann/version", "time": "2015-06-21 13:59:46" }, - { - "name": "symfony/dom-crawler", - "version": "v3.0.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "981c8edb4538f88ba976ed44bdcaa683fce3d6c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/981c8edb4538f88ba976ed44bdcaa683fce3d6c6", - "reference": "981c8edb4538f88ba976ed44bdcaa683fce3d6c6", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "symfony/css-selector": "~2.8|~3.0" - }, - "suggest": { - "symfony/css-selector": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DomCrawler Component", - "homepage": "https://symfony.com", - "time": "2016-02-28 16:24:34" - }, { "name": "symfony/yaml", "version": "v3.0.3", diff --git a/config/app.php b/config/app.php index 89861c84..80faed3a 100644 --- a/config/app.php +++ b/config/app.php @@ -167,6 +167,7 @@ return [ Mews\Purifier\PurifierServiceProvider::class, MaxHoffmann\Parsedown\ParsedownServiceProvider::class, Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class, + Laracasts\Utilities\JavaScript\JavaScriptServiceProvider::class, ], /* diff --git a/config/javascript.php b/config/javascript.php new file mode 100644 index 00000000..4d165a6d --- /dev/null +++ b/config/javascript.php @@ -0,0 +1,30 @@ + ['Shared.Layouts.ViewJavascript'], + + /* + |-------------------------------------------------------------------------- + | JavaScript Namespace + |-------------------------------------------------------------------------- + | + | By default, we'll add variables to the global window object. However, + | it's recommended that you change this to some namespace - anything. + | That way, you can access vars, like "SomeNamespace.someVariable." + | + */ + 'js_namespace' => 'Attendize' + +]; diff --git a/public/assets/images/Opera-logo.png b/public/assets/images/Opera-logo.png new file mode 100755 index 00000000..90610937 Binary files /dev/null and b/public/assets/images/Opera-logo.png differ diff --git a/public/assets/images/chrome_logo.gif b/public/assets/images/chrome_logo.gif new file mode 100755 index 00000000..c6bcc7bb Binary files /dev/null and b/public/assets/images/chrome_logo.gif differ diff --git a/public/assets/images/down.png b/public/assets/images/down.png new file mode 100755 index 00000000..e0172a10 Binary files /dev/null and b/public/assets/images/down.png differ diff --git a/public/assets/images/firefox.png b/public/assets/images/firefox.png new file mode 100755 index 00000000..df5e72b4 Binary files /dev/null and b/public/assets/images/firefox.png differ diff --git a/public/assets/stylesheet/qrcode-check-in.css b/public/assets/stylesheet/qrcode-check-in.css new file mode 100644 index 00000000..2d289264 --- /dev/null +++ b/public/assets/stylesheet/qrcode-check-in.css @@ -0,0 +1,99 @@ +body{ + font-family: "Source Sans Pro", sans-serif; +} + +a:active, a:focus, a:visited{ + text-decoration: none; +} + +a:hover{ + text-decoration: underline; +} + +#outdiv +{ + width: 400px; + height: 250px; + margin: 0; + padding: 0; +} + +#v{ + width: 400px; + height: auto; + margin: 0; + padding: 0; + border: 2px solid #c5c5c5; +} + +#qrfile{ + border: 2px solid #c5c5c5; + width: 400px; + height: 250px; +} + +#qr-canvas{ + display:none; +} + +#help-text{ + z-index: 9999999999; + position: relative; + color: #00AEFB; + top: 0; +} + +#imghelp{ + position:relative; + left:0px; + top:-160px; + z-index:100; + background:#f2f2f2; + margin-left:35px; + margin-right:35px; + padding-top:15px; + padding-bottom:15px; + border-radius:20px; +} + +.selector{ + cursor:pointer; +} + +#result{ + border: 1px solid #eaeaea; + padding: 10px; + margin-top: 3em; + color: #456D86; + width: 50%; + background-color: #f2f2f2; + font-size: 1.5em; + font-weight: 500; + box-shadow: none; + border-radius: 3px; + transition: background 0.4s ease-in-out; +} + +/* Mobile */ +@media only screen and (max-width: 480px) { + #result{ + width: 90%; + } + + #outdiv{ + width: 300px; + height: auto; + } + + #help-text{ + top: -35px; + } + + #qrfile{ + width: 300px; + } + + #v{ + width: 300px; + } +} diff --git a/public/mp3/beep.mp3 b/public/mp3/beep.mp3 new file mode 100644 index 00000000..8c4a6dee Binary files /dev/null and b/public/mp3/beep.mp3 differ diff --git a/public/vendor/qrcode-scan/llqrcode.js b/public/vendor/qrcode-scan/llqrcode.js new file mode 100644 index 00000000..9e34ce45 --- /dev/null +++ b/public/vendor/qrcode-scan/llqrcode.js @@ -0,0 +1 @@ +_aa={};_aa._ab=function(f,e){var d=qrcode.width;var b=qrcode.height;var c=true;for(var g=0;gd||h<-1||h>b){throw"Error._ab "}c=false;if(a==-1){e[g]=0;c=true}else{if(a==d){e[g]=d-1;c=true}}if(h==-1){e[g+1]=0;c=true}else{if(h==b){e[g+1]=b-1;c=true}}}c=true;for(var g=e.length-2;g>=0&&c;g-=2){var a=Math.floor(e[g]);var h=Math.floor(e[g+1]);if(a<-1||a>d||h<-1||h>b){throw"Error._ab "}c=false;if(a==-1){e[g]=0;c=true}else{if(a==d){e[g]=d-1;c=true}}if(h==-1){e[g+1]=0;c=true}else{if(h==b){e[g+1]=b-1;c=true}}}};_aa._af=function(b,d,a){var l=new _ac(d);var k=new Array(d<<1);for(var g=0;g>1)+0.5;k[i+1]=j}a._ad(k);_aa._ab(b,k);try{for(var i=0;i>1,g)}}}catch(c){throw"Error._ab"}}return l};_aa._ah=function(h,o,l,k,r,q,b,a,f,e,n,m,t,s,d,c,j,i){var g=_ae._ag(l,k,r,q,b,a,f,e,n,m,t,s,d,c,j,i);return _aa._af(h,o,g)};function _a1(b,a){this.count=b;this._fc=a;this.__defineGetter__("Count",function(){return this.count});this.__defineGetter__("_dm",function(){return this._fc})}function _a2(a,c,b){this._bm=a;if(b){this._do=new Array(c,b)}else{this._do=new Array(c)}this.__defineGetter__("_bo",function(){return this._bm});this.__defineGetter__("_dn",function(){return this._bm*this._fo});this.__defineGetter__("_fo",function(){var e=0;for(var d=0;d6){o._bq(r-11,0,3,6);o._bq(0,r-11,6,3)}return o};this._bu=function(i){return this._do[i.ordinal()]}}_a3._bv=new Array(31892,34236,39577,42195,48118,51042,55367,58893,63784,68472,70749,76311,79154,84390,87683,92361,96236,102084,102881,110507,110734,117786,119615,126325,127568,133589,136944,141498,145311,150283,152622,158308,161089,167017);_a3.VERSIONS=_ay();_a3._av=function(a){if(a<1||a>40){throw"bad arguments"}return _a3.VERSIONS[a-1]};_a3._at=function(b){if(b%4!=1){throw"Error _at"}try{return _a3._av((b-17)>>2)}catch(a){throw"Error _av"}};_a3._aw=function(d){var b=4294967295;var f=0;for(var c=0;c<_a3._bv.length;c++){var a=_a3._bv[c];if(a==d){return this._av(c+7)}var e=_ax._gj(d,a);if(eMath.abs(c-m);if(d){var s=m;m=l;l=s;s=c;c=b;b=s}var j=Math.abs(c-m);var i=Math.abs(b-l);var q=-j>>1;var v=l0){if(g==b){break}g+=v;q-=j}}var k=c-m;var r=b-l;return Math.sqrt((k*k+r*r))};this._bh=function(i,g,h,f){var b=this._bi(i,g,h,f);var e=1;var d=i-(h-i);if(d<0){e=i/(i-d);d=0}else{if(d>=qrcode.width){e=(qrcode.width-1-i)/(d-i);d=qrcode.width-1}}var c=Math.floor(g-(f-g)*e);e=1;if(c<0){e=g/(g-c);c=0}else{if(c>=qrcode.height){e=(qrcode.height-1-g)/(c-g);c=qrcode.height-1}}d=Math.floor(i+(d-i)*e);b+=this._bi(i,g,d,c);return b-1};this._bj=function(c,d){var b=this._bh(Math.floor(c.X),Math.floor(c.Y),Math.floor(d.X),Math.floor(d.Y));var e=this._bh(Math.floor(d.X),Math.floor(d.Y),Math.floor(c.X),Math.floor(c.Y));if(isNaN(b)){return e/7}if(isNaN(e)){return b/7}return(b+e)/14};this._bk=function(d,c,b){return(this._bj(d,c)+this._bj(d,b))/2};this.distance=function(c,b){xDiff=c.X-b.X;yDiff=c.Y-b.Y;return Math.sqrt((xDiff*xDiff+yDiff*yDiff))};this._bx=function(g,f,d,e){var b=Math.round(this.distance(g,f)/e);var c=Math.round(this.distance(g,d)/e);var h=((b+c)>>1)+7;switch(h&3){case 0:h++;break;case 2:h--;break;case 3:throw"Error"}return h};this._bl=function(g,f,d,j){var k=Math.floor(j*g);var h=Math.max(0,f-k);var i=Math.min(qrcode.width-1,f+k);if(i-h0){var f=h.X-j.X+n.X;var e=h.Y-j.Y+n.Y;var c=1-3/k;var u=Math.floor(j.X+c*(f-j.X));var t=Math.floor(j.Y+c*(e-j.Y));for(var q=4;q<=16;q<<=1){l=this._bl(d,u,t,q);break}}var g=this.createTransform(j,h,n,l,s);var m=this._bz(this.image,g,s);var o;if(l==null){o=new Array(n,j,h)}else{o=new Array(n,j,h,l)}return new _bg(m,o)};this.detect=function(){var b=new _cc()._ce(this.image);return this._cd(b)}}var _ca=21522;var _cb=new Array(new Array(21522,0),new Array(20773,1),new Array(24188,2),new Array(23371,3),new Array(17913,4),new Array(16590,5),new Array(20375,6),new Array(19104,7),new Array(30660,8),new Array(29427,9),new Array(32170,10),new Array(30877,11),new Array(26159,12),new Array(25368,13),new Array(27713,14),new Array(26998,15),new Array(5769,16),new Array(5054,17),new Array(7399,18),new Array(6608,19),new Array(1890,20),new Array(597,21),new Array(3340,22),new Array(2107,23),new Array(13663,24),new Array(12392,25),new Array(16177,26),new Array(14854,27),new Array(9396,28),new Array(8579,29),new Array(11994,30),new Array(11245,31));var _ch=new Array(0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4);function _ax(a){this._cf=_cg.forBits((a>>3)&3);this._fe=(a&7);this.__defineGetter__("_cg",function(){return this._cf});this.__defineGetter__("_dx",function(){return this._fe});this.GetHashCode=function(){return(this._cf.ordinal()<<3)|_fe};this.Equals=function(c){var b=c;return this._cf==b._cf&&this._fe==b._fe}}_ax._gj=function(d,c){d^=c;return _ch[d&15]+_ch[(_ew(d,4)&15)]+_ch[(_ew(d,8)&15)]+_ch[(_ew(d,12)&15)]+_ch[(_ew(d,16)&15)]+_ch[(_ew(d,20)&15)]+_ch[(_ew(d,24)&15)]+_ch[(_ew(d,28)&15)]};_ax._ci=function(a){var b=_ax._cj(a);if(b!=null){return b}return _ax._cj(a^_ca)};_ax._cj=function(d){var b=4294967295;var a=0;for(var c=0;c<_cb.length;c++){var g=_cb[c];var f=g[0];if(f==d){return new _ax(g[1])}var e=this._gj(d,f);if(e=FOR_BITS.length){throw"bad arguments"}return FOR_BITS[a]};var L=new _cg(0,1,"L");var M=new _cg(1,0,"M");var Q=new _cg(2,3,"Q");var H=new _cg(3,2,"H");var FOR_BITS=new Array(M,L,H,Q);function _ac(d,a){if(!a){a=d}if(d<1||a<1){throw"Both dimensions must be greater than 0"}this.width=d;this.height=a;var c=d>>5;if((d&31)!=0){c++}this.rowSize=c;this.bits=new Array(c*a);for(var b=0;b>5);return((_ew(this.bits[f],(e&31)))&1)!=0};this._dq=function(e,g){var f=g*this.rowSize+(e>>5);this.bits[f]|=1<<(e&31)};this.flip=function(e,g){var f=g*this.rowSize+(e>>5);this.bits[f]^=1<<(e&31)};this.clear=function(){var e=this.bits.length;for(var f=0;fthis.height||l>this.width){throw"The region must fit inside the matrix"}for(var i=j;i>5)]|=1<<(k&31)}}}}function _dl(a,b){this._dv=a;this._dw=b;this.__defineGetter__("_du",function(){return this._dv});this.__defineGetter__("Codewords",function(){return this._dw})}_dl._gn=function(c,h,s){if(c.length!=h._dp){throw"bad arguments"}var k=h._bu(s);var e=0;var d=k._fb();for(var r=0;r=0){var w=l[b]._dw.length;if(w==u){break}b--}b++;var g=u-k._bo;var a=0;for(var r=0;r=0;c--){g=this._dk(8,c,g)}this._co=_ax._ci(g);if(this._co!=null){return this._co}var f=this._au.Dimension;g=0;var d=f-8;for(var e=f-1;e>=d;e--){g=this._dk(e,8,g)}for(var c=f-7;c>2;if(f<=6){return _a3._av(f)}var g=0;var e=h-11;for(var c=5;c>=0;c--){for(var d=h-9;d>=e;d--){g=this._dk(d,c,g)}}this._cp=_a3._aw(g);if(this._cp!=null&&this._cp._cr==h){return this._cp}g=0;for(var d=5;d>=0;d--){for(var c=h-9;c>=e;c--){g=this._dk(d,c,g)}}this._cp=_a3._aw(g);if(this._cp!=null&&this._cp._cr==h){return this._cp}throw"Error _cq"};this._gk=function(){var r=this._cm();var o=this._cq();var c=_dx._gl(r._dx);var f=this._au.Dimension;c._dj(this._au,f);var k=o._aq();var n=true;var s=new Array(o._dp);var m=0;var q=0;var h=0;for(var e=f-1;e>0;e-=2){if(e==6){e--}for(var l=0;l7){throw"bad arguments"}return _dx._dy[a]};function _fg(){this._dj=function(c,d){for(var b=0;b=Math.floor(R/2)){var rLastLast=rLast;var _ga=sLast;var _gb=tLast;rLast=r;sLast=s;tLast=t;if(rLast.Zero){throw"r_{i-1} was zero"}r=rLastLast;var q=this._fa.Zero;var _df=rLast._ex(rLast._ec);var _fy=this._fa.inverse(_df);while(r._ec>=rLast._ec&&!r.Zero){var _fx=r._ec-rLast._ec;var scale=this._fa.multiply(r._ex(r._ec),_fy);q=q._bd(this._fa._ba(_fx,scale));r=r._bd(rLast._dc(_fx,scale))}s=q.multiply1(sLast)._bd(_ga);t=q.multiply1(tLast)._bd(_gb)}var _de=t._ex(0);if(_de==0){throw"ReedSolomonException sigmaTilde(0) was zero"}var inverse=this._fa.inverse(_de);var sigma=t.multiply2(inverse);var omega=r.multiply2(inverse);return new Array(sigma,omega)};this._ey=function(_ez){var _fz=_ez._ec;if(_fz==1){return new Array(_ez._ex(1))}var result=new Array(_fz);var e=0;for(var i=1;i<256&&e<_fz;i++){if(_ez.evaluateAt(i)==0){result[e]=this._fa.inverse(i);e++}}if(e!=_fz){throw"Error locator degree does not match number of roots"}return result};this._di=function(_fs,_dz,_fq){var s=_dz.length;var result=new Array(s);for(var i=0;i1&&e[0]==0){var d=1;while(dn.length){var j=o;o=n;n=j}var h=new Array(n.length);var k=n.length-o.length;for(var m=0;m=l._ec&&!o.Zero){var m=o._ec-l._ec;var h=this._fa.multiply(o._ex(o._ec),n);var i=l._dc(m,h);var k=this._fa._ba(m,h);j=j._bd(k);o=o._bd(i)}return new Array(j,o)}}function _az(b){this._gh=new Array(256);this._gi=new Array(256);var a=1;for(var e=0;e<256;e++){this._gh[e]=a;a<<=1;if(a>=256){a^=b}}for(var e=0;e<255;e++){this._gi[this._gh[e]]=e}var d=new Array(1);d[0]=0;this.zero=new _bp(this,new Array(d));var c=new Array(1);c[0]=1;this.one=new _bp(this,new Array(c));this.__defineGetter__("Zero",function(){return this.zero});this.__defineGetter__("One",function(){return this.one});this._ba=function(j,f){if(j<0){throw"bad arguments"}if(f==0){return zero}var h=new Array(j+1);for(var g=0;gqrcode.maxImgSize){var k=c.width/c.height;f=Math.sqrt(qrcode.maxImgSize/k);l=k*f}i.width=l;i.height=f;h.drawImage(c,0,0,i.width,i.height);qrcode.width=i.width;qrcode.height=i.height;try{qrcode.imagedata=h.getImageData(0,0,i.width,i.height)}catch(m){qrcode.result="Cross domain image reading not supported in your browser! Save it to your computer then drag and drop the file!";if(qrcode.callback!=null){qrcode.callback(qrcode.result)}return}try{qrcode.result=qrcode.process(h)}catch(m){console.log(m);qrcode.result="error decoding QR Code"}if(qrcode.callback!=null){qrcode.callback(qrcode.result)}};c.src=d}};qrcode.isUrl=function(a){var b=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;return b.test(a)};qrcode.decode_url=function(b){var d="";try{d=escape(b)}catch(c){console.log(c);d=b}var a="";try{a=decodeURIComponent(d)}catch(c){console.log(c);a=d}return a};qrcode.decode_utf8=function(a){if(qrcode.isUrl(a)){return qrcode.decode_url(a)}else{return a}};qrcode.process=function(r){var a=new Date().getTime();var c=qrcode.grayScaleToBitmap(qrcode.grayscale());if(qrcode.debug){for(var m=0;mf[a][o][1]){f[a][o][1]=h}}}}}var m=new Array(c);for(var b=0;b=0){return a>>b}else{return(a>>b)+(2<<~b)}}Array.prototype.remove=function(c,b){var a=this.slice((b||c)+1||this.length);this.length=c<0?this.length+c:c;return this.push.apply(this,a)};var _gf=3;var _eh=57;var _el=8;var _eg=2;qrcode._er=function(c){function b(l,k){xDiff=l.X-k.X;yDiff=l.Y-k.Y;return Math.sqrt((xDiff*xDiff+yDiff*yDiff))}function d(k,o,n){var m=o.x;var l=o.y;return((n.x-m)*(k.y-l))-((n.y-l)*(k.x-m))}var i=b(c[0],c[1]);var f=b(c[1],c[2]);var e=b(c[0],c[2]);var a,j,h;if(f>=i&&f>=e){j=c[0];a=c[1];h=c[2]}else{if(e>=f&&e>=i){j=c[1];a=c[0];h=c[2]}else{j=c[2];a=c[0];h=c[1]}}if(d(a,j,h)<0){var g=a;a=h;h=g}c[0]=a;c[1]=j;c[2]=h};function _cz(c,a,b){this.x=c;this.y=a;this.count=1;this._aj=b;this.__defineGetter__("_ei",function(){return this._aj});this.__defineGetter__("Count",function(){return this.count});this.__defineGetter__("X",function(){return this.x});this.__defineGetter__("Y",function(){return this.y});this._ek=function(){this.count++};this._ev=function(f,e,d){if(Math.abs(e-this.y)<=f&&Math.abs(d-this.x)<=f){var g=Math.abs(f-this._aj);return g<=1||g/this._aj<=1}return false}}function _es(a){this._go=a[0];this._gu=a[1];this._gr=a[2];this.__defineGetter__("_gp",function(){return this._go});this.__defineGetter__("_gq",function(){return this._gu});this.__defineGetter__("_gs",function(){return this._gr})}function _cc(){this.image=null;this._cv=[];this._ge=false;this._al=new Array(0,0,0,0,0);this._am=null;this.__defineGetter__("_da",function(){this._al[0]=0;this._al[1]=0;this._al[2]=0;this._al[3]=0;this._al[4]=0;return this._al});this._ao=function(f){var b=0;for(var d=0;d<5;d++){var e=f[d];if(e==0){return false}b+=e}if(b<7){return false}var c=Math.floor((b<<_el)/7);var a=Math.floor(c/2);return Math.abs(c-(f[0]<<_el))=0&&c[j+f*qrcode.width]){b[2]++;f--}if(f<0){return NaN}while(f>=0&&!c[j+f*qrcode.width]&&b[1]<=d){b[1]++;f--}if(f<0||b[1]>d){return NaN}while(f>=0&&c[j+f*qrcode.width]&&b[0]<=d){b[0]++;f--}if(b[0]>d){return NaN}f=a+1;while(f=d){return NaN}while(f=d){return NaN}var e=b[0]+b[1]+b[2]+b[3]+b[4];if(5*Math.abs(e-g)>=2*g){return NaN}return this._ao(b)?this._an(b,f):NaN};this._ej=function(b,a,e,h){var d=this.image;var i=qrcode.width;var c=this._da;var g=b;while(g>=0&&d[g+a*qrcode.width]){c[2]++;g--}if(g<0){return NaN}while(g>=0&&!d[g+a*qrcode.width]&&c[1]<=e){c[1]++;g--}if(g<0||c[1]>e){return NaN}while(g>=0&&d[g+a*qrcode.width]&&c[0]<=e){c[0]++;g--}if(c[0]>e){return NaN}g=b+1;while(g=e){return NaN}while(g=e){return NaN}var f=c[0]+c[1]+c[2]+c[3]+c[4];if(5*Math.abs(f-h)>=h){return NaN}return this._ao(c)?this._an(c,g):NaN};this._cu=function(c,f,e){var d=c[0]+c[1]+c[2]+c[3]+c[4];var n=this._an(c,e);var b=this._ap(f,Math.floor(n),c[2],d);if(!isNaN(b)){n=this._ej(Math.floor(n),Math.floor(b),c[2],d);if(!isNaN(n)){var l=d/7;var m=false;var h=this._cv.length;for(var g=0;g3){var b=0;var j=0;for(var d=0;d3;d++){var f=this._cv[d];if(Math.abs(f._ei-a)>c){this._cv.remove(d);d--}}}if(this._cv.length>3){this._cv.sort(function(k,i){if(k.count>i.count){return -1}if(k.count=_eg){if(c==null){c=a}else{this._ge=true;return Math.floor((Math.abs(c.X-a.X)-Math.abs(c.Y-a.Y))/2)}}}return 0};this._cx=function(){var g=0;var c=0;var a=this._cv.length;for(var d=0;d=_eg){g++;c+=f._ei}}if(g<3){return false}var e=c/a;var b=0;for(var d=0;dd[2]){h+=m-d[2]-a;f=k-1}}}else{do{f++}while(f=h){return false}}return true};this._ap=function(h,r,l,o){var k=this.image;var q=qrcode.height;var j=this._al;j[0]=0;j[1]=0;j[2]=0;var n=h;while(n>=0&&k[r+n*qrcode.width]&&j[1]<=l){j[1]++;n--}if(n<0||j[1]>l){return NaN}while(n>=0&&!k[r+n*qrcode.width]&&j[0]<=l){j[0]++;n--}if(j[0]>l){return NaN}n=h+1;while(nl){return NaN}while(nl){return NaN}var m=j[0]+j[1]+j[2];if(5*Math.abs(m-o)>=2*o){return NaN}return this._ao(j)?this._an(j,n):NaN};this._cu=function(l,o,n){var m=l[0]+l[1]+l[2];var u=this._an(l,n);var k=this._ap(o,Math.floor(u),2*l[1],m);if(!isNaN(k)){var t=(l[0]+l[1]+l[2])/3;var r=this._cv.length;for(var q=0;q>1);var m=new Array(0,0,0);for(var k=0;k>1):-((k+1)>>1));m[0]=0;m[1]=0;m[2]=0;var n=q;while(n=10&&a<=26){this.dataLengthMode=1}else{if(a>=27&&a<=40){this.dataLengthMode=2}}}this._gd=function(f){var k=0;if(f>(this._cw-f+1);this._cw-=f;return k}else{if(f>(8-(f-(this._cw+1))));this._cw=this._cw-f%8;if(this._cw<0){this._cw=8+this._cw}return k}else{if(f>(8-(f-(this._cw+1+8)));k=g+d+l;this._cw=this._cw-(f-8)%8;if(this._cw<0){this._cw=8+this._cw}return k}else{return 0}}}};this.NextMode=function(){if((this._ed>this.blocks.length-this._en-2)){return 0}else{return this._gd(4)}};this.getDataLength=function(d){var e=0;while(true){if((d>>e)==1){break}e++}return this._gd(qrcode._eo[this.dataLengthMode][e])};this.getRomanAndFigureString=function(h){var f=h;var g=0;var j="";var d=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":");do{if(f>1){g=this._gd(11);var i=Math.floor(g/45);var e=g%45;j+=d[i];j+=d[e];f-=2}else{if(f==1){g=this._gd(6);j+=d[g];f-=1}}}while(f>0);return j};this.getFigureString=function(f){var d=f;var e=0;var g="";do{if(d>=3){e=this._gd(10);if(e<100){g+="0"}if(e<10){g+="0"}d-=3}else{if(d==2){e=this._gd(7);if(e<10){g+="0"}d-=2}else{if(d==1){e=this._gd(4);d-=1}}}g+=e}while(d>0);return g};this.get8bitByteArray=function(g){var e=g;var f=0;var d=new Array();do{f=this._gd(8);d.push(f);e--}while(e>0);return d};this.getKanjiString=function(j){var g=j;var i=0;var h="";do{i=_gd(13);var e=i%192;var f=i/192;var k=(f<<8)+e;var d=0;if(k+33088<=40956){d=k+33088}else{d=k+49472}h+=String.fromCharCode(d);g--}while(g>0);return h};this.__defineGetter__("DataByte",function(){var g=new Array();var e=1;var f=2;var d=4;var n=8;do{var k=this.NextMode();if(k==0){if(g.length>0){break}else{throw"Empty data block"}}if(k!=e&&k!=f&&k!=d&&k!=n){throw"Invalid mode: "+k+" in (block:"+this._ed+" bit:"+this._cw+")"}dataLength=this.getDataLength(k);if(dataLength<1){throw"Invalid data length: "+dataLength}switch(k){case e:var l=this.getFigureString(dataLength);var i=new Array(l.length);for(var h=0;h/g, '>').replace(/"/g, '"'); +} + +function read(qrcode_token) +{ + if(workingAway) { + return; + } + + workingAway = true; + + $.ajax({ + type: "POST", + url: Attendize.qrcodeCheckInRoute, + data: {qrcode_token: htmlEntities(qrcode_token)}, + cache: false, + complete: function(){ + beepSound.play(); + }, + error: function() { + }, + success: function(response) { + document.getElementById("result").innerHTML = "" + response.message +""; + } + }); +} + +function isCanvasSupported(){ + var elem = document.createElement('canvas'); + return !!(elem.getContext && elem.getContext('2d')); +} + +function success(stream) { + if(webkit) + v.src = window.webkitURL.createObjectURL(stream); + else + if(moz) + { + v.mozSrcObject = stream; + v.play(); + } + else + v.src = stream; + gUM=true; + setTimeout(captureToCanvas, 500); +} + +function error(error) { + gUM=false; + return; +} + +function load() +{ + if(isCanvasSupported() && window.File && window.FileReader) + { + initCanvas(800, 600); + qrcode.callback = read; + document.getElementById("mainbody").style.display="inline"; + setwebcam(); + } + else + { + document.getElementById("mainbody").style.display="inline"; + document.getElementById("mainbody").innerHTML='

Attendize Checkpoint Manager for HTML5 capable browsers


'+ + '

sorry your browser is not supported



'+ + '

try or or

'; + } +} + +function setwebcam() +{ + document.getElementById("help-text").style.display = "block"; + document.getElementById("result").innerHTML='Scanning   '; + if(stype==1) + { + setTimeout(captureToCanvas, 500); + return; + } + var n=navigator; + document.getElementById("outdiv").innerHTML = vidhtml; + v=document.getElementById("v"); + + if(n.getUserMedia) + n.getUserMedia({video: true, audio: false}, success, error); + else + if(n.webkitGetUserMedia) + { + webkit=true; + n.webkitGetUserMedia({video:true, audio: false}, success, error); + } + else + if(n.mozGetUserMedia) + { + moz=true; + n.mozGetUserMedia({video: true, audio: false}, success, error); + } + + stype=1; + setTimeout(captureToCanvas, 500); +} diff --git a/resources/views/ManageEvent/QrcodeCheckIn.blade.php b/resources/views/ManageEvent/QrcodeCheckIn.blade.php new file mode 100644 index 00000000..0312726c --- /dev/null +++ b/resources/views/ManageEvent/QrcodeCheckIn.blade.php @@ -0,0 +1,97 @@ + + + + + Attendize QRCode Check In: {{ $event->title }} + + + + + + {!! HTML::style('assets/stylesheet/qrcode-check-in.css') !!} + {!! HTML::script('vendor/jquery/jquery.js') !!} + + + + @include('Shared/Layouts/ViewJavascript') + + + + + + + {!! HTML::script('vendor/qrcode-scan/llqrcode.js') !!} + {!! HTML::script('vendor/qrcode-scan/webqr.js') !!} + + +
+ + +
+ + @if(session()->has('success_message')) +
+
+
+ +
+
+
+ @endif + +
+ + + + + + + + + + +
+ + + + +
+
+
+
+
+

Put the QR code in front of your Camera (Not too close)

+
+

Scan another ticket

+
+
+
  + +
+
+
+
© Attendize {{ date('Y') }} · All Rights Reserved.
+
+
+ + + + + + diff --git a/resources/views/Shared/Layouts/ViewJavascript.blade.php b/resources/views/Shared/Layouts/ViewJavascript.blade.php new file mode 100644 index 00000000..e69de29b