This commit is contained in:
Kevin Adametz 2022-06-15 18:05:16 +02:00
parent 34a3d2196b
commit 93d1bea8e3
45 changed files with 1601 additions and 573 deletions

View file

@ -0,0 +1,52 @@
<div class="card mb-2 border-primary">
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseTravelProgramClasses" aria-expanded="false" aria-controls="collapseTravelProgramClasses">
<strong style="line-height: 1.6em">Kategorien/Klassen</strong>
</h6>
<div class="collapse" id="collapseTravelProgramClasses">
<div class="card-body">
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Standard</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($program->classes as $value)
<tr>
<td>
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-classes"
data-id="{{ $value->id }}"
data-name="{{ $value->name }}"
data-description="{{ $value->description }}"
data-standard="{{ $value->standard }}">
<span class="fa fa-edit"></span>
</button>
</td>
<td>{{ $value->name }}</td>
<td>@if($value->standard)
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>
@endif
</td>
<td><a class="text-danger" href="{{ route('travel_program_class_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
</tr>
@endforeach
</tbody>
</table>
<div class="text-right">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-classes"
data-id="new"
data-name=""
data-description=""
data-active="1"
>Neue Katagorie anlegen</button>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,104 @@
<div class="card mb-2 border-primary">
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseTravelProgramDetails" aria-expanded="false" aria-controls="collapseTravelProgramDetails">
<strong style="line-height: 1.6em">Details</strong>
</h6>
<div class="collapse" id="collapseTravelProgramDetails">
<div class="card-body">
<div class="form-row">
<div class="form-group col-sm-6 col-md-4">
<label for="default_flight_price" class="form-label">{{ __('Standard-Flugpreis') }}</label>
{{ Form::text('default_flight_price', $program->default_flight_price, array('class'=>'form-control', 'id'=>'default_flight_price')) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="deposit_percent" class="form-label">{{ __(' Anzahlung in %') }}
<button class="btn btn-xs btn-default" title=" wenn leer, default Wert 20%<br>0 = keine Anzahlung<br>Ägypten 20% vom Gesamtpreis<br>Rest 100% vom Flugpreis und 20% Landleistung" data-placement="top" rel="tooltip">
<i class="fa fa-info"></i></button></label>
{{ Form::text('deposit_percent', $program->deposit_percent, array('class'=>'form-control', 'id'=>'deposit_percent')) }}
</div>
<div class="form-group col-6 col-sm-3 col-md-2">
<label for="discount" class="form-label">{{ __('Rabatt') }}*</label>
{{ Form::text('discount', $program->discount, array('class'=>'form-control', 'id'=>'discount')) }}
</div>
<div class="form-group col-6 col-sm-3 col-md-2">
<label for="discount_is_percent_value" class="form-label">{{ __('Rabatt in') }}*</label>
{{ Form::select('discount_is_percent_value', $program::$programDiscountTypes , $program->discount_is_percent_value, array('class'=>'custom-select', 'id'=>'discount_is_percent_value')) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="travel_arrival_point_id" class="form-label">{{ __('Zielflughafen') }}* <a href="{{ route('admin_settings_travel_arrival_point') }}"><i class="fa fa-edit"></i></a></label>
{{ Form::select('travel_arrival_point_id', \App\Services\Model::getTravelArrivalPointArray(true) , $program->travel_arrival_point_id, array('class'=>'custom-select', 'id'=>'travel_arrival_point_id')) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="max_age_for_children" class="form-label">{{ __('max. Alter für Kinderermäßigung (0 = keine)') }}</label>
{{ Form::text('max_age_for_children', $program->max_age_for_children, array('class'=>'form-control', 'id'=>'max_age_for_children')) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="url" class="form-label">{{ __('URL') }}</label>
{{ Form::text('url', $program->url, array('class'=>'form-control', 'id'=>'url')) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="generalnote" class="form-label">{{ __('Reisehinweise') }}* <a href="{{ route('admin_settings_gerneral_notes') }}"><i class="fa fa-edit"></i></a></label>
{{ Form::select('generalnote', \App\Services\Model::getTravelGerneralNotesArray(true) , $program->generalnote, array('class'=>'custom-select', 'id'=>'generalnote')) }}
</div>
<div class="col-sm-12">
<div class="text-left mt-2">
<button type="submit" name="action" value="saveDetails" class="btn btn-sm btn-secondary">Änderungen speichern</button>&nbsp;
<a href="{{route('travel_programs')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
</div>
</div>
</div>
</div>
</div>
</div>
{{--
Text
Eingeschlossene Leistungen (pro Zeile eine Leistung!)
included
Klassen/Kategorien und zusätzliche Infos (erscheint unterhalb der "Eingeschlossenen Leistungen") (HTML)
class_description
Nicht eingeschlossene Leistungen (pro Zeile eine Leistung!)
excluded
Hinweise
advices
Anmerkungen (pro Zeile eine Anmerkung!)
notes
HTML-Beschreibung
html_description
Text (rechts außen)
text_right
Reiseversicherung 1
Reiseversicherung 2
Reiseversicherung 3
Reiseversicherung 4
Im Slider anzeigen?
Kartentyp
Währung der Netto-Preise
Position bei Suchergebnissen (Kleinere Wert bedeutet höhere Position)
--}}

View file

@ -0,0 +1,55 @@
<div class="card mb-2 border-primary">
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseTravelProgramDrafts" aria-expanded="false" aria-controls="collapseTravelProgramDrafts">
<strong style="line-height: 1.6em">Vorlagen Reiseprogramm (CRM)</strong>
</h6>
<div class="collapse" id="collapseTravelProgramDrafts">
<div class="card-body">
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Kategorie</th>
<th>Wochentage</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($program->travel_program_drafts as $value)
<tr>
<td>
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-draft"
data-id="{{ $value->id }}"
data-travel_class_id="{{ $value->travel_class_id }}"
data-draft_id="{{ $value->draft_id }}"
data-weekdays="{{ json_encode($value->weekdays) }}">
<span class="fa fa-edit"></span>
</button>
</td>
<td>{{ $value->draft->name }}</td>
<td>@if( $value->travel_class)
{{ $value->travel_class->name }}
@else
alle Kategorien
@endif
</td>
<td>
{!! HTMLHelper::getWeekdaysString($value->weekdays) !!}
</td>
<td><a class="text-danger" href="{{ route('travel_program_draft_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
</tr>
@endforeach
</tbody>
</table>
<div class="text-right">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-draft"
data-id="new"
data-travel_class_id=""
data-draft_id=""
data-weekdays=""
>Neue Vorlage zuordnen</button>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,80 @@
<div class="card mb-2 border-primary">
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseTravelProgramGeneral" aria-expanded="false" aria-controls="collapseTravelProgramGeneral">
<strong style="line-height: 1.6em">Allgemein</strong>
</h6>
<div class="collapse" id="collapseTravelProgramGeneral">
<div class="card-body">
<div class="form-group">
<label class="custom-control custom-checkbox float-right">
{!! Form::checkbox('status', 1, $program->status, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('aktiv')}}</span>
</label>
<label class="form-label" for="title">{{ __('Title') }}*</label>
{{ Form::text('title', $program->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'title', 'required'=>true)) }}
</div>
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="subtitle">{{ __('Subtitle') }}*</label>
{{ Form::text('subtitle', $program->subtitle, array('placeholder'=>__('Subtitle'), 'class'=>'form-control', 'id'=>'subtitle', 'required'=>true)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-6 col-md-4">
<label for="program_code" class="form-label">{{ __('Programm Code') }}*</label>
{{ Form::text('program_code', $program->program_code, array('class'=>'form-control', 'id'=>'program_code', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="program_type" class="form-label">{{ __('Programtyp') }}*</label>
{{ Form::select('program_type', $program::$programTypeTypes , $program->program_type, array('class'=>'custom-select', 'id'=>'program_type', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="category_id" class="form-label">{{ __('Kategorie') }}*</label>
{{ Form::select('category_id', $program::$travelCategoryTypes , $program->category_id, array('class'=>'custom-select', 'id'=>'category_id', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="travel_country" class="form-label">{{ __('Reiseland') }}* <a href="{{ route('admin_settings_travel_country') }}"><i class="fa fa-edit"></i></a></label>
{{ Form::select('travel_country', \App\Services\Model::getSymTravelCountryArray() , $program->travel_country, array('class'=>'custom-select', 'id'=>'travel_country', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="travel_agenda" class="form-label">{{ __('Reiseprogramm') }}* <a href="{{ route('admin_settings_travel_program') }}"><i class="fa fa-edit"></i></a></label>
{{ Form::select('travel_agenda', \App\Services\Model::getTravelAgendaArray(true) , $program->travel_agenda, array('class'=>'custom-select', 'id'=>'travel_agenda', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="travel_category" class="form-label">{{ __('Reiseart') }}* <a href="{{ route('admin_settings_categories') }}"><i class="fa fa-edit"></i></a></label>
{{ Form::select('travel_category', \App\Services\Model::getTravelCategoryArray() , $program->travel_category, array('class'=>'custom-select', 'id'=>'travel_category', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-8">
<label for="weekdays" class="form-label">{{__('Wochentage')}}*</label>
<select class="selectpicker" data-style="btn-default" name="weekdays[]" multiple required>
{!! HTMLHelper::getWeekdaysOptions(false, $program->getWeekdaysArray()) !!}
</select>
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="travel_company" class="form-label">{{ __('Veranstalter') }}* <a href="{{ route('admin_settings_travel_company') }}"><i class="fa fa-edit"></i></a></label>
{{ Form::select('travel_company', \App\Services\Model::getTravelCompanyArray() , $program->travel_company, array('class'=>'custom-select', 'id'=>'travel_company', 'required'=>true)) }}
</div>
<div class="col-sm-12">
<div class="text-left mt-2">
<button type="submit" name="action" value="saveGeneral" class="btn btn-sm btn-secondary">Änderungen speichern</button>&nbsp;
<a href="{{route('travel_programs')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
</div>
</div>
</div>
{{--
<div class="form-row">
<div class="form-group col">
<a href="{{route('travel_program_generate_keywords', [$program->id])}}" class="btn btn-xs btn-secondary float-right">generate Keywords</a>
<label for="keywords" class="form-label">{{__('Keywords')}}</label>
{{ Form::text('keywords', $program->keywords, array('placeholder'=>__('Keyword,Keyword'), 'class'=>'form-control', 'id'=>'keywords')) }}
</div>
</div>
--}}
</div>
</div>
</div>

View file

@ -0,0 +1,105 @@
<div class="modal fade" id="modals-classes">
<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="{{$program->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>
<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="{{$program->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 class="form-row">
<div class="form-group col">
<label for="travel_class_id" class="form-label">{{__('Kategorie')}}</label>
<select class="selectpicker" data-style="btn-default" name="travel_class_id">
{!! HTMLHelper::getTravelClassOptions($program->id) !!}
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="weekdays" class="form-label">{{__('Wochentage')}}</label>
<select class="selectpicker" data-style="btn-default" name="weekdays[]" multiple>
{!! HTMLHelper::getWeekdaysOptions($program->id) !!}
</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-classes').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>

View file

@ -2,317 +2,148 @@
@section('content')
<style>
body {
}
.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);
}
{!! Form::open(['url' => route('travel_program_detail', [$id]), 'class' => 'form-horizontal']) !!}
.input-group-text {
padding: 0.438rem 0.475rem;
}
</style>
<h4 class="font-weight-bold py-3 mb-1">
Programm @if($id == "new") <span class="text-primary">anlegen</span> @else {{"(ID: ".$id.")"}} verwalten @endif
Reiseprogramm @if($id == "new") <span class="text-primary">anlegen</span> @else verwalten {{"(ID: ".$id.")"}} @endif
<div class="float-right">
<button type="submit" name="action" value="saveAll" class="btn btn-submit btn-sm">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('travel_programs')}}" class="btn btn-default btn-sm">{{ __('back') }}</a>
<a href="{{route('travel_programs')}}" class="btn btn-default btn-sm">{{ __('zur Übersicht') }}</a>
</div>
</h4>
<div class="clearfix"></div>
<ul class="nav nav-sm nav-tabs nav-justified tabs-alt mb-3" id="top-nav-quick-jump">
<li class="nav-item">
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseTravelProgramGeneral">
Allgemein
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseTravelProgramDetails">
Details
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseTravelProgramClasses">
Klassen
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseTravelProgramDrafts">
Vorlagen
</a>
</li>
</ul>
{!! Form::open(['url' => route('travel_program_detail', [$id]), 'class' => 'form-horizontal']) !!}
<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('status', 1, $program->status, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('aktiv')}}</span>
</label>
<label class="form-label" for="program_title">{{ __('Title') }}*</label>
{{ Form::text('title', $program->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'program_title', 'required'=>true)) }}
</div>
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="program_subtitle">{{ __('Subtitle') }}*</label>
{{ Form::text('subtitle', $program->subtitle, array('placeholder'=>__('Subtitle'), 'class'=>'form-control', 'id'=>'program_subtitle', 'required'=>true)) }}
</div>
</div>
@include('travel.program._general')
<div class="form-row">
<div class="form-group col-sm-6 col-md-4">
<label for="program_code" class="form-label">{{ __('Programm Code') }}*</label>
{{ Form::text('program_code', $program->program_code, array('class'=>'form-control', 'id'=>'program_code', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="program_type" class="form-label">{{ __('Programtyp') }}*</label>
{{ Form::select('program_type', $program::$programTypeTypes , $program->program_type, array('class'=>'custom-select', 'id'=>'program_type', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="category_id" class="form-label">{{ __('Kategorie') }}*</label>
{{ Form::select('category_id', $program::$travelCategoryTypes , $program->category_id, array('class'=>'custom-select', 'id'=>'category_id', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="travel_country" class="form-label">{{ __('Reiseland') }}*</label>
{{ Form::select('travel_country', \App\Services\Model::getSymTravelCountryArray() , $program->travel_country, array('class'=>'custom-select', 'id'=>'travel_country', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="travel_agenda" class="form-label">{{ __('Reiseprogramm') }}*</label>
{{ Form::select('travel_agenda', \App\Services\Model::getTravelAgendaArray(false) , $program->travel_agenda, array('class'=>'custom-select', 'id'=>'travel_agenda', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="travel_category" class="form-label">{{ __('Reiseart') }}*</label>
{{ Form::select('travel_category', \App\Services\Model::getTravelCategoryArray() , $program->travel_category, array('class'=>'custom-select', 'id'=>'travel_category', 'required'=>true)) }}
</div>
<div class="form-group col-sm-6 col-md-8">
<label for="weekdays" class="form-label">{{__('Wochentage')}}*</label>
<select class="selectpicker" data-style="btn-default" name="weekdays[]" multiple required>
{!! HTMLHelper::getWeekdaysOptions(false, $program->getWeekdaysArray()) !!}
</select>
</div>
<div class="form-group col-sm-6 col-md-4">
<label for="travel_company" class="form-label">{{ __('Veranstalter') }}*</label>
{{ Form::select('travel_company', \App\Services\Model::getTravelCompanyArray() , $program->travel_company, array('class'=>'custom-select', 'id'=>'travel_company', 'required'=>true)) }}
</div>
</div>
@if($id !== "new" && $program)
@include('travel.program._details')
@include('travel.program._classes')
@include('travel.program._drafts')
@endif
{{--
<div class="form-row">
<div class="form-group col">
<a href="{{route('travel_program_generate_keywords', [$program->id])}}" class="btn btn-xs btn-secondary float-right">generate Keywords</a>
<label for="keywords" class="form-label">{{__('Keywords')}}</label>
{{ Form::text('keywords', $program->keywords, array('placeholder'=>__('Keyword,Keyword'), 'class'=>'form-control', 'id'=>'keywords')) }}
</div>
</div>
--}}
</div>
<div class="float-right mt-3">
<a href="{{route('travel_programs')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
<a href="{{ make_v2_url("/acp/travel_program/show/".$program->id."/") }}" class="btn btn-sm btn-default float-right">{{ __('zurück ins v2 Programm') }}</a>
</div>
<!-- program classes -->
<div class="card mb-2">
<h6 class="card-header">
Eingetragene Kategorien/Klassen
</h6>
<div class="card-body">
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Standard</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($program->classes as $value)
<tr>
<td>
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-class"
data-id="{{ $value->id }}"
data-name="{{ $value->name }}"
data-description="{{ $value->description }}"
data-standard="{{ $value->standard }}">
<span class="fa fa-edit"></span>
</button>
</td>
<td>{{ $value->name }}</td>
<td>@if($value->standard)
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>
@else
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>
@endif
</td>
<td><a class="text-danger" href="{{ route('travel_program_class_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
</tr>
@endforeach
</tbody>
</table>
<div class="text-right">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-class"
data-id="new"
data-name=""
data-description=""
data-active="1"
>Neue Katagorie anlegen</button>
</div>
</div>
</div>
<!-- program classes -->
<div class="card mb-2">
<h6 class="card-header">
Vorlagen Reiseprogramm (CRM)
</h6>
<div class="card-body">
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Kategorie</th>
<th>Wochentage</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($program->travel_program_drafts as $value)
<tr>
<td>
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-draft"
data-id="{{ $value->id }}"
data-travel_class_id="{{ $value->travel_class_id }}"
data-draft_id="{{ $value->draft_id }}"
data-weekdays="{{ json_encode($value->weekdays) }}">
<span class="fa fa-edit"></span>
</button>
</td>
<td>{{ $value->draft->name }}</td>
<td>@if( $value->travel_class)
{{ $value->travel_class->name }}
@else
alle Kategorien
@endif
</td>
<td>
{!! HTMLHelper::getWeekdaysString($value->weekdays) !!}
</td>
<td><a class="text-danger" href="{{ route('travel_program_draft_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
</tr>
@endforeach
</tbody>
</table>
<div class="text-right">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-draft"
data-id="new"
data-travel_class_id=""
data-draft_id=""
data-weekdays=""
>Neue Vorlage zuordnen</button>
</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('travel_programs')}}" class="btn btn-default">{{ __('back') }}</a>
<a href="{{ make_v2_url("/acp/travel_program/show/".$program->id."/") }}" class="btn btn-default float-right">{{ __('zurück ins v2 Programm') }}</a>
</div>
{!! 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="{{$program->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="{{$program->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 class="form-row">
<div class="form-group col">
<label for="travel_class_id" class="form-label">{{__('Kategorie')}}</label>
<select class="selectpicker" data-style="btn-default" name="travel_class_id">
{!! HTMLHelper::getTravelClassOptions($program->id) !!}
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="weekdays" class="form-label">{{__('Wochentage')}}</label>
<select class="selectpicker" data-style="btn-default" name="weekdays[]" multiple>
{!! HTMLHelper::getWeekdaysOptions($program->id) !!}
</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>
@if($id !== "new" && $program)
@include('travel.program._modals')
@endif
<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'));
$(document).ready(function() {
var collapseHashValue = null;
$('[rel="tooltip"]').tooltip({trigger: "hover", html: true});
$('#top-nav-quick-jump .nav-link').on('click', function (e) {
e.preventDefault();
$('#top-nav-quick-jump .nav-link').removeClass('active');
$(this).addClass('active');
var collapse_id = $(this).data('collapse');
//console.log(collapse_id);
$(collapse_id).collapse('show');
// animate
$('html, body').animate({
scrollTop: $(collapse_id).parent('.card').offset().top
}, 300, function(){
// when done, add hash to url
// (default click behaviour)
window.location.hash = collapse_id;
});
});
$('#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'));
$(".collapse").on('shown.bs.collapse', function (){
if(collapseHashValue){
$('a[data-collapse="#'+collapseHashValue+'"]').click();
collapseHashValue = null;
}
CookiesAddJSONValue('travel_program_collapse', $(this).attr('id'));
window.location.hash = "#"+$(this).attr('id');
$('.selectpicker').selectpicker('refresh');
});
$(".collapse").on('hidden.bs.collapse', function (){
CookiesRemoveJSONValue('travel_program_collapse', $(this).attr('id'));
});
function init_site(){
if(window.location.hash){
value = $(window.location.hash).attr('id');
if(value){
collapseHashValue = value;
CookiesAddJSONValue('travel_program_collapse', value);
}
}
var travel_program_collapses = Cookies.get('travel_program_collapse');
if (travel_program_collapses != null)
{
travel_program_collapses = JSON.parse(travel_program_collapses);
for (var travel_program_collapse in travel_program_collapses){
$("#"+travel_program_collapses[travel_program_collapse]).collapse("show");
}
}
}
init_site();
});
</script>
@endsection

View file

@ -1,8 +1,10 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
Programme
Reiseprogramme
</h4>
<div class="card">