Fewo PDF Hinweise, Generator, Anhang Mail

This commit is contained in:
Kevin Adametz 2020-06-29 12:23:21 +02:00
parent a3bef8d1aa
commit 730832c8e1
31 changed files with 1786 additions and 147 deletions

View file

@ -0,0 +1,209 @@
@extends('layouts.layout-2')
@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;
}
.note-editing-area {
border-radius: 0.25rem;
border: 1px solid rgba(24, 28, 33, 0.1);
padding: 0.438rem 0.875rem;
color: #4E5155;
-webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
}
.note-editor.note-frame .note-editing-area .note-editable, .note-editor.note-airframe .note-editing-area .note-editable {
color: #000;
}
.note-editor.note-frame .note-editing-area:focus-within , .note-editor.note-airframe .note-editing-area:focus-within {
border-color: #648859;
}
.note-editing-area .note-editable li {
margin-bottom:0.5rem;
}
.note-editor.note-airframe .note-placeholder {
padding: 0;
}
.draft_item_tbody .form-control {
color: #000;
}
</style>
<h4 class="font-weight-bold py-3 mb-1">
FeWo Allgemein
</h4>
<div class="nav-tabs-top mb-4">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link @if(!$step) active show @endif" data-toggle="tab" href="#navs-top-drafts">PDF Vorlage</a>
</li>
{{--
<li class="nav-item">
<a class="nav-link @if($step === 'settings') active show @endif" data-toggle="tab" href="#navs-top-settings">Einstellungen</a>
</li>
--}}
</ul>
<div class="tab-content">
<div class="tab-pane fade @if(!$step) active show @endif" id="navs-top-drafts">
<div class="card">
{!! Form::open(['url' => route('cms_fewo_all', [$step]), 'class' => 'form-horizontal']) !!}
@if(count($contents))
@php($i = 1)
<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>Abschnitte</th>
<th style="width: 8em">#</th>
</tr>
</thead>
@foreach($contents as $content)
<tbody class="draft_item_tbody">
<tr>
<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>
{{ Form::text('contents['.$content->id.'][name]', $content->name, array('placeholder'=>__('Abschnitt*'), 'class'=>'form-control', 'id'=>'contents_'.$content->id.'_name', 'required')) }}
</td>
<td>
<button type="button" name="" value="up_{{$content->id}}" class="btn btn-xs btn-default move-up-btn"><i class="fa fa-arrow-up"></i> </button>
<button type="button" name="" value="down_{{$content->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('cms_fewo_all_delete', [$content->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a>
</td>
</tr>
<tr class="border-none">
<td colspan="2" style="vertical-align: bottom">
<button type="submit" name="action" value="saveAll" class="btn btn-secondary btn-sm" title="speichern"><i class="ion ion-ios-save"></i></button>&nbsp;
</td>
<td>
{{ Form::textarea('contents['.$content->id.'][full_text]', $content->getContent(), array('class'=>'form-control autoExpand summernote-air', 'id'=>'contents_'.$content->id.'_name', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</td>
<td>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('contents['.$content->id.'][in_pdf]', 1, ($content->decimal > 0), ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('contents['.$content->id.'][page-break]', 1, ($content->getObjectBy('page-break') > 0), ['class'=>'custom-control-input']) !!}
<span class="custom-control-label" style="white-space: nowrap;">{{__('Neue Seite')}}</span>
</label>
</td>
</tr>
</tbody>
@endforeach
<tfoot>
<tr>
<td colspan="4"></td>
</tr>
</tfoot>
</table>
</div>
@endif
<div class="text-left mt-3 m-2">
<button type="submit" name="action" value="saveAll" class="btn btn-submit btn-sm">{{ __('save changes') }}</button>&nbsp;
<div class="float-right">
<button type="submit" name="action" value="addItem" class="btn btn-sm btn-primary"><i class="fa fa-plus"></i> Neuen Abschnitt hinzufügen</button>
</div>
</div>
{!! 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>
</div>
</div>
<div class="tab-pane fade @if($step === 'settings') active show @endif" id="navs-top-settings">
<div class="card">
<h4 class="mt-4 mb-2 ml-4">Einstellungen</h4>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,273 @@
@extends('layouts.layout-2')
@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;
}
.note-editing-area {
border-radius: 0.25rem;
border: 1px solid rgba(24, 28, 33, 0.1);
padding: 0.438rem 0.875rem;
color: #4E5155;
-webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
}
.note-editing-area.readonly {
background-color: #f1f1f2;
color: #000;
}
.note-editor.note-frame .note-editing-area .note-editable, .note-editor.note-airframe .note-editing-area .note-editable {
color: #000;
}
.note-editor.note-frame .note-editing-area:focus-within , .note-editor.note-airframe .note-editing-area:focus-within {
border-color: #648859;
}
.note-editing-area li {
margin-bottom:0.5rem;
}
.note-editor.note-airframe .note-placeholder {
padding: 0;
}
.draft_item_tbody .form-control {
color: #000;
}
</style>
<h4 class="font-weight-bold py-3 mb-1">
FeWo Inhalt <span class="text-primary">{{ $fewo->name }}</span>
</h4>
<div class="nav-tabs-top mb-4">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link @if(!$step) active show @endif" data-toggle="tab" href="#navs-top-drafts">PDF Vorlage</a>
</li>
{{--
<li class="nav-item">
<a class="nav-link @if($step === 'settings') active show @endif" data-toggle="tab" href="#navs-top-settings">Einstellungen</a>
</li>
--}}
</ul>
<div class="tab-content">
<div class="tab-pane fade @if(!$step) active show @endif" id="navs-top-drafts">
<div class="card">
{!! Form::open(['url' => route('cms_fewo_content_detail', [$fewo->id, $step]), 'class' => 'form-horizontal', 'id'=>'fewo-content-detail-form']) !!}
{{ Form::hidden('content_pos_id', '') }}
{{ Form::hidden('action', '') }}
@if(count($contents))
@php($i = 1)
<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>Abschnitte</th>
<th style="width: 8em">#</th>
</tr>
</thead>
@foreach($contents as $content)
@if($content->decimal > 0)
<tbody class="draft_item_tbody">
<tr>
<td>
<span class="ion ion-ios-lock d-inline-block bg-dark text-white p-1 px-2"></span>
{{-- <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>
{{ Form::text('contents['.$content->id.'][name]', $content->name, array('placeholder'=>__('Abschnitt*'), 'class'=>'form-control', 'id'=>'contents_'.$content->id.'_name', 'readonly')) }}
{{ Form::hidden('contents['.$content->id.'][identifier]', $identifier_content) }}
</td>
<td>
{{--
<button type="button" name="" value="up_{{$content->id}}" class="btn btn-xs btn-default move-up-btn"><i class="fa fa-arrow-up"></i> </button>
<button type="button" name="" value="down_{{$content->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('cms_fewo_all_delete', [$content->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a>
--}}
</td>
</tr>
<tr class="border-none">
<td colspan="2" style="vertical-align: bottom">
<button type="button" name="action" value="addItem" class="btn btn-xs btn-primary btn-add-item" title="Abschnitt hinzufügen" data-pos-id="{{$content->id}}"><i class="fa fa-plus"></i> <i class="fa fa-arrow-down"></i></button>
</td>
<td>
<div class="note-editing-area readonly">
{!! $content->getContent() !!}
</div>
</td>
<td>
{{-- --}}
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('contents['.$content->id.'][in_pdf]', 1, ($content->decimal > 0), ['class'=>'custom-control-input', 'disabled']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('contents['.$content->id.'][page-break]', 1, ($content->getObjectBy('page-break') > 0), ['class'=>'custom-control-input', 'disabled']) !!}
<span class="custom-control-label" style="white-space: nowrap;">{{__('Neue Seite')}}</span>
</label>
</td>
</tr>
</tbody>
@endif
@if($fewo_contents = \App\Services\BookingFewo::getFeWoCMSContent($content, $identifier_fewo))
@foreach($fewo_contents as $content)
<tbody class="draft_item_tbody">
<tr>
<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>
{{ Form::text('contents['.$content->id.'][name]', $content->name, array('placeholder'=>__('Abschnitt*'), 'class'=>'form-control', 'id'=>'contents_'.$content->id.'_name', 'required')) }}
{{ Form::hidden('contents['.$content->id.'][identifier]', $identifier_fewo) }}
</td>
<td>
<button type="button" name="" value="up_{{$content->id}}" class="btn btn-xs btn-default move-up-btn"><i class="fa fa-arrow-up"></i> </button>
<button type="button" name="" value="down_{{$content->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('cms_fewo_all_delete', [$content->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a>
</td>
</tr>
<tr class="border-none">
<td colspan="2" style="vertical-align: bottom">
<button type="submit" name="action" value="saveAll" class="btn btn-secondary btn-sm" title="speichern"><i class="ion ion-ios-save"></i></button>&nbsp;
</td>
<td>
{{ Form::textarea('contents['.$content->id.'][full_text]', $content->getContent(), array('class'=>'form-control autoExpand summernote-air', 'id'=>'contents_'.$content->id.'_name', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</td>
<td>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('contents['.$content->id.'][in_pdf]', 1, ($content->decimal > 0), ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('contents['.$content->id.'][page-break]', 1, ($content->getObjectBy('page-break') > 0), ['class'=>'custom-control-input']) !!}
<span class="custom-control-label" style="white-space: nowrap;">{{__('Neue Seite')}}</span>
</label>
</td>
</tr>
</tbody>
@endforeach
@endif
@endforeach
<tfoot>
<tr>
<td colspan="4"></td>
</tr>
</tfoot>
</table>
</div>
@endif
<div class="text-left mt-3 m-2">
<button type="submit" name="action" value="saveAll" class="btn btn-submit btn-sm">{{ __('save changes') }}</button>&nbsp;
<div class="float-right">
<button type="submit" name="action" value="previewPDF" class="btn btn-sm btn-info"><i class="fa fa-file-pdf"></i> Vorschau PDF</button>
</div>
</div>
{!! Form::close() !!}
<script>
$(document).ready(function() {
$('.btn-add-item').on('click', function () {
$('input[name=content_pos_id]').val($(this).data('pos-id'));
$('input[name=action]').val('addItem');
$("#fewo-content-detail-form").submit();
});
$.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>
</div>
</div>
<div class="tab-pane fade @if($step === 'settings') active show @endif" id="navs-top-settings">
<div class="card">
<h4 class="mt-4 mb-2 ml-4">Einstellungen</h4>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,85 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
FeWo Inhalte
</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>{{__('Adresse')}}</th>
<th>{{__('Personen')}}</th>
<th>{{__('Erwachsenen')}}</th>
<th>{{__('Kinder')}}</th>
</tr>
</thead>
<tbody>
@foreach($fewo_lodgings as $value)
<tr>
<td data-sort="{{ $value->id }}">
<a href="{{ route('cms_fewo_content_detail', [$value->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="fa fa-edit"></span>
</a>
</td>
<td><a href="{{ route('cms_fewo_content_detail', [$value->id]) }}">{{ $value->name }}</a></td>
<td>
{{ $value->adress1 }}, {{ $value->zip_code }} {{ $value->city }}
</td>
<td>
{{ $value->maximum_persons }}
</td>
<td>
{{ $value->maximum_adults }}
</td>
<td>
{{ $value->maximum_childs }}
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
{{--
<div class="ml-3 mb-2">
<a href="{{ route('admin_settings_travel_country_detail', ['new']) }}" class="btn btn-sm btn-primary">Neues Reiseland anlegen</a>
</div>
--}}
<script>
$( document ).ready(function() {
$('.datatables-feedbacks').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"language": {
"url": "/js/German.json"
},
});
});
</script>
</div>
@endsection

View file

@ -44,7 +44,6 @@
</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">
@ -108,11 +107,6 @@
</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}}">
@ -133,7 +127,6 @@
</div>
</div>
@if(count($draft->draft_items))
@php($i = 1)
<div class="text-left mt-3 mb-2">
@ -160,59 +153,60 @@
@foreach($draft->draft_items as $draft_item)
<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>
<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>
</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.') !!}
</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>
{{ 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>
</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.') !!}
</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>
{{ 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>
</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="fa fa-trash-alt"></i></a>
</td>
</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>
</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>
</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="fa fa-trash-alt"></i></a>
</td>
</tr>
<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')) }}
@ -223,10 +217,8 @@
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</td>
</tr>
</tbody>
</tbody>
@endforeach
</table>
</div>

View file

@ -139,13 +139,16 @@
<script src="{{ mix('/vendor/libs/minicolors/minicolors.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.js?v=0.8.16') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/dist/lang/summernote-de-DE.js?v=0.8.16') }}"></script>
<script src="{{ asset('/js/summernote-cleaner.js?v=1') }}"></script>
<script src="{{ asset('/js/summernote-iq-content-extension.js?v=2') }}"></script>
<script src="{{ asset('/js/summernote-image-title.js?v=2') }}"></script>
<script src="{{ asset('/vendor/libs/quill/quill.min.js?v=1.3.6') }}"></script>
<script src="{{ asset('/vendor/libs/quill-placeholder-module/dist/placeholder-module.js?v=1') }}"></script>
@if(isset($lfm_helper))
<script src="{{ asset('/js/summernote-iq-content-extension.js?v=2') }}"></script>
<script src="{{ asset('/js/summernote-image-title.js?v=2') }}"></script>
<script src="{{ asset('/vendor/laravel-filemanager/js/cropper.min.js') }}"></script>
<script src="{{ asset('/js/filemanager.js?v=3') }}"></script>
@endif
@ -311,6 +314,36 @@
},
});
$('.summernote-air').summernote({
airMode: true,
lang: 'de-DE',
placeholder: 'Text ...',
tabsize: 2,
popover: { air:[
['style', ['style']],
['font', ['bold', 'italic', 'underline', 'clear']],
['font', ['strikethrough']],
['para', ['ul', 'ol', 'paragraph']],
['insert', ['link']],
['color', ['color']],
['view', ['codeview']],
] },
cleaner:{
action: 'paste', // both|button|paste 'button' only cleans via toolbar button, 'paste' only clean when pasting content, both does both options.
newline: '<br>', // Summernote's default is to use '<p><br></p>'
notStyle: 'position:absolute;top:0;left:0;right:0', // Position of Notification
icon: '<i class="note-icon">[Your Button]</i>',
keepHtml: false, // Remove all Html formats
keepOnlyTags: ['<p>', '<br>', '<ul>', '<li>', '<b>', '<strong>','<i>', '<a>'], // If keepHtml is true, remove all tags except these
keepClasses: false, // Remove Classes
badTags: ['style', 'script', 'applet', 'embed', 'noframes', 'noscript', 'html'], // Remove full tags with contents
badAttributes: ['style', 'start'], // Remove attributes from remaining tags
limitChars: false, // 0/false|# 0/false disables option
limitDisplay: false, // text|html|both
limitStop: false // true/false
}
});
//save in the codeview
$('.note-codable').on('blur', function() {
var codeviewHtml = $(this).val();

View file

@ -160,6 +160,22 @@
</li>
</ul>
</li>
@endif
@if(Auth::user()->isPermission('cms-fewo'))
<li class="sidenav-item{{ Request::is('cms/fewo/*') ? ' open' : '' }}">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
<i class="sidenav-icon ion ion-ios-home"></i>
<div>FeWo</div>
</a>
<ul class="sidenav-menu">
<li class="sidenav-item{{ Request::is(['cms/fewo/all', 'cms/fewo/all/*']) ? ' active' : '' }}">
<a href="{{ route('cms_fewo_all') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-paper"></i><div>FeWo Allgemein</div></a>
</li>
<li class="sidenav-item{{ Request::is(['cms/fewo/content', 'cms/fewo/content/*']) ? ' active' : '' }}">
<a href="{{ route('cms_fewo_content') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-paper"></i><div>FeWo Inhalte</div></a>
</li>
</ul>
</li>
@endif
@if(Auth::user()->isPermission('cms-fb'))
<li class="sidenav-item{{ Request::is('cms/feedback') ? ' active' : '' }}">
@ -171,31 +187,31 @@
<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">
@if(Auth::user()->isPermission('cms-cn-in'))
<li class="sidenav-item{{ Request::is('cms/content/infos') ? ' active' : '' }}">
<a href="{{ route('cms_content_infos') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-business"></i><div>Infos</div></a>
@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">
@if(Auth::user()->isPermission('cms-cn-in'))
<li class="sidenav-item{{ Request::is('cms/content/infos') ? ' active' : '' }}">
<a href="{{ route('cms_content_infos') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-business"></i><div>Infos</div></a>
</li>
@endif
@if(Auth::user()->isPermission('cms-cn-al'))
<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>
@endif
@if(Auth::user()->isPermission('cms-cn-al'))
<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>
@endif
@if(Auth::user()->isPermission('cms-cn-au'))
<li class="sidenav-item{{ Request::is('cms/content/author') ? ' active' : '' }}">
<a href="{{ route('cms_content_author') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-finger-print"></i><div>Autoren</div></a>
</li>
@endif
</ul>
</li>
@endif
@endif
@if(Auth::user()->isPermission('cms-cn-au'))
<li class="sidenav-item{{ Request::is('cms/content/author') ? ' active' : '' }}">
<a href="{{ route('cms_content_author') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-finger-print"></i><div>Autoren</div></a>
</li>
@endif
</ul>
</li>
@endif
@endif
@endif

View file

@ -0,0 +1,40 @@
@extends('pdf.layout-small')
@section('content')
<style>
h2 {
margin-bottom: 0;
}
ul, ol {
padding-left: 2rem;
}
li {
padding-bottom: 0.5rem;
}
.pdf-input-content {
font-size: 11pt;
line-height: 1.3em;
margin-bottom: 2rem;
}
.pdf-break-block {
page-break-inside: avoid;
}
</style>
<h1>HINWEISE FERIENWOHNUNG STERN USEDOM</h1>
<h1>{{$fewo->single_name}} in der {{ $fewo->adress1 }} in {{ $fewo->zip_code }} {{ $fewo->city }}</h1>
<hr>
@foreach($contents as $content)
@if($content->getObjectBy('page-break'))
<div class="page_break"></div>
@endif
<div class="pdf-break-block">
<h2>{{$content->name}}</h2>
<div class="pdf-input-content">
{!! $content->getContent() !!}
</div>
</div>
@endforeach
@endsection

View file

@ -0,0 +1,143 @@
<!DOCTYPE html>
<html lang="en">
<head>
<base href="{{ url('/') }}">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>STERN TOURS</title>
<style>
html {
width: 100%;
height: 100%;
}
body {
position: relative;
width: 100%;
height: 100%;
margin: 0 auto;
padding: 0;
color: #000;
background: #fff;
font-size: 9.5pt;
line-height: 1.15em;
font-family: Helvetica;
}
table {
border: none;
}
strong {
font-weight: bold;
}
@page {
margin: 20mm 15mm 22mm 15mm;
color:#000;
}
header {
position: fixed;
top:-20mm;
right: 0mm;
width: 100mm;
height: 20mm;
text-align: right;
}
header img {
padding-top: 6mm;
height: 10mm;
}
footer {
position: fixed;
bottom: -16mm;
left: 0;
right: 0;
height: 10mm;
padding-top: 2mm;
border-top: 0.25pt solid #000;
font-size: 8.5pt;
/** Extra personal styles **/
}
footer table {
width: 100%;
}
footer table td {
vertical-align: top;
width: 33.33%;
}
/* footer .page {
position: absolute;
top:0mm;
font-size: 8pt;
text-align: right;
right: 0;
}
footer .page:after { content: counter(page); }
*/
main {
width: 100%;
height: 100%;
}
.page_break { page-break-before: always; }
#pdf-page {
position: relative;
}
a {
color: #648859 !important;
}
</style>
</head>
<body>
<script type="text/php">
if (isset($pdf)) {
$font = null;
$size = 8;
$color = array(0,0,0);
$word_space = 0.0; // default
$char_space = 0.0; // default
$angle = 0.0; // default
$text = "{PAGE_NUM} / {PAGE_COUNT}";
$y = $pdf->get_height() - 64;
$x = $pdf->get_width() - 66;
$pdf->page_text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle);
}
</script>
<header>
<img src="{{\App\Services\Util::getURLasContent(asset('/images/stern-tours-logo.png'), true)}}" alt="STERNTOURS">
</header>
<footer>
<table>
<tr>
<td>
<strong>STERN TOURS GmbH</strong><br>
Emser Str. 3<br>
10719 Berlin<br>
</td>
<td style="text-align: center">
<strong>Beratung und Buchung</strong>
</td>
<td style="text-align: right">
<strong>Web:</strong> <a href="https://www.sterntours.de/ferienwohnungen">www.sterntours.de/ferienwohnungen</a><br>
<strong>E-Mail:</strong> <a href="mailto:stern@sterntours.de">stern@sterntours.de</a><br>
<strong>Tel.:</strong> <a href="tel:03070094100">030 - 700 94 100</a>
</td>
</tr>
</table>
</footer>
<main>
<div id="pdf-page">
@yield('content')
</div>
</main>
</body>
</html>

View file

@ -3,7 +3,7 @@
<head>
<base href="{{ url('/') }}">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<title>STERN TOURS</title>
<style>
{!! \App\Services\Util::getURLasContent(asset('/css/stern_fewo_pdf.css')) !!}
</style>
@ -26,7 +26,7 @@
10719 Berlin<br>
</td>
<td>
<strong>Fon:</strong> 030 | 88 0 313 0<br>
<strong>Tel.:</strong> 030 | 88 0 313 0<br>
<strong>Fax:</strong> 030 | 88 0 313 44<br>
<strong>E-Mail:</strong> kontakt@sterntours.de<br>
<strong>Web:</strong> www.sterntours.de

View file

@ -19,7 +19,26 @@
</tr>
</thead>
<tbody>
@if($travel_user_booking_fewo->fewo_lodging)
<tr>
<th scope="row">{{$booking_files_count++}}</th>
<td>
<a target="_blank" href="{{ route('customer_file_show', ['fewo_instruction_pdf', $travel_user_booking_fewo->fewo_lodging->id, 'stream']) }}" class="badge badge-md badge-next">
<i class="fa fa-file-pdf mr-1"></i> {{\App\Services\BookingFewo::getFeWoInstructionPDFName($travel_user_booking_fewo->fewo_lodging)}}
</a>
</td>
<td>
application/pdf
</td>
<td>-</td>
<td>
<a href="{{ route('customer_file_show', ['fewo_instruction_pdf', $travel_user_booking_fewo->fewo_lodging->id, 'download']) }}" class="btn btn-xs btn-default"
title="Download" data-placement="left" rel="tooltip">
<i class="fa fa-download"></i>
</a>
</td>
</tr>
@endif
@foreach(\App\Services\BookingFewo::contentFiles() as $content_file)
@if($file = \App\Models\CMSContent::getModelBySlug($content_file))
<tr>

View file

@ -3,7 +3,7 @@
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingInfo" aria-expanded="false" aria-controls="collapseBookingInfo">
<strong style="line-height: 1.6em"> Kunde / Buchung</strong>
</h6>
<div class="collapse" id="collapseBookingInfo">
<div class="collapse @if($id === 'new') show @endif" id="collapseBookingInfo">
<div class="card-body">
<div class="form-row">
<div class="form-group col-md-6">

View file

@ -12,6 +12,27 @@
<tbody>
@php($booking_files_count = 1)
@if($booking->fewo_lodging)
<tr>
<th scope="row">{{$booking_files_count++}}</th>
<td>
<a target="_blank" href="{{ route('customer_file_show', ['fewo_instruction_pdf', $booking->fewo_lodging->id, 'stream']) }}" class="badge badge-md badge-next">
<i class="fa fa-file-pdf mr-1"></i> {{\App\Services\BookingFewo::getFeWoInstructionPDFName($booking->fewo_lodging)}}
</a>
</td>
<td>
application/pdf
</td>
<td>-</td>
<td>
<button data-target="{{ route('customer_file_show', ['fewo_instruction_pdf', $booking->fewo_lodging->id, 'stream']) }}" data-name="{{\App\Services\BookingFewo::getFeWoInstructionPDFName($booking->fewo_lodging)}}" class="btn btn-xs btn-primary add-file-to-attachment"
title="als Anhang hinzufügen" data-placement="left" rel="tooltip">
<i class="fa fa-cloud-download-alt"></i>
</button>
</td>
</tr>
@endif
@foreach(\App\Services\BookingFewo::contentFiles() as $content_file)
@if($file = \App\Models\CMSContent::getModelBySlug($content_file))
<tr>