diff --git a/Laracel Command b/Laracel Command index 718158d3b..3abe99806 100644 --- a/Laracel Command +++ b/Laracel Command @@ -1,7 +1,7 @@ php artisan make:controller UserController && mv app/Http/Controllers/UserController.php packages/Webkul/User/src/Ht tp/Controllers -php artisan make:migration foo --path=packages/Webkul/User/src/Database/migrations +php artisan make:migration foo --path=packages/Webkul/User/src/Database/Migrations php artisan db:seed --class=Webkul\\User\\Database\\Seeders\\DatabaseSeeder diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 2257f1c8e..c77e70581 100644 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -44,6 +44,8 @@ Route::group(['middleware' => ['web']], function () { // Catalog Routes Route::prefix('catalog')->group(function () { + + // Catalog Attribute Routes Route::get('/attributes', 'Webkul\Attribute\Http\Controllers\AttributeController@index')->defaults('_config', [ 'view' => 'admin::catalog.attributes.index' ])->name('admin.catalog.attributes.index'); @@ -55,6 +57,35 @@ Route::group(['middleware' => ['web']], function () { Route::post('/attributes/create', 'Webkul\Attribute\Http\Controllers\AttributeController@store')->defaults('_config', [ 'redirect' => 'admin.catalog.attributes.index' ])->name('admin.catalog.attributes.store'); + + Route::get('/attributes/edit/{id}', 'Webkul\Attribute\Http\Controllers\AttributeController@edit')->defaults('_config', [ + 'view' => 'admin::catalog.attributes.edit' + ])->name('admin.catalog.attributes.edit'); + + Route::put('/attributes/edit/{id}', 'Webkul\Attribute\Http\Controllers\AttributeController@update')->defaults('_config', [ + 'redirect' => 'admin.catalog.attributes.index' + ])->name('admin.catalog.attributes.update'); + + // Catalog Family Routes + Route::get('/families', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@index')->defaults('_config', [ + 'view' => 'admin::catalog.families.index' + ])->name('admin.catalog.families.index'); + + Route::get('/families/create', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@create')->defaults('_config', [ + 'view' => 'admin::catalog.families.create' + ])->name('admin.catalog.families.create'); + + Route::post('/families/create', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@store')->defaults('_config', [ + 'redirect' => 'admin.catalog.families.index' + ])->name('admin.catalog.families.store'); + + Route::get('/families/edit/{id}', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@edit')->defaults('_config', [ + 'view' => 'admin::catalog.families.edit' + ])->name('admin.catalog.families.edit'); + + Route::put('/families/edit/{id}', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@update')->defaults('_config', [ + 'redirect' => 'admin.catalog.families.index' + ])->name('admin.catalog.families.update'); }); // Datagrid Routes diff --git a/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php b/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php index 65dc81f3e..ab2077b82 100644 --- a/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php +++ b/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php @@ -28,8 +28,6 @@ class AdminServiceProvider extends ServiceProvider $this->composeView(); - Blade::directive('continue', function() { return ""; }); - $this->app->register(EventServiceProvider::class); } diff --git a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php index df2639d7a..5bb8184c3 100644 --- a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php +++ b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php @@ -43,6 +43,8 @@ class EventServiceProvider extends ServiceProvider $menu->add('catalog.attributes', 'Attributes', 'admin.catalog.attributes.index', 3); + $menu->add('catalog.families', 'Families', 'admin.catalog.families.index', 4); + $menu->add('configuration', 'Configure', 'admin.account.edit', 6, 'configuration-icon'); $menu->add('configuration.account', 'My Account', 'admin.account.edit', 1); diff --git a/packages/Webkul/Admin/src/Resources/assets/js/app.js b/packages/Webkul/Admin/src/Resources/assets/js/app.js index 2aac6192d..6eb9a6f4a 100644 --- a/packages/Webkul/Admin/src/Resources/assets/js/app.js +++ b/packages/Webkul/Admin/src/Resources/assets/js/app.js @@ -5,16 +5,26 @@ window.VeeValidate = require('vee-validate'); Vue.use(VeeValidate); $(document).ready(function () { - const app = new Vue({ + Vue.config.ignoredElements = [ + 'option-wrapper', + 'group-form', + 'group-list' + ]; + + var app = new Vue({ el: '#app', - mounted: function() { + data: { + modalIds: {} + }, + + mounted () { this.addServerErrors() this.addFlashMessages() }, methods: { - onSubmit: function(e) { + onSubmit (e) { this.$validator.validateAll().then((result) => { if (result) { e.target.submit() @@ -22,7 +32,7 @@ $(document).ready(function () { }); }, - addServerErrors: function() { + addServerErrors () { var scope = null; for (var key in serverErrors) { const field = this.$validator.fields.find({ name: key, scope: scope }); @@ -37,12 +47,16 @@ $(document).ready(function () { } }, - addFlashMessages: function() { + addFlashMessages () { const flashes = this.$refs.flashes flashMessages.forEach(function(flash) { flashes.addFlash(flash) }, this); + }, + + showModal (id) { + this.$set(this.modalIds, id, true); } } }); diff --git a/packages/Webkul/Admin/src/Resources/assets/sass/app.scss b/packages/Webkul/Admin/src/Resources/assets/sass/app.scss index 94e9cf175..bb204cf1f 100644 --- a/packages/Webkul/Admin/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Admin/src/Resources/assets/sass/app.scss @@ -119,7 +119,6 @@ body { right: 0; left: 0; bottom: 0px; - z-index: 1; overflow-x: hidden; overflow-y: auto; @@ -155,7 +154,7 @@ body { .content-wrapper { padding: 25px 25px 25px 305px; - overflow-y: auto; + // overflow-y: auto; } .content { diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php new file mode 100644 index 000000000..5b39316df --- /dev/null +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -0,0 +1,59 @@ + [ + 'attributes' => [ + 'add-title' => 'Add Attribute', + 'edit-title' => 'Edit Attribute', + 'save-btn-title' => 'Save Attribute', + 'general' => 'General', + 'code' => 'Attribute Code', + 'type' => 'Attribute Type', + 'text' => 'Text', + 'textarea' => 'Textarea', + 'select' => 'Select', + 'multiselect' => 'Multiselect', + 'checkbox' => 'Checkbox', + 'datetime' => 'Datetime', + 'date' => 'Date', + 'label' => 'label', + 'admin' => 'Admin', + 'options' => 'Options', + 'position' => 'Position', + 'add-option-btn-title' => 'Add Option', + 'validations' => 'Validations', + 'input_validation' => 'Input Validation', + 'is_required' => 'Is Required', + 'is_unique' => 'Is Unique', + 'number' => 'Number', + 'decimal' => 'Decimal', + 'email' => 'Email', + 'url' => 'URL', + 'configuration' => 'Configuration', + 'status' => 'Status', + 'yes' => 'Yes', + 'no' => 'No', + 'value_per_locale' => 'Value Per Locale', + 'value_per_channel' => 'Value Per Channel', + 'value_per_channel' => 'Value Per Channel', + 'is_filterable' => 'Use in Layered Navigation', + 'is_configurable' => 'Use To Create Configurable Product' + ], + 'families' => [ + 'families' => 'Families', + 'add-family-btn-title' => 'Add Family', + 'add-title' => 'Add Family', + 'save-btn-title' => 'Save Family', + 'general' => 'General', + 'code' => 'Family Code', + 'name' => 'Name', + 'groups' => 'Groups', + 'add-group-title' => 'Add Group', + 'position' => 'Position', + 'attribute-code' => 'Code', + 'type' => 'Type', + 'add-attribute-title' => 'Add Attribute', + 'search' => 'Search' + ] + ] +]; \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php index 464eab427..a312bc83f 100644 --- a/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/account/edit.blade.php @@ -25,7 +25,7 @@ - + {{ __('Name') }} @@ -41,7 +41,7 @@ - + {{ __('Password') }} diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php index 853ddd80b..b1daa6f5f 100644 --- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php @@ -1,17 +1,22 @@ @extends('admin::layouts.content') +@section('page_title') + {{ __('admin::app.catalog.attributes.add-title') }} +@stop + + @section('content') - {{ __('Add Attribute') }} + {{ __('admin::app.catalog.attributes.add-title') }} - {{ __('Save Attribute') }} + {{ __('admin::app.catalog.attributes.save-btn-title') }} @@ -20,44 +25,43 @@ @csrf() - - + + - {{ __('Attribute Code') }} + {{ __('admin::app.catalog.attributes.code') }} @{{ errors.first('code') }} - {{ __('Attribute Type') }} + {{ __('admin::app.catalog.attributes.type') }} - {{ __('Text') }} - {{ __('Textarea') }} - {{ __('Integer') }} - {{ __('Select') }} - {{ __('Multiselect') }} - {{ __('Multiselect') }} - {{ __('Datetime') }} - {{ __('Date') }} + {{ __('admin::app.catalog.attributes.text') }} + {{ __('admin::app.catalog.attributes.textarea') }} + {{ __('admin::app.catalog.attributes.select') }} + {{ __('admin::app.catalog.attributes.multiselect') }} + {{ __('admin::app.catalog.attributes.checkbox') }} + {{ __('admin::app.catalog.attributes.datetime') }} + {{ __('admin::app.catalog.attributes.date') }} - - + + - - {{ __('Admin') }} - - @{{ errors.first('name') }} + + {{ __('admin::app.catalog.attributes.admin') }} + + @{{ errors.first('admin_name') }} @foreach(Webkul\Core\Models\Locale::all() as $locale) {{ $locale->name . ' (' . $locale->code . ')' }} - + @endforeach @@ -65,13 +69,93 @@ - + + + + + + + + + + + + + + + {{ __('admin::app.catalog.attributes.is_required') }} + + {{ __('admin::app.catalog.attributes.yes') }} + {{ __('admin::app.catalog.attributes.no') }} + + + + + {{ __('admin::app.catalog.attributes.is_unique') }} + + {{ __('admin::app.catalog.attributes.yes') }} + {{ __('admin::app.catalog.attributes.no') }} + + + + + {{ __('admin::app.catalog.attributes.input_validation') }} + + + {{ __('admin::app.catalog.attributes.number') }} + {{ __('admin::app.catalog.attributes.decimal') }} + {{ __('admin::app.catalog.attributes.email') }} + {{ __('admin::app.catalog.attributes.url') }} + + + + - - + + - + + {{ __('admin::app.catalog.attributes.status') }} + + {{ __('admin::app.catalog.attributes.yes') }} + {{ __('admin::app.catalog.attributes.no') }} + + + + + {{ __('admin::app.catalog.attributes.value_per_locale') }} + + {{ __('admin::app.catalog.attributes.yes') }} + {{ __('admin::app.catalog.attributes.no') }} + + + + + {{ __('admin::app.catalog.attributes.value_per_channel') }} + + {{ __('admin::app.catalog.attributes.yes') }} + {{ __('admin::app.catalog.attributes.no') }} + + + + + {{ __('admin::app.catalog.attributes.is_filterable') }} + + {{ __('admin::app.catalog.attributes.yes') }} + {{ __('admin::app.catalog.attributes.no') }} + + + + + {{ __('admin::app.catalog.attributes.is_configurable') }} + + {{ __('admin::app.catalog.attributes.yes') }} + {{ __('admin::app.catalog.attributes.no') }} + + + + @@ -81,5 +165,109 @@ @stop @section('javascript') + + + @stop \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php new file mode 100644 index 000000000..225f77d76 --- /dev/null +++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php @@ -0,0 +1,333 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.catalog.attributes.edit-title') }} +@stop + + +@section('content') + + + + + + {{ __('admin::app.catalog.attributes.edit-title') }} + + + + + {{ __('admin::app.catalog.attributes.save-btn-title') }} + + + + + + + @csrf() + + + + + + {{ __('admin::app.catalog.attributes.code') }} + + + @{{ errors.first('code') }} + + + + type ?> + {{ __('admin::app.catalog.attributes.type') }} + + + + {{ __('admin::app.catalog.attributes.text') }} + + + {{ __('admin::app.catalog.attributes.textarea') }} + + + {{ __('admin::app.catalog.attributes.select') }} + + + {{ __('admin::app.catalog.attributes.multiselect') }} + + + {{ __('admin::app.catalog.attributes.checkbox') }} + + + {{ __('admin::app.catalog.attributes.datetime') }} + + + {{ __('admin::app.catalog.attributes.date') }} + + + + + + + + + + + {{ __('admin::app.catalog.attributes.admin') }} + + @{{ errors.first('admin_name') }} + + + @foreach(Webkul\Core\Models\Locale::all() as $locale) + + + {{ $locale->name . ' (' . $locale->code . ')' }} + + + + @endforeach + + + + + + + + + + + + + + + + + + + {{ __('admin::app.catalog.attributes.is_required') }} + + is_required ? 'selected' : '' }}>{{ __('admin::app.catalog.attributes.yes') }} + is_required ? '' : 'selected' }}>{{ __('admin::app.catalog.attributes.no') }} + + + + + {{ __('admin::app.catalog.attributes.is_unique') }} + + is_unique ? 'selected' : '' }}>{{ __('admin::app.catalog.attributes.yes') }} + is_unique ? '' : 'selected' }}>{{ __('admin::app.catalog.attributes.no') }} + + + + + input_validation ?> + {{ __('admin::app.catalog.attributes.input_validation') }} + + + + {{ __('admin::app.catalog.attributes.number') }} + + + {{ __('admin::app.catalog.attributes.decimal') }} + + + {{ __('admin::app.catalog.attributes.email') }} + + + {{ __('admin::app.catalog.attributes.url') }} + + + + + + + + + + + + {{ __('admin::app.catalog.attributes.status') }} + + status ? 'selected' : '' }}> + {{ __('admin::app.catalog.attributes.yes') }} + + status ? '' : 'selected' }}> + {{ __('admin::app.catalog.attributes.no') }} + + + + + + {{ __('admin::app.catalog.attributes.value_per_locale') }} + + value_per_locale ? 'selected' : '' }}> + {{ __('admin::app.catalog.attributes.yes') }} + + value_per_locale ? '' : 'selected' }}> + {{ __('admin::app.catalog.attributes.no') }} + + + + + + {{ __('admin::app.catalog.attributes.value_per_channel') }} + + value_per_channel ? 'selected' : '' }}> + {{ __('admin::app.catalog.attributes.yes') }} + + value_per_channel ? '' : 'selected' }}> + {{ __('admin::app.catalog.attributes.no') }} + + + + + + {{ __('admin::app.catalog.attributes.is_filterable') }} + + is_filterable ? 'selected' : '' }}> + {{ __('admin::app.catalog.attributes.yes') }} + + is_filterable ? '' : 'selected' }}> + {{ __('admin::app.catalog.attributes.no') }} + + + + + + {{ __('admin::app.catalog.attributes.is_configurable') }} + + is_configurable ? 'selected' : '' }}> + {{ __('admin::app.catalog.attributes.yes') }} + + is_configurable ? '' : 'selected' }}> + {{ __('admin::app.catalog.attributes.no') }} + + + + + + + + + + + +@stop + +@section('javascript') + + + +@stop \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/families/create.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/families/create.blade.php new file mode 100644 index 000000000..e288dd3ce --- /dev/null +++ b/packages/Webkul/Admin/src/Resources/views/catalog/families/create.blade.php @@ -0,0 +1,279 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.catalog.families.add-title') }} +@stop + +@section('content') + + + + + + {{ __('admin::app.catalog.families.add-title') }} + + + + + {{ __('admin::app.catalog.families.save-btn-title') }} + + + + + + + + @csrf() + + + + + + {{ __('admin::app.catalog.families.code') }} + + @{{ errors.first('code') }} + + + + {{ __('admin::app.catalog.families.name') }} + + @{{ errors.first('name') }} + + + + + + + + + + {{ __('admin::app.catalog.families.add-group-title') }} + + + + + + + + + + + + + {{ __('admin::app.catalog.families.add-group-title') }} + + + + + +@stop + +@section('javascript') + + + + + + + + +@stop \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/families/index.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/families/index.blade.php new file mode 100644 index 000000000..e9a0ec81e --- /dev/null +++ b/packages/Webkul/Admin/src/Resources/views/catalog/families/index.blade.php @@ -0,0 +1,21 @@ +@extends('admin::layouts.content') + +@section('content') + + + + {{ __('admin::app.catalog.families.families') }} + + + + + {{ __('admin::app.catalog.families.add-family-btn-title') }} + + + + + + + + +@stop \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/layouts/master.blade.php b/packages/Webkul/Admin/src/Resources/views/layouts/master.blade.php index 5965a9bc1..07f81e85b 100644 --- a/packages/Webkul/Admin/src/Resources/views/layouts/master.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/layouts/master.blade.php @@ -54,5 +54,6 @@ @yield('javascript') +