[WIP] Add some features, categories, articles

This commit is contained in:
Ludovic CANDELLIER
2020-04-27 00:37:20 +02:00
parent 516ec2232e
commit 07eccc337b
43 changed files with 1045 additions and 77 deletions

View File

@@ -3,10 +3,10 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\Shop\Family;
use App\Models\Shop\Genre;
use App\Models\Shop\Specie;
use App\Models\Shop\Variety;
use App\Models\Botanic\Family;
use App\Models\Botanic\Genre;
use App\Models\Botanic\Specie;
use App\Models\Botanic\Variety;
class migrate extends Command
{
@@ -41,6 +41,18 @@ class migrate extends Command
*/
public function handle()
{
$species = Specie::all();
foreach ($species as $specie) {
$specie->name = trim($specie->name);
$specie->save();
}
$varieties = Variety::all();
foreach ($varieties as $variety) {
$variety->name = trim($variety->name);
$variety->save();
}
/*
$varieties = Variety::all();
foreach ($varieties as $variety) {
@@ -61,6 +73,7 @@ class migrate extends Command
}
}
*/
/*
$species = Specie::all();
foreach ($species as $specie) {
$genre_name = $specie->genre;
@@ -79,7 +92,7 @@ class migrate extends Command
dump("Aucun genre");
}
}
*/
/*
$genres = Genre::all();
foreach ($genres as $genre) {

View File

@@ -0,0 +1,30 @@
<?php
namespace App\DataTables\Shop;
use Yajra\DataTables\Html\Column;
use App\DataTables\ParentDataTable as DataTable;
use App\Models\Shop\ArticleAttributeFamily;
class ArticleAttributeFamiliesDataTable extends DataTable
{
public $model_name = 'ArticleAttributeFamilies';
public function query(ArticleFamily $model)
{
return self::buildQuery($model);
}
protected function getColumns()
{
return [
Column::make('name'),
Column::computed('action')
->exportable(false)
->printable(false)
->width(120)
->addClass('text-center'),
];
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\DataTables\Shop;
use Yajra\DataTables\Html\Column;
use App\DataTables\ParentDataTable as DataTable;
use App\Models\Shop\ArticleAttributeValue;
class ArticleAttributeValuesDataTable extends DataTable
{
public $model_name = 'ArticleAttributeValues';
public function query(ArticleFamily $model)
{
return self::buildQuery($model);
}
protected function getColumns()
{
return [
Column::make('name'),
Column::computed('action')
->exportable(false)
->printable(false)
->width(120)
->addClass('text-center'),
];
}
}

View File

@@ -19,8 +19,6 @@ class ArticlesDataTable extends DataTable
{
return [
Column::make('name'),
Column::make('alias'),
Column::make('latin'),
Column::computed('action')
->exportable(false)
->printable(false)

View File

@@ -21,6 +21,11 @@ class VarietyController extends Controller
return Varieties::getDatatable($request->all());
}
public function getOptionsWithSpecie()
{
return response()->json(Varieties::getOptionsWithSpecie());
}
public function create()
{
return view('Botanic.Admin.Varieties.create');

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers\Shop\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\Shop\ArticleAttributeFamily;
class ArticleAttributeFamilyController extends Controller
{
public function index(ArticleAttributeFamiliesDataTable $dataTable)
{
return $dataTable->render('Shop.Admin.ArticleAttributeFamilies.list');
}
public function getDatatable(Request $request)
{
return ArticleAttributeFamilies::getTables($request->all());
}
public function create()
{
return view('Shop.Admin.ArticleAttributeFamilies.create');
}
public function store(Request $request)
{
$ret = ArticleAttributeFamilies::store($request->all());
return redirect()->route('Shop.Admin.ArticleAttributeFamilies.index');
}
public function show($id)
{
$data = ArticleAttributeFamilies::get($id);
return view('Shop.Admin.ArticleAttributeFamilies.view', $data);
}
public function edit($id)
{
$data = ArticleAttributeFamilies::get($id);
return view('Shop.Admin.ArticleAttributeFamilies.edit', $data);
}
public function update(Request $request)
{
//
}
public function destroy($id)
{
return ArticleAttributeFamilies::destroy($id);
}
}

View File

@@ -6,6 +6,8 @@ use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\Articles;
use App\Repositories\Shop\ArticleFamilies;
use App\Repositories\Shop\Categories;
use App\DataTables\Shop\ArticlesDataTable;
class ArticleController extends Controller
@@ -23,7 +25,9 @@ class ArticleController extends Controller
public function create()
{
$data = [];
$data['categories'] = Articles::getOptions();
$data['categories'] = Categories::getOptions();
$data['families'] = ArticleFamilies::getOptions();
$data['models'] = ['App\Models\Botanic\Specie' => 'Espèces', 'App\Models\Botanic\Variety' => 'Variétés'];
return view('Shop.Admin.Articles.create', $data);
}

View File

@@ -19,6 +19,22 @@ class Varieties
return Datatables::of($model)->make(true);
}
public static function getOptions()
{
return Variety::orderBy('name')->get()->pluck('name','id')->toArray();
}
public static function getOptionsWithSpecie()
{
$varieties = Variety::with('specie')->get();
$data = [];
foreach ($varieties as $variety)
{
$data[] = ['id' => $variety->id, 'text' => (isset($variety->specie->name) ? $variety->specie->name . ' ' : '') . $variety->name];
}
return collect($data)->sortBy('text')->values()->all();
}
public static function getAll()
{
return Variety::orderBy('name','asc')->get();

View File

@@ -15,6 +15,11 @@ class ArticleFamilies
return Datatables::of($model)->make(true);
}
public static function getOptions()
{
return ArticleFamily::get()->pluck('name','id')->toArray();
}
public static function getAll()
{
return ArticleFamily::orderBy('name','asc')->get();

View File

@@ -6,7 +6,7 @@ function setOptions(selector,data,selected,all) {
$el.append($("<option></option>").attr("value",'').text('Tous'));
}
$.each(data, function(key, name) {
// console.log(name);
console.log(name);
if (key != null) {
if (key == selected) {
$el.append($("<option selected='selected'></option>").attr("value", key).text(name));

View File

@@ -72,7 +72,6 @@
"dropzone": "^5.5.1",
"easy-pie-chart": "^2.1.7",
"es6-promise": "^4.2.8",
"fancytree": "^0.0.0",
"font-awesome": "^4.7.0",
"formBuilder": "^3.2.3",
"fullcalendar": "^3.10.1",
@@ -103,6 +102,7 @@
"jquery.are-you-sure": "^1.9.0",
"jquery.cookie": "^1.4.1",
"jquery.documentsize": "^1.2.5",
"jquery.fancytree": "^2.35.0",
"jquery.filer": "^1.3.0",
"jquery.nicescroll": "^3.7.6",
"jquery.quicksearch": "^2.4.0",

View File

@@ -21,12 +21,26 @@ return [
],
'articles' => [
'title' => 'Articles',
'list' => 'Liste des articles',
'description' => 'Gérer les articles',
'add' => 'Ajouter un article',
'edit' => 'Editer un article',
'del' => 'Effacer u article',
'list' => 'Liste des articles',
'successadd' => 'L\'article été correctement ajouté',
'successmod' => 'L\'article a été correctement modifié',
'successdel' => 'L\'article a été correctement effacé',
'confirmdelete' => 'Confirmez-vous la suppression de l\'article ?',
],
'customers' => [
'title' => "Clients",
'list' => 'Liste des clients',
'description' => 'Gérer les clients',
'add' => 'Ajouter un client',
'edit' => 'Editer un client',
'del' => 'Effacer un client',
'list' => 'Liste des articles',
'successadd' => 'Le client a été correctement ajouté',
'successmod' => 'Le client a été correctement modifié',
'successdel' => 'Le client a été correctement effacé',
'confirmdelete' => 'Confirmez-vous la suppression du client ?',
],
];

View File

@@ -0,0 +1,28 @@
@extends('layout.index', [
'title' => __('article_families.title'),
'subtitle' => __('article_families.create.title'),
'breadcrumb' => [__('article_families.title'), __('article_families.create.title')]
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.store', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.Articles.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@extends('layout.index', [
'title' => 'Famille d\'articles',
'subtitle' => 'Edition d\'une famille d\'article',
'breadcrumb' => ['Articles']
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.update', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.ArticleFamilies.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
<input type="hidden" name="id" value="{{ $id }}">
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@include('boilerplate::load.tinymce')
<div class="row">
<div class="col-md-8">
{{ Form::label('name', 'Nom') }}
@include('components.input', ['name' => 'name', 'value' => (isset($family['name'])) ? $family['name'] : null, 'required' => true])
{{ Form::label('description', 'Description') }}
@include('components.textarea', ['name' => 'description', 'value' => isset($description) ? $description : null, 'class' => 'editor', 'required' => false])
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="float-right mt-3">
@include('components.button-save')
</div>
</div>
</div>
@push('js')
<script>
$(function() {
$('.editor').tinymce({});
});
</script>
@endpush

View File

@@ -0,0 +1,21 @@
@extends('layout.index', [
'title' => __('Shop.article_families.title'),
'subtitle' => __('Shop.article_families.list'),
'breadcrumb' => [__('Shop.article_families.title')]
])
@section('content')
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Shop.Admin.ArticleFamilies.create') }}" class="btn btn-sm btn-success">{{ __('Shop.Admin.ArticleFamilies.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection
@push('scripts')
@include('components.js.datatable', ['route' => '/Shop/Admin/ArticleFamilies', 'model' => 'articlefamilies'])
@endpush

View File

@@ -0,0 +1,36 @@
@extends('layout.index', [
'title' => __('products.title'),
'subtitle' => __('products.title'),
'breadcrumb' => [__('products.title')]
])
@section('content')
<form action="{{ route('Shop.Products') }}" method="GET">
<div class="row">
<div class="col-md-offset-2 col-md-8">
<div class="box box-info">
<div class="box-body">
<div class="col-md-6">
<h3>{{ name }}</h3>
<h4>
{{ $product.section.name }}<br>
</h4>
</div>
<div class="col-md-6 text-right">
<h2>{{ $prix_total }} </h2>
<h4>{{ $residence['type_produit']['name'] }}</h4>
</div>
<div class="col-md-12">
@include('Hestimmo.modules.Lot.partials.carousel')
</div>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@@ -0,0 +1,28 @@
@extends('layout.index', [
'title' => __('article_families.title'),
'subtitle' => __('article_families.create.title'),
'breadcrumb' => [__('article_families.title'), __('article_families.create.title')]
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.store', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.Articles.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@extends('layout.index', [
'title' => 'Famille d\'articles',
'subtitle' => 'Edition d\'une famille d\'article',
'breadcrumb' => ['Articles']
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.update', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.ArticleFamilies.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
<input type="hidden" name="id" value="{{ $id }}">
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@include('boilerplate::load.tinymce')
<div class="row">
<div class="col-md-8">
{{ Form::label('name', 'Nom') }}
@include('components.input', ['name' => 'name', 'value' => (isset($family['name'])) ? $family['name'] : null, 'required' => true])
{{ Form::label('description', 'Description') }}
@include('components.textarea', ['name' => 'description', 'value' => isset($description) ? $description : null, 'class' => 'editor', 'required' => false])
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="float-right mt-3">
@include('components.button-save')
</div>
</div>
</div>
@push('js')
<script>
$(function() {
$('.editor').tinymce({});
});
</script>
@endpush

View File

@@ -0,0 +1,21 @@
@extends('layout.index', [
'title' => __('Shop.article_families.title'),
'subtitle' => __('Shop.article_families.list'),
'breadcrumb' => [__('Shop.article_families.title')]
])
@section('content')
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Shop.Admin.ArticleFamilies.create') }}" class="btn btn-sm btn-success">{{ __('Shop.Admin.ArticleFamilies.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection
@push('scripts')
@include('components.js.datatable', ['route' => '/Shop/Admin/ArticleFamilies', 'model' => 'articlefamilies'])
@endpush

View File

@@ -0,0 +1,36 @@
@extends('layout.index', [
'title' => __('products.title'),
'subtitle' => __('products.title'),
'breadcrumb' => [__('products.title')]
])
@section('content')
<form action="{{ route('Shop.Products') }}" method="GET">
<div class="row">
<div class="col-md-offset-2 col-md-8">
<div class="box box-info">
<div class="box-body">
<div class="col-md-6">
<h3>{{ name }}</h3>
<h4>
{{ $product.section.name }}<br>
</h4>
</div>
<div class="col-md-6 text-right">
<h2>{{ $prix_total }} </h2>
<h4>{{ $residence['type_produit']['name'] }}</h4>
</div>
<div class="col-md-12">
@include('Hestimmo.modules.Lot.partials.carousel')
</div>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@@ -1,73 +1,89 @@
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li class="active">
<a href="#lot-renseignement" data-toggle="tab" aria-expanded="true">
Renseignement
</a>
</li>
<li>
<a href="#lot-documentation" data-toggle="tab" aria-expanded="true">
Documentations
@if(isset($documents_count))<span class="badge">{{ $documents_count }}</span>@endif
</a>
</li>
<li>
<a href="#lot-photo" id="lot-photo-tab" data-toggle="tab" aria-expanded="true">
Photos
@if(isset($photos_count))<span class="badge">{{ $photos_count }}</span>@endif
</a>
</li>
<li>
<a href="#lot-option" id="lot-option-tab" data-toggle="tab" aria-expanded="true">
Options
</a>
</li>
</ul>
@include('boilerplate::load.fileinput')
@include('boilerplate::load.select2')
@include('boilerplate::load.tinymce')
<div class="tab-content">
<div class="tab-pane active" id="lot-renseignement">
@include('Hestimmo.modules.Lot.partials.edit-renseignement')
<div class="row">
<div class="col-md-8">
<div class="row">
<div class="col-6">
{{ Form::label('name', 'Nom') }}
@include('components.input', ['name' => 'name', 'value' => isset($name) ? $name : null, 'required' => true])
</div>
<div class="tab-pane" id="lot-documentation">
@include('Hestimmo.modules.Lot.partials.edit-documentation')
<div class="col-6">
{{ Form::label('family_id', 'Famille d\'articles') }}
@include('components.select', ['name' => 'family_id', 'list' => $families, 'value' => isset($family_id) ? $family_id : null, 'class' => 'select2 form-control'])
</div>
<div class="tab-pane" id="lot-photo">
@include('Hestimmo.modules.Lot.partials.edit-photo')
</div>
<div class="tab-pane" id="lot-option">
@include('Hestimmo.modules.Lot.partials.edit-option')
<div class="row">
<div class="col-12">
{{ Form::label('categories', 'Catégories') }}
@include('components.select', ['name' => 'categories', 'list' => $categories, 'value' => isset($category_id) ? $category_id : null, 'class' => 'select2 form-control', 'multiple' => true])
</div>
</div>
<div class="row">
<div class="col-6">
{{ Form::label('model', 'Familles de produit') }}
@include('components.select', ['name' => 'model', 'id_name' => 'model', 'list' => $models, 'value' => isset($model) ? $model : null, 'class' => 'select2 form-control'])
</div>
<div class="col-6">
{{ Form::label('model_id', 'Produit') }}
@include('components.select2', ['name' => 'model_id', 'id_name' => 'model_id', 'value' => isset($model_id) ? $model_id : null, 'class' => 'select2 form-control'])
</div>
</div>
<div class="row">
<div class="col-12">
{{ Form::label('tags', 'Tags') }}
@include('components.select', ['name' => 'tags', 'value' => isset($tags) ? $tags : null, 'class' => 'select2 form-control', 'multiple' => true])
</div>
</div>
<div class="row">
<div class="col-12">
{{ Form::label('description', 'Description') }}
@include('components.textarea', ['name' => 'description', 'value' => isset($description) ? $description : null, 'class' => 'editor', 'required' => true])
</div>
</div>
<div class="row">
<div class="col-12">
{{ Form::label('prices', 'Tarifs') }}
</div>
</div>
</div>
<div class="col-md-4">
{{ Form::label('photo', 'Photos') }}
@include('components.file', ['name' => 'photo', 'value' => isset($photo) ? $photo : null, 'required' => true])
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="float-right mt-3">
@include('components.button-save')
</div>
</div>
</div>
@push('js')
@include('components.js', ['js' => '/js/laroute.js'])
<script>
$('.editor').summernote({
lang: 'fr-FR',
height: 120,
toolbar: [
// [groupName, [list of button]]
['style', ['bold', 'italic', 'underline', 'clear']],
['font', ['strikethrough', 'superscript', 'subscript']],
['fontsize', ['fontsize']],
['para', ['ul', 'ol', 'paragraph']],
['color', ['color']],
]
$(function() {
$(".select2").select2();
$('.editor').tinymce({});
$('#model').change( function() {
$.ajax({
url : '{{ route('Botanic.Admin.Varieties.getSelect') }}',
method : 'POST',
data: {model: $('#model').val()},
success : function(data) {
console.log(data);
$("#model_id").select2({
data: data
});
// setOptions('#model_id',data);
}
});
});
});
$('.save').click(function() {
$(this).prop('disabled', true);
$(this).html('en cours...');
$( "#lot-form" ).submit();
return true;
})
</script>
<!-- Include Google Maps JS API -->
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=places&amp;key={{ env('GOOGLE_GEOLOCATION_API_KEY') }}"></script>
<script type="text/javascript" src="/js/geo_autocomplete.js"></script>
@endpush

View File

@@ -8,7 +8,7 @@
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Shop.Admin.Articles.create') }}" class="btn btn-sm btn-success">{{ __('Shop.Admin.Articles.add') }} <i class="fa fa-plus"></i></a>
<a href="{{ route('Shop.Admin.Articles.create') }}" class="btn btn-sm btn-success">{{ __('Shop.articles.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>

View File

@@ -0,0 +1,28 @@
@extends('layout.index', [
'title' => __('article_families.title'),
'subtitle' => __('article_families.create.title'),
'breadcrumb' => [__('article_families.title'), __('article_families.create.title')]
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.store', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.Articles.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@extends('layout.index', [
'title' => 'Famille d\'articles',
'subtitle' => 'Edition d\'une famille d\'article',
'breadcrumb' => ['Articles']
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.update', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.ArticleFamilies.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
<input type="hidden" name="id" value="{{ $id }}">
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@include('boilerplate::load.tinymce')
<div class="row">
<div class="col-md-8">
{{ Form::label('name', 'Nom') }}
@include('components.input', ['name' => 'name', 'value' => (isset($family['name'])) ? $family['name'] : null, 'required' => true])
{{ Form::label('description', 'Description') }}
@include('components.textarea', ['name' => 'description', 'value' => isset($description) ? $description : null, 'class' => 'editor', 'required' => false])
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="float-right mt-3">
@include('components.button-save')
</div>
</div>
</div>
@push('js')
<script>
$(function() {
$('.editor').tinymce({});
});
</script>
@endpush

View File

@@ -0,0 +1,21 @@
@extends('layout.index', [
'title' => __('Shop.article_families.title'),
'subtitle' => __('Shop.article_families.list'),
'breadcrumb' => [__('Shop.article_families.title')]
])
@section('content')
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Shop.Admin.ArticleFamilies.create') }}" class="btn btn-sm btn-success">{{ __('Shop.Admin.ArticleFamilies.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection
@push('scripts')
@include('components.js.datatable', ['route' => '/Shop/Admin/ArticleFamilies', 'model' => 'articlefamilies'])
@endpush

View File

@@ -0,0 +1,36 @@
@extends('layout.index', [
'title' => __('products.title'),
'subtitle' => __('products.title'),
'breadcrumb' => [__('products.title')]
])
@section('content')
<form action="{{ route('Shop.Products') }}" method="GET">
<div class="row">
<div class="col-md-offset-2 col-md-8">
<div class="box box-info">
<div class="box-body">
<div class="col-md-6">
<h3>{{ name }}</h3>
<h4>
{{ $product.section.name }}<br>
</h4>
</div>
<div class="col-md-6 text-right">
<h2>{{ $prix_total }} </h2>
<h4>{{ $residence['type_produit']['name'] }}</h4>
</div>
<div class="col-md-12">
@include('Hestimmo.modules.Lot.partials.carousel')
</div>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@@ -0,0 +1,28 @@
@extends('layout.index', [
'title' => __('article_families.title'),
'subtitle' => __('article_families.create.title'),
'breadcrumb' => [__('article_families.title'), __('article_families.create.title')]
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.store', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.Articles.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@extends('layout.index', [
'title' => 'Famille d\'articles',
'subtitle' => 'Edition d\'une famille d\'article',
'breadcrumb' => ['Articles']
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.update', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.ArticleFamilies.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
<input type="hidden" name="id" value="{{ $id }}">
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@include('boilerplate::load.tinymce')
<div class="row">
<div class="col-md-8">
{{ Form::label('name', 'Nom') }}
@include('components.input', ['name' => 'name', 'value' => (isset($family['name'])) ? $family['name'] : null, 'required' => true])
{{ Form::label('description', 'Description') }}
@include('components.textarea', ['name' => 'description', 'value' => isset($description) ? $description : null, 'class' => 'editor', 'required' => false])
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="float-right mt-3">
@include('components.button-save')
</div>
</div>
</div>
@push('js')
<script>
$(function() {
$('.editor').tinymce({});
});
</script>
@endpush

View File

@@ -0,0 +1,21 @@
@extends('layout.index', [
'title' => __('Shop.article_families.title'),
'subtitle' => __('Shop.article_families.list'),
'breadcrumb' => [__('Shop.article_families.title')]
])
@section('content')
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Shop.Admin.ArticleFamilies.create') }}" class="btn btn-sm btn-success">{{ __('Shop.Admin.ArticleFamilies.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection
@push('scripts')
@include('components.js.datatable', ['route' => '/Shop/Admin/ArticleFamilies', 'model' => 'articlefamilies'])
@endpush

View File

@@ -0,0 +1,36 @@
@extends('layout.index', [
'title' => __('products.title'),
'subtitle' => __('products.title'),
'breadcrumb' => [__('products.title')]
])
@section('content')
<form action="{{ route('Shop.Products') }}" method="GET">
<div class="row">
<div class="col-md-offset-2 col-md-8">
<div class="box box-info">
<div class="box-body">
<div class="col-md-6">
<h3>{{ name }}</h3>
<h4>
{{ $product.section.name }}<br>
</h4>
</div>
<div class="col-md-6 text-right">
<h2>{{ $prix_total }} </h2>
<h4>{{ $residence['type_produit']['name'] }}</h4>
</div>
<div class="col-md-12">
@include('Hestimmo.modules.Lot.partials.carousel')
</div>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@@ -0,0 +1,28 @@
@extends('layout.index', [
'title' => __('article_families.title'),
'subtitle' => __('article_families.create.title'),
'breadcrumb' => [__('article_families.title'), __('article_families.create.title')]
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.store', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.Articles.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@extends('layout.index', [
'title' => 'Famille d\'articles',
'subtitle' => 'Edition d\'une famille d\'article',
'breadcrumb' => ['Articles']
])
@include('boilerplate::load.fileinput')
@section('content')
{{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.update', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }}
<div class="row">
<div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.ArticleFamilies.index") }}" class="btn btn-default">
{{ __('article_families.list.title') }}
</a>
<span class="btn-group pull-right">
@include('components.button-save')
</span>
</div>
</div>
<input type="hidden" name="id" value="{{ $id }}">
@include('Shop.Admin.ArticleFamilies.form')
</form>
@endsection

View File

@@ -0,0 +1,29 @@
@include('boilerplate::load.tinymce')
<div class="row">
<div class="col-md-8">
{{ Form::label('name', 'Nom') }}
@include('components.input', ['name' => 'name', 'value' => (isset($family['name'])) ? $family['name'] : null, 'required' => true])
{{ Form::label('description', 'Description') }}
@include('components.textarea', ['name' => 'description', 'value' => isset($description) ? $description : null, 'class' => 'editor', 'required' => false])
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="float-right mt-3">
@include('components.button-save')
</div>
</div>
</div>
@push('js')
<script>
$(function() {
$('.editor').tinymce({});
});
</script>
@endpush

View File

@@ -0,0 +1,21 @@
@extends('layout.index', [
'title' => __('Shop.article_families.title'),
'subtitle' => __('Shop.article_families.list'),
'breadcrumb' => [__('Shop.article_families.title')]
])
@section('content')
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Shop.Admin.ArticleFamilies.create') }}" class="btn btn-sm btn-success">{{ __('Shop.Admin.ArticleFamilies.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection
@push('scripts')
@include('components.js.datatable', ['route' => '/Shop/Admin/ArticleFamilies', 'model' => 'articlefamilies'])
@endpush

View File

@@ -0,0 +1,36 @@
@extends('layout.index', [
'title' => __('products.title'),
'subtitle' => __('products.title'),
'breadcrumb' => [__('products.title')]
])
@section('content')
<form action="{{ route('Shop.Products') }}" method="GET">
<div class="row">
<div class="col-md-offset-2 col-md-8">
<div class="box box-info">
<div class="box-body">
<div class="col-md-6">
<h3>{{ name }}</h3>
<h4>
{{ $product.section.name }}<br>
</h4>
</div>
<div class="col-md-6 text-right">
<h2>{{ $prix_total }} </h2>
<h4>{{ $residence['type_produit']['name'] }}</h4>
</div>
<div class="col-md-12">
@include('Hestimmo.modules.Lot.partials.carousel')
</div>
</div>
</div>
</div>
</div>
</form>
@endsection

View File

@@ -0,0 +1,16 @@
<select
name="{{ $name }}"
@if (isset($id_name))id="{{ $id_name }}"@endif
class="@if (isset($class)){{ $class }} @else form-control @endif"
@if (isset($style))style="{{ $style }}" @endif
@if (isset($required))required="required"@endif
@if (isset($multiple))multiple="multiple"@endif
>
@if (isset($list) && count($list))
@foreach($list as $item)
<option @if (isset($value) && ($item['id'] == $value)) selected @endif value="{{$item['id']}}">{{ $item['text'] }}</option>
@endforeach
@endif
</select>

View File

@@ -0,0 +1,51 @@
@if(!defined('LOAD_FANCYTREE'))
@push('css')
<link rel="stylesheet" href="/modules/fancytree/skin-bootstrap/ui.fancytree.min.css">
@endpush
<script src="/modules/fancytree/jquery.fancytree-all-deps.min.js"></script>
<script>
$(function(){
// Initialize Fancytree
$("#tree").fancytree({
extensions: ["childcounter", "dnd5", "edit", "glyph", "wide"],
autoScroll: true,
checkbox: false,
selectMode: 3,
dnd5: {
dragStart: function(node, data) { return true; },
dragEnter: function(node, data) { return true; },
dragDrop: function(node, data) { data.otherNode.copyTo(node, data.hitMode); }
},
glyph: glyph_opts,
// source: {url: "ajax-tree-taxonomy.json", debugDelay: 1000},
source: {url: "ajax-tree-products.json", debugDelay: 1000},
// toggleEffect: { effect: "drop", options: {direction: "left"}, duration: 400 },
wide: {
iconWidth: "1em", // Adjust this if @fancy-icon-width != "16px"
iconSpacing: "0.5em", // Adjust this if @fancy-icon-spacing != "3px"
labelSpacing: "0.1em", // Adjust this if padding between icon and label != "3px"
levelOfs: "1.5em" // Adjust this if ul padding != "16px"
},
childcounter: {
deep: true,
hideZeros: true,
hideExpanded: true
},
icon: function(event, data){
// if( data.node.isFolder() ) {
// return "glyphicon glyphicon-book";
// }
},
lazyLoad: function(event, data) {
data.result = {url: "ajax-sub2.json", debugDelay: 1000};
}
});
};
</script>
@php(define('LOAD_FANCYTREE', true))
@endif

View File

@@ -7,6 +7,6 @@ Route::prefix('Varieties')->name('Varieties.')->group(function () {
Route::post('update', 'VarietyController@update')->name('update');
Route::post('store', 'VarietyController@store')->name('store');
Route::get('edit/{id}', 'VarietyController@edit')->name('edit');
Route::post('getSelect', 'VarietyController@getOptionsWithSpecie')->name('getSelect');
});