Merge pull request #471 from publicarray/improve-upstream

Improve upstream
This commit is contained in:
Jeremy Quinton 2018-10-16 20:49:52 +02:00 committed by GitHub
commit 31820bcf68
30 changed files with 167 additions and 311 deletions

View File

@ -19,7 +19,6 @@ class EventCheckInController extends MyBaseController
*/
public function showCheckIn($event_id)
{
$event = Event::scope()->findOrFail($event_id);
$data = [
@ -59,8 +58,11 @@ class EventCheckInController extends MyBaseController
$query->where('attendees.event_id', '=', $event_id);
})->where(function ($query) use ($searchQuery) {
$query->orWhere('attendees.first_name', 'like', $searchQuery . '%')
->orWhere(DB::raw("CONCAT_WS(' ', attendees.first_name, attendees.last_name)"), 'like',
$searchQuery . '%')
->orWhere(
DB::raw("CONCAT_WS(' ', attendees.first_name, attendees.last_name)"),
'like',
$searchQuery . '%'
)
//->orWhere('attendees.email', 'like', $searchQuery . '%')
->orWhere('orders.order_reference', 'like', $searchQuery . '%')
->orWhere('attendees.last_name', 'like', $searchQuery . '%');
@ -163,21 +165,10 @@ class EventCheckInController extends MyBaseController
'has_arrived' => false
])->count();
if ($relatedAttendesCount >= 1) {
$confirmOrderTicketsRoute = route('confirmCheckInOrderTickets', [$event->id, $attendee->order_id]);
/*
* @todo Incorporate this feature into the new design
*/
//$appendedText = '<br><br><form class="ajax" action="' . $confirmOrderTicketsRoute . '" method="POST">' . csrf_field() . '<button class="btn btn-primary btn-sm" type="submit"><i class="ico-ticket"></i> Check in all tickets associated to this order</button></form>';
} else {
$appendedText = '';
}
if ($attendee->has_arrived) {
return response()->json([
'status' => 'error',
'message' => trans("Controllers.attendee_already_checked_in", ["time"=> $attendee->arrival_time->format(env("DEFAULT_DATETIME_FORMAT"))]) . $appendedText
'message' => trans("Controllers.attendee_already_checked_in", ["time"=> $attendee->arrival_time->format(env("DEFAULT_DATETIME_FORMAT"))])
]);
}
@ -190,28 +181,4 @@ class EventCheckInController extends MyBaseController
'ticket' => $attendee->ticket
]);
}
/**
* Confirm tickets of same order.
*
* @param $event_id
* @param $order_id
* @return \Illuminate\Http\Response
*/
public function confirmOrderTicketsQr($event_id, $order_id)
{
$updateRowsCount = Attendee::scope()->where([
'event_id' => $event_id,
'order_id' => $order_id,
'has_arrived' => 0,
])->update([
'has_arrived' => 1,
'arrival_time' => Carbon::now(),
]);
return response()->json([
'message' => trans("Controllers.num_attendees_checked_in", ["num"=>$updateRowsCount])
]);
}
}

View File

@ -193,9 +193,9 @@ class EventCheckoutController extends Controller
$activeAccountPaymentGateway->fill(['payment_gateway_id' => config('attendize.payment_gateway_dummy')]);
$paymentGateway= $activeAccountPaymentGateway;
} else {
$activeAccountPaymentGateway = count($event->account->active_payment_gateway) ? $event->account->active_payment_gateway : false;
$paymentGateway = count($event->account->active_payment_gateway) ? $event->account->active_payment_gateway->payment_gateway : false;
}
$activeAccountPaymentGateway = $event->account->active_payment_gateway->count() ? $event->account->active_payment_gateway->firstOrFail() : false;
$paymentGateway = $event->account->active_payment_gateway->count() ? $event->account->active_payment_gateway->payment_gateway : false;
}
/*
* The 'ticket_order_{event_id}' session stores everything we need to complete the transaction.

View File

@ -1,114 +0,0 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Models\Attendee;
use App\Models\Event;
use Carbon\Carbon;
use Illuminate\Http\Request;
use JavaScript;
class EventQrcodeCheckInController extends Controller
{
/**
* Show the check-in page
*
* @param $event_id
* @return \Illuminate\View\View
*/
public function showCheckIn($event_id)
{
$event = Event::scope()->findOrFail($event_id);
JavaScript::put([
'qrcodeCheckInRoute' => route('postQRCodeCheckInAttendee', ['event_id' => $event->id])
]);
return view('ManageEvent.QrcodeCheckIn', compact('event'));
}
/**
* Check in an attendee
*
* @param $event_id
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function postCheckInAttendee($event_id, Request $request)
{
$event = Event::scope()->findOrFail($event_id);
$qrcodeToken = $request->get('qrcode_token');
$attendee = Attendee::scope()->withoutCancelled()
->join('tickets', 'tickets.id', '=', 'attendees.ticket_id')
->where(function ($query) use ($event, $qrcodeToken) {
$query->where('attendees.event_id', $event->id)
->where('attendees.private_reference_number', $qrcodeToken);
})->select([
'attendees.id',
'attendees.order_id',
'attendees.first_name',
'attendees.last_name',
'attendees.email',
'attendees.reference',
'attendees.arrival_time',
'attendees.has_arrived',
'tickets.title as ticket',
])->first();
if (is_null($attendee)) {
return response()->json(['status' => 'error', 'message' => trans("Controllers.invalid_ticket_error")]);
}
$relatedAttendesCount = Attendee::where('id', '!=', $attendee->id)
->where([
'order_id' => $attendee->order_id,
'has_arrived' => false
])->count();
$appendedText = '';
if ($relatedAttendesCount >= 1) {
$confirmOrderTicketsRoute = route('confirmCheckInOrderTickets', [$event->id, $attendee->order_id]);
$appendedText = '<br><br><form class="ajax" action="' . $confirmOrderTicketsRoute . '" method="POST">' . csrf_field() . '<button class="btn btn-primary btn-sm" type="submit"><i class="ico-ticket"></i> '.trans("Controllers.check_in_all_tickets").'</button></form>';
}
if ($attendee->has_arrived) {
return response()->json([
'status' => 'error',
'message' => trans("Controllers.attendee_already_checked_in", ["time"=>$attendee->arrival_time->format(env("DEFAULT_DATETIME_FORMAT"))]) . $appendedText
]);
}
Attendee::find($attendee->id)->update(['has_arrived' => true, 'arrival_time' => Carbon::now()]);
return response()->json([
'status' => 'success',
'message' => trans("Controllers.attendee_check_in_success", ["name"=> $attendee->first_name.' '.$attendee->last_name, "ref"=>$attendee->reference, "ticket"=>$attendee->ticket]). $appendedText
]);
}
/**
* Confirm tickets of same order.
*
* @param $event_id
* @param $order_id
* @return \Illuminate\Http\Response
*/
public function confirmOrderTickets($event_id, $order_id)
{
$updateRowsCount = Attendee::scope()->where([
'event_id' => $event_id,
'order_id' => $order_id,
'has_arrived' => false,
'arrival_time' => Carbon::now(),
])
->update(['has_arrived' => true, 'arrival_time' => Carbon::now()]);
return response()->json([
'message' => trans("Controllers.num_attendees_checked_in", ["num"=>$updateRowsCount])
]);
}
}

View File

@ -37,8 +37,8 @@ class UserController extends Controller
'email',
'unique:users,email,' . Auth::user()->id . ',id,account_id,' . Auth::user()->account_id
],
'new_password' => ['min:5', 'confirmed', 'required_with:password'],
'password' => 'passcheck',
'new_password' => ['min:8', 'confirmed', 'required_with:password'],
'first_name' => ['required'],
'last_name' => ['required'],
];

View File

@ -42,7 +42,7 @@ class UserSignupController extends Controller
$is_attendize = Utils::isAttendize();
$this->validate($request, [
'email' => 'required|email|unique:users',
'password' => 'required|min:5|confirmed',
'password' => 'required|min:8|confirmed',
'first_name' => 'required',
'terms_agreed' => $is_attendize ? 'required' : '',
]);

View File

@ -383,18 +383,6 @@ Route::group(
'uses' => 'EventTicketsController@postUpdateTicketsOrder',
]);
/*
* 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',
]);
/*
* -------
* Attendees
@ -695,27 +683,6 @@ Route::group(
]);
/*
* -------
* QRCode Check In App
* -------
Route::get('{event_id}/qrcode_check_in', [
'as' => 'showQRCodeChechIn',
'uses' => 'EventQrcodeCheckInController@showCheckIn',
]);
Route::post('{event_id}/qrcode_check_in', [
'as' => 'postQRCodeCheckInAttendee',
'uses' => 'EventQrcodeCheckInController@postCheckInAttendee',
]);
Route::match(['PUT', 'PATCH'], '{event_id}/confirm_order_tickets/{order_id}', [
'as' => 'confirmCheckInOrderTickets',
'uses' => 'EventQrcodeCheckInController@confirmOrderTickets',
]);
*/
/*
* -------
* Promote

View File

@ -44,7 +44,7 @@ class Attendee extends MyBaseModel
parent::boot();
static::creating(function ($order) {
$order->private_reference_number = str_pad(rand(0, pow(10, 9) - 1), 9, '0', STR_PAD_LEFT);
$order->private_reference_number = str_pad(random_int(0, pow(10, 9) - 1), 9, '0', STR_PAD_LEFT);
});
}

View File

@ -175,7 +175,7 @@ class Order extends MyBaseModel
parent::boot();
static::creating(function ($order) {
$order->order_reference = strtoupper(str_random(5)) . date('jn');
$order->order_reference = strtoupper(str_random(11)) . date('jn');
});
}
}

View File

@ -20,7 +20,7 @@ class Ticket extends MyBaseModel
'start_sale_date' => ['date'],
'end_sale_date' => ['date', 'after:start_sale_date'],
'quantity_available' => ['integer', 'min:0'],
];
];
/**
* The validation error messages.
*

View File

@ -20,7 +20,7 @@ class Registrar implements RegistrarContract
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
'password' => 'required|confirmed|min:8',
]);
}

12
artisan
View File

@ -1,6 +1,8 @@
#!/usr/bin/env php
<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
@ -13,7 +15,7 @@
|
*/
require __DIR__.'/bootstrap/autoload.php';
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
@ -28,11 +30,11 @@ $app = require_once __DIR__.'/bootstrap/app.php';
|
*/
$kernel = $app->make('Illuminate\Contracts\Console\Kernel');
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$status = $kernel->handle(
$input = new Symfony\Component\Console\Input\ArgvInput,
new Symfony\Component\Console\Output\ConsoleOutput
$input = new Symfony\Component\Console\Input\ArgvInput,
new Symfony\Component\Console\Output\ConsoleOutput
);
/*
@ -40,7 +42,7 @@ $status = $kernel->handle(
| Shutdown The Application
|--------------------------------------------------------------------------
|
| Once Artisan has finished running. We will fire off the shutdown events
| Once Artisan has finished running, we will fire off the shutdown events
| so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request.
|

View File

@ -1,44 +1,49 @@
{
"name": "attendize/attendize",
"description": "A free and open-source event management and ticket selling application.",
"keywords": ["event management", "ticket selling", "tickets", "events"],
"keywords": [
"event management",
"ticket selling",
"tickets",
"events"
],
"license": "AAL",
"type": "project",
"homepage" : "https://www.attendize.com",
"homepage": "https://www.attendize.com",
"require": {
"barryvdh/laravel-ide-helper": "~2.4",
"doctrine/dbal": "~2.3",
"dompdf/dompdf": "~0.8",
"filp/whoops": "~2.2",
"guzzlehttp/guzzle": "6",
"guzzlehttp/psr7": "1.4",
"illuminate/support": "~5.6",
"intervention/image": "~2.4",
"laracasts/utilities": "~2.1",
"barryvdh/laravel-ide-helper": "~2.4",
"doctrine/dbal": "~2.8",
"dompdf/dompdf": "~0.8",
"filp/whoops": "~2.2",
"guzzlehttp/guzzle": "~6.3",
"guzzlehttp/psr7": "~1.4",
"illuminate/support": "~5.6",
"intervention/image": "~2.4",
"laracasts/utilities": "~2.1",
"laravel/framework": "~5.6",
"laravel/socialite": "~3.0",
"laravelcollective/html": "~5.6",
"league/flysystem-aws-s3-v3" : "~1.0",
"maatwebsite/excel": "~2.1",
"maxhoffmann/parsedown-laravel": "dev-master",
"mcamara/laravel-localization": "~1.2",
"mews/purifier": "~2.0",
"milon/barcode": "~5.3",
"nitmedia/wkhtml2pdf": "dev-master",
"omnipay/common": "~3",
"omnipay/dummy": "~3",
"omnipay/paypal": "~3",
"omnipay/stripe": "~3",
"php-http/curl-client": "^1.7",
"php-http/message": "^1.6",
"predis/predis": "~1.1",
"laravel/socialite": "~3.0",
"laravelcollective/html": "~5.6",
"league/flysystem-aws-s3-v3": "~1.0",
"maatwebsite/excel": "~2.1",
"maxhoffmann/parsedown-laravel": "dev-master",
"mcamara/laravel-localization": "~1.2",
"mews/purifier": "~2.0",
"milon/barcode": "~5.3",
"nitmedia/wkhtml2pdf": "dev-master",
"omnipay/common": "~3",
"omnipay/dummy": "~3",
"omnipay/paypal": "~3",
"omnipay/stripe": "~3",
"php-http/curl-client": "^1.7",
"php-http/message": "^1.6",
"predis/predis": "~1.1",
"vinelab/http": "~1.5"
},
"require-dev": {
"phpunit/phpunit": "7.3.*",
"phpspec/phpspec": "5.0.*",
"fzaninotto/faker": "1.8.*",
"symfony/dom-crawler": "~3.0",
"phpunit/phpunit": "7.3.*",
"phpspec/phpspec": "5.0.*",
"fzaninotto/faker": "1.8.*",
"symfony/dom-crawler": "~3.0",
"symfony/css-selector": "~3.0"
},
"autoload": {
@ -59,23 +64,23 @@
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan clear-compiled"
],
"post-create-project-cmd": [
"php -r \"copy('.env.example', '.env');\"",
"php artisan key:generate"
]
"post-install-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan clear-compiled"
],
"post-create-project-cmd": [
"php -r \"copy('.env.example', '.env');\"",
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"extra" : {
"laravel" : {
"dont-discover" : [
"extra": {
"laravel": {
"dont-discover": [
"potsky/laravel-localization-helpers"
]
}

View File

@ -39,7 +39,7 @@ return [
|
*/
'url' => env('APP_URL'),
'url' => env('APP_URL', 'http://localhost'),
/*
|--------------------------------------------------------------------------
@ -91,8 +91,8 @@ return [
|
*/
'key' => env('APP_KEY', 'SomeRandomString'),
'cipher' => env('APP_CIPHER', 'MCRYPT_RIJNDAEL_128'),
'key' => env('APP_KEY'),
'cipher' => env('APP_CIPHER', 'AES-256-CBC'),
/*
|--------------------------------------------------------------------------
@ -235,7 +235,6 @@ return [
'Purifier' => Mews\Purifier\Facades\Purifier::class,
'Markdown' => MaxHoffmann\Parsedown\ParsedownFacade::class,
'Omnipay' => Omnipay\Omnipay::class,
// 'Omnipay' => Omnipay\Omnipay::class,
'LaravelLocalization' => Mcamara\LaravelLocalization\Facades\LaravelLocalization::class,
],

View File

@ -29,7 +29,7 @@ return [
|
*/
'lifetime' => 120,
'lifetime' => env('SESSION_LIFETIME', 120),
'expire_on_close' => false,
@ -44,7 +44,7 @@ return [
|
*/
'encrypt' => false,
'encrypt' => env('SESSION_ENCRYPTED', false),
/*
|--------------------------------------------------------------------------
@ -70,7 +70,7 @@ return [
|
*/
'connection' => null,
'connection' => env('SESSION_CONNECTION', null),
/*
|--------------------------------------------------------------------------
@ -85,6 +85,18 @@ return [
'table' => 'sessions',
/*
|--------------------------------------------------------------------------
| Session Cache Store
|--------------------------------------------------------------------------
|
| When using the "apc" or "memcached" session drivers, you may specify a
| cache store that should be used for these sessions. This value must
| correspond with one of the application's configured cache stores.
|
*/
'store' => env('SESSION_STORE', null),
/*
|--------------------------------------------------------------------------
| Session Sweeping Lottery
@ -108,8 +120,10 @@ return [
| new session cookie is created by the framework for every driver.
|
*/
'cookie' => 'laravel_session',
'cookie' => env(
'SESSION_COOKIE',
str_slug(env('APP_NAME', 'laravel'), '_').'_session'
),
/*
|--------------------------------------------------------------------------
@ -135,7 +149,7 @@ return [
|
*/
'domain' => null,
'domain' => env('SESSION_DOMAIN', null),
/*
|--------------------------------------------------------------------------
@ -148,6 +162,31 @@ return [
|
*/
'secure' => false,
'secure' => env('SESSION_SECURE_COOKIE', false),
/*
|--------------------------------------------------------------------------
| HTTP Access Only
|--------------------------------------------------------------------------
|
| Setting this value to true will prevent JavaScript from accessing the
| value of the cookie and the cookie will only be accessible through
| the HTTP protocol. You are free to modify this option if needed.
|
*/
'http_only' => true,
/*
|--------------------------------------------------------------------------
| Same-Site Cookies
|--------------------------------------------------------------------------
|
| This option determines how your cookies behave when cross-site requests
| take place, and can be used to mitigate CSRF attacks. By default, we
| do not enable this as other CSRF protection services are in place.
|
| Supported: "lax", "strict"
|
*/
'same_site' => null,
];

View File

@ -166,6 +166,7 @@ var checkinApp = new Vue({
this.showScannerModal = false;
track = this.stream.getTracks()[0];
track.stop();
this.isInit = false;
this.fetchAttendees();
}
}

File diff suppressed because one or more lines are too long

View File

@ -265,20 +265,6 @@ footer {
}
}
#ScanVideoOutter {
min-width: 100%;
min-height: 300px;
position: relative;
background: #999;
background: url(http://dev.attendize.com/assets/images/background.png) repeat;
background-color: #2E3254;
}
#qr-file {
}
#QrCanvas{
display:none;
}
@ -318,10 +304,6 @@ video#scannerVideo {
border-radius:20px;
}
@-webkit-keyframes opacity {
0% {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
@ -412,4 +394,4 @@ video#scannerVideo {
-ms-animation-delay: 300ms;
-o-animation-delay: 300ms;
animation-delay: 300ms;
}
}

View File

@ -2,7 +2,7 @@
/*
-----------------------------------------------------
MANAGE ORGANISERS
MANAGE ORGANISERS
-----------------------------------------------------
*/
@ -56,7 +56,7 @@ MANAGE ORGANISERS
/*
-----------------------------------------------------
MANAGE EVENT
MANAGE EVENT
-----------------------------------------------------
*/
@ -69,8 +69,8 @@ MANAGE EVENT
}
}
}
}
}
}
}
@ -241,7 +241,7 @@ GLOBAL
.btn {
width: 100%;
padding-left: 0;
padding-right: 0;
padding-right: 0;
margin-bottom: 10px;
}
.pull-left, .pull-right {
@ -302,7 +302,7 @@ label.required::after {
.dtpicker-header .dtpicker-value {
padding: .8em .2em .2em .2em;
color: @primary;
color: @primary;
text-align: center;
font-size: 1.4em;
}
@ -314,7 +314,7 @@ label.required::after {
}
.dtpicker-content {
border-radius: @border-radius;
border-radius: @border-radius;
}
@ -437,3 +437,8 @@ html.working {
cursor: move;
z-index: 10;
}
// Fix the editor fullscreen mode
.editor-toolbar.fullscreen, .CodeMirror-fullscreen {
z-index: 10000 !important;
}

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
<?php
return array (
return [
'Contact' => 'Contact',
'DETAILS' => 'DETAILS',
'Facebook' => 'Facebook',
@ -36,7 +36,7 @@ return array (
'expiry_year' => 'Expiry year',
'first_name' => 'First name',
'free' => 'FREE',
'inc_fees' => '(inc. :fees Fees)',
'inc_fees' => 'Booking Fees',
'last_name' => 'Last name',
'offline_payment_instructions' => 'Offline payment instructions',
'offline_payment_methods_available' => 'Offline Payment Methods Available',
@ -75,4 +75,4 @@ return array (
'your_message' => 'Your message',
'your_name' => 'Your name',
'your' => 'Your'
);
];

View File

@ -1,6 +1,6 @@
<?php
return array (
return [
'Contact' => 'Kontakt',
'DETAILS' => 'SZCZEGÓŁY',
'Facebook' => 'Facebook',
@ -36,7 +36,7 @@ return array (
'expiry_year' => 'Rok ważności karty',
'first_name' => 'Imię',
'free' => 'GRATIS',
'inc_fees' => '(uwzgl. opłaty: :fees)',
'inc_fees' => 'Opłaty za rezerwację',
'last_name' => 'Nazwisko',
'offline_payment_instructions' => 'Instrukcje płatności offline',
'offline_payment_methods_available' => 'Płatności offline dostępne',
@ -75,4 +75,4 @@ return array (
'your_message' => 'Twoja wiadomość',
'your_name' => 'Twoje imię',
'your' => 'Twój',
);
];

View File

@ -39,6 +39,7 @@
step: 0.1,
decimals: 2,
verticalbuttons: true,
forcestepdivisibility: 'none',
postfix: '%',
buttondown_class: "btn btn-link",
buttonup_class: "btn btn-link",
@ -47,7 +48,7 @@
$("input[name='organiser_fee_fixed']").TouchSpin({
min: 0,
max: 100,
step: 0.1,
step: 0.01,
decimals: 2,
verticalbuttons: true,
postfix: '{{$event->currency->symbol_left}}',

View File

@ -20,9 +20,9 @@
@stop
@section('head')
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css" integrity="sha256-szHusaozbQctTn4FX+3l5E0A5zoxz7+ne4fr8NgWJlw=" crossorigin="anonymous" />
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.4/raphael-min.js" integrity="sha256-Gk+dzc4kV2rqAZMkyy3gcfW6Xd66BhGYjVWa/FjPu+s=" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js" integrity="sha256-0rg2VtfJo3VUij/UY9X0HJP7NET6tgAY98aMOfwP0P8=" crossorigin="anonymous"></script>
<script>
$(function () {
$.getJSON('http://graph.facebook.com/?id=' + '{{route('showEventPage',['event_id' => $event->id, 'event_slug' => Str::slug($event->title)])}}', function (fbdata) {

View File

@ -138,7 +138,7 @@
<li>
<div class="section">
<h4 class="nm">
{{ ($ticket->quantity_available === null) ? '&infin;' : $ticket->quantity_remaining }}
{{ ($ticket->quantity_available === null) ? '' : $ticket->quantity_remaining }}
</h4>
<p class="nm text-muted">@lang("Ticket.remaining")</p>

View File

@ -18,9 +18,9 @@
@section('head')
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css" integrity="sha256-szHusaozbQctTn4FX+3l5E0A5zoxz7+ne4fr8NgWJlw=" crossorigin="anonymous" />
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.4/raphael-min.js" integrity="sha256-Gk+dzc4kV2rqAZMkyy3gcfW6Xd66BhGYjVWa/FjPu+s=" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js" integrity="sha256-0rg2VtfJo3VUij/UY9X0HJP7NET6tgAY98aMOfwP0P8=" crossorigin="anonymous"></script>
{!! HTML::script('https://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places&key='.env("GOOGLE_MAPS_GEOCODING_KEY")) !!}
{!! HTML::script('vendor/geocomplete/jquery.geocomplete.min.js')!!}

View File

@ -95,8 +95,9 @@
$tax_amt = ($grand_total * $event->organiser->tax_value) / 100;
$grand_total = $tax_amt + $grand_total;
@endphp
{{money($grand_total, $order->event->currency)}} (inc. {{money($attendee->ticket->total_booking_fee, $order->event->currency)}} @lang("Public_ViewEvent.inc_fees") (inc. {{money($tax_amt, $order->event->currency)}} {{$event->organiser->tax_name}})
{{money($grand_total, $order->event->currency)}} @if ($attendee->ticket->total_booking_fee) (inc. {{money($attendee->ticket->total_booking_fee, $order->event->currency)}} @lang("Public_ViewEvent.inc_fees")) @endif @if ($event->organiser->tax_name) (inc. {{money($tax_amt, $order->event->currency)}} {{$event->organiser->tax_name}})
<br><br>{{$event->organiser->tax_name}} ID: {{ $event->organiser->tax_id }}
@endif
</div>
</div>
<div class="barcode">

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<html lang="{{ Lang::locale() }}">
<head>
<!--
_ _ _ _
@ -12,7 +12,7 @@
-->
<title>
@section('title')
Attendize ::
Attendize -
@show
</title>
@ -130,7 +130,7 @@
$(function () {
$.ajaxSetup({
headers: {
'X-CSRF-Token': "<?php echo csrf_token() ?>"
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
});
@ -148,4 +148,4 @@
@include('Shared.Partials.GlobalFooterJS')
</body>
</html>
</html>

View File

@ -1,8 +1,9 @@
@if(session()->get('message'))
<script>showMessage('{{\Session::get('message')}}');</script>
@endif
@if(env('GOOGLE_ANALYTICS_ID'))
<script>
@if(env('GOOGLE_ANALYTICS_ID'))
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
@ -18,5 +19,5 @@
ga('create', '{{env('GOOGLE_ANALYTICS_ID')}}', 'auto');
ga('require', 'displayfeatures');
ga('send', 'pageview');
@endif
</script>
</script>
@endif

View File

@ -1,3 +1,3 @@
{{--Attendize is provided free of charge on the condition the below hyperlink is left in place.--}}
{{--See https://www.attendize.com/licence.html for more information.--}}
Powered By <a style="color: #FFF;" title="Attendize - Sell Tickets Online" href="http://www.attendize.com/?powered_by">Attendize</a>
Powered By <a style="color: #FFF;" title="Attendize - Sell Tickets Online" href="https://www.attendize.com/?powered_by">Attendize</a>

View File

@ -10,9 +10,9 @@
</p>
<p>
If you still need help you can <a href="https://github.com/Attendize/Attendize/issues">raise an issue</a>. Please include as much detail as possible, including any errors in the log file.
Also take a look at the <a href="http://www.attendize.com/troubleshooting.html">troubleshooting guide</a>
Also take a look at the <a href="https://www.attendize.com/troubleshooting.html">troubleshooting guide</a>
</p>
<p>
Please also <a style="text-decoration: underline;" target="_blank" href="http://www.attendize.com/license.html">read the licence</a> before installing Attendize.
Please also <a style="text-decoration: underline;" target="_blank" href="https://www.attendize.com/license.html">read the licence</a> before installing Attendize.
</p>
</div>
</div>