[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; namespace App\Console\Commands;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use App\Models\Shop\Family; use App\Models\Botanic\Family;
use App\Models\Shop\Genre; use App\Models\Botanic\Genre;
use App\Models\Shop\Specie; use App\Models\Botanic\Specie;
use App\Models\Shop\Variety; use App\Models\Botanic\Variety;
class migrate extends Command class migrate extends Command
{ {
@@ -41,6 +41,18 @@ class migrate extends Command
*/ */
public function handle() 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(); $varieties = Variety::all();
foreach ($varieties as $variety) { foreach ($varieties as $variety) {
@@ -61,6 +73,7 @@ class migrate extends Command
} }
} }
*/ */
/*
$species = Specie::all(); $species = Specie::all();
foreach ($species as $specie) { foreach ($species as $specie) {
$genre_name = $specie->genre; $genre_name = $specie->genre;
@@ -79,7 +92,7 @@ class migrate extends Command
dump("Aucun genre"); dump("Aucun genre");
} }
} }
*/
/* /*
$genres = Genre::all(); $genres = Genre::all();
foreach ($genres as $genre) { 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 [ return [
Column::make('name'), Column::make('name'),
Column::make('alias'),
Column::make('latin'),
Column::computed('action') Column::computed('action')
->exportable(false) ->exportable(false)
->printable(false) ->printable(false)

View File

@@ -21,6 +21,11 @@ class VarietyController extends Controller
return Varieties::getDatatable($request->all()); return Varieties::getDatatable($request->all());
} }
public function getOptionsWithSpecie()
{
return response()->json(Varieties::getOptionsWithSpecie());
}
public function create() public function create()
{ {
return view('Botanic.Admin.Varieties.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\Http\Controllers\Controller;
use App\Repositories\Shop\Articles; use App\Repositories\Shop\Articles;
use App\Repositories\Shop\ArticleFamilies;
use App\Repositories\Shop\Categories;
use App\DataTables\Shop\ArticlesDataTable; use App\DataTables\Shop\ArticlesDataTable;
class ArticleController extends Controller class ArticleController extends Controller
@@ -23,7 +25,9 @@ class ArticleController extends Controller
public function create() public function create()
{ {
$data = []; $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); return view('Shop.Admin.Articles.create', $data);
} }

View File

@@ -22,7 +22,7 @@ class Species
public static function getOptions() public static function getOptions()
{ {
return Specie::get()->SortBy('name')->pluck('name','id')->toArray(); return Specie::get()->SortBy('name')->pluck('name','id')->toArray();
} }
public static function getAll() public static function getAll()
{ {

View File

@@ -19,6 +19,22 @@ class Varieties
return Datatables::of($model)->make(true); 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() public static function getAll()
{ {
return Variety::orderBy('name','asc')->get(); return Variety::orderBy('name','asc')->get();

View File

@@ -15,6 +15,11 @@ class ArticleFamilies
return Datatables::of($model)->make(true); return Datatables::of($model)->make(true);
} }
public static function getOptions()
{
return ArticleFamily::get()->pluck('name','id')->toArray();
}
public static function getAll() public static function getAll()
{ {
return ArticleFamily::orderBy('name','asc')->get(); 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')); $el.append($("<option></option>").attr("value",'').text('Tous'));
} }
$.each(data, function(key, name) { $.each(data, function(key, name) {
// console.log(name); console.log(name);
if (key != null) { if (key != null) {
if (key == selected) { if (key == selected) {
$el.append($("<option selected='selected'></option>").attr("value", key).text(name)); $el.append($("<option selected='selected'></option>").attr("value", key).text(name));

View File

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

View File

@@ -21,12 +21,26 @@ return [
], ],
'articles' => [ 'articles' => [
'title' => 'Articles', 'title' => 'Articles',
'list' => 'Liste des articles',
'description' => 'Gérer les 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' => [ 'customers' => [
'title' => "Clients", 'title' => "Clients",
'list' => 'Liste des clients',
'description' => 'Gérer les 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"> @include('boilerplate::load.fileinput')
<ul class="nav nav-tabs"> @include('boilerplate::load.select2')
<li class="active"> @include('boilerplate::load.tinymce')
<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>
<div class="tab-content"> <div class="row">
<div class="tab-pane active" id="lot-renseignement"> <div class="col-md-8">
@include('Hestimmo.modules.Lot.partials.edit-renseignement') <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="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>
<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>
<div class="tab-pane" id="lot-documentation"> <div class="row">
@include('Hestimmo.modules.Lot.partials.edit-documentation') <div class="col-12">
{{ Form::label('prices', 'Tarifs') }}
</div>
</div> </div>
<div class="tab-pane" id="lot-photo"> </div>
@include('Hestimmo.modules.Lot.partials.edit-photo') <div class="col-md-4">
</div> {{ Form::label('photo', 'Photos') }}
@include('components.file', ['name' => 'photo', 'value' => isset($photo) ? $photo : null, 'required' => true])
</div>
</div>
<div class="tab-pane" id="lot-option"> <div class="row">
@include('Hestimmo.modules.Lot.partials.edit-option') <div class="col-md-8">
<div class="float-right mt-3">
@include('components.button-save')
</div> </div>
</div> </div>
</div> </div>
@push('js') @push('js')
@include('components.js', ['js' => '/js/laroute.js']) <script>
<script> $(function() {
$('.editor').summernote({ $(".select2").select2();
lang: 'fr-FR', $('.editor').tinymce({});
height: 120, $('#model').change( function() {
toolbar: [ $.ajax({
// [groupName, [list of button]] url : '{{ route('Botanic.Admin.Varieties.getSelect') }}',
['style', ['bold', 'italic', 'underline', 'clear']], method : 'POST',
['font', ['strikethrough', 'superscript', 'subscript']], data: {model: $('#model').val()},
['fontsize', ['fontsize']], success : function(data) {
['para', ['ul', 'ol', 'paragraph']], console.log(data);
['color', ['color']], $("#model_id").select2({
] data: data
}); });
$('.save').click(function() { // setOptions('#model_id',data);
$(this).prop('disabled', true); }
$(this).html('en cours...'); });
$( "#lot-form" ).submit(); });
return true; });
}) </script>
</script> @endpush
<!-- 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="row pb-3">
<div class="col text-right"> <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>
</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('update', 'VarietyController@update')->name('update');
Route::post('store', 'VarietyController@store')->name('store'); Route::post('store', 'VarietyController@store')->name('store');
Route::get('edit/{id}', 'VarietyController@edit')->name('edit'); Route::get('edit/{id}', 'VarietyController@edit')->name('edit');
Route::post('getSelect', 'VarietyController@getOptionsWithSpecie')->name('getSelect');
}); });