[WIP] Fix cosmetics, prices
This commit is contained in:
@@ -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.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -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(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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')
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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')
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
9
resources/views/components/datatable.blade.php
Normal file
9
resources/views/components/datatable.blade.php
Normal 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
|
||||||
@@ -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');
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user