+ Homparty Part 1

This commit is contained in:
Kevin Adametz 2020-10-16 16:18:00 +02:00
parent 74923859d1
commit 9252094a04
43 changed files with 2385 additions and 66 deletions

View file

@ -0,0 +1,234 @@
<div class="card-body">
<div class="row">
<div class="col-12 col-lg-6">
<div class="form-row">
<div class="form-group col-md-12">
<label for="billing_company" class="form-label">{{ __('Company name') }} (optional)</label>
{{ Form::text('billing_company', $homeparty_user->billing_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'billing_company', 'tabindex' => 1)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_salutation') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Salutation') }}*</label>
<select class="selectpicker" data-style="btn-light" name="billing_salutation" id="billing_salutation" required tabindex="2">
{!! HTMLHelper::getSalutation($homeparty_user->billing_salutation) !!}
</select>
@if ($errors->has('billing_salutation'))
<span class="help-block">
<strong>{{ $errors->first('billing_salutation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_firstname') ? 'has-error' : '' }}">
<label class="form-label" for="billing_firstname">{{ __('First name') }}*</label>
{{ Form::text('billing_firstname', $homeparty_user->billing_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'billing_firstname', 'required'=>true, 'tabindex' => 4)) }}
@if ($errors->has('billing_firstname'))
<span class="help-block">
<strong>{{ $errors->first('billing_firstname') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('billing_lastname') ? 'has-error' : '' }}">
<label class="form-label" for="billing_lastname">{{ __('Last name') }}*</label>
{{ Form::text('billing_lastname', $homeparty_user->billing_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'billing_lastname', 'required'=>true, 'tabindex' => 5)) }}
@if ($errors->has('billing_lastname'))
<span class="help-block">
<strong>{{ $errors->first('billing_lastname') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_address') ? 'has-error' : '' }}">
<label class="form-label" for="billing_address">{{ __('Street') }} / {{ __('House number') }}*</label>
{{ Form::text('billing_address', $homeparty_user->billing_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_address', 'tabindex' => 6)) }}
@if ($errors->has('billing_address'))
<span class="help-block">
<strong>{{ $errors->first('billing_address') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_address_2') ? 'has-error' : '' }}">
<label class="form-label" for="billing_address_2">{{ __('Wohnung / Gebäude (optional)') }}</label>
{{ Form::text('billing_address_2', $homeparty_user->billing_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'billing_address_2', 'tabindex' => 6)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_zipcode') ? 'has-error' : '' }}">
<label class="form-label" for="billing_zipcode">{{ __('Postcode') }}*</label>
{{ Form::text('billing_zipcode', $homeparty_user->billing_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_zipcode', 'tabindex' => 7)) }}
@if ($errors->has('billing_zipcode'))
<span class="help-block">
<strong>{{ $errors->first('billing_zipcode') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('billing_city') ? 'has-error' : '' }}">
<label class="form-label" for="billing_city">{{ __('City') }}*</label>
{{ Form::text('billing_city', $homeparty_user->billing_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_city', 'tabindex' => 8)) }}
@if ($errors->has('billing_city'))
<span class="help-block">
<strong>{{ $errors->first('billing_city') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_country_id') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Country') }}*</label>
<select class="selectpicker" name="billing_country_id" id="billing_country_id" data-style="btn-light" data-live-search="true" required tabindex="9">
{!! HTMLHelper::getContriesWithMore($homeparty_user->billing_country_id) !!}
</select>
@if ($errors->has('billing_country_id'))
<span class="help-block">
<strong>{{ $errors->first('billing_country_id') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_phone') ? 'has-error' : '' }}">
<label class="form-label" for="billing_phone">{{ __('Phone') }}</label>
{{ Form::text('billing_phone', $homeparty_user->billing_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'billing_phone', 'tabindex' => 11)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="billing_email">{{ __('E-Mail Address') }}</label>
{{ Form::text('billing_email', $homeparty_user->billing_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'billing_email', 'tabindex' => 12)) }}
</div>
</div>
</div>
<div class="col-12 col-lg-6">
<div class="d-md-block d-lg-none">
<hr>
<h5 class="mt-4">Lieferadresse</h5>
</div>
<div id="show_shipping_address" style="@if($homeparty_user->same_as_billing) display:none @endif">
<div class="form-row">
<div class="form-group col-md-12">
<label for="shipping_company" class="form-label">{{ __('Company name') }} (optional)</label>
{{ Form::text('shipping_company', $homeparty_user->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'shipping_company', 'tabindex' => 16)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_salutation') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Salutation') }}*</label>
<select class="selectpicker" data-style="btn-light" name="shipping_salutation" id="shipping_salutation" required tabindex="17">
{!! HTMLHelper::getSalutation($homeparty_user->shipping_salutation) !!}
</select>
@if ($errors->has('shipping_salutation'))
<span class="help-block">
<strong>{{ $errors->first('shipping_salutation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_firstname') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_firstname">{{ __('First name') }}*</label>
{{ Form::text('shipping_firstname', $homeparty_user->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_firstname', 'tabindex' => 18)) }}
@if ($errors->has('shipping_firstname'))
<span class="help-block">
<strong>{{ $errors->first('shipping_firstname') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('shipping_lastname') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_lastname">{{ __('Last name') }}*</label>
{{ Form::text('shipping_lastname', $homeparty_user->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_lastname', 'tabindex' => 19)) }}
@if ($errors->has('shipping_lastname'))
<span class="help-block">
<strong>{{ $errors->first('shipping_lastname') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_address') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_address">{{ __('Street') }} / {{ __('House number') }}*</label>
{{ Form::text('shipping_address', $homeparty_user->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_address', 'tabindex' => 20)) }}
@if ($errors->has('shipping_address'))
<span class="help-block">
<strong>{{ $errors->first('shipping_address') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_address_2') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_address_2">{{ __('Wohnung / Gebäude (optional)') }}</label>
{{ Form::text('shipping_address_2', $homeparty_user->shipping_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'shipping_address_2', 'tabindex' => 21)) }}
@if ($errors->has('shipping_address_2'))
<span class="help-block">
<strong>{{ $errors->first('shipping_address_2') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_zipcode') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_zipcode">{{ __('Postcode') }}*</label>
{{ Form::text('shipping_zipcode', $homeparty_user->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_zipcode', 'tabindex' => 22)) }}
@if ($errors->has('shipping_zipcode'))
<span class="help-block">
<strong>{{ $errors->first('shipping_zipcode') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('shipping_city') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_city">{{ __('City') }}*</label>
{{ Form::text('shipping_city', $homeparty_user->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_city', 'tabindex' => 23)) }}
@if ($errors->has('shipping_city'))
<span class="help-block">
<strong>{{ $errors->first('shipping_city') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_country_id') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Country') }}*</label>
<select class="selectpicker" name="shipping_country_id" id="shipping_country_id" data-style="btn-light" data-live-search="true" required tabindex="24">
{!! HTMLHelper::getContriesWithMore($homeparty_user->shipping_country_id) !!}
</select>
@if ($errors->has('shipping_country_id'))
<span class="help-block">
<strong>{{ $errors->first('shipping_country_id') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="shipping_phone">{{ __('Phone') }}</label>
{{ Form::text('shipping_phone', $homeparty_user->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone', 'tabindex' => 26)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="shipping_email">{{ __('E-Mail Address') }}</label>
{{ Form::text('shipping_email', $homeparty_user->shipping_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'shipping_email', 'tabindex' => 27)) }}
</div>
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="same_as_billing" id="same_as_billing" @if($homeparty_user->same_as_billing) checked="checked" @endif>
<span class="custom-control-label">{{__('Versand an die gleiche Adresse')}}</span>
</label>
</div>
<hr>
</div>
</div>
{{ Form::hidden('is_host', $homeparty_user->is_host) }}
</div>

View file

@ -0,0 +1,241 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
<div>{{ __('navigation.my_homeparty') }} /
@if(!$homeparty->id)
anlegen
@else
{{ __('navigation.manage') }}
@endif
</div>
<a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default float-right">zurück</a>
</h4>
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-party-form-validation']) !!}
<div class="card mb-4">
<h5 class="card-header">
<div class="row">
@if(!$homeparty->id)
<div class="col-12">
Neue Homeparty anlegen
</div>
@else
<div class="col-12">
<div class="d-flex justify-content-between align-items-center w-100">
<div>Homeparty verwalten</div>
<div class="float-right">
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-person-add"></i> Gäste anlegen</a>
<a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-1"><i class="ion ion-md-basket"></i> Bestellung</a>
</div>
</div>
</div>
@endif
</div>
</h5>
<div class="card-body">
<div class="form-row">
<div class="form-group col-md-4 {{ $errors->has('name') ? 'has-error' : '' }}">
<label for="name" class="form-label">{{ __('Veranstaltungsname') }}*</label>
{{ Form::text('name', $homeparty->name, array('placeholder'=>__('Veranstaltungsname'), 'class'=>'form-control', 'required')) }}
@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-4 {{ $errors->has('date') ? 'has-error' : '' }}">
<label for="date" class="form-label">{{ __('Veranstaltungsdatum') }}*</label>
{{ Form::text('date', $homeparty->date, array('placeholder'=>Util::formatDate(), 'data-date-format'=>Util::formatDate(), 'data-start_view'=>2, 'class'=>'form-control datepicker-base', 'required')) }}
@if ($errors->has('date'))
<span class="help-block">
<strong>{{ $errors->first('date') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-4 {{ $errors->has('place') ? 'has-error' : '' }}">
<label for="place" class="form-label">{{ __('Veranstaltungsort') }}*</label>
{{ Form::text('place', $homeparty->place, array('placeholder'=>__('Veranstaltungsort'), 'class'=>'form-control', 'required')) }}
@if ($errors->has('place'))
<span class="help-block">
<strong>{{ $errors->first('place') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<label class="form-label" for="description">{{ __('Beschreibung') }}</label>
{{ Form::textarea('description', $homeparty->description , array('placeholder'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }}
</div>
</div>
</div>
<div class="text-left mt-3">
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-party-store">{{ __('speichern') }}</button>&nbsp;
<a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a>
</div>
{!! Form::close() !!}
@if($homeparty->id)
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
<hr>
<div class="card mb-4">
<div class="col-md-12 px-4 pt-4">
<h6 class="mb-4">Lass den Gastgeber seine Daten selber ausfüllen</h6>
<div class="form-group">
<div class="input-group">
<span class="input-group-prepend">
<button class="btn btn-secondary" type="button" title="Kopiert!" data-clipboard-demo data-clipboard-target="#homeparty_link"><i class="ion ion-ios-copy"></i> Link kopieren</button>
</span>
<input type="text" class="form-control" name="homeparty_link" value="{{ $homeparty->homeparty_host->getTokenLink() }}" id="homeparty_link" placeholder="">
</div>
</div>
<p>Teile diesen Link mit dem Gastgeber (z.B. WhatsApp oder SMS), damit gelangt er auf eine Zielseite wo er seine Daten selber ausfüllen kann. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren.</p>
<hr>
</div>
<h5 class="card-header">
<div class="row">
<div class="col-xs-12 col-sm-6">
Gastgeber-, Rechungsadresse
</div>
<div class="col-xs-12 col-sm-6">
<span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
<span class="d-none d-lg-inline">Lieferadresse</span>
</div>
</div>
</h5>
@include('user.homeparty._edit')
</div>
<div class="text-left mt-3">
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-user-store">{{ __('save') }}</button>&nbsp;
<a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a>
</div>
{!! Form::close() !!}
@endif
<script type="application/javascript">
$( document ).ready(function() {
// Shipping Address show|hide
$("#same_as_billing").on("change", function () {
$('#show_shipping_address').slideToggle(200, function () {
// scroll down to shipping area.
if ($('#show_shipping_address').is(":visible")) {
_scrollTo('#show_shipping_address', 20);
}
});
});
$.extend( $.validator.messages, {
required: "Dieses Feld ist ein Pflichtfeld.",
maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ),
minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ),
rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ),
email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
url: "Geben Sie bitte eine gültige URL ein.",
date: "Bitte geben Sie ein gültiges Datum ein.",
number: "Geben Sie bitte eine Nummer ein.",
digits: "Geben Sie bitte nur Ziffern ein.",
equalTo: "Bitte denselben Wert wiederholen.",
range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ),
max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ),
min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ),
creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
});
// Set up validator
$('#homeparty-party-form-validation').validate({
errorPlacement: function errorPlacement(error, element) {
$(element).parents('.form-group').append(
error.addClass('invalid-feedback small d-block')
)
},
highlight: function (element) {
if ($(element).hasClass('selectpicker')) {
$(element).parent().addClass('is-invalid');
}
$(element).addClass('is-invalid');
},
unhighlight: function (element) {
$(element).removeClass('is-invalid');
$(element).parents('.form-group').find('.is-invalid').removeClass('is-invalid');
},
messages : {
required: "{{__('This field is required.')}}",
},
onkeyup: false
});
// Set up validator
$('#homeparty-user-form-validation').validate({
errorPlacement: function errorPlacement(error, element) {
$(element).parents('.form-group').append(
error.addClass('invalid-feedback small d-block')
)
},
highlight: function (element) {
if ($(element).hasClass('selectpicker')) {
$(element).parent().addClass('is-invalid');
}
$(element).addClass('is-invalid');
},
unhighlight: function (element) {
$(element).removeClass('is-invalid');
$(element).parents('.form-group').find('.is-invalid').removeClass('is-invalid');
},
messages : {
required: "{{__('This field is required.')}}",
country_id : {
required: "{{__('This field is required.')}}",
},
salutation : {
required: "{{__('Bitte angeben.')}}",
},
first_name : {
required: "{{__('This field is required.')}}",
},
last_name : {
required: "{{__('This field is required.')}}",
},
zipcode : {
required: "{{__('This field is required.')}}",
},
address : {
required: "{{__('This field is required.')}}",
},
city : {
required: "{{__('This field is required.')}}",
}
},
onkeyup: false
});
});
</script>
<script>
$( document ).ready(function() {
var clipboardDemos = new ClipboardJS('[data-clipboard-demo]');
clipboardDemos.on('success', function (e) {
e.clearSelection();
$(e.trigger).tooltip('enable').tooltip('show');
});
clipboardDemos.on('error', function (e) {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});
$('button[data-clipboard-demo]').on('mouseout', function () {
$(this).tooltip('disable');
})
});
</script>
@endsection

View file

@ -0,0 +1,141 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
<div>{{ __('navigation.my_homeparty') }} / {{ $homeparty->name }} - {{ $homeparty->date }}</div>
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-default float-right">zurück</a>
</h4>
{!! Form::open(['url' => route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
<hr>
<div class="card mb-4">
<div class="col-md-12 px-4 pt-4">
<h6 class="mb-4">Lass den @if($homeparty_user->is_host) Gastgeber @else Gast @endif seine Daten selber ausfüllen</h6>
<div class="form-group">
<div class="input-group">
<span class="input-group-prepend">
<button class="btn btn-secondary" type="button" title="Kopiert!" data-clipboard-demo data-clipboard-target="#homeparty_link"><i class="ion ion-ios-copy"></i> Link kopieren</button>
</span>
<input type="text" class="form-control" name="homeparty_link" value="{{ $homeparty_user->getTokenLink() }}" id="homeparty_link" placeholder="">
</div>
</div>
<p>Teile diesen Link mit dem Gastgeber (z.B. WhatsApp oder SMS), damit gelangt er auf eine Zielseite wo er seine Daten selber ausfüllen kann. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren.</p>
<hr>
</div>
<h5 class="card-header">
<div class="row">
<div class="col-xs-12 col-sm-6">
@if($homeparty_user->is_host) Gastgeber, @else Gast-, @endif Rechungsadresse
</div>
<div class="col-xs-12 col-sm-6">
<span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
<span class="d-none d-lg-inline">Lieferadresse</span>
</div>
</div>
</h5>
@include('user.homeparty._edit')
</div>
<div class="text-left mt-3">
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-user-store">{{ __('save') }}</button>&nbsp;
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-default mb-2">zurück zur Übersicht</a>
</div>
{!! Form::close() !!}
<script type="application/javascript">
$( document ).ready(function() {
// Shipping Address show|hide
$("#same_as_billing").on("change", function () {
$('#show_shipping_address').slideToggle(200, function () {
// scroll down to shipping area.
if ($('#show_shipping_address').is(":visible")) {
_scrollTo('#show_shipping_address', 20);
}
});
});
$.extend( $.validator.messages, {
required: "Dieses Feld ist ein Pflichtfeld.",
maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ),
minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ),
rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ),
email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
url: "Geben Sie bitte eine gültige URL ein.",
date: "Bitte geben Sie ein gültiges Datum ein.",
number: "Geben Sie bitte eine Nummer ein.",
digits: "Geben Sie bitte nur Ziffern ein.",
equalTo: "Bitte denselben Wert wiederholen.",
range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ),
max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ),
min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ),
creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
});
// Set up validator
$('#homeparty-user-form-validation').validate({
errorPlacement: function errorPlacement(error, element) {
$(element).parents('.form-group').append(
error.addClass('invalid-feedback small d-block')
)
},
highlight: function (element) {
if ($(element).hasClass('selectpicker')) {
$(element).parent().addClass('is-invalid');
}
$(element).addClass('is-invalid');
},
unhighlight: function (element) {
$(element).removeClass('is-invalid');
$(element).parents('.form-group').find('.is-invalid').removeClass('is-invalid');
},
messages : {
required: "{{__('This field is required.')}}",
country_id : {
required: "{{__('This field is required.')}}",
},
salutation : {
required: "{{__('Bitte angeben.')}}",
},
first_name : {
required: "{{__('This field is required.')}}",
},
last_name : {
required: "{{__('This field is required.')}}",
},
zipcode : {
required: "{{__('This field is required.')}}",
},
address : {
required: "{{__('This field is required.')}}",
},
city : {
required: "{{__('This field is required.')}}",
}
},
onkeyup: false
});
});
</script>
<script>
$( document ).ready(function() {
var clipboardDemos = new ClipboardJS('[data-clipboard-demo]');
clipboardDemos.on('success', function (e) {
e.clearSelection();
$(e.trigger).tooltip('enable').tooltip('show');
});
clipboardDemos.on('error', function (e) {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});
$('button[data-clipboard-demo]').on('mouseout', function () {
$(this).tooltip('disable');
})
});
</script>
@endsection

View file

@ -0,0 +1,109 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
<div>{{ __('navigation.my_homeparty') }} / {{ $homeparty->name }} - {{ $homeparty->date }}</div>
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, 'new'])}}" class="btn btn-sm btn-secondary rounded-pill d-block float-right"><span class="ion ion-md-add"></span>&nbsp; Neue Gast anlegen</a>
</h4>
<div class="row">
<div class="col-12">
@php($g_count = 1)
@foreach($homeparty->homeparty_users as $homeparty_user)
<div class="card mb-4">
<div class="card-body d-flex justify-content-between align-items-start pb-2">
<div>
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="text-body text-big font-weight-semibold">
@if($homeparty_user->is_host)
<span class="text-muted">Gastgeber/in: </span>
@else
<span class="text-muted">Gast {{$g_count++}}: </span>
@endif
{{$homeparty_user->billing_firstname}} {{$homeparty_user->billing_lastname}}
</a>
{{-- <span class="badge badge-success align-text-bottom ml-1">offen ...</span> --}}
</div>
<div>
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="btn btn-sm btn-secondary mr-2"><i class="ion ion-ios-cog"></i> Verwalten</a>
<div class="btn-group project-actions">
<button type="button" class="btn btn-sm btn-default icon-btn borderless rounded-pill md-btn-flat dropdown-toggle hide-arrow" data-toggle="dropdown">
<i class="ion ion-ios-more"></i>
</button>
<div class="dropdown-menu dropdown-menu-right">
@if($homeparty_user->is_host)
<a href="#" class=" dropdown-item">
Gastgeber/in kann nicht gelöscht werden
</a>
@else
<a href="{{ route('user_homeparty_delete', ['hpu', $homeparty->id, $homeparty_user->id]) }}"
class=" dropdown-item" onclick="return confirm('Homeparty Gast wirklich löschen?');">
<span class="ion ion-md-trash text-danger"></span> löschen
</a>
@endif
</div>
</div>
</div>
</div>
<div class="progress rounded-0" style="height: 2px;">
<div class="progress-bar" style="width: 100%;"></div>
</div>
<div class="card-body pt-1 pb-3">
{{$homeparty->description}}
</div>
<div class="card-body pt-0">
<div class="row">
<div class="col">
<div class="text-muted small">Adresse</div>
<div class="font-weight-bold">{{$homeparty_user->billing_address}}
{{$homeparty_user->billing_zipcode}}
{{$homeparty_user->city}}
@if($homeparty_user->billing_country_id){{ $homeparty_user->billing_country->getLocated() }}@endif
</div>
</div>
<div class="col">
<div class="text-muted small">E-Telefon</div>
<div class="font-weight-bold">{{$homeparty_user->billing_phone}}</div>
</div>
<div class="col">
<div class="text-muted small">E-Mail</div>
<div class="font-weight-bold">{{$homeparty_user->billing_email}}</div>
</div>
</div>
</div>
<hr class="m-0">
<div class="card-body py-3">
<div class="form-group mb-0">
<div class="input-group">
<span class="input-group-prepend">
<button class="btn btn-sm btn-secondary" type="button" title="Kopiert!" data-clipboard-demo data-clipboard-target="#homeparty_link_{{$homeparty_user->id}}"><i class="ion ion-ios-copy"></i> Link kopieren</button>
</span>
<input type="text" class="form-control" name="homeparty_link_{{$homeparty_user->id}}" value="{{ $homeparty_user->getTokenLink() }}" id="homeparty_link_{{$homeparty_user->id}}" placeholder="">
</div>
</div>
</div>
</div>
@endforeach
</div>
</div>
<a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default float-right">zurück zur Übersicht</a>
<script>
$( document ).ready(function() {
var clipboardDemos = new ClipboardJS('[data-clipboard-demo]');
clipboardDemos.on('success', function (e) {
e.clearSelection();
$(e.trigger).tooltip('enable').tooltip('show');
});
clipboardDemos.on('error', function (e) {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});
$('button[data-clipboard-demo]').on('mouseout', function () {
$(this).tooltip('disable');
})
});
</script>
@endsection

View file

@ -0,0 +1,79 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
<div>{{ __('navigation.my_homeparty') }} / {{ __('navigation.overview') }}</div>
<a href="{{route('user_homeparty_detail', ['new'])}}" class="btn btn-secondary rounded-pill d-block float-right"><span class="ion ion-md-add"></span>&nbsp; Neue Homeparty anlegen</a>
</h4>
<div class="row">
<div class="col-12">
@foreach($homepartys as $homeparty)
<div class="card mb-4">
<div class="card-body d-flex justify-content-between align-items-start pb-2">
<div>
<a href="{{route('user_homeparty_detail', [$homeparty->id])}}" class="text-body text-big font-weight-semibold">{{$homeparty->name}}</a>
{{-- <span class="badge badge-success align-text-bottom ml-1">offen ...</span> --}}
</div>
<div class="btn-group project-actions">
<button type="button" class="btn btn-sm btn-default icon-btn borderless rounded-pill md-btn-flat dropdown-toggle hide-arrow" data-toggle="dropdown">
<i class="ion ion-ios-more"></i>
</button>
<div class="dropdown-menu dropdown-menu-right">
<a href="{{ route('user_homeparty_delete', ['hp', $homeparty->id]) }}"
class=" dropdown-item" onclick="return confirm('Homeparty wirklich löschen?');">
<span class="ion ion-md-trash text-danger"></span> löschen
</a>
</div>
</div>
</div>
<div class="progress rounded-0" style="height: 2px;">
<div class="progress-bar" style="width: 100%;"></div>
</div>
<div class="card-body pt-1 pb-3">
{{$homeparty->description}}
</div>
<div class="card-body pt-0">
<div class="row">
<div class="col">
<div class="text-muted small">Datum</div>
<div class="font-weight-bold">{{$homeparty->date}}</div>
</div>
<div class="col">
<div class="text-muted small">Ort</div>
<div class="font-weight-bold">{{$homeparty->place}}</div>
</div>
<div class="col">
<div class="text-muted small">Gäste</div>
<div class="font-weight-bold">{{$homeparty->homeparty_guests->count()}}</div>
</div>
<div class="col">
<div class="text-muted small">Umsatz</div>
<div class="font-weight-bold">0</div>
</div>
<div class="col">
<div class="text-muted small">Points</div>
<div class="font-weight-bold">0</div>
</div>
</div>
</div>
<hr class="m-0">
<div class="card-body py-3">
<div class="d-flex flex-wrap">
<a href="{{route('user_homeparty_detail', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-ios-cog"></i> Verwalten</a>
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-person-add"></i> Gäste anlegen</a>
<a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-basket"></i> Bestellung</a>
</div>
</div>
</div>
@endforeach
</div>
</div>
<script>
$( document ).ready(function() {
});
</script>
@endsection

View file

@ -0,0 +1,134 @@
@extends('layouts.layout-2-without')
@section('content')
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
<div>Homeparty / {{ $homeparty->name }} - {{ $homeparty->date }}</div>
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-default float-right">zurück</a>
</h4>
{!! Form::open(['url' => route('homeparty', [$homeparty_user->token]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
<hr>
@if(Session::has('alert-save'))
<div class="alert alert-dark-secondary alert-dismissible fade show">
<div class="font-weight-bold">
{{__('saved')}}: {{__('The changes have been saved.')}}
</div>
</div>
@endif
<div class="card mb-4">
<div class="col-md-12 px-4 pt-4">
<h6 class="mb-4">Eingabe Deiner persönlichen Daten für die Homeparty</h6>
<hr>
</div>
<h5 class="card-header">
<div class="row">
<div class="col-xs-12 col-sm-6">
@if($homeparty_user->is_host) Gastgeber, @else Gast-, @endif Rechungsadresse
</div>
<div class="col-xs-12 col-sm-6">
<span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
<span class="d-none d-lg-inline">Lieferadresse</span>
</div>
</div>
</h5>
@include('user.homeparty._edit')
<hr class="mt-0">
<div class="form-row px-4">
<div class="form-group">
<label class="custom-control custom-checkbox m-2 ">
<input type="checkbox" class="custom-control-input" name="check_for_ot" id="checkbox_for_me" required>
<span class="custom-control-label secondary">
<span class="fa fa-angle-double-left text-primary fa-lg"></span>
Hiermit willige ich in die im Rahmen der <button type="button" class="btn btn-outline-primary btn-xs update_modal_data_load" data-url="https://my.mivita.test/loading/modal" data-data="data_protection" data-target="#modal-loading">Datenschutzerklärung</button>
genannte Datenverarbeitung ein. Ich wurde darüber informiert, dass ich diese Einwilligung jederzeit widerrufen kann.*
</span>
</label>
</div>
</div>
</div>
<div class="text-left mt-3">
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-user-store">{{ __('Änderungen speichern') }}</button>&nbsp;
</div>
{!! Form::close() !!}
<script type="application/javascript">
$( document ).ready(function() {
// Shipping Address show|hide
$("#same_as_billing").on("change", function () {
$('#show_shipping_address').slideToggle(200, function () {
// scroll down to shipping area.
if ($('#show_shipping_address').is(":visible")) {
_scrollTo('#show_shipping_address', 20);
}
});
});
$.extend( $.validator.messages, {
required: "Dieses Feld ist ein Pflichtfeld.",
maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ),
minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ),
rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ),
email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
url: "Geben Sie bitte eine gültige URL ein.",
date: "Bitte geben Sie ein gültiges Datum ein.",
number: "Geben Sie bitte eine Nummer ein.",
digits: "Geben Sie bitte nur Ziffern ein.",
equalTo: "Bitte denselben Wert wiederholen.",
range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ),
max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ),
min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ),
creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
});
// Set up validator
$('#homeparty-user-form-validation').validate({
errorPlacement: function errorPlacement(error, element) {
$(element).parents('.form-group').append(
error.addClass('invalid-feedback small d-block')
)
},
highlight: function (element) {
if ($(element).hasClass('selectpicker')) {
$(element).parent().addClass('is-invalid');
}
$(element).addClass('is-invalid');
},
unhighlight: function (element) {
$(element).removeClass('is-invalid');
$(element).parents('.form-group').find('.is-invalid').removeClass('is-invalid');
},
messages : {
required: "{{__('This field is required.')}}",
country_id : {
required: "{{__('This field is required.')}}",
},
salutation : {
required: "{{__('Bitte angeben.')}}",
},
first_name : {
required: "{{__('This field is required.')}}",
},
last_name : {
required: "{{__('This field is required.')}}",
},
zipcode : {
required: "{{__('This field is required.')}}",
},
address : {
required: "{{__('This field is required.')}}",
},
city : {
required: "{{__('This field is required.')}}",
}
},
onkeyup: false
});
});
</script>
@endsection