23.11 Upload to live

This commit is contained in:
Kevin Adametz 2019-11-23 15:02:41 +01:00
parent 8cae2f92a4
commit 8ebdacec98
80 changed files with 7320 additions and 3937 deletions

View file

@ -0,0 +1,45 @@
@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 py-2 mb-2">
{{ __('Create/Edit Kategorien') }}
</h4>
{!! Form::open(['url' => route('admin_product_category_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
<input type="hidden" name="id" id="id" value="@if($category->id>0){{$category->id}}@else new @endif">
<div class="text-left mt-0 mb-2">
<button type="submit" class="btn btn-submit">{{ __('save') }}</button>&nbsp;
<a href="{{ route('admin_product_categories') }}" class="btn btn-default">{{ __('back') }}</a>
</div>
@include('admin.category.form')
<div class="text-left mt-0 mb-2">
<button type="submit" class="btn btn-submit">{{ __('save') }}</button>&nbsp;
<a href="{{ route('admin_product_categories') }}" class="btn btn-default">{{ __('back') }}</a>
</div>
{!! Form::close() !!}
@include('admin.category.images')
@endsection

View file

@ -0,0 +1,67 @@
<div class="card mb-2">
<h5 class="card-header">
{{ __('Kategorie') }}
</h5>
<div class="card-body">
<div class="form-row">
<div class="form-group col">
<label class="custom-control custom-checkbox float-right">
{!! Form::checkbox('active', 1, $category->active, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('aktiv')}}</span>
</label>
<label class="form-label" for="name">{{ __('Name') }}*</label>
{{ Form::text('name', $category->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required')) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="headline">{{ __('Headline') }}*</label>
{{ Form::text('headline', $category->headline, array('placeholder'=>__('Produktwelt'), 'class'=>'form-control', 'id'=>'name', 'required')) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-8">
<label for="parent_id" class="form-label">{{__('Hauptkategorie')}}</label>
<select class="selectpicker" data-style="btn-default" name="">
{!! HTMLHelper::getCategoriesWithoutParents($category->parent_id) !!}
</select>
</div>
<div class="form-group col-sm-4">
<label class="form-label" for="pos">{{ __('pos') }}</label>
{{ Form::text('pos', $category->pos, array('placeholder'=>__('pos'), 'class'=>'form-control', 'id'=>'pos')) }}
</div>
</div>
</div>
</div>
<div class="card mb-2">
<h5 class="card-header">
{{ __('Übersetzungen') }}
</h5>
<div class="card-body">
@foreach($trans as $lang)
@if($lang != 'de')
<div class="form-row">
<div class="form-group col-6">
<label for="trans_name_{{$lang}}" class="form-label">{{__('Name')}} <strong style="text-transform: uppercase">{{$lang}}</strong></label>
{{ Form::text('trans_name['.$lang.']', $category->getTrans('name', $lang), array('class'=>'form-control', 'id'=>'trans_name_'.$lang)) }}
</div>
<div class="form-group col-6">
<label for="trans_headline_{{$lang}}" class="form-label">{{__('Headline')}} <strong style="text-transform: uppercase">{{$lang}}</strong></label>
{{ Form::text('trans_headline['.$lang.']', $category->getTrans('headline', $lang), array('class'=>'form-control', 'id'=>'trans_headline_'.$lang)) }}
</div>
</div>
@endif
@endforeach
</div>
</div>

View file

@ -0,0 +1,93 @@
<div class="card mb-2">
<h5 class="card-header">
{{ __('Headline Bild') }}
</h5>
<div class="card-body">
@if($category->id>0)
<style>
.dz-message {
margin: 2rem 0;
}
.default-style .dz-message {
font-size: 1.1em;
}
</style>
<div class="row">
<div class="col-12">
<p>Bild wird rechts hinter die Headline gesetzt und automatisch auf eine Höhe von 60 Pixel skaliert.</p>
</div>
<div class="col-md-8 col-sm-6">
<div class="row">
@if($category->headline_image_id)
<div class="col-6 col-md-4 text-center" style="border: 1px solid #eee;">
<img class="" height="60" alt="" src="{{ route('iq_image', [$category->iq_image->slug]) }}">
<br>
<a href="{{ route('admin_product_category_image_delete', [$category->iq_image->id, $category->id]) }}" class="btn btn-sm btn-primary mt-2 mb-2" onclick="return confirm('Bild wirklich löschen?');">Bild löschen</a>
@if($category->iq_image->active)
<a href="{{ route('admin_product_category_image_attribute', [$category->iq_image->id, 'active', 0]) }}" class="btn btn-sm btn-default mt-2 mb-2"><span class="badge badge-pill badge-success"><i class="far fa-check"></i></span> <i class="far fa-sync"></i></a>
@else
<a href="{{ route('admin_product_category_image_attribute', [$category->iq_image->id, 'active', 1]) }}" class="btn btn-sm btn-default mt-2 mb-2"><span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span> <i class="far fa-sync"></i></a>
@endif
</div>
@endif
</div>
</div>
<div class="col-md-4 col-sm-6">
@if(!$category->headline_image_id)
<div class="card">
<div class="card-body">
<form method="POST" action="{{ route('admin_product_category_image_upload') }}" accept-charset="UTF-8" class="avatar" enctype="multipart/form-data">
@csrf
<input type="hidden" name="category_id" value="{{$category->id}}">
<div class="slim_holder text-center">
<div class="slim" style="margin:20px auto;"
data-label='<span class="text-green">Foto-Upload</span><br>(Datei suchen oder Drag & Drop)'
data-fetcher="fetch.php"
data-size="600,400"
data-min-size="100,100"
data-max-file-size="10"
data-status-image-too-small="Bild zu klein<br>min. $0 Pixel"
data-status-file-type="Ungültige Datei<br>bitte nur: $0"
data-status-file-size="Die Datei ist zu groß<br>max. $0 MB"
data-button-confirm-label="bestätigen"
data-button-cancel-label="abbrechen"
data-button-confirm-title="bestätigen"
data-button-cancel-title="abbrechen"
data-button-rotate-title="drehen"
data-ratio="">
<input type="file" name="images[]" required />
</div>
<br>
<button class="btn btn-primary" type="submit">Bild speichern</button>
</div>
</form>
</div>
</div>
@else
<p> Nur ein Bild möglich, vor neuem Upload Bild löschen </p>
@endif
</div>
</div>
@else
<p>Kategorie erst anlegen</p>
@endif
</div>
</div>

View file

@ -12,7 +12,7 @@
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Pos')}}</th>
<th>{{__('Hauptkategorie')}}</th>
<th>{{__('Unterkategorie')}}</th>
<th>{{__('Headline')}}</th>
<th>{{__('Translate') }}</th>
<th>{{__('Status')}}</th>
<th></th>
@ -22,20 +22,15 @@
@foreach($values as $value)
<tr>
<td>
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-default"
data-id="{{ $value->id }}"
data-pos="{{ $value->pos }}"
data-parent_id="{{ $value->parent_id }}"
data-name="{{ $value->name }}"
data-trans_name="{{ json_encode($value->trans_name) }}"
data-active="{{ $value->active }}">
<a href="{{route('admin_product_category_edit', [$value->id])}}" class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</button>
</a>
</td>
<td>{{ $value->pos }}</td>
<td>@if($value->parent) {{ $value->parent->name }} @else {{ $value->name }} @endif</td>
<td>@if($value->parent) {{ $value->name }} @else - @endif</td>
<td>{{ $value->getTranNames() }}</td>
<td>{{ $value->headline }}</td>
<!-- <td>{{ $value->getTranNames() }}</td> -->
<td data-sort="{{ $value->active }}">@if($value->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('admin_product_category_delete', [$value->id]) }}" onclick="return confirm('{{__('Really delete entry?')}}');"><i class="far fa-trash-alt"></i></a></td>
@ -44,102 +39,22 @@
</tbody>
</table>
<div class="mt-4 ml-4">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-default"
data-id="new"
data-pos=""
data-name=""
data-parent_id=""
data-active="1"
>{{__('Neue Kategorie erstellen')}}</button>
<a href="{{route('admin_product_category_edit', ['new'])}}" class="btn btn-sm btn-primary">
{{__('Neue Kategorie erstellen')}}
</a>
</div>
</div>
</div>
<!-- Modal template -->
<div class="modal fade" id="modals-default">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_product_category_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title"> {{__('Kategorie')}} <span class="font-weight-light">{{__('create/edit')}}</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="parent_id" class="form-label">{{__('Main Attribute')}}</label>
<select class="selectpicker" data-style="btn-default" name="parent_id">
{!! HTMLHelper::getCategoriesWithoutParents() !!}
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="name" class="form-label">{{__('Name')}}</label>
<input type="text" class="form-control" name="name" placeholder="{{__('Bezeichnung')}}">
</div>
</div>
<div class="form-row">
<div class="form-group col-6">
<label class="custom-control custom-checkbox m-2">
<input type="checkbox" class="custom-control-input" name="active" checked>
<span class="custom-control-label">{{__('active')}}</span>
</label>
</div>
<div class="form-group col-6">
<input type="text" class="form-control" name="pos" placeholder="{{__('Number to move the position if necessary')}}">
</div>
</div>
<hr>
@foreach($trans as $tran)
@if($tran != 'de')
<div class="form-row">
<div class="form-group col">
<label for="name" class="form-label">{{__('Translate')}} <strong style="text-transform: uppercase">{{$tran}}</strong></label>
<input type="text" class="form-control" name="trans[{{$tran}}]" id="trans_{{$tran}}" placeholder="">
</div>
</div>
@endif
@endforeach
</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-default').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='pos']").val(button.data('pos'));
$(this).find(".modal-body select[name='parent_id']").val(button.data('parent_id'));
$('.selectpicker').selectpicker('refresh');
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
$.each(button.data('trans_name'), function (i, item) {
var name = '#trans_'+i;
$(name).val(item);
});
});
$('.datatables-style').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"order": [[ 1, "asc" ]],
"aoColumns": [
{ "sWidth": "8%" },
{ "sWidth": "8%" },

View file

@ -64,29 +64,29 @@
<div class="card-body">
<div class="form-row">
<div class="form-group col-sm-4">
<label class="form-label" for="price">{{ __('price') }}</label>
<label class="form-label" for="price">{{ __('Preis VK') }}</label>
{{ Form::text('price', $product->getFormattedPrice(), array('placeholder'=>__('price'), 'class'=>'form-control', 'id'=>'price')) }}
</div>
<div class="form-group col-sm-4">
<label class="form-label" for="price_ek">{{ __('price_ek') }}</label>
<label class="form-label" for="price_ek">{{ __('Preis EK') }}</label>
{{ Form::text('price_ek', $product->getFormattedPriceEk(), array('placeholder'=>__('price_ek'), 'class'=>'form-control', 'id'=>'price_ek')) }}
</div>
<div class="form-group col-sm-4">
<label class="form-label" for="tax">{{ __('tax') }}</label>
<label class="form-label" for="tax">{{ __('MwSt') }}</label>
{{ Form::text('tax', $product->getFormattedTax(), array('placeholder'=>__('tax'), 'class'=>'form-control', 'id'=>'tax')) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-4">
<label class="form-label" for="price_old">{{ __('price_old') }}</label>
<label class="form-label" for="price_old">{{ __('Streichpreis (wenn > 0)') }}</label>
{{ Form::text('price_old', $product->getFormattedPriceOld(), array('placeholder'=>__('price_old'), 'class'=>'form-control', 'id'=>'price_old')) }}
</div>
<div class="form-group col-sm-4">
<label class="form-label" for="amount">{{ __('amount') }}</label>
<label class="form-label" for="amount">{{ __('Anzahl') }}</label>
{{ Form::text('amount', $product->amount, array('placeholder'=>__('amount'), 'class'=>'form-control', 'id'=>'amount')) }}
</div>
@ -106,17 +106,17 @@
</h5>
<div class="card-body">
<div class="form-group">
<label class="form-label" for="contents">{{ __('contents') }}</label>
<label class="form-label" for="contents">{{ __('Menge Inhalt (ml / g)') }}</label>
{{ Form::text('contents', $product->contents, array('placeholder'=>__('contents'), 'class'=>'form-control', 'id'=>'contents')) }}
</div>
<div class="form-group">
<label class="form-label" for="number">{{ __('number') }}</label>
<label class="form-label" for="number">{{ __('Artikelnummer') }}</label>
{{ Form::text('number', $product->number, array('placeholder'=>__('number'), 'class'=>'form-control', 'id'=>'number')) }}
</div>
<div class="form-group">
<label class="form-label" for="icons">{{ __('icons') }}</label>
<label class="form-label" for="icons">{{ __('Icons') }}</label>
{{ Form::text('icons', $product->icons, array('placeholder'=>__('icons'), 'class'=>'form-control', 'id'=>'icons')) }}
</div>
@ -129,15 +129,15 @@
</div>
<div class="form-group">
<label class="form-label" for="description">{{ __('description') }}</label>
<label class="form-label" for="description">{{ __('Beschreibung') }}</label>
{{ Form::textarea('description', $product->description , array('placeholder'=>__('description'), 'class'=>'form-control summernote', 'id'=>'description')) }}
</div>
<div class="form-group">
<label class="form-label" for="usage">{{ __('usage') }}</label>
<label class="form-label" for="usage">{{ __('Anwendung') }}</label>
{{ Form::textarea('usage', $product->usage , array('placeholder'=>__('usage'), 'class'=>'form-control summernote', 'id'=>'usage')) }}
</div>
<div class="form-group">
<label class="form-label" for="ingredients">{{ __('ingredients') }}</label>
<label class="form-label" for="ingredients">{{ __('Inhaltsstoffe') }}</label>
{{ Form::textarea('ingredients', $product->ingredients , array('placeholder'=>__('ingredients'), 'class'=>'form-control summernote', 'id'=>'ingredients')) }}
</div>

View file

@ -31,7 +31,23 @@
<div class="col-6 col-md-4 text-center" style="border: 1px solid #eee;">
<img class="img-fluid" alt="" src="{{ route('product_image', [$image->slug]) }}">
<br>
<a href="{{ route('admin_product_delete_image', [$image->id, $product->id]) }}" class="btn btn-sm btn-primary mt-2 mb-2" onclick="return confirm('Bild wirklich löschen?');">Bild löschen</a>
<a href="{{ route('admin_product_image_delete', [$image->id, $product->id]) }}" class="btn btn-sm btn-primary mt-2 mb-2" onclick="return confirm('Bild wirklich löschen?');">Bild löschen</a>
@if($image->active)
<a href="{{ route('admin_product_image_attribute', [$image->id, 'active', 0]) }}" class="btn btn-sm btn-default mt-2 mb-2"><span class="badge badge-pill badge-success"><i class="far fa-check"></i></span> <i class="far fa-sync"></i></a>
@else
<a href="{{ route('admin_product_image_attribute', [$image->id, 'active', 1]) }}" class="btn btn-sm btn-default mt-2 mb-2"><span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span> <i class="far fa-sync"></i></a>
@endif
<br>
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<a href="{{ route('admin_product_image_attribute', [$image->id, 'pos', $image->pos - 1]) }}" class="btn btn-default"><i class="fas fa-chevron-left"></i></a>
</div>
<input type="text" class="form-control text-center" value="{{$image->pos}}">
<div class="input-group-append">
<a href="{{ route('admin_product_image_attribute', [$image->id, 'pos', $image->pos + 1]) }}" class="btn btn-default"><i class="fas fa-chevron-right"></i></a>
</div>
</div>
</div>
@endforeach
</div>
@ -39,7 +55,7 @@
<div class="col-md-4 col-sm-6">
<div class="card">
<div class="card-body">
<form method="POST" action="{{ route('admin_product_upload_image') }}" accept-charset="UTF-8" class="avatar" enctype="multipart/form-data">
<form method="POST" action="{{ route('admin_product_image_upload') }}" accept-charset="UTF-8" class="avatar" enctype="multipart/form-data">
@csrf
<input type="hidden" name="product_id" value="{{$product->id}}">
<div class="slim_holder text-center">

View file

@ -0,0 +1,41 @@
@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 py-2 mb-2">
{{ __('Edit Startseite') }}
</h4>
{!! Form::open(['url' => route('admin_sites_store', [$site]), 'class' => 'form-horizontal', 'id'=>'']) !!}
<div class="text-left mt-0 mb-2">
<button type="submit" class="btn btn-submit">{{ __('save') }}</button>&nbsp;
</div>
@include('admin.site.form')
<div class="text-left mt-0 mb-2">
<button type="submit" class="btn btn-submit">{{ __('save') }}</button>&nbsp;
</div>
{!! Form::close() !!}
@include('admin.site.images')
@endsection

View file

@ -0,0 +1,46 @@
<div class="card mb-2">
<h5 class="card-header">
{{ __('Inhalte') }}
</h5>
<div class="card-body">
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="headline">{{ __('Headline') }}*</label>
{{ Form::text('headline', $value->headline, array('placeholder'=>__('Headline'), 'class'=>'form-control', 'id'=>'headline', 'required')) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="copy">{{ __('Copy') }}*</label>
{{ Form::textarea('copy', $value->copy , array('placeholder'=>__('Copy'), 'class'=>'form-control', 'id'=>'copy', 'rows'=>6)) }}
</div>
</div>
<h3>Anzeige Produkte auf der Startseite</h3>
<div class="form-row">
<div class="form-group col-6">
<label for="products" class="form-label">{{__('Produkte')}}</label>
<select class="selectpicker" name="products[]" id="products" data-style="btn-light" data-live-search="true" multiple>
{!! HTMLHelper::getProductsOptions($value->products) !!}
</select>
</div>
<div class="form-group col-6">
<label for="set_products" class="form-label">{{__('Produktsets')}}</label>
<select class="selectpicker" name="set_products[]" id="set_products" data-style="btn-light" data-live-search="true" multiple>
{!! HTMLHelper::getProductsOptions($value->set_products) !!}
</select>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,93 @@
<div class="card mb-2">
<h5 class="card-header">
{{ __('Headline Bild') }}
</h5>
<div class="card-body">
@if($value->id>0)
<style>
.dz-message {
margin: 2rem 0;
}
.default-style .dz-message {
font-size: 1.1em;
}
</style>
<div class="row">
<div class="col-12">
</div>
<div class="col-12">
<div class="row">
@if($value->iq_image_id)
<div class="col-12 text-center" style="border: 1px solid #eee;">
<img class="" alt="" src="{{ route('iq_image', [$value->iq_image->slug]) }}">
<br>
<a href="{{ route('admin_sites_image_delete', [$value->slug, $value->iq_image->id]) }}" class="btn btn-sm btn-primary mt-2 mb-2" onclick="return confirm('Bild wirklich löschen?');">Bild löschen</a>
@if($value->iq_image->active)
<a href="{{ route('admin_sites_image_attribute', [$value->slug, $value->iq_image->id, 'active', 0]) }}" class="btn btn-sm btn-default mt-2 mb-2"><span class="badge badge-pill badge-success"><i class="far fa-check"></i></span> <i class="far fa-sync"></i></a>
@else
<a href="{{ route('admin_sites_image_attribute', [$value->slug, $value->iq_image->id, 'active', 1]) }}" class="btn btn-sm btn-default mt-2 mb-2"><span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span> <i class="far fa-sync"></i></a>
@endif
</div>
@endif
</div>
</div>
<div class="col-12">
<hr>
@if(!$value->iq_image_id)
<div class="card">
<div class="card-body">
<form method="POST" action="{{ route('admin_sites_image_upload', [$value->slug]) }}" accept-charset="UTF-8" class="avatar" enctype="multipart/form-data">
@csrf
<input type="hidden" name="value_id" value="{{$value->id}}">
<div class="slim_holder text-center">
<div class="slim" style="margin:20px auto;"
data-label='<span class="text-green">Foto-Upload</span><br>(Datei suchen oder Drag & Drop)'
data-fetcher="fetch.php"
data-size="1920,400"
data-min-size="100,100"
data-max-file-size="10"
data-status-image-too-small="Bild zu klein<br>min. $0 Pixel"
data-status-file-type="Ungültige Datei<br>bitte nur: $0"
data-status-file-size="Die Datei ist zu groß<br>max. $0 MB"
data-button-confirm-label="bestätigen"
data-button-cancel-label="abbrechen"
data-button-confirm-title="bestätigen"
data-button-cancel-title="abbrechen"
data-button-rotate-title="drehen"
data-ratio="">
<input type="file" name="images[]" required />
</div>
<br>
<button class="btn btn-primary" type="submit">Bild speichern</button>
</div>
</form>
</div>
</div>
@else
<p> Nur ein Bild möglich, vor neuem Upload Bild löschen </p>
@endif
</div>
</div>
@else
<p>Kategorie erst anlegen</p>
@endif
</div>
</div>