From 83205555d706086a34953a83559b512534193556 Mon Sep 17 00:00:00 2001 From: Jacek Marianski Date: Thu, 3 May 2018 23:41:22 +0200 Subject: [PATCH] (localization) Several big changes: 1) Added localization components to the package. They allow usage of localized routes, like http://attendize.site/en/login 2) Added English and Polish localization files. They are ugly, repetitive, but mostly true to the original and relevant. It required rewriting several phrases, and certainly required editing most of the views and controllers. 3) Edited routes to accomodate point 1 4) Rewritten several rules regarding dates. In most cases using English notation (with English names for months) is bad in all other languages. I used environment wide date format that is used. 5) Updated installer. Haven't tested it yet, but should work. Rewrites .env.example file instead of creating it from scratch (by concatenating strings). There are some minor changes that were simple fixes or other funky requirements from my employer that kinda make sense: 1) QR code reader wasn't working in firefox, fixed it. Works in chrome/firefox on mobile on https sites. 2) Added subscript text in some instances: below ticket registration, below ticket. It is kinda dumb, but in most cases is necessary to receive less complaints from clients. 3) Fixed geocoding api by adding api key in env file. At some point in 2016-2017 it was required by google to use API key from developer console and this requirement wasn't challenged in the code. 4) Ticket has been displaying either flyer or site logo on the side. Now displays both (which may affect 1d barcode - it might need some fixin). Regarding the same issue - description of an event contained the flyer image on the side, it was removed, cause it didn't fit in here. 5) Ticket style was updated, because of the above and because it didn't fit longer character strings. Now it's slightly uglier, but works in all cases. and other. There are also some inconveniences, like: 1) Unfinished translations. It was impossible for me to create translations based on strings located inside of a database, which I ignored (I think it's only at one place - surveys). 2) Ugly translation files. At some point I thought it is going to be easier to locate when I try translating vased by file name. Later I divided it by topics, and then I segmented it even more. It might require some serious clean-up. 3) Redundancy. In some cases there are several definitions for the same phrase in my localization files. I used it mostly to protect myself from different contexts for the phrase usage in different languages. 4) File division. There are several files that are placed in dedicated language directory (in /view/, like /view/pl/ or /view/en/). These files don't use language phrases, but they are translated as a whole. Mostly because using language phrases would make those view files unreadable. 5) Localzation helper marks some phrases as obsolete (in file "basic"), because they are used in app/Helpers folder (where this plugin doesn't reach) --- .env.example | 5 + .gitignore | 3 + app/Helpers/macros.php | 4 +- .../Controllers/EventAttendeesController.php | 36 +- .../Controllers/EventCheckInController.php | 10 +- .../Controllers/EventCheckoutController.php | 7 +- app/Http/Controllers/EventController.php | 10 +- .../Controllers/EventCustomizeController.php | 20 +- .../Controllers/EventOrdersController.php | 60 +- .../EventQrcodeCheckInController.php | 10 +- .../Controllers/EventSurveyController.php | 22 +- .../Controllers/EventTicketsController.php | 28 +- app/Http/Controllers/EventViewController.php | 4 +- app/Http/Controllers/InstallerController.php | 66 +- .../Controllers/ManageAccountController.php | 18 +- app/Http/Controllers/MyBaseController.php | 2 +- app/Http/Controllers/OrganiserController.php | 4 +- .../OrganiserCustomizeController.php | 8 +- app/Http/Controllers/RemindersController.php | 4 +- app/Http/Controllers/UserController.php | 14 +- app/Http/Controllers/UserLoginController.php | 4 +- app/Http/Controllers/UserSignupController.php | 6 +- app/Http/Kernel.php | 4 + app/Http/routes.php | 1257 ++++---- app/Jobs/GenerateTicket.php | 7 +- app/Mailers/AttendeeMailer.php | 4 +- app/Mailers/OrderMailer.php | 3 +- app/Models/Event.php | 3 +- app/Providers/AppServiceProvider.php | 3 + bootstrap/app.php | 1 - composer.json | 11 +- composer.lock | 2702 +++++++++-------- config/app.php | 3 + config/attendize.php | 8 +- config/laravel-localization-helpers.php | 24 + config/laravellocalization.php | 317 ++ public/assets/images/backup.xcf | Bin 0 -> 30388 bytes public/assets/javascript/app-public.js | 24 +- public/assets/javascript/app.js | 5 +- public/assets/javascript/backend.js | 5 +- public/assets/javascript/check_in.js | 15 +- public/assets/javascript/frontend.js | 24 +- public/assets/javascript/frontend.min.js | 2 +- public/assets/stylesheet/ticket.css | 37 +- resources/lang/en/Affiliates.php | 16 + resources/lang/en/Attendee.php | 21 + resources/lang/en/Controllers.php | 117 + resources/lang/en/Dashboard.php | 26 + resources/lang/en/Design.php | 14 + resources/lang/en/Email.php | 19 + resources/lang/en/Event.php | 49 + resources/lang/en/Fees.php | 15 + resources/lang/en/File_format.php | 16 + resources/lang/en/Installer.php | 46 + resources/lang/en/Javascript.php | 17 + resources/lang/en/ManageAccount.php | 52 + resources/lang/en/ManageEvent.php | 103 + resources/lang/en/Message.php | 25 + resources/lang/en/Order.php | 55 + resources/lang/en/Organiser.php | 66 + resources/lang/en/Public_ViewEvent.php | 81 + resources/lang/en/Public_ViewOrganiser.php | 17 + resources/lang/en/Question.php | 24 + resources/lang/en/Social.php | 21 + resources/lang/en/Surveys.php | 18 + resources/lang/en/Ticket.php | 52 + resources/lang/en/Top.php | 18 + resources/lang/en/User.php | 36 + resources/lang/en/Widgets.php | 12 + resources/lang/en/basic.php | 61 + resources/lang/en/error.php | 7 + resources/lang/fr/validation.php | 107 - resources/lang/pl/Affiliates.php | 16 + resources/lang/pl/Attendee.php | 21 + resources/lang/pl/Controllers.php | 117 + resources/lang/pl/Dashboard.php | 26 + resources/lang/pl/Design.php | 14 + resources/lang/pl/Email.php | 19 + resources/lang/pl/Event.php | 49 + resources/lang/pl/Fees.php | 15 + resources/lang/pl/File_format.php | 16 + resources/lang/pl/Installer.php | 46 + resources/lang/pl/Javascript.php | 18 + resources/lang/pl/ManageAccount.php | 52 + resources/lang/pl/ManageEvent.php | 95 + resources/lang/pl/Message.php | 25 + resources/lang/pl/Order.php | 55 + resources/lang/pl/Organiser.php | 66 + resources/lang/pl/Public_ViewEvent.php | 81 + resources/lang/pl/Public_ViewOrganiser.php | 17 + resources/lang/pl/Question.php | 24 + resources/lang/pl/Social.php | 21 + resources/lang/pl/Surveys.php | 18 + resources/lang/pl/Ticket.php | 52 + resources/lang/pl/Top.php | 18 + resources/lang/pl/User.php | 36 + resources/lang/pl/Widgets.php | 12 + resources/lang/pl/basic.php | 61 + resources/lang/pl/error.php | 7 + resources/lang/{fr => pl}/pagination.php | 4 +- resources/lang/{fr => pl}/passwords.php | 10 +- resources/lang/pl/validation.php | 122 + resources/views/Installer/Installer.blade.php | 96 +- .../Modals/EditAccount.blade.php | 48 +- .../Partials/PaymentGatewayOptions.blade.php | 42 +- .../views/ManageAccount/Payment.blade.php | 4 +- .../views/ManageEvent/Attendees.blade.php | 44 +- resources/views/ManageEvent/CheckIn.blade.php | 22 +- .../views/ManageEvent/Customize.blade.php | 142 +- .../views/ManageEvent/Dashboard.blade.php | 73 +- .../Modals/CancelAttendee.blade.php | 15 +- .../ManageEvent/Modals/CancelOrder.blade.php | 25 +- .../Modals/CreateQuestion.blade.php | 20 +- .../ManageEvent/Modals/CreateTicket.blade.php | 32 +- .../ManageEvent/Modals/EditAttendee.blade.php | 15 +- .../ManageEvent/Modals/EditOrder.blade.php | 15 +- .../ManageEvent/Modals/EditQuestion.blade.php | 21 +- .../ManageEvent/Modals/EditTicket.blade.php | 44 +- .../Modals/ImportAttendee.blade.php | 14 +- .../Modals/InviteAttendee.blade.php | 16 +- .../Modals/ManageCoupons.blade.php | 1 + .../ManageEvent/Modals/ManageOrder.blade.php | 57 +- .../Modals/MessageAttendee.blade.php | 14 +- .../Modals/MessageAttendees.blade.php | 38 +- .../ManageEvent/Modals/MessageOrder.blade.php | 16 +- .../Modals/ResendTicketToAttendee.blade.php | 8 +- .../ManageEvent/Modals/ViewAnswers.blade.php | 16 +- resources/views/ManageEvent/Orders.blade.php | 38 +- .../Partials/AttendeesBlankSlate.blade.php | 6 +- .../Partials/EditEventForm.blade.php | 50 +- .../Partials/OrdersBlankSlate.blade.php | 4 +- .../ManageEvent/Partials/Sidebar.blade.php | 24 +- .../Partials/SurveyBlankSlate.blade.php | 6 +- .../Partials/TicketDesignPreview.blade.php | 43 +- .../Partials/TicketsBlankSlate.blade.php | 6 +- .../ManageEvent/Partials/TopNav.blade.php | 5 +- .../ManageEvent/PrintAttendees.blade.php | 16 +- resources/views/ManageEvent/Promote.blade.php | 8 +- .../views/ManageEvent/QrcodeCheckIn.blade.php | 12 +- resources/views/ManageEvent/Surveys.blade.php | 40 +- resources/views/ManageEvent/Tickets.blade.php | 40 +- resources/views/ManageEvent/Widgets.blade.php | 12 +- .../ManageOrganiser/CreateOrganiser.blade.php | 28 +- .../views/ManageOrganiser/Customize.blade.php | 60 +- .../views/ManageOrganiser/Dashboard.blade.php | 70 +- .../views/ManageOrganiser/Events.blade.php | 16 +- .../Modals/CreateEvent.blade.php | 84 +- .../Partials/EventPanel.blade.php | 10 +- .../Partials/EventsBlankSlate.blade.php | 6 +- .../Partials/Sidebar.blade.php | 8 +- .../ManageOrganiser/Partials/TopNav.blade.php | 2 +- .../ManageOrganiser/SelectOrganiser.blade.php | 8 +- .../ManageUser/Modals/EditUser.blade.php | 26 +- .../views/Public/Errors/Generic.blade.php | 4 +- .../views/Public/Errors/Missing.blade.php | 4 +- .../LoginAndRegister/ForgotPassword.blade.php | 14 +- .../Public/LoginAndRegister/Login.blade.php | 18 +- .../LoginAndRegister/ResetPassword.blade.php | 14 +- .../Public/LoginAndRegister/Signup.blade.php | 27 +- .../ViewEvent/EventNotLivePage.blade.php | 2 +- .../Layouts/EmbeddedEventPage.blade.php | 6 +- .../ViewEvent/Layouts/EventPage.blade.php | 3 +- .../EventCreateOrderSection.blade.php | 51 +- .../EventDescriptionSection.blade.php | 7 +- .../Partials/EventFooterSection.blade.php | 6 +- .../Partials/EventHeaderSection.blade.php | 18 +- .../Partials/EventOrganiserSection.blade.php | 20 +- .../Partials/EventShareSection.blade.php | 6 +- .../Partials/EventTicketsSection.blade.php | 28 +- .../Partials/EventViewOrderSection.blade.php | 47 +- .../ViewEvent/Partials/PDFTicket.blade.php | 59 +- .../Layouts/OrganiserPage.blade.php | 3 +- .../Partials/EventListingPanel.blade.php | 8 +- .../Partials/OrganiserEventsSection.blade.php | 4 +- .../Partials/OrganiserFooterSection.blade.php | 3 +- .../Partials/OrganiserSocialSection.blade.php | 12 +- .../views/Shared/Layouts/Master.blade.php | 11 +- .../Layouts/MasterWithoutMenus.blade.php | 1 + .../Shared/Partials/LangScript.blade.php | 14 + .../{ => en}/Emails/Auth/Reminder.blade.php | 2 +- .../{ => en}/Emails/ConfirmEmail.blade.php | 2 +- .../views/en/Emails/FailedQueue.blade.php | 8 + .../{ => en}/Emails/Layouts/Master.blade.php | 0 .../Emails/OrderConfirmation.blade.php | 2 +- .../Emails/OrderNotification.blade.php | 2 +- .../{ => en}/Emails/attendeeTicket.blade.php | 0 .../{ => en}/Emails/inviteUser.blade.php | 2 +- .../{ => en}/Emails/messageReceived.blade.php | 2 +- .../Emails/notifyCancelledAttendee.blade.php | 2 +- .../Emails/notifyRefundedAttendee.blade.php | 2 +- .../en/Installer/Partials/Footer.blade.php | 17 + .../TicketMailer/SendAttendeeInvite.blade.php | 2 +- .../TicketMailer/SendAttendeeTicket.blade.php | 2 +- .../TicketMailer/SendOrderTickets.blade.php | 2 +- resources/views/errors/503.blade.php | 6 +- .../views/pl/Emails/Auth/Reminder.blade.php | 11 + .../views/pl/Emails/ConfirmEmail.blade.php | 30 + .../views/pl/Emails/Layouts/Master.blade.php | 71 + .../pl/Emails/OrderConfirmation.blade.php | 91 + .../pl/Emails/OrderNotification.blade.php | 100 + .../views/pl/Emails/attendeeTicket.blade.php | 10 + .../views/pl/Emails/inviteUser.blade.php | 37 + .../views/pl/Emails/messageReceived.blade.php | 19 + .../Emails/notifyCancelledAttendee.blade.php | 17 + .../Emails/notifyRefundedAttendee.blade.php | 18 + .../pl/Installer/Partials/Footer.blade.php | 17 + .../TicketMailer/SendAttendeeInvite.blade.php | 11 + .../TicketMailer/SendAttendeeTicket.blade.php | 10 + .../TicketMailer/SendOrderTickets.blade.php | 95 + 209 files changed, 6383 insertions(+), 3111 deletions(-) create mode 100644 config/laravel-localization-helpers.php create mode 100644 config/laravellocalization.php create mode 100644 public/assets/images/backup.xcf create mode 100644 resources/lang/en/Affiliates.php create mode 100644 resources/lang/en/Attendee.php create mode 100644 resources/lang/en/Controllers.php create mode 100644 resources/lang/en/Dashboard.php create mode 100644 resources/lang/en/Design.php create mode 100644 resources/lang/en/Email.php create mode 100644 resources/lang/en/Event.php create mode 100644 resources/lang/en/Fees.php create mode 100644 resources/lang/en/File_format.php create mode 100644 resources/lang/en/Installer.php create mode 100644 resources/lang/en/Javascript.php create mode 100644 resources/lang/en/ManageAccount.php create mode 100644 resources/lang/en/ManageEvent.php create mode 100644 resources/lang/en/Message.php create mode 100644 resources/lang/en/Order.php create mode 100644 resources/lang/en/Organiser.php create mode 100644 resources/lang/en/Public_ViewEvent.php create mode 100644 resources/lang/en/Public_ViewOrganiser.php create mode 100644 resources/lang/en/Question.php create mode 100644 resources/lang/en/Social.php create mode 100644 resources/lang/en/Surveys.php create mode 100644 resources/lang/en/Ticket.php create mode 100644 resources/lang/en/Top.php create mode 100644 resources/lang/en/User.php create mode 100644 resources/lang/en/Widgets.php create mode 100644 resources/lang/en/basic.php create mode 100644 resources/lang/en/error.php delete mode 100644 resources/lang/fr/validation.php create mode 100644 resources/lang/pl/Affiliates.php create mode 100644 resources/lang/pl/Attendee.php create mode 100644 resources/lang/pl/Controllers.php create mode 100644 resources/lang/pl/Dashboard.php create mode 100644 resources/lang/pl/Design.php create mode 100644 resources/lang/pl/Email.php create mode 100644 resources/lang/pl/Event.php create mode 100644 resources/lang/pl/Fees.php create mode 100644 resources/lang/pl/File_format.php create mode 100644 resources/lang/pl/Installer.php create mode 100644 resources/lang/pl/Javascript.php create mode 100644 resources/lang/pl/ManageAccount.php create mode 100644 resources/lang/pl/ManageEvent.php create mode 100644 resources/lang/pl/Message.php create mode 100644 resources/lang/pl/Order.php create mode 100644 resources/lang/pl/Organiser.php create mode 100644 resources/lang/pl/Public_ViewEvent.php create mode 100644 resources/lang/pl/Public_ViewOrganiser.php create mode 100644 resources/lang/pl/Question.php create mode 100644 resources/lang/pl/Social.php create mode 100644 resources/lang/pl/Surveys.php create mode 100644 resources/lang/pl/Ticket.php create mode 100644 resources/lang/pl/Top.php create mode 100644 resources/lang/pl/User.php create mode 100644 resources/lang/pl/Widgets.php create mode 100644 resources/lang/pl/basic.php create mode 100644 resources/lang/pl/error.php rename resources/lang/{fr => pl}/pagination.php (85%) rename resources/lang/{fr => pl}/passwords.php (54%) create mode 100644 resources/lang/pl/validation.php create mode 100644 resources/views/Shared/Partials/LangScript.blade.php rename resources/views/{ => en}/Emails/Auth/Reminder.blade.php (85%) rename resources/views/{ => en}/Emails/ConfirmEmail.blade.php (93%) create mode 100644 resources/views/en/Emails/FailedQueue.blade.php rename resources/views/{ => en}/Emails/Layouts/Master.blade.php (100%) rename resources/views/{ => en}/Emails/OrderConfirmation.blade.php (98%) rename resources/views/{ => en}/Emails/OrderNotification.blade.php (98%) rename resources/views/{ => en}/Emails/attendeeTicket.blade.php (100%) rename resources/views/{ => en}/Emails/inviteUser.blade.php (94%) rename resources/views/{ => en}/Emails/messageReceived.blade.php (94%) rename resources/views/{ => en}/Emails/notifyCancelledAttendee.blade.php (92%) rename resources/views/{ => en}/Emails/notifyRefundedAttendee.blade.php (93%) create mode 100644 resources/views/en/Installer/Partials/Footer.blade.php rename resources/views/{ => en}/Mailers/TicketMailer/SendAttendeeInvite.blade.php (86%) rename resources/views/{ => en}/Mailers/TicketMailer/SendAttendeeTicket.blade.php (83%) rename resources/views/{ => en}/Mailers/TicketMailer/SendOrderTickets.blade.php (98%) create mode 100644 resources/views/pl/Emails/Auth/Reminder.blade.php create mode 100644 resources/views/pl/Emails/ConfirmEmail.blade.php create mode 100644 resources/views/pl/Emails/Layouts/Master.blade.php create mode 100644 resources/views/pl/Emails/OrderConfirmation.blade.php create mode 100644 resources/views/pl/Emails/OrderNotification.blade.php create mode 100644 resources/views/pl/Emails/attendeeTicket.blade.php create mode 100644 resources/views/pl/Emails/inviteUser.blade.php create mode 100644 resources/views/pl/Emails/messageReceived.blade.php create mode 100644 resources/views/pl/Emails/notifyCancelledAttendee.blade.php create mode 100644 resources/views/pl/Emails/notifyRefundedAttendee.blade.php create mode 100644 resources/views/pl/Installer/Partials/Footer.blade.php create mode 100644 resources/views/pl/Mailers/TicketMailer/SendAttendeeInvite.blade.php create mode 100644 resources/views/pl/Mailers/TicketMailer/SendAttendeeTicket.blade.php create mode 100644 resources/views/pl/Mailers/TicketMailer/SendOrderTickets.blade.php diff --git a/.env.example b/.env.example index 05ac711f..b738a1d4 100644 --- a/.env.example +++ b/.env.example @@ -11,6 +11,10 @@ DB_DATABASE=attendize DB_USERNAME=attendize DB_PASSWORD=attendize +DEFAULT_DATE_FORMAT="Y-m-d" +DEFAULT_TIME_FORMAT="H:i" +DEFAULT_DATETIME_FORMAT="Y-m-d H:i" + # https://github.com/NitMedia/wkhtml2pdf#driver-types WKHTML2PDF_BIN_FILE=wkhtmltopdf-amd64 @@ -24,6 +28,7 @@ MAIL_PASSWORD= MAIL_USERNAME= GOOGLE_ANALYTICS_ID= +GOOGLE_MAPS_GEOCODING_KEY= TWITTER_WIDGET_ID= diff --git a/.gitignore b/.gitignore index 0d41cbc4..9a99193a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ installed /composer.phar _ide_helper.php *.swp + +# Do not include backup lang files +resources/lang/*/[a-zA-Z]*20[0-9][0-9][0-1][0-9][0-3][0-9]_[0-2][0-9][0-5][0-9][0-5][0-9].php \ No newline at end of file diff --git a/app/Helpers/macros.php b/app/Helpers/macros.php index e075fc38..bbd33df2 100644 --- a/app/Helpers/macros.php +++ b/app/Helpers/macros.php @@ -42,13 +42,13 @@ Form::macro('styledFile', function ($name, $multiple = false) {
- Browse… + '.trans("basic.browse").'…
diff --git a/app/Http/Controllers/EventAttendeesController.php b/app/Http/Controllers/EventAttendeesController.php index c4e23b93..9ceefb48 100644 --- a/app/Http/Controllers/EventAttendeesController.php +++ b/app/Http/Controllers/EventAttendeesController.php @@ -92,7 +92,7 @@ class EventAttendeesController extends MyBaseController * @todo This is a bit hackish */ if ($event->tickets->count() === 0) { - return ''; + return ''; } return view('ManageEvent.Modals.InviteAttendee', [ @@ -117,8 +117,8 @@ class EventAttendeesController extends MyBaseController ]; $messages = [ - 'ticket_id.exists' => 'The ticket you have selected does not exist', - 'ticket_id.required' => 'The ticket field is required. ', + 'ticket_id.exists' => trans("Controllers.ticket_not_exists_error"), + 'ticket_id.required' => trans("Controllers.ticket_field_required_error"), ]; $validator = Validator::make($request->all(), $rules, $messages); @@ -198,7 +198,7 @@ class EventAttendeesController extends MyBaseController $this->dispatch(new SendAttendeeInvite($attendee)); } - session()->flash('message', 'Attendee Successfully Invited'); + session()->flash('message', trans("Controllers.attendee_successfully_invited")); DB::commit(); @@ -216,7 +216,7 @@ class EventAttendeesController extends MyBaseController return response()->json([ 'status' => 'error', - 'error' => 'An error occurred while inviting this attendee. Please try again.' + 'error' => trans("Controllers.attendee_exception") ]); } @@ -238,7 +238,7 @@ class EventAttendeesController extends MyBaseController * @todo This is a bit hackish */ if ($event->tickets->count() === 0) { - return ''; + return ''; } return view('ManageEvent.Modals.ImportAttendee', [ @@ -263,7 +263,7 @@ class EventAttendeesController extends MyBaseController ]; $messages = [ - 'ticket_id.exists' => 'The ticket you have selected does not exist', + 'ticket_id.exists' => trans("Controllers.ticket_not_exists_error"), ]; $validator = Validator::make($request->all(), $rules, $messages); @@ -445,13 +445,13 @@ class EventAttendeesController extends MyBaseController $message->to($attendee->event->organiser->email, $attendee->event->organiser->name) ->from(config('attendize.outgoing_email_noreply'), $attendee->event->organiser->name) ->replyTo($attendee->event->organiser->email, $attendee->event->organiser->name) - ->subject($data['subject'] . '[ORGANISER COPY]'); + ->subject($data['subject'] . trans("Email.organiser_copy")); }); } return response()->json([ 'status' => 'success', - 'message' => 'Message Successfully Sent', + 'message' => trans("Controllers.message_successfully_sent"), ]); } @@ -635,8 +635,8 @@ class EventAttendeesController extends MyBaseController ]; $messages = [ - 'ticket_id.exists' => 'The ticket you have selected does not exist', - 'ticket_id.required' => 'The ticket field is required. ', + 'ticket_id.exists' => trans("Controllers.ticket_not_exists_error"), + 'ticket_id.required' => trans("Controllers.ticket_field_required_error"), ]; $validator = Validator::make($request->all(), $rules, $messages); @@ -651,7 +651,7 @@ class EventAttendeesController extends MyBaseController $attendee = Attendee::scope()->findOrFail($attendee_id); $attendee->update($request->all()); - session()->flash('message', 'Successfully Updated Attendee'); + session()->flash('message',trans("Controllers.successfully_updated_attendee")); return response()->json([ 'status' => 'success', @@ -697,7 +697,7 @@ class EventAttendeesController extends MyBaseController if ($attendee->is_cancelled) { return response()->json([ 'status' => 'success', - 'message' => 'Attendee Already Cancelled', + 'message' => trans("Controllers.attendee_already_cancelled"), ]); } @@ -723,7 +723,7 @@ class EventAttendeesController extends MyBaseController $message->to($attendee->email, $attendee->full_name) ->from(config('attendize.outgoing_email_noreply'), $attendee->event->organiser->name) ->replyTo($attendee->event->organiser->email, $attendee->event->organiser->name) - ->subject('Your ticket has been cancelled'); + ->subject(trans("Email.your_ticket_cancelled")); }); } @@ -763,7 +763,7 @@ class EventAttendeesController extends MyBaseController $message->to($attendee->email, $attendee->full_name) ->from(config('attendize.outgoing_email_noreply'), $attendee->event->organiser->name) ->replyTo($attendee->event->organiser->email, $attendee->event->organiser->name) - ->subject('You have received a refund from ' . $attendee->event->organiser->name); + ->subject(trans("Email.refund_from_name", ["name"=>$attendee->event->organiser->name])); }); } else { $error_message = $response->getMessage(); @@ -771,7 +771,7 @@ class EventAttendeesController extends MyBaseController } catch (\Exception $e) { \Log::error($e); - $error_message = 'There has been a problem processing your refund. Please check your information and try again.'; + $error_message = trans("Controllers.refund_exception"); } } @@ -783,7 +783,7 @@ class EventAttendeesController extends MyBaseController ]); } - session()->flash('message', 'Successfully Cancelled Attenddee'); + session()->flash('message', trans("Controllers.successfully_cancelled_attendee")); return response()->json([ 'status' => 'success', @@ -826,7 +826,7 @@ class EventAttendeesController extends MyBaseController return response()->json([ 'status' => 'success', - 'message' => 'Ticket Successfully Resent', + 'message' => trans("Controllers.ticket_successfully_resent"), ]); } diff --git a/app/Http/Controllers/EventCheckInController.php b/app/Http/Controllers/EventCheckInController.php index 362ef1e7..2cbcf94c 100644 --- a/app/Http/Controllers/EventCheckInController.php +++ b/app/Http/Controllers/EventCheckInController.php @@ -115,7 +115,7 @@ class EventCheckInController extends MyBaseController return response()->json([ 'status' => 'success', 'checked' => $checking, - 'message' => 'Attendee Successfully Checked ' . (($checking == 'in') ? 'In' : 'Out'), + 'message' => (($checking == 'in') ? trans("Controllers.attendee_successfully_checked_in") : trans("Controllers.attendee_successfully_checked_out")), 'id' => $attendee->id, ]); } @@ -153,7 +153,7 @@ class EventCheckInController extends MyBaseController if (is_null($attendee)) { return response()->json([ 'status' => 'error', - 'message' => "Invalid Ticket! Please try again." + 'message' => trans("Controllers.invalid_ticket_error") ]); } @@ -177,7 +177,7 @@ class EventCheckInController extends MyBaseController if ($attendee->has_arrived) { return response()->json([ 'status' => 'error', - 'message' => 'Attendee already checked in at ' . $attendee->arrival_time->format('H:i A, F j') . $appendedText + 'message' => trans("Controllers.attendee_already_checked_in", ["time"=> $attendee->arrival_time->format(env("DEFAULT_DATETIME_FORMAT"))]) . $appendedText ]); } @@ -185,7 +185,7 @@ class EventCheckInController extends MyBaseController return response()->json([ 'status' => 'success', - 'message' => 'Success !
Name: ' . $attendee->first_name . ' ' . $attendee->last_name . '
Reference: ' . $attendee->reference . '
Ticket: ' . $attendee->ticket . '.' . $appendedText + 'message' => trans("Controllers.attendee_check_in_success", ["name"=>$attendee->first_name." ".$attendee->last_name, "ref"=>$attendee->reference, "ticket"=>$attendee->ticket]).$appendedText ]); } @@ -208,7 +208,7 @@ class EventCheckInController extends MyBaseController ]); return response()->json([ - 'message' => $updateRowsCount . ' Attendee(s) Checked in.' + 'message' => trans("Controllers.num_attendees_checked_in", ["num"=>$updateRowsCount]) ]); } diff --git a/app/Http/Controllers/EventCheckoutController.php b/app/Http/Controllers/EventCheckoutController.php index 9bf0bfd7..1772ab42 100644 --- a/app/Http/Controllers/EventCheckoutController.php +++ b/app/Http/Controllers/EventCheckoutController.php @@ -729,6 +729,11 @@ class EventCheckoutController extends Controller if (!$order) { abort(404); } + $images = []; + $imgs = $order->event->images; + foreach ($imgs as $img) { + $images[] = base64_encode(file_get_contents(public_path($img->image_path))); + } $data = [ 'order' => $order, @@ -737,7 +742,7 @@ class EventCheckoutController extends Controller 'attendees' => $order->attendees, 'css' => file_get_contents(public_path('assets/stylesheet/ticket.css')), 'image' => base64_encode(file_get_contents(public_path($order->event->organiser->full_logo_path))), - + 'images' => $images, ]; if ($request->get('download') == '1') { diff --git a/app/Http/Controllers/EventController.php b/app/Http/Controllers/EventController.php index d34acf6a..29489e3d 100644 --- a/app/Http/Controllers/EventController.php +++ b/app/Http/Controllers/EventController.php @@ -103,7 +103,7 @@ class EventController extends MyBaseController 'organiser_email' => ['required', 'email'], ]; $messages = [ - 'organiser_name.required' => 'You must give a name for the event organiser.', + 'organiser_name.required' => trans("Controllers.no_organiser_name_error"), ]; $validator = Validator::make($request->all(), $rules, $messages); @@ -128,7 +128,7 @@ class EventController extends MyBaseController } else { /* Somethings gone horribly wrong */ return response()->json([ 'status' => 'error', - 'messages' => 'There was an issue finding the organiser.', + 'messages' => trans("Controllers.organiser_other_error"), ]); } @@ -165,7 +165,7 @@ class EventController extends MyBaseController return response()->json([ 'status' => 'error', - 'messages' => 'Whoops! There was a problem creating your event. Please try again.', + 'messages' => trans("Controllers.event_create_exception"), ]); } @@ -307,7 +307,7 @@ class EventController extends MyBaseController return response()->json([ 'status' => 'success', 'id' => $event->id, - 'message' => 'Event Successfully Updated', + 'message' => trans("Controllers.event_successfully_updated"), 'redirectUrl' => '', ]); } @@ -342,7 +342,7 @@ class EventController extends MyBaseController } return response()->json([ - 'error' => 'There was a problem uploading your image.', + 'error' => trans("Controllers.image_upload_error"), ]); } } diff --git a/app/Http/Controllers/EventCustomizeController.php b/app/Http/Controllers/EventCustomizeController.php index e29413f8..252924ae 100644 --- a/app/Http/Controllers/EventCustomizeController.php +++ b/app/Http/Controllers/EventCustomizeController.php @@ -108,7 +108,7 @@ class EventCustomizeController extends MyBaseController return response()->json([ 'status' => 'success', - 'message' => 'Social Settings Successfully Updated', + 'message' => trans("Controllers.social_settings_successfully_updated"), ]); } @@ -132,7 +132,7 @@ class EventCustomizeController extends MyBaseController 'is_1d_barcode_enabled' => ['required'], ]; $messages = [ - 'ticket_bg_color.required' => 'Please enter a background color.', + 'ticket_bg_color.required' => trans("Controllers.please_enter_a_background_color"), ]; $validator = Validator::make($request->all(), $rules, $messages); @@ -174,9 +174,9 @@ class EventCustomizeController extends MyBaseController 'organiser_fee_fixed' => ['numeric', 'between:0,100'], ]; $messages = [ - 'organiser_fee_percentage.numeric' => 'Please enter a value between 0 and 100', - 'organiser_fee_fixed.numeric' => 'Please check the format. It should be in the format 0.00.', - 'organiser_fee_fixed.between' => 'Please enter a value between 0 and 100.', + 'organiser_fee_percentage.numeric' => trans("validation.between.numeric", ["attribute"=>trans("Fees.service_fee_percentage"), "min"=>0, "max"=>100]), + 'organiser_fee_fixed.numeric' => trans("validation.date_format", ["attribute"=>trans("Fees.service_fee_fixed_price"), "format"=>"0.00"]), + 'organiser_fee_fixed.between' => trans("validation.between.numeric", ["attribute"=>trans("Fees.service_fee_fixed_price"), "min"=>0, "max"=>100]), ]; $validator = Validator::make($request->all(), $rules, $messages); @@ -194,7 +194,7 @@ class EventCustomizeController extends MyBaseController return response()->json([ 'status' => 'success', - 'message' => 'Order Page Successfully Updated', + 'message' => trans("Controllers.order_page_successfully_updated"), ]); } @@ -230,7 +230,7 @@ class EventCustomizeController extends MyBaseController return response()->json([ 'status' => 'success', - 'message' => 'Order Page Successfully Updated', + 'message' => trans("Controllers.order_page_successfully_updated"), ]); } @@ -249,8 +249,8 @@ class EventCustomizeController extends MyBaseController 'bg_image_path' => ['mimes:jpeg,jpg,png', 'max:4000'], ]; $messages = [ - 'bg_image_path.mimes' => 'Please ensure you are uploading an image (JPG, PNG, JPEG)', - 'bg_image_path.max' => 'Please ensure the image is not larger than 2.5MB', + 'bg_image_path.mimes' => trans("validation.mimes", ["attribute"=>trans("Event.event_image"), "values"=>"JPEG, JPG, PNG"]), + 'bg_image_path.max' => trans("validation.max.file", ["attribute"=>trans("Event.event_image"), "max"=>2500]), ]; $validator = Validator::make($request->all(), $rules, $messages); @@ -302,7 +302,7 @@ class EventCustomizeController extends MyBaseController return response()->json([ 'status' => 'success', - 'message' => 'Event Page Successfully Updated', + 'message' => trans("Controllers.event_page_successfully_updated"), 'runThis' => 'document.getElementById(\'previewIframe\').contentWindow.location.reload(true);', ]); } diff --git a/app/Http/Controllers/EventOrdersController.php b/app/Http/Controllers/EventOrdersController.php index 31f11fcd..f306196c 100644 --- a/app/Http/Controllers/EventOrdersController.php +++ b/app/Http/Controllers/EventOrdersController.php @@ -179,7 +179,7 @@ class EventOrdersController extends MyBaseController $order->update(); - \Session::flash('message', 'The order has been updated'); + \Session::flash('message', trans("Controllers.the_order_has_been_updated")); return response()->json([ 'status' => 'success', @@ -201,7 +201,7 @@ class EventOrdersController extends MyBaseController 'refund_amount' => ['numeric'], ]; $messages = [ - 'refund_amount.integer' => 'Refund amount must only contain numbers.', + 'refund_amount.integer' => trans("Controllers.refund_only_numbers_error"), ]; $validator = Validator::make($request->all(), $rules, $messages); @@ -223,18 +223,18 @@ class EventOrdersController extends MyBaseController if ($refund_order && $order->payment_gateway->can_refund) { if (!$order->transaction_id) { - $error_message = 'Sorry, this order cannot be refunded.'; + $error_message = trans("Controllers.order_cant_be_refunded"); } if ($order->is_refunded) { - $error_message = 'This order has already been refunded'; + $error_message = trans("Controllers.order_already_refunded"); } elseif ($order->organiser_amount == 0) { - $error_message = 'Nothing to refund'; + $error_message = trans("Controllers.nothing_to_refund"); } elseif ($refund_type !== 'full' && $refund_amount > round(($order->organiser_amount - $order->amount_refunded), 2) ) { - $error_message = 'The maximum amount you can refund is ' . (money($order->organiser_amount - $order->amount_refunded, - $order->event->currency)); + $error_message = trans("Controllers.maximum_refund_amount", ["money"=>(money($order->organiser_amount - $order->amount_refunded, + $order->event->currency))]); } if (!$error_message) { try { @@ -273,7 +273,7 @@ class EventOrdersController extends MyBaseController $order->save(); } catch (\Exeption $e) { Log::error($e); - $error_message = 'There has been a problem processing your refund. Please check your information and try again.'; + $error_message = trans("Controllers.refund_exception"); } } @@ -305,9 +305,17 @@ class EventOrdersController extends MyBaseController } } } - - \Session::flash('message', - (!$refund_amount && !$attendees) ? 'Nothing To Do' : 'Successfully ' . ($refund_order ? ' Refunded Order' : ' ') . ($attendees && $refund_order ? ' & ' : '') . ($attendees ? 'Cancelled Attendee(s)' : '')); + if(!$refund_amount && !$attendees) + $msg = trans("Controllers.nothing_to_do"); + else { + if($attendees && $refund_order) + $msg = trans("Controllers.successfully_refunded_and_cancelled"); + else if($refund_order) + $msg = trans("Controllers.successfully_refunded_order"); + else if($attendees) + $msg = trans("Controllers.successfully_cancelled_attendees"); + } + \Session::flash('message', $msg); return response()->json([ 'status' => 'success', @@ -336,6 +344,8 @@ class EventOrdersController extends MyBaseController $excel->sheet('orders_sheet_1', function ($sheet) use ($event) { \DB::connection()->setFetchMode(\PDO::FETCH_ASSOC); + $yes = strtoupper(trans("basic.yes")); + $no = strtoupper(trans("basic.no")); $data = DB::table('orders') ->where('orders.event_id', '=', $event->id) ->where('orders.event_id', '=', $event->id) @@ -345,8 +355,8 @@ class EventOrdersController extends MyBaseController 'orders.email', 'orders.order_reference', 'orders.amount', - \DB::raw("(CASE WHEN orders.is_refunded = 1 THEN 'YES' ELSE 'NO' END) AS `orders.is_refunded`"), - \DB::raw("(CASE WHEN orders.is_partially_refunded = 1 THEN 'YES' ELSE 'NO' END) AS `orders.is_partially_refunded`"), + \DB::raw("(CASE WHEN orders.is_refunded = 1 THEN '$yes' ELSE '$no' END) AS `orders.is_refunded`"), + \DB::raw("(CASE WHEN orders.is_partially_refunded = 1 THEN '$yes' ELSE '$no' END) AS `orders.is_partially_refunded`"), 'orders.amount_refunded', 'orders.created_at', ])->get(); @@ -356,15 +366,15 @@ class EventOrdersController extends MyBaseController // Add headings to first row $sheet->row(1, [ - 'First Name', - 'Last Name', - 'Email', - 'Order Reference', - 'Amount', - 'Fully Refunded', - 'Partially Refunded', - 'Amount Refunded', - 'Order Date', + trans("Attendee.first_name"), + trans("Attendee.last_name"), + trans("Attendee.email"), + trans("Order.order_ref"), + trans("Order.amount"), + trans("Order.fully_refunded"), + trans("Order.partially_refunded"), + trans("Order.amount_refunded"), + trans("Order.order_date"), ]); // Set gray background on first row @@ -440,13 +450,13 @@ class EventOrdersController extends MyBaseController $message->to($order->event->organiser->email) ->from(config('attendize.outgoing_email_noreply'), $order->event->organiser->name) ->replyTo($order->event->organiser->email, $order->event->organiser->name) - ->subject($data['subject'] . ' [Organiser copy]'); + ->subject($data['subject'] . trans("Email.organiser_copy")); }); } return response()->json([ 'status' => 'success', - 'message' => 'Message Successfully Sent', + 'message' => trans("Controllers.message_successfully_sent"), ]); } @@ -466,7 +476,7 @@ class EventOrdersController extends MyBaseController $order->save(); - session()->flash('message', 'Order Payment Status Successfully Updated'); + session()->flash('message', trans("Controllers.order_payment_status_successfully_updated")); return response()->json([ 'status' => 'success', diff --git a/app/Http/Controllers/EventQrcodeCheckInController.php b/app/Http/Controllers/EventQrcodeCheckInController.php index 8df1f33e..98cdc7bf 100644 --- a/app/Http/Controllers/EventQrcodeCheckInController.php +++ b/app/Http/Controllers/EventQrcodeCheckInController.php @@ -59,7 +59,7 @@ class EventQrcodeCheckInController extends Controller ])->first(); if (is_null($attendee)) { - return response()->json(['status' => 'error', 'message' => "Invalid Ticket! Please try again."]); + return response()->json(['status' => 'error', 'message' => trans("Controllers.invalid_ticket_error")]); } $relatedAttendesCount = Attendee::where('id', '!=', $attendee->id) @@ -72,13 +72,13 @@ class EventQrcodeCheckInController extends Controller if ($relatedAttendesCount >= 1) { $confirmOrderTicketsRoute = route('confirmCheckInOrderTickets', [$event->id, $attendee->order_id]); - $appendedText = '

' . csrf_field() . '
'; + $appendedText = '

' . csrf_field() . '
'; } 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 + 'message' => trans("Controllers.attendee_already_checked_in", ["time"=>$attendee->arrival_time->format(env("DEFAULT_DATETIME_FORMAT"))]) . $appendedText ]); } @@ -86,7 +86,7 @@ class EventQrcodeCheckInController extends Controller return response()->json([ 'status' => 'success', - 'message' => 'Success !
Name: ' . $attendee->first_name . ' ' . $attendee->last_name . '
Reference: ' . $attendee->reference . '
Ticket: ' . $attendee->ticket . '.' . $appendedText + 'message' => trans("Controllers.attendee_check_in_success", ["name"=> $attendee->first_name.' '.$attendee->last_name, "ref"=>$attendee->reference, "ticket"=>$attendee->ticket]). $appendedText ]); } @@ -108,7 +108,7 @@ class EventQrcodeCheckInController extends Controller ->update(['has_arrived' => true, 'arrival_time' => Carbon::now()]); return response()->json([ - 'message' => $updateRowsCount . ' Attendee(s) Checked in.' + 'message' => trans("Controllers.num_attendees_checked_in", ["num"=>$updateRowsCount]) ]); } } diff --git a/app/Http/Controllers/EventSurveyController.php b/app/Http/Controllers/EventSurveyController.php index 98f783d6..57af4ae0 100644 --- a/app/Http/Controllers/EventSurveyController.php +++ b/app/Http/Controllers/EventSurveyController.php @@ -99,11 +99,11 @@ class EventSurveyController extends MyBaseController $event->questions()->attach($question->id); - session()->flash('message', 'Successfully Created Question'); + session()->flash('message', trans("Controllers.successfully_created_question")); return response()->json([ 'status' => 'success', - 'message' => 'Refreshing..', + 'message' => trans("Controllers.refreshing"), 'redirectUrl' => '', ]); } @@ -178,11 +178,11 @@ class EventSurveyController extends MyBaseController $question->tickets()->sync($ticket_ids); - session()->flash('message', 'Successfully Edited Question'); + session()->flash('message', trans("Controllers.successfully_edited_question")); return response()->json([ 'status' => 'success', - 'message' => 'Refreshing..', + 'message' => trans("Controllers.refreshing"), 'redirectUrl' => '', ]); @@ -205,11 +205,11 @@ class EventSurveyController extends MyBaseController if ($question->delete()) { - session()->flash('message', 'Question Successfully Deleted'); + session()->flash('message', trans("Controllers.successfully_deleted_question")); return response()->json([ 'status' => 'success', - 'message' => 'Refreshing..', + 'message' => trans("Controllers.refreshing"), 'redirectUrl' => '', ]); } @@ -217,7 +217,7 @@ class EventSurveyController extends MyBaseController return response()->json([ 'status' => 'error', 'id' => $question->id, - 'message' => 'This question can\'t be deleted.', + 'message' => trans("Controllers.this_question_cant_be_deleted"), ]); } @@ -259,7 +259,7 @@ class EventSurveyController extends MyBaseController { Excel::create('answers-as-of-' . date('d-m-Y-g.i.a'), function ($excel) use ($event_id) { - $excel->setTitle('Survey Answers'); + $excel->setTitle(trans("Controllers.survey_answers")); // Chain the setters $excel->setCreator(config('attendize.app_name')) @@ -296,7 +296,7 @@ class EventSurveyController extends MyBaseController if ($question->save()) { return response()->json([ 'status' => 'success', - 'message' => 'Question Successfully Updated', + 'message' => trans("Controllers.successfully_updated_question"), 'id' => $question->id, ]); } @@ -304,7 +304,7 @@ class EventSurveyController extends MyBaseController return response()->json([ 'status' => 'error', 'id' => $question->id, - 'message' => 'Whoops! Looks like something went wrong. Please try again.', + 'message' => trans("basic.whoops"), ]); } @@ -329,7 +329,7 @@ class EventSurveyController extends MyBaseController return response()->json([ 'status' => 'success', - 'message' => 'Question Order Successfully Updated', + 'message' => trans("Controllers.successfully_updated_question_order"), ]); } } diff --git a/app/Http/Controllers/EventTicketsController.php b/app/Http/Controllers/EventTicketsController.php index cefc8b88..c00580cc 100644 --- a/app/Http/Controllers/EventTicketsController.php +++ b/app/Http/Controllers/EventTicketsController.php @@ -22,11 +22,11 @@ class EventTicketsController extends MyBaseController public function showTickets(Request $request, $event_id) { $allowed_sorts = [ - 'created_at' => 'Creation date', - 'title' => 'Ticket title', - 'quantity_sold' => 'Quantity sold', - 'sales_volume' => 'Sales volume', - 'sort_order' => 'Custom Sort Order', + 'created_at' => trans("Controllers.sort.created_at"), + 'title' => trans("Controllers.sort.title"), + 'quantity_sold' => trans("Controllers.sort.quantity_sold"), + 'sales_volume' => trans("Controllers.sort.sales_volume"), + 'sort_order' => trans("Controllers.sort.sort_order"), ]; // Getting get parameters. @@ -118,7 +118,7 @@ class EventTicketsController extends MyBaseController return response()->json([ 'status' => 'success', 'id' => $ticket->id, - 'message' => 'Refreshing...', + 'message' => trans("Controllers.refreshing"), 'redirectUrl' => route('showEventTickets', [ 'event_id' => $event_id, ]), @@ -142,7 +142,7 @@ class EventTicketsController extends MyBaseController if ($ticket->save()) { return response()->json([ 'status' => 'success', - 'message' => 'Ticket Successfully Updated', + 'message' => trans("Controllers.ticket_successfully_updated"), 'id' => $ticket->id, ]); } @@ -154,7 +154,7 @@ class EventTicketsController extends MyBaseController return response()->json([ 'status' => 'error', 'id' => $ticket->id, - 'message' => 'Whoops! Looks like something went wrong. Please try again.', + 'message' => trans("Controllers.whoops"), ]); } @@ -176,7 +176,7 @@ class EventTicketsController extends MyBaseController if ($ticket->quantity_sold > 0) { return response()->json([ 'status' => 'error', - 'message' => 'Sorry, you can\'t delete this ticket as some have already been sold', + 'message' => trans("Controllers.cant_delete_ticket_when_sold"), 'id' => $ticket->id, ]); } @@ -184,7 +184,7 @@ class EventTicketsController extends MyBaseController if ($ticket->delete()) { return response()->json([ 'status' => 'success', - 'message' => 'Ticket Successfully Deleted', + 'message' => trans("Controllers.ticket_successfully_deleted"), 'id' => $ticket->id, ]); } @@ -196,7 +196,7 @@ class EventTicketsController extends MyBaseController return response()->json([ 'status' => 'error', 'id' => $ticket->id, - 'message' => 'Whoops! Looks like something went wrong. Please try again.', + 'message' => trans("Controllers.whoops"), ]); } @@ -219,7 +219,7 @@ class EventTicketsController extends MyBaseController 'integer', 'min:' . ($ticket->quantity_sold + $ticket->quantity_reserved) ]; - $validation_messages['quantity_available.min'] = 'Quantity available can\'t be less the amount sold or reserved.'; + $validation_messages['quantity_available.min'] = trans("Controllers.quantity_min_error"); $ticket->rules = $validation_rules + $ticket->rules; $ticket->messages = $validation_messages + $ticket->messages; @@ -248,7 +248,7 @@ class EventTicketsController extends MyBaseController return response()->json([ 'status' => 'success', 'id' => $ticket->id, - 'message' => 'Refreshing...', + 'message' => trans("Controllers.refreshing"), 'redirectUrl' => route('showEventTickets', [ 'event_id' => $event_id, ]), @@ -275,7 +275,7 @@ class EventTicketsController extends MyBaseController return response()->json([ 'status' => 'success', - 'message' => 'Ticket Order Successfully Updated', + 'message' => trans("Controllers.ticket_order_successfully_updated"), ]); } } diff --git a/app/Http/Controllers/EventViewController.php b/app/Http/Controllers/EventViewController.php index 48a54461..6e5c0a4e 100644 --- a/app/Http/Controllers/EventViewController.php +++ b/app/Http/Controllers/EventViewController.php @@ -116,12 +116,12 @@ class EventViewController extends Controller $message->to($event->organiser->email, $event->organiser->name) ->from(config('attendize.outgoing_email_noreply'), $data['sender_name']) ->replyTo($data['sender_email'], $data['sender_name']) - ->subject('Message Regarding: ' . $event->title); + ->subject(trans("Email.message_regarding_event", ["event"=>$event->title])); }); return response()->json([ 'status' => 'success', - 'message' => 'Message Successfully Sent', + 'message' => trans("Controllers.message_successfully_sent"), ]); } diff --git a/app/Http/Controllers/InstallerController.php b/app/Http/Controllers/InstallerController.php index ae413fd0..7fc90e48 100644 --- a/app/Http/Controllers/InstallerController.php +++ b/app/Http/Controllers/InstallerController.php @@ -75,7 +75,7 @@ class InstallerController extends Controller * Attempts to install the system * * @param Request $request - * @return \Illuminate\Http\RedirectResponse + * @return \Illuminate\Http\RedirectResponse|array */ public function postInstaller(Request $request) { @@ -106,39 +106,61 @@ class InstallerController extends Controller if ($is_db_valid === 'yes') { return [ 'status' => 'success', - 'message' => 'Success, Your connection works!', + 'message' => trans("Installer.connection_success"), 'test' => 1, ]; } return [ 'status' => 'error', - 'message' => 'Unable to connect! Please check your settings', + 'message' => trans("Installer.connection_failure"), 'test' => 1, ]; } - $config = "APP_ENV=production\n" . - "APP_DEBUG=false\n" . - "APP_URL={$app_url}\n" . - "APP_KEY={$app_key}\n" . - "DB_TYPE={$database['type']}\n" . - "DB_HOST={$database['host']}\n" . - "DB_DATABASE={$database['name']}\n" . - "DB_USERNAME={$database['username']}\n" . - "DB_PASSWORD={$database['password']}\n\n" . - "MAIL_DRIVER={$mail['driver']}\n" . - "MAIL_PORT={$mail['port']}\n" . - "MAIL_ENCRYPTION={$mail['encryption']}\n" . - "MAIL_HOST={$mail['host']}\n" . - "MAIL_USERNAME={$mail['username']}\n" . - "MAIL_FROM_NAME=\"{$mail['from_name']}\"\n" . - "MAIL_FROM_ADDRESS={$mail['from_address']}\n" . - "WKHTML2PDF_BIN_FILE=wkhtmltopdf-amd64\n" . - "MAIL_PASSWORD={$mail['password']}\n\n"; + $config_string = file_get_contents(base_path() . '/.env.example'); + $config_temp = explode("\n", $config_string); + foreach($config_temp as $key=>$row) + $config_temp[$key] = explode("=", $row, 2); + $config = [ + "APP_ENV" => "production", + "APP_DEBUG" => "false", + "APP_URL" => $app_url, + "APP_KEY" => $app_key, + "DB_TYPE" => $database['type'], + "DB_HOST" => $database['host'], + "DB_DATABASE" => $database['name'], + "DB_USERNAME" => $database['username'], + "DB_PASSWORD" => $database['password'], + "MAIL_DRIVER" => $mail['driver'], + "MAIL_PORT" => $mail['port'], + "MAIL_ENCRYPTION" => $mail['encryption'], + "MAIL_HOST" => $mail['host'], + "MAIL_USERNAME" => $mail['username'], + "MAIL_FROM_NAME" => $mail['from_name'], + "MAIL_FROM_ADDRESS" => $mail['from_address'], + "MAIL_PASSWORD" => $mail['password'], + ]; + foreach($config as $key=>$val) { + $set = false; + foreach($config_temp as $rownum=>$row) { + if($row[0]==$key) { + $config_temp[$rownum][1] = $val; + $set = true; + } + } + if(!$set) + $config_temp[] = [$key, $val]; + } + $config_string = ""; + foreach($config_temp as $row) + if(count($row)>1) + $config_string .= implode("=", $row)."\n"; + else + $config_string .= implode("", $row)."\n"; $fp = fopen(base_path() . '/.env', 'w'); - fwrite($fp, $config); + fwrite($fp, $config_string); fclose($fp); Config::set('database.default', $database['type']); diff --git a/app/Http/Controllers/ManageAccountController.php b/app/Http/Controllers/ManageAccountController.php index 723de830..00a149e6 100644 --- a/app/Http/Controllers/ManageAccountController.php +++ b/app/Http/Controllers/ManageAccountController.php @@ -42,7 +42,7 @@ class ManageAccountController extends MyBaseController public function showStripeReturn() { - $error_message = 'There was an error connecting your Stripe account. Please try again.'; + $error_message = trans("Controllers.stripe_error"); if (Input::get('error') || !Input::get('code')) { \Session::flash('message', $error_message); @@ -79,7 +79,7 @@ class ManageAccountController extends MyBaseController $account->save(); - \Session::flash('message', 'You have successfully connected your Stripe account.'); + \Session::flash('message', trans("Controllers.stripe_success")); return redirect()->route('showEventsDashboard'); } @@ -111,7 +111,7 @@ class ManageAccountController extends MyBaseController return response()->json([ 'status' => 'success', 'id' => $account->id, - 'message' => 'Account Successfully Updated', + 'message' => trans("Controllers.account_successfully_updated"), ]); } @@ -157,7 +157,7 @@ class ManageAccountController extends MyBaseController return response()->json([ 'status' => 'success', 'id' => $account_payment_gateway->id, - 'message' => 'Payment Information Successfully Updated', + 'message' => trans("Controllers.payment_information_successfully_updated"), ]); } @@ -173,9 +173,9 @@ class ManageAccountController extends MyBaseController ]; $messages = [ - 'email.email' => 'Please enter a valid E-mail address.', - 'email.required' => 'E-mail address is required.', - 'email.unique' => 'E-mail already in use for this account.', + 'email.email' => trans("Controllers.error.email.email"), + 'email.required' => trans("Controllers.error.email.required"), + 'email.unique' => trans("Controllers.error.email.unique"), ]; $validation = Validator::make(Input::all(), $rules, $messages); @@ -205,12 +205,12 @@ class ManageAccountController extends MyBaseController Mail::send('Emails.inviteUser', $data, function ($message) use ($data) { $message->to($data['user']->email) - ->subject($data['inviter']->first_name . ' ' . $data['inviter']->last_name . ' added you to an ' . config('attendize.app_name') . ' account.'); + ->subject(trans("Email.invite_user", ["name"=>$data['inviter']->first_name . ' ' . $data['inviter']->last_name, "app"=>config('attendize.app_name')])); }); return response()->json([ 'status' => 'success', - 'message' => 'Success! ' . $user->email . ' has been sent further instructions.', + 'message' => trans("Controllers.success_name_has_received_instruction", ["name"=>$user->email]), ]); } diff --git a/app/Http/Controllers/MyBaseController.php b/app/Http/Controllers/MyBaseController.php index 807eb09e..a320e9d3 100644 --- a/app/Http/Controllers/MyBaseController.php +++ b/app/Http/Controllers/MyBaseController.php @@ -27,7 +27,7 @@ class MyBaseController extends Controller */ 'DateFormat' => 'dd-MM-yyyy', 'DateTimeFormat' => 'dd-MM-yyyy hh:mm', - 'GenericErrorMessage' => 'Whoops! An unknown error has occurred. Please try again or contact support if the problem persists.' + 'GenericErrorMessage' => trans("Controllers.whoops"), ]); /* diff --git a/app/Http/Controllers/OrganiserController.php b/app/Http/Controllers/OrganiserController.php index fd5b41fe..b75d57d3 100644 --- a/app/Http/Controllers/OrganiserController.php +++ b/app/Http/Controllers/OrganiserController.php @@ -60,11 +60,11 @@ class OrganiserController extends MyBaseController $organiser->save(); - session()->flash('message', 'Successfully Created Organiser.'); + session()->flash('message', trans("Controllers.successfully_created_organiser")); return response()->json([ 'status' => 'success', - 'message' => 'Refreshing..', + 'message' => trans("Controllers.refreshing"), 'redirectUrl' => route('showOrganiserEvents', [ 'organiser_id' => $organiser->id, 'first_run' => 1 diff --git a/app/Http/Controllers/OrganiserCustomizeController.php b/app/Http/Controllers/OrganiserCustomizeController.php index 5d6840a3..0ac417ee 100644 --- a/app/Http/Controllers/OrganiserCustomizeController.php +++ b/app/Http/Controllers/OrganiserCustomizeController.php @@ -61,7 +61,7 @@ class OrganiserCustomizeController extends MyBaseController $organiser->save(); - session()->flash('message', 'Successfully Updated Organiser'); + session()->flash('message', trans("Controllers.successfully_updated_organiser")); return response()->json([ 'status' => 'success', @@ -86,8 +86,8 @@ class OrganiserCustomizeController extends MyBaseController 'page_text_color' => ['required'], ]; $messages = [ - 'page_header_bg_color.required' => 'Please enter a header background color.', - 'page_bg_color.required' => 'Please enter a background color.', + 'page_header_bg_color.required' => trans("Controllers.error.page_header_bg_color.required"), + 'page_bg_color.required' => trans("Controllers.error.page_bg_color.required"), ]; $validator = Validator::make($request->all(), $rules, $messages); @@ -107,7 +107,7 @@ class OrganiserCustomizeController extends MyBaseController return response()->json([ 'status' => 'success', - 'message' => 'Organiser Design Successfully Updated', + 'message' => trans("Controllers.organiser_design_successfully_updated"), ]); } } diff --git a/app/Http/Controllers/RemindersController.php b/app/Http/Controllers/RemindersController.php index d8884e57..bee00663 100644 --- a/app/Http/Controllers/RemindersController.php +++ b/app/Http/Controllers/RemindersController.php @@ -37,7 +37,7 @@ class RemindersController extends Controller */ protected function getEmailSubject() { - return isset($this->subject) ? $this->subject : 'Your Password Reset Link'; + return isset($this->subject) ? $this->subject : trans("Controllers.your_password_reset_link"); } /** @@ -115,7 +115,7 @@ class RemindersController extends Controller switch ($response) { case PasswordBroker::PASSWORD_RESET: - \Session::flash('message', 'Password Successfully Reset'); + \Session::flash('message', trans("Controllers.password_successfully_reset")); return redirect(route('login')); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 3fee4f12..40e5739a 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -44,12 +44,12 @@ class UserController extends Controller ]; $messages = [ - 'email.email' => 'Please enter a valid E-mail address.', - 'email.required' => 'E-mail address is required.', - 'password.passcheck' => 'This password is incorrect.', - 'email.unique' => 'This E-mail is already in use.', - 'first_name.required' => 'Please enter your first name.', - 'last_name.required' => 'Please enter your last name.', + 'email.email' => trans("Controllers.error.email.email"), + 'email.required' => trans("Controllers.error.email.required"), + 'password.passcheck' => trans("Controllers.error.password.passcheck"), + 'email.unique' => trans("Controllers.error.email.unique"), + 'first_name.required' => trans("Controllers.error.first_name.required"), + 'last_name.required' => trans("Controllers.error.last_name.required"), ]; $validation = Validator::make($request->all(), $rules, $messages); @@ -75,7 +75,7 @@ class UserController extends Controller return response()->json([ 'status' => 'success', - 'message' => 'Successfully Saved Details', + 'message' => trans("Controllers.successfully_saved_details"), ]); } } diff --git a/app/Http/Controllers/UserLoginController.php b/app/Http/Controllers/UserLoginController.php index eb3dbabb..46b54a08 100644 --- a/app/Http/Controllers/UserLoginController.php +++ b/app/Http/Controllers/UserLoginController.php @@ -54,13 +54,13 @@ class UserLoginController extends Controller if (empty($email) || empty($password)) { return Redirect::back() - ->with(['message' => 'Please fill in your email and password', 'failed' => true]) + ->with(['message' => trans("Controllers.fill_email_and_password"), 'failed' => true]) ->withInput(); } if ($this->auth->attempt(['email' => $email, 'password' => $password], true) === false) { return Redirect::back() - ->with(['message' => 'Your username/password combination was incorrect', 'failed' => true]) + ->with(['message' => trans("Controllers.login_password_incorrect"), 'failed' => true]) ->withInput(); } diff --git a/app/Http/Controllers/UserSignupController.php b/app/Http/Controllers/UserSignupController.php index da5613c9..605e7b01 100644 --- a/app/Http/Controllers/UserSignupController.php +++ b/app/Http/Controllers/UserSignupController.php @@ -66,7 +66,7 @@ class UserSignupController extends Controller ['first_name' => $user->first_name, 'confirmation_code' => $user->confirmation_code], function ($message) use ($request) { $message->to($request->get('email'), $request->get('first_name')) - ->subject('Thank you for registering for Attendize'); + ->subject(trans("Email.attendize_register")); }); } @@ -87,7 +87,7 @@ class UserSignupController extends Controller if (!$user) { return view('Public.Errors.Generic', [ - 'message' => 'The confirmation code is missing or malformed.', + 'message' => trans("Controllers.confirmation_malformed"), ]); } @@ -95,7 +95,7 @@ class UserSignupController extends Controller $user->confirmation_code = null; $user->save(); - session()->flash('message', 'Success! Your email is now verified. You can now login.'); + session()->flash('message', trans("Controllers.confirmation_successful")); return redirect()->route('login'); } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 33611077..271d83ba 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -55,5 +55,9 @@ class Kernel extends HttpKernel 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'first.run' => \App\Http\Middleware\FirstRunMiddleware::class, 'installed' => \App\Http\Middleware\CheckInstalled::class, + 'localize' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class, + 'localizationRedirect' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class, + 'localeSessionRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class, + 'localeViewPath' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationViewPath::class, ]; } diff --git a/app/Http/routes.php b/app/Http/routes.php index 4d7bdebe..d9332d78 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -1,727 +1,746 @@ 'showInstaller', - 'uses' => 'InstallerController@showInstaller', -]); - -Route::post('install', [ - 'as' => 'postInstaller', - 'uses' => 'InstallerController@postInstaller', -]); - -/* - * Stripe connect return - */ -Route::any('payment/return/stripe', [ - 'as' => 'showStripeReturn', - 'uses' => 'ManageAccountController@showStripeReturn', -]); - -/* - * Logout - */ -Route::any('/logout', [ - 'uses' => 'UserLogoutController@doLogout', - 'as' => 'logout', -]); - -Route::group(['middleware' => ['installed']], function () { +Route::group( + [ + 'prefix' => LaravelLocalization::setLocale(), + 'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath' ] + ], function() { + /* + * Include our API routes file + */ + include_once('api_routes.php'); /* - * Login + * ------------------------- + * Installer + * ------------------------- */ - Route::get('/login', [ - 'as' => 'login', - 'uses' => 'UserLoginController@showLogin', - ]); - Route::post('/login', 'UserLoginController@postLogin'); - - /* - * Forgot password - */ - Route::get('login/forgot-password', [ - 'as' => 'forgotPassword', - 'uses' => 'RemindersController@getRemind', + Route::get('install', [ + 'as' => 'showInstaller', + 'uses' => 'InstallerController@showInstaller', ]); - Route::post('login/forgot-password', [ - 'as' => 'postForgotPassword', - 'uses' => 'RemindersController@postRemind', + Route::post('install', [ + 'as' => 'postInstaller', + 'uses' => 'InstallerController@postInstaller', ]); /* - * Reset Password + * Stripe connect return */ - Route::get('login/reset-password/{token}', [ - 'as' => 'showResetPassword', - 'uses' => 'RemindersController@getReset', - ]); - - Route::post('login/reset-password', [ - 'as' => 'postResetPassword', - 'uses' => 'RemindersController@postReset', + Route::any('payment/return/stripe', [ + 'as' => 'showStripeReturn', + 'uses' => 'ManageAccountController@showStripeReturn', ]); /* - * Registration / Account creation + * Logout */ - Route::get('/signup', [ - 'uses' => 'UserSignupController@showSignup', - 'as' => 'showSignup', - ]); - Route::post('/signup', 'UserSignupController@postSignup'); - - /* - * Confirm Email - */ - Route::get('signup/confirm_email/{confirmation_code}', [ - 'as' => 'confirmEmail', - 'uses' => 'UserSignupController@confirmEmail', - ]); -}); - -/* - * Public organiser page routes - */ -Route::group(['prefix' => 'o'], function () { - - Route::get('/{organiser_id}/{organier_slug?}', [ - 'as' => 'showOrganiserHome', - 'uses' => 'OrganiserViewController@showOrganiserHome', - ]); - -}); - -/* - * Public event page routes - */ -Route::group(['prefix' => 'e'], function () { - - /* - * Embedded events - */ - Route::get('/{event_id}/embed', [ - 'as' => 'showEmbeddedEventPage', - 'uses' => 'EventViewEmbeddedController@showEmbeddedEvent', - ]); - - Route::get('/{event_id}/calendar.ics', [ - 'as' => 'downloadCalendarIcs', - 'uses' => 'EventViewController@showCalendarIcs', - ]); - - Route::get('/{event_id}/{event_slug?}', [ - 'as' => 'showEventPage', - 'uses' => 'EventViewController@showEventHome', - ]); - - Route::post('/{event_id}/contact_organiser', [ - 'as' => 'postContactOrganiser', - 'uses' => 'EventViewController@postContactOrganiser', - ]); - - /* - * Used for previewing designs in the backend. Doesn't log page views etc. - */ - Route::get('/{event_id}/preview', [ - 'as' => 'showEventPagePreview', - 'uses' => 'EventViewController@showEventHomePreview', - ]); - - Route::post('{event_id}/checkout/', [ - 'as' => 'postValidateTickets', - 'uses' => 'EventCheckoutController@postValidateTickets', - ]); - - Route::get('{event_id}/checkout/create', [ - 'as' => 'showEventCheckout', - 'uses' => 'EventCheckoutController@showEventCheckout', - ]); - - Route::get('{event_id}/checkout/success', [ - 'as' => 'showEventCheckoutPaymentReturn', - 'uses' => 'EventCheckoutController@showEventCheckoutPaymentReturn', + Route::any('/logout', [ + 'uses' => 'UserLogoutController@doLogout', + 'as' => 'logout', ]); - Route::post('{event_id}/checkout/create', [ - 'as' => 'postCreateOrder', - 'uses' => 'EventCheckoutController@postCreateOrder', - ]); -}); - -/* - * Public view order routes - */ -Route::get('order/{order_reference}', [ - 'as' => 'showOrderDetails', - 'uses' => 'EventCheckoutController@showOrderDetails', -]); - -Route::get('order/{order_reference}/tickets', [ - 'as' => 'showOrderTickets', - 'uses' => 'EventCheckoutController@showOrderTickets', -]); - -/* - * Backend routes - */ -Route::group(['middleware' => ['auth', 'first.run']], function () { - - /* - * Edit User - */ - Route::group(['prefix' => 'user'], function () { - - Route::get('/', [ - 'as' => 'showEditUser', - 'uses' => 'UserController@showEditUser', - ]); - Route::post('/', [ - 'as' => 'postEditUser', - 'uses' => 'UserController@postEditUser', - ]); - - }); - - /* - * Manage account - */ - Route::group(['prefix' => 'account'], function () { - - Route::get('/', [ - 'as' => 'showEditAccount', - 'uses' => 'ManageAccountController@showEditAccount', - ]); - - Route::post('/', [ - 'as' => 'postEditAccount', - 'uses' => 'ManageAccountController@postEditAccount', - ]); - Route::post('/edit_payment', [ - 'as' => 'postEditAccountPayment', - 'uses' => 'ManageAccountController@postEditAccountPayment', - ]); - - Route::post('invite_user', [ - 'as' => 'postInviteUser', - 'uses' => 'ManageAccountController@postInviteUser', - ]); - - }); - - Route::get('select_organiser', [ - 'as' => 'showSelectOrganiser', - 'uses' => 'OrganiserController@showSelectOrganiser', + Route::get('/terms_and_conditions', [ + 'as' => 'termsAndConditions', + function () { + return 'TODO: add terms and cond'; + } ]); - /* - * Organiser routes - */ - Route::group(['prefix' => 'organiser'], function () { - Route::get('{organiser_id}/dashboard', [ - 'as' => 'showOrganiserDashboard', - 'uses' => 'OrganiserDashboardController@showDashboard', - ]); - Route::get('{organiser_id}/events', [ - 'as' => 'showOrganiserEvents', - 'uses' => 'OrganiserEventsController@showEvents', - ]); - Route::get('{organiser_id}/customize', [ - 'as' => 'showOrganiserCustomize', - 'uses' => 'OrganiserCustomizeController@showCustomize', - ]); - Route::post('{organiser_id}/customize', [ - 'as' => 'postEditOrganiser', - 'uses' => 'OrganiserCustomizeController@postEditOrganiser', - ]); - - Route::get('create', [ - 'as' => 'showCreateOrganiser', - 'uses' => 'OrganiserController@showCreateOrganiser', - ]); - Route::post('create', [ - 'as' => 'postCreateOrganiser', - 'uses' => 'OrganiserController@postCreateOrganiser', - ]); - - Route::post('{organiser_id}/page_design', [ - 'as' => 'postEditOrganiserPageDesign', - 'uses' => 'OrganiserCustomizeController@postEditOrganiserPageDesign' - ]); - }); - - /* - * Events dashboard - */ - Route::group(['prefix' => 'events'], function () { + Route::group(['middleware' => ['installed']], function () { /* - * ---------- - * Create Event - * ---------- + * Login */ - Route::get('/create', [ - 'as' => 'showCreateEvent', - 'uses' => 'EventController@showCreateEvent', + Route::get('/login', [ + 'as' => 'login', + 'uses' => 'UserLoginController@showLogin', + ]); + Route::post('/login', 'UserLoginController@postLogin'); + + /* + * Forgot password + */ + Route::get('login/forgot-password', [ + 'as' => 'forgotPassword', + 'uses' => 'RemindersController@getRemind', ]); - Route::post('/create', [ - 'as' => 'postCreateEvent', - 'uses' => 'EventController@postCreateEvent', + Route::post('login/forgot-password', [ + 'as' => 'postForgotPassword', + 'uses' => 'RemindersController@postRemind', + ]); + + /* + * Reset Password + */ + Route::get('login/reset-password/{token}', [ + 'as' => 'showResetPassword', + 'uses' => 'RemindersController@getReset', + ]); + + Route::post('login/reset-password', [ + 'as' => 'postResetPassword', + 'uses' => 'RemindersController@postReset', + ]); + + /* + * Registration / Account creation + */ + Route::get('/signup', [ + 'uses' => 'UserSignupController@showSignup', + 'as' => 'showSignup', + ]); + Route::post('/signup', 'UserSignupController@postSignup'); + + /* + * Confirm Email + */ + Route::get('signup/confirm_email/{confirmation_code}', [ + 'as' => 'confirmEmail', + 'uses' => 'UserSignupController@confirmEmail', ]); }); /* - * Upload event images + * Public organiser page routes */ - Route::post('/upload_image', [ - 'as' => 'postUploadEventImage', - 'uses' => 'EventController@postUploadEventImage', + Route::group(['prefix' => 'o'], function () { + + Route::get('/{organiser_id}/{organier_slug?}', [ + 'as' => 'showOrganiserHome', + 'uses' => 'OrganiserViewController@showOrganiserHome', + ]); + + }); + + /* + * Public event page routes + */ + Route::group(['prefix' => 'e'], function () { + + /* + * Embedded events + */ + Route::get('/{event_id}/embed', [ + 'as' => 'showEmbeddedEventPage', + 'uses' => 'EventViewEmbeddedController@showEmbeddedEvent', + ]); + + Route::get('/{event_id}/calendar.ics', [ + 'as' => 'downloadCalendarIcs', + 'uses' => 'EventViewController@showCalendarIcs', + ]); + + Route::get('/{event_id}/{event_slug?}', [ + 'as' => 'showEventPage', + 'uses' => 'EventViewController@showEventHome', + ]); + + Route::post('/{event_id}/contact_organiser', [ + 'as' => 'postContactOrganiser', + 'uses' => 'EventViewController@postContactOrganiser', + ]); + + /* + * Used for previewing designs in the backend. Doesn't log page views etc. + */ + Route::get('/{event_id}/preview', [ + 'as' => 'showEventPagePreview', + 'uses' => 'EventViewController@showEventHomePreview', + ]); + + Route::post('{event_id}/checkout/', [ + 'as' => 'postValidateTickets', + 'uses' => 'EventCheckoutController@postValidateTickets', + ]); + + Route::get('{event_id}/checkout/create', [ + 'as' => 'showEventCheckout', + 'uses' => 'EventCheckoutController@showEventCheckout', + ]); + + Route::get('{event_id}/checkout/success', [ + 'as' => 'showEventCheckoutPaymentReturn', + 'uses' => 'EventCheckoutController@showEventCheckoutPaymentReturn', + ]); + + + Route::post('{event_id}/checkout/create', [ + 'as' => 'postCreateOrder', + 'uses' => 'EventCheckoutController@postCreateOrder', + ]); + }); + + /* + * Public view order routes + */ + Route::get('order/{order_reference}', [ + 'as' => 'showOrderDetails', + 'uses' => 'EventCheckoutController@showOrderDetails', + ]); + + Route::get('order/{order_reference}/tickets', [ + 'as' => 'showOrderTickets', + 'uses' => 'EventCheckoutController@showOrderTickets', ]); /* - * Event management routes + * Backend routes */ - Route::group(['prefix' => 'event'], function () { + Route::group(['middleware' => ['auth', 'first.run']], function () { /* - * Dashboard + * Edit User */ - Route::get('{event_id}/dashboard/', [ - 'as' => 'showEventDashboard', - 'uses' => 'EventDashboardController@showDashboard', - ] - ); + Route::group(['prefix' => 'user'], function () { - Route::get('{event_id}', function ($event_id) { - return Redirect::route('showEventDashboard', [ - 'event_id' => $event_id, + Route::get('/', [ + 'as' => 'showEditUser', + 'uses' => 'UserController@showEditUser', + ]); + Route::post('/', [ + 'as' => 'postEditUser', + 'uses' => 'UserController@postEditUser', + ]); + + }); + + /* + * Manage account + */ + Route::group(['prefix' => 'account'], function () { + + Route::get('/', [ + 'as' => 'showEditAccount', + 'uses' => 'ManageAccountController@showEditAccount', + ]); + + Route::post('/', [ + 'as' => 'postEditAccount', + 'uses' => 'ManageAccountController@postEditAccount', + ]); + Route::post('/edit_payment', [ + 'as' => 'postEditAccountPayment', + 'uses' => 'ManageAccountController@postEditAccountPayment', + ]); + + Route::post('invite_user', [ + 'as' => 'postInviteUser', + 'uses' => 'ManageAccountController@postInviteUser', + ]); + + }); + + Route::get('select_organiser', [ + 'as' => 'showSelectOrganiser', + 'uses' => 'OrganiserController@showSelectOrganiser', + ]); + + /* + * Organiser routes + */ + Route::group(['prefix' => 'organiser'], function () { + + Route::get('{organiser_id}/dashboard', [ + 'as' => 'showOrganiserDashboard', + 'uses' => 'OrganiserDashboardController@showDashboard', + ]); + Route::get('{organiser_id}/events', [ + 'as' => 'showOrganiserEvents', + 'uses' => 'OrganiserEventsController@showEvents', + ]); + + Route::get('{organiser_id}/customize', [ + 'as' => 'showOrganiserCustomize', + 'uses' => 'OrganiserCustomizeController@showCustomize', + ]); + Route::post('{organiser_id}/customize', [ + 'as' => 'postEditOrganiser', + 'uses' => 'OrganiserCustomizeController@postEditOrganiser', + ]); + + Route::get('create', [ + 'as' => 'showCreateOrganiser', + 'uses' => 'OrganiserController@showCreateOrganiser', + ]); + Route::post('create', [ + 'as' => 'postCreateOrganiser', + 'uses' => 'OrganiserController@postCreateOrganiser', + ]); + + Route::post('{organiser_id}/page_design', [ + 'as' => 'postEditOrganiserPageDesign', + 'uses' => 'OrganiserCustomizeController@postEditOrganiserPageDesign' ]); }); /* - * @todo Move to a controller + * Events dashboard */ - Route::get('{event_id}/go_live', [ - 'as' => 'MakeEventLive', - function ($event_id) { - $event = \App\Models\Event::scope()->findOrFail($event_id); - $event->is_live = 1; - $event->save(); - \Session::flash('message', - 'Event Successfully Made Live! You can undo this action in event settings page.'); + Route::group(['prefix' => 'events'], function () { + /* + * ---------- + * Create Event + * ---------- + */ + Route::get('/create', [ + 'as' => 'showCreateEvent', + 'uses' => 'EventController@showCreateEvent', + ]); + + Route::post('/create', [ + 'as' => 'postCreateEvent', + 'uses' => 'EventController@postCreateEvent', + ]); + }); + + /* + * Upload event images + */ + Route::post('/upload_image', [ + 'as' => 'postUploadEventImage', + 'uses' => 'EventController@postUploadEventImage', + ]); + + /* + * Event management routes + */ + Route::group(['prefix' => 'event'], function () { + + /* + * Dashboard + */ + Route::get('{event_id}/dashboard/', [ + 'as' => 'showEventDashboard', + 'uses' => 'EventDashboardController@showDashboard', + ] + ); + + Route::get('{event_id}', function ($event_id) { return Redirect::route('showEventDashboard', [ 'event_id' => $event_id, ]); - } - ]); + }); - /* - * ------- - * Tickets - * ------- - */ - Route::get('{event_id}/tickets/', [ - 'as' => 'showEventTickets', - 'uses' => 'EventTicketsController@showTickets', - ]); - Route::get('{event_id}/tickets/edit/{ticket_id}', [ - 'as' => 'showEditTicket', - 'uses' => 'EventTicketsController@showEditTicket', - ]); - Route::post('{event_id}/tickets/edit/{ticket_id}', [ - 'as' => 'postEditTicket', - 'uses' => 'EventTicketsController@postEditTicket', - ]); - Route::get('{event_id}/tickets/create', [ - 'as' => 'showCreateTicket', - 'uses' => 'EventTicketsController@showCreateTicket', - ]); - Route::post('{event_id}/tickets/create', [ - 'as' => 'postCreateTicket', - 'uses' => 'EventTicketsController@postCreateTicket', - ]); - Route::post('{event_id}/tickets/delete', [ - 'as' => 'postDeleteTicket', - 'uses' => 'EventTicketsController@postDeleteTicket', - ]); - Route::post('{event_id}/tickets/pause', [ - 'as' => 'postPauseTicket', - 'uses' => 'EventTicketsController@postPauseTicket', - ]); - Route::post('{event_id}/tickets/order', [ - 'as' => 'postUpdateTicketsOrder', - 'uses' => 'EventTicketsController@postUpdateTicketsOrder', - ]); + /* + * @todo Move to a controller + */ + Route::get('{event_id}/go_live', [ + 'as' => 'MakeEventLive', + function ($event_id) { + $event = \App\Models\Event::scope()->findOrFail($event_id); + $event->is_live = 1; + $event->save(); + \Session::flash('message', + 'Event Successfully Made Live! You can undo this action in event settings page.'); - /* - * Ticket questions - */ - Route::get('{event_id}/tickets/questions', [ - 'as' => 'showTicketQuestions', - 'uses' => 'EventTicketQuestionsController@showQuestions', - ]); - Route::post('{event_id}/tickets/questions/create', [ - 'as' => 'postCreateQuestion', - 'uses' => 'EventTicketQuestionsController@postCreateQuestion', - ]); + return Redirect::route('showEventDashboard', [ + 'event_id' => $event_id, + ]); + } + ]); - /* - * ------- - * Attendees - * ------- - */ - Route::get('{event_id}/attendees/', [ - 'as' => 'showEventAttendees', - 'uses' => 'EventAttendeesController@showAttendees', - ]); + /* + * ------- + * Tickets + * ------- + */ + Route::get('{event_id}/tickets/', [ + 'as' => 'showEventTickets', + 'uses' => 'EventTicketsController@showTickets', + ]); + Route::get('{event_id}/tickets/edit/{ticket_id}', [ + 'as' => 'showEditTicket', + 'uses' => 'EventTicketsController@showEditTicket', + ]); + Route::post('{event_id}/tickets/edit/{ticket_id}', [ + 'as' => 'postEditTicket', + 'uses' => 'EventTicketsController@postEditTicket', + ]); + Route::get('{event_id}/tickets/create', [ + 'as' => 'showCreateTicket', + 'uses' => 'EventTicketsController@showCreateTicket', + ]); + Route::post('{event_id}/tickets/create', [ + 'as' => 'postCreateTicket', + 'uses' => 'EventTicketsController@postCreateTicket', + ]); + Route::post('{event_id}/tickets/delete', [ + 'as' => 'postDeleteTicket', + 'uses' => 'EventTicketsController@postDeleteTicket', + ]); + Route::post('{event_id}/tickets/pause', [ + 'as' => 'postPauseTicket', + 'uses' => 'EventTicketsController@postPauseTicket', + ]); + Route::post('{event_id}/tickets/order', [ + 'as' => 'postUpdateTicketsOrder', + 'uses' => 'EventTicketsController@postUpdateTicketsOrder', + ]); - Route::get('{event_id}/attendees/message', [ - 'as' => 'showMessageAttendees', - 'uses' => 'EventAttendeesController@showMessageAttendees', - ]); + /* + * Ticket questions + */ + Route::get('{event_id}/tickets/questions', [ + 'as' => 'showTicketQuestions', + 'uses' => 'EventTicketQuestionsController@showQuestions', + ]); + Route::post('{event_id}/tickets/questions/create', [ + 'as' => 'postCreateQuestion', + 'uses' => 'EventTicketQuestionsController@postCreateQuestion', + ]); - Route::post('{event_id}/attendees/message', [ - 'as' => 'postMessageAttendees', - 'uses' => 'EventAttendeesController@postMessageAttendees', - ]); + /* + * ------- + * Attendees + * ------- + */ + Route::get('{event_id}/attendees/', [ + 'as' => 'showEventAttendees', + 'uses' => 'EventAttendeesController@showAttendees', + ]); - Route::get('{event_id}/attendees/single_message', [ - 'as' => 'showMessageAttendee', - 'uses' => 'EventAttendeesController@showMessageAttendee', - ]); + Route::get('{event_id}/attendees/message', [ + 'as' => 'showMessageAttendees', + 'uses' => 'EventAttendeesController@showMessageAttendees', + ]); - Route::post('{event_id}/attendees/single_message', [ - 'as' => 'postMessageAttendee', - 'uses' => 'EventAttendeesController@postMessageAttendee', - ]); + Route::post('{event_id}/attendees/message', [ + 'as' => 'postMessageAttendees', + 'uses' => 'EventAttendeesController@postMessageAttendees', + ]); - Route::get('{event_id}/attendees/resend_ticket', [ - 'as' => 'showResendTicketToAttendee', - 'uses' => 'EventAttendeesController@showResendTicketToAttendee', - ]); + Route::get('{event_id}/attendees/single_message', [ + 'as' => 'showMessageAttendee', + 'uses' => 'EventAttendeesController@showMessageAttendee', + ]); - Route::post('{event_id}/attendees/resend_ticket', [ - 'as' => 'postResendTicketToAttendee', - 'uses' => 'EventAttendeesController@postResendTicketToAttendee', - ]); + Route::post('{event_id}/attendees/single_message', [ + 'as' => 'postMessageAttendee', + 'uses' => 'EventAttendeesController@postMessageAttendee', + ]); - Route::get('{event_id}/attendees/invite', [ - 'as' => 'showInviteAttendee', - 'uses' => 'EventAttendeesController@showInviteAttendee', - ]); + Route::get('{event_id}/attendees/resend_ticket', [ + 'as' => 'showResendTicketToAttendee', + 'uses' => 'EventAttendeesController@showResendTicketToAttendee', + ]); - Route::post('{event_id}/attendees/invite', [ - 'as' => 'postInviteAttendee', - 'uses' => 'EventAttendeesController@postInviteAttendee', - ]); + Route::post('{event_id}/attendees/resend_ticket', [ + 'as' => 'postResendTicketToAttendee', + 'uses' => 'EventAttendeesController@postResendTicketToAttendee', + ]); - Route::get('{event_id}/attendees/import', [ - 'as' => 'showImportAttendee', - 'uses' => 'EventAttendeesController@showImportAttendee', - ]); + Route::get('{event_id}/attendees/invite', [ + 'as' => 'showInviteAttendee', + 'uses' => 'EventAttendeesController@showInviteAttendee', + ]); - Route::post('{event_id}/attendees/import', [ - 'as' => 'postImportAttendee', - 'uses' => 'EventAttendeesController@postImportAttendee', - ]); + Route::post('{event_id}/attendees/invite', [ + 'as' => 'postInviteAttendee', + 'uses' => 'EventAttendeesController@postInviteAttendee', + ]); - Route::get('{event_id}/attendees/print', [ - 'as' => 'showPrintAttendees', - 'uses' => 'EventAttendeesController@showPrintAttendees', - ]); + Route::get('{event_id}/attendees/import', [ + 'as' => 'showImportAttendee', + 'uses' => 'EventAttendeesController@showImportAttendee', + ]); - Route::get('{event_id}/attendees/{attendee_id}/export_ticket', [ - 'as' => 'showExportTicket', - 'uses' => 'EventAttendeesController@showExportTicket', - ]); + Route::post('{event_id}/attendees/import', [ + 'as' => 'postImportAttendee', + 'uses' => 'EventAttendeesController@postImportAttendee', + ]); - Route::get('{event_id}/attendees/{attendee_id}/ticket', [ - 'as' => 'showAttendeeTicket', - 'uses' => 'EventAttendeesController@showAttendeeTicket', - ]); + Route::get('{event_id}/attendees/print', [ + 'as' => 'showPrintAttendees', + 'uses' => 'EventAttendeesController@showPrintAttendees', + ]); - Route::get('{event_id}/attendees/export/{export_as?}', [ - 'as' => 'showExportAttendees', - 'uses' => 'EventAttendeesController@showExportAttendees', - ]); + Route::get('{event_id}/attendees/{attendee_id}/export_ticket', [ + 'as' => 'showExportTicket', + 'uses' => 'EventAttendeesController@showExportTicket', + ]); - Route::get('{event_id}/attendees/{attendee_id}/edit', [ - 'as' => 'showEditAttendee', - 'uses' => 'EventAttendeesController@showEditAttendee', - ]); - Route::post('{event_id}/attendees/{attendee_id}/edit', [ - 'as' => 'postEditAttendee', - 'uses' => 'EventAttendeesController@postEditAttendee', - ]); + Route::get('{event_id}/attendees/{attendee_id}/ticket', [ + 'as' => 'showAttendeeTicket', + 'uses' => 'EventAttendeesController@showAttendeeTicket', + ]); - Route::get('{event_id}/attendees/{attendee_id}/cancel', [ - 'as' => 'showCancelAttendee', - 'uses' => 'EventAttendeesController@showCancelAttendee', - ]); - Route::post('{event_id}/attendees/{attendee_id}/cancel', [ - 'as' => 'postCancelAttendee', - 'uses' => 'EventAttendeesController@postCancelAttendee', - ]); + Route::get('{event_id}/attendees/export/{export_as?}', [ + 'as' => 'showExportAttendees', + 'uses' => 'EventAttendeesController@showExportAttendees', + ]); - /* - * ------- - * Orders - * ------- - */ - Route::get('{event_id}/orders/', [ - 'as' => 'showEventOrders', - 'uses' => 'EventOrdersController@showOrders', - ]); + Route::get('{event_id}/attendees/{attendee_id}/edit', [ + 'as' => 'showEditAttendee', + 'uses' => 'EventAttendeesController@showEditAttendee', + ]); + Route::post('{event_id}/attendees/{attendee_id}/edit', [ + 'as' => 'postEditAttendee', + 'uses' => 'EventAttendeesController@postEditAttendee', + ]); - Route::get('order/{order_id}', [ - 'as' => 'showManageOrder', - 'uses' => 'EventOrdersController@manageOrder', - ]); + Route::get('{event_id}/attendees/{attendee_id}/cancel', [ + 'as' => 'showCancelAttendee', + 'uses' => 'EventAttendeesController@showCancelAttendee', + ]); + Route::post('{event_id}/attendees/{attendee_id}/cancel', [ + 'as' => 'postCancelAttendee', + 'uses' => 'EventAttendeesController@postCancelAttendee', + ]); - Route::post('order/{order_id}/resend', [ - 'as' => 'resendOrder', - 'uses' => 'EventOrdersController@resendOrder', - ]); + /* + * ------- + * Orders + * ------- + */ + Route::get('{event_id}/orders/', [ + 'as' => 'showEventOrders', + 'uses' => 'EventOrdersController@showOrders', + ]); - Route::get('order/{order_id}/show/edit', [ - 'as' => 'showEditOrder', - 'uses' => 'EventOrdersController@showEditOrder', - ]); + Route::get('order/{order_id}', [ + 'as' => 'showManageOrder', + 'uses' => 'EventOrdersController@manageOrder', + ]); - Route::post('order/{order_id}/edit', [ - 'as' => 'postOrderEdit', - 'uses' => 'EventOrdersController@postEditOrder', - ]); + Route::post('order/{order_id}/resend', [ + 'as' => 'resendOrder', + 'uses' => 'EventOrdersController@resendOrder', + ]); - Route::get('order/{order_id}/cancel', [ - 'as' => 'showCancelOrder', - 'uses' => 'EventOrdersController@showCancelOrder', - ]); + Route::get('order/{order_id}/show/edit', [ + 'as' => 'showEditOrder', + 'uses' => 'EventOrdersController@showEditOrder', + ]); - Route::post('order/{order_id}/cancel', [ - 'as' => 'postCancelOrder', - 'uses' => 'EventOrdersController@postCancelOrder', - ]); + Route::post('order/{order_id}/edit', [ + 'as' => 'postOrderEdit', + 'uses' => 'EventOrdersController@postEditOrder', + ]); - Route::post('order/{order_id}/mark_payment_received', [ - 'as' => 'postMarkPaymentReceived', - 'uses' => 'EventOrdersController@postMarkPaymentReceived', - ]); + Route::get('order/{order_id}/cancel', [ + 'as' => 'showCancelOrder', + 'uses' => 'EventOrdersController@showCancelOrder', + ]); - Route::get('{event_id}/orders/export/{export_as?}', [ - 'as' => 'showExportOrders', - 'uses' => 'EventOrdersController@showExportOrders', - ]); - Route::get('{event_id}/orders/message', [ - 'as' => 'showMessageOrder', - 'uses' => 'EventOrdersController@showMessageOrder', - ]); + Route::post('order/{order_id}/cancel', [ + 'as' => 'postCancelOrder', + 'uses' => 'EventOrdersController@postCancelOrder', + ]); - Route::post('{event_id}/orders/message', [ - 'as' => 'postMessageOrder', - 'uses' => 'EventOrdersController@postMessageOrder', - ]); + Route::post('order/{order_id}/mark_payment_received', [ + 'as' => 'postMarkPaymentReceived', + 'uses' => 'EventOrdersController@postMarkPaymentReceived', + ]); - /* - * ------- - * Edit Event - * ------- - */ - Route::post('{event_id}/customize', [ - 'as' => 'postEditEvent', - 'uses' => 'EventController@postEditEvent', - ]); + Route::get('{event_id}/orders/export/{export_as?}', [ + 'as' => 'showExportOrders', + 'uses' => 'EventOrdersController@showExportOrders', + ]); + Route::get('{event_id}/orders/message', [ + 'as' => 'showMessageOrder', + 'uses' => 'EventOrdersController@showMessageOrder', + ]); - /* - * ------- - * Customize Design etc. - * ------- - */ - Route::get('{event_id}/customize', [ - 'as' => 'showEventCustomize', - 'uses' => 'EventCustomizeController@showCustomize', - ]); + Route::post('{event_id}/orders/message', [ + 'as' => 'postMessageOrder', + 'uses' => 'EventOrdersController@postMessageOrder', + ]); - Route::get('{event_id}/customize/{tab?}', [ - 'as' => 'showEventCustomizeTab', - 'uses' => 'EventCustomizeController@showCustomize', - ]); + /* + * ------- + * Edit Event + * ------- + */ + Route::post('{event_id}/customize', [ + 'as' => 'postEditEvent', + 'uses' => 'EventController@postEditEvent', + ]); - Route::post('{event_id}/customize/order_page', [ - 'as' => 'postEditEventOrderPage', - 'uses' => 'EventCustomizeController@postEditEventOrderPage', - ]); - Route::post('{event_id}/customize/design', [ - 'as' => 'postEditEventDesign', - 'uses' => 'EventCustomizeController@postEditEventDesign', - ]); - Route::post('{event_id}/customize/ticket_design', [ - 'as' => 'postEditEventTicketDesign', - 'uses' => 'EventCustomizeController@postEditEventTicketDesign', - ]); - Route::post('{event_id}/customize/social', [ - 'as' => 'postEditEventSocial', - 'uses' => 'EventCustomizeController@postEditEventSocial', - ]); + /* + * ------- + * Customize Design etc. + * ------- + */ + Route::get('{event_id}/customize', [ + 'as' => 'showEventCustomize', + 'uses' => 'EventCustomizeController@showCustomize', + ]); - Route::post('{event_id}/customize/fees', [ - 'as' => 'postEditEventFees', - 'uses' => 'EventCustomizeController@postEditEventFees', - ]); + Route::get('{event_id}/customize/{tab?}', [ + 'as' => 'showEventCustomizeTab', + 'uses' => 'EventCustomizeController@showCustomize', + ]); + + Route::post('{event_id}/customize/order_page', [ + 'as' => 'postEditEventOrderPage', + 'uses' => 'EventCustomizeController@postEditEventOrderPage', + ]); + Route::post('{event_id}/customize/design', [ + 'as' => 'postEditEventDesign', + 'uses' => 'EventCustomizeController@postEditEventDesign', + ]); + Route::post('{event_id}/customize/ticket_design', [ + 'as' => 'postEditEventTicketDesign', + 'uses' => 'EventCustomizeController@postEditEventTicketDesign', + ]); + Route::post('{event_id}/customize/social', [ + 'as' => 'postEditEventSocial', + 'uses' => 'EventCustomizeController@postEditEventSocial', + ]); + + Route::post('{event_id}/customize/fees', [ + 'as' => 'postEditEventFees', + 'uses' => 'EventCustomizeController@postEditEventFees', + ]); - /* - * ------- - * Event Widget page - * ------- - */ - Route::get('{event_id}/widgets', [ - 'as' => 'showEventWidgets', - 'uses' => 'EventWidgetsController@showEventWidgets', - ]); + /* + * ------- + * Event Widget page + * ------- + */ + Route::get('{event_id}/widgets', [ + 'as' => 'showEventWidgets', + 'uses' => 'EventWidgetsController@showEventWidgets', + ]); - /* - * ------- - * Event Survey page - * ------- - */ - Route::get('{event_id}/surveys', [ - 'as' => 'showEventSurveys', - 'uses' => 'EventSurveyController@showEventSurveys', - ]); - Route::get('{event_id}/question/create', [ - 'as' => 'showCreateEventQuestion', - 'uses' => 'EventSurveyController@showCreateEventQuestion' - ]); + /* + * ------- + * Event Survey page + * ------- + */ + Route::get('{event_id}/surveys', [ + 'as' => 'showEventSurveys', + 'uses' => 'EventSurveyController@showEventSurveys', + ]); + Route::get('{event_id}/question/create', [ + 'as' => 'showCreateEventQuestion', + 'uses' => 'EventSurveyController@showCreateEventQuestion' + ]); - Route::post('{event_id}/question/create', [ - 'as' => 'postCreateEventQuestion', - 'uses' => 'EventSurveyController@postCreateEventQuestion' - ]); + Route::post('{event_id}/question/create', [ + 'as' => 'postCreateEventQuestion', + 'uses' => 'EventSurveyController@postCreateEventQuestion' + ]); - Route::get('{event_id}/question/{question_id}', [ - 'as' => 'showEditEventQuestion', - 'uses' => 'EventSurveyController@showEditEventQuestion' - ]); + Route::get('{event_id}/question/{question_id}', [ + 'as' => 'showEditEventQuestion', + 'uses' => 'EventSurveyController@showEditEventQuestion' + ]); - Route::post('{event_id}/question/{question_id}', [ - 'as' => 'postEditEventQuestion', - 'uses' => 'EventSurveyController@postEditEventQuestion' - ]); + Route::post('{event_id}/question/{question_id}', [ + 'as' => 'postEditEventQuestion', + 'uses' => 'EventSurveyController@postEditEventQuestion' + ]); - Route::post('{event_id}/question/delete/{question_id}', [ - 'as' => 'postDeleteEventQuestion', - 'uses' => 'EventSurveyController@postDeleteEventQuestion' - ]); + Route::post('{event_id}/question/delete/{question_id}', [ + 'as' => 'postDeleteEventQuestion', + 'uses' => 'EventSurveyController@postDeleteEventQuestion' + ]); - Route::get('{event_id}/question/{question_id}/answers', [ - 'as' => 'showEventQuestionAnswers', - 'uses' => 'EventSurveyController@showEventQuestionAnswers', - ]); + Route::get('{event_id}/question/{question_id}/answers', [ + 'as' => 'showEventQuestionAnswers', + 'uses' => 'EventSurveyController@showEventQuestionAnswers', + ]); - Route::post('{event_id}/questions/update_order', [ - 'as' => 'postUpdateQuestionsOrder', - 'uses' => 'EventSurveyController@postUpdateQuestionsOrder' - ]); + Route::post('{event_id}/questions/update_order', [ + 'as' => 'postUpdateQuestionsOrder', + 'uses' => 'EventSurveyController@postUpdateQuestionsOrder' + ]); - Route::get('{event_id}/answers/export/{export_as?}', [ - 'as' => 'showExportAnswers', - 'uses' => 'EventSurveyController@showExportAnswers', - ]); + Route::get('{event_id}/answers/export/{export_as?}', [ + 'as' => 'showExportAnswers', + 'uses' => 'EventSurveyController@showExportAnswers', + ]); - Route::post('{event_id}/question/{question_id}/enable', [ - 'as' => 'postEnableQuestion', - 'uses' => 'EventSurveyController@postEnableQuestion', - ]); + Route::post('{event_id}/question/{question_id}/enable', [ + 'as' => 'postEnableQuestion', + 'uses' => 'EventSurveyController@postEnableQuestion', + ]); - /* - * ------- - * Check In App - * ------- - */ - Route::get('{event_id}/check_in', [ - 'as' => 'showChechIn', - 'uses' => 'EventCheckInController@showCheckIn', - ]); - Route::post('{event_id}/check_in/search', [ - 'as' => 'postCheckInSearch', - 'uses' => 'EventCheckInController@postCheckInSearch', - ]); - Route::post('{event_id}/check_in/', [ - 'as' => 'postCheckInAttendee', - 'uses' => 'EventCheckInController@postCheckInAttendee', - ]); + /* + * ------- + * Check In App + * ------- + */ + Route::get('{event_id}/check_in', [ + 'as' => 'showChechIn', + 'uses' => 'EventCheckInController@showCheckIn', + ]); + Route::post('{event_id}/check_in/search', [ + 'as' => 'postCheckInSearch', + 'uses' => 'EventCheckInController@postCheckInSearch', + ]); + Route::post('{event_id}/check_in/', [ + 'as' => 'postCheckInAttendee', + 'uses' => 'EventCheckInController@postCheckInAttendee', + ]); - Route::post('{event_id}/qrcode_check_in', [ - 'as' => 'postQRCodeCheckInAttendee', - 'uses' => 'EventCheckInController@postCheckInAttendeeQr', - ]); + Route::post('{event_id}/qrcode_check_in', [ + 'as' => 'postQRCodeCheckInAttendee', + 'uses' => 'EventCheckInController@postCheckInAttendeeQr', + ]); - Route::post('{event_id}/confirm_order_tickets/{order_id}', [ - 'as' => 'confirmCheckInOrderTickets', - 'uses' => 'EventCheckInController@confirmOrderTicketsQr', - ]); + Route::post('{event_id}/confirm_order_tickets/{order_id}', [ + 'as' => 'confirmCheckInOrderTickets', + 'uses' => 'EventCheckInController@confirmOrderTicketsQr', + ]); - /* - * ------- - * QRCode Check In App - * ------- + /* + * ------- + * QRCode Check In App + * ------- - Route::get('{event_id}/qrcode_check_in', [ - 'as' => 'showQRCodeChechIn', - 'uses' => 'EventQrcodeCheckInController@showCheckIn', - ]); + 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::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', - ]); - */ + Route::match(['PUT', 'PATCH'], '{event_id}/confirm_order_tickets/{order_id}', [ + 'as' => 'confirmCheckInOrderTickets', + 'uses' => 'EventQrcodeCheckInController@confirmOrderTickets', + ]); + */ - /* - * ------- - * Promote - * ------- - */ - Route::get('{event_id}/promote', [ - 'as' => 'showEventPromote', - 'uses' => 'EventPromoteController@showPromote', - ]); + /* + * ------- + * Promote + * ------- + */ + Route::get('{event_id}/promote', [ + 'as' => 'showEventPromote', + 'uses' => 'EventPromoteController@showPromote', + ]); + }); }); + + Route::get('/', function () { + return Redirect::route('showSelectOrganiser'); + // I prefer it that way: + // return Redirect::route('showOrganiserHome', ["organiser_id"=>1]); + }); + + Route::get('/terms_and_conditions', [ + 'as' => 'termsAndConditions', + function () { + return 'TODO: add terms and cond'; + } + ]); + }); -Route::get('/', function () { - return Redirect::route('showSelectOrganiser'); -}); - -Route::get('/terms_and_conditions', [ - 'as' => 'termsAndConditions', - function () { - return 'TODO: add terms and cond'; - } -]); - diff --git a/app/Jobs/GenerateTicket.php b/app/Jobs/GenerateTicket.php index 81ee0893..e7f48d05 100644 --- a/app/Jobs/GenerateTicket.php +++ b/app/Jobs/GenerateTicket.php @@ -60,8 +60,10 @@ class GenerateTicket extends Job implements ShouldQueue $attendees = $query->get(); $image_path = $event->organiser->full_logo_path; - if ($event->images->first() != null) { - $image_path = $event->images()->first()->image_path; + $images = []; + $imgs = $order->event->images; + foreach ($imgs as $img) { + $images[] = base64_encode(file_get_contents(public_path($img->image_path))); } $data = [ @@ -70,6 +72,7 @@ class GenerateTicket extends Job implements ShouldQueue 'attendees' => $attendees, 'css' => file_get_contents(public_path('assets/stylesheet/ticket.css')), 'image' => base64_encode(file_get_contents(public_path($image_path))), + 'images' => $images, ]; PDF::setOutputMode('F'); // force to file diff --git a/app/Mailers/AttendeeMailer.php b/app/Mailers/AttendeeMailer.php index 974b7893..c8648d1c 100644 --- a/app/Mailers/AttendeeMailer.php +++ b/app/Mailers/AttendeeMailer.php @@ -23,7 +23,7 @@ class AttendeeMailer extends Mailer Mail::send('Mailers.TicketMailer.SendAttendeeTicket', $data, function ($message) use ($attendee) { $message->to($attendee->email); - $message->subject('Your ticket for the event ' . $attendee->order->event->title); + $message->subject(trans("Email.your_ticket_for_event", ["event" => $attendee->order->event->title])); $file_name = $attendee->reference; $file_path = public_path(config('attendize.event_pdf_tickets_path')) . '/' . $file_name . '.pdf'; @@ -81,7 +81,7 @@ class AttendeeMailer extends Mailer Mail::queue('Mailers.TicketMailer.SendAttendeeInvite', $data, function ($message) use ($attendee) { $message->to($attendee->email); - $message->subject('Your ticket for the event ' . $attendee->order->event->title); + $message->subject(trans("Email.your_ticket_for_event", ["event" => $attendee->order->event->title])); $file_name = $attendee->getReferenceAttribute(); $file_path = public_path(config('attendize.event_pdf_tickets_path')) . '/' . $file_name . '.pdf'; diff --git a/app/Mailers/OrderMailer.php b/app/Mailers/OrderMailer.php index 19282622..eab2efcb 100644 --- a/app/Mailers/OrderMailer.php +++ b/app/Mailers/OrderMailer.php @@ -25,14 +25,13 @@ class OrderMailer { Log::info("Sending ticket to: " . $order->email); - $data = [ 'order' => $order, ]; Mail::send('Mailers.TicketMailer.SendOrderTickets', $data, function ($message) use ($order) { $message->to($order->email); - $message->subject('Your tickets for the event ' . $order->event->title); + $message->subject(trans("Controllers.tickets_for_event", ["event"=>$order->event->title])); $file_name = $order->order_reference; $file_path = public_path(config('attendize.event_pdf_tickets_path')) . '/' . $file_name . '.pdf'; diff --git a/app/Models/Event.php b/app/Models/Event.php index 8ab98f43..93880e3a 100644 --- a/app/Models/Event.php +++ b/app/Models/Event.php @@ -309,7 +309,8 @@ class Event extends MyBaseModel */ public function getEventUrlAttribute() { - return URL::to('/') . '/e/' . $this->id . '/' . Str::slug($this->title); + return route("showEventPage", ["event_id"=>$this->id, "event_slug"=>Str::slug($this->title)]); + //return URL::to('/') . '/e/' . $this->id . '/' . Str::slug($this->title); } /** diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 78815cb4..889a61d3 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -30,5 +30,8 @@ class AppServiceProvider extends ServiceProvider $this->app->bind( 'Illuminate\Contracts\Auth\Registrar', 'App\Services\Registrar' ); + if ($this->app->environment() !== 'production') { // or local or whatever + $this->app->register(\Potsky\LaravelLocalizationHelpers\LaravelLocalizationHelpersServiceProvider::class); + } } } diff --git a/bootstrap/app.php b/bootstrap/app.php index 22712ffe..249b6ada 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -40,7 +40,6 @@ $app->singleton( 'Illuminate\Contracts\Debug\ExceptionHandler', 'App\Exceptions\Handler' ); - /* |-------------------------------------------------------------------------- | Return The Application diff --git a/composer.json b/composer.json index f494c718..fba0ed47 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,9 @@ "laracasts/utilities": "^2.1", "predis/predis": "~1.0", "guzzlehttp/guzzle": "^6.2", - "omnipay/migs": "^2.1" + "omnipay/migs": "^2.1", + "mcamara/laravel-localization": "^1.2", + "potsky/laravel-localization-helpers": "2.3.*" }, "require-dev": { "phpunit/phpunit": "~4.0", @@ -73,5 +75,12 @@ }, "config": { "preferred-install": "dist" + }, + "extra" : { + "laravel" : { + "dont-discover" : [ + "potsky/laravel-localization-helpers" + ] + } } } diff --git a/composer.lock b/composer.lock index 7d113a13..f0201a7b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,27 +4,30 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "7b1126b16006b172d42d088ccd9ff54e", - "content-hash": "a5aca37d7aaec7360f32b22ffabb7bb2", + "content-hash": "89a6668b4e954f6a6e229978385a9ea0", "packages": [ { "name": "aws/aws-sdk-php", - "version": "3.18.18", + "version": "3.54.4", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "68b9d0b7e007782bc0f2633cdf5a4a6bf08aaafc" + "reference": "6642a13df7ddcccf19e66c744c5bfae5b61e9e85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/68b9d0b7e007782bc0f2633cdf5a4a6bf08aaafc", - "reference": "68b9d0b7e007782bc0f2633cdf5a4a6bf08aaafc", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/6642a13df7ddcccf19e66c744c5bfae5b61e9e85", + "reference": "6642a13df7ddcccf19e66c744c5bfae5b61e9e85", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "~5.3|~6.0.1|~6.1", + "ext-json": "*", + "ext-pcre": "*", + "ext-simplexml": "*", + "ext-spl": "*", + "guzzlehttp/guzzle": "^5.3.1|^6.2.1", "guzzlehttp/promises": "~1.0", - "guzzlehttp/psr7": "~1.0", + "guzzlehttp/psr7": "^1.4.1", "mtdowling/jmespath.php": "~2.2", "php": ">=5.5" }, @@ -34,13 +37,9 @@ "behat/behat": "~3.0", "doctrine/cache": "~1.4", "ext-dom": "*", - "ext-json": "*", "ext-openssl": "*", - "ext-pcre": "*", - "ext-simplexml": "*", - "ext-spl": "*", "nette/neon": "^2.3", - "phpunit/phpunit": "~4.0|~5.0", + "phpunit/phpunit": "^4.8.35|^5.4.3", "psr/cache": "^1.0" }, "suggest": { @@ -85,24 +84,24 @@ "s3", "sdk" ], - "time": "2016-06-14 20:35:03" + "time": "2018-04-10T22:11:31+00:00" }, { "name": "classpreloader/classpreloader", - "version": "3.0.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/ClassPreloader/ClassPreloader.git", - "reference": "9b10b913c2bdf90c3d2e0d726b454fb7f77c552a" + "reference": "4729e438e0ada350f91148e7d4bb9809342575ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/9b10b913c2bdf90c3d2e0d726b454fb7f77c552a", - "reference": "9b10b913c2bdf90c3d2e0d726b454fb7f77c552a", + "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/4729e438e0ada350f91148e7d4bb9809342575ff", + "reference": "4729e438e0ada350f91148e7d4bb9809342575ff", "shasum": "" }, "require": { - "nikic/php-parser": "^1.0|^2.0", + "nikic/php-parser": "^1.0|^2.0|^3.0", "php": ">=5.5.9" }, "require-dev": { @@ -111,7 +110,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -139,138 +138,7 @@ "class", "preload" ], - "time": "2015-11-09 22:51:51" - }, - { - "name": "dingo/api", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/dingo/api.git", - "reference": "242411efbb9f01104a00b780c4defb2c18a45856" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dingo/api/zipball/242411efbb9f01104a00b780c4defb2c18a45856", - "reference": "242411efbb9f01104a00b780c4defb2c18a45856", - "shasum": "" - }, - "require": { - "dingo/blueprint": "0.2.*", - "doctrine/annotations": "1.2.*", - "illuminate/routing": "5.1.* || 5.2.* || 5.3.*", - "illuminate/support": "5.1.* || 5.2.* || 5.3.*", - "league/fractal": ">=0.12.0", - "php": "^5.5.9 || ^7.0" - }, - "require-dev": { - "illuminate/auth": "5.1.* || 5.2.* || 5.3.*", - "illuminate/cache": "5.1.* || 5.2.* || 5.3.*", - "illuminate/console": "5.1.* || 5.2.* || 5.3.*", - "illuminate/database": "5.1.* || 5.2.* || 5.3.*", - "illuminate/events": "5.1.* || 5.2.* || 5.3.*", - "illuminate/filesystem": "5.1.* || 5.2.* || 5.3.*", - "illuminate/log": "5.1.* || 5.2.* || 5.3.*", - "illuminate/pagination": "5.1.* || 5.2.* || 5.3.*", - "laravel/lumen-framework": "5.1.* || 5.2.*", - "lucadegasperi/oauth2-server-laravel": "5.0.*", - "mockery/mockery": "~0.9", - "phpunit/phpunit": "^4.8 || ^5.0", - "squizlabs/php_codesniffer": "~2.0", - "tymon/jwt-auth": "1.0.*" - }, - "suggest": { - "lucadegasperi/oauth2-server-laravel": "Protect your API with OAuth 2.0.", - "tymon/jwt-auth": "Protect your API with JSON Web Tokens." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Dingo\\Api\\": "src/" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jason Lewis", - "email": "jason.lewis1991@gmail.com" - } - ], - "description": "A RESTful API package for the Laravel and Lumen frameworks.", - "keywords": [ - "api", - "dingo", - "laravel", - "restful" - ], - "time": "2016-09-02 05:51:07" - }, - { - "name": "dingo/blueprint", - "version": "v0.2.0", - "source": { - "type": "git", - "url": "https://github.com/dingo/blueprint.git", - "reference": "d37fb7433aeadb3d40d5e790978c3c8d229d0e7d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dingo/blueprint/zipball/d37fb7433aeadb3d40d5e790978c3c8d229d0e7d", - "reference": "d37fb7433aeadb3d40d5e790978c3c8d229d0e7d", - "shasum": "" - }, - "require": { - "doctrine/annotations": "1.2.*", - "illuminate/filesystem": "5.1.* || 5.2.* || 5.3.*", - "illuminate/support": "5.1.* || 5.2.* || 5.3.*", - "php": ">=5.5.9", - "phpdocumentor/reflection-docblock": "3.1.*" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.2-dev" - } - }, - "autoload": { - "psr-4": { - "Dingo\\Blueprint\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jason Lewis", - "email": "jason.lewis1991@gmail.com" - } - ], - "description": "API Blueprint documentation generator.", - "keywords": [ - "api", - "blueprint", - "dingo", - "docs", - "laravel" - ], - "time": "2016-08-30 03:27:49" + "time": "2017-12-10T11:40:39+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -303,75 +171,7 @@ "MIT" ], "description": "implementation of xdg base directory specification for php", - "time": "2014-10-24 07:27:01" - }, - { - "name": "doctrine/annotations", - "version": "v1.2.7", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535", - "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "php": ">=5.3.2" - }, - "require-dev": { - "doctrine/cache": "1.*", - "phpunit/phpunit": "4.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Annotations\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "time": "2015-08-31 12:32:49" + "time": "2014-10-24T07:27:01+00:00" }, { "name": "doctrine/inflector", @@ -438,61 +238,7 @@ "singularize", "string" ], - "time": "2015-11-06 14:35:42" - }, - { - "name": "doctrine/lexer", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "lexer", - "parser" - ], - "time": "2014-09-09 13:34:57" + "time": "2015-11-06T14:35:42+00:00" }, { "name": "dompdf/dompdf", @@ -500,24 +246,25 @@ "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "8db6e1478e11b4e2bd0753c903dabe375b58ac3b" + "reference": "2e643732cdb61fb09f867a15f2ae4e224503d1b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/e4b49285f8c7165f31b5cc6395a5ee1bbc35144a", - "reference": "8db6e1478e11b4e2bd0753c903dabe375b58ac3b", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/2e643732cdb61fb09f867a15f2ae4e224503d1b0", + "reference": "2e643732cdb61fb09f867a15f2ae4e224503d1b0", "shasum": "" }, "require": { "ext-dom": "*", "ext-gd": "*", "ext-mbstring": "*", - "phenx/php-font-lib": "0.4.*", - "phenx/php-svg-lib": "0.1.*", - "php": ">=5.3.0" + "phenx/php-font-lib": "0.5.*", + "phenx/php-svg-lib": "0.3.*", + "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "3.7.*" + "phpunit/phpunit": "4.8.*", + "squizlabs/php_codesniffer": "2.*" }, "type": "library", "extra": { @@ -553,22 +300,29 @@ ], "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", "homepage": "https://github.com/dompdf/dompdf", - "time": "2016-05-12 04:19:17" + "time": "2018-04-08T15:07:27+00:00" }, { "name": "erusev/parsedown", - "version": "1.6.0", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/erusev/parsedown.git", - "reference": "3ebbd730b5c2cf5ce78bc1bf64071407fc6674b7" + "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/3ebbd730b5c2cf5ce78bc1bf64071407fc6674b7", - "reference": "3ebbd730b5c2cf5ce78bc1bf64071407fc6674b7", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1", + "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1", "shasum": "" }, + "require": { + "ext-mbstring": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35" + }, "type": "library", "autoload": { "psr-0": { @@ -592,25 +346,28 @@ "markdown", "parser" ], - "time": "2015-10-04 16:44:32" + "time": "2018-03-08T01:11:30+00:00" }, { "name": "ezyang/htmlpurifier", - "version": "v4.7.0", + "version": "v4.10.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "ae1828d955112356f7677c465f94f7deb7d27a40" + "reference": "d85d39da4576a6934b72480be6978fb10c860021" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/ae1828d955112356f7677c465f94f7deb7d27a40", - "reference": "ae1828d955112356f7677c465f94f7deb7d27a40", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d85d39da4576a6934b72480be6978fb10c860021", + "reference": "d85d39da4576a6934b72480be6978fb10c860021", "shasum": "" }, "require": { "php": ">=5.2" }, + "require-dev": { + "simpletest/simpletest": "^1.1" + }, "type": "library", "autoload": { "psr-0": { @@ -636,7 +393,7 @@ "keywords": [ "html" ], - "time": "2015-08-05 01:03:42" + "time": "2018-02-23T01:58:20+00:00" }, { "name": "filp/whoops", @@ -694,7 +451,65 @@ "whoops", "zf2" ], - "time": "2015-06-29 05:42:04" + "time": "2015-06-29T05:42:04+00:00" + }, + { + "name": "friendsofphp/php-cs-fixer", + "version": "v1.13.3", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", + "reference": "387e4c86c9dc0e1e4c475291fc114ec45b98e624" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/387e4c86c9dc0e1e4c475291fc114ec45b98e624", + "reference": "387e4c86c9dc0e1e4c475291fc114ec45b98e624", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^5.3.6 || >=7.0 <7.2", + "sebastian/diff": "^1.1", + "symfony/console": "^2.3 || ^3.0", + "symfony/event-dispatcher": "^2.1 || ^3.0", + "symfony/filesystem": "^2.1 || ^3.0", + "symfony/finder": "^2.1 || ^3.0", + "symfony/process": "^2.3 || ^3.0", + "symfony/stopwatch": "^2.5 || ^3.0" + }, + "conflict": { + "hhvm": "<3.9" + }, + "require-dev": { + "phpunit/phpunit": "^4.5|^5", + "satooshi/php-coveralls": "^1.0" + }, + "bin": [ + "php-cs-fixer" + ], + "type": "application", + "autoload": { + "psr-4": { + "Symfony\\CS\\": "Symfony/CS/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dariusz Rumiński", + "email": "dariusz.ruminski@gmail.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "A tool to automatically fix PHP code style", + "time": "2017-09-11T14:11:16+00:00" }, { "name": "guzzle/guzzle", @@ -789,36 +604,40 @@ "rest", "web service" ], - "time": "2015-03-18 18:23:50" + "abandoned": "guzzlehttp/guzzle", + "time": "2015-03-18T18:23:50+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "6.2.0", + "version": "6.3.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d094e337976dff9d8e2424e8485872194e768662" + "reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d094e337976dff9d8e2424e8485872194e768662", - "reference": "d094e337976dff9d8e2424e8485872194e768662", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/68d0ea14d5a3f42a20e87632a5f84931e2709c90", + "reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90", "shasum": "" }, "require": { - "guzzlehttp/promises": "~1.0", - "guzzlehttp/psr7": "~1.1", - "php": ">=5.5.0" + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.4", + "php": ">=5.5" }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "~4.0", - "psr/log": "~1.0" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4", + "psr/log": "^1.0" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.2-dev" + "dev-master": "6.3-dev" } }, "autoload": { @@ -851,32 +670,32 @@ "rest", "web service" ], - "time": "2016-03-21 20:02:09" + "time": "2018-03-26T16:33:04+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.2.0", + "version": "v1.3.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "c10d860e2a9595f8883527fa0021c7da9e65f579" + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/c10d860e2a9595f8883527fa0021c7da9e65f579", - "reference": "c10d860e2a9595f8883527fa0021c7da9e65f579", + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", "shasum": "" }, "require": { "php": ">=5.5.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -902,20 +721,20 @@ "keywords": [ "promise" ], - "time": "2016-05-18 16:56:05" + "time": "2016-12-20T10:07:11+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.3.0", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "31382fef2889136415751badebbd1cb022a4ed72" + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/31382fef2889136415751badebbd1cb022a4ed72", - "reference": "31382fef2889136415751badebbd1cb022a4ed72", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", "shasum": "" }, "require": { @@ -931,7 +750,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -951,16 +770,23 @@ "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" } ], - "description": "PSR-7 message implementation", + "description": "PSR-7 message implementation that also provides common utility methods", "keywords": [ "http", "message", + "request", + "response", "stream", - "uri" + "uri", + "url" ], - "time": "2016-04-13 19:56:01" + "time": "2017-03-20T17:10:46+00:00" }, { "name": "intervention/image", @@ -968,12 +794,12 @@ "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "22088b04728a039bd1fc32f7e79a89a118b78698" + "reference": "a54d1e9e6af2815c5ec24972d1d9209c677ce452" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/4064a980324f6c3bfa2bd981dfb247afa705ec3c", - "reference": "22088b04728a039bd1fc32f7e79a89a118b78698", + "url": "https://api.github.com/repos/Intervention/image/zipball/a54d1e9e6af2815c5ec24972d1d9209c677ce452", + "reference": "a54d1e9e6af2815c5ec24972d1d9209c677ce452", "shasum": "" }, "require": { @@ -983,7 +809,7 @@ }, "require-dev": { "mockery/mockery": "~0.9.2", - "phpunit/phpunit": "3.*" + "phpunit/phpunit": "^4.8 || ^5.7" }, "suggest": { "ext-gd": "to use GD library based image processing.", @@ -994,6 +820,14 @@ "extra": { "branch-alias": { "dev-master": "2.3-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } } }, "autoload": { @@ -1008,8 +842,8 @@ "authors": [ { "name": "Oliver Vogel", - "email": "oliver@olivervogel.net", - "homepage": "http://olivervogel.net/" + "email": "oliver@olivervogel.com", + "homepage": "http://olivervogel.com/" } ], "description": "Image handling and manipulation library with support for Laravel integration", @@ -1022,62 +856,20 @@ "thumbnail", "watermark" ], - "time": "2016-04-26 14:08:40" - }, - { - "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" + "time": "2017-09-21T16:33:42+00:00" }, { "name": "iron-io/iron_core", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/iron-io/iron_core_php.git", - "reference": "07f400f36eb4a29e8759abe1c81922a019f801dc" + "reference": "26be2d67a39f86f023247fe72f00a7b00786452f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/iron-io/iron_core_php/zipball/07f400f36eb4a29e8759abe1c81922a019f801dc", - "reference": "07f400f36eb4a29e8759abe1c81922a019f801dc", + "url": "https://api.github.com/repos/iron-io/iron_core_php/zipball/26be2d67a39f86f023247fe72f00a7b00786452f", + "reference": "26be2d67a39f86f023247fe72f00a7b00786452f", "shasum": "" }, "require": { @@ -1117,7 +909,7 @@ "iron", "iron_core" ], - "time": "2016-02-02 11:49:32" + "time": "2018-03-01T18:36:55+00:00" }, { "name": "iron-io/iron_mq", @@ -1166,7 +958,7 @@ "iron", "iron_mq" ], - "time": "2015-02-12 20:05:42" + "time": "2015-02-12T20:05:42+00:00" }, { "name": "jakub-onderka/php-console-color", @@ -1209,7 +1001,7 @@ "homepage": "http://www.acci.cz" } ], - "time": "2014-04-08 15:00:19" + "time": "2014-04-08T15:00:19+00:00" }, { "name": "jakub-onderka/php-console-highlighter", @@ -1253,24 +1045,24 @@ "homepage": "http://www.acci.cz/" } ], - "time": "2015-04-20 18:58:01" + "time": "2015-04-20T18:58:01+00:00" }, { "name": "jeremeamia/SuperClosure", - "version": "2.2.0", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/jeremeamia/super_closure.git", - "reference": "29a88be2a4846d27c1613aed0c9071dfad7b5938" + "reference": "5707d5821b30b9a07acfb4d76949784aaa0e9ce9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/29a88be2a4846d27c1613aed0c9071dfad7b5938", - "reference": "29a88be2a4846d27c1613aed0c9071dfad7b5938", + "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/5707d5821b30b9a07acfb4d76949784aaa0e9ce9", + "reference": "5707d5821b30b9a07acfb4d76949784aaa0e9ce9", "shasum": "" }, "require": { - "nikic/php-parser": "^1.2|^2.0", + "nikic/php-parser": "^1.2|^2.0|^3.0|^4.0", "php": ">=5.4", "symfony/polyfill-php56": "^1.0" }, @@ -1280,7 +1072,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.4-dev" } }, "autoload": { @@ -1311,7 +1103,7 @@ "serialize", "tokenizer" ], - "time": "2015-12-05 17:17:57" + "time": "2018-03-21T22:21:57+00:00" }, { "name": "laracasts/utilities", @@ -1355,20 +1147,20 @@ "javascript", "laravel" ], - "time": "2015-10-01 05:16:28" + "time": "2015-10-01T05:16:28+00:00" }, { "name": "laravel/framework", - "version": "v5.2.38", + "version": "v5.2.45", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "e211a37eab49a124996ad9150f9e1bdfb52aa048" + "reference": "2a79f920d5584ec6df7cf996d922a742d11095d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/e211a37eab49a124996ad9150f9e1bdfb52aa048", - "reference": "e211a37eab49a124996ad9150f9e1bdfb52aa048", + "url": "https://api.github.com/repos/laravel/framework/zipball/2a79f920d5584ec6df7cf996d922a742d11095d1", + "reference": "2a79f920d5584ec6df7cf996d922a742d11095d1", "shasum": "" }, "require": { @@ -1425,7 +1217,8 @@ "illuminate/support": "self.version", "illuminate/translation": "self.version", "illuminate/validation": "self.version", - "illuminate/view": "self.version" + "illuminate/view": "self.version", + "tightenco/collect": "self.version" }, "require-dev": { "aws/aws-sdk-php": "~3.0", @@ -1448,7 +1241,7 @@ "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.*).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (0.2.*)." + "symfony/psr-http-message-bridge": "Required to use psr7 bridging features (0.2.*)." }, "type": "library", "extra": { @@ -1484,20 +1277,20 @@ "framework", "laravel" ], - "time": "2016-06-14 01:20:40" + "time": "2016-08-26T11:44:52+00:00" }, { "name": "laravel/socialite", - "version": "v2.0.17", + "version": "v2.0.21", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "81d39cde2226f7548d8d1aa99405278c87e50737" + "reference": "c4e4337e5b70149fdbefbb95b2c9e93d0749c413" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/81d39cde2226f7548d8d1aa99405278c87e50737", - "reference": "81d39cde2226f7548d8d1aa99405278c87e50737", + "url": "https://api.github.com/repos/laravel/socialite/zipball/c4e4337e5b70149fdbefbb95b2c9e93d0749c413", + "reference": "c4e4337e5b70149fdbefbb95b2c9e93d0749c413", "shasum": "" }, "require": { @@ -1510,7 +1303,7 @@ }, "require-dev": { "mockery/mockery": "~0.9", - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "~4.0|~5.0" }, "type": "library", "extra": { @@ -1538,20 +1331,20 @@ "laravel", "oauth" ], - "time": "2016-05-27 12:42:05" + "time": "2017-03-27T21:32:28+00:00" }, { "name": "laravelcollective/html", - "version": "v5.2.4", + "version": "v5.2.6", "source": { "type": "git", "url": "https://github.com/LaravelCollective/html.git", - "reference": "3a312d39ffe37da0f57b602618b61fd07c1fcec5" + "reference": "4f6701c7c3f6ff2aee1f4ed205ed6820e1e3048e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/LaravelCollective/html/zipball/3a312d39ffe37da0f57b602618b61fd07c1fcec5", - "reference": "3a312d39ffe37da0f57b602618b61fd07c1fcec5", + "url": "https://api.github.com/repos/LaravelCollective/html/zipball/4f6701c7c3f6ff2aee1f4ed205ed6820e1e3048e", + "reference": "4f6701c7c3f6ff2aee1f4ed205ed6820e1e3048e", "shasum": "" }, "require": { @@ -1592,47 +1385,48 @@ ], "description": "HTML and Form Builders for the Laravel Framework", "homepage": "http://laravelcollective.com", - "time": "2016-01-27 22:29:54" + "time": "2017-05-21T18:02:21+00:00" }, { "name": "league/flysystem", - "version": "1.0.24", + "version": "1.0.44", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "9aca859a303fdca30370f42b8c611d9cf0dedf4b" + "reference": "168dbe519737221dc87d17385cde33073881fd02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9aca859a303fdca30370f42b8c611d9cf0dedf4b", - "reference": "9aca859a303fdca30370f42b8c611d9cf0dedf4b", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/168dbe519737221dc87d17385cde33073881fd02", + "reference": "168dbe519737221dc87d17385cde33073881fd02", "shasum": "" }, "require": { - "php": ">=5.4.0" + "php": ">=5.5.9" }, "conflict": { "league/flysystem-sftp": "<1.0.6" }, "require-dev": { "ext-fileinfo": "*", - "mockery/mockery": "~0.9", - "phpspec/phpspec": "^2.2", - "phpunit/phpunit": "~4.8 || ~5.0" + "phpspec/phpspec": "^3.4", + "phpunit/phpunit": "^5.7" }, "suggest": { "ext-fileinfo": "Required for MimeType", + "ext-ftp": "Allows you to use FTP server storage", + "ext-openssl": "Allows you to use FTPS server storage", "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-copy": "Allows you to use Copy.com storage", - "league/flysystem-dropbox": "Allows you to use Dropbox storage", "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter" + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", + "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", + "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" }, "type": "library", "extra": { @@ -1675,25 +1469,25 @@ "sftp", "storage" ], - "time": "2016-06-03 19:11:39" + "time": "2018-04-06T09:58:14+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "1.0.12", + "version": "1.0.19", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "d9c27edda5b4b2840c3f602d4ce6fbfeaab10e5a" + "reference": "f135691ef6761542af301b7c9880f140fb12dc74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/d9c27edda5b4b2840c3f602d4ce6fbfeaab10e5a", - "reference": "d9c27edda5b4b2840c3f602d4ce6fbfeaab10e5a", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/f135691ef6761542af301b7c9880f140fb12dc74", + "reference": "f135691ef6761542af301b7c9880f140fb12dc74", "shasum": "" }, "require": { "aws/aws-sdk-php": "^3.0.0", - "league/flysystem": "~1.0", + "league/flysystem": "^1.0.40", "php": ">=5.5.0" }, "require-dev": { @@ -1722,93 +1516,30 @@ } ], "description": "Flysystem adapter for the AWS S3 SDK v3.x", - "time": "2016-06-06 11:18:47" - }, - { - "name": "league/fractal", - "version": "0.14.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/fractal.git", - "reference": "56ad8933fbb40328ca3321c84143b2c16186eebf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/fractal/zipball/56ad8933fbb40328ca3321c84143b2c16186eebf", - "reference": "56ad8933fbb40328ca3321c84143b2c16186eebf", - "shasum": "" - }, - "require": { - "php": ">=5.4" - }, - "require-dev": { - "illuminate/contracts": "~5.0", - "mockery/mockery": "~0.9", - "pagerfanta/pagerfanta": "~1.0.0", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5", - "zendframework/zend-paginator": "~2.3" - }, - "suggest": { - "illuminate/pagination": "The Illuminate Pagination component.", - "pagerfanta/pagerfanta": "Pagerfanta Paginator", - "zendframework/zend-paginator": "Zend Framework Paginator" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.13-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Fractal\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Phil Sturgeon", - "email": "me@philsturgeon.uk", - "homepage": "http://philsturgeon.uk/", - "role": "Developer" - } - ], - "description": "Handle the output of complex data structures ready for API output.", - "homepage": "http://fractal.thephpleague.com/", - "keywords": [ - "api", - "json", - "league", - "rest" - ], - "time": "2016-07-21 09:56:14" + "time": "2018-03-27T20:33:59+00:00" }, { "name": "league/oauth1-client", - "version": "1.6.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/oauth1-client.git", - "reference": "cef3ceda13c78f89c323e4d5e6301c0eb7cea422" + "reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/cef3ceda13c78f89c323e4d5e6301c0eb7cea422", - "reference": "cef3ceda13c78f89c323e4d5e6301c0eb7cea422", + "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/fca5f160650cb74d23fc11aa570dd61f86dcf647", + "reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647", "shasum": "" }, "require": { - "guzzle/guzzle": "3.*", - "php": ">=5.3.0" + "guzzlehttp/guzzle": "^6.0", + "php": ">=5.5.0" }, "require-dev": { - "mockery/mockery": "~0.9", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "mockery/mockery": "^0.9", + "phpunit/phpunit": "^4.0", + "squizlabs/php_codesniffer": "^2.0" }, "type": "library", "extra": { @@ -1848,42 +1579,42 @@ "tumblr", "twitter" ], - "time": "2015-10-23 04:02:07" + "time": "2016-08-17T00:36:58+00:00" }, { "name": "maatwebsite/excel", - "version": "v2.0.9", + "version": "2.0.11", "source": { "type": "git", "url": "https://github.com/Maatwebsite/Laravel-Excel.git", - "reference": "bd9428da19fb3de9bbdd80f18f31b744485dc250" + "reference": "731487fda0e3e26c8701d8ee1aafc7b7429a95ce" }, "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/731487fda0e3e26c8701d8ee1aafc7b7429a95ce", + "reference": "731487fda0e3e26c8701d8ee1aafc7b7429a95ce", "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.*|5.2.*", + "illuminate/config": "5.0.*|5.1.*|5.2.*", + "illuminate/filesystem": "5.0.*|5.1.*|5.2.*", + "illuminate/support": "5.0.*|5.1.*|5.2.*", "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.*|5.2.*", + "illuminate/routing": "5.0.*|5.1.*|5.2.*", + "illuminate/view": "5.0.*|5.1.*|5.2.*" }, "type": "library", "autoload": { @@ -1915,7 +1646,7 @@ "import", "laravel" ], - "time": "2015-10-26 10:15:37" + "time": "2018-01-10T11:58:21+00:00" }, { "name": "maxhoffmann/parsedown-laravel", @@ -1960,37 +1691,99 @@ "parsedown", "php" ], - "time": "2013-12-13 23:54:04" + "time": "2013-12-13T23:54:04+00:00" }, { - "name": "mews/purifier", - "version": "2.0.5", + "name": "mcamara/laravel-localization", + "version": "v1.2.6", "source": { "type": "git", - "url": "https://github.com/mewebstudio/Purifier.git", - "reference": "73c8b50c5626a5d0e416ceea745587d582d10455" + "url": "https://github.com/mcamara/laravel-localization.git", + "reference": "2177e05d5cf35efea3a43c0f1785a3edd816347f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mewebstudio/Purifier/zipball/73c8b50c5626a5d0e416ceea745587d582d10455", - "reference": "73c8b50c5626a5d0e416ceea745587d582d10455", + "url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/2177e05d5cf35efea3a43c0f1785a3edd816347f", + "reference": "2177e05d5cf35efea3a43c0f1785a3edd816347f", "shasum": "" }, "require": { - "ezyang/htmlpurifier": "4.7.*", - "illuminate/config": "~5.1", - "illuminate/filesystem": "~5.1", - "php": ">=5.4" + "laravel/framework": "~5.2", + "php": ">=5.6.0" }, "require-dev": { + "orchestra/testbench-browser-kit": "~3.4", + "phpunit/phpunit": "5.4.*" + }, + "type": "library", + "autoload": { + "classmap": [], + "psr-0": { + "Mcamara\\LaravelLocalization": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marc Cámara", + "email": "mcamara88@gmail.com", + "role": "Developer" + } + ], + "description": "Easy localization for Laravel", + "homepage": "https://github.com/mcamara/laravel-localization", + "keywords": [ + "laravel", + "localization", + "php" + ], + "time": "2017-05-18T10:22:35+00:00" + }, + { + "name": "mews/purifier", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/mewebstudio/Purifier.git", + "reference": "7333435c9842e207f3381b7319b63122f8c9403e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mewebstudio/Purifier/zipball/7333435c9842e207f3381b7319b63122f8c9403e", + "reference": "7333435c9842e207f3381b7319b63122f8c9403e", + "shasum": "" + }, + "require": { + "ezyang/htmlpurifier": "4.10.*", + "illuminate/config": "5.0.* || 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*", + "illuminate/filesystem": "5.0.* || 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*", + "illuminate/support": "5.0.* || 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*", + "php": ">=5.5.9" + }, + "require-dev": { + "graham-campbell/testbench": "^3.2", "mockery/mockery": "0.9.*", - "phpunit/phpunit": "~4.1" + "phpunit/phpunit": "^4.8|^5.0", + "scrutinizer/ocular": "^1.3" }, "suggest": { "laravel/framework": "To test the Laravel bindings", "laravel/lumen-framework": "To test the Lumen bindings" }, "type": "package", + "extra": { + "laravel": { + "providers": [ + "Mews\\Purifier\\PurifierServiceProvider" + ], + "aliases": { + "Purifier": "Mews\\Purifier\\Facades\\Purifier" + } + } + }, "autoload": { "psr-4": { "Mews\\Purifier\\": "src/" @@ -2022,7 +1815,7 @@ "security", "xss" ], - "time": "2016-04-26 15:21:32" + "time": "2018-03-21T12:29:49+00:00" }, { "name": "milon/barcode", @@ -2030,17 +1823,17 @@ "source": { "type": "git", "url": "https://github.com/milon/barcode.git", - "reference": "ab3f273a91359c0c8d0335826bc82dfb7e9ddefe" + "reference": "2a17de5f20ea9c23eb9924c00c74861a044886ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/milon/barcode/zipball/ab3f273a91359c0c8d0335826bc82dfb7e9ddefe", - "reference": "ab3f273a91359c0c8d0335826bc82dfb7e9ddefe", + "url": "https://api.github.com/repos/milon/barcode/zipball/2a17de5f20ea9c23eb9924c00c74861a044886ef", + "reference": "2a17de5f20ea9c23eb9924c00c74861a044886ef", "shasum": "" }, "require": { "illuminate/support": "5.*", - "php": ">=5.4.0" + "php": ">=5.6.0" }, "type": "library", "autoload": { @@ -2055,7 +1848,7 @@ "authors": [ { "name": "Nuruzzaman Milon", - "email": "milon521@gmail.com" + "email": "contact@milon.im" } ], "description": "Barcode generator like Qr Code , PDF417,C39, C39+,C39E,C39E+,C93,S25,S25+,I25,I25+,C128,C128A,C128B,C128C,2-Digits UPC-Based Extention,5-Digits UPC-Based Extention,EAN 8,EAN 13,UPC-A,UPC-E,MSI (Variation of Plessey code) ", @@ -2071,20 +1864,20 @@ "qr code", "qrcode" ], - "time": "2016-06-07 04:15:43" + "time": "2018-02-19T08:30:08+00:00" }, { "name": "monolog/monolog", - "version": "1.19.0", + "version": "1.23.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf" + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5f56ed5212dc509c8dc8caeba2715732abb32dbf", - "reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", "shasum": "" }, "require": { @@ -2095,7 +1888,7 @@ "psr/log-implementation": "1.0.0" }, "require-dev": { - "aws/aws-sdk-php": "^2.4.9", + "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", "graylog2/gelf-php": "~1.0", "jakub-onderka/php-parallel-lint": "0.9", @@ -2103,9 +1896,9 @@ "php-console/php-console": "^3.1.3", "phpunit/phpunit": "~4.5", "phpunit/phpunit-mock-objects": "2.3.0", - "raven/raven": "^0.13", "ruflin/elastica": ">=0.90 <3.0", - "swiftmailer/swiftmailer": "~5.3" + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", @@ -2116,9 +1909,9 @@ "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", "php-console/php-console": "Allow sending log messages to Google Chrome", - "raven/raven": "Allow sending log messages to a Sentry server", "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" }, "type": "library", "extra": { @@ -2149,20 +1942,20 @@ "logging", "psr-3" ], - "time": "2016-04-12 18:29:35" + "time": "2017-06-19T01:22:40+00:00" }, { "name": "mtdowling/cron-expression", - "version": "v1.1.0", + "version": "v1.2.1", "source": { "type": "git", "url": "https://github.com/mtdowling/cron-expression.git", - "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5" + "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", - "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", + "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/9504fa9ea681b586028adaaa0877db4aecf32bad", + "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad", "shasum": "" }, "require": { @@ -2173,8 +1966,8 @@ }, "type": "library", "autoload": { - "psr-0": { - "Cron": "src/" + "psr-4": { + "Cron\\": "src/Cron/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2193,20 +1986,20 @@ "cron", "schedule" ], - "time": "2016-01-26 21:23:30" + "time": "2017-01-23T04:29:33+00:00" }, { "name": "mtdowling/jmespath.php", - "version": "2.3.0", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "192f93e43c2c97acde7694993ab171b3de284093" + "reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/192f93e43c2c97acde7694993ab171b3de284093", - "reference": "192f93e43c2c97acde7694993ab171b3de284093", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/adcc9531682cf87dfda21e1fd5d0e7a41d292fac", + "reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac", "shasum": "" }, "require": { @@ -2248,30 +2041,36 @@ "json", "jsonpath" ], - "time": "2016-01-05 18:25:05" + "time": "2016-12-03T22:08:25+00:00" }, { "name": "nesbot/carbon", - "version": "1.21.0", + "version": "1.25.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7" + "reference": "cbcf13da0b531767e39eb86e9687f5deba9857b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7b08ec6f75791e130012f206e3f7b0e76e18e3d7", - "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cbcf13da0b531767e39eb86e9687f5deba9857b4", + "reference": "cbcf13da0b531767e39eb86e9687f5deba9857b4", "shasum": "" }, "require": { - "php": ">=5.3.0", - "symfony/translation": "~2.6|~3.0" + "php": ">=5.3.9", + "symfony/translation": "~2.6 || ~3.0 || ~4.0" }, "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" + "friendsofphp/php-cs-fixer": "~2", + "phpunit/phpunit": "^4.8.35 || ^5.7" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.23-dev" + } + }, "autoload": { "psr-4": { "Carbon\\": "src/Carbon/" @@ -2295,20 +2094,20 @@ "datetime", "time" ], - "time": "2015-11-04 20:07:17" + "time": "2018-03-19T15:50:49+00:00" }, { "name": "nikic/php-parser", - "version": "v2.1.0", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "47b254ea51f1d6d5dc04b9b299e88346bf2369e3" + "reference": "4dd659edadffdc2143e4753df655d866dbfeedf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/47b254ea51f1d6d5dc04b9b299e88346bf2369e3", - "reference": "47b254ea51f1d6d5dc04b9b299e88346bf2369e3", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4dd659edadffdc2143e4753df655d866dbfeedf0", + "reference": "4dd659edadffdc2143e4753df655d866dbfeedf0", "shasum": "" }, "require": { @@ -2346,7 +2145,7 @@ "parser", "php" ], - "time": "2016-04-19 13:41:41" + "time": "2016-09-16T12:04:44+00:00" }, { "name": "nitmedia/wkhtml2pdf", @@ -2354,12 +2153,12 @@ "source": { "type": "git", "url": "https://github.com/NitMedia/wkhtml2pdf.git", - "reference": "59d46d6dbda7d54efd045aed8bef0f05a63abd90" + "reference": "586df81dcbeb75b092dc35f9e8b3ef940d66e05a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/NitMedia/wkhtml2pdf/zipball/59d46d6dbda7d54efd045aed8bef0f05a63abd90", - "reference": "59d46d6dbda7d54efd045aed8bef0f05a63abd90", + "url": "https://api.github.com/repos/NitMedia/wkhtml2pdf/zipball/586df81dcbeb75b092dc35f9e8b3ef940d66e05a", + "reference": "586df81dcbeb75b092dc35f9e8b3ef940d66e05a", "shasum": "" }, "require": { @@ -2394,7 +2193,7 @@ "wkhtml2pdf", "wkhtmltopdf" ], - "time": "2016-05-11 19:00:35" + "time": "2017-03-06T14:34:44+00:00" }, { "name": "omnipay/bitpay", @@ -2452,7 +2251,7 @@ "pay", "payment" ], - "time": "2016-04-07 02:53:36" + "time": "2016-04-07T02:53:36+00:00" }, { "name": "omnipay/coinbase", @@ -2460,12 +2259,12 @@ "source": { "type": "git", "url": "https://github.com/thephpleague/omnipay-coinbase.git", - "reference": "69c4f07d88ef3bdb2b42cd90234b358b641dfa29" + "reference": "1046f0a40de69281d413ac191689e8c1329b76d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-coinbase/zipball/69c4f07d88ef3bdb2b42cd90234b358b641dfa29", - "reference": "69c4f07d88ef3bdb2b42cd90234b358b641dfa29", + "url": "https://api.github.com/repos/thephpleague/omnipay-coinbase/zipball/1046f0a40de69281d413ac191689e8c1329b76d4", + "reference": "1046f0a40de69281d413ac191689e8c1329b76d4", "shasum": "" }, "require": { @@ -2509,38 +2308,40 @@ "pay", "payment" ], - "time": "2015-03-06 05:35:39" + "time": "2017-07-01T03:37:43+00:00" }, { "name": "omnipay/common", - "version": "v2.5.0", + "version": "2.5.2", "source": { "type": "git", "url": "https://github.com/thephpleague/omnipay-common.git", - "reference": "550138529e850143af7a87eab8cfe16e72a2f768" + "reference": "54910f2ece6b1be64f5e53e2111dd1254d50ee49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-common/zipball/550138529e850143af7a87eab8cfe16e72a2f768", - "reference": "550138529e850143af7a87eab8cfe16e72a2f768", + "url": "https://api.github.com/repos/thephpleague/omnipay-common/zipball/54910f2ece6b1be64f5e53e2111dd1254d50ee49", + "reference": "54910f2ece6b1be64f5e53e2111dd1254d50ee49", "shasum": "" }, "require": { "guzzle/guzzle": "~3.9", "php": ">=5.3.2", - "symfony/http-foundation": "~2.1" + "symfony/http-foundation": "~2.1|~3.0" }, "require-dev": { - "omnipay/tests": "~2.0" + "omnipay/tests": "~2.0", + "squizlabs/php_codesniffer": "~1.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.5.x-dev" }, "gateways": [ "AuthorizeNet_AIM", "AuthorizeNet_SIM", + "Buckaroo_CreditCard", "Buckaroo_Ideal", "Buckaroo_PayPal", "CardSave", @@ -2605,20 +2406,78 @@ "payment", "purchase" ], - "time": "2016-03-10 03:03:17" + "time": "2016-11-07T06:10:23+00:00" }, { - "name": "omnipay/paypal", - "version": "v2.5.4", + "name": "omnipay/migs", + "version": "v2.2.2", "source": { "type": "git", - "url": "https://github.com/thephpleague/omnipay-paypal.git", - "reference": "3d39ab63f9c1e31893ec61bbab9eda98df5f1a6f" + "url": "https://github.com/thephpleague/omnipay-migs.git", + "reference": "0f79c818a150e73497efbe5e097ac4377d8f9717" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-paypal/zipball/3d39ab63f9c1e31893ec61bbab9eda98df5f1a6f", - "reference": "3d39ab63f9c1e31893ec61bbab9eda98df5f1a6f", + "url": "https://api.github.com/repos/thephpleague/omnipay-migs/zipball/0f79c818a150e73497efbe5e097ac4377d8f9717", + "reference": "0f79c818a150e73497efbe5e097ac4377d8f9717", + "shasum": "" + }, + "require": { + "omnipay/common": "~2.0" + }, + "require-dev": { + "omnipay/tests": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Omnipay\\Migs\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Adrian Macneil", + "email": "adrian@adrianmacneil.com" + }, + { + "name": "Omnipay Contributors", + "homepage": "https://github.com/thephpleague/omnipay-migs/contributors" + } + ], + "description": "MIGS driver for the Omnipay payment processing library", + "homepage": "https://github.com/thephpleague/omnipay-migs", + "keywords": [ + "gateway", + "mastercard internet gateway service", + "merchant", + "migs", + "omnipay", + "pay", + "payment" + ], + "time": "2017-06-07T07:52:47+00:00" + }, + { + "name": "omnipay/paypal", + "version": "v2.6.4", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/omnipay-paypal.git", + "reference": "9e44c31a7038d4a23232b3739b602e8842106c4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/omnipay-paypal/zipball/9e44c31a7038d4a23232b3739b602e8842106c4e", + "reference": "9e44c31a7038d4a23232b3739b602e8842106c4e", "shasum": "" }, "require": { @@ -2663,20 +2522,20 @@ "paypal", "purchase" ], - "time": "2016-03-25 10:40:17" + "time": "2017-11-10T08:10:43+00:00" }, { "name": "omnipay/stripe", - "version": "v2.3.3", + "version": "V2.4.7", "source": { "type": "git", "url": "https://github.com/thephpleague/omnipay-stripe.git", - "reference": "0ea7a647ee01e29c152814e11c2ea6307e5b0db9" + "reference": "26a33414a75939af75064022112005d5e51fc9ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-stripe/zipball/0ea7a647ee01e29c152814e11c2ea6307e5b0db9", - "reference": "0ea7a647ee01e29c152814e11c2ea6307e5b0db9", + "url": "https://api.github.com/repos/thephpleague/omnipay-stripe/zipball/26a33414a75939af75064022112005d5e51fc9ea", + "reference": "26a33414a75939af75064022112005d5e51fc9ea", "shasum": "" }, "require": { @@ -2720,20 +2579,20 @@ "payment", "stripe" ], - "time": "2016-04-26 08:34:50" + "time": "2017-07-14T09:22:01+00:00" }, { "name": "paragonie/random_compat", - "version": "v1.4.1", + "version": "v1.4.3", "source": { "type": "git", "url": "https://github.com/paragonie/random_compat.git", - "reference": "c7e26a21ba357863de030f0b9e701c7d04593774" + "reference": "9b3899e3c3ddde89016f576edb8c489708ad64cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/c7e26a21ba357863de030f0b9e701c7d04593774", - "reference": "c7e26a21ba357863de030f0b9e701c7d04593774", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/9b3899e3c3ddde89016f576edb8c489708ad64cd", + "reference": "9b3899e3c3ddde89016f576edb8c489708ad64cd", "shasum": "" }, "require": { @@ -2768,26 +2627,29 @@ "pseudorandom", "random" ], - "time": "2016-03-18 20:34:03" + "time": "2018-04-04T21:48:54+00:00" }, { "name": "phenx/php-font-lib", - "version": "0.4", + "version": "0.5.1", "source": { "type": "git", "url": "https://github.com/PhenX/php-font-lib.git", - "reference": "b8af0cacdc3cbf1e41a586fcb78f506f4121a088" + "reference": "760148820110a1ae0936e5cc35851e25a938bc97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/b8af0cacdc3cbf1e41a586fcb78f506f4121a088", - "reference": "b8af0cacdc3cbf1e41a586fcb78f506f4121a088", + "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/760148820110a1ae0936e5cc35851e25a938bc97", + "reference": "760148820110a1ae0936e5cc35851e25a938bc97", "shasum": "" }, + "require-dev": { + "phpunit/phpunit": "^4.8" + }, "type": "library", "autoload": { - "psr-0": { - "FontLib\\": "src/" + "psr-4": { + "FontLib\\": "src/FontLib" } }, "notification-url": "https://packagist.org/downloads/", @@ -2802,22 +2664,28 @@ ], "description": "A library to read, parse, export and make subsets of different types of font files.", "homepage": "https://github.com/PhenX/php-font-lib", - "time": "2015-05-06 20:02:39" + "time": "2017-09-13T16:14:37+00:00" }, { "name": "phenx/php-svg-lib", - "version": "0.1", + "version": "v0.3", "source": { "type": "git", "url": "https://github.com/PhenX/php-svg-lib.git", - "reference": "b419766515b3426c6da74b0e29e93d71c4f17099" + "reference": "a85f7fe9fe08d093a4a8583cdd306b553ff918aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/b419766515b3426c6da74b0e29e93d71c4f17099", - "reference": "b419766515b3426c6da74b0e29e93d71c4f17099", + "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/a85f7fe9fe08d093a4a8583cdd306b553ff918aa", + "reference": "a85f7fe9fe08d093a4a8583cdd306b553ff918aa", "shasum": "" }, + "require": { + "sabberworm/php-css-parser": "8.1.*" + }, + "require-dev": { + "phpunit/phpunit": "~5.0" + }, "type": "library", "autoload": { "psr-0": { @@ -2836,153 +2704,7 @@ ], "description": "A library to read, parse and export to PDF SVG files.", "homepage": "https://github.com/PhenX/php-svg-lib", - "time": "2015-05-06 18:49:49" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "1.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", - "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2015-12-27 11:43:31" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "9270140b940ff02e58ec577c237274e92cd40cdd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9270140b940ff02e58ec577c237274e92cd40cdd", - "reference": "9270140b940ff02e58ec577c237274e92cd40cdd", - "shasum": "" - }, - "require": { - "php": ">=5.5", - "phpdocumentor/reflection-common": "^1.0@dev", - "phpdocumentor/type-resolver": "^0.2.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2016-06-10 09:48:41" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "0.2", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443", - "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443", - "shasum": "" - }, - "require": { - "php": ">=5.5", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "time": "2016-06-10 07:14:17" + "time": "2017-05-24T10:07:27+00:00" }, { "name": "phpoffice/phpexcel", @@ -3039,20 +2761,116 @@ "xls", "xlsx" ], - "time": "2015-05-01 07:00:55" + "abandoned": "phpoffice/phpspreadsheet", + "time": "2015-05-01T07:00:55+00:00" }, { - "name": "predis/predis", - "version": "v1.1.0", + "name": "potsky/laravel-localization-helpers", + "version": "v2.3.5", "source": { "type": "git", - "url": "https://github.com/nrk/predis.git", - "reference": "0e17edbefb50c6cbd1acc4a6f6ef06399deb1af2" + "url": "https://github.com/potsky/laravel-localization-helpers.git", + "reference": "7df8037adb52c0decb8898d68ede77ac18cd189e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nrk/predis/zipball/0e17edbefb50c6cbd1acc4a6f6ef06399deb1af2", - "reference": "0e17edbefb50c6cbd1acc4a6f6ef06399deb1af2", + "url": "https://api.github.com/repos/potsky/laravel-localization-helpers/zipball/7df8037adb52c0decb8898d68ede77ac18cd189e", + "reference": "7df8037adb52c0decb8898d68ede77ac18cd189e", + "shasum": "" + }, + "require": { + "friendsofphp/php-cs-fixer": "^1.11", + "illuminate/support": "5.2.*", + "potsky/microsoft-translator-php-sdk": "*" + }, + "require-dev": { + "mockery/mockery": "^0.9", + "orchestra/testbench": "3.2.*", + "phpunit/phpunit": "^4.0|^5.0", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/migrations" + ], + "psr-0": { + "Potsky\\LaravelLocalizationHelpers\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0+" + ], + "authors": [ + { + "name": "Potsky" + } + ], + "description": "An artisan command package for easy translation management", + "time": "2017-03-17T17:26:25+00:00" + }, + { + "name": "potsky/microsoft-translator-php-sdk", + "version": "v0.0.3", + "source": { + "type": "git", + "url": "https://github.com/potsky/microsoft-translator-php-sdk.git", + "reference": "a8bdfd53a246965bb2958da3257502a4a68a33fe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/potsky/microsoft-translator-php-sdk/zipball/a8bdfd53a246965bb2958da3257502a4a68a33fe", + "reference": "a8bdfd53a246965bb2958da3257502a4a68a33fe", + "shasum": "" + }, + "require": { + "ext-curl": "*" + }, + "require-dev": { + "mockery/mockery": "^0.9", + "phpunit/phpunit": "^5.0", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "autoload": { + "psr-0": { + "MicrosoftTranslator": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "potsky", + "role": "Developer" + } + ], + "description": "PHP SDK for Microsoft Translator", + "homepage": "https://github.com/potsky/microsoft-translator-php-sdk", + "keywords": [ + "azure", + "microsoft", + "php", + "sdk", + "translation" + ], + "time": "2017-09-25T08:54:00+00:00" + }, + { + "name": "predis/predis", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/nrk/predis.git", + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nrk/predis/zipball/f0210e38881631afeafb56ab43405a92cafd9fd1", + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1", "shasum": "" }, "require": { @@ -3089,20 +2907,20 @@ "predis", "redis" ], - "time": "2016-06-01 22:06:21" + "time": "2016-06-16T16:22:20+00:00" }, { "name": "psr/http-message", - "version": "1.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "shasum": "" }, "require": { @@ -3130,6 +2948,7 @@ } ], "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ "http", "http-message", @@ -3138,26 +2957,34 @@ "request", "response" ], - "time": "2015-05-04 20:22:00" + "time": "2016-08-06T14:39:51+00:00" }, { "name": "psr/log", - "version": "1.0.0", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", "shasum": "" }, + "require": { + "php": ">=5.3.0" + }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { - "psr-0": { - "Psr\\Log\\": "" + "psr-4": { + "Psr\\Log\\": "Psr/Log/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3171,12 +2998,13 @@ } ], "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", "keywords": [ "log", "psr", "psr-3" ], - "time": "2012-12-21 11:40:51" + "time": "2016-10-10T12:19:37+00:00" }, { "name": "psy/psysh", @@ -3248,27 +3076,124 @@ "interactive", "shell" ], - "time": "2016-03-09 05:03:14" + "time": "2016-03-09T05:03:14+00:00" }, { - "name": "swiftmailer/swiftmailer", - "version": "v5.4.2", + "name": "sabberworm/php-css-parser", + "version": "8.1.0", "source": { "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "d8db871a54619458a805229a057ea2af33c753e8" + "url": "https://github.com/sabberworm/PHP-CSS-Parser.git", + "reference": "850cbbcbe7fbb155387a151ea562897a67e242ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/d8db871a54619458a805229a057ea2af33c753e8", - "reference": "d8db871a54619458a805229a057ea2af33c753e8", + "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/850cbbcbe7fbb155387a151ea562897a67e242ef", + "reference": "850cbbcbe7fbb155387a151ea562897a67e242ef", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "type": "library", + "autoload": { + "psr-0": { + "Sabberworm\\CSS": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "http://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "time": "2016-07-19T19:14:21+00:00" + }, + { + "name": "sebastian/diff", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-05-22T07:24:03+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v5.4.9", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "7ffc1ea296ed14bf8260b6ef11b80208dbadba91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/7ffc1ea296ed14bf8260b6ef11b80208dbadba91", + "reference": "7ffc1ea296ed14bf8260b6ef11b80208dbadba91", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "mockery/mockery": "~0.9.1,<0.9.4" + "mockery/mockery": "~0.9.1", + "symfony/phpunit-bridge": "~3.2" }, "type": "library", "extra": { @@ -3295,26 +3220,26 @@ } ], "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "http://swiftmailer.org", + "homepage": "https://swiftmailer.symfony.com", "keywords": [ "email", "mail", "mailer" ], - "time": "2016-05-01 08:45:47" + "time": "2018-01-23T07:37:21+00:00" }, { "name": "symfony/console", - "version": "v3.0.7", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "382fc9ed852edabd6133e34f8549d7a7d99db115" + "reference": "926061e74229e935d3c5b4e9ba87237316c6693f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/382fc9ed852edabd6133e34f8549d7a7d99db115", - "reference": "382fc9ed852edabd6133e34f8549d7a7d99db115", + "url": "https://api.github.com/repos/symfony/console/zipball/926061e74229e935d3c5b4e9ba87237316c6693f", + "reference": "926061e74229e935d3c5b4e9ba87237316c6693f", "shasum": "" }, "require": { @@ -3361,29 +3286,29 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2016-06-06 15:08:35" + "time": "2016-07-30T07:22:48+00:00" }, { "name": "symfony/css-selector", - "version": "v3.1.0", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "e17f386efef7258ac671c24e727673abd086b0cf" + "reference": "519a80d7c1d95c6cc0b67f686d15fe27c6910de0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/e17f386efef7258ac671c24e727673abd086b0cf", - "reference": "e17f386efef7258ac671c24e727673abd086b0cf", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/519a80d7c1d95c6cc0b67f686d15fe27c6910de0", + "reference": "519a80d7c1d95c6cc0b67f686d15fe27c6910de0", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -3414,20 +3339,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:56:56" + "time": "2018-03-19T22:32:39+00:00" }, { "name": "symfony/debug", - "version": "v3.0.7", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "e67e1552dd7313df1cf6535cb606751899e0e727" + "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/e67e1552dd7313df1cf6535cb606751899e0e727", - "reference": "e67e1552dd7313df1cf6535cb606751899e0e727", + "url": "https://api.github.com/repos/symfony/debug/zipball/697c527acd9ea1b2d3efac34d9806bf255278b0a", + "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a", "shasum": "" }, "require": { @@ -3471,20 +3396,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2016-06-06 15:08:35" + "time": "2016-07-30T07:22:48+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v2.8.7", + "version": "v2.8.38", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "2a6b8713f8bdb582058cfda463527f195b066110" + "reference": "9b69aad7d4c086dc94ebade2d5eb9145da5dac8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2a6b8713f8bdb582058cfda463527f195b066110", - "reference": "2a6b8713f8bdb582058cfda463527f195b066110", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9b69aad7d4c086dc94ebade2d5eb9145da5dac8c", + "reference": "9b69aad7d4c086dc94ebade2d5eb9145da5dac8c", "shasum": "" }, "require": { @@ -3492,7 +3417,7 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.0,>=2.0.5|~3.0.0", + "symfony/config": "^2.0.5|~3.0.0", "symfony/dependency-injection": "~2.6|~3.0.0", "symfony/expression-language": "~2.6|~3.0.0", "symfony/stopwatch": "~2.3|~3.0.0" @@ -3531,20 +3456,69 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2016-06-06 11:11:27" + "time": "2018-04-06T07:35:03+00:00" }, { - "name": "symfony/finder", - "version": "v3.0.7", + "name": "symfony/filesystem", + "version": "v3.4.8", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "39e5f3d533d07b5416b9d7aad53a27f939d4f811" + "url": "https://github.com/symfony/filesystem.git", + "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/39e5f3d533d07b5416b9d7aad53a27f939d4f811", - "reference": "39e5f3d533d07b5416b9d7aad53a27f939d4f811", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541", + "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "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 Filesystem Component", + "homepage": "https://symfony.com", + "time": "2018-02-22T10:48:49+00:00" + }, + { + "name": "symfony/finder", + "version": "v3.0.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9", + "reference": "3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9", "shasum": "" }, "require": { @@ -3580,35 +3554,33 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2016-05-13 18:03:36" + "time": "2016-06-29T05:40:00+00:00" }, { "name": "symfony/http-foundation", - "version": "v2.8.7", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "744dae663ffcfa21d8a111fb63541954199acbb2" + "reference": "49ba00f8ede742169cb6b70abe33243f4d673f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/744dae663ffcfa21d8a111fb63541954199acbb2", - "reference": "744dae663ffcfa21d8a111fb63541954199acbb2", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/49ba00f8ede742169cb6b70abe33243f4d673f82", + "reference": "49ba00f8ede742169cb6b70abe33243f4d673f82", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php54": "~1.0", - "symfony/polyfill-php55": "~1.0" + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { - "symfony/expression-language": "~2.4|~3.0.0" + "symfony/expression-language": "~2.8|~3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -3635,20 +3607,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2016-06-06 11:11:27" + "time": "2016-07-17T13:54:30+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.0.7", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "97cc1c15e3406e7a2adf14ad6b0e41a04d4a6fc4" + "reference": "d97ba4425e36e79c794e7d14ff36f00f081b37b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/97cc1c15e3406e7a2adf14ad6b0e41a04d4a6fc4", - "reference": "97cc1c15e3406e7a2adf14ad6b0e41a04d4a6fc4", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d97ba4425e36e79c794e7d14ff36f00f081b37b3", + "reference": "d97ba4425e36e79c794e7d14ff36f00f081b37b3", "shasum": "" }, "require": { @@ -3656,7 +3628,7 @@ "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/http-foundation": "~2.8.8|~3.0.8|~3.1.2|~3.2" }, "conflict": { "symfony/config": "<2.8" @@ -3717,20 +3689,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2016-06-06 16:52:35" + "time": "2016-07-30T09:10:37+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.2.0", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "dff51f72b0706335131b00a7f49606168c582594" + "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594", - "reference": "dff51f72b0706335131b00a7f49606168c582594", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", + "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", "shasum": "" }, "require": { @@ -3742,7 +3714,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -3776,134 +3748,20 @@ "portable", "shim" ], - "time": "2016-05-18 14:26:46" - }, - { - "name": "symfony/polyfill-php54", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php54.git", - "reference": "34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1", - "reference": "34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-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-05-18 14:26:46" - }, - { - "name": "symfony/polyfill-php55", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php55.git", - "reference": "bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d", - "reference": "bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d", - "shasum": "" - }, - "require": { - "ircmaxell/password-compat": "~1.0", - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-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-05-18 14:26:46" + "time": "2018-01-30T19:27:44+00:00" }, { "name": "symfony/polyfill-php56", - "version": "v1.2.0", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a" + "reference": "ebc999ce5f14204c5150b9bd15f8f04e621409d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/3edf57a8fbf9a927533344cef65ad7e1cf31030a", - "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/ebc999ce5f14204c5150b9bd15f8f04e621409d8", + "reference": "ebc999ce5f14204c5150b9bd15f8f04e621409d8", "shasum": "" }, "require": { @@ -3913,7 +3771,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -3946,20 +3804,20 @@ "portable", "shim" ], - "time": "2016-05-18 14:26:46" + "time": "2018-01-30T19:27:44+00:00" }, { "name": "symfony/polyfill-util", - "version": "v1.2.0", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-util.git", - "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99" + "reference": "e17c808ec4228026d4f5a8832afa19be85979563" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/ef830ce3d218e622b221d6bfad42c751d974bf99", - "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/e17c808ec4228026d4f5a8832afa19be85979563", + "reference": "e17c808ec4228026d4f5a8832afa19be85979563", "shasum": "" }, "require": { @@ -3968,7 +3826,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -3998,20 +3856,20 @@ "polyfill", "shim" ], - "time": "2016-05-18 14:26:46" + "time": "2018-01-31T18:08:44+00:00" }, { "name": "symfony/process", - "version": "v3.0.7", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "bf6e2d1fa8b93fdd7cca6b684c0ea213cf0255dd" + "reference": "768debc5996f599c4372b322d9061dba2a4bf505" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/bf6e2d1fa8b93fdd7cca6b684c0ea213cf0255dd", - "reference": "bf6e2d1fa8b93fdd7cca6b684c0ea213cf0255dd", + "url": "https://api.github.com/repos/symfony/process/zipball/768debc5996f599c4372b322d9061dba2a4bf505", + "reference": "768debc5996f599c4372b322d9061dba2a4bf505", "shasum": "" }, "require": { @@ -4047,20 +3905,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2016-06-06 11:33:26" + "time": "2016-07-28T11:13:34+00:00" }, { "name": "symfony/routing", - "version": "v3.0.7", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "c780454838a1131adc756d737a4b4cc1d18f8c64" + "reference": "9038984bd9c05ab07280121e9e10f61a7231457b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/c780454838a1131adc756d737a4b4cc1d18f8c64", - "reference": "c780454838a1131adc756d737a4b4cc1d18f8c64", + "url": "https://api.github.com/repos/symfony/routing/zipball/9038984bd9c05ab07280121e9e10f61a7231457b", + "reference": "9038984bd9c05ab07280121e9e10f61a7231457b", "shasum": "" }, "require": { @@ -4122,20 +3980,69 @@ "uri", "url" ], - "time": "2016-05-30 06:58:27" + "time": "2016-06-29T05:40:00+00:00" }, { - "name": "symfony/translation", - "version": "v3.0.7", + "name": "symfony/stopwatch", + "version": "v3.4.8", "source": { "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "2b0aacaa613c0ec1ad8046f972d8abdcb19c1db7" + "url": "https://github.com/symfony/stopwatch.git", + "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/2b0aacaa613c0ec1ad8046f972d8abdcb19c1db7", - "reference": "2b0aacaa613c0ec1ad8046f972d8abdcb19c1db7", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/eb17cfa072cab26537ac37e9c4ece6c0361369af", + "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "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 Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2018-02-17T14:55:25+00:00" + }, + { + "name": "symfony/translation", + "version": "v3.0.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/eee6c664853fd0576f21ae25725cfffeafe83f26", + "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26", "shasum": "" }, "require": { @@ -4186,20 +4093,20 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2016-06-06 11:33:26" + "time": "2016-07-30T07:22:48+00:00" }, { "name": "symfony/var-dumper", - "version": "v3.0.7", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "d8bb851da153d97abe7c2b71a65dee19f324bcf7" + "reference": "1f7e071aafc6676fcb6e3f0497f87c2397247377" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d8bb851da153d97abe7c2b71a65dee19f324bcf7", - "reference": "d8bb851da153d97abe7c2b71a65dee19f324bcf7", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1f7e071aafc6676fcb6e3f0497f87c2397247377", + "reference": "1f7e071aafc6676fcb6e3f0497f87c2397247377", "shasum": "" }, "require": { @@ -4249,7 +4156,7 @@ "debug", "dump" ], - "time": "2016-05-24 10:03:10" + "time": "2016-07-26T08:03:56+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -4296,7 +4203,54 @@ ], "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", - "time": "2015-12-08 16:14:14" + "time": "2015-12-08T16:14:14+00:00" + }, + { + "name": "tolerance/tolerance", + "version": "0.4.2", + "source": { + "type": "git", + "url": "https://github.com/Tolerance/Tolerance.git", + "reference": "9723e73c25333bf2decb9b6eda7d1036465b7a85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Tolerance/Tolerance/zipball/9723e73c25333bf2decb9b6eda7d1036465b7a85", + "reference": "9723e73c25333bf2decb9b6eda7d1036465b7a85", + "shasum": "" + }, + "replace": { + "sroze/tolerance": "self.version" + }, + "require-dev": { + "beberlei/metrics": "^2.1", + "behat/behat": "~3.1.0rc1", + "behat/symfony2-extension": "^2.1", + "csa/guzzle-bundle": "~2.0@dev", + "guzzlehttp/promises": "^1.3", + "jms/aop-bundle": "^1.2", + "jms/serializer-bundle": "^1.1", + "php-amqplib/rabbitmq-bundle": "^1.8", + "php-http/client-common": "^1.4", + "php-http/mock-client": "^0.3.3", + "phpspec/phpspec": "~2.5", + "phpunit/phpunit": "^5.1", + "ruflin/elastica": "^3.0", + "simple-bus/rabbitmq-bundle-bridge": "^3.0", + "symfony/symfony": "~2.8|~3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Tolerance\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Fault tolerance library and micro-services helpers", + "time": "2017-10-06T12:21:00+00:00" }, { "name": "vinelab/http", @@ -4304,17 +4258,18 @@ "source": { "type": "git", "url": "https://github.com/Vinelab/http.git", - "reference": "26974a6f2c635795aed893f9aa0f87118f137d95" + "reference": "2b164821c0c4e7f15c3c92cb45bb4053509ed3cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Vinelab/http/zipball/30b6f71c127dbc213e56d1d07c4bfeca8224604f", - "reference": "26974a6f2c635795aed893f9aa0f87118f137d95", + "url": "https://api.github.com/repos/Vinelab/http/zipball/2b164821c0c4e7f15c3c92cb45bb4053509ed3cc", + "reference": "2b164821c0c4e7f15c3c92cb45bb4053509ed3cc", "shasum": "" }, "require": { "illuminate/support": "*", - "php": ">=5.4" + "php": ">=5.6.4", + "tolerance/tolerance": "^0.4.0" }, "require-dev": { "mockery/mockery": "0.9.*", @@ -4346,20 +4301,20 @@ "laravel", "xml" ], - "time": "2015-12-09 08:57:51" + "time": "2017-10-24T08:34:56+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v2.3.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "9ca5644c536654e9509b9d257f53c58630eb2a6a" + "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/9ca5644c536654e9509b9d257f53c58630eb2a6a", - "reference": "9ca5644c536654e9509b9d257f53c58630eb2a6a", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", + "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", "shasum": "" }, "require": { @@ -4371,7 +4326,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "2.4-dev" } }, "autoload": { @@ -4396,83 +4351,36 @@ "env", "environment" ], - "time": "2016-06-14 14:14:52" - }, - { - "name": "webmozart/assert", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde", - "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2015-08-24 13:29:44" + "time": "2016-09-01T10:05:43+00:00" } ], "packages-dev": [ { "name": "barryvdh/laravel-ide-helper", - "version": "v2.2.0", + "version": "v2.4.3", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "a9484c67d1305e9e2c71d2dfaaed6639200d874c" + "reference": "5c304db44fba8e9c4aa0c09739e59f7be7736fdd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/a9484c67d1305e9e2c71d2dfaaed6639200d874c", - "reference": "a9484c67d1305e9e2c71d2dfaaed6639200d874c", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/5c304db44fba8e9c4aa0c09739e59f7be7736fdd", + "reference": "5c304db44fba8e9c4aa0c09739e59f7be7736fdd", "shasum": "" }, "require": { "barryvdh/reflection-docblock": "^2.0.4", - "illuminate/console": "^5.0,<5.4", - "illuminate/filesystem": "^5.0,<5.4", - "illuminate/support": "^5.0,<5.4", + "illuminate/console": "^5.0,<5.7", + "illuminate/filesystem": "^5.0,<5.7", + "illuminate/support": "^5.0,<5.7", "php": ">=5.4.0", "symfony/class-loader": "^2.3|^3.0" }, "require-dev": { "doctrine/dbal": "~2.3", + "illuminate/config": "^5.0,<5.7", + "illuminate/view": "^5.0,<5.7", "phpunit/phpunit": "4.*", "scrutinizer/ocular": "~1.1", "squizlabs/php_codesniffer": "~2.3" @@ -4483,7 +4391,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.3-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" + ] } }, "autoload": { @@ -4513,7 +4426,7 @@ "phpstorm", "sublime" ], - "time": "2016-06-13 19:36:24" + "time": "2018-02-08T07:56:07+00:00" }, { "name": "barryvdh/reflection-docblock", @@ -4562,20 +4475,88 @@ "email": "mike.vanriel@naenius.com" } ], - "time": "2016-06-13 19:28:20" + "time": "2016-06-13T19:28:20+00:00" }, { - "name": "doctrine/cache", - "version": "v1.6.0", + "name": "doctrine/annotations", + "version": "v1.4.0", "source": { "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6" + "url": "https://github.com/doctrine/annotations.git", + "reference": "54cacc9b81758b14e3ce750f205a393d52339e97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/f8af318d14bdb0eff0336795b428b547bd39ccb6", - "reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97", + "reference": "54cacc9b81758b14e3ce750f205a393d52339e97", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "doctrine/cache": "1.*", + "phpunit/phpunit": "^5.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2017-02-24T16:22:25+00:00" + }, + { + "name": "doctrine/cache", + "version": "v1.6.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b", + "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b", "shasum": "" }, "require": { @@ -4632,32 +4613,33 @@ "cache", "caching" ], - "time": "2015-12-31 16:37:02" + "time": "2017-07-22T12:49:21+00:00" }, { "name": "doctrine/collections", - "version": "v1.3.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a" + "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a", - "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a", + "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", + "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "doctrine/coding-standard": "~0.1@dev", + "phpunit/phpunit": "^5.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -4698,20 +4680,20 @@ "collections", "iterator" ], - "time": "2015-04-14 22:21:58" + "time": "2017-01-03T10:49:41+00:00" }, { "name": "doctrine/common", - "version": "v2.6.1", + "version": "v2.7.3", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "a579557bc689580c19fee4e27487a67fe60defc0" + "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/a579557bc689580c19fee4e27487a67fe60defc0", - "reference": "a579557bc689580c19fee4e27487a67fe60defc0", + "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9", + "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9", "shasum": "" }, "require": { @@ -4720,10 +4702,10 @@ "doctrine/collections": "1.*", "doctrine/inflector": "1.*", "doctrine/lexer": "1.*", - "php": "~5.5|~7.0" + "php": "~5.6|~7.0" }, "require-dev": { - "phpunit/phpunit": "~4.8|~5.0" + "phpunit/phpunit": "^5.4.6" }, "type": "library", "extra": { @@ -4771,29 +4753,29 @@ "persistence", "spl" ], - "time": "2015-12-25 13:18:31" + "time": "2017-07-22T08:35:12+00:00" }, { "name": "doctrine/dbal", - "version": "v2.5.4", + "version": "v2.5.13", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "abbdfd1cff43a7b99d027af3be709bc8fc7d4769" + "reference": "729340d8d1eec8f01bff708e12e449a3415af873" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/abbdfd1cff43a7b99d027af3be709bc8fc7d4769", - "reference": "abbdfd1cff43a7b99d027af3be709bc8fc7d4769", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873", + "reference": "729340d8d1eec8f01bff708e12e449a3415af873", "shasum": "" }, "require": { - "doctrine/common": ">=2.4,<2.7-dev", + "doctrine/common": ">=2.4,<2.8-dev", "php": ">=5.3.2" }, "require-dev": { "phpunit/phpunit": "4.*", - "symfony/console": "2.*" + "symfony/console": "2.*||^3.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -4842,7 +4824,7 @@ "persistence", "queryobject" ], - "time": "2016-01-05 22:11:12" + "time": "2017-07-22T20:44:48+00:00" }, { "name": "doctrine/instantiator", @@ -4896,33 +4878,89 @@ "constructor", "instantiate" ], - "time": "2015-06-14 21:17:01" + "time": "2015-06-14T21:17:01+00:00" }, { - "name": "fzaninotto/faker", - "version": "v1.6.0", + "name": "doctrine/lexer", + "version": "v1.0.1", "source": { "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123" + "url": "https://github.com/doctrine/lexer.git", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123", - "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", "shasum": "" }, "require": { - "php": "^5.3.3|^7.0" - }, - "require-dev": { - "ext-intl": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5" + "php": ">=5.3.2" }, "type": "library", "extra": { - "branch-alias": [] + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Lexer\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "lexer", + "parser" + ], + "time": "2014-09-09T13:34:57+00:00" + }, + { + "name": "fzaninotto/faker", + "version": "v1.7.1", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", + "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "ext-intl": "*", + "phpunit/phpunit": "^4.0 || ^5.0", + "squizlabs/php_codesniffer": "^1.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } }, "autoload": { "psr-4": { @@ -4944,7 +4982,153 @@ "faker", "fixtures" ], - "time": "2016-04-29 12:21:54" + "time": "2017-08-15T16:48:10+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "3.3.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", + "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2017-11-10T14:09:06+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "time": "2017-07-14T14:27:02+00:00" }, { "name": "phpspec/php-diff", @@ -4978,20 +5162,20 @@ } ], "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).", - "time": "2013-11-01 13:02:21" + "time": "2013-11-01T13:02:21+00:00" }, { "name": "phpspec/phpspec", - "version": "2.5.0", + "version": "2.5.8", "source": { "type": "git", "url": "https://github.com/phpspec/phpspec.git", - "reference": "385ecb015e97c13818074f1517928b24d4a26067" + "reference": "d8a153dcb52f929b448c0bf2cc19c7388951adb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/phpspec/zipball/385ecb015e97c13818074f1517928b24d4a26067", - "reference": "385ecb015e97c13818074f1517928b24d4a26067", + "url": "https://api.github.com/repos/phpspec/phpspec/zipball/d8a153dcb52f929b448c0bf2cc19c7388951adb1", + "reference": "d8a153dcb52f929b448c0bf2cc19c7388951adb1", "shasum": "" }, "require": { @@ -5000,16 +5184,16 @@ "php": ">=5.3.3", "phpspec/php-diff": "~1.0.0", "phpspec/prophecy": "~1.4", - "sebastian/exporter": "~1.0", - "symfony/console": "~2.3|~3.0", + "sebastian/exporter": "~1.0|~2.0|^3.0", + "symfony/console": "~2.3|~3.0,!=3.2.8", "symfony/event-dispatcher": "~2.1|~3.0", "symfony/finder": "~2.1|~3.0", "symfony/process": "^2.6|~3.0", "symfony/yaml": "~2.1|~3.0" }, "require-dev": { - "behat/behat": "^3.0.11", - "bossa/phpspec2-expect": "~1.0", + "behat/behat": "^3.0.11,!=3.3.1", + "ciaranmcnulty/versionbasedtestskipper": "^0.2.1", "phpunit/phpunit": "~4.4", "symfony/filesystem": "~2.1|~3.0" }, @@ -5022,7 +5206,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "2.5.x-dev" } }, "autoload": { @@ -5056,36 +5240,37 @@ "testing", "tests" ], - "time": "2016-03-20 20:34:32" + "time": "2017-07-29T17:19:38+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.6.1", + "version": "1.7.5", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "58a8137754bc24b25740d4281399a4a3596058e0" + "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0", - "reference": "58a8137754bc24b25740d4281399a4a3596058e0", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401", + "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", - "sebastian/comparator": "^1.1", - "sebastian/recursion-context": "^1.0" + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { - "phpspec/phpspec": "^2.0" + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "1.7.x-dev" } }, "autoload": { @@ -5118,7 +5303,7 @@ "spy", "stub" ], - "time": "2016-06-07 08:13:47" + "time": "2018-02-19T10:16:54+00:00" }, { "name": "phpunit/php-code-coverage", @@ -5180,20 +5365,20 @@ "testing", "xunit" ], - "time": "2015-10-06 15:47:00" + "time": "2015-10-06T15:47:00+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.1", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", "shasum": "" }, "require": { @@ -5227,7 +5412,7 @@ "filesystem", "iterator" ], - "time": "2015-06-21 13:08:43" + "time": "2017-11-27T13:52:08+00:00" }, { "name": "phpunit/php-text-template", @@ -5268,29 +5453,34 @@ "keywords": [ "template" ], - "time": "2015-06-21 13:50:34" + "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", - "version": "1.0.8", + "version": "1.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4|~5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -5312,20 +5502,20 @@ "keywords": [ "timer" ], - "time": "2016-05-12 18:03:57" + "time": "2017-02-26T11:10:40+00:00" }, { "name": "phpunit/php-token-stream", - "version": "1.4.8", + "version": "1.4.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", "shasum": "" }, "require": { @@ -5361,20 +5551,20 @@ "keywords": [ "tokenizer" ], - "time": "2015-09-15 10:49:45" + "time": "2017-12-04T08:55:13+00:00" }, { "name": "phpunit/phpunit", - "version": "4.8.26", + "version": "4.8.36", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74" + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fc1d8cd5b5de11625979125c5639347896ac2c74", - "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517", + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517", "shasum": "" }, "require": { @@ -5390,7 +5580,7 @@ "phpunit/php-text-template": "~1.2", "phpunit/php-timer": "^1.0.6", "phpunit/phpunit-mock-objects": "~2.3", - "sebastian/comparator": "~1.1", + "sebastian/comparator": "~1.2.2", "sebastian/diff": "~1.2", "sebastian/environment": "~1.3", "sebastian/exporter": "~1.2", @@ -5433,7 +5623,7 @@ "testing", "xunit" ], - "time": "2016-05-17 03:09:28" + "time": "2017-06-21T08:07:12+00:00" }, { "name": "phpunit/phpunit-mock-objects", @@ -5489,26 +5679,26 @@ "mock", "xunit" ], - "time": "2015-10-02 06:51:40" + "time": "2015-10-02T06:51:40+00:00" }, { "name": "sebastian/comparator", - "version": "1.2.0", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", "shasum": "" }, "require": { "php": ">=5.3.3", "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2" + "sebastian/exporter": "~1.2 || ~2.0" }, "require-dev": { "phpunit/phpunit": "~4.4" @@ -5553,79 +5743,27 @@ "compare", "equality" ], - "time": "2015-07-26 15:48:44" - }, - { - "name": "sebastian/diff", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ], - "time": "2015-12-08 07:14:41" + "time": "2017-01-29T09:50:25+00:00" }, { "name": "sebastian/environment", - "version": "1.3.7", + "version": "1.3.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716" + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716", - "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^4.8 || ^5.0" }, "type": "library", "extra": { @@ -5655,20 +5793,20 @@ "environment", "hhvm" ], - "time": "2016-05-17 03:18:57" + "time": "2016-08-18T05:49:44+00:00" }, { "name": "sebastian/exporter", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e" + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", "shasum": "" }, "require": { @@ -5676,12 +5814,13 @@ "sebastian/recursion-context": "~1.0" }, "require-dev": { + "ext-mbstring": "*", "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -5721,7 +5860,7 @@ "export", "exporter" ], - "time": "2015-06-21 07:55:53" + "time": "2016-06-17T09:04:28+00:00" }, { "name": "sebastian/global-state", @@ -5772,20 +5911,20 @@ "keywords": [ "global state" ], - "time": "2015-10-12 03:26:01" + "time": "2015-10-12T03:26:01+00:00" }, { "name": "sebastian/recursion-context", - "version": "1.0.2", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791" + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", "shasum": "" }, "require": { @@ -5825,7 +5964,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2015-11-11 19:50:13" + "time": "2016-10-03T07:41:43+00:00" }, { "name": "sebastian/version", @@ -5860,27 +5999,27 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2015-06-21 13:59:46" + "time": "2015-06-21T13:59:46+00:00" }, { "name": "symfony/class-loader", - "version": "v3.1.0", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", - "reference": "6ebc60f69a6df4b3cf5ad6f260ba4edf5957ea05" + "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/6ebc60f69a6df4b3cf5ad6f260ba4edf5957ea05", - "reference": "6ebc60f69a6df4b3cf5ad6f260ba4edf5957ea05", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/e63c12699822bb3b667e7216ba07fbcc3a3e203e", + "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8" }, "require-dev": { - "symfony/finder": "~2.8|~3.0", + "symfony/finder": "~2.8|~3.0|~4.0", "symfony/polyfill-apcu": "~1.1" }, "suggest": { @@ -5889,7 +6028,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -5916,28 +6055,28 @@ ], "description": "Symfony ClassLoader Component", "homepage": "https://symfony.com", - "time": "2016-03-30 10:41:47" + "time": "2018-01-03T07:37:34+00:00" }, { "name": "symfony/dom-crawler", - "version": "v3.1.0", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "12aa63fd41b060d2bee9a34623d29eda70bc8fe3" + "reference": "1a4cffeb059226ff6bee9f48acb388faf674afff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/12aa63fd41b060d2bee9a34623d29eda70bc8fe3", - "reference": "12aa63fd41b060d2bee9a34623d29eda70bc8fe3", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/1a4cffeb059226ff6bee9f48acb388faf674afff", + "reference": "1a4cffeb059226ff6bee9f48acb388faf674afff", "shasum": "" }, "require": { - "php": ">=5.5.9", + "php": "^5.5.9|>=7.0.8", "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "symfony/css-selector": "~2.8|~3.0" + "symfony/css-selector": "~2.8|~3.0|~4.0" }, "suggest": { "symfony/css-selector": "" @@ -5945,7 +6084,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -5972,29 +6111,35 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2016-05-13 15:49:09" + "time": "2018-03-19T22:32:39+00:00" }, { "name": "symfony/yaml", - "version": "v3.1.0", + "version": "v3.3.16", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "eca51b7b65eb9be6af88ad7cc91685f1556f5c9a" + "reference": "af615970e265543a26ee712c958404eb9b7ac93d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/eca51b7b65eb9be6af88ad7cc91685f1556f5c9a", - "reference": "eca51b7b65eb9be6af88ad7cc91685f1556f5c9a", + "url": "https://api.github.com/repos/symfony/yaml/zipball/af615970e265543a26ee712c958404eb9b7ac93d", + "reference": "af615970e265543a26ee712c958404eb9b7ac93d", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8" + }, + "require-dev": { + "symfony/console": "~2.8|~3.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -6021,7 +6166,57 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2016-05-26 21:46:24" + "time": "2018-01-20T15:04:53+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2018-01-29T19:49:41+00:00" } ], "aliases": [], @@ -6034,8 +6229,7 @@ "vinelab/http": 20, "maxhoffmann/parsedown-laravel": 20, "omnipay/bitpay": 20, - "omnipay/coinbase": 20, - "dingo/api": 20 + "omnipay/coinbase": 20 }, "prefer-stable": false, "prefer-lowest": false, diff --git a/config/app.php b/config/app.php index 531ba341..01fbe4c4 100644 --- a/config/app.php +++ b/config/app.php @@ -170,6 +170,8 @@ return [ MaxHoffmann\Parsedown\ParsedownServiceProvider::class, Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class, Laracasts\Utilities\JavaScript\JavaScriptServiceProvider::class, + Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class, + Potsky\LaravelLocalizationHelpers\LaravelLocalizationHelpersServiceProvider::class, ], /* @@ -233,6 +235,7 @@ return [ 'Markdown' => MaxHoffmann\Parsedown\ParsedownFacade::class, 'Omnipay' => Omnipay\Omnipay::class, // 'Omnipay' => Omnipay\Omnipay::class, + 'LaravelLocalization' => Mcamara\LaravelLocalization\Facades\LaravelLocalization::class, ], ]; diff --git a/config/attendize.php b/config/attendize.php index 8b54c57e..db0fd810 100644 --- a/config/attendize.php +++ b/config/attendize.php @@ -30,7 +30,7 @@ return [ 'fallback_organiser_logo_url' => '/assets/images/logo-dark.png', 'cdn_url' => '', - 'checkout_timeout_after' => env('CHECKOUT_TIMEOUT_AFTER', 10), #minutes + 'checkout_timeout_after' => env('CHECKOUT_TIMEOUT_AFTER', 30), #minutes 'ticket_status_before_sale_date' => 3, 'ticket_status_on_sale' => 4, @@ -57,9 +57,9 @@ return [ 'default_timezone' => 30, #Europe/Dublin 'default_currency' => 2, #Euro - 'default_date_format' => 'j M, Y', - 'default_date_picker_format' => 'd M, yyyy', - 'default_datetime_format' => 'F j, Y, g:i a', + 'default_date_format' => 'Y-m-d', + 'default_date_picker_format' => 'Y-m-d', + 'default_datetime_format' => 'Y-m-d, H:i', 'default_query_cache' => 120, #Minutes 'default_locale' => 'en', 'default_payment_gateway' => 1, #Stripe=1 Paypal=2 BitPay=3 MIGS=4 diff --git a/config/laravel-localization-helpers.php b/config/laravel-localization-helpers.php new file mode 100644 index 00000000..f65dd2a7 --- /dev/null +++ b/config/laravel-localization-helpers.php @@ -0,0 +1,24 @@ + 'stripe', + + // Add in each gateway here + 'gateways' => [ + 'paypal' => [ + 'driver' => 'PayPal_Express', + 'options' => [ + 'solutionType' => '', + 'landingPage' => '', + 'headerImageUrl' => '', + ], + ], + 'stripe' => [ + 'driver' => 'Stripe', + 'options' => [], + ], + ], + +]; diff --git a/config/laravellocalization.php b/config/laravellocalization.php new file mode 100644 index 00000000..89dc2cb7 --- /dev/null +++ b/config/laravellocalization.php @@ -0,0 +1,317 @@ + [ + //'ace' => ['name' => 'Achinese', 'script' => 'Latn', 'native' => 'Aceh', 'regional' => ''], + //'af' => ['name' => 'Afrikaans', 'script' => 'Latn', 'native' => 'Afrikaans', 'regional' => 'af_ZA'], + //'agq' => ['name' => 'Aghem', 'script' => 'Latn', 'native' => 'Aghem', 'regional' => ''], + //'ak' => ['name' => 'Akan', 'script' => 'Latn', 'native' => 'Akan', 'regional' => 'ak_GH'], + //'an' => ['name' => 'Aragonese', 'script' => 'Latn', 'native' => 'aragonés', 'regional' => 'an_ES'], + //'cch' => ['name' => 'Atsam', 'script' => 'Latn', 'native' => 'Atsam', 'regional' => ''], + //'gn' => ['name' => 'Guaraní', 'script' => 'Latn', 'native' => 'Avañe’ẽ', 'regional' => ''], + //'ae' => ['name' => 'Avestan', 'script' => 'Latn', 'native' => 'avesta', 'regional' => ''], + //'ay' => ['name' => 'Aymara', 'script' => 'Latn', 'native' => 'aymar aru', 'regional' => 'ay_PE'], + //'az' => ['name' => 'Azerbaijani (Latin)', 'script' => 'Latn', 'native' => 'azərbaycanca', 'regional' => 'az_AZ'], + //'id' => ['name' => 'Indonesian', 'script' => 'Latn', 'native' => 'Bahasa Indonesia', 'regional' => 'id_ID'], + //'ms' => ['name' => 'Malay', 'script' => 'Latn', 'native' => 'Bahasa Melayu', 'regional' => 'ms_MY'], + //'bm' => ['name' => 'Bambara', 'script' => 'Latn', 'native' => 'bamanakan', 'regional' => ''], + //'jv' => ['name' => 'Javanese (Latin)', 'script' => 'Latn', 'native' => 'Basa Jawa', 'regional' => ''], + //'su' => ['name' => 'Sundanese', 'script' => 'Latn', 'native' => 'Basa Sunda', 'regional' => ''], + //'bh' => ['name' => 'Bihari', 'script' => 'Latn', 'native' => 'Bihari', 'regional' => ''], + //'bi' => ['name' => 'Bislama', 'script' => 'Latn', 'native' => 'Bislama', 'regional' => ''], + //'nb' => ['name' => 'Norwegian Bokmål', 'script' => 'Latn', 'native' => 'Bokmål', 'regional' => 'nb_NO'], + //'bs' => ['name' => 'Bosnian', 'script' => 'Latn', 'native' => 'bosanski', 'regional' => 'bs_BA'], + //'br' => ['name' => 'Breton', 'script' => 'Latn', 'native' => 'brezhoneg', 'regional' => 'br_FR'], + //'ca' => ['name' => 'Catalan', 'script' => 'Latn', 'native' => 'català', 'regional' => 'ca_ES'], + //'ch' => ['name' => 'Chamorro', 'script' => 'Latn', 'native' => 'Chamoru', 'regional' => ''], + //'ny' => ['name' => 'Chewa', 'script' => 'Latn', 'native' => 'chiCheŵa', 'regional' => ''], + //'kde' => ['name' => 'Makonde', 'script' => 'Latn', 'native' => 'Chimakonde', 'regional' => ''], + //'sn' => ['name' => 'Shona', 'script' => 'Latn', 'native' => 'chiShona', 'regional' => ''], + //'co' => ['name' => 'Corsican', 'script' => 'Latn', 'native' => 'corsu', 'regional' => ''], + //'cy' => ['name' => 'Welsh', 'script' => 'Latn', 'native' => 'Cymraeg', 'regional' => 'cy_GB'], + //'da' => ['name' => 'Danish', 'script' => 'Latn', 'native' => 'dansk', 'regional' => 'da_DK'], + //'se' => ['name' => 'Northern Sami', 'script' => 'Latn', 'native' => 'davvisámegiella', 'regional' => 'se_NO'], + //'de' => ['name' => 'German', 'script' => 'Latn', 'native' => 'Deutsch', 'regional' => 'de_DE'], + //'luo' => ['name' => 'Luo', 'script' => 'Latn', 'native' => 'Dholuo', 'regional' => ''], + //'nv' => ['name' => 'Navajo', 'script' => 'Latn', 'native' => 'Diné bizaad', 'regional' => ''], + //'dua' => ['name' => 'Duala', 'script' => 'Latn', 'native' => 'duálá', 'regional' => ''], + //'et' => ['name' => 'Estonian', 'script' => 'Latn', 'native' => 'eesti', 'regional' => 'et_EE'], + //'na' => ['name' => 'Nauru', 'script' => 'Latn', 'native' => 'Ekakairũ Naoero', 'regional' => ''], + //'guz' => ['name' => 'Ekegusii', 'script' => 'Latn', 'native' => 'Ekegusii', 'regional' => ''], + 'en' => ['name' => 'English', 'script' => 'Latn', 'native' => 'English', 'regional' => 'en_GB'], + //'en-AU' => ['name' => 'Australian English', 'script' => 'Latn', 'native' => 'Australian English', 'regional' => 'en_AU'], + //'en-GB' => ['name' => 'British English', 'script' => 'Latn', 'native' => 'British English', 'regional' => 'en_GB'], + //'en-US' => ['name' => 'U.S. English', 'script' => 'Latn', 'native' => 'U.S. English', 'regional' => 'en_US'], + //'es' => ['name' => 'Spanish', 'script' => 'Latn', 'native' => 'español', 'regional' => 'es_ES'], + //'eo' => ['name' => 'Esperanto', 'script' => 'Latn', 'native' => 'esperanto', 'regional' => ''], + //'eu' => ['name' => 'Basque', 'script' => 'Latn', 'native' => 'euskara', 'regional' => 'eu_ES'], + //'ewo' => ['name' => 'Ewondo', 'script' => 'Latn', 'native' => 'ewondo', 'regional' => ''], + //'ee' => ['name' => 'Ewe', 'script' => 'Latn', 'native' => 'eʋegbe', 'regional' => ''], + //'fil' => ['name' => 'Filipino', 'script' => 'Latn', 'native' => 'Filipino', 'regional' => 'fil_PH'], + //'fr' => ['name' => 'French', 'script' => 'Latn', 'native' => 'français', 'regional' => 'fr_FR'], + //'fr-CA' => ['name' => 'Canadian French', 'script' => 'Latn', 'native' => 'français canadien', 'regional' => 'fr_CA'], + //'fy' => ['name' => 'Western Frisian', 'script' => 'Latn', 'native' => 'frysk', 'regional' => 'fy_DE'], + //'fur' => ['name' => 'Friulian', 'script' => 'Latn', 'native' => 'furlan', 'regional' => 'fur_IT'], + //'fo' => ['name' => 'Faroese', 'script' => 'Latn', 'native' => 'føroyskt', 'regional' => 'fo_FO'], + //'gaa' => ['name' => 'Ga', 'script' => 'Latn', 'native' => 'Ga', 'regional' => ''], + //'ga' => ['name' => 'Irish', 'script' => 'Latn', 'native' => 'Gaeilge', 'regional' => 'ga_IE'], + //'gv' => ['name' => 'Manx', 'script' => 'Latn', 'native' => 'Gaelg', 'regional' => 'gv_GB'], + //'sm' => ['name' => 'Samoan', 'script' => 'Latn', 'native' => 'Gagana fa’a Sāmoa', 'regional' => ''], + //'gl' => ['name' => 'Galician', 'script' => 'Latn', 'native' => 'galego', 'regional' => 'gl_ES'], + //'ki' => ['name' => 'Kikuyu', 'script' => 'Latn', 'native' => 'Gikuyu', 'regional' => ''], + //'gd' => ['name' => 'Scottish Gaelic', 'script' => 'Latn', 'native' => 'Gàidhlig', 'regional' => 'gd_GB'], + //'ha' => ['name' => 'Hausa', 'script' => 'Latn', 'native' => 'Hausa', 'regional' => 'ha_NG'], + //'bez' => ['name' => 'Bena', 'script' => 'Latn', 'native' => 'Hibena', 'regional' => ''], + //'ho' => ['name' => 'Hiri Motu', 'script' => 'Latn', 'native' => 'Hiri Motu', 'regional' => ''], + //'hr' => ['name' => 'Croatian', 'script' => 'Latn', 'native' => 'hrvatski', 'regional' => 'hr_HR'], + //'bem' => ['name' => 'Bemba', 'script' => 'Latn', 'native' => 'Ichibemba', 'regional' => 'bem_ZM'], + //'io' => ['name' => 'Ido', 'script' => 'Latn', 'native' => 'Ido', 'regional' => ''], + //'ig' => ['name' => 'Igbo', 'script' => 'Latn', 'native' => 'Igbo', 'regional' => 'ig_NG'], + //'rn' => ['name' => 'Rundi', 'script' => 'Latn', 'native' => 'Ikirundi', 'regional' => ''], + //'ia' => ['name' => 'Interlingua', 'script' => 'Latn', 'native' => 'interlingua', 'regional' => 'ia_FR'], + //'iu-Latn' => ['name' => 'Inuktitut (Latin)', 'script' => 'Latn', 'native' => 'Inuktitut', 'regional' => 'iu_CA'], + //'sbp' => ['name' => 'Sileibi', 'script' => 'Latn', 'native' => 'Ishisangu', 'regional' => ''], + //'nd' => ['name' => 'North Ndebele', 'script' => 'Latn', 'native' => 'isiNdebele', 'regional' => ''], + //'nr' => ['name' => 'South Ndebele', 'script' => 'Latn', 'native' => 'isiNdebele', 'regional' => 'nr_ZA'], + //'xh' => ['name' => 'Xhosa', 'script' => 'Latn', 'native' => 'isiXhosa', 'regional' => 'xh_ZA'], + //'zu' => ['name' => 'Zulu', 'script' => 'Latn', 'native' => 'isiZulu', 'regional' => 'zu_ZA'], + //'it' => ['name' => 'Italian', 'script' => 'Latn', 'native' => 'italiano', 'regional' => 'it_IT'], + //'ik' => ['name' => 'Inupiaq', 'script' => 'Latn', 'native' => 'Iñupiaq', 'regional' => 'ik_CA'], + //'dyo' => ['name' => 'Jola-Fonyi', 'script' => 'Latn', 'native' => 'joola', 'regional' => ''], + //'kea' => ['name' => 'Kabuverdianu', 'script' => 'Latn', 'native' => 'kabuverdianu', 'regional' => ''], + //'kaj' => ['name' => 'Jju', 'script' => 'Latn', 'native' => 'Kaje', 'regional' => ''], + //'mh' => ['name' => 'Marshallese', 'script' => 'Latn', 'native' => 'Kajin M̧ajeļ', 'regional' => 'mh_MH'], + //'kl' => ['name' => 'Kalaallisut', 'script' => 'Latn', 'native' => 'kalaallisut', 'regional' => 'kl_GL'], + //'kln' => ['name' => 'Kalenjin', 'script' => 'Latn', 'native' => 'Kalenjin', 'regional' => ''], + //'kr' => ['name' => 'Kanuri', 'script' => 'Latn', 'native' => 'Kanuri', 'regional' => ''], + //'kcg' => ['name' => 'Tyap', 'script' => 'Latn', 'native' => 'Katab', 'regional' => ''], + //'kw' => ['name' => 'Cornish', 'script' => 'Latn', 'native' => 'kernewek', 'regional' => 'kw_GB'], + //'naq' => ['name' => 'Nama', 'script' => 'Latn', 'native' => 'Khoekhoegowab', 'regional' => ''], + //'rof' => ['name' => 'Rombo', 'script' => 'Latn', 'native' => 'Kihorombo', 'regional' => ''], + //'kam' => ['name' => 'Kamba', 'script' => 'Latn', 'native' => 'Kikamba', 'regional' => ''], + //'kg' => ['name' => 'Kongo', 'script' => 'Latn', 'native' => 'Kikongo', 'regional' => ''], + //'jmc' => ['name' => 'Machame', 'script' => 'Latn', 'native' => 'Kimachame', 'regional' => ''], + //'rw' => ['name' => 'Kinyarwanda', 'script' => 'Latn', 'native' => 'Kinyarwanda', 'regional' => 'rw_RW'], + //'asa' => ['name' => 'Kipare', 'script' => 'Latn', 'native' => 'Kipare', 'regional' => ''], + //'rwk' => ['name' => 'Rwa', 'script' => 'Latn', 'native' => 'Kiruwa', 'regional' => ''], + //'saq' => ['name' => 'Samburu', 'script' => 'Latn', 'native' => 'Kisampur', 'regional' => ''], + //'ksb' => ['name' => 'Shambala', 'script' => 'Latn', 'native' => 'Kishambaa', 'regional' => ''], + //'swc' => ['name' => 'Congo Swahili', 'script' => 'Latn', 'native' => 'Kiswahili ya Kongo', 'regional' => ''], + //'sw' => ['name' => 'Swahili', 'script' => 'Latn', 'native' => 'Kiswahili', 'regional' => 'sw_KE'], + //'dav' => ['name' => 'Dawida', 'script' => 'Latn', 'native' => 'Kitaita', 'regional' => ''], + //'teo' => ['name' => 'Teso', 'script' => 'Latn', 'native' => 'Kiteso', 'regional' => ''], + //'khq' => ['name' => 'Koyra Chiini', 'script' => 'Latn', 'native' => 'Koyra ciini', 'regional' => ''], + //'ses' => ['name' => 'Songhay', 'script' => 'Latn', 'native' => 'Koyraboro senni', 'regional' => ''], + //'mfe' => ['name' => 'Morisyen', 'script' => 'Latn', 'native' => 'kreol morisien', 'regional' => ''], + //'ht' => ['name' => 'Haitian', 'script' => 'Latn', 'native' => 'Kreyòl ayisyen', 'regional' => 'ht_HT'], + //'kj' => ['name' => 'Kuanyama', 'script' => 'Latn', 'native' => 'Kwanyama', 'regional' => ''], + //'ksh' => ['name' => 'Kölsch', 'script' => 'Latn', 'native' => 'Kölsch', 'regional' => ''], + //'ebu' => ['name' => 'Kiembu', 'script' => 'Latn', 'native' => 'Kĩembu', 'regional' => ''], + //'mer' => ['name' => 'Kimîîru', 'script' => 'Latn', 'native' => 'Kĩmĩrũ', 'regional' => ''], + //'lag' => ['name' => 'Langi', 'script' => 'Latn', 'native' => 'Kɨlaangi', 'regional' => ''], + //'lah' => ['name' => 'Lahnda', 'script' => 'Latn', 'native' => 'Lahnda', 'regional' => ''], + //'la' => ['name' => 'Latin', 'script' => 'Latn', 'native' => 'latine', 'regional' => ''], + //'lv' => ['name' => 'Latvian', 'script' => 'Latn', 'native' => 'latviešu', 'regional' => 'lv_LV'], + //'to' => ['name' => 'Tongan', 'script' => 'Latn', 'native' => 'lea fakatonga', 'regional' => ''], + //'lt' => ['name' => 'Lithuanian', 'script' => 'Latn', 'native' => 'lietuvių', 'regional' => 'lt_LT'], + //'li' => ['name' => 'Limburgish', 'script' => 'Latn', 'native' => 'Limburgs', 'regional' => 'li_BE'], + //'ln' => ['name' => 'Lingala', 'script' => 'Latn', 'native' => 'lingála', 'regional' => ''], + //'lg' => ['name' => 'Ganda', 'script' => 'Latn', 'native' => 'Luganda', 'regional' => 'lg_UG'], + //'luy' => ['name' => 'Oluluyia', 'script' => 'Latn', 'native' => 'Luluhia', 'regional' => ''], + //'lb' => ['name' => 'Luxembourgish', 'script' => 'Latn', 'native' => 'Lëtzebuergesch', 'regional' => 'lb_LU'], + //'hu' => ['name' => 'Hungarian', 'script' => 'Latn', 'native' => 'magyar', 'regional' => 'hu_HU'], + //'mgh' => ['name' => 'Makhuwa-Meetto', 'script' => 'Latn', 'native' => 'Makua', 'regional' => ''], + //'mg' => ['name' => 'Malagasy', 'script' => 'Latn', 'native' => 'Malagasy', 'regional' => 'mg_MG'], + //'mt' => ['name' => 'Maltese', 'script' => 'Latn', 'native' => 'Malti', 'regional' => 'mt_MT'], + //'mtr' => ['name' => 'Mewari', 'script' => 'Latn', 'native' => 'Mewari', 'regional' => ''], + //'mua' => ['name' => 'Mundang', 'script' => 'Latn', 'native' => 'Mundang', 'regional' => ''], + //'mi' => ['name' => 'Māori', 'script' => 'Latn', 'native' => 'Māori', 'regional' => 'mi_NZ'], + //'nl' => ['name' => 'Dutch', 'script' => 'Latn', 'native' => 'Nederlands', 'regional' => 'nl_NL'], + //'nmg' => ['name' => 'Kwasio', 'script' => 'Latn', 'native' => 'ngumba', 'regional' => ''], + //'yav' => ['name' => 'Yangben', 'script' => 'Latn', 'native' => 'nuasue', 'regional' => ''], + //'nn' => ['name' => 'Norwegian Nynorsk', 'script' => 'Latn', 'native' => 'nynorsk', 'regional' => 'nn_NO'], + //'oc' => ['name' => 'Occitan', 'script' => 'Latn', 'native' => 'occitan', 'regional' => 'oc_FR'], + //'ang' => ['name' => 'Old English', 'script' => 'Runr', 'native' => 'Old English', 'regional' => ''], + //'xog' => ['name' => 'Soga', 'script' => 'Latn', 'native' => 'Olusoga', 'regional' => ''], + //'om' => ['name' => 'Oromo', 'script' => 'Latn', 'native' => 'Oromoo', 'regional' => 'om_ET'], + //'ng' => ['name' => 'Ndonga', 'script' => 'Latn', 'native' => 'OshiNdonga', 'regional' => ''], + //'hz' => ['name' => 'Herero', 'script' => 'Latn', 'native' => 'Otjiherero', 'regional' => ''], + //'uz-Latn' => ['name' => 'Uzbek (Latin)', 'script' => 'Latn', 'native' => 'oʼzbekcha', 'regional' => 'uz_UZ'], + //'nds' => ['name' => 'Low German', 'script' => 'Latn', 'native' => 'Plattdüütsch', 'regional' => 'nds_DE'], + 'pl' => ['name' => 'Polish', 'script' => 'Latn', 'native' => 'polski', 'regional' => 'pl_PL'], + //'pt' => ['name' => 'Portuguese', 'script' => 'Latn', 'native' => 'português', 'regional' => 'pt_PT'], + //'pt-BR' => ['name' => 'Brazilian Portuguese', 'script' => 'Latn', 'native' => 'português do Brasil', 'regional' => 'pt_BR'], + //'ff' => ['name' => 'Fulah', 'script' => 'Latn', 'native' => 'Pulaar', 'regional' => 'ff_SN'], + //'pi' => ['name' => 'Pahari-Potwari', 'script' => 'Latn', 'native' => 'Pāli', 'regional' => ''], + //'aa' => ['name' => 'Afar', 'script' => 'Latn', 'native' => 'Qafar', 'regional' => 'aa_ER'], + //'ty' => ['name' => 'Tahitian', 'script' => 'Latn', 'native' => 'Reo Māohi', 'regional' => ''], + //'ksf' => ['name' => 'Bafia', 'script' => 'Latn', 'native' => 'rikpa', 'regional' => ''], + //'ro' => ['name' => 'Romanian', 'script' => 'Latn', 'native' => 'română', 'regional' => 'ro_RO'], + //'cgg' => ['name' => 'Chiga', 'script' => 'Latn', 'native' => 'Rukiga', 'regional' => ''], + //'rm' => ['name' => 'Romansh', 'script' => 'Latn', 'native' => 'rumantsch', 'regional' => ''], + //'qu' => ['name' => 'Quechua', 'script' => 'Latn', 'native' => 'Runa Simi', 'regional' => ''], + //'nyn' => ['name' => 'Nyankole', 'script' => 'Latn', 'native' => 'Runyankore', 'regional' => ''], + //'ssy' => ['name' => 'Saho', 'script' => 'Latn', 'native' => 'Saho', 'regional' => ''], + //'sc' => ['name' => 'Sardinian', 'script' => 'Latn', 'native' => 'sardu', 'regional' => 'sc_IT'], + //'de-CH' => ['name' => 'Swiss High German', 'script' => 'Latn', 'native' => 'Schweizer Hochdeutsch', 'regional' => 'de_CH'], + //'gsw' => ['name' => 'Swiss German', 'script' => 'Latn', 'native' => 'Schwiizertüütsch', 'regional' => ''], + //'trv' => ['name' => 'Taroko', 'script' => 'Latn', 'native' => 'Seediq', 'regional' => ''], + //'seh' => ['name' => 'Sena', 'script' => 'Latn', 'native' => 'sena', 'regional' => ''], + //'nso' => ['name' => 'Northern Sotho', 'script' => 'Latn', 'native' => 'Sesotho sa Leboa', 'regional' => 'nso_ZA'], + //'st' => ['name' => 'Southern Sotho', 'script' => 'Latn', 'native' => 'Sesotho', 'regional' => 'st_ZA'], + //'tn' => ['name' => 'Tswana', 'script' => 'Latn', 'native' => 'Setswana', 'regional' => 'tn_ZA'], + //'sq' => ['name' => 'Albanian', 'script' => 'Latn', 'native' => 'shqip', 'regional' => 'sq_AL'], + //'sid' => ['name' => 'Sidamo', 'script' => 'Latn', 'native' => 'Sidaamu Afo', 'regional' => 'sid_ET'], + //'ss' => ['name' => 'Swati', 'script' => 'Latn', 'native' => 'Siswati', 'regional' => 'ss_ZA'], + //'sk' => ['name' => 'Slovak', 'script' => 'Latn', 'native' => 'slovenčina', 'regional' => 'sk_SK'], + //'sl' => ['name' => 'Slovene', 'script' => 'Latn', 'native' => 'slovenščina', 'regional' => 'sl_SI'], + //'so' => ['name' => 'Somali', 'script' => 'Latn', 'native' => 'Soomaali', 'regional' => 'so_SO'], + //'sr-Latn' => ['name' => 'Serbian (Latin)', 'script' => 'Latn', 'native' => 'Srpski', 'regional' => 'sr_RS'], + //'sh' => ['name' => 'Serbo-Croatian', 'script' => 'Latn', 'native' => 'srpskohrvatski', 'regional' => ''], + //'fi' => ['name' => 'Finnish', 'script' => 'Latn', 'native' => 'suomi', 'regional' => 'fi_FI'], + //'sv' => ['name' => 'Swedish', 'script' => 'Latn', 'native' => 'svenska', 'regional' => 'sv_SE'], + //'sg' => ['name' => 'Sango', 'script' => 'Latn', 'native' => 'Sängö', 'regional' => ''], + //'tl' => ['name' => 'Tagalog', 'script' => 'Latn', 'native' => 'Tagalog', 'regional' => 'tl_PH'], + //'tzm-Latn' => ['name' => 'Central Atlas Tamazight (Latin)', 'script' => 'Latn', 'native' => 'Tamazight', 'regional' => ''], + //'kab' => ['name' => 'Kabyle', 'script' => 'Latn', 'native' => 'Taqbaylit', 'regional' => 'kab_DZ'], + //'twq' => ['name' => 'Tasawaq', 'script' => 'Latn', 'native' => 'Tasawaq senni', 'regional' => ''], + //'shi' => ['name' => 'Tachelhit (Latin)', 'script' => 'Latn', 'native' => 'Tashelhit', 'regional' => ''], + //'nus' => ['name' => 'Nuer', 'script' => 'Latn', 'native' => 'Thok Nath', 'regional' => ''], + //'vi' => ['name' => 'Vietnamese', 'script' => 'Latn', 'native' => 'Tiếng Việt', 'regional' => 'vi_VN'], + //'tg-Latn' => ['name' => 'Tajik (Latin)', 'script' => 'Latn', 'native' => 'tojikī', 'regional' => 'tg_TJ'], + //'lu' => ['name' => 'Luba-Katanga', 'script' => 'Latn', 'native' => 'Tshiluba', 'regional' => 've_ZA'], + //'ve' => ['name' => 'Venda', 'script' => 'Latn', 'native' => 'Tshivenḓa', 'regional' => ''], + //'tw' => ['name' => 'Twi', 'script' => 'Latn', 'native' => 'Twi', 'regional' => ''], + //'tr' => ['name' => 'Turkish', 'script' => 'Latn', 'native' => 'Türkçe', 'regional' => 'tr_TR'], + //'ale' => ['name' => 'Aleut', 'script' => 'Latn', 'native' => 'Unangax tunuu', 'regional' => ''], + //'ca-valencia' => ['name' => 'Valencian', 'script' => 'Latn', 'native' => 'valencià', 'regional' => ''], + //'vai-Latn' => ['name' => 'Vai (Latin)', 'script' => 'Latn', 'native' => 'Viyamíĩ', 'regional' => ''], + //'vo' => ['name' => 'Volapük', 'script' => 'Latn', 'native' => 'Volapük', 'regional' => ''], + //'fj' => ['name' => 'Fijian', 'script' => 'Latn', 'native' => 'vosa Vakaviti', 'regional' => ''], + //'wa' => ['name' => 'Walloon', 'script' => 'Latn', 'native' => 'Walon', 'regional' => 'wa_BE'], + //'wae' => ['name' => 'Walser', 'script' => 'Latn', 'native' => 'Walser', 'regional' => 'wae_CH'], + //'wen' => ['name' => 'Sorbian', 'script' => 'Latn', 'native' => 'Wendic', 'regional' => ''], + //'wo' => ['name' => 'Wolof', 'script' => 'Latn', 'native' => 'Wolof', 'regional' => 'wo_SN'], + //'ts' => ['name' => 'Tsonga', 'script' => 'Latn', 'native' => 'Xitsonga', 'regional' => 'ts_ZA'], + //'dje' => ['name' => 'Zarma', 'script' => 'Latn', 'native' => 'Zarmaciine', 'regional' => ''], + //'yo' => ['name' => 'Yoruba', 'script' => 'Latn', 'native' => 'Èdè Yorùbá', 'regional' => 'yo_NG'], + //'de-AT' => ['name' => 'Austrian German', 'script' => 'Latn', 'native' => 'Österreichisches Deutsch', 'regional' => 'de_AT'], + //'is' => ['name' => 'Icelandic', 'script' => 'Latn', 'native' => 'íslenska', 'regional' => 'is_IS'], + //'cs' => ['name' => 'Czech', 'script' => 'Latn', 'native' => 'čeština', 'regional' => 'cs_CZ'], + //'bas' => ['name' => 'Basa', 'script' => 'Latn', 'native' => 'Ɓàsàa', 'regional' => ''], + //'mas' => ['name' => 'Masai', 'script' => 'Latn', 'native' => 'ɔl-Maa', 'regional' => ''], + //'haw' => ['name' => 'Hawaiian', 'script' => 'Latn', 'native' => 'ʻŌlelo Hawaiʻi', 'regional' => ''], + //'el' => ['name' => 'Greek', 'script' => 'Grek', 'native' => 'Ελληνικά', 'regional' => 'el_GR'], + //'uz' => ['name' => 'Uzbek (Cyrillic)', 'script' => 'Cyrl', 'native' => 'Ўзбек', 'regional' => 'uz_UZ'], + //'az-Cyrl' => ['name' => 'Azerbaijani (Cyrillic)', 'script' => 'Cyrl', 'native' => 'Азәрбајҹан', 'regional' => 'uz_UZ'], + //'ab' => ['name' => 'Abkhazian', 'script' => 'Cyrl', 'native' => 'Аҧсуа', 'regional' => ''], + //'os' => ['name' => 'Ossetic', 'script' => 'Cyrl', 'native' => 'Ирон', 'regional' => 'os_RU'], + //'ky' => ['name' => 'Kyrgyz', 'script' => 'Cyrl', 'native' => 'Кыргыз', 'regional' => 'ky_KG'], + //'sr' => ['name' => 'Serbian (Cyrillic)', 'script' => 'Cyrl', 'native' => 'Српски', 'regional' => 'sr_RS'], + //'av' => ['name' => 'Avaric', 'script' => 'Cyrl', 'native' => 'авар мацӀ', 'regional' => ''], + //'ady' => ['name' => 'Adyghe', 'script' => 'Cyrl', 'native' => 'адыгэбзэ', 'regional' => ''], + //'ba' => ['name' => 'Bashkir', 'script' => 'Cyrl', 'native' => 'башҡорт теле', 'regional' => ''], + //'be' => ['name' => 'Belarusian', 'script' => 'Cyrl', 'native' => 'беларуская', 'regional' => 'be_BY'], + //'bg' => ['name' => 'Bulgarian', 'script' => 'Cyrl', 'native' => 'български', 'regional' => 'bg_BG'], + //'kv' => ['name' => 'Komi', 'script' => 'Cyrl', 'native' => 'коми кыв', 'regional' => ''], + //'mk' => ['name' => 'Macedonian', 'script' => 'Cyrl', 'native' => 'македонски', 'regional' => 'mk_MK'], + //'mn' => ['name' => 'Mongolian (Cyrillic)', 'script' => 'Cyrl', 'native' => 'монгол', 'regional' => 'mn_MN'], + //'ce' => ['name' => 'Chechen', 'script' => 'Cyrl', 'native' => 'нохчийн мотт', 'regional' => 'ce_RU'], + //'ru' => ['name' => 'Russian', 'script' => 'Cyrl', 'native' => 'русский', 'regional' => 'ru_RU'], + //'sah' => ['name' => 'Yakut', 'script' => 'Cyrl', 'native' => 'саха тыла', 'regional' => ''], + //'tt' => ['name' => 'Tatar', 'script' => 'Cyrl', 'native' => 'татар теле', 'regional' => 'tt_RU'], + //'tg' => ['name' => 'Tajik (Cyrillic)', 'script' => 'Cyrl', 'native' => 'тоҷикӣ', 'regional' => 'tg_TJ'], + //'tk' => ['name' => 'Turkmen', 'script' => 'Cyrl', 'native' => 'түркменче', 'regional' => 'tk_TM'], + //'uk' => ['name' => 'Ukrainian', 'script' => 'Cyrl', 'native' => 'українська', 'regional' => 'uk_UA'], + //'cv' => ['name' => 'Chuvash', 'script' => 'Cyrl', 'native' => 'чӑваш чӗлхи', 'regional' => 'cv_RU'], + //'cu' => ['name' => 'Church Slavic', 'script' => 'Cyrl', 'native' => 'ѩзыкъ словѣньскъ', 'regional' => ''], + //'kk' => ['name' => 'Kazakh', 'script' => 'Cyrl', 'native' => 'қазақ тілі', 'regional' => 'kk_KZ'], + //'hy' => ['name' => 'Armenian', 'script' => 'Armn', 'native' => 'Հայերեն', 'regional' => 'hy_AM'], + //'yi' => ['name' => 'Yiddish', 'script' => 'Hebr', 'native' => 'ייִדיש', 'regional' => 'yi_US'], + //'he' => ['name' => 'Hebrew', 'script' => 'Hebr', 'native' => 'עברית', 'regional' => 'he_IL'], + //'ug' => ['name' => 'Uyghur', 'script' => 'Arab', 'native' => 'ئۇيغۇرچە', 'regional' => 'ug_CN'], + //'ur' => ['name' => 'Urdu', 'script' => 'Arab', 'native' => 'اردو', 'regional' => 'ur_PK'], + //'ar' => ['name' => 'Arabic', 'script' => 'Arab', 'native' => 'العربية', 'regional' => 'ar_AE'], + //'uz-Arab' => ['name' => 'Uzbek (Arabic)', 'script' => 'Arab', 'native' => 'اۉزبېک', 'regional' => ''], + //'tg-Arab' => ['name' => 'Tajik (Arabic)', 'script' => 'Arab', 'native' => 'تاجیکی', 'regional' => 'tg_TJ'], + //'sd' => ['name' => 'Sindhi', 'script' => 'Arab', 'native' => 'سنڌي', 'regional' => 'sd_IN'], + //'fa' => ['name' => 'Persian', 'script' => 'Arab', 'native' => 'فارسی', 'regional' => 'fa_IR'], + //'pa-Arab' => ['name' => 'Punjabi (Arabic)', 'script' => 'Arab', 'native' => 'پنجاب', 'regional' => 'pa_IN'], + //'ps' => ['name' => 'Pashto', 'script' => 'Arab', 'native' => 'پښتو', 'regional' => 'ps_AF'], + //'ks' => ['name' => 'Kashmiri (Arabic)', 'script' => 'Arab', 'native' => 'کأشُر', 'regional' => 'ks_IN'], + //'ku' => ['name' => 'Kurdish', 'script' => 'Arab', 'native' => 'کوردی', 'regional' => 'ku_TR'], + //'dv' => ['name' => 'Divehi', 'script' => 'Thaa', 'native' => 'ދިވެހިބަސް', 'regional' => 'dv_MV'], + //'ks-Deva' => ['name' => 'Kashmiri (Devaganari)', 'script' => 'Deva', 'native' => 'कॉशुर', 'regional' => 'ks_IN'], + //'kok' => ['name' => 'Konkani', 'script' => 'Deva', 'native' => 'कोंकणी', 'regional' => 'kok_IN'], + //'doi' => ['name' => 'Dogri', 'script' => 'Deva', 'native' => 'डोगरी', 'regional' => 'doi_IN'], + //'ne' => ['name' => 'Nepali', 'script' => 'Deva', 'native' => 'नेपाली', 'regional' => ''], + //'pra' => ['name' => 'Prakrit', 'script' => 'Deva', 'native' => 'प्राकृत', 'regional' => ''], + //'brx' => ['name' => 'Bodo', 'script' => 'Deva', 'native' => 'बड़ो', 'regional' => 'brx_IN'], + //'bra' => ['name' => 'Braj', 'script' => 'Deva', 'native' => 'ब्रज भाषा', 'regional' => ''], + //'mr' => ['name' => 'Marathi', 'script' => 'Deva', 'native' => 'मराठी', 'regional' => 'mr_IN'], + //'mai' => ['name' => 'Maithili', 'script' => 'Tirh', 'native' => 'मैथिली', 'regional' => 'mai_IN'], + //'raj' => ['name' => 'Rajasthani', 'script' => 'Deva', 'native' => 'राजस्थानी', 'regional' => ''], + //'sa' => ['name' => 'Sanskrit', 'script' => 'Deva', 'native' => 'संस्कृतम्', 'regional' => 'sa_IN'], + //'hi' => ['name' => 'Hindi', 'script' => 'Deva', 'native' => 'हिन्दी', 'regional' => 'hi_IN'], + //'as' => ['name' => 'Assamese', 'script' => 'Beng', 'native' => 'অসমীয়া', 'regional' => 'as_IN'], + //'bn' => ['name' => 'Bengali', 'script' => 'Beng', 'native' => 'বাংলা', 'regional' => 'bn_BD'], + //'mni' => ['name' => 'Manipuri', 'script' => 'Beng', 'native' => 'মৈতৈ', 'regional' => 'mni_IN'], + //'pa' => ['name' => 'Punjabi (Gurmukhi)', 'script' => 'Guru', 'native' => 'ਪੰਜਾਬੀ', 'regional' => 'pa_IN'], + //'gu' => ['name' => 'Gujarati', 'script' => 'Gujr', 'native' => 'ગુજરાતી', 'regional' => 'gu_IN'], + //'or' => ['name' => 'Oriya', 'script' => 'Orya', 'native' => 'ଓଡ଼ିଆ', 'regional' => 'or_IN'], + //'ta' => ['name' => 'Tamil', 'script' => 'Taml', 'native' => 'தமிழ்', 'regional' => 'ta_IN'], + //'te' => ['name' => 'Telugu', 'script' => 'Telu', 'native' => 'తెలుగు', 'regional' => 'te_IN'], + //'kn' => ['name' => 'Kannada', 'script' => 'Knda', 'native' => 'ಕನ್ನಡ', 'regional' => 'kn_IN'], + //'ml' => ['name' => 'Malayalam', 'script' => 'Mlym', 'native' => 'മലയാളം', 'regional' => 'ml_IN'], + //'si' => ['name' => 'Sinhala', 'script' => 'Sinh', 'native' => 'සිංහල', 'regional' => 'si_LK'], + //'th' => ['name' => 'Thai', 'script' => 'Thai', 'native' => 'ไทย', 'regional' => 'th_TH'], + //'lo' => ['name' => 'Lao', 'script' => 'Laoo', 'native' => 'ລາວ', 'regional' => 'lo_LA'], + //'bo' => ['name' => 'Tibetan', 'script' => 'Tibt', 'native' => 'པོད་སྐད་', 'regional' => 'bo_IN'], + //'dz' => ['name' => 'Dzongkha', 'script' => 'Tibt', 'native' => 'རྫོང་ཁ', 'regional' => 'dz_BT'], + //'my' => ['name' => 'Burmese', 'script' => 'Mymr', 'native' => 'မြန်မာဘာသာ', 'regional' => 'my_MM'], + //'ka' => ['name' => 'Georgian', 'script' => 'Geor', 'native' => 'ქართული', 'regional' => 'ka_GE'], + //'byn' => ['name' => 'Blin', 'script' => 'Ethi', 'native' => 'ብሊን', 'regional' => 'byn_ER'], + //'tig' => ['name' => 'Tigre', 'script' => 'Ethi', 'native' => 'ትግረ', 'regional' => 'tig_ER'], + //'ti' => ['name' => 'Tigrinya', 'script' => 'Ethi', 'native' => 'ትግርኛ', 'regional' => 'ti_ET'], + //'am' => ['name' => 'Amharic', 'script' => 'Ethi', 'native' => 'አማርኛ', 'regional' => 'am_ET'], + //'wal' => ['name' => 'Wolaytta', 'script' => 'Ethi', 'native' => 'ወላይታቱ', 'regional' => 'wal_ET'], + //'chr' => ['name' => 'Cherokee', 'script' => 'Cher', 'native' => 'ᏣᎳᎩ', 'regional' => ''], + //'iu' => ['name' => 'Inuktitut (Canadian Aboriginal Syllabics)', 'script' => 'Cans', 'native' => 'ᐃᓄᒃᑎᑐᑦ', 'regional' => 'iu_CA'], + //'oj' => ['name' => 'Ojibwa', 'script' => 'Cans', 'native' => 'ᐊᓂᔑᓈᐯᒧᐎᓐ', 'regional' => ''], + //'cr' => ['name' => 'Cree', 'script' => 'Cans', 'native' => 'ᓀᐦᐃᔭᐍᐏᐣ', 'regional' => ''], + //'km' => ['name' => 'Khmer', 'script' => 'Khmr', 'native' => 'ភាសាខ្មែរ', 'regional' => 'km_KH'], + //'mn-Mong' => ['name' => 'Mongolian (Mongolian)', 'script' => 'Mong', 'native' => 'ᠮᠣᠨᠭᠭᠣᠯ ᠬᠡᠯᠡ', 'regional' => 'mn_MN'], + //'shi-Tfng' => ['name' => 'Tachelhit (Tifinagh)', 'script' => 'Tfng', 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', 'regional' => ''], + //'tzm' => ['name' => 'Central Atlas Tamazight (Tifinagh)','script' => 'Tfng', 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', 'regional' => ''], + //'yue' => ['name' => 'Yue', 'script' => 'Hant', 'native' => '廣州話', 'regional' => 'yue_HK'], + //'ja' => ['name' => 'Japanese', 'script' => 'Jpan', 'native' => '日本語', 'regional' => 'ja_JP'], + //'zh' => ['name' => 'Chinese (Simplified)', 'script' => 'Hans', 'native' => '简体中文', 'regional' => 'zh_CN'], + //'zh-Hant' => ['name' => 'Chinese (Traditional)', 'script' => 'Hant', 'native' => '繁體中文', 'regional' => 'zh_CN'], + //'ii' => ['name' => 'Sichuan Yi', 'script' => 'Yiii', 'native' => 'ꆈꌠꉙ', 'regional' => ''], + //'vai' => ['name' => 'Vai (Vai)', 'script' => 'Vaii', 'native' => 'ꕙꔤ', 'regional' => ''], + //'jv-Java' => ['name' => 'Javanese (Javanese)', 'script' => 'Java', 'native' => 'ꦧꦱꦗꦮ', 'regional' => ''], + //'ko' => ['name' => 'Korean', 'script' => 'Hang', 'native' => '한국어', 'regional' => 'ko_KR'], + ], + + // Negotiate for the user locale using the Accept-Language header if it's not defined in the URL? + // If false, system will take app.php locale attribute + 'useAcceptLanguageHeader' => false, + + // If LaravelLocalizationRedirectFilter is active and hideDefaultLocaleInURL + // is true, the url would not have the default application language + // + // IMPORTANT - When hideDefaultLocaleInURL is set to true, the unlocalized root is treated as the applications default locale "app.locale". + // Because of this language negotiation using the Accept-Language header will NEVER occur when hideDefaultLocaleInURL is true. + // + 'hideDefaultLocaleInURL' => true, + + // If you want to display the locales in particular order in the language selector you should write the order here. + //CAUTION: Please consider using the appropriate locale code otherwise it will not work + //Example: 'localesOrder' => ['es','en'], + 'localesOrder' => ["en", "pl"], + +]; diff --git a/public/assets/images/backup.xcf b/public/assets/images/backup.xcf new file mode 100644 index 0000000000000000000000000000000000000000..dcf74ddd81ebbc1285044b84be11edcd72444392 GIT binary patch literal 30388 zcmeI53zS@CmG8fP=bdyQYUIFYtC?ya`;9|poB8)(dIx{ZpBwe8;BrypV4Bpjo z)H^i}I?Sj`TfO7!x(53?3m4ZbS4tov4vbUCL&C#Q2u5Cc^v$c2uB!96zyChxR9B}v z-aBiJEWOjc*2y`w_xJwxxA%YV?>i@JdT-g#aoehFN49ruk8`f!F8;ZVOMmTL4GsKr z4A-Q~VCmxTSgvNSDO|_J&q_Ck^v83bwT5CldvEDp)6=VkOtc*L02dF#5~%^kh#R^8OIN%_}jvzvN0*BYqYV@VNZbXJW+{MYa| z&NY3@x$CDT6vihRe2wL#_jPaFv^m!;b}N_0JLH-aKP%1T_?es2xGRnRG%v~X)VgQY zmC&cxJLCvly_bqUwCTsLy9R~db?e#aLr@2kIN@cVapHEnTybr)THjO$|cmA}FvDy zHgc}+S)F9*R3#ltE=bf!RFF}lb-JPVww|?G;@#^u_flT>rjFZf$*=8Rx8_!~Sx0Ka z+RhDYRp83*O+B5fdpGv1+T6Q-UB}wZ8zCO4&i*f&=)<>e+T5GHy<=@pb~Cxx_H5qV zv#~SLMCXmPbLINmI&WFOx~F6H?d!U4>0PDzA(>vPHTtGrT8&z>CTqOozm}cRLrsjB zr&d(Nb#HJTL z*1$vdVYG#Qu+=SbK}AG=gg6Az->U>cAgX1minwKj=pB)1kNCqQd^Ikpi1^wF(MqbT zX}dey1&4!%V0PFT(5{s8y&#+yaxVwreD1V!!Fad%YTLtONdnFf!ViNPH;RCOKPtxR+!;g5{U_L$f{F}Y*rcw%x{l@lu$ z)${wmax2&V_ZRkiVUrZ|$I*Ex=8Iy*{L@G=FN+lO-H~FRU$J}87b)hJSM46WPwMho zY1@aTm|tl^aRiG+yhFq}+T?CgKO+7L5gWFP_>72Gig>f0zOPINri-8Q z#s8wHehCFBBh`HQ-bgi{F%+rh zZ%3+mXLK8iZcoAsc1kthDAio*lxlweV}q#X>fT2;O_OSF`i(07g{r$&6|dFP4^;8c zOf~EzYwbUX`bqJZirD;`GCe8cbt3la>4(a6aE5i!6zW$*{VVa`E@I0Y%JjI184t`BDU^Srk~-S3A#=Xn*t2X*{&T!;+?3`J%volX z&L*?$(V**VxB^>+0jGrXoj(vDFe>dGTIVe)@a<+j<41_CA|gzCYLD1DnpK53!p7=D z^AnmM47g4gl&NT{ENTT$C8!3iW)quf0l$4eU{Y0itMj(a&UhoZ#C*zh!%wYSQq zD#dJT71RT9J<}qiuCDn0L2Du1EeHPa%ZKA(nW>BnK?VOx?QNxueM-4M8bSDRN^7Oq zd+Cn%hNY!1Go)lFz*7N0mE+Vwh$FeYaIS`Ux`8UD#gF=M97PR6wUk0qRsq>PB?U-W zQpR7M@yTU1sR27QD;i~=*-RSfJH{Xgr-#jf?+u7tjyq%Y77}m42esO0;k4+f8h8hb zZl3c8h4)OnTEv+XJ<}vVoT(-=`2ti{F$B#avQtm6eDms3AOOh1+;CzMOe_M{$iyO; zumls9V8Rk$^$$Gz<<1BYRo)dLp}h5+M3Z0ive`h)%BP@i33U=VeZx7a*E$mc3t)=fg7G%k=aM zv45_o6{2PI^pCQiFEj#(DyM$-$$c`A)x$4-V+q#x;IdErXva`x=QCelIZc-EgTh7K z0=s_YO5viWl`nvcyuF`n6PDP9ZTFW6!URtU7oGcraM4p8!bN4-{qG4E4GR~2XgCBH zy*SUgSH;*R#x4gg$_W>J&$%y)Tow7BRPMlSLt^7<#nmH6TYmW7!-iGMMJSfxaKThWAQ+{ zQqC6tkoeE(>4&QMt74aC2^dW|>vJN%D7bQ&3V5dqn0!#c=!YVHSL~v4{jqGqYN4G4 zRT2M0#Ltq@-!ntNXp2gHu}Rd2l>HhdZGKfrdj)}Bp*MbYoeI4{N#C3#>Oqad^UKx1 z2bJ_=8UznuG#niK&BK3xRiikIl>R`wSbLEX|Jep%qrX%7zZEumiKptlmmk+GY&2uP zrasua^?D{RcmQxz^>+T?kJPR;LPsBx2=ql@=zbBN6=7*a*eOC;86Ux)p?$+5?2#C( zkWuWL{1{*p!0r1IlL+Kj)sX~u&v5=h;eAk8oAY->(7$>F`Zhe*EMV4ZVK#FF>LEA+ zN=z?K0ji^?BS72-h^y|%m56|wC5QnzNnyvH22x6UnAt$$U{YOWjuUp1xhHr?hWizd zGlX8BfTZ|JzC<#C>Lct%L-oqPg#;u$0V8}zh-Kf$=E%(B`n zY<(n-C+V;z-N*H?lpZN-fF7_!TZkvYIEN)53DCEpo=JL5GSmp@BN2f_M^eC30`v{t&(LJV1EX=97p3sgJVvEo z2K48ME;M>Dn$H;KGt7Q8E>q!|(SHMr+I&KrOI1fvo8M1uK0N!bSB78sSPPb<{DDXI z@B5!=K+7m#3~-tAO97XhfXk%s2%-;Pa0EO?)W0oQ@|=K6!`(t4KNdKuVPt^ILQg3U z%NpK_spTm_%05ULbGcI4hLr7siW0n*Am-qEV&5h94rQ9NLpJ)0GHOE3!E)Khd&GW< zEPi7_8u`#kLM91>Cc!@|!9yzZQvxoV#7?j@?2_0*z-fXf&}P09mG`4we9 zc~CVyKU2@+pleM06gpDLbMC_;>U&RDo5#c1B<&z+^`p-HSC#2srIsXs8}3rL-fCwd z`kXou<8D~jh;`kP!y1%-6gWxHH@wyG{P(`3B7Z(vycmPijXPikFNpKzi2^PO5ND|W z9*E*smTRgKAP#W3TfpTe0hdug96<39?oQCJSx9g=(*7*y#{Wr+s3Sle?6O@3d_$785wDf2EzA>(BpXl!DfXFq=(xgn9m$2eh(#%RmTKYDErJ7y{=J6 zf`=9)d03#J=!Bv`J+tgHVCBHux7*N+wa<3a6?8ZBI*DqxXlN^vGDDGZ#GS_4(E$r4 zACS1wKEt!-dl=wV_qI#=VvhxO9B#*@j?Nf(TG*T{AX8;@cB@A_5#+HVr;fzno!n&uuUJKr%!$ueZ1l$xyp!)WgkMjM(w1-~`HZqEw9% z+$ltMNQ4&+k@=JMi1MZ=>x{xl8Zg>Vu4$ik#q+`g4^wBn0pPI#AOrpwevSXh2El`~ zmElF7|^`AavA;dJQZ-Q9$#%$iU*bUW5QW?sDN*(eUFQFo4Cma0{NR> z5kIZ$?@{)HwyhBFC6N6Zv45iMKLe&!{ayE6DPOa0R{@}QpAy}mGAAYTt|@<(c7Oo&Rk;%5xB@fn5LF|S`63} zq9SE5#uqU6jJj;kXdGXlo*(6|_XUpNB4VR_feFFVz)lF(cuwXKqGQVmnD=)u)|AE4C8N_iw7Y4E04>5>-w+!NV zunUX0xFU;K>6Aqr1Gr9Tqx!Rn!Q`W?IP2_P8FyfpUm-OpVrvb_ULBX*(vN2#u-XH=p z8SK*wO{8tGNarLDz4(W=9kMtvNgEPXVlh+BUPNajwi~>RjvEN)Xoo+JvNB4$V@ka8 z7}~w{6g$cw2yN#AxD&*+=yDxpJEQIIR{_!a3KD6MbdJ3(tPbnQh1C3jx|O^Q6}R

YLAeXZ1pH%O7+~qD)!HLU8?7U zTC3;o)lw>-p=EXA8&W;rmFj7EOsZ#*{M9?8dNxb-%s)ig!-YRt(6XT0yyN?|T0g^L z_YcU)^^bX;1z-6k@3{_Y-PQ9PpkCq=0m72f8SK; z!`QMrygo)biZDrk3xNTAp%%;>+GWE7QkLlCnF&jz`=r4Xig!{U;VlE#IX!oF}6B zXs^taww-73^arGZA6LUxNiBa8p#*)(@h{)H z`7CrZ!T0zu1L(r1YzTJx!Bao57`zQ(@2qY~9IwgFtCC0Ww?^lk`L;x>j#gAPo_HaR zoXg^8*1#hswo}(2JQ4{0#Q&ER8Cu@V<@pYqJSpa^4rGcu;%DLYZCrh-m6JS ztPOCBwrk71*e3QhHb;__AXW~{(G507Pt4OCZK!IFPzcOXO;a?v;blMEedzIxt;|t% z@jv`Z=k%&W&wk-d${ejXG*7mhL4y>i#-1D@J_#-6ju9V(wYG7`^SA;O2~%zRZ+rnl zob=TvFWtBSiKsV zJF09=apg-32M+w`Qky^o5?P2ozCi&zM{kJ%;EftY5*J7>Ylr=B6 z0=A<+4sQcxqrbOti$B6x`=DV1v>9vHuUX%@ny=L@-mq?s(!N#S*i&8l8}A!?$@l(X zU;nVB8u@G_UxT^+*Uo+PF0QX~-94Ir!|Bf5u)?|bo#EV{&Ufz5IFx?ln|xXDe{t~{ z!k!N2ZW?gzX6Wnx!nutvQN|XP(Kj;;UApeyEYHs6`QWQRGSqoRihQ6bg1W;cBY<4my^m) zN9myDdGZJCmE@d=X$NsoPXmg?4PbO>6f~uYU@e{u$pr&tJd{vnAN&!#$B!c&Daw4YWF_zk;v7q9M*?S;e61%is>MkhAY_zPZ%TeUi z(95Mb2p5--)zbjYI6}Y^fk)8qnh^B=7=peC;fRFXE97#73Od4|i?{=~f#_C>Zbj?_ z;#~?GLsF&?S(4-wvPaZ$DF!65EQ1oVj`(3e+Y4wtf3ORGF_G?LSOli+(pZ5+yhR+; zLO`ei35k5qHoe)dN}$H_eTPrTYRzBZ!hWJT<9($PJ(^l*3WI38rBeABvsK6E+gHb-DyK3KUuVm;f3l_lWv*l zCT+^EL2egBN|>9}E;s2FZc?XS5)<5x-ayTl7+1f`bY`Adnb(f)5<61!8Agk$8O$zR zKff!l$#f|yLaV_liItbPm?`PSGba^k6HhPDJ4N)4pDJixof-=ZFOxZeHz<`x&3vB3 zsRuL;ecz9^Lw{wZ{$gcCV^Wb7C90Q|3hatnWUVyi$f?o{y3Z?RGzdqX-{!w!AO;u+ zzmOrS;Ab_s)O()Esp&~R*vi15ToEpID|p6e=VY{tGTKF%>U?CX-^Q0!5Er}UxbZ$< z)|ti3^UDgRg=P@@A(#zJELu#+)=ZoTk=03(s1PQ|EV5ZQ)nRXhGPAL{GeTN6+p6gz z1*b{}H8nP+?GeGsFbgiIK?-}9(ah)o!r`TCMfkpE8rSnC5F?ThW3K zBw|7K%i#0_H(?c3tI5=$SQ!mm3Xy`9R|{hV0V^I;V_8dLRKsFUX^?YKt}f;3M@Zv^ z-c`p-iKivS_?TiKTgI}{2uppL*W!HimNt1oLnLW!(PdHE1sru$5@4oFXz zvP^6xTXN3EDxLI=31brSfQKqPjXk)HXf}GTO>ZoAv0W=@Y9pUju8f4Es9XhjUI92o zra`qKhQl@?bHyr%l@qI|T&7&|grEF^^|W2(@p`3Z%mi2*%@`6!p13ABX=r|-OR6MW zLd>+@PfDNk2YLO$w>`_a{{dco(~F~!3?`rkVNT~w&=ev#0$xsIff}4ifD1b-VNn8D z11+aOk&7nlW_TqbAnXxVNwKPNL1UD{uVTuLg(oTCi9@7oms=h-q%RH|?YbyzO6yt{ zHrsV!*pk+DLD*WmmWFNV`s@5~Qu=6DeL9t)vQ)O}P`!PvmxjLw^=Ik7U9>B!i#FOt zd$YP|d+nl6+4_sVXODK(r&Ad!OJ%DL`kl4@BN`DB9JJd&gak9-2#{cD6ao}72JA@* zaw~8f!F)2CBVbQJ0eB~$lbamHrEGhQL3&y648+m57zGLwl2^K&TMQfJ?^BD+ciaMi zX@O?ZR+)-+nzCCFmNdw1Km=9=~WqO-m1;lSS4U4b~qV1i-NR4p6UDndw6yi zT_#WwW-J6EKfa2GVqGy4YRFBP-_Kj%q$sqV62TB1Gih~6FaX19U^{5S1eXLQS>bGC z)ooyvzz(<(zF-o}KwFSY_)U6}Kz!PoTA<;6d%rRmjx^}5P>w(dn@ji?ur!N)dtTL; zOF&nqgq6XxOB+7PXoLjP(Wd}*zP88LJa94i2nC*8iSq$uGXQlOpiP?=Rs*<%u!lJ* zT`8Ons3u2z=dZur0qazQ%PZ!VkERdjqmZT~5MMzE49`!vHN)^qk>k=71w(B#D9WHA z8JJZRKQAHD#1`#RvWaf+h)1v$uq;(j5Bj?(hylzClqqV+Xy+CC@iTdQ&ao2TebkjG zf6CSu&TYS*3`m=c(XYvgxw9jmj^08u++X7!8?CDtL7S71PjbSuRcWrZvCMal*CB

$YfBf8W+hb(As0s*c!2cW!0-? zUJe9_fEeFWnqSc+0V6a(g8sS$<~PbPN7_S}ADmfRrb+*p*RDb&cAPvZxp=V>f>R5s zIl*gMqIj7X^4(18?`M*LoH&~b=~Yu}wUxzGfi-`|EBBG71A;<7c54|Gm@MMAGcm>tSC30g#lU=g3rp12kOBo3N6KqGp;u5bwFShMbc*0=bLi!9VEbCHKI(F^^-@ha=HHxp zElGtU=mk1OldgX(bgbHJ0_YioZr+#ynW2#|M@+Jflm%DP3S#@EI9$&_ zli8LQ3c(W41`=d#8CuvamRno8_-!R-nH6aA66H1fWIL!4Fqz%y7Y})gbrC#kj#b=GkWTq5ByXz6v_O$Aqfg+G&%*!4vu0`qGIy*++XIm< zh^&|CM8hEkacwum#vrzB3_(gQ>x%L+McP|o1nIU`JgCD$>gKE)OJ-rRzVH)Q$DA2m zO33drEfGgI2sPT2n(a(!`fUkjHC-76B1?LbDykG%S&AN&^T=LGgF{xBsqh_2X29fh zRGwznTCN=iFUve=O-Dm}N?7gE0)-;qohqb4Y;H?3V3IOvhgfoCG27)`pi=;IENAQ$ z!x3X9%pL5=eZh(mJwQ*8g25R;0Wm64w;HF|kPS-R9ZnT6&mqr|Hflh5u;hq+bmbHX z^#*ep7T`5UU4VYk0tbp4N77a-0ICMJWQrmkE41;!}? zm(&%9C(!JYcC|=MYy?%r5E7onJ~NCutdv;s(qLaFtyxmHtR< zs8-S>U4xSiL+e{S#?;%cke}9^c-G2zXc-+v?dhCwt#~%e*4+p%@mPdd?Fw~ z(r2~06}|OK5{zoQ8iNWWl#8&N!Z)$kW_SfF8fvQjcH2YkiXTa6)hXmo7Q+K(LA7el z@EWw2l_;}Z+7VamvZ1MdR-MeQYSbyqGIJ_E_N-shK}5V5_PNg?-K_s*==OGW<*cxw zbec3SDOluucN+VNz2bci1GU;_;7MB_dMsyIyqN;&JdmRFI?E4PHn3YTz?jZ!2>K(_ zXyQI#xS>ly!iF5t_pBgeY~-$R|Mq|vYa`9R%t>k9hiFJI3{Ooj2v1AT4^L0e3(rW; zwM);UiI++rAD)~(A?!$>c$CmuU+agC!uf5%xZhDb{>?!s+L6_GWP>o~_>97eWQGWY>i1~j2VqYF1 literal 0 HcmV?d00001 diff --git a/public/assets/javascript/app-public.js b/public/assets/javascript/app-public.js index a6b12a06..83ccd158 100644 --- a/public/assets/javascript/app-public.js +++ b/public/assets/javascript/app-public.js @@ -28,8 +28,7 @@ $(function() { } toggleSubmitDisabled($submitButton); - showMessage('Whoops!, it looks like the server returned an error.\n\ - Please try again, or contact the webmaster if the problem persists.'); + showMessage(lang("whoops")); }, success: function(data, statusText, xhr, $form) { var $submitButton = $form.find('input[type=submit]'); @@ -86,17 +85,17 @@ $(function() { if (!Stripe.validateCardNumber($cardNumber.val())) { - showFormError($cardNumber, 'The credit card number appears to be invalid.'); + showFormError($cardNumber, lang("credit_card_error")); noErrors = false; } if (!Stripe.validateCVC($cvcNumber.val())) { - showFormError($cvcNumber, 'The CVC number appears to be invalid.'); + showFormError($cardNumber, lang("cvc_error")); noErrors = false; } if (!Stripe.validateExpiry($expiryMonth.val(), $expiryYear.val())) { - showFormError($expiryMonth, 'The expiration date appears to be invalid.'); + showFormError($cardNumber, lang("expiry_error")); showFormError($expiryYear, ''); noErrors = false; } @@ -113,7 +112,10 @@ $(function() { if (response.error) { clearFormErrors($('.payment-form')); - showFormError($('*[data-stripe=' + response.error.param + ']', $('.payment-form')), response.error.message); + if(response.error.param.length>0) + showFormError($('*[data-stripe=' + response.error.param + ']', $('.payment-form')), response.error.message); + else + showMessage(response.error.message); toggleSubmitDisabled($submitButton); } else { var token = response.id; @@ -123,7 +125,7 @@ $(function() { }); } else { - showMessage('Please check your card details and try again.'); + showMessage(lang("card_validation_error")); toggleSubmitDisabled($submitButton); } @@ -221,7 +223,7 @@ function toggleSubmitDisabled($submitButton) { $submitButton.data('original-text', $submitButton.val()) .attr('disabled', true) .addClass('disabled') - .val('Just a second...'); + .val(lang("processing")); } /** @@ -284,18 +286,18 @@ function setCountdown($element, seconds) { function updateTimer() { msLeft = endTime - (+new Date); if (msLeft < 1000) { - alert("You have run out of time! You will have to restart the order process."); + alert(lang("time_run_out")); location.reload(); } else { if (msLeft < 120000 && !twoMinWarningShown) { - showMessage("You only have 2 minutes left to complete this order!"); + showMessage(lang("just_2_minutes")); twoMinWarningShown = true; } time = new Date(msLeft); mins = time.getUTCMinutes(); - $element.html('' + mins + ' minutes and ' + twoDigits(time.getUTCSeconds()) + ' seconds'); + $element.html('' + mins + ':' + twoDigits(time.getUTCSeconds()) + ''); setTimeout(updateTimer, time.getUTCMilliseconds() + 500); } } diff --git a/public/assets/javascript/app.js b/public/assets/javascript/app.js index 98941a9e..79b6db79 100644 --- a/public/assets/javascript/app.js +++ b/public/assets/javascript/app.js @@ -142,6 +142,7 @@ $(function () { $button = $(this); $('.modal').remove(); + $('.modal-backdrop').remove(); $('html').addClass('working'); $.ajax({ @@ -172,7 +173,7 @@ $(function () { } }).done().fail(function (data) { $('html').removeClass('working'); - showMessage('Whoops!, something has gone wrong.

' + data.status + ' ' + data.statusText); + showMessage(lang("whoops_and_error", {"code": data.status, "error": data.statusText})); }); e.preventDefault(); @@ -455,7 +456,7 @@ function removeQuestionOption(removeBtn) if (tbody.find('tr').length > 1) { removeBtn.parents('tr').remove(); } else { - alert('You must have at least one option.'); + alert(lang("at_least_one_option")); } } diff --git a/public/assets/javascript/backend.js b/public/assets/javascript/backend.js index a2d4ae42..68a81bdf 100644 --- a/public/assets/javascript/backend.js +++ b/public/assets/javascript/backend.js @@ -9122,6 +9122,7 @@ $.cf = { $button = $(this); $('.modal').remove(); + $('.modal-backdrop').remove(); $('html').addClass('working'); $.ajax({ @@ -9152,7 +9153,7 @@ $.cf = { } }).done().fail(function (data) { $('html').removeClass('working'); - showMessage('Whoops!, something has gone wrong.

' + data.status + ' ' + data.statusText); + showMessage(lang("whoops_and_error", {"code": data.status, "error": data.statusText})); }); e.preventDefault(); @@ -9435,7 +9436,7 @@ function removeQuestionOption(removeBtn) if (tbody.find('tr').length > 1) { removeBtn.parents('tr').remove(); } else { - alert('You must have at least one option.'); + alert(lang("at_least_one_option")); } } diff --git a/public/assets/javascript/check_in.js b/public/assets/javascript/check_in.js index 18a4af6f..cdd50b8e 100644 --- a/public/assets/javascript/check_in.js +++ b/public/assets/javascript/check_in.js @@ -31,6 +31,7 @@ var checkinApp = new Vue({ this.$http.post(Attendize.checkInSearchRoute, {q: this.searchTerm}).then(function (res) { this.attendees = res.data; this.searchResultsCount = (Object.keys(res.data).length); + console.log('Succesfully fetched attendees') }, function () { console.log('Failed to fetch attendees') }); @@ -81,7 +82,7 @@ var checkinApp = new Vue({ this.scanResultType = res.data.status; }, function (response) { - this.scanResultMessage = 'Something went wrong! Refresh the page and try again'; + this.scanResultMessage = lang("whoops2"); }); }, @@ -113,16 +114,18 @@ var checkinApp = new Vue({ navigator.getUserMedia({video: true, audio: false}, function (stream) { that.stream = stream; - - if (window.webkitURL) { - that.videoElement.src = window.webkitURL.createObjectURL(stream); - } else { + console.log(stream); + if (that.videoElement.mozSrcObject !== undefined) { // works on firefox now that.videoElement.mozSrcObject = stream; - } + } else if(window.URL) { // and chrome, but must use https + var objectURL = window.URL.createObjectURL(stream); + that.videoElement.src = objectURL || stream; + }; that.videoElement.play(); }, function () { /* error*/ + alert(lang("checkin_init_error")); }); this.isInit = true; diff --git a/public/assets/javascript/frontend.js b/public/assets/javascript/frontend.js index 71d665f1..3b24fdb2 100644 --- a/public/assets/javascript/frontend.js +++ b/public/assets/javascript/frontend.js @@ -4596,8 +4596,7 @@ function log() { } toggleSubmitDisabled($submitButton); - showMessage('Whoops!, it looks like the server returned an error.\n\ - Please try again, or contact the webmaster if the problem persists.'); + showMessage(lang("whoops")); }, success: function(data, statusText, xhr, $form) { var $submitButton = $form.find('input[type=submit]'); @@ -4654,17 +4653,17 @@ function log() { if (!Stripe.validateCardNumber($cardNumber.val())) { - showFormError($cardNumber, 'The credit card number appears to be invalid.'); + showFormError($cardNumber, lang("credit_card_error")); noErrors = false; } if (!Stripe.validateCVC($cvcNumber.val())) { - showFormError($cvcNumber, 'The CVC number appears to be invalid.'); + showFormError($cardNumber, lang("cvc_error")); noErrors = false; } if (!Stripe.validateExpiry($expiryMonth.val(), $expiryYear.val())) { - showFormError($expiryMonth, 'The expiration date appears to be invalid.'); + showFormError($cardNumber, lang("expiry_error")); showFormError($expiryYear, ''); noErrors = false; } @@ -4681,7 +4680,10 @@ function log() { if (response.error) { clearFormErrors($('.payment-form')); - showFormError($('*[data-stripe=' + response.error.param + ']', $('.payment-form')), response.error.message); + if(response.error.param.length>0) + showFormError($('*[data-stripe=' + response.error.param + ']', $('.payment-form')), response.error.message); + else + showMessage(response.error.message); toggleSubmitDisabled($submitButton); } else { var token = response.id; @@ -4691,7 +4693,7 @@ function log() { }); } else { - showMessage('Please check your card details and try again.'); + showMessage(lang("card_validation_error")); toggleSubmitDisabled($submitButton); } @@ -4789,7 +4791,7 @@ function toggleSubmitDisabled($submitButton) { $submitButton.data('original-text', $submitButton.val()) .attr('disabled', true) .addClass('disabled') - .val('Just a second...'); + .val(lang("processing")); } /** @@ -4852,18 +4854,18 @@ function setCountdown($element, seconds) { function updateTimer() { msLeft = endTime - (+new Date); if (msLeft < 1000) { - alert("You have run out of time! You will have to restart the order process."); + alert(lang("time_run_out")); location.reload(); } else { if (msLeft < 120000 && !twoMinWarningShown) { - showMessage("You only have 2 minutes left to complete this order!"); + showMessage(lang("just_2_minutes")); twoMinWarningShown = true; } time = new Date(msLeft); mins = time.getUTCMinutes(); - $element.html('' + mins + ' minutes and ' + twoDigits(time.getUTCSeconds()) + ' seconds'); + $element.html('' + mins + ':' + twoDigits(time.getUTCSeconds()) + ''); setTimeout(updateTimer, time.getUTCMilliseconds() + 500); } } diff --git a/public/assets/javascript/frontend.min.js b/public/assets/javascript/frontend.min.js index 16dd0da2..ec9abc08 100644 --- a/public/assets/javascript/frontend.min.js +++ b/public/assets/javascript/frontend.min.js @@ -1,4 +1,4 @@ -/*! Attendize - v1.0.0 - 2015-03-16 */function toggleSubmitDisabled($submitButton){return $submitButton.hasClass("disabled")?void $submitButton.attr("disabled",!1).removeClass("disabled").val($submitButton.data("original-text")):void $submitButton.data("original-text",$submitButton.val()).attr("disabled",!0).addClass("disabled").val("Just a second...")}function clearFormErrors($form){$($form).find(".error.help-block").remove(),$($form).find(":input").parent().removeClass("has-error")}function showFormError($formElement,message){$formElement.after('

'+message+"
").parent().addClass("has-error")}function showMessage(message){humane.log(message,{timeout:2500})}function hideMessage(){humane.remove()}function setCountdown($element,seconds){function twoDigits(n){return 9>=n?"0"+n:n}function updateTimer(){msLeft=endTime-+new Date,1e3>msLeft?(alert("You've run out of time! You'll have to restart the order process."),location.reload()):(12e4>msLeft&&!twoMinWarningShown&&(showMessage("You only have 2 minutes left to complete this order!"),twoMinWarningShown=!0),time=new Date(msLeft),mins=time.getUTCMinutes(),$element.html(""+mins+" minutes and "+twoDigits(time.getUTCSeconds())+" seconds"),setTimeout(updateTimer,time.getUTCMilliseconds()+500))}var endTime,mins,msLeft,time,twoMinWarningShown=!1;endTime=+new Date+1e3*seconds+500,updateTimer()}if(function(window,undefined){function isArraylike(obj){var length=obj.length,type=jQuery.type(obj);return jQuery.isWindow(obj)?!1:1===obj.nodeType&&length?!0:"array"===type||"function"!==type&&(0===length||"number"==typeof length&&length>0&&length-1 in obj)}function createOptions(options){var object=optionsCache[options]={};return jQuery.each(options.match(core_rnotwhite)||[],function(_,flag){object[flag]=!0}),object}function internalData(elem,name,data,pvt){if(jQuery.acceptData(elem)){var thisCache,ret,internalKey=jQuery.expando,getByName="string"==typeof name,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[internalKey]:elem[internalKey]&&internalKey;if(id&&cache[id]&&(pvt||cache[id].data)||!getByName||data!==undefined)return id||(isNode?elem[internalKey]=id=core_deletedIds.pop()||jQuery.guid++:id=internalKey),cache[id]||(cache[id]={},isNode||(cache[id].toJSON=jQuery.noop)),("object"==typeof name||"function"==typeof name)&&(pvt?cache[id]=jQuery.extend(cache[id],name):cache[id].data=jQuery.extend(cache[id].data,name)),thisCache=cache[id],pvt||(thisCache.data||(thisCache.data={}),thisCache=thisCache.data),data!==undefined&&(thisCache[jQuery.camelCase(name)]=data),getByName?(ret=thisCache[name],null==ret&&(ret=thisCache[jQuery.camelCase(name)])):ret=thisCache,ret}}function internalRemoveData(elem,name,pvt){if(jQuery.acceptData(elem)){var i,l,thisCache,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(cache[id]){if(name&&(thisCache=pvt?cache[id]:cache[id].data)){jQuery.isArray(name)?name=name.concat(jQuery.map(name,jQuery.camelCase)):name in thisCache?name=[name]:(name=jQuery.camelCase(name),name=name in thisCache?[name]:name.split(" "));for(i=0,l=name.length;l>i;i++)delete thisCache[name[i]];if(!(pvt?isEmptyDataObject:jQuery.isEmptyObject)(thisCache))return}(pvt||(delete cache[id].data,isEmptyDataObject(cache[id])))&&(isNode?jQuery.cleanData([elem],!0):jQuery.support.deleteExpando||cache!=cache.window?delete cache[id]:cache[id]=null)}}}function dataAttr(elem,key,data){if(data===undefined&&1===elem.nodeType){var name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();if(data=elem.getAttribute(name),"string"==typeof data){try{data="true"===data?!0:"false"===data?!1:"null"===data?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}jQuery.data(elem,key,data)}else data=undefined}return data}function isEmptyDataObject(obj){var name;for(name in obj)if(("data"!==name||!jQuery.isEmptyObject(obj[name]))&&"toJSON"!==name)return!1;return!0}function returnTrue(){return!0}function returnFalse(){return!1}function sibling(cur,dir){do cur=cur[dir];while(cur&&1!==cur.nodeType);return cur}function winnow(elements,qualifier,keep){if(qualifier=qualifier||0,jQuery.isFunction(qualifier))return jQuery.grep(elements,function(elem,i){var retVal=!!qualifier.call(elem,i,elem);return retVal===keep});if(qualifier.nodeType)return jQuery.grep(elements,function(elem){return elem===qualifier===keep});if("string"==typeof qualifier){var filtered=jQuery.grep(elements,function(elem){return 1===elem.nodeType});if(isSimple.test(qualifier))return jQuery.filter(qualifier,filtered,!keep);qualifier=jQuery.filter(qualifier,filtered)}return jQuery.grep(elements,function(elem){return jQuery.inArray(elem,qualifier)>=0===keep})}function createSafeFragment(document){var list=nodeNames.split("|"),safeFrag=document.createDocumentFragment();if(safeFrag.createElement)for(;list.length;)safeFrag.createElement(list.pop());return safeFrag}function findOrAppend(elem,tag){return elem.getElementsByTagName(tag)[0]||elem.appendChild(elem.ownerDocument.createElement(tag))}function disableScript(elem){var attr=elem.getAttributeNode("type");return elem.type=(attr&&attr.specified)+"/"+elem.type,elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);return match?elem.type=match[1]:elem.removeAttribute("type"),elem}function setGlobalEval(elems,refElements){for(var elem,i=0;null!=(elem=elems[i]);i++)jQuery._data(elem,"globalEval",!refElements||jQuery._data(refElements[i],"globalEval"))}function cloneCopyEvent(src,dest){if(1===dest.nodeType&&jQuery.hasData(src)){var type,i,l,oldData=jQuery._data(src),curData=jQuery._data(dest,oldData),events=oldData.events;if(events){delete curData.handle,curData.events={};for(type in events)for(i=0,l=events[type].length;l>i;i++)jQuery.event.add(dest,type,events[type][i])}curData.data&&(curData.data=jQuery.extend({},curData.data))}}function fixCloneNodeIssues(src,dest){var nodeName,e,data;if(1===dest.nodeType){if(nodeName=dest.nodeName.toLowerCase(),!jQuery.support.noCloneEvent&&dest[jQuery.expando]){data=jQuery._data(dest);for(e in data.events)jQuery.removeEvent(dest,e,data.handle);dest.removeAttribute(jQuery.expando)}"script"===nodeName&&dest.text!==src.text?(disableScript(dest).text=src.text,restoreScript(dest)):"object"===nodeName?(dest.parentNode&&(dest.outerHTML=src.outerHTML),jQuery.support.html5Clone&&src.innerHTML&&!jQuery.trim(dest.innerHTML)&&(dest.innerHTML=src.innerHTML)):"input"===nodeName&&manipulation_rcheckableType.test(src.type)?(dest.defaultChecked=dest.checked=src.checked,dest.value!==src.value&&(dest.value=src.value)):"option"===nodeName?dest.defaultSelected=dest.selected=src.defaultSelected:("input"===nodeName||"textarea"===nodeName)&&(dest.defaultValue=src.defaultValue)}}function getAll(context,tag){var elems,elem,i=0,found=typeof context.getElementsByTagName!==core_strundefined?context.getElementsByTagName(tag||"*"):typeof context.querySelectorAll!==core_strundefined?context.querySelectorAll(tag||"*"):undefined;if(!found)for(found=[],elems=context.childNodes||context;null!=(elem=elems[i]);i++)!tag||jQuery.nodeName(elem,tag)?found.push(elem):jQuery.merge(found,getAll(elem,tag));return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],found):found}function fixDefaultChecked(elem){manipulation_rcheckableType.test(elem.type)&&(elem.defaultChecked=elem.checked)}function vendorPropName(style,name){if(name in style)return name;for(var capName=name.charAt(0).toUpperCase()+name.slice(1),origName=name,i=cssPrefixes.length;i--;)if(name=cssPrefixes[i]+capName,name in style)return name;return origName}function isHidden(elem,el){return elem=el||elem,"none"===jQuery.css(elem,"display")||!jQuery.contains(elem.ownerDocument,elem)}function showHide(elements,show){for(var display,elem,hidden,values=[],index=0,length=elements.length;length>index;index++)elem=elements[index],elem.style&&(values[index]=jQuery._data(elem,"olddisplay"),display=elem.style.display,show?(values[index]||"none"!==display||(elem.style.display=""),""===elem.style.display&&isHidden(elem)&&(values[index]=jQuery._data(elem,"olddisplay",css_defaultDisplay(elem.nodeName)))):values[index]||(hidden=isHidden(elem),(display&&"none"!==display||!hidden)&&jQuery._data(elem,"olddisplay",hidden?display:jQuery.css(elem,"display"))));for(index=0;length>index;index++)elem=elements[index],elem.style&&(show&&"none"!==elem.style.display&&""!==elem.style.display||(elem.style.display=show?values[index]||"":"none"));return elements}function setPositiveNumber(elem,value,subtract){var matches=rnumsplit.exec(value);return matches?Math.max(0,matches[1]-(subtract||0))+(matches[2]||"px"):value}function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){for(var i=extra===(isBorderBox?"border":"content")?4:"width"===name?1:0,val=0;4>i;i+=2)"margin"===extra&&(val+=jQuery.css(elem,extra+cssExpand[i],!0,styles)),isBorderBox?("content"===extra&&(val-=jQuery.css(elem,"padding"+cssExpand[i],!0,styles)),"margin"!==extra&&(val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles))):(val+=jQuery.css(elem,"padding"+cssExpand[i],!0,styles),"padding"!==extra&&(val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles)));return val}function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=!0,val="width"===name?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox=jQuery.support.boxSizing&&"border-box"===jQuery.css(elem,"boxSizing",!1,styles);if(0>=val||null==val){if(val=curCSS(elem,name,styles),(0>val||null==val)&&(val=elem.style[name]),rnumnonpx.test(val))return val;valueIsBorderBox=isBorderBox&&(jQuery.support.boxSizingReliable||val===elem.style[name]),val=parseFloat(val)||0}return val+augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles)+"px"}function css_defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];return display||(display=actualDisplay(nodeName,doc),"none"!==display&&display||(iframe=(iframe||jQuery("