Customer Mail, Mails, Views Lead Customer
This commit is contained in:
parent
f1e0900a7a
commit
f53f17f9c1
46 changed files with 2217 additions and 1489 deletions
|
|
@ -6,100 +6,101 @@
|
|||
</h4>
|
||||
|
||||
<div class="card">
|
||||
<div class="ui-bordered px-4 pt-3 mb-0">
|
||||
<div class="form-row align-items-center">
|
||||
<div class="col-md-4 mb-4">
|
||||
<label class="form-label" for="travel_option_search">Filter Anreise</label>
|
||||
<select class="custom-select" name="travel_option_search" id="travel_option_search">
|
||||
<option value="">Filter aus</option>
|
||||
<option value="before_2">Anreise vor 2 Monaten</option>
|
||||
<option value="brefore_1">Anreise vor 1 Monat</option>
|
||||
<option value="on_site">vor Ort</option>
|
||||
<option value="after_1">Anreise in 1 Monat</option>
|
||||
<option value="after_1">Anreise in 2 Monat</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4 mb-4">
|
||||
<label class="form-label">Filter Anreise Datum</label>
|
||||
<div class="row">
|
||||
<div class="input-group col-6 pr-0">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">ab</span>
|
||||
</div>
|
||||
<input class="form-control datepicker-base" name="arrival_start_date" type="text" value="">
|
||||
</div>
|
||||
|
||||
<div class="input-group col-6 pl-1">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">bis</span>
|
||||
</div>
|
||||
<input class="form-control datepicker-base" name="arrival_end_date" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 mb-4">
|
||||
<label class="form-label">Filter Abreise Datum</label>
|
||||
<div class="row">
|
||||
<div class="input-group col-6 pr-0">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">ab</span>
|
||||
</div>
|
||||
<input class="form-control datepicker-base" name="departure_start_date" type="text" value="">
|
||||
</div>
|
||||
<div class="card-header">
|
||||
<div class="">
|
||||
<div class="form-row align-items-center">
|
||||
<div class="col-md-4 mb-4">
|
||||
<label class="form-label" for="travel_option_search">Filter Anreise</label>
|
||||
<select class="custom-select" name="travel_option_search" id="travel_option_search">
|
||||
<option value="">Filter aus</option>
|
||||
<option value="before_2">Anreise vor 2 Monaten</option>
|
||||
<option value="brefore_1">Anreise vor 1 Monat</option>
|
||||
<option value="on_site">vor Ort</option>
|
||||
<option value="after_1">Anreise in 1 Monat</option>
|
||||
<option value="after_1">Anreise in 2 Monat</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4 mb-4">
|
||||
<label class="form-label">Filter Anreise Datum</label>
|
||||
<div class="row">
|
||||
<div class="input-group col-6 pr-0">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">ab</span>
|
||||
</div>
|
||||
<input class="form-control datepicker-base" name="arrival_start_date" type="text" value="">
|
||||
</div>
|
||||
|
||||
<div class="input-group col-6 pl-1">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">bis</span>
|
||||
</div>
|
||||
<input class="form-control datepicker-base" name="departure_end_date" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row align-items-center">
|
||||
<div class="col-md-6 mb-4">
|
||||
<label class="form-label" for="travel_option_country_id">Filter Reiseland</label>
|
||||
<select class="custom-select" name="travel_option_country_id" id="travel_option_country_id">
|
||||
<option value="">Filter aus</option>
|
||||
@foreach($travel_countries as $id=>$name)
|
||||
<option value="{{$id}}">{{$name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<div class="input-group col-6 pl-1">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">bis</span>
|
||||
</div>
|
||||
<input class="form-control datepicker-base" name="arrival_end_date" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 mb-4">
|
||||
<label class="form-label">Filter Abreise Datum</label>
|
||||
<div class="row">
|
||||
<div class="input-group col-6 pr-0">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">ab</span>
|
||||
</div>
|
||||
<input class="form-control datepicker-base" name="departure_start_date" type="text" value="">
|
||||
</div>
|
||||
|
||||
<div class="input-group col-6 pl-1">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">bis</span>
|
||||
</div>
|
||||
<input class="form-control datepicker-base" name="departure_end_date" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 mb-4">
|
||||
<label class="form-label" for="travel_option_agenda_id">Filter Programm</label>
|
||||
<select class="custom-select" name="travel_option_agenda_id" id="travel_option_agenda_id">
|
||||
<option value="">Filter aus</option>
|
||||
</select>
|
||||
<div class="form-row align-items-center">
|
||||
<div class="col-md-6 mb-4">
|
||||
<label class="form-label" for="travel_option_country_id">Filter Reiseland</label>
|
||||
<select class="custom-select" name="travel_option_country_id" id="travel_option_country_id">
|
||||
<option value="">Filter aus</option>
|
||||
@foreach($travel_countries as $id=>$name)
|
||||
<option value="{{$id}}">{{$name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-4">
|
||||
<label class="form-label" for="travel_option_agenda_id">Filter Programm</label>
|
||||
<select class="custom-select" name="travel_option_agenda_id" id="travel_option_agenda_id">
|
||||
<option value="">Filter aus</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row align-items-center">
|
||||
<div class="col-5 col-sm-2 mb-4">
|
||||
<label class="form-label">AnfrageID</label>
|
||||
<input class="form-control full_search" name="full_lead_id_search" placeholder="suche" type="text" value="">
|
||||
</div>
|
||||
<div class="col-6 col-sm-3 mb-4">
|
||||
<label class="form-label">Vorname</label>
|
||||
<input class="form-control full_search" name="full_firstname_search" placeholder="suche" type="text" value="">
|
||||
</div>
|
||||
<div class="col-6 col-sm-3 mb-4">
|
||||
<label class="form-label">Nachname</label>
|
||||
<input class="form-control full_search" name="full_lastname_search" placeholder="suche" type="text" value="">
|
||||
</div>
|
||||
|
||||
<div class="col-5 col-sm-2 mb-4">
|
||||
<label class="form-label">BuchungsID</label>
|
||||
<input class="form-control full_search" name="full_booking_id_search" placeholder="suche" type="text" value="">
|
||||
</div>
|
||||
<div class="col-2 col-sm-2 mb-4 mt-4">
|
||||
<a href="{{ route('requests') }}" class="btn icon-btn btn-sm btn-outline-dark float-right">
|
||||
<span class="fa fa-sync"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row align-items-center">
|
||||
<div class="col-5 col-sm-2 mb-4">
|
||||
<label class="form-label">LeadID</label>
|
||||
<input class="form-control full_search" name="full_lead_id_search" placeholder="suche" type="text" value="">
|
||||
</div>
|
||||
<div class="col-6 col-sm-3 mb-4">
|
||||
<label class="form-label">Vorname</label>
|
||||
<input class="form-control full_search" name="full_firstname_search" placeholder="suche" type="text" value="">
|
||||
</div>
|
||||
<div class="col-6 col-sm-3 mb-4">
|
||||
<label class="form-label">Nachname</label>
|
||||
<input class="form-control full_search" name="full_lastname_search" placeholder="suche" type="text" value="">
|
||||
</div>
|
||||
|
||||
<div class="col-5 col-sm-2 mb-4">
|
||||
<label class="form-label">BookingID</label>
|
||||
<input class="form-control full_search" name="full_booking_id_search" placeholder="suche" type="text" value="">
|
||||
</div>
|
||||
<div class="col-2 col-sm-2 mb-4 mt-4">
|
||||
<a href="{{ route('requests') }}" class="btn icon-btn btn-sm btn-outline-dark float-right">
|
||||
<span class="fa fa-sync"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card-datatable table-responsive py-2">
|
||||
<input type="hidden" name="sort_travel_country_id" value="">
|
||||
<input type="hidden" name="sort_travelagenda_id" value="">
|
||||
|
|
@ -108,14 +109,14 @@
|
|||
<input type="hidden" name="sort_lead_status_id" value="">
|
||||
|
||||
<table id="datatables-requests" class="table table-striped table-bordered">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<!--<th style="max-width: 1px;"> </th> -->
|
||||
<th>{{__('LeadID')}}</th>
|
||||
<th style="max-width: 10px;"> </th>
|
||||
<th>{{__('AnfrageID')}}</th>
|
||||
<th>{{__('Vorname')}}</th>
|
||||
<th>{{__('Nachname')}}</th>
|
||||
<th>{{__('BookingID')}}</th>
|
||||
<th style="max-width: 10px;"> </th>
|
||||
<th>{{__('BuchungsID')}}</th>
|
||||
<th>{{__('Reiseland')}}</th>
|
||||
<th>{{__('Programm')}}</th>
|
||||
{{--<th>{{__('Kategorie')}}</th>--}}
|
||||
|
|
@ -128,8 +129,18 @@
|
|||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
<div class="card-footer d-flex flex-wrap justify-content-between align-items-center px-0 pt-0 pb-3">
|
||||
<div class="px-4 pt-3">
|
||||
</div>
|
||||
<div class="px-4 pt-3">
|
||||
<button type="button" class="btn btn-info" data-toggle="modal" data-target="#modals-load-next"
|
||||
data-id="new"
|
||||
data-model="customerMail"
|
||||
data-action="send-customer-mail"
|
||||
data-route="{{ route('requests_modal_load') }}"><i class="ion ion-md-mail-open"></i> E-Mail-Nachricht an Auswahl (max. 50)</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
|
||||
|
|
@ -161,10 +172,11 @@
|
|||
}
|
||||
},
|
||||
"columns": [
|
||||
// { data: 'action_edit', orderable: false, searchable: false},
|
||||
{ data: 'action_lead_edit', orderable: false, searchable: false},
|
||||
{ data: 'lead_id', name: 'lead_id' },
|
||||
{ data: 'participant_firstname', name: 'participant_firstname' },
|
||||
{ data: 'participant_name', name: 'participant_name' },
|
||||
{ data: 'action_booking_edit', orderable: false, searchable: false},
|
||||
{ data: 'id', name: 'id' },
|
||||
{ data: 'travel_country_id', name: 'travel_country_id', orderable: false },
|
||||
{ data: 'travelagenda_id', name: 'travelagenda_id', orderable: false },
|
||||
|
|
@ -173,16 +185,14 @@
|
|||
{ data: 'travel_documents', name: 'travel_documents', orderable: false },
|
||||
{ data: 'sf_guard_user_id', name: 'sf_guard_user_id', orderable: false },
|
||||
{ data: 'lead.status_id', name: 'lead.status_id', orderable: false },
|
||||
|
||||
],
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"orderSequence": ["desc", "asc"],
|
||||
"order": [[ 3, "desc" ]],
|
||||
"order": [[ 5, "desc" ]],
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
},
|
||||
|
||||
initComplete: function () {
|
||||
this.api().columns(8).every( function () {
|
||||
var column = this;
|
||||
|
|
@ -196,13 +206,12 @@
|
|||
column.data().unique().sort().each( function ( d, j ) {
|
||||
if(d !== ""){
|
||||
var text = $(d).data('order') ? "Ja" : "Nein";
|
||||
if(text != "" && text != "-"){
|
||||
if(text !== "" && text !== "-"){
|
||||
select.append( '<option value="'+$(d).data('order')+'">'+ text+'</option>' );
|
||||
}
|
||||
}
|
||||
} );
|
||||
} );
|
||||
|
||||
this.api().columns(9).every( function () {
|
||||
var column = this;
|
||||
var title = $(column.header()).html();
|
||||
|
|
@ -215,7 +224,7 @@
|
|||
column.data().unique().sort().each( function ( d, j ) {
|
||||
if(d !== ""){
|
||||
var text = $(d+' span').text();
|
||||
if(text != "" && text != "-"){
|
||||
if(text !== "" && text !== "-"){
|
||||
select.append( '<option value="'+$(d).data('order')+'">'+ $(d+' span').text()+'</option>' );
|
||||
}
|
||||
}
|
||||
|
|
@ -224,8 +233,7 @@
|
|||
$('.selectpicker').selectpicker();
|
||||
},
|
||||
drawCallback: function () {
|
||||
|
||||
console.log($('#travel_option_agenda_id').prop('disabled'));
|
||||
//console.log($('#travel_option_agenda_id').prop('disabled'));
|
||||
//only when is disabled, refesh list is load by other filter.
|
||||
if($('#travel_option_agenda_id').prop('disabled')) {
|
||||
var data = table.ajax.params();
|
||||
|
|
@ -244,10 +252,10 @@
|
|||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function (data) {
|
||||
console.log(data);
|
||||
// console.log(data);
|
||||
var select = $('#travel_option_agenda_id');
|
||||
select.empty().append('<option value="">Filter aus</option>');
|
||||
console.log(select);
|
||||
// console.log(select);
|
||||
$.each(data, function (i, item) {
|
||||
select.append('<option value="' + i + '">' + item + '</option>');
|
||||
});
|
||||
|
|
@ -261,14 +269,12 @@
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
function clearTravelOptionAgenda(){
|
||||
$('#travel_option_agenda_id').empty().prop('disabled', true);
|
||||
}
|
||||
|
||||
$('#travel_option_search').on('change', function(){
|
||||
if($(this).val() !== ""){
|
||||
$('.datepicker-base').removeClass('active');
|
||||
|
|
@ -283,17 +289,13 @@
|
|||
clearTravelOptionAgenda();
|
||||
table.order( [ 3, 'desc' ] ).draw();
|
||||
});
|
||||
|
||||
$('#travel_option_country_id').on('change', function(){
|
||||
clearTravelOptionAgenda();
|
||||
table.order( [ 3, 'desc' ] ).draw();
|
||||
});
|
||||
|
||||
$('#travel_option_agenda_id').on('change', function(){
|
||||
table.order( [ 3, 'desc' ] ).draw();
|
||||
});
|
||||
|
||||
|
||||
$('.datepicker-base').on('change', function(){
|
||||
if($(this).val() != ""){
|
||||
$('#travel_option_search').removeClass('active');
|
||||
|
|
@ -308,14 +310,62 @@
|
|||
clearTravelOptionAgenda();
|
||||
table.order( [ 3, 'desc' ] ).draw();
|
||||
});
|
||||
|
||||
|
||||
$('.full_search').on('keyup', function(){
|
||||
clearTravelOptionAgenda();
|
||||
table.order( [ 3, 'desc' ] ).draw();
|
||||
});
|
||||
|
||||
function loadModalInner(self, 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) {
|
||||
$(data.response.target).find('.modal-dialog').html(data.html);
|
||||
$('.selectpicker').selectpicker('refresh');
|
||||
//datepicker_birthday_init();
|
||||
},
|
||||
error: function(xhr, status, errorThrown) {
|
||||
console.log(xhr);
|
||||
console.log(xhr.responseText);
|
||||
console.log(errorThrown);
|
||||
console.log("Sorry, there was a problem!");
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
$('#modals-load-next').on('show.bs.modal', function (event) {
|
||||
var button = $(event.relatedTarget);
|
||||
if (!button.data('id')) {
|
||||
return;
|
||||
}
|
||||
//var data = {};
|
||||
var data = table.ajax.params();
|
||||
data.action = button.data('action');
|
||||
data.route = button.data('route');
|
||||
data.target = button.data('target');
|
||||
//console.log(data);
|
||||
loadModalInner(this, data);
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<div class="modal fade" id="modals-load-next">
|
||||
<div class="modal-dialog modal-lg">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
40
resources/views/request/modal-mail.blade.php
Normal file
40
resources/views/request/modal-mail.blade.php
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{!! Form::open(['url' => $url, 'class' => 'modal-content', 'onsubmit'=>'return confirm("E-Mail wirklich senden?");']) !!}
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
{{$data['title']}}
|
||||
</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="to" class="form-label">E-Mail senden an:</label>
|
||||
@foreach($value->customers as $key=>$val)
|
||||
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
|
||||
{!! Form::checkbox('send_mail_to['.$key.']', 1, $key, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">{{$val}}</span>
|
||||
</label>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="subject" class="form-label">Betreff</label>
|
||||
{{ Form::text('subject', '', array('placeholder'=>'', 'id'=>'subject', 'class'=>'form-control', 'required')) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group mb-1">
|
||||
<label class="form-label" for="message">Nachricht</label>
|
||||
{{ Form::textarea('message', $value->message, array('class'=>'form-control', 'rows'=>15)) }}
|
||||
</div>
|
||||
<p>Platzhalter: #geehrte/r# #Anrede# #Vorname# #Nachname# #Reiseland# #Programm# </p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
|
||||
<button type="submit" class="btn btn-primary"><i class="ion ion-ios-mail-open"></i> senden</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue