[WIP] Fix cosmetics, prices

This commit is contained in:
Ludovic CANDELLIER
2020-06-07 23:15:22 +02:00
parent 424fb43b20
commit 066744e082
35 changed files with 230 additions and 193 deletions

View File

@@ -36,7 +36,7 @@ class ParentDataTable extends DataTable
{ {
$buttons = ''; $buttons = '';
// $buttons .= '<button type="button" data-id="{{$id}}" class="btn btn-xs btn-secondary btn-show mr-2"><i class="fa fa-fw fa-eye"></i></button>'; // $buttons .= '<button type="button" data-id="{{$id}}" class="btn btn-xs btn-secondary btn-show mr-2"><i class="fa fa-fw fa-eye"></i></button>';
$buttons .= '<button type="button" data-id="{{$id}}" class="btn btn-xs btn-primary btn-edit mr-2"><i class="fa fa-fw fa-edit"></i></button>'; $buttons .= '<button type="button" data-id="{{$id}}" class="btn btn-xs btn-primary btn-edit mr-2"><i class="fa fa-fw fa-pencil-alt"></i></button>';
$buttons .= '<button type="button" data-id="{{$id}}" class="btn btn-xs btn-danger btn-del"><i class="fa fa-fw fa-trash"></i></button>'; $buttons .= '<button type="button" data-id="{{$id}}" class="btn btn-xs btn-danger btn-del"><i class="fa fa-fw fa-trash"></i></button>';
return $buttons; return $buttons;
} }
@@ -82,9 +82,10 @@ class ParentDataTable extends DataTable
{ {
return $this->builder() return $this->builder()
->setTableId($id) ->setTableId($id)
->parameters($this->getParameters())
->columns($this->getColumns()) ->columns($this->getColumns())
->minifiedAjax() ->minifiedAjax()
->dom('Bfrtip') ->dom($this->getDom())
->orderBy(0,'asc') ->orderBy(0,'asc')
->buttons( ->buttons(
Button::make('export'), Button::make('export'),
@@ -92,6 +93,27 @@ class ParentDataTable extends DataTable
); );
} }
public function getParameters()
{
return [];
}
public function getDom()
{
$dom = $this->getDatatablesHeaderDefault();
$dom .= "rt";
$dom .= $this->getDatatablesFooterDefault();
return $dom;
}
public function getDatatablesHeaderDefault() {
return "<'row dt-toolbar-header'<'col-lg-4'l><'col-lg-4'B><'col-lg-4 text-right add'f>>";
}
public function getDatatablesFooterDefault() {
return "<'row dt-toolbar-footer'<'col-md-6'i><'col-md-6'p>>";
}
/** /**
* Get filename for export. * Get filename for export.
* *

View File

@@ -12,15 +12,15 @@ class ArticleAttributeFamiliesDataTable extends DataTable
public function query(ArticleAttributeFamily $model) public function query(ArticleAttributeFamily $model)
{ {
$model = $model::withCount(['values']); $model = $model::withCount(['Attributes']);
return self::buildQuery($model); return self::buildQuery($model);
} }
protected function getColumns() protected function getColumns()
{ {
return [ return [
Column::make('name'), Column::make('name')->title('Nom'),
Column::make('values_count')->title('Nb valeurs')->searchable(false), Column::make('attributes_count')->title('Nb attributs')->searchable(false)->addClass('text-right'),
self::makeColumnButtons(), self::makeColumnButtons(),
]; ];
} }

View File

@@ -12,15 +12,15 @@ class ArticleAttributeValuesDataTable extends DataTable
public function query(ArticleAttributeValue $model) public function query(ArticleAttributeValue $model)
{ {
$model = $model::with(['attribute_family']); $model = $model::with(['ArticleAttributeFamily']);
return self::buildQuery($model); return self::buildQuery($model);
} }
protected function getColumns() protected function getColumns()
{ {
return [ return [
Column::make('attribute_family.name')->title('Famille d\'attributs') , Column::make('value')->title('Attributs'),
Column::make('value'), Column::make('article_attribute_family.name')->title('Famille d\'attributs')->sortable(false),
self::makeColumnButtons(), self::makeColumnButtons(),
]; ];
} }

View File

@@ -12,13 +12,15 @@ class ArticleFamiliesDataTable extends DataTable
public function query(ArticleFamily $model) public function query(ArticleFamily $model)
{ {
$model = $model::withCount('Articles');
return self::buildQuery($model); return self::buildQuery($model);
} }
protected function getColumns() protected function getColumns()
{ {
return [ return [
Column::make('name'), Column::make('name')->title('Nom'),
Column::make('articles_count')->title('Nb articles')->addClass('text-right'),
self::makeColumnButtons(), self::makeColumnButtons(),
]; ];
} }

View File

@@ -18,7 +18,7 @@ class CategoriesDataTable extends DataTable
protected function getColumns() protected function getColumns()
{ {
return [ return [
Column::make('name'), Column::make('name')->title('Nom'),
self::makeColumnButtons(), self::makeColumnButtons(),
]; ];
} }

View File

@@ -20,6 +20,13 @@ class ArticleAttributeValueController extends Controller
return ArticleAttributeValues::getTables($request->all()); return ArticleAttributeValues::getTables($request->all());
} }
public function getOptionsByFamily(Request $request)
{
$id = $request->input('family_id');
return response()->json(ArticleAttributeValues::getSelectByFamily($id));
}
public function create() public function create()
{ {
return view('Shop.Admin.ArticleAttributeValues.create'); return view('Shop.Admin.ArticleAttributeValues.create');

View File

@@ -31,7 +31,8 @@ class ArticleController extends Controller
$data['families'] = ArticleFamilies::getOptions(); $data['families'] = ArticleFamilies::getOptions();
$data['attribute_families'] = ArticleAttributeFamilies::getOptions(); $data['attribute_families'] = ArticleAttributeFamilies::getOptions();
$data['tags_list'] = TagGroups::getTreeTags(); $data['tags_list'] = TagGroups::getTreeTags();
$data['models'] = ['App\Models\Botanic\Specie' => 'Espèces', 'App\Models\Botanic\Variety' => 'Variétés']; // $data['models'] = ['App\Models\Botanic\Specie' => 'Espèces', 'App\Models\Botanic\Variety' => 'Variétés'];
$data['models'] = ['App\Models\Botanic\Variety' => 'Variétés'];
return view('Shop.Admin.Articles.create', $data); return view('Shop.Admin.Articles.create', $data);
} }

View File

@@ -9,9 +9,9 @@ class ArticleAttributeFamily extends Model
protected $guarded = ['id']; protected $guarded = ['id'];
protected $table = 'shop_article_attribute_families'; protected $table = 'shop_article_attribute_families';
public function Values() public function Attributes()
{ {
return $this->hasMany('App\Models\Shop\ArticleAttributeValue','attribute_family_id'); return $this->hasMany('App\Models\Shop\ArticleAttributeValue');
} }
} }

View File

@@ -9,14 +9,14 @@ class ArticleAttributeValue extends Model
protected $guarded = ['id']; protected $guarded = ['id'];
protected $table = 'shop_article_attribute_values'; protected $table = 'shop_article_attribute_values';
public function AttributeFamily() public function ArticleAttributeFamily()
{ {
return $this->belongsTo('App\Models\Shop\ArticleAttributeFamily'); return $this->belongsTo('App\Models\Shop\ArticleAttributeFamily');
} }
public function scopeByFamily($query, $attribute_family_id) public function scopeByFamily($query, $attribute_family_id)
{ {
return $query->where('attribute_family_id', $attribute_family_id); return $query->where('article_attribute_family_id', $attribute_family_id);
} }
} }

View File

@@ -27,12 +27,19 @@ class ArticleAttributeValues
public static function getOptions() public static function getOptions()
{ {
return ArticleAttributeValue::get()->pluck('name','id')->toArray(); return ArticleAttributeValue::get()->pluck('value','id')->toArray();
} }
public static function getOptionsByFamily($attribute_family_id) public static function getSelectByFamily($attribute_family_id)
{ {
return ArticleAttributeValue::byFamily($attribute_family_id)->get()->pluck('name','id')->toArray(); // return ArticleAttributeValue::byFamily($attribute_family_id)->get()->pluck('value','id')->toArray();
$values = ArticleAttributeValue::byFamily($attribute_family_id)->get();
$data = [];
foreach ($values as $value)
{
$data[] = ['id' => $value->id, 'text' => $value->value];
}
return collect($data)->sortBy('text')->values()->all();
} }
public static function store($data) public static function store($data)

View File

@@ -51,6 +51,17 @@ class Articles
return Article::destroy($id); return Article::destroy($id);
} }
public static function getImages($id)
{
$variety = self::get($id);
$variety->getMedia();
foreach ($variety->media as $key => $media) {
$variety->media[$key]['url'] = $media->getUrl();
}
return $variety->media;
}
public static function deleteImage($id, $index) public static function deleteImage($id, $index)
{ {
$article = self::get($id); $article = self::get($id);

View File

@@ -29,17 +29,17 @@
$(type).each(function(rowIndex) { $(type).each(function(rowIndex) {
$(this).find('input[name]').each(function() { $(this).find('input[name]').each(function() {
var name = $(this).attr('name'); var name = $(this).attr('name');
name = name.replace(/\[[0-9]?\]$/, '['+rowIndex+']'); name = name.replace(/\[[0-9]?\]/g, '['+rowIndex+']');
$(this).attr('name',name); $(this).attr('name',name);
}); });
$(this).find('select[name]').each(function() { $(this).find('select[name]').each(function() {
var name = $(this).attr('name'); var name = $(this).attr('name');
name = name.replace(/\[[0-9]?\]$/, '['+rowIndex+']'); name = name.replace(/\[[0-9]?\]/g, '['+rowIndex+']');
$(this).attr('name',name); $(this).attr('name',name);
}); });
$(this).find('textarea[name]').each(function() { $(this).find('textarea[name]').each(function() {
var name = $(this).attr('name'); var name = $(this).attr('name');
name = name.replace(/\[[0-9]?\]$/, '['+rowIndex+']'); name = name.replace(/\[[0-9]?\]/g, '['+rowIndex+']');
$(this).attr('name',name); $(this).attr('name',name);
}); });
$(this).find('.appender').each(function() { $(this).find('.appender').each(function() {

View File

@@ -5,7 +5,7 @@ return [
* Default table attributes when generating the table. * Default table attributes when generating the table.
*/ */
'table' => [ 'table' => [
'class' => 'table', 'class' => 'table table-striped table-hover va-middle',
'id' => 'dataTableBuilder', 'id' => 'dataTableBuilder',
], ],

View File

@@ -30,6 +30,42 @@ return [
'successdel' => 'L\'article a été correctement effacé', 'successdel' => 'L\'article a été correctement effacé',
'confirmdelete' => 'Confirmez-vous la suppression de l\'article ?', 'confirmdelete' => 'Confirmez-vous la suppression de l\'article ?',
], ],
'article_families' => [
'title' => 'Familles d\'articles',
'description' => 'Gérer les familles d\'articles',
'add' => 'Ajouter une famille d\'articles',
'edit' => 'Editer une famille d\'articles',
'del' => 'Effacer une famille d\'articles',
'list' => 'Liste des familles d\'articles',
'successadd' => 'La famille d\'articles été correctement ajoutée',
'successmod' => 'La famille d\'articles a été correctement modifiée',
'successdel' => 'La famille d\'articles a été correctement effacée',
'confirmdelete' => 'Confirmez-vous la suppression de la famille d\'articles ?',
],
'article_attribute_families' => [
'title' => 'Familles d\'attributs',
'description' => 'Gérer les familles d\'attributs',
'add' => 'Ajouter une famille d\'attributs',
'edit' => 'Editer une famille d\'attributs',
'del' => 'Effacer une famille d\'attributs',
'list' => 'Liste des familles d\'attributs',
'successadd' => 'La famille d\'attributs été correctement ajoutée',
'successmod' => 'La famille d\'attributs a été correctement modifiée',
'successdel' => 'La familles d\'attributs a été correctement effacée',
'confirmdelete' => 'Confirmez-vous la suppression de la famille d\'attributs ?',
],
'article_attribute_values' => [
'title' => 'Attributs d\'articles',
'description' => 'Gérer les attributs d\'articles',
'add' => 'Ajouter un attribut d\'articles',
'edit' => 'Editer un attribut d\'articles',
'del' => 'Effacer un attribut d\'articles',
'list' => 'Liste des attributs d\'articles',
'successadd' => 'L\'attribut d\'articles été correctement ajouté',
'successmod' => 'L\'attribut d\'articles a été correctement modifiée',
'successdel' => 'L\'attribut d\'articles a été correctement effacée',
'confirmdelete' => 'Confirmez-vous la suppression de l\'attribut d\'article ?',
],
'tags' => [ 'tags' => [
'title' => 'Tags', 'title' => 'Tags',
'description' => 'Gérer les tags', 'description' => 'Gérer les tags',

View File

@@ -5,15 +5,7 @@
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Botanic.Admin.Families.create'), 'label' => __('Botanic.families.add')])
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Botanic.Admin.Families.create') }}" class="btn btn-sm btn-success">{{ __('Botanic.families.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection @endsection
@push('scripts') @push('scripts')

View File

@@ -5,15 +5,7 @@
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Botanic.Admin.Genres.create'), 'label' => __('Botanic.genres.add')])
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Botanic.Admin.Genres.create') }}" class="btn btn-sm btn-success">{{ __('Botanic.genres.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection @endsection
@push('scripts') @push('scripts')

View File

@@ -5,15 +5,7 @@
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Botanic.Admin.Species.create'), 'label' => __('Botanic.species.add')])
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Botanic.Admin.Species.create') }}" class="btn btn-sm btn-success">{{ __('Botanic.species.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection @endsection
@push('scripts') @push('scripts')

View File

@@ -5,15 +5,7 @@
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Botanic.Admin.Varieties.create'), 'label' => __('Botanic.varieties.add')])
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Botanic.Admin.Varieties.create') }}" class="btn btn-sm btn-success">{{ __('Botanic.varieties.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection @endsection
@push('scripts') @push('scripts')

View File

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

View File

@@ -1,21 +1,13 @@
@extends('layout.index', [ @extends('layout.index', [
'title' => __('Shop.article_families.title'), 'title' => __('Shop.article_attribute_families.title'),
'subtitle' => __('Shop.article_families.list'), 'subtitle' => __('Shop.article_attribute_families.list'),
'breadcrumb' => [__('Shop.article_families.title')] 'breadcrumb' => [__('Shop.article_attribute_families.title')]
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Shop.Admin.ArticleAttributeFamilies.create'), 'label' => __('Shop.article_attribute_families.add')])
<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 @endsection
@push('scripts') @push('scripts')
@include('components.js.datatable', ['route' => '/Shop/Admin/ArticleFamilies', 'model' => 'articlefamilies']) @include('components.js.datatable', ['route' => '/Shop/Admin/ArticleAttributeFamilies', 'model' => 'ArticleAttributefamilies'])
@endpush @endpush

View File

@@ -1,21 +1,13 @@
@extends('layout.index', [ @extends('layout.index', [
'title' => __('Shop.article_families.title'), 'title' => __('Shop.article_attribute_values.title'),
'subtitle' => __('Shop.article_families.list'), 'subtitle' => __('Shop.article_attribute_values.list'),
'breadcrumb' => [__('Shop.article_families.title')] 'breadcrumb' => [__('Shop.article_attribute_values.title')]
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Shop.Admin.ArticleAttributeValues.create'), 'label' => __('Shop.article_attribute_values.add')])
<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 @endsection
@push('scripts') @push('scripts')
@include('components.js.datatable', ['route' => '/Shop/Admin/ArticleFamilies', 'model' => 'articlefamilies']) @include('components.js.datatable', ['route' => '/Shop/Admin/ArticleAttributeValues', 'model' => 'articleattributes'])
@endpush @endpush

View File

@@ -5,15 +5,7 @@
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Shop.Admin.ArticleFamilies.create'), 'label' => __('Shop.article_families.add')])
<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 @endsection
@push('scripts') @push('scripts')

View File

@@ -1,7 +1,7 @@
@extends('layout.index', [ @extends('layout.index', [
'title' => __('articles.title'), 'title' => __('Shop.articles.title'),
'subtitle' => __('articles.create.title'), 'subtitle' => __('Shop.articles.add'),
'breadcrumb' => [__('articles.title'), __('articles.create.title')] 'breadcrumb' => [__('Shop.articles.title'), __('Shop.articles.add')]
]) ])
@include('boilerplate::load.fileinput') @include('boilerplate::load.fileinput')
@@ -9,7 +9,6 @@
@section('content') @section('content')
{{ Form::open(['route' => 'Shop.Admin.Articles.store', 'id' => 'article-form', 'autocomplete' => 'off', 'files' => true]) }} {{ Form::open(['route' => 'Shop.Admin.Articles.store', 'id' => 'article-form', 'autocomplete' => 'off', 'files' => true]) }}
@include('Shop.Admin.Articles.form') @include('Shop.Admin.Articles.form')
</form> </form>

View File

@@ -13,7 +13,7 @@
<div class="row"> <div class="row">
<div class="col-sm-12 mbl"> <div class="col-sm-12 mbl">
<a href="{{ route("Shop.Admin.Articles.index") }}" class="btn btn-default"> <a href="{{ route("Shop.Admin.Articles.index") }}" class="btn btn-default">
{{ __('lots.list.title') }} {{ __('Shop.articles.title') }}
</a> </a>
<span class="btn-group pull-right"> <span class="btn-group pull-right">

View File

@@ -79,43 +79,17 @@
@push('js') @push('js')
<script> <script>
$(function() { $(function() {
$("#model_id").off('change').on('change', function(e) { $('.select2').select2();
var model = $('#model_id').select2('data'); $('.editor').tinymce({});
var name = model[0]['text'];
console.log(name);
$('input[name="name"]').val(name);
});
$(".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);
//
}
});
});
$('.active-checkbox').bootstrapToggle(); $('.active-checkbox').bootstrapToggle();
$('.active-checkbox').off('change').on('change', function(e) { $('.active-checkbox').off('change').on('change', function(e) {
var id = $('#id').val(); var id = $('#id').val();
// handleAdmin.toggle(id, $(this).prop('checked')); // handleAdmin.toggle(id, $(this).prop('checked'));
}); });
});
});
</script> </script>
@endpush @endpush

View File

@@ -5,15 +5,7 @@
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Shop.Admin.Articles.create'), 'label' => __('Shop.articles.add')])
<div class="row pb-3">
<div class="col text-right">
<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>
{{$dataTable->table()}}
@endsection @endsection
@push('scripts') @push('scripts')

View File

@@ -49,3 +49,31 @@
@include('components.uploader.widget', ['delete_url' => route('Shop.Admin.Articles.deleteImage') ]) @include('components.uploader.widget', ['delete_url' => route('Shop.Admin.Articles.deleteImage') ])
</div> </div>
</div> </div>
@push('js')
<script>
$("#model_id").change( function(e) {
var model = $('#model_id').select2('data');
var name = model[0]['text'];
$('input[name="name"]').val(name);
});
$('#model').change( function() {
loadVarieties();
});
function loadVarieties() {
$.ajax({
url : '{{ route('Botanic.Admin.Varieties.getSelect') }}',
method : 'POST',
data: {model: $('#model').val()},
success : function(data) {
$("#model_id").select2({data: data});
}
});
}
loadVarieties();
</script>
@endpush

View File

@@ -10,7 +10,9 @@
<script> <script>
function append_price() { function append_price() {
handle_append_attribute(); // handle_append_attribute();
$('.select2').select2();
handle_change_attribute();
} }
$("#append_price").appender({ $("#append_price").appender({
@@ -31,7 +33,7 @@
function handle_append_attribute(selector) { function handle_append_attribute(selector) {
console.log('handle_append_attribute'); console.log('handle_append_attribute');
$("#append_attribute").appender({ $(".append_attribute").appender({
rowSection: '.row-new-attribute', rowSection: '.row-new-attribute',
type: '.row-attribute', type: '.row-attribute',
addBtn: '.add-new-attribute', addBtn: '.add-new-attribute',
@@ -45,6 +47,28 @@
}); });
} }
function handle_change_attribute() {
$('.attributes-family').change( function() {
var family_id = $(this).val();
var $family = $(this);
var $parent = $family.parent().parent();
// console.log($parent);
var $selector = $parent.find('.attributes-value');
// console.log($selector);
load_attribute_values($selector, family_id);
});
}
function load_attribute_values($selector, family_id) {
$.ajax({
url : "{{ route('Shop.Admin.ArticleAttributeValues.getOptionsByFamily') }}",
method : 'POST',
data: { family_id: family_id },
success : function(data) {
$selector.empty().select2({data: data});
}
});
}
</script> </script>
@endpush @endpush

View File

@@ -1,4 +1,4 @@
<div id="attributes" class="appender" data-id=""> <div id="attributes" class="appender" data-id="">
@include('Shop.Admin.Articles.partials.prices.block_attribute_new') @include('Shop.Admin.Articles.partials.prices.block_attribute_new')
<div id="append_attribute"></div> <div class="append_attribute"></div>
</div> </div>

View File

@@ -1,15 +1,12 @@
<div class="row row-new-attribute row-attribute"> <div class="row row-new-attribute row-attribute">
<div class="col-xs-3 col-lg-2"> <input type="hidden" name="prices[][attributes][quantity]" value="1">
{{ Form::label('quantity', 'Quantité') }}<br/> <div class="col-12 col-lg-6 1">
@include('components.input', ['name' => 'prices[][quantity][]', 'value' => (isset($quantity)) ? $quantity : 1, 'required' => true, 'class' => 'form-control-sm'])
</div>
<div class="col-xs-4 col-lg-4">
{{ Form::label('attribute_family_id', 'Attributs') }}<br/> {{ Form::label('attribute_family_id', 'Attributs') }}<br/>
@include('components.select', ['name' => 'prices[][attribute_family_id][]', 'value' => (isset($attribute_value['attribute_family_id'])) ? $attribute_value['attribute_family_id'] : null, 'list' => $attribute_families, 'required' => true, 'class' => 'form-control form-control-sm']) @include('components.select', ['name' => 'prices[][attributes][attribute_family_id]', 'value' => (isset($attribute_value['attribute_family_id'])) ? $attribute_value['attribute_family_id'] : null, 'list' => $attribute_families, 'required' => true, 'class' => 'select2 form-control form-control-sm attributes-family'])
</div> </div>
<div class="col-xs-5 col-lg-4"> <div class="col-12 col-lg-6 2">
{{ Form::label('attribute_value_id', 'Valeur') }}<br/> {{ Form::label('attribute_value_id', 'Valeur') }}<br/>
@include('components.select', ['name' => 'prices[][attribute_value_id][]', 'value' => (isset($attribute_value['id'])) ? $attribute_value['id'] : null, 'list' => (isset($attribute_values)) ? $attribute_values : null, 'required' => true, 'class' => 'form-control form-control-sm']) @include('components.select', ['name' => 'prices[][attributes][attribute_value_id]', 'value' => (isset($attribute_value['id'])) ? $attribute_value['id'] : null, 'list' => (isset($attribute_values)) ? $attribute_values : null, 'required' => true, 'class' => 'select2 form-control form-control-sm attributes-value'])
</div> </div>
</div> </div>

View File

@@ -7,43 +7,39 @@
<div class="row"> <div class="row">
<div class="col-lg-2"> <div class="col-lg-1">
{{ Form::label('tax_id', 'TVA') }}<br/> {{ Form::label('quantity', 'Quantité') }}<br/>
@include('components.select', ['name' => 'prices[][tax_id]', 'value' => (isset($tax_id)) ? $tax_id : null, 'list' => isset($taxes) ? $taxes : null, 'required' => true, 'class' => 'form-control form-control-sm']) @include('components.number', ['name' => 'prices[0][quantity]', 'value' => (isset($quantity)) ? $quantity : 1, 'required' => true, 'class' => 'form-control-sm'])
</div> </div>
<div class="col-lg-2"> <div class="col-lg-5">
{{ Form::label('quantity', 'Quantité') }}<br/> @include('Shop.Admin.Articles.partials.prices.block_attribute_new')
@include('components.number', ['name' => 'prices[][quantity}', 'value' => (isset($quantity)) ? $quantity : 1, 'required' => true, 'class' => 'form-control-sm']) </div>
<div class="col-lg-1">
{{ Form::label('tax_id', 'TVA') }}<br/>
@include('components.select', ['name' => 'prices[0][tax_id]', 'value' => (isset($tax_id)) ? $tax_id : null, 'list' => isset($taxes) ? $taxes : null, 'required' => true, 'class' => 'form-control form-control-sm'])
</div> </div>
<div class="col-lg-2"> <div class="col-lg-2">
{{ Form::label('price', 'Prix HT') }} {{ Form::label('price', 'Prix HT') }}
@include('components.money', ['name' => 'prices[][price}', 'value' => (isset($price)) ? $price : 0, 'required' => true, 'class' => 'form-control-sm']) @include('components.money', ['name' => 'prices[0][price]', 'value' => (isset($price)) ? $price : 0, 'required' => true, 'class' => 'form-control-sm'])
</div> </div>
<div class="col-lg-2"> <div class="col-lg-2">
{{ Form::label('price_taxed', 'Prix TTC') }} {{ Form::label('price_taxed', 'Prix TTC') }}
@include('components.money', ['name' => 'prices[][price_taxed]', 'value' => (isset($price_ht)) ? $price_ht : 0, 'required' => true, 'class' => 'form-control-sm']) @include('components.money', ['name' => 'prices[0][price_taxed]', 'value' => (isset($price_ht)) ? $price_ht : 0, 'required' => true, 'class' => 'form-control-sm'])
</div> </div>
<div class="col-lg-2"> <div class="col-lg-1 text-right">
<br/> <br/>
<button class="btn btn-primary btn-xs add-new-attribute mt-1" href="#attributes" type="button"> <button type="button" class="btn btn-xs btn-danger delete-new-price-btn mt-2" data-card-widget="collapse" data-toggle="tooltip" title="supprimer">
Ajout d'un attribut <i class="fas fa-trash"></i>
<i class="fas fa-plus"></i>
</button> </button>
</div> </div>
<div class="col-lg-2 text-right">
<button type="button" class="btn btn-danger delete-new-price-btn mt-2" data-card-widget="collapse" data-toggle="tooltip" title="supprimer">
<i class="fa-2x fas fa-trash"></i>
</button>
</div>
</div> </div>
@include('Shop.Admin.Articles.partials.prices.attributes')
</div> </div>
</div> </div>

View File

@@ -5,15 +5,7 @@
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Shop.Admin.TagGroups.create'), 'label' => __('Shop.tag_groups.add')])
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Shop.Admin.TagGroups.create') }}" class="btn btn-sm btn-success">{{ __('Shop.Admin.TagGroups.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection @endsection
@push('scripts') @push('scripts')

View File

@@ -5,17 +5,10 @@
]) ])
@section('content') @section('content')
@include('components.datatable', ['route' => route('Shop.Admin.Tags.create'), 'label' => __('Shop.tags.add')])
<div class="row pb-3">
<div class="col text-right">
<a href="{{ route('Shop.Admin.Tags.create') }}" class="btn btn-sm btn-success">{{ __('Shop.tags.add') }} <i class="fa fa-plus"></i></a>
</div>
</div>
{{$dataTable->table()}}
@endsection @endsection
@push('scripts') @push('scripts')
<script> <script>

View File

@@ -0,0 +1,9 @@
<div class="row pb-3">
<div class="col text-right">
<a href="{{ $route }}" class="btn btn-sm btn-primary">{{ $label }} <i class="fa fa-plus"></i></a>
</div>
</div>
@component('boilerplate::card')
{{$dataTable->table()}}
@endcomponent

View File

@@ -2,3 +2,6 @@
Route::resource('ArticleAttributeValues', 'ArticleAttributeValueController'); Route::resource('ArticleAttributeValues', 'ArticleAttributeValueController');
Route::prefix('ArticleAttributeValues')->name('ArticleAttributeValues.')->group(function () {
Route::post('getOptionsByFamily', 'ArticleAttributeValueController@getOptionsByFamily')->name('getOptionsByFamily');
});