Booking, QI Content, Trees, Media

This commit is contained in:
Kevin Adametz 2019-10-02 20:03:55 +02:00
parent 1f340e96fa
commit 7fbac395a9
260 changed files with 27160 additions and 3773 deletions

View file

@ -0,0 +1,193 @@
@extends('layouts.layout-2')
@section('content')
<style>
.btn-xs {
line-height: 1em;
}
</style>
<h4 class="font-weight-bold py-3 mb-1">
Buchung verwalten
</h4>
{!! Form::open(['url' => route('booking_detail', [$id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
<input type="hidden" name="id" id="id" value="{{$id}}">
<!-- draft -->
<div class="card mb-2">
<div class="card-body row">
<div class="form-group col-sm-6">
<label class="form-label" for="merlin_order_number">{{ __('MyJack Nr.') }}*</label>
{{ Form::text('merlin_order_number', $booking->merlin_order_number, array('placeholder'=>__('MyJack Nr.'), 'class'=>'form-control', 'id'=>'merlin_order_number')) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="booking_id">{{ __('Nr.') }}*</label>
{{ Form::text('id', $booking->id, array('placeholder'=>__('Nr.'), 'class'=>'form-control', 'id'=>'booking_id', 'readonly')) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="booking_id">{{ __('Gesamtpreis Organisation') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('price', $booking->price, array('placeholder'=>__('Gesamtpreis'), 'class'=>'form-control', 'id'=>'price', 'readonly')) }}
</div>
</div>
</div>
</div>
<div class="text-left mt-3">
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('bookings')}}" class="btn btn-default">{{ __('zur Übersicht') }}</a>
<a href="{{ make_old_url('/index.php/booking/'.$booking->id.'/edit') }}" class="btn btn-default float-right">{{ __('zurück ins CRM v2') }}</a>
</div>
<hr>
@if($booking->new_drafts )
@php($i = 1)
<div class="text-right mb-2">
<button type="submit" name="action" value="addItemUp" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen <i class="far fa-arrow-up"></i></button>
</div>
<div id="dragula-drag-handles">
@foreach($booking->booking_draft_items as $booking_draft_item)
<!-- item -->
<div class="card mb-2" @if($booking_draft_item->draft_type) style="background-color: {{ $booking_draft_item->draft_type->color }}" @endif>
<span class=" handle ion ion-ios-move d-inline-block bg-light text-dark p-1">
<div class="float-left ml-1 mr-1">#{{ $i++ }} </div>
<div class="float-right">
<button type="submit" name="action" value="up_{{$booking_draft_item->id}}" class="btn btn-xs btn-primary py-0"><i class="fa fa-arrow-up"></i> </button>
<button type="submit" name="action" value="down_{{$booking_draft_item->id}}" class="btn btn-xs btn-primary mr-2"><i class="fa fa-arrow-down"></i> </button>
</div>
</span>
<div class="card-body row" style="">
<div class="form-group col-12 col-sm-6 col-md-2 col-lg-2">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$booking_draft_item->id}}][draft_type_id]" id="draft_item_{{$booking_draft_item->id }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($booking_draft_item->draft_type_id) !!}
</select>
</div>
<div class="form-group col-6 col-sm-3 col-md-2 col-lg-2">
{{ Form::text('draft_item['.$booking_draft_item->id.'][start_date]', $booking_draft_item->start_date, array('placeholder'=>__('Start Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_start_dat')) }}
</div>
<div class="form-group col-6 col-sm-3 col-md-2 col-lg-2">
{{ Form::text('draft_item['.$booking_draft_item->id.'][end_date]', $booking_draft_item->end_date, array('placeholder'=>__('End Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_end_date')) }}
</div>
@if(in_array($booking_draft_item->draft_type_id, [24, 26, 30, 31, 32, 33, 34, 35, 36, 37, 41]))
<div class="form-group col-6 col-sm-6 col-md-3 col-lg-3">
<div class="input-group">
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][adult]" id="draft_item_{{$booking_draft_item->id }}_adult">
<option value="">0. T</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->adult, 10, ' T.') !!}
</select>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_adult]', $booking_draft_item->price_adult, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_adult',)) }}
<div class="input-group-prepend d-md-none d-lg-block">
<span class="input-group-text"></span>
</div>
</div>
</div>
<div class="form-group col-6 col-sm-6 col-md-3 col-lg-3">
<div class="input-group">
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][children]" id="draft_item_{{$booking_draft_item->id}}_children">
<option value="">0. K</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->children, 10, ' K.') !!}
</select>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_children]', $booking_draft_item->price_children, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_children')) }}
<div class="input-group-prepend d-md-none d-lg-block">
<span class="input-group-text"></span>
</div>
</div>
</div>
@endif
@if(in_array($booking_draft_item->draft_type_id, [36, 37]))
<div class="form-group col-3 col-sm-3 col-md-2 col-lg-2">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">A:</span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][days_duration]', $booking_draft_item->days_duration, array('placeholder'=>__('Anzahl Tage'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_days_duration',)) }}
</div>
</div>
<div class="form-group col-5 col-sm-6 col-md-8">
@else
<div class="form-group col-8 col-sm-9 col-md-10">
@endif
{{ Form::textarea('draft_item['.$booking_draft_item->id.'][service]', $booking_draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control autoExpand', 'id'=>'draft_item_'.$booking_draft_item->id.'_service', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</div>
<div class="form-group col-4 col-sm-3 col-md-2">
<div class="text-right mt-2 float-right">
<a class="text-danger" href="{{ route('booking_draft_item_delete', [$booking_draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a>
</div>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('draft_item['.$booking_draft_item->id.'][in_pdf]', 1, $booking_draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</div>
@if(in_array($booking_draft_item->draft_type_id, [38, 39,40]))
<div class="form-group col-6">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"> </span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price]', $booking_draft_item->price, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price',)) }}
</div>
</div>
@if(in_array($booking_draft_item->draft_type_id, [38]))
<div class="form-group col-6">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">A:</span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][days_duration]', $booking_draft_item->days_duration, array('placeholder'=>__('Anzahl Tage'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_days_duration',)) }}
</div>
</div>
@endif
@endif
</div>
</div>
@endforeach
</div>
@endif
<div class="text-right">
<button type="submit" name="action" value="addItemDown" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen <i class="far fa-arrow-down"></i></button>
</div>
<div class="text-left mt-3">
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('bookings')}}" class="btn btn-default">{{ __('zur Übersicht') }}</a>
<a href="{{ make_old_url('/index.php/booking/'.$booking->id.'/edit') }}" class="btn btn-default float-right">{{ __('zurück ins CRM v2') }}</a>
</div>
{!! Form::close() !!}
@endsection

View file

@ -2,6 +2,40 @@
@section('content')
<style>
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.btn-xs {
line-height: 1.3em;
}
.table tbody + tbody {
border-top: 1px solid #9c9c9c;
}
.table th, .table td {
border-top: none;
}
.table tr.border-none td, .table tr.border-none th {
border-top: none;
}
.table .thead-dark th {
color: #4E5155;
background-color: rgba(24, 28, 33, 0.1);
border-color: rgba(63, 69, 74, 0.1);
}
.input-group-text {
padding: 0.438rem 0.475rem;
}
</style>
<h4 class="font-weight-bold py-3 mb-1">
Buchung verwalten
</h4>
@ -24,8 +58,19 @@
{{ Form::text('id', $booking->id, array('placeholder'=>__('Nr.'), 'class'=>'form-control', 'id'=>'booking_id', 'readonly')) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="booking_id">{{ __('Gesamtpreis Organisation') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('price', $booking->price, array('placeholder'=>__('Gesamtpreis'), 'class'=>'form-control', 'id'=>'price', 'readonly')) }}
</div>
</div>
</div>
</div>
<div class="text-left mt-3">
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('bookings')}}" class="btn btn-default">{{ __('zur Übersicht') }}</a>
@ -39,123 +84,119 @@
<div class="text-right mb-2">
<button type="submit" name="action" value="addItemUp" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen <i class="far fa-arrow-up"></i></button>
</div>
<div id="dragula-drag-handles">
@foreach($booking->booking_draft_items as $booking_draft_item)
<!-- item -->
<div class="card mb-2" @if($booking_draft_item->draft_type) style="background-color: {{ $booking_draft_item->draft_type->color }}" @endif>
<div class="card-body row" style="">
<div class="form-group col-md-3 col-12">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$booking_draft_item->id}}][draft_type_id]" id="draft_item_{{$booking_draft_item->id }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($booking_draft_item->draft_type_id) !!}
</select>
</div>
<div class="form-group col-md-3 col-4">
{{ Form::text('draft_item['.$booking_draft_item->id.'][start_date]', $booking_draft_item->start_date, array('placeholder'=>__('Start Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_start_dat')) }}
</div>
<div class="form-group col-md-3 col-4">
{{ Form::text('draft_item['.$booking_draft_item->id.'][end_date]', $booking_draft_item->end_date, array('placeholder'=>__('End Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_end_date')) }}
</div>
<div class="form-group col-md-3 col-4 text-right">
<h5 class="float-right mt-1">#{{ $i++ }} </h5>
<span class=" handle ion ion-ios-move d-inline-block bg-primary text-white p-2 mr-2 mb-1"></span>
<button type="submit" name="action" value="up_{{$booking_draft_item->id}}" class="btn btn-xs btn-default"><i class="fa fa-arrow-up"></i> </button>
<button type="submit" name="action" value="down_{{$booking_draft_item->id}}" class="btn btn-xs btn-default mr-2"><i class="fa fa-arrow-down"></i> </button>
</div>
@if(in_array($booking_draft_item->draft_type_id, [36, 37]))
<div class="form-group col-sm-3 col-3">
<div class="table-responsive mb-4">
<table class="table mb-0" id="table_dragula_tbody" style="min-width: 1080px">
<thead class="thead-dark">
<tr>
<th style="width: 1em"></th>
<th style="width: 1em">#</th>
<th>Leistung</th>
<th style="width: 9em">Datum von</th>
<th style="width: 9em">Datum bis</th>
<th style="width: 15em">Teilnehmer/EP</th>
<th style="width: 15em">Kinder/EP</th>
<th style="width: 8em">#</th>
</tr>
</thead>
@foreach($booking->booking_draft_items as $booking_draft_item)
<tbody class="draft_item_tbody">
<tr @if($booking_draft_item->draft_type) style="background-color: {{ $booking_draft_item->draft_type->color }}" @endif>
<td>
<span class="handle ion ion-ios-move d-inline-block bg-primary text-white p-1"></span>
</td>
<td><span class="item_pos_number">{{ $i++ }}</span></td>
<td>
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$booking_draft_item->id}}][draft_type_id]" id="draft_item_{{$booking_draft_item->id }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($booking_draft_item->draft_type_id) !!}
</select>
</td>
<td>
{{ Form::text('draft_item['.$booking_draft_item->id.'][start_date]', $booking_draft_item->start_date, array('placeholder'=>__('Start Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_start_dat')) }}
</td>
<td>
{{ Form::text('draft_item['.$booking_draft_item->id.'][end_date]', $booking_draft_item->end_date, array('placeholder'=>__('End Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_end_date')) }}
</td>
@if(in_array($booking_draft_item->draft_type_id, [24, 26, 30, 31, 32, 33, 34, 35, 36, 37, 41]))
<td>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">A:</span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][days_duration]', $booking_draft_item->days_duration, array('placeholder'=>__('Anzahl Tage'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_days_duration',)) }}
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][adult]" id="draft_item_{{$booking_draft_item->id }}_adult">
<option value="">0</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->adult, 10, '') !!}
</select>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_adult]', $booking_draft_item->price_adult, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_adult', 'maxlength'=>10)) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
</div>
<div class="form-group col-sm-7 col-5">
@else
<div class="form-group col-sm-10 col-8">
@endif
{{ Form::textarea('draft_item['.$booking_draft_item->id.'][service]', $booking_draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control autoExpand', 'id'=>'draft_item_'.$booking_draft_item->id.'_service', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</div>
<div class="form-group col-sm-2 col-4">
<div class="text-right mt-2 float-right">
<a class="text-danger" href="{{ route('booking_draft_item_delete', [$booking_draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a>
</div>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('draft_item['.$booking_draft_item->id.'][in_pdf]', 1, $booking_draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</div>
@if(in_array($booking_draft_item->draft_type_id, [24, 26, 30, 31, 32, 33, 34, 35, 36, 37]))
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$booking_draft_item->id}}][adult]" id="draft_item_{{$booking_draft_item->id }}_adult">
<option value="">Teilnehmer</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->adult, 10, ' T.') !!}
</select>
</div>
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_adult]', $booking_draft_item->price_adult, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_adult',)) }}
</div>
</div>
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$booking_draft_item->id}}][children]" id="draft_item_{{$booking_draft_item->id}}_children">
<option value="">Kinder</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->children, 10, ' K.') !!}
</select>
</div>
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_children]', $booking_draft_item->price_children, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_children')) }}
</div>
</div>
@endif
@if(in_array($booking_draft_item->draft_type_id, [38, 39,40]))
<div class="form-group col-3">
</td>
<td>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"> </span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price]', $booking_draft_item->price, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price',)) }}
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][children]" id="draft_item_{{$booking_draft_item->id}}_children">
<option value="">0</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->children, 10, '') !!}
</select>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_children]', $booking_draft_item->price_children, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_children')) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
</div>
@if(in_array($booking_draft_item->draft_type_id, [38]))
<div class="form-group col-sm-3 col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">A:</span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][days_duration]', $booking_draft_item->days_duration, array('placeholder'=>__('Anzahl Tage'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_days_duration',)) }}
</div>
</div>
@endif
</td>
@else
<td>-</td>
<td>-</td>
@endif
<td>
<button type="button" name="" value="up_{{$booking_draft_item->id}}" class="btn btn-xs btn-primary py-0 move-up-btn"><i class="fa fa-arrow-up"></i> </button>
<button type="button" name="" value="down_{{$booking_draft_item->id}}" class="btn btn-xs btn-primary mr-2 move-down-btn"><i class="fa fa-arrow-down"></i> </button>
<a class="text-danger" href="{{ route('booking_draft_item_delete', [$booking_draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a>
</td>
</tr>
<tr @if($booking_draft_item->draft_type) style="background-color: {{ $booking_draft_item->draft_type->color }}" @endif class="border-none">
@if(in_array($booking_draft_item->draft_type_id, [36, 37]))
<td colspan="3">
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][days_duration]" id="draft_item_{{$booking_draft_item->id }}_days_duration">
<option value="">0 Tage</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->days_duration, 40, ' Tage') !!}
</select>
</td>
<td colspan="4">
@elseif(in_array($booking_draft_item->draft_type_id, [38, 39,40]))
<td colspan="3">
<div class="input-group">
@if(in_array($booking_draft_item->draft_type_id, [38]))
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][days_duration]" id="draft_item_{{$booking_draft_item->id }}_days_duration">
<option value="">0 Tage</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->days_duration, 40, ' T.') !!}
</select>
@endif
{{ Form::text('draft_item['.$booking_draft_item->id.'][price]', $booking_draft_item->price, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price',)) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
</td>
<td colspan="4">
@else
<td colspan="7">
@endif
{{ Form::textarea('draft_item['.$booking_draft_item->id.'][service]', $booking_draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control autoExpand', 'id'=>'draft_item_'.$booking_draft_item->id.'_service', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</td>
<td>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('draft_item['.$booking_draft_item->id.'][in_pdf]', 1, $booking_draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</td>
</div>
</div>
@endforeach
</tr>
</tbody>
@endforeach
</table>
</div>
@endif
@ -173,11 +214,54 @@
{!! Form::close() !!}
<script>
$(document).ready(function() {
$.dragYScroll();
var sort_item_pos_number = function(){
var index = 1;
$('#table_dragula_tbody .draft_item_tbody').each(function () {
$(this).find('.item_pos_number').html(index);
$(this).data('rowPosition', index);
index++;
});
};
$(function() {
// Drag handle
var sortableItems = dragula([$('#table_dragula_tbody')[0]], {
moves: function (el, container, handle) {
return handle.classList.contains('handle');
}
});
sortableItems.on('dragend', function() {
//sort new
sort_item_pos_number();
});
});
$('table .move-up-btn').on('click', function () {
var thisRow = $(this).closest('tbody');
var prevRow = thisRow.prev();
if (prevRow.length) {
prevRow.before(thisRow);
sort_item_pos_number()
}
});
$('table .move-down-btn').on('click', function () {
var thisRow = $(this).closest('tbody');
var nextRow = thisRow.next();
if (nextRow.length) {
nextRow.after(thisRow);
sort_item_pos_number()
}
});
});
</script>
@endsection

View file

@ -3,7 +3,7 @@
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
{{ __('Inhalte') }}
{{ __('Inhalte') }} {{ __('Allgemein') }}
</h4>
@if ($errors->any())
@ -21,7 +21,7 @@
@endif
<div class="card">
<div class="card-datatable table-responsive py-2" data-route-modal="{{ route('cms_content_load_modal') }}" data-target-modal="#modals-load-content">
<div class="card-datatable table-responsive py-2" data-route-modal="{{ route('cms_content_all_load_modal') }}" data-target-modal="#modals-load-content">
<div class="mr-4 mb-2 text-right">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
data-id="new"
@ -52,7 +52,7 @@
<td>{{ $value->name }}</td>
<td>{{ $value->getFieldName() }}</td>
<td>{{ $value->getPreviewContent() }}</td>
<td><a class="text-danger" href="{{ route('cms_content_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a></td>
<td><a class="text-danger" href="{{ route('cms_content_all_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a></td>
</tr>
@endforeach

View file

@ -1,5 +1,5 @@
{!! Form::open(['url' => route('cms_content_store'), 'class' => 'modal-content']) !!}
{!! Form::open(['url' => route('cms_content_all_store'), 'class' => 'modal-content']) !!}
<input type="hidden" name="id" id="id" value="@if($value->id>0){{$value->id}}@else new @endif">
@ -59,7 +59,7 @@
<div class="form-row">
<div class="form-group col">
<label for="name" class="form-label">{{ __('Slug') }}</label>
{{ Form::text('slug', $value->slug, array('class'=>'form-control', 'readonly')) }}
{{ Form::text('slug', $value->slug, array('class'=>'form-control')) }}
</div>
</div>

View file

@ -0,0 +1,154 @@
@extends('layouts.layout-2')
@section('content')
{!! Form::open(['url' => route('cms_content_country_store', [$id]), 'class' => 'form-horizontal']) !!}
<h4 class="font-weight-bold py-3 mb-1">
Reiseland Inhalte {{ $model->name }}
<div class="float-right">
<a href="{{route('cms_content_country')}}" class="btn btn-default btn-sm">{{ __('back') }}</a>
</div>
</h4>
<div class="nav-tabs-top mb-4">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link @if($step == false) active show @endif" data-toggle="tab" href="#navs-site">Seite</a>
</li>
<li class="nav-item">
<a class="nav-link @if($step == 'form') active show @endif" data-toggle="tab" href="#navs-form">Formular</a>
</li>
<li class="nav-item">
<a class="nav-link @if($step == 'contact') active show @endif" data-toggle="tab" href="#navs-contact">Kontaktdaten</a>
</li>
<li class="nav-item">
<a class="nav-link @if($step == 'travel') active show @endif" data-toggle="tab" href="#navs-travel">Einreisebestimmungen</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade @if($step == false) active show @endif" id="navs-site">
<div class="card-body">
<br>
<h4>Inhalte für Seite</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Landinformationen (HTML)') }} </label>
{{ Form::textarea('html_information', $model->html_information, ['class' => 'form-control summernote']) }}
</div>
</div>
<button type="submit" name="action" value="" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
<div class="tab-pane fade @if($step == 'form') active show @endif" id="navs-form">
<div class="card-body">
<br>
<h4>Inhalte für Formular</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="text_before">{{ __('Formular Text vor der Reise (max. 255 Zeichen)') }} </label>
{{ Form::text('text_before', $model->text_before, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Formular Text nach der Reise ( max. 255 Zeichen)') }} </label>
{{ Form::text('text_after', $model->text_after, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
</div>
<button type="submit" name="action" value="form" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
<div class="tab-pane fade @if($step == 'contact') active show @endif" id="navs-contact">
<div class="card-body">
<br>
<h4>Kontaktdaten</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="contact_headline">Überschrift</label>
{{ Form::text('contact_headline', $model->contact_headline, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_1">Kontaktfeld 1 </label>
{{ Form::textarea('contact_text_1', $model->contact_text_1, ['class' => 'form-control', 'rows'=>4]) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_2">Kontaktfeld 2 </label>
{{ Form::textarea('contact_text_2', $model->contact_text_2, ['class' => 'form-control', 'rows'=>4]) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_3">Kontaktfeld 3 </label>
{{ Form::textarea('contact_text_3', $model->contact_text_3, ['class' => 'form-control', 'rows'=>4]) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_4">Kontaktfeld 4</label>
{{ Form::textarea('contact_text_4', $model->contact_text_4, ['class' => 'form-control', 'rows'=>4]) }}
</div>
</div>
<hr>
<h4>Rückfragen</h4>
<p>Übergreifende Texte für jedes Land sind unter: <a href="{{route('cms_content_all')}}">Inhalte Allgemein</a><br>
- PDF Footer Hinweise Rückfragen<br>
- PDF Footer Hinweise Reisebedingungen<br>
- PDF Absender<br>
</p>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="contact_text_4">Kontakt Footer</label>
{{ Form::textarea('contact_footer', $model->contact_footer, ['class' => 'form-control', 'rows'=>4]) }}
</div>
</div>
<button type="submit" name="action" value="contact" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
<div class="tab-pane fade @if($step == 'travel') active show @endif" id="navs-travel">
<div class="card-body">
<br>
<h4>Einreisebestimmungen</h4>
@foreach($travel_nationalities as $travel_nationality)
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="travel_nationality_requirement_{{$travel_nationality->id}}">{{ $travel_nationality->name }}{{ __('(HTML)') }} </label>
{{ Form::textarea('travel_nationality_requirement['.$travel_nationality->id.']', $model->getNationalityRequirement($travel_nationality->id), ['class' => 'form-control summernote-small', 'id'=>'travel_nationality_requirement_'.$travel_nationality->id]) }}
</div>
</div>
@endforeach
<button type="submit" name="action" value="travel" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
</div>
</div>
<div class="text-left mt-3">
<a href="{{route('cms_content_country')}}" class="btn btn-default">{{ __('back') }}</a>
</div>
{!! Form::close() !!}
<script>
$( document ).ready(function() {
$('input[name="active_frontend"]').on('change', function () {
if($(this).prop( "checked")){
$('#show_active_frontend').show("slow");
}else{
$('#show_active_frontend').hide("slow");
}
});
});
</script>
@endsection

View file

@ -0,0 +1,98 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
{{ __('Inhalte') }} {{ __('Reiseländer') }}
<a class="btn btn-default btn-sm float-right" href="{{ make_v2_url('/acp') }}" > zurück ins v2 CMS</a>
<a class="btn btn-default btn-sm float-right" href="{{ make_old_url('backend.php') }}" > zurück ins v1 CRM</a>
</h4>
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-feedbacks table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th><i class="far fa-eye"></i> {{__('Seite')}}</th>
<th><i class="far fa-eye"></i> {{__('CRM')}}</th>
<th><i class="far fa-eye"></i> {{__('Kunden')}}</th>
</tr>
</thead>
<tbody>
@foreach($travel_countries as $value)
<tr>
<td>
<a href="{{ route('cms_content_country_detail', [$value->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</a>
</td>
<td><a href="{{ route('cms_content_country_detail', [$value->id]) }}">{{ $value->name }}</a></td>
<td data-sort="{{ $value->active_frontend }}">
@if($value->active_frontend)
<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>
@endif
</td>
<td data-sort="{{ $value->active_backend }}">
@if($value->active_backend)
<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>
@endif
</td>
<td data-sort="{{ $value->is_customer_country }}">
@if($value->is_customer_country)
<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<script>
$( document ).ready(function() {
$('.datatables-feedbacks').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"language": {
"url": "/js/German.json"
},
});
});
</script>
</div>
<!-- Modal template -->
<div class="modal fade" id="modals-load-content">
<div class="modal-dialog">
</div>
</div>
@endsection

View file

@ -71,6 +71,51 @@
{{ Form::textarea('full_text', $travel_guide->full_text , ['class' => 'form-control summernote']) }}
</div>
</div>
<button type="button" class="btn btn-primary btn-sm float-right mb-2" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="guide"
data-action="guide-tree-site"
data-request="{!! array_to_json(['travel_guide_id'=>$travel_guide->id]) !!}"
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Tree zuordnen</button>
@if($travel_guide->iq_content_sites->count())
<table class="table table-striped border-bottom">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('url')}}</th>
<th>{{__('sichtbar')}}</th>
<th>#</th>
</tr>
</thead>
<tbody>
@foreach($travel_guide->iq_content_sites as $iq_content_site)
<tr>
<td style="width: 5%;">
<a href="{{ route('iq_content_tree_detail', [$iq_content_site->iq_content_tree_node->tree_id, $iq_content_site->iq_content_tree_node->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</a>
</td>
<td>{{$iq_content_site->iq_content_tree_node->name}}</td>
<td>{{$iq_content_site->iq_content_tree_node->getUri()}}</td>
<td>
@if($iq_content_site->iq_content_tree_node->active)
<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>
@endif
</td>
<td>
<a class="text-danger" href="{{ route('iq_content_tree_detail_remove_site', [$iq_content_site->iq_content_tree_node->tree_id, $iq_content_site->tree_node_id, $iq_content_site->travel_guide->id, 'g']) }}" onclick="return confirm('{{__('Seite aus Tree entfernen?')}}');"><i class="far fa-reply"></i></a>
</td>
</tr>
@endforeach
</tbody>
</table>
<hr>
@endif
<div class="form-row">
@ -103,104 +148,7 @@
{!! Form::close() !!}
{{--
<!-- Modal template -->
<div class="modal fade" id="modals-class">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('travel_program_class_update') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<input type="hidden" class="form-control" name="program_id" value="{{$feedback->id}}">
<div class="modal-header">
<h5 class="modal-title">Programm Katagorie/Klassen <span class="font-weight-light">anlegen/bearbeiten</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label class="custom-control custom-checkbox float-right">
<input type="checkbox" class="custom-control-input" name="standard" checked>
<span class="custom-control-label">{{__('Standard')}}</span>
</label>
<label for="name" class="form-label">Name*</label>
<input type="text" class="form-control" name="name" placeholder="{{__('Description')}}" required>
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="description" class="form-label">Beschreibung</label>
<input type="text" class="form-control" name="description" placeholder="{{__('Description')}}">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
</div>
</form>
</div>
</div>
<!-- Modal template -->
<div class="modal fade" id="modals-draft">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('travel_program_draft_update') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<input type="hidden" class="form-control" name="travel_program_id" value="{{$feedback->id}}">
<div class="modal-header">
<h5 class="modal-title">Vorlage Reiseprogramm <span class="font-weight-light">zuordnen</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="draft_id" class="form-label">{{__('Vorlage')}}</label>
<select class="selectpicker" data-style="btn-default" name="draft_id" data-live-search="true" required>
{!! HTMLHelper::getDraftOptions() !!}
</select>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
</div>
</form>
</div>
</div>
<script>
$( document ).ready(function() {
$('#modals-class').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='name']").val(button.data('name'));
$(this).find(".modal-body input[name='description']").val(button.data('description'));
$(this).find(".modal-body input[name='standard']").prop( "checked", button.data('standard'));
});
$('#modals-draft').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body select[name='draft_id']").val(button.data('draft_id'));
$(this).find(".modal-body select[name='travel_class_id']").val(button.data('travel_class_id'));
$(this).find(".modal-body select[name='weekdays[]']").val(button.data('weekdays'));
$('.selectpicker').selectpicker('refresh');
});
});
</script>
--}}
@endsection

View file

@ -17,6 +17,7 @@
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('slug')}}</th>
<th>{{__('Keyword')}}</th>
<th>{{__('Langer Text')}}</th>
<th>{{__('sichtbar')}}</th>
<th>#</th>
@ -32,6 +33,8 @@
</td>
<td><a href="{{ route('cms_travel_guide_detail', [$value->id]) }}">{{ $value->name }}</a></td>
<td>{{ $value->slug }}</td>
<td>{{ $value->keyword }}</td>
<td data-sort="{{ $value->scope }}">
@if($value->scope)
<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>

View file

@ -1,12 +1,12 @@
@extends('layouts.layout-2')
@section('content')
<style>
.alert ul {
margin-bottom: 0;
}
<style>
.alert ul {
margin-bottom: 0;
}
</style>
</style>
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
@ -24,54 +24,53 @@
<h4 class="font-weight-bold py-3 mb-1">
Reiseführer Tree @if($id == "new") <span class="text-primary">anlegen</span> @else {{"(".$model->name.")"}} verwalten @endif
<div class="float-right">
<a href="{{route('iq_content_tree_repair', [$model->id])}}" class="btn btn-default btn-sm">{{ __('repair') }}</a>
</div>
Reiseführer Tree @if($id == "new") <span class="text-primary">anlegen</span> @else {{"(".$model->name.")"}}
verwalten @endif
{{-- <div class="float-right">
<a href="{{route('iq_content_tree_repair', [$model->id])}}" class="btn btn-default btn-sm">{{ __('repair') }}</a>
</div>
--}}
</h4>
<div class="clearfix"></div>
<input type="hidden" name="id" id="id" value="{{$id}}">
<div class="card messages-card">
<div class="row no-gutters">
<!-- sidebox -->
<div class="messages-sidebox large messages-scroll col">
<div class="card-body py-3">
<div class="media align-items-center">
<div class="media-body">
<button type="button" class="btn btn-primary btn-block" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-node"
data-request="{!! array_to_json(['tree_id'=>$model->id]) !!}"
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Add node</button>
</div>
<a href="javascript:void(0)" class="messages-sidebox-toggler d-lg-none d-block text-muted text-large font-weight-light pl-4">&times;</a>
</div>
</div>
<hr class="border-light m-0">
<div class="row mx-0">
<div class="card-body pt-3">
<!-- Messages sidebox -->
<div class="messages-sidebox mb-4">
<button type="button" class="btn btn-primary btn-sm btn-block" data-toggle="modal"
data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-node"
data-request="{!! array_to_json(['tree_id'=>$model->id]) !!}"
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Add node
</button>
<hr class="border-light my-1">
<div class="">
{!! Form::open(['url' => route('iq_content_tree_detail', [$model->id]), 'class' => '']) !!}
<input type="hidden" id="nestable-output" name="nestable-output" value="">
<input type="hidden" name="tree_id" value="{{$model->id}}">
<div class="mb-2" style="height: 35px">
<div class="float-right">
<button type="button" class="btn btn-default btn-sm" data-action="expand-all" id="nestable-menu-expand"><i class="ion ion-ios-arrow-down"></i></button>
<button type="button" class="btn btn-default btn-sm" data-action="collapse-all" id="nestable-menu-collapse"><i class="ion ion-ios-arrow-up"></i></button>
<button type="button" class="btn btn-default btn-sm" data-action="expand-all"
id="nestable-menu-expand"><i class="ion ion-ios-arrow-down"></i></button>
<button type="button" class="btn btn-default btn-sm" data-action="collapse-all"
id="nestable-menu-collapse"><i class="ion ion-ios-arrow-up"></i></button>
</div>
<div class="iq-save-bar" style="display: none">
<a href="" class="btn btn-warning btn-md icon-btn messages-tooltip text-white mr-2" title="Refresh"><i class="ion ion-md-refresh"></i></a>
<button type="submit" class="btn btn-success btn-md icon-btn messages-tooltip text-white" title="Save"><i class="ion ion-md-save"></i></button>
<a href="" class="btn btn-warning btn-md icon-btn messages-tooltip text-white mr-2"
title="Refresh"><i class="ion ion-md-refresh"></i></a>
<button type="submit" class="btn btn-success btn-md icon-btn messages-tooltip text-white"
title="Save"><i class="ion ion-md-save"></i></button>
</div>
</div>
<div>
<div class="badge badge-outline-primary btn-block py-2 px-3 text-left "> <span class="far fa-globe"></span> {{$model->name}}
<div class="badge badge-outline-primary btn-block py-2 px-3 text-left "><span
class="far fa-globe"></span> {{$model->name}}
<a href="" class="float-right" data-toggle="modal" data-target="#modals-load-content"
data-id="{{$model->id}}"
data-model="tree"
@ -79,7 +78,7 @@
data-request=""
data-route="{{ route('iq_content_modal_load') }}"><span class="far fa-edit"></span></a>
</div>
<div class="dd" id="netstable-content-tree">
<div class="dd" id="netstable-content-tree" data-id="{{$model->id}}">
{!! \App\Services\HTMLTreeHelper::makeNestableList($model, ($tree_node ? $tree_node->id : false)) !!}
</div>
</div>
@ -87,190 +86,207 @@
</div>
</div>
<!-- / sidebox -->
<!-- / Messages sidebox -->
<div class="col">
@if($tree_node)
<!-- Controls -->
{!! Form::open(['url' => route('iq_content_tree_detail', [$model->id, $tree_node->id, ($area_section? $area_section->id : '')]), 'class' => '']) !!}
<div class="media flex-wrap align-items-center py-2 px-2">
<div class="media-body d-flex flex-wrap flex-basis-100 flex-basis-sm-auto">
<button type="button" class="btn btn-default borderless md-btn-flat icon-btn messages-sidebox-toggler d-lg-none d-block text-muted text-large mr-2"><i class="ion ion-md-more"></i></button>
<div style="height: 35px"></div>
<div class="iq-save-bar" style="display: none">
<a href="" class="btn btn-warning btn-md icon-btn messages-tooltip text-white mr-2" title="Refresh"><i class="ion ion-md-refresh"></i></a>
<button type="submit" class="btn btn-success btn-md icon-btn messages-tooltip text-white" title="Save"><i class="ion ion-md-save"></i></button>
</div>
</div>
</div>
<div class="col-12">
<div class="nav-responsive-md">
<ul class="nav nav-pills nav-fill">
<li class="nav-item">
<a href="{{route('iq_content_tree_detail', [$model->id, $tree_node->id])}}" class="nav-link @if(!$area_section) active1 @endif">{{$tree_node->name}}
</a>
</li>
@if($tree_node->iq_content_site)
@foreach($tree_node->iq_content_site->iq_content_area->iq_content_area_sections as $sections)
<li class="nav-item">
<a href="{{route('iq_content_tree_detail', [$model->id, $tree_node->id,$sections->id])}}" class="nav-link @if($area_section && $area_section->id == $sections->id) active @endif">{{ $sections->name }}
{{-- <span class="badge badge-primary">22</span> --}}
</a>
</li>
@endforeach
@endif
</ul>
</div>
@if(!$site_fields)
<div class="card-body">
<input type="hidden" name="id" value="{{$tree_node->id}}">
<input type="hidden" name="model" value="tree">
<input type="hidden" name="action" value="tree-node">
<input type="hidden" name="tree_id" value="{{$model->id}}">
<div class="input-group mb-4">
<div class="input-group-prepend">
<span class="input-group-text"><span class="far fa-link mr-2 text-primary"></span></span>
@if($tree_node)
<div class="card">
<div class="card-body py-3">
<!-- Controls -->
{!! Form::open(['url' => route('iq_content_tree_detail', [$model->id, $tree_node->id, ($section? $section : '')]), 'class' => '']) !!}
<div class="media flex-wrap align-items-center py-2 px-0">
<div class="media-body d-flex flex-wrap flex-basis-100 flex-basis-sm-auto">
<div class="iq-save-bar" style="display: none">
<a href="" class="btn btn-warning btn-md icon-btn messages-tooltip text-white mr-2"
title="Refresh"><i class="ion ion-md-refresh"></i></a>
<button type="submit"
class="btn btn-success btn-md icon-btn messages-tooltip text-white"
title="Save"><i class="ion ion-md-save"></i></button>
</div>
{{ Form::text('uri', $tree_node->getUri(), array('readonly'=>true, 'class'=>'form-control')) }}
</div>
<div class="form-row mb-2">
<div class="form-group col">
<label class="custom-control custom-checkbox float-right">
{!! Form::checkbox('active', 1, $tree_node->active, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('aktiv')}}</span>
</label>
<label for="name" class="form-label">Name (required)</label>
{{ Form::text('name', $tree_node->name, array('placeholder'=>'', 'class'=>'form-control', 'required'=>'true')) }}
</div>
</div>
<div class="form-row mb-2">
<div class="form-group col">
<button type="button" class="btn btn-primary btn-sm float-right mb-2" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-site-content"
data-request="{!! array_to_json(['tree_id'=>$model->id,'tree_node_id'=>$tree_node->id]) !!}"
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Seite hinzufügen</button>
<label for="site_id" class="form-label">Seiten</label>
@if($tree_node->travel_guides)
<table class="table table-striped border-bottom">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('Keyword')}}</th>
<th>{{__('Langer Text')}}</th>
<th>{{__('sichtbar')}}</th>
<th>#</th>
</tr>
</thead>
<tbody>
@foreach($tree_node->travel_guides as $travel_guide)
<tr>
<td style="width: 5%;">
<a href="{{ route('cms_travel_guide_detail', [$travel_guide->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</a>
</td>
<td>{{$travel_guide->name}}</td>
<td>{{$travel_guide->keyword}}</td>
<td> @if($travel_guide->scope)
<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>
@endif
</td>
<td>
@if($travel_guide->active)
<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>
@endif
</td>
<td>
<a class="text-danger" href="{{ route('iq_content_tree_detail_remove', [$model->id, $tree_node->id, $travel_guide->id]) }}" onclick="return confirm('{{__('Seite aus Tree entfernen?')}}');"><i class="far fa-reply"></i></a>
</td>
</tr>
@endforeach
</tbody>
</table>
@endif
{{--<select class="selectpicker" name="site_id" id="site_id"
data-style="btn-light" data-live-search="true" data-container="body">
{!! \App\Models\IQContentSite::getSiteOptions($tree_node->site_id) !!}
</select>--}}
</div>
</div>
<div class="form-row mb-2">
<div class="form-group col">
<label for="identifier" class="form-label">Slug</label>
{{ Form::text('identifier', $tree_node->identifier, array('placeholder'=>'', 'class'=>'form-control')) }}
</div>
</div>
<div class="form-group mb-2">
<label class="form-label" for="description">Description</label>
{{ Form::textarea('description', $tree_node->description, array('class'=>'form-control', 'rows'=>2)) }}
</div>
</div>
@else
<div id="dragula-drag-handles" class="mt-2">
@foreach($site_fields as $key => $site_field)
<div class="dragula-example card card-condenced">
<input type="hidden" name="iq_content_site_field[{{$key}}][id]" value="{{ $site_field->id }}">
<input type="hidden" name="iq_content_site_field[{{$key}}][site_id]" value="{{$site_field->site_id}}">
<input type="hidden" name="iq_content_site_field[{{$key}}][model_field_id]" value="{{$site_field->model_field_id}}">
<input type="hidden" name="iq_content_site_field[{{$key}}][field]" value="{{$site_field->field}}">
<input type="hidden" name="iq_content_site_field[{{$key}}][settings]" value="{{ json_encode($site_field->settings) }}">
<div class="card-body">
<span class="handle fa fa-grip-vertical d-inline-block bg-light text-info p-2 mr-2 mb-1"></span>
<i class="my-ui-icon-sm {{ $site_field->iq_content_model_field->fieldAsIcon() }} text-secondary mr-2"></i>
<strong>{{ $site_field->iq_content_model_field->name }}</strong>
<span class="text-muted ml-2">{{ $site_field->iq_content_model_field->identifier }}</span>
<div class="float-right">
{!! get_switcher_input($site_field->active, 'iq_content_site_field['.$key.'][active]') !!}
<div class="">
{{-- <div class="nav-responsive-md">
<ul class="nav nav-pills nav-fill">
<li class="nav-item">
<a href="{{route('iq_content_tree_detail', [$model->id, $tree_node->id])}}" class="nav-link @if(!$section) active1 @endif">{{$tree_node->name}}
</a>
</li>
@if($tree_node->iq_content_sites)
@foreach($tree_node->iq_content_sites as $iq_content_site)
<li class="nav-item">
<a href="{{route('iq_content_tree_detail', [$model->id, $tree_node->id,$iq_content_site->id])}}" class="nav-link @if($iq_content_site && $iq_content_site->id == $section) active @endif">{{ $iq_content_site->id }}
</a>
</li>
@endforeach
@endif
</ul>
</div>
--}}
@if(!$site_fields)
<div class="">
<input type="hidden" name="id" value="{{$tree_node->id}}">
<input type="hidden" name="model" value="tree">
<input type="hidden" name="action" value="tree-node">
<input type="hidden" name="tree_id" value="{{$model->id}}">
<div class="input-group mb-4">
<div class="input-group-prepend">
<span class="input-group-text"><span
class="far fa-link mr-2 text-primary"></span></span>
</div>
<hr class="border-light my-2">
<div class="form-group">
@if($site_field->field == "string")
{{ Form::text('iq_content_site_field['.$key.'][content]', $site_field->content, array('class'=>'form-control')) }}
@endif
@if($site_field->field == "text")
@if($site_field->settings['editor'] == 'off')
{{ Form::textarea('iq_content_site_field['.$key.'][content]', $site_field->content , ['class' => 'form-control']) }}
@else
{{ Form::textarea('iq_content_site_field['.$key.'][content]', $site_field->content , ['class' => 'form-control summernote']) }}
@endif
@endif
@if($site_field->field == "media")
{{ Form::text('iq_content_site_field['.$key.'][content]', $site_field->content, array('class'=>'form-control')) }}
@endif
</div>
<span class="text-muted ml-2">{{ $site_field->iq_content_model_field->fieldAsName() }}</span>
<div class="float-left">
<i class="fa fa-search"></i> {!! get_switcher_input($site_field->search, 'iq_content_site_field['.$key.'][search]') !!}
{{ Form::text('uri', $tree_node->getUri(), array('readonly'=>true, 'class'=>'form-control')) }}
</div>
<div class="form-row mb-2">
<div class="form-group col">
<label class="custom-control custom-checkbox float-right">
{!! Form::checkbox('active', 1, $tree_node->active, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('aktiv')}}</span>
</label>
<label for="name" class="form-label">Name (required)</label>
{{ Form::text('name', $tree_node->name, array('placeholder'=>'', 'class'=>'form-control', 'required'=>'true')) }}
</div>
</div>
<div class="form-row mb-2">
<div class="form-group col">
<button type="button" class="btn btn-primary btn-sm float-right mb-2"
data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-site-content"
data-request="{!! array_to_json(['tree_id'=>$model->id,'tree_node_id'=>$tree_node->id]) !!}"
data-route="{{ route('iq_content_modal_load') }}"><i
class="ion ion-ios-add-circle"></i> Seite hinzufügen
</button>
<label for="site_id" class="form-label">Seiten</label>
@if($tree_node->iq_content_sites->count())
<table class="table table-striped border-bottom">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('Keyword')}}</th>
<th>{{__('Langer Text')}}</th>
<th>{{__('sichtbar')}}</th>
<th>#</th>
</tr>
</thead>
<tbody>
@foreach($tree_node->iq_content_sites as $iq_content_site)
<tr>
<td style="width: 5%;">
<a href="{{ route('cms_travel_guide_detail', [$iq_content_site->travel_guide->id]) }}"
class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</a>
</td>
<td>{{$iq_content_site->travel_guide->name}}</td>
<td>{{$iq_content_site->travel_guide->keyword}}</td>
<td> @if($iq_content_site->travel_guide->scope)
<span class="badge badge-pill badge-success"><i
class="far fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i
class="far fa-times"></i></span>
@endif
</td>
<td>
@if($iq_content_site->travel_guide->active)
<span class="badge badge-pill badge-success"><i
class="far fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i
class="far fa-times"></i></span>
@endif
</td>
<td>
<a class="text-danger"
href="{{ route('iq_content_tree_detail_remove_site', [$model->id, $tree_node->id, $iq_content_site->travel_guide->id, 't']) }}"
onclick="return confirm('{{__('Seite aus Tree entfernen?')}}');"><i
class="far fa-reply"></i></a>
</td>
</tr>
@endforeach
</tbody>
</table>
@endif
{{--<select class="selectpicker" name="site_id" id="site_id"
data-style="btn-light" data-live-search="true" data-container="body">
{!! \App\Models\IQContentSite::getSiteOptions($tree_node->site_id) !!}
</select>--}}
</div>
</div>
<div class="form-row mb-2">
<div class="form-group col">
<label for="identifier" class="form-label">Slug</label>
{{ Form::text('identifier', $tree_node->identifier, array('placeholder'=>'', 'class'=>'form-control')) }}
</div>
</div>
<div class="form-group mb-2">
<label class="form-label" for="description">Description</label>
{{ Form::textarea('description', $tree_node->description, array('class'=>'form-control', 'rows'=>2)) }}
</div>
</div>
@endforeach
@else
<div id="dragula-drag-handles" class="mt-2">
@foreach($site_fields as $key => $site_field)
<div class="dragula-example card card-condenced">
<input type="hidden" name="iq_content_site_field[{{$key}}][id]"
value="{{ $site_field->id }}">
<input type="hidden" name="iq_content_site_field[{{$key}}][site_id]"
value="{{$site_field->site_id}}">
<input type="hidden" name="iq_content_site_field[{{$key}}][model_field_id]"
value="{{$site_field->model_field_id}}">
<input type="hidden" name="iq_content_site_field[{{$key}}][field]"
value="{{$site_field->field}}">
<input type="hidden" name="iq_content_site_field[{{$key}}][settings]"
value="{{ json_encode($site_field->settings) }}">
<div class="card-body">
<span class="handle fa fa-grip-vertical d-inline-block bg-light text-info p-2 mr-2 mb-1"></span>
<i class="my-ui-icon-sm {{ $site_field->iq_content_model_field->fieldAsIcon() }} text-secondary mr-2"></i>
<strong>{{ $site_field->iq_content_model_field->name }}</strong>
<span class="text-muted ml-2">{{ $site_field->iq_content_model_field->identifier }}</span>
<div class="float-right">
{!! get_switcher_input($site_field->active, 'iq_content_site_field['.$key.'][active]') !!}
</div>
<hr class="border-light my-2">
<div class="form-group">
@if($site_field->field == "string")
{{ Form::text('iq_content_site_field['.$key.'][content]', $site_field->content, array('class'=>'form-control')) }}
@endif
@if($site_field->field == "text")
@if($site_field->settings['editor'] == 'off')
{{ Form::textarea('iq_content_site_field['.$key.'][content]', $site_field->content , ['class' => 'form-control']) }}
@else
{{ Form::textarea('iq_content_site_field['.$key.'][content]', $site_field->content , ['class' => 'form-control summernote']) }}
@endif
@endif
@if($site_field->field == "media")
{{ Form::text('iq_content_site_field['.$key.'][content]', $site_field->content, array('class'=>'form-control')) }}
@endif
</div>
<span class="text-muted ml-2">{{ $site_field->iq_content_model_field->fieldAsName() }}</span>
<div class="float-left">
<i class="fa fa-search"></i> {!! get_switcher_input($site_field->search, 'iq_content_site_field['.$key.'][search]') !!}
</div>
</div>
</div>
@endforeach
</div>
@endif
</div>
@endif
{!! Form::close() !!}
</div>
</div>
{!! Form::close() !!}
@endif
</div>
</div><!-- / .row -->
</div><!-- / .card -->
</div>
@endsection

View file

@ -2,89 +2,72 @@
@section('content')
<h4 class="font-weight-bold mb-4">
Reiseführer Trees
<h4 class="font-weight-bold py-3 mb-1">
{{ __('Reiseführer Trees') }}
</h4>
<div class="card messages-card">
<div class="row no-gutters">
<!-- content list -->
<div class="col">
<!-- Controls -->
<div class="media flex-wrap align-items-center py-2 px-2">
<div class="media-body d-flex flex-wrap flex-basis-100 flex-basis-sm-auto">
<button type="button" class="btn btn-default borderless md-btn-flat icon-btn messages-sidebox-toggler d-lg-none d-block text-muted text-large mr-2"><i class="ion ion-md-more"></i></button>
<a href="" class="btn btn-default borderless md-btn-flat icon-btn messages-tooltip text-muted" title="Refresh"><i class="ion ion-md-refresh"></i></a>
</div>
</div>
<!-- / Controls -->
<div class="table-responsive py-3 px-2">
<table class="iq-datatables-standard table table-striped">
<thead>
<tr>
<th style="max-width: 60px;">#</th>
<th>Name</th>
<th>Identifier</th>
<th>Description</th>
<th>Nodes(s)</th>
<th>Updated</th>
<th>Status</th>
</tr>
</thead>
<tbody>
@foreach($models as $model)
<tr class="">
<td>
<a href="{{ route('iq_content_tree_detail', [$model->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</a>
</td>
<td><a href="{{ route('iq_content_tree_detail', [$model->id]) }}">{{ $model->name }}</a></td>
<td>{{ $model->identifier }}</td>
<td>{{ $model->description }}</td>
<td>{{ $model->iq_content_tree_nodes->count() }}</td>
<td>{{ $model->updated_at->format("d/m/Y") }}</td>
<td>{!! get_active_badge($model->active) !!}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="card">
<div class="card-datatable table-responsive py-2">
<div class="ml-2 mb-2 text-left">
<button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-content"
data-request=""
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Add Tree</button>
</div>
<!-- / content list -->
<!-- sidebox -->
<div class="messages-sidebox messages-scroll col">
<div class="card-header text-uppercase text-expanded text-muted">Tree</div>
<div class="card-body py-3">
<div class="media align-items-center">
<div class="media-body">
<button type="button" class="btn btn-primary btn-block" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-content"
data-request=""
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Add Tree</button>
</div>
<a href="javascript:void(0)" class="messages-sidebox-toggler d-lg-none d-block text-muted text-large font-weight-light pl-4">&times;</a>
</div>
</div>
<div class="card-header text-uppercase text-expanded text-muted">Filter</div>
<div class="card-body py-3">
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center text-body font-weight-bold py-2">
<div>
All
</div>
<div class="badge badge-primary">{{ count($models) }}</div>
</a>
<hr class="border-light my-4">
</div>
<table class="datatables-travel_guide table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">#</th>
<th>Name</th>
<th>Identifier</th>
<th>Description</th>
<th>Nodes(s)</th>
<th>Updated</th>
<th>Status</th>
</tr>
</thead>
<tbody>
@foreach($models as $model)
<tr class="">
<td>
<a href="{{ route('iq_content_tree_detail', [$model->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</a>
</td>
<td><a href="{{ route('iq_content_tree_detail', [$model->id]) }}">{{ $model->name }}</a></td>
<td>{{ $model->identifier }}</td>
<td>{{ $model->description }}</td>
<td>{{ $model->iq_content_tree_nodes->count() }}</td>
<td>{{ $model->updated_at->format("d/m/Y") }}</td>
<td>{!! get_active_badge($model->active) !!}</td>
</tr>
@endforeach
</tbody>
</table>
<div class="mt-4 col">
<button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-content"
data-request=""
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Add Tree</button>
</div>
<!-- / sidebox -->
</div><!-- / .row -->
</div><!-- / .card -->
</div>
<script>
$( document ).ready(function() {
$('.datatables-travel_guide').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"language": {
"url": "/js/German.json"
},
});
});
</script>
</div>
@endsection

View file

@ -0,0 +1,306 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
Vorlage verwalten
<span class="float-right">
<button class="btn btn-sm btn-warning" data-toggle="modal" data-target="#exampleNotice"><i class="fa">?</i> </button>
</span>
</h4>
<!-- Modal -->
<div class="modal fade" id="exampleNotice" tabindex="-1" role="dialog" aria-labelledby="exampleNoticeTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleNoticeTitle">Hinweise</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>
Hinweise zu Platzhaltern im den Vorlagen:
</p>
<style>
ul.exampleModal {
padding-left: 15px;
}
ul.exampleModal li {
border-bottom: 1px solid #cfcfcf;
margin-bottom: 8px;
}
</style>
<ul class="exampleModal">
<li><strong>#Name#</strong> (in jedem Textfeld)<br>
Name der Reise - Jordanien ..
</li>
<li><strong>#Nummer#</strong> (in jedem Textfeld)<br>
Reisenummer - JORD-INT..
</li>
<li><strong>#Zimmer#</strong> (in jedem Textfeld)<br>
Anzahl x Beichnung der gebuchten Zimmer mit Komma getrennt - 2 x Doppel..,
</li>
<li><strong>#Flughafen#</strong> (in jedem Textfeld)<br>
Name es Abflughafens - Düssel..
</li>
<li><strong>#Raumname#</strong> (wird bei Grundpreis Reise ausgewertet)<br>
Name des gebuchten Raums - Doppel..
</li>
<li><strong>#Kategorie#</strong> (wird bei Aufpreis Kategorie ausgewertet)<br>
Name der zusätzlichen Kategorie - Komfort (4 Sterne)
</li>
<li><strong>#Option#</strong> (wird bei Aufpreis Option (derzeit nur Verpflegung) ausgewertet)<br>
Name der zusätzlichen Optionen - Halbpension
</li>
</ul>
@if(Auth::user()->isSuperAdmin())
<br>
<p><strong>Anpassung der Textbausteine für die Preisen <a href="{{ url('admin/translation/file/_vorlagen/de/de/all') }}">Inhalte -> Vorlagen</a></strong></p>
@endif
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">schließen</button>
</div>
</div>
</div>
</div>
{!! Form::open(['url' => route('draft_detail', [$id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
<input type="hidden" name="id" id="id" value="{{$id}}">
<!-- draft -->
<div class="card mb-2">
<div class="card-body">
<div class="form-group">
<label class="custom-control custom-checkbox float-right">
{!! Form::checkbox('active', 1, $draft->active, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('sichtbar')}}</span>
</label>
<label class="form-label" for="draft_name">{{ __('Bezeichnung') }}*</label>
{{ Form::text('name', $draft->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'draft_name', 'required'=>true)) }}
</div>
</div>
</div>
@if(count($draft->draft_items))
@php($i = 1)
<div class="text-left mt-3 mb-2">
<button type="submit" name="action" value="saveAll" class="btn btn-submit btn-sm">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('drafts')}}" class="btn btn-default btn-sm">{{ __('back') }}</a>
<div class="float-right">
<button type="submit" name="action" value="addItem" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen</button>
</div>
</div>
<div id="dragula-drag-handles">
@foreach($draft->draft_items as $draft_item)
<!-- item -->
<div class="card mb-2" @if($draft_item->draft_type) style="background-color: {{ $draft_item->draft_type->color }}" @endif>
<div class="card-body row">
<div class="form-group col-md-3 col-12">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][draft_type_id]" id="draft_item_{{$draft_item->id }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($draft_item->draft_type_id) !!}
</select>
</div>
<div class="form-group col-md-3 col-4">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][days_start]]" id="draft_item_{{$draft_item->id }}_days_start">
<option value="">(Datum) Start + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item->days_start, 30, ' Tag(e)') !!}
</select>
</div>
<div class="form-group col-md-3 col-4">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][days_duration]" id="draft_item_{{$draft_item->id }}_days_duration">
<option value="">(Datum) Dauer + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item->days_duration, 30, ' Tag(e)') !!}
</select>
</div>
<div class="form-group col-md-3 col-4 text-right">
<h5 class="float-right mt-1">#{{ $i++ }} </h5>
<span class=" handle ion ion-ios-move d-inline-block bg-primary text-white p-2 mr-2 mb-1"></span>
<button type="submit" name="action" value="up_{{$draft_item->id}}" class="btn btn-xs btn-default"><i class="fa fa-arrow-up"></i> </button>
<button type="submit" name="action" value="down_{{$draft_item->id}}" class="btn btn-xs btn-default mr-2"><i class="fa fa-arrow-down"></i> </button>
</div>
<div class="form-group col-sm-10 col-8">
{{ Form::textarea('draft_item['.$draft_item->id.'][service]', $draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control autoExpand', 'id'=>'draft_item_'.$draft_item->id.'_service', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</div>
<div class="form-group col-sm-2 col-4">
<div class="text-right mt-2 float-right">
<a class="text-danger" href="{{ route('draft_item_delete', [$draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a>
</div>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('draft_item['.$draft_item->id.'][in_pdf]', 1, $draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</div>
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][adult]" id="draft_item_{{$draft_item->id }}_adult">
<option value="">Teilnehmer</option>
{!! HTMLHelper::getRangeOptions($draft_item->adult, 10, ' T.') !!}
</select>
</div>
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$draft_item->id.'][price_adult]', $draft_item->price_adult, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$draft_item->id.'_price_adult',)) }}
</div>
</div>
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][children]" id="draft_item_{{$draft_item->id}}_children">
<option value="">Kinder</option>
{!! HTMLHelper::getRangeOptions($draft_item->children, 10, ' K.') !!}
</select>
</div>
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$draft_item->id.'][price_children]', $draft_item->price_children, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$draft_item->id.'_price_children')) }}
</div>
</div>
</div>
</div>
@endforeach
</div>
@endif
@if(!empty($draft_items))
@foreach($draft_items as $key => $draft_item)
<!-- item -->
<div class="card mb-2">
<div class="card-body row">
<div class="form-group col-sm-6">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$key}}][draft_type_id]" id="draft_item_{{$key }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($draft_item['draft_type_id']) !!}
</select>
</div>
<div class="form-group col-sm-3 col-6">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$key}}][days_start]]" id="draft_item_{{$key }}_days_start">
<option value="">(Datum) Start + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item['days_start'], 30, ' Tag(e)') !!}
</select>
</div>
<div class="form-group col-sm-3 col-6">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$key}}][days_duration]" id="draft_item_{{$key }}_days_duration">
<option value="">(Datum) Dauer + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item['days_duration'], 30, ' Tag(e)') !!}
</select>
</div>
<div class="form-group col-sm-12">
{{ Form::textarea('draft_item['.$key.'][service]', $draft_item['service'], array('placeholder'=>__('Leistungen'), 'class'=>'form-control', 'id'=>'draft_item_'.$key.'_service', 'rows'=>'1')) }}
</div>
<div class="form-group col-sm-2 col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$key}}][adult]" id="draft_item_{{$key }}_adult">
<option value="">Teilnehmer</option>
{!! HTMLHelper::getRangeOptions($draft_item['adult'], 10, ' T.') !!}
</select>
</div>
<div class="form-group col-sm-2 col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$key.'][price_adult]', $draft_item['price_adult'], array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$key.'_price_adult',)) }}
</div>
</div>
<div class="form-group col-sm-2 col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$key}}][children]" id="draft_item_{{$key}}_children">
<option value="">Kinder</option>
{!! HTMLHelper::getRangeOptions($draft_item['children'], 10, ' K.') !!}
</select>
</div>
<div class="form-group col-sm-2 col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$key.'][price_children]', $draft_item['price_children'], array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$key.'_price_children')) }}
</div>
</div>
<div class="form-group col-sm-2 col-3">
<label class="custom-control custom-checkbox mt-2">
{!! Form::checkbox('draft_item['.$key.'][in_pdf]', 1, $draft_item['in_pdf'], ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</div>
</div>
</div>
@endforeach
<div class="text-left mt-3">
<button type="submit" name="action" value="saveAllFromOld" class="btn btn-submit">{{ __('aus Vorlage speichern') }}</button>&nbsp;
<a href="{{route('drafts')}}" class="btn btn-default">{{ __('back') }}</a>
</div>
@else
<div class="text-right">
<button type="submit" name="action" value="addItem" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen</button>
</div>
<div class="text-left mt-3">
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('drafts')}}" class="btn btn-default">{{ __('back') }}</a>
</div>
@endif
{!! Form::close() !!}
@endsection

View file

@ -2,6 +2,41 @@
@section('content')
<style>
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.btn-xs {
line-height: 1.3em;
}
.table tbody + tbody {
border-top: 1px solid #9c9c9c;
}
.table th, .table td {
border-top: none;
}
.table tr.border-none td, .table tr.border-none th {
border-top: none;
}
.table .thead-dark th {
color: #4E5155;
background-color: rgba(24, 28, 33, 0.1);
border-color: rgba(63, 69, 74, 0.1);
}
.input-group-text {
padding: 0.438rem 0.475rem;
}
</style>
<h4 class="font-weight-bold py-3 mb-1">
Vorlage verwalten
<span class="float-right">
@ -108,96 +143,92 @@
<button type="submit" name="action" value="addItem" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen</button>
</div>
</div>
<div id="dragula-drag-handles">
<div class="table-responsive mb-4">
<table class="table mb-0" id="table_dragula_tbody" style="min-width: 1080px">
<thead class="thead-dark">
<tr>
<th style="width: 1em"></th>
<th style="width: 1em">#</th>
<th>Leistung</th>
<th style="width: 9em">Datum Start</th>
<th style="width: 9em">Datum Dauer</th>
<th style="width: 15em">Teilnehmer/EP</th>
<th style="width: 15em">Kinder/EP</th>
<th style="width: 8em">#</th>
</tr>
</thead>
@foreach($draft->draft_items as $draft_item)
<!-- item -->
<div class="card mb-2" @if($draft_item->draft_type) style="background-color: {{ $draft_item->draft_type->color }}" @endif>
<tbody class="draft_item_tbody">
<tr @if($draft_item->draft_type) style="background-color: {{ $draft_item->draft_type->color }}" @endif>
<td>
<span class="handle ion ion-ios-move d-inline-block bg-primary text-white p-1"></span>
<div class="card-body row">
<div class="form-group col-md-3 col-12">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][draft_type_id]" id="draft_item_{{$draft_item->id }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($draft_item->draft_type_id) !!}
</select>
</div>
<div class="form-group col-md-3 col-4">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][days_start]]" id="draft_item_{{$draft_item->id }}_days_start">
<option value="">(Datum) Start + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item->days_start, 30, ' Tag(e)') !!}
</select>
</div>
<div class="form-group col-md-3 col-4">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][days_duration]" id="draft_item_{{$draft_item->id }}_days_duration">
<option value="">(Datum) Dauer + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item->days_duration, 30, ' Tag(e)') !!}
</select>
</div>
<div class="form-group col-md-3 col-4 text-right">
<h5 class="float-right mt-1">#{{ $i++ }} </h5>
<span class=" handle ion ion-ios-move d-inline-block bg-primary text-white p-2 mr-2 mb-1"></span>
<button type="submit" name="action" value="up_{{$draft_item->id}}" class="btn btn-xs btn-default"><i class="fa fa-arrow-up"></i> </button>
<button type="submit" name="action" value="down_{{$draft_item->id}}" class="btn btn-xs btn-default mr-2"><i class="fa fa-arrow-down"></i> </button>
</div>
<div class="form-group col-sm-10 col-8">
{{ Form::textarea('draft_item['.$draft_item->id.'][service]', $draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control autoExpand', 'id'=>'draft_item_'.$draft_item->id.'_service', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</div>
<div class="form-group col-sm-2 col-4">
<div class="text-right mt-2 float-right">
<a class="text-danger" href="{{ route('draft_item_delete', [$draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a>
</div>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('draft_item['.$draft_item->id.'][in_pdf]', 1, $draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</div>
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][adult]" id="draft_item_{{$draft_item->id }}_adult">
<option value="">Teilnehmer</option>
</td>
<td><span class="item_pos_number">{{ $i++ }}</span></td>
<td>
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][draft_type_id]" id="draft_item_{{$draft_item->id }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($draft_item->draft_type_id) !!}
</select>
</td>
<td>
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][days_start]]" id="draft_item_{{$draft_item->id }}_days_start">
<option value="">(Datum) Start + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item->days_start, 30, ' Tag(e)') !!}
</select>
</td>
<td>
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][days_duration]" id="draft_item_{{$draft_item->id }}_days_duration">
<option value="">(Datum) Dauer + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item->days_duration, 30, ' Tag(e)') !!}
</select>
</td>
<td>
<div class="input-group">
<select class="custom-select" data-style="btn-light" name="draft_item[{{$draft_item->id}}][adult]" id="draft_item_{{$draft_item->id }}_adult">
<option value="">0</option>
{!! HTMLHelper::getRangeOptions($draft_item->adult, 10, ' T.') !!}
</select>
{{ Form::text('draft_item['.$draft_item->id.'][price_adult]', $draft_item->price_adult, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$draft_item->id.'_price_adult',)) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$draft_item->id.'][price_adult]', $draft_item->price_adult, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$draft_item->id.'_price_adult',)) }}
</div>
</div>
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][children]" id="draft_item_{{$draft_item->id}}_children">
</td>
<td>
<div class="input-group">
<select class="custom-select" data-style="btn-light" name="draft_item[{{$draft_item->id}}][children]" id="draft_item_{{$draft_item->id}}_children">
<option value="">Kinder</option>
{!! HTMLHelper::getRangeOptions($draft_item->children, 10, ' K.') !!}
</select>
{{ Form::text('draft_item['.$draft_item->id.'][price_children]', $draft_item->price_children, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$draft_item->id.'_price_children')) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$draft_item->id.'][price_children]', $draft_item->price_children, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$draft_item->id.'_price_children')) }}
</div>
</div>
</td>
<td>
<button type="button" name="" value="up_{{$draft_item->id}}" class="btn btn-xs btn-default move-up-btn"><i class="fa fa-arrow-up"></i> </button>
<button type="button" name="" value="down_{{$draft_item->id}}" class="btn btn-xs btn-default mr-2 move-down-btn"><i class="fa fa-arrow-down"></i> </button>
<a class="text-danger" href="{{ route('draft_item_delete', [$draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a>
</td>
<tr @if($draft_item->draft_type) style="background-color: {{ $draft_item->draft_type->color }}" @endif class="border-none">
<td colspan="7">
{{ Form::textarea('draft_item['.$draft_item->id.'][service]', $draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control autoExpand', 'id'=>'draft_item_'.$draft_item->id.'_service', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</td>
<td>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('draft_item['.$draft_item->id.'][in_pdf]', 1, $draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</td>
</div>
</div>
</tr>
</tbody>
@endforeach
</table>
</div>
@endif
@ -296,7 +327,54 @@
{!! Form::close() !!}
<script>
$(document).ready(function() {
$.dragYScroll();
var sort_item_pos_number = function(){
var index = 1;
$('#table_dragula_tbody .draft_item_tbody').each(function () {
$(this).find('.item_pos_number').html(index);
$(this).data('rowPosition', index);
index++;
});
};
$(function() {
// Drag handle
var sortableItems = dragula([$('#table_dragula_tbody')[0]], {
moves: function (el, container, handle) {
return handle.classList.contains('handle');
}
});
sortableItems.on('dragend', function() {
//sort new
sort_item_pos_number();
});
});
$('table .move-up-btn').on('click', function () {
var thisRow = $(this).closest('tbody');
var prevRow = thisRow.prev();
if (prevRow.length) {
prevRow.before(thisRow);
sort_item_pos_number()
}
});
$('table .move-down-btn').on('click', function () {
var thisRow = $(this).closest('tbody');
var nextRow = thisRow.next();
if (nextRow.length) {
nextRow.after(thisRow);
sort_item_pos_number()
}
});
});
</script>

View file

@ -0,0 +1,269 @@
@extends('layouts.layout-2')
@section('content')
<style>
.nav-pills > .nav-item > .nav-link {
height: 5rem;
display: flex;
align-items: center;
}
.nav-pills > .sub-item > .nav-link {
height: 3rem;
padding-left: 3rem;
}
.nav-pills > li.active > a, .nav-pills > li:hover > a {
background-color: #ddd;
border-radius: 0;
color: #333844;
}
.carousel-image {
height: 50vh;
background-position: center;
background-size: contain;
background-repeat: no-repeat;
margin: 0 auto;
}
.carousel-indicators {
bottom: 0;
}
.carousel-label, .carousel-label:hover {
position: absolute;
bottom: 0;
background: linear-gradient(transparent 10px, rgba(0, 0, 0, .4), rgba(0, 0, 0, .5));
padding: 40px 20px 30px;
width: 100%;
color: white;
word-break: break-word;
text-align: center;
}
.carousel-control-background {
border-radius: 50%;
width: 25px;
height: 25px;
box-shadow: 0 0 10px #666;
background-color: #666;
}
#uploadForm > .dz-default.dz-message {
border: 2px dashed #ccc;
border-radius: 5px;
color: #aaa;
margin: 0;
padding: 3rem 0;
}
</style>
<h4 class="font-weight-bold mb-4">
Medien
</h4>
<div id="alerts"></div>
<div class="card messages-card">
<div class="row no-gutters">
<!-- content list -->
<div class="col">
<div class="file-manager-actions container-p-x py-2">
<div>
<button id="lfm_upload" type="button" class="btn btn-primary mr-2"><i class="fas fa-upload"></i>&nbsp; Hochladen</button>
<button id="lfm_add-folder" type="button" class="btn btn-secondary mr-2"><i class="fas fa-folder"></i> Neuer Ordner</button>
<div class="btn-group mr-2 d-none media-multi-settings">
<button type="button" class="btn btn-default md-btn-flat dropdown-toggle px-2" data-toggle="dropdown"><i class="ion ion-ios-settings"></i> Optionen</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="javascript:void(0)" data-action="selected_items_move"><i class="fa fa-reply-all"></i> verschieben</a>
<a class="dropdown-item" href="javascript:void(0)" data-action="selected_items_remove"><i class="fa fa-trash-alt"></i> löschen</a>
</div>
</div>
</div>
<div>
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-default icon-btn md-btn-flat active">
<input type="radio" name="file-manager-view" value="file-manager-col-view" checked> <span class="ion ion-md-apps"></span>
</label>
<label class="btn btn-default icon-btn md-btn-flat">
<input type="radio" name="file-manager-view" value="file-manager-row-view"> <span class="ion ion-md-menu"></span>
</label>
</div>
</div>
</div>
<a class="navbar-brand d-block d-lg-none" id="current_folder"></a>
<div class="container-m-nx container-m-ny bg-lightest mb-2" id="lfm_breadcrumbs">
<ol class="breadcrumb text-big container-p-x py-3 m-0">
<li class="breadcrumb-item">
<a href="javascript:void(0)">home</a>
</li>
<li class="breadcrumb-item">
<a href="javascript:void(0)">projects</a>
</li>
<li class="breadcrumb-item active">site</li>
</ol>
<hr class="m-0">
</div>
<div id="lfm_loading" class="d-none text-center mb-4"><i class="fas fa-spinner fa-spin"></i></div>
<div id="lfm_empty" class="text-center d-none">
<i class="far fa-folder-open"></i>
{{ trans('laravel-filemanager::lfm.message-empty') }}
</div>
<div id="lfm_item-template" class="file-item d-none">
<div class="file-item-select-bg bg-primary"></div>
<label class="file-item-checkbox custom-control custom-checkbox lfm-click-disable">
<input type="checkbox" class="custom-control-input lfm-control-input lfm-click-disable">
<span class="custom-control-label lfm-click-disable"></span>
</label>
<a href="javascript:void(0)" class="file-item-name">
</a>
<div class="file-item-changed"></div>
<div class="file-item-actions btn-group lfm-click-disable">
<button type="button" class="btn btn-default btn-sm rounded-pill icon-btn borderless md-btn-flat hide-arrow dropdown-toggle lfm-click-disable" data-toggle="dropdown"><i class="ion ion-ios-more lfm-click-disable"></i></button>
<div class="dropdown-menu">
<a class="dropdown-item" href="javascript:void(0)" data-action="item_rename"><i class="fa fa-sync-alt"></i> umbenennen</a>
<a class="dropdown-item" href="javascript:void(0)" data-action="item_move"><i class="fa fa-reply"></i> verschieben</a>
<a class="dropdown-item" href="javascript:void(0)" data-action="item_download"><i class="fa fa-download"></i> download</a>
<a class="dropdown-item" href="javascript:void(0)" data-action="item_trash"><i class="fa fa-trash"></i> löschen</a>
</div>
</div>
</div>
<div class="file-manager-container file-manager-col-view" id="file-manager-content">
</div>
</div>
<!-- / content list -->
{{--
<!-- sidebox -->
<div class="messages-sidebox messages-scroll col">
<div class="card-header text-uppercase text-expanded text-muted">Areas</div>
<div class="card-body py-3">
<div class="media align-items-center">
<div class="media-body">
<button type="button" class="btn btn-primary btn-block" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="area"
data-action="area-content"
data-request=""
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Add area</button>
</div>
<a href="javascript:void(0)" class="messages-sidebox-toggler d-lg-none d-block text-muted text-large font-weight-light pl-4">&times;</a>
</div>
</div>
<div class="card-header text-uppercase text-expanded text-muted">Filter</div>
<div class="card-body py-3">
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center text-body font-weight-bold py-2">
<div>
All
</div>
<div class="badge badge-primary">{{ count($models) }}</div>
</a>
<hr class="border-light my-4">
</div>
</div>
<!-- / sidebox -->
--}}
</div><!-- / .row -->
</div><!-- / .card -->
<div class="modal fade" id="uploadModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">{{ trans('laravel-filemanager::lfm.title-upload') }}</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aia-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
{!! Form::open([ 'url' => route('iqcontent.lfm.upload'), 'method' => 'post', 'files' => true, 'enctype' => 'multipart/form-data', 'class' => 'dropzone', 'id' => 'uploadForm' ]) !!}
<div class="form-group" id="attachment">
<div class="controls text-center">
<div class="input-group w-100">
<a class="btn btn-primary w-100 text-white" id="upload-button">{{ trans('laravel-filemanager::lfm.message-choose') }}</a>
</div>
</div>
</div>
<input type='hidden' name='working_dir' id='working_dir'>
<input type='hidden' name='type' id='type' value='{{ request("type") }}'>
<div class="fallback">
<input name="file" type="file" multiple>
</div>
{!! Form::close() !!}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-close') }}</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="notify" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-close') }}</button>
<button type="button" class="btn btn-primary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-confirm') }}</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="dialog" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"></h4>
</div>
<div class="modal-body">
<input type="text" class="form-control">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-close') }}</button>
<button type="button" class="btn btn-primary w-100" data-dismiss="modal">{{ trans('laravel-filemanager::lfm.btn-confirm') }}</button>
</div>
</div>
</div>
</div>
<div id="previewTemplate" class="d-none bg-light text-center">
<div class="ui-bordered">
<img src="#" alt="" class="img-fluid media-preview" style="background-color: #fff;">
<div class="p-3">
<span class="float-right"><a href="#" class="media-download"><i class="fas fa-external-link-alt"></i></a></span>
<h5 class="media-name"> </h5>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ion ion-md-link"></i></span>
</div>
<input type="text" class="form-control media-url" placeholder="Link" readonly>
</div>
</div>
</div>
</div>
<script>
var lang = {!! json_encode(trans('laravel-filemanager::lfm')) !!};
</script>
@endsection

View file

@ -15,8 +15,8 @@
@if(!$data['request'])
<div class="form-row">
<div class="form-group col">
<label for="field_id" class="form-label">Reiseführer Seite (required)</label>
<select class="selectpicker" name="travel_guide_id" id="travel_guide_id"
<label for="modal_travel_guide_id" class="form-label">Reiseführer Seite (required)</label>
<select class="selectpicker" name="travel_guide_id" id="modal_travel_guide_id"
data-style="btn-light" data-live-search="true" required>
{!! \App\Models\TravelGuide::getSiteOptions(0) !!}
</select>

View file

@ -0,0 +1,117 @@
{!! Form::open(['url' => $url, 'class' => 'modal-content']) !!}
<input type="hidden" name="id" value="{{ $value->id }}">
<input type="hidden" name="travel_guide_id" value="{{ $data['travel_guide_id'] }}">
<input type="hidden" name="model" value="{{$data['model']}}">
<input type="hidden" name="action" value="{{$data['action']}}">
<input type="hidden" name="request" value="{{$data['request']}}">
<input type="hidden" name="name" value="add">
<input type="hidden" name="route" value="{{ route('iq_content_modal_load') }}">
<input type="hidden" name="target" value="#modals-load-content">
<div class="modal-header">
<h5 class="modal-title">
{{$data['title']}}
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
@if(isset($data['tree_id']))
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="modal_tree_id" class="form-label">Reiseführer Tree (required)</label>
<select class="selectpicker" name="tree_id" id="modal_tree_id"
data-style="btn-light" data-live-search="true" required>
{!! \App\Models\IQContentTree::getTreesOptions( $data['tree_id']) !!}
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="modal_tree_node_id" class="form-label">Reiseführer Tree (required)</label>
<select class="selectpicker" name="tree_node_id" id="modal_tree_node_id"
data-style="btn-light" data-live-search="true" required>
{!! \App\Models\IQContentTreeNode::getTreeNodeOptions($data['tree_id'],0) !!}
</select>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">close</button>
<button type="submit" class="btn btn-primary"><i class="ion ion-md-save"></i> save</button>
</div>
</div>
@else
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="modal_tree_id" class="form-label">Reiseführer Tree Seite (required)</label>
<select class="selectpicker" name="tree_id" id="modal_tree_id"
data-style="btn-light" data-live-search="true" required>
{!! \App\Models\IQContentTree::getTreesOptions() !!}
</select>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">close</button>
</div>
@endif
<script>
$(document).ready(function() {
$("#modal_tree_id").change(function () {
var tree_id = $(this).find(":selected").val();
var form = $(this).closest('form').serializeArray();
var data = {};
$.each(form, function() {
if (data[this.name]) {
if (!data[this.name].push) {
data[this.name] = [data[this.name]];
}
data[this.name].push(this.value || '');
} else {
data[this.name] = this.value || '';
}
});
console.log(data);
var url = data.route,
contentType = 'application/x-www-form-urlencoded; charset=UTF-8';
$.ajax({
url: url,
data: data,
type: "POST",
dataType: "json",
cache: false,
contentType: contentType,
encode: true,
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(data) {
console.log(data);
$(data.response.target).find('.modal-dialog').html(data.html);
$('.selectpicker').selectpicker('refresh');
},
error: function(xhr, status, errorThrown) {
console.log(xhr);
console.log(xhr.responseText);
console.log(errorThrown);
console.log("Sorry, there was a problem!");
}
});
});
});
</script>
{!! Form::close() !!}

View file

@ -0,0 +1,50 @@
@extends('layouts.layout-2')
@section('content')
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<h4 class="font-weight-bold mb-4">
Content Tools: Links
</h4>
<div class="card mb-4">
<div class="card-body">
<!-- Controls -->
{!! Form::open(['url' => route('iq_tools_content_links'), 'class' => '']) !!}
<div class="form-group mb-1">
<label class="form-label" for="description">Description</label>
{{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>20)) }}
</div>
<button type="submit" class="btn btn-primary"><i class="ion"></i> action</button>
{!! Form::close() !!}
</div>
@if(count($values)>0)
<div class="card-body">
<!-- Controls -->
@foreach($values as $value)
{{$value}}<br>
@endforeach
</div>
@endif
</div>
@endsection

View file

@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}" class="default-style">
<html lang="{{ app()->getLocale() }}" class="default-style layout-collapsed">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1">
@ -30,7 +30,14 @@
<link rel="stylesheet" href="{{ mix('/vendor/libs/growl/growl.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/dropzone/dropzone.css') }}">
@if(isset($helper))
<link rel="stylesheet" href="{{ asset('/vendor/laravel-filemanager/css/dropzone.min.css') }}">
@else
<link rel="stylesheet" href="{{ asset('/vendor/libs/dropzone/dropzone.css') }}">
@endif
<link rel="stylesheet" href="{{ mix('/vendor/libs/bootstrap-select/bootstrap-select.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/select2/select2.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/datatables/datatables.css') }}">
@ -40,50 +47,25 @@
<link rel="stylesheet" href="{{ mix('/vendor/libs/minicolors/minicolors.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/nestable/nestable.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/pages/messages.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/pages/file-manager.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/laravel-filemanager/css/cropper.min.css') }}">
<!-- Layout helpers -->
<script src="{{ mix('/vendor/js/layout-helpers.js') }}"></script>
<!-- Libs -->
<!-- `perfect-scrollbar` library required by SideNav plugin -->
<link rel="stylesheet" href="{{ mix('/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') }}">
<style>
.btn.btn-light {
font-size: 0.9em;
}
.table thead th {
border-top: none;
}
.card-body {
padding: 1rem 1.5rem;
}
textarea.autoExpand{
box-sizing: border-box;
resize: none;
overflow: hidden;
}
.card {
border: 1px solid rgba(24, 28, 33, 0.20);
}
.dd-content-link {
overflow: hidden;
white-space: nowrap;
display: inline-block;
max-width: 7rem;
}
</style>
@yield('styles')
<!-- Application stylesheets -->
<link rel="stylesheet" href="{{ mix('/css/application.css') }}">
<link rel="stylesheet" href="{{ mix('/css/application.css') }}{{ get_file_last_time('js/application.css') }}">
<script src="{{ asset('/js/jquery.min.js') }}"></script>
<link rel="stylesheet" type="text/css" href="{{ asset('/css/cookieconsent.min.css') }}" />
@ -128,8 +110,14 @@
<script src="{{ mix('/vendor/js/bootstrap.js') }}"></script>
<script src="{{ mix('/vendor/js/sidenav.js') }}"></script>
<script src="{{ mix('/vendor/libs/growl/growl.js') }}"></script>
<script src="{{ asset('/vendor/libs/js-cookie/src/js.cookie.js') }}"></script>
@if(isset($helper))
<script src="{{ asset('/vendor/laravel-filemanager/js/dropzone.min.js') }}"></script>
@else
<script src="{{asset('/vendor/libs/dropzone/dropzone.js')}}"></script>
@endif
<script src="{{asset('/vendor/libs/dropzone/dropzone.js')}}"></script>
<script src="{{ mix('/vendor/libs/validate/validate.js') }}"></script>
<script src="{{ mix('/vendor/libs/bootstrap-select/bootstrap-select.js') }}"></script>
@ -139,11 +127,13 @@
<script src="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js') }}"></script>
<script src="{{asset('/js/bootstrap-datepicker.de.min.js')}}"></script>
<script src="{{ mix('/vendor/libs/dragula/dragula.js') }}"></script>
<script src="{{asset('/vendor/libs/nestable/nestable.js')}}"></script>
<script src="{{asset('/vendor/libs/nestable/my-nestable.js')}}"></script>
<script src="{{ mix('/vendor/libs/minicolors/minicolors.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.js') }}"></script>
<script src="{{ asset('/vendor/laravel-filemanager/js/cropper.min.js') }}"></script>
<script src="{{ asset('/js/pages_file-manager.js') }}"></script>
<script src="{{ asset('/js/filemanager.js') }}"></script>
<!-- Libs -->
<!-- `perfect-scrollbar` library required by SideNav plugin -->
@ -153,9 +143,34 @@
<!-- Application javascripts -->
<script src="{{ mix('/js/application.js') }}"></script>
<script src="{{ asset('/js/custom.js') }}"></script>
<script src="{{ asset('/js/custom.js?v') }}{{ get_file_last_time('js/custom.js') }}"></script>
<script>
@if(isset($helper))
Dropzone.options.uploadForm = {
paramName: "upload[]", // The name that will be used to transfer the file
uploadMultiple: false,
parallelUploads: 10,
clickable: '#upload-button',
//dictDefaultMessage: lang['message-drop'],
init: function() {
var _this = this; // For the closure
this.on('success', function(file, response) {
console.log(response);
if (response == 'OK') {
loadItems();
} else {
this.defaultOptions.error(file, response); //response.join('\n')
}
});
},
headers: {
'Authorization': 'Bearer ' + getUrlParam('token')
},
// acceptedFiles: "{{ implode(',', $helper->availableMimeTypes()) }}",
maxFilesize: ({{ $helper->maxUploadSize() }} / 1000),
};
@endif
// Dragula
$(function() {
// Drag handle
@ -192,7 +207,6 @@
});
});
$(document).ready(function() {
$('.summernote-small').summernote({
height: 150,
@ -210,8 +224,6 @@
});
});
jQuery.each(jQuery('textarea.autoExpand'), function() {
var offset = this.offsetHeight - this.clientHeight;
var resizeTextarea = function(el) {

View file

@ -119,11 +119,13 @@
@if(Auth::user()->isPermission('cms'))
<li class="sidenav-divider mb-1"></li>
<li class="sidenav-header small font-weight-semibold">ADMIN CMS</li>
@if(Auth::user()->isPermission('cms-cn'))
<li class="sidenav-item{{ Request::is('cms/content') ? ' active' : '' }}">
<a href="{{ route('cms_content') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-paper"></i><div>Inhalte</div></a>
</li>
@endif
@if(Auth::user()->isPermission('cms-iq-assets'))
<!-- <li class="sidenav-item{{ Request::is('iq/content/assets') ? ' active' : '' }}">
<a href="{{ route('iq_content_assets') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-images"></i><div>Medien</div></a>
</li>
-->
@endif
@if(Auth::user()->isPermission('cms-tg'))
<li class="sidenav-item{{ Request::is('cms/travel_guide/*') ? ' open' : '' }} {{ Request::is('iq/content/tree/*') ? ' open' : '' }}">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
@ -134,12 +136,11 @@
<li class="sidenav-item{{ Request::is('iq/content/tree/*') ? ' active' : '' }}">
<a href="{{ route('iq_content_tree_index') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-list"></i><div>Reiseführer Tree</div></a>
</li>
{{--
<li class="sidenav-item{{ Request::is('cms/travel_guide/page') ? ' active' : '' }}">
<a href="{{ route('cms_travel_guide_page') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-list-box"></i><div>Reiseführer Seiten</div></a>
</li>
--}}
<li class="sidenav-item{{ Request::is('cms/travel_guide/content') ? ' active' : '' }}">
<a href="{{ route('cms_travel_guide_content') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-paper"></i><div>Reiseführer Inhalte</div></a>
</li>
@ -156,6 +157,26 @@
<a href="{{ route('cms_sidebar') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-list"></i><div>Sidebar</div></a>
</li>
@endif
@if(Auth::user()->isPermission('cms-cn'))
<li class="sidenav-item{{ Request::is('cms/content/*') ? ' open' : '' }}">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
<i class="sidenav-icon ion ion-md-map"></i>
<div>Inhalte</div>
</a>
<ul class="sidenav-menu">
<li class="sidenav-item{{ Request::is('cms/content/country') ? ' active' : '' }} {{ Request::is('cms/content/country/*') ? ' active' : '' }}">
<a href="{{ route('cms_content_country') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-globe"></i><div>Reiseländer</div></a>
</li>
<li class="sidenav-item{{ Request::is('cms/content/all') ? ' active' : '' }}">
<a href="{{ route('cms_content_all') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-paper"></i><div>Allgemein</div></a>
</li>
</ul>
</li>
<li class="sidenav-item">
</li>
@endif
@endif
@endif
@ -195,6 +216,23 @@
</li>
@endif
{{--
<li class="sidenav-item @if(Request::is('iq/tools/content/*')) open @endif">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle"><i class="sidenav-icon ion ion-md-apps"></i>
<div>Tools</div>
</a>
<ul class="sidenav-menu">
<li class="sidenav-item">
<a target="_blank" href="{{route('iq_tools_content_links')}}" class="sidenav-link">
<div>Tree from HTML</div>
</a>
</li>
</ul>
</li>
--}}
{{-- <li class="sidenav-item{{ Request::is('admin/translate/*') ? ' open' : '' }}">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
<i class="sidenav-icon ion ion-ios-browsers"></i>

View file

@ -21,8 +21,8 @@
<div class="card-body">
<div class="form-row">
<div class="form-group col-sm-6">
<label class="form-label" for="widget_title">{{ __('Name') }}*</label>
{{ Form::text('name', $model->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'widget_name', 'required'=>true)) }}
<label class="form-label" for="name">{{ __('Name') }}*</label>
{{ Form::text('name', $model->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required'=>true)) }}
</div>
<div class="form-group col-sm-2">
<label class="form-label">&nbsp;</label>
@ -46,6 +46,12 @@
</label>
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-6">
<label class="form-label" for="slug">{{ __('Slug') }}</label>
{{ Form::text('slug', $model->slug, array('placeholder'=>__('Slug'), 'class'=>'form-control', 'id'=>'slug')) }}
</div>
</div>
<div id="show_active_frontend" @if(!$model->active_frontend) style="display: none;" @endif>
<hr>
@ -56,8 +62,20 @@
<label class="form-label" for="html_information">{{ __('Landinformationen (HTML)') }} </label>
{{ Form::textarea('html_information', $model->html_information, ['class' => 'form-control summernote-small']) }}
</div>
</div>
<hr>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="text_before">{{ __('Formular Text vor der Reise (max. 255 Zeichen)') }} </label>
{{ Form::text('text_before', $model->text_before, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Formular Text nach der Reise ( max. 255 Zeichen)') }} </label>
{{ Form::text('text_after', $model->text_after, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
</div>
<hr>
<h5>Einreisebestimmungen</h5>
@foreach($travel_nationalities as $travel_nationality)
<div class="form-row">

View file

@ -15,6 +15,8 @@
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('Slug')}}</th>
<th><i class="far fa-eye"></i> {{__('Seite')}}</th>
<th><i class="far fa-eye"></i> {{__('CRM')}}</th>
<th><i class="far fa-eye"></i> {{__('Kunden')}}</th>
@ -30,7 +32,7 @@
</a>
</td>
<td><a href="{{ route('admin_settings_travel_country_detail', [$value->id]) }}">{{ $value->name }}</a></td>
<td>{{ $value->slug }}</td>
<td data-sort="{{ $value->active_frontend }}">
@if($value->active_frontend)
<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>

View file

@ -68,9 +68,14 @@
{{ Form::text('to_date', $travel_user_booking_fewo->to_date, array('placeholder'=>__('Datum bis'), 'class'=>'form-control datepicker-base', 'required'=>true)) }}
</div>
<div class="col-sm-12">
<em><small>Bei Datumsänderungen wird die Verfügbarkeit gerüft sowie die Berechnung der Preise neu ausgeführt.</small></em>
<div class="float-right">
<em><small>Bei Datumsänderungen wird die Verfügbarkeit geprüft.</small></em>
</div>
<label class="custom-control custom-checkbox">
{!! Form::checkbox('calculate_price_new', 1, 0, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Neue Berechnung der Preise aus dem System.</span>
</label>
</div>
</div>
<hr>
@ -118,7 +123,7 @@
</div>
<div class="form-group col-sm-4 col-md-4 col-lg-2">
<label class="form-label" for="price_total">{{ __('Preis Gesamt') }}*</label>
{{ Form::text('price_total', $travel_user_booking_fewo->price_total, array('placeholder'=>__('Preis Gesamt'), 'class'=>'form-control')) }}
{{ Form::text('price_total', $travel_user_booking_fewo->price_total, array('placeholder'=>__('Preis Gesamt'), 'class'=>'form-control', 'readonly')) }}
</div>
</div>
@ -179,6 +184,10 @@
{{ Form::textarea('notice', $travel_user_booking_fewo->notice, ['class' => 'form-control autoExpand', 'rows'=>1]) }}
</div>
</div>
<div class="float-right">
Letze Änderung: {{ $travel_user_booking_fewo->getLastChangeAt() }}
</div>
</div>
</div>
@ -191,8 +200,12 @@
<button type="submit" name="action" value="createInvoice" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Rechnung überschreiben?')}}');">{{ __('Mietbestätigung / Rechnung PDF überschreiben') }}</button>&nbsp;
</div>
</h4>
<a class="btn btn-secondary btn-sm" target="_blank" href="{{$travel_user_booking_fewo->getInvoiceUrlFile()}}/file"><i class="fa fa-file-pdf"></i> Mietbestätigung / Rechnung: {{$travel_user_booking_fewo->getInvoiceFileName()}}</a>
Erstellt: <strong>{{$travel_user_booking_fewo->getInvoiceLastModified()}}</strong>
<p><a class="btn btn-secondary btn-sm" target="_blank" href="{{$travel_user_booking_fewo->getInvoiceUrlFile()}}/file?t={{time()}}"><i class="fa fa-file-pdf"></i> Mietbestätigung / Rechnung: {{$travel_user_booking_fewo->getInvoiceFileName()}}</a>
<span class="p-1 bage @if($travel_user_booking_fewo->isChangeLowerInvoiceCreate()) badge-success @else badge-danger @endif">
Erstellt: <strong>{{$travel_user_booking_fewo->getInvoiceLastModified()}}</strong>
</span>
</p>
@else
<h4>Mietbestätigung / Rechnung
<div class="text-right float-right">
@ -234,8 +247,10 @@
<button type="submit" name="action" value="createTravelInfo" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Anreiseinfo überschreiben?')}}');">{{ __('Anreiseinfo speichern und PDF überschreiben') }}</button>&nbsp;
</div>
</h4>
<p><a class="btn btn-secondary btn-sm" target="_blank" href="{{$travel_user_booking_fewo->getTravelInfoUrlFile()}}/file"><i class="fa fa-file-pdf"></i> {{$travel_user_booking_fewo->getTravelInfoFileName()}}</a>
Erstellt: <strong>{{$travel_user_booking_fewo->getTravelInfoLastModified()}}</strong></p>
<p><a class="btn btn-secondary btn-sm" target="_blank" href="{{$travel_user_booking_fewo->getTravelInfoUrlFile()}}/file?t={{time()}}"><i class="fa fa-file-pdf"></i> {{$travel_user_booking_fewo->getTravelInfoFileName()}}</a>
<span class="p-1 bage @if($travel_user_booking_fewo->isChangeLowerTravelInfoCreate()) badge-success @else badge-danger @endif">
Erstellt: <strong>{{$travel_user_booking_fewo->getTravelInfoLastModified()}}</strong>
</span></p>
@else
<h4>Anreiseinfo
<div class="text-right float-right">
@ -250,7 +265,7 @@
</button>
<div class="collapse mt-2" id="collapseTravelInfo">
{{ Form::textarea('info_mail_text', $travel_user_booking_fewo->info_mail_text, ['class' => 'form-control autoExpand', 'rows'=>1, 'id'=>'travel_info_user_text']) }}
<em>Grundtext in ADMIN CMS > <a href="{{route('cms_content')}}">Inhalte</a> > PDF Vorlage Anreiseinfo FeWo</em>
<em>Grundtext in ADMIN CMS > <a href="{{route('cms_content_all')}}">Inhalte</a> > PDF Vorlage Anreiseinfo FeWo</em>
<em class="small">(Änderungen werden hier gespeichert.)</em>
</div>
@ -269,7 +284,6 @@
</tbody>
</table>
@endif
<div class="text-right mt-0">
<button type="submit" name="action" value="sendInfosMailtoUser" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Mail an Mieter versenden?')}}');">{{ __('E-Mail mit Anreiseinfo an Kunden versenden') }}</button>&nbsp;
</div>
@ -380,9 +394,53 @@
return obj.val(n.replace(".", ","));
}
function check_price_total(){
//
price_total_float = calculate_price_total();
var val_price_total = floatNumber($("input[name='price_total']").val());
if(val_price_total === price_total_float){
$("input[name='price_total']").removeClass('is-invalid');
$("input[name='price_total']").addClass('is-valid');
}else{
$("input[name='price_total']").removeClass('is-valid');
$("input[name='price_total']").addClass('is-invalid');
}
}
function calculate_price_total(set_in_form = false){
formatNumber($("input[name='price_travel']"));
formatNumber($("input[name='price_balance']"));
formatNumber($("input[name='price_extra']"));
formatNumber($("input[name='price_travel_total']"));
formatNumber($("input[name='price_service']"));
formatNumber($("input[name='price_deposit']"));
price_travel = floatNumber($("input[name='price_travel']").val());
price_balance =floatNumber($("input[name='price_balance']").val());
price_extra =floatNumber($("input[name='price_extra']").val());
price_service = floatNumber($("input[name='price_service']").val());
price_deposit = floatNumber($("input[name='price_deposit']").val());
price_travel_total = parseFloat(price_travel + price_balance + price_extra);
price_travel_total = parseFloat((Math.round(price_travel_total * 100) / 100)).toFixed(2).replace(".", ",");
price_total_float = parseFloat(price_travel + price_balance + price_extra + price_service + price_deposit);
price_total = parseFloat((Math.round(price_total_float * 100) / 100)).toFixed(2).replace(".", ",");
if(set_in_form){
$("input[name='price_travel_total']").val(price_travel_total);
$("input[name='price_total']").val(price_total);
}
return price_total_float;
}
$( document ).ready(function() {
@if($travel_user_booking_fewo->isInvoice())
$("input[name='invoice_number']").on('focus', function () {
if (!$(this).data('focused')) {
@ -399,29 +457,15 @@
$('#travel_info_user_text').keyup();
});
$('input.input-auto-calc').on('change', function () {
formatNumber($("input[name='price_travel']"));
formatNumber($("input[name='price_balance']"));
formatNumber($("input[name='price_extra']"));
formatNumber($("input[name='price_travel_total']"));
formatNumber($("input[name='price_service']"));
formatNumber($("input[name='price_deposit']"));
price_travel = floatNumber($("input[name='price_travel']").val());
price_balance =floatNumber($("input[name='price_balance']").val());
price_extra =floatNumber($("input[name='price_extra']").val());
price_service = floatNumber($("input[name='price_service']").val());
price_deposit = floatNumber($("input[name='price_deposit']").val());
price_travel_total = parseFloat(price_travel + price_balance + price_extra);
price_travel_total = parseFloat((Math.round(price_travel_total * 100) / 100)).toFixed(2).replace(".", ",");
$("input[name='price_travel_total']").val(price_travel_total);
price_total = parseFloat(price_travel + price_balance + price_extra + price_service + price_deposit);
price_total = parseFloat((Math.round(price_total * 100) / 100)).toFixed(2).replace(".", ",");
$("input[name='price_total']").val(price_total);
calculate_price_total(true);
check_price_total();
});
$("input[name='price_total']").on('change', function () {
check_price_total();
});
check_price_total();
});
</script>