tax category sync fix and select rates fixed

This commit is contained in:
prashant-webkul 2018-11-28 14:05:44 +05:30
commit 311701b00a
88 changed files with 647 additions and 68135 deletions

View File

@ -14,7 +14,7 @@
[Bagisto](https://www.bagisto.com) is a hand tailored E-Commerce framework designed on some of the hottest opensource technologies
such as [Laravel](https://laravel.com) a [PHP](https://secure.php.net/) framework, [Vue.js](https://vuejs.org)
a [Node.js](https://nodejs.org) framework.
a progressive Javascript framework.
**Bagisto is viable attempt to cut down your time, cost and workforce for building online stores or migrating from physical stores
to the ever demanding online world. Your business whether small or huge it suits all and very simple to set it up.**

View File

@ -7,7 +7,7 @@ return [
'default' => [
'views_path' => 'resources/themes/default/views',
'assets_path' => 'public/themes/default/assets',
'name' => 'Dafault'
'name' => 'Default'
],
// 'bliss' => [

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/admin.js": "/js/admin.js",
"/css/admin.css": "/css/admin.css"
"/js/admin.js": "/js/admin.js?id=3ab4c41f63421ff5a994",
"/css/admin.css": "/css/admin.css?id=201f91bc553baa11139f"
}

View File

@ -79,7 +79,7 @@ class OrderDataGrid
'label' => 'Base Total',
'sortable' => true,
'wrapper' => function ($value) {
return core()->currency($value);
return core()->formatBasePrice($value);
}
], [
'name' => 'or.grand_total',
@ -88,7 +88,7 @@ class OrderDataGrid
'label' => 'Grand Total',
'sortable' => false,
'wrapper' => function ($value) {
return core()->currency($value);
return core()->formatBasePrice($value);
}
], [
'name' => 'or.created_at',

View File

@ -0,0 +1,55 @@
<?php
namespace Webkul\Admin\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Webkul\Core\Repositories\CoreConfigRepository as CoreConfig;
/**
* Configuration controller
*
* @author Jitendra Singh <jitendra@webkul.com>
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
*/
class ConfigurationController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
protected $_config;
/**
* CoreConfigRepository object
*
* @var array
*/
protected $coreConfig;
/**
* Create a new controller instance.
*
* @param Webkul\Core\Repositories\CoreConfigRepository $coreConfig
* @return void
*/
public function __construct(CoreConfig $coreConfig)
{
$this->middleware('admin');
$this->_config = request('_config');
$this->coreConfig = $coreConfig;
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view($this->_config['view']);
}
}

View File

@ -294,9 +294,9 @@ class DashboardController extends Controller
$this->endDate = Carbon::now();
$this->lastStartDate = clone $this->startDate;
$this->lastEndDate = clone $this->endDate;
$this->lastEndDate = clone $this->startDate;
$this->lastStartDate->subDays($this->lastStartDate->diffInDays($this->lastEndDate));
$this->lastEndDate->subDays($this->lastStartDate->diffInDays($this->lastEndDate));
$this->lastStartDate->subDays($this->startDate->diffInDays($this->endDate));
// $this->lastEndDate->subDays($this->lastStartDate->diffInDays($this->lastEndDate));
}
}

View File

@ -11,6 +11,7 @@ Route::group(['middleware' => ['web']], function () {
'redirect' => 'admin.dashboard.index'
])->name('admin.session.store');
// Forget Password Routes
Route::get('/forget-password', 'Webkul\User\Http\Controllers\ForgetPasswordController@create')->defaults('_config', [
'view' => 'admin::users.forget-password.create'
@ -18,6 +19,7 @@ Route::group(['middleware' => ['web']], function () {
Route::post('/forget-password', 'Webkul\User\Http\Controllers\ForgetPasswordController@store')->name('admin.forget-password.store');
// Reset Password Routes
Route::get('/reset-password/{token}', 'Webkul\User\Http\Controllers\ResetPasswordController@create')->defaults('_config', [
'view' => 'admin::users.reset-password.create'
@ -27,17 +29,20 @@ Route::group(['middleware' => ['web']], function () {
'redirect' => 'admin.dashboard.index'
])->name('admin.reset-password.store');
// Admin Routes
Route::group(['middleware' => ['admin']], function () {
Route::get('/logout', 'Webkul\User\Http\Controllers\SessionController@destroy')->defaults('_config', [
'redirect' => 'admin.session.create'
])->name('admin.session.destroy');
// Dashboard Route
Route::get('dashboard', 'Webkul\Admin\Http\Controllers\DashboardController@index')->defaults('_config', [
'view' => 'admin::dashboard.index'
])->name('admin.dashboard.index');
//Customers Management Routes
Route::get('customers', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@index')->defaults('_config', [
'view' => 'admin::customers.index'
@ -65,6 +70,13 @@ Route::group(['middleware' => ['web']], function () {
'view' => 'admin::customers.review.index'
])->name('admin.customer.review.index');
//Customers Management Routes
Route::get('configuration/sales/general', 'Webkul\Admin\Http\Controllers\ConfigurationController@index')->defaults('_config', [
'view' => 'admin::configuration.sales.general'
])->name('admin.configuration.sales.general');
// Reviews Routes
Route::get('reviews/edit/{id}', 'Webkul\Product\Http\Controllers\ReviewController@edit')->defaults('_config',[
'view' => 'admin::customers.review.edit'
@ -78,8 +90,8 @@ Route::group(['middleware' => ['web']], function () {
'redirect' => 'admin.customer.review.index'
])->name('admin.customer.review.delete');
// Customer Groups Routes
// Customer Groups Routes
Route::get('groups', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@index')->defaults('_config',[
'view' => 'admin::customers.group.index'
])->name('admin.groups.index');
@ -102,6 +114,7 @@ Route::group(['middleware' => ['web']], function () {
Route::get('groups/delete/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@destroy')->name('admin.groups.delete');
// Sales Routes
Route::prefix('sales')->group(function () {
// Sales Order Routes
@ -158,11 +171,13 @@ Route::group(['middleware' => ['web']], function () {
])->name('admin.sales.shipments.view');
});
// Catalog Routes
Route::prefix('catalog')->group(function () {
Route::get('/sync', 'Webkul\Product\Http\Controllers\ProductController@sync');
// Catalog Product Routes
Route::get('/products', 'Webkul\Product\Http\Controllers\ProductController@index')->defaults('_config', [
'view' => 'admin::catalog.products.index'
@ -269,6 +284,7 @@ Route::group(['middleware' => ['web']], function () {
Route::any('datagrid/massaction/edit','Webkul\Admin\Http\Controllers\DataGridController@massUpdate')->name('admin.datagrid.edit');
// User Routes
Route::get('/users', 'Webkul\User\Http\Controllers\UserController@index')->defaults('_config', [
'view' => 'admin::users.users.index'
@ -491,6 +507,7 @@ Route::group(['middleware' => ['web']], function () {
'view' => 'admin::tax.tax-categories.index'
])->name('admin.tax-categories.index');
// tax category routes
Route::get('/tax-categories/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@show')->defaults('_config', [
'view' => 'admin::tax.tax-categories.create'
@ -509,9 +526,9 @@ Route::group(['middleware' => ['web']], function () {
])->name('admin.tax-categories.update');
Route::get('/tax-categories/delete/{id}', 'Webkul\Tax\Http\Controllers\TaxCategoryController@destroy')->name('admin.tax-categories.delete');
//tax category ends
//tax rate
Route::get('tax-rates', 'Webkul\Tax\Http\Controllers\TaxRateController@index')->defaults('_config', [
'view' => 'admin::tax.tax-rates.index'

View File

@ -22,7 +22,11 @@ class Order {
*/
public function sendNewOrderMail($order)
{
Mail::send(new NewOrderNotification($order));
try {
Mail::send(new NewOrderNotification($order));
} catch (\Exception $e) {
}
}
/**
@ -32,7 +36,11 @@ class Order {
*/
public function sendNewInvoiceMail($invoice)
{
Mail::send(new NewInvoiceNotification($invoice));
try {
Mail::send(new NewInvoiceNotification($invoice));
} catch (\Exception $e) {
}
}
/**
@ -42,7 +50,11 @@ class Order {
*/
public function sendNewShipmentMail($shipment)
{
Mail::send(new NewShipmentNotification($shipment));
try {
Mail::send(new NewShipmentNotification($shipment));
} catch (\Exception $e) {
}
}
/**

View File

@ -45,7 +45,7 @@ class NewInvoiceNotification extends Mailable
$order = $this->invoice->order;
return $this->to($order->customer_email, $order->customer_full_name)
->subject(trans('shop::app.mail.invoice.subject', ['order_id' => $order->id]))
->view('shop::emails.sales.new-invoice');
->subject(trans('shop::app.mail.invoice.subject', ['order_id' => $order->id]))
->view('shop::emails.sales.new-invoice');
}
}

View File

@ -41,9 +41,8 @@ class NewOrderNotification extends Mailable
*/
public function build()
{
if($this->order->customer_email)
return $this->to($this->order->customer_email, $this->order->customer_full_name)
->subject(trans('shop::app.mail.order.subject'))
->view('shop::emails.sales.new-order');
return $this->to($this->order->customer_email, $this->order->customer_full_name)
->subject(trans('shop::app.mail.order.subject'))
->view('shop::emails.sales.new-order');
}
}

View File

@ -45,7 +45,7 @@ class NewShipmentNotification extends Mailable
$order = $this->shipment->order;
return $this->to($order->customer_email, $order->customer_full_name)
->subject(trans('shop::app.mail.shipment.subject', ['order_id' => $order->id]))
->view('shop::emails.sales.new-shipment');
->subject(trans('shop::app.mail.shipment.subject', ['order_id' => $order->id]))
->view('shop::emails.sales.new-shipment');
}
}

View File

@ -108,7 +108,21 @@ class EventServiceProvider extends ServiceProvider
'route' => 'admin.account.edit',
'sort' => 1,
'icon-class' => '',
], [
],
// [
// 'key' => 'configuration.sales',
// 'name' => 'Sales',
// 'route' => 'admin.configuration.sales.general',
// 'sort' => 1,
// 'icon-class' => '',
// ], [
// 'key' => 'configuration.sales.general',
// 'name' => 'General',
// 'route' => 'admin.configuration.sales.general',
// 'sort' => 1,
// 'icon-class' => '',
// ],
[
'key' => 'settings',
'name' => 'Settings',
'route' => 'admin.locales.index',

View File

@ -1,3 +1,4 @@
require("./bootstrap");
window.jQuery = window.$ = $ = require("jquery");
window.Vue = require("vue");
window.VeeValidate = require("vee-validate");
@ -31,6 +32,9 @@ $(document).ready(function () {
onSubmit: function (e) {
this.toggleButtonDisable(true);
if(typeof tinyMCE !== 'undefined')
tinyMCE.triggerSave();
this.$validator.validateAll().then(result => {
if (result) {
e.target.submit();

View File

@ -0,0 +1,56 @@
window._ = require('lodash');
window.Popper = require('popper.js').default;
/**
* We'll load jQuery and the Bootstrap jQuery plugin which provides support
* for JavaScript based Bootstrap features such as modals and tabs. This
* code may be modified to fit the specific needs of your application.
*/
try {
window.$ = window.jQuery = require('jquery');
require('bootstrap');
} catch (e) {}
/**
* We'll load the axios HTTP library which allows us to easily issue requests
* to our Laravel back-end. This library automatically handles sending the
* CSRF token as a header based on the value of the "XSRF" token cookie.
*/
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
/**
* Next we will register the CSRF Token as a common header with Axios so that
* all outgoing HTTP requests automatically have it attached. This is just
* a simple convenience so we don't have to attach every token manually.
*/
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
/**
* Echo exposes an expressive API for subscribing to channels and listening
* for events that are broadcast by Laravel. Echo and event broadcasting
* allows your team to easily build robust real-time web applications.
*/
// import Echo from 'laravel-echo'
// window.Pusher = require('pusher-js');
// window.Echo = new Echo({
// broadcaster: 'pusher',
// key: process.env.MIX_PUSHER_APP_KEY,
// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
// encrypted: true
// });

View File

@ -297,6 +297,51 @@ return [
],
'configuration' => [
'tax-categories' => [
'title' => 'Tax Categories',
'add-title' => 'Add Tax Category',
'edit-title' => 'Edit Tax Category',
'save-btn-title' => 'Save Tax Category',
'general' => 'Tax Category',
'select-channel' => 'Select Channel',
'name' => 'Name',
'code' => 'Code',
'description' => 'Description',
'select-taxrates' => 'Select Tax Rates',
'edit' => [
'title' => 'Edit Tax Category',
'edit-button-title' => 'Edit Tax Category'
]
],
'tax-rates' => [
'title' => 'Tax Rates',
'add-title' => 'Add Tax Rate',
'edit-title' => 'Edit Tax Rate',
'save-btn-title' => 'Save Tax Rate',
'general' => 'Tax Rate',
'identifier' => 'Identifier',
'is_zip' => 'Enable Zip Range',
'zip_from' => 'Zip From',
'zip_to' => 'Zip To',
'state' => 'State',
'select-state' => 'Select a region, state or province.',
'country' => 'Country',
'tax_rate' => 'Rate',
'edit' => [
'title' => 'Edit Tax Rate',
'edit-button-title' => 'Edit Rate'
],
'zip_code' => 'Zip Code',
'is_zip' => 'Enable Zip Range',
],
'sales' => [
'general' => [
'title' => 'General',
'save-btn-title' => 'Save'
]
]
],
'settings' => [
@ -382,7 +427,7 @@ return [
'design' => 'Design',
'theme' => 'Theme',
'home_page_content' => 'Home Page Content',
'footer_content' => 'footer_content',
'footer_content' => 'Footer Content',
'logo' => 'Logo',
'favicon' => 'Favicon'
],
@ -455,6 +500,7 @@ return [
'atleast-one' => 'Cannot Delete Last Tax Rate'
],
],
'customers' => [
'groups' =>[
'add-title' => 'Add Group',
@ -491,6 +537,7 @@ return [
'comment' => 'Comment'
]
],
'error' => [
'go-to-home' => 'GO TO HOME',

View File

@ -32,13 +32,13 @@
<div slot="body">
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.account.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ $user->name }}"/>
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ $user->name }}" data-vv-as="&quot;{{ __('admin::app.account.name') }}&quot;"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email" class="required">{{ __('admin::app.account.email') }}</label>
<input type="text" v-validate="'required|email'" class="control" id="email" name="email" value="{{ $user->email }}"/>
<input type="text" v-validate="'required|email'" class="control" id="email" name="email" value="{{ $user->email }}" data-vv-as="&quot;{{ __('admin::app.account.email') }}&quot;"/>
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
</div>
@ -48,13 +48,13 @@
<div slot="body">
<div class="control-group" :class="[errors.has('password') ? 'has-error' : '']">
<label for="password">{{ __('admin::app.account.password') }}</label>
<input type="password" v-validate="'min:6'" class="control" id="password" name="password"/>
<input type="password" v-validate="'min:6'" class="control" id="password" name="password" data-vv-as="&quot;{{ __('admin::app.account.password') }}&quot;"/>
<span class="control-error" v-if="errors.has('password')">@{{ errors.first('password') }}</span>
</div>
<div class="control-group" :class="[errors.has('password_confirmation') ? 'has-error' : '']">
<label for="password_confirmation">{{ __('admin::app.account.confirm-password') }}</label>
<input type="password" v-validate="'min:6|confirmed:password'" class="control" id="password_confirmation" name="password_confirmation"/>
<input type="password" v-validate="'min:6|confirmed:password'" class="control" id="password_confirmation" name="password_confirmation" data-vv-as="&quot;{{ __('admin::app.account.confirm-password') }}&quot;"/>
<span class="control-error" v-if="errors.has('password_confirmation')">@{{ errors.first('password_confirmation') }}</span>
</div>
</div>

View File

@ -28,7 +28,7 @@
<div slot="body">
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code">{{ __('admin::app.catalog.attributes.code') }}</label>
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" v-code/>
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" data-vv-as="&quot;{{ __('admin::app.catalog.attributes.code') }}&quot;" v-code/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
@ -53,7 +53,7 @@
<div class="control-group" :class="[errors.has('admin_name') ? 'has-error' : '']">
<label for="admin_name" class="required">{{ __('admin::app.catalog.attributes.admin') }}</label>
<input type="text" v-validate="'required'" class="control" id="admin_name" name="admin_name" value="{{ old('admin_name') }}"/>
<input type="text" v-validate="'required'" class="control" id="admin_name" name="admin_name" value="{{ old('admin_name') }}" data-vv-as="&quot;{{ __('admin::app.catalog.attributes.admin') }}&quot;"/>
<span class="control-error" v-if="errors.has('admin_name')">@{{ errors.first('admin_name') }}</span>
</div>
@ -196,7 +196,7 @@
<tr v-for="row in optionRows">
<td>
<div class="control-group" :class="[errors.has(adminName(row)) ? 'has-error' : '']">
<input type="text" v-validate="'required'" v-model="row['admin_name']" :name="adminName(row)" class="control"/>
<input type="text" v-validate="'required'" v-model="row['admin_name']" :name="adminName(row)" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.attributes.admin_name') }}&quot;"/>
<span class="control-error" v-if="errors.has(adminName(row))">@{{ errors.first(adminName(row)) }}</span>
</div>
</td>
@ -204,7 +204,7 @@
@foreach(Webkul\Core\Models\Locale::all() as $locale)
<td>
<div class="control-group" :class="[errors.has(localeInputName(row, '{{ $locale->code }}')) ? 'has-error' : '']">
<input type="text" v-validate="'required'" v-model="row['{{ $locale->code }}']" :name="localeInputName(row, '{{ $locale->code }}')" class="control"/>
<input type="text" v-validate="'required'" v-model="row['{{ $locale->code }}']" :name="localeInputName(row, '{{ $locale->code }}')" class="control" data-vv-as="&quot;{{ $locale->name . ' (' . $locale->code . ')' }}&quot;"/>
<span class="control-error" v-if="errors.has(localeInputName(row, '{{ $locale->code }}'))">@{{ errors.first(localeInputName(row, '{!! $locale->code !!}')) }}</span>
</div>
</td>
@ -212,7 +212,7 @@
<td>
<div class="control-group" :class="[errors.has(sortOrderName(row)) ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric'" :name="sortOrderName(row)" class="control"/>
<input type="text" v-validate="'required|numeric'" :name="sortOrderName(row)" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.attributes.position') }}&quot;"/>
<span class="control-error" v-if="errors.has(sortOrderName(row))">@{{ errors.first(sortOrderName(row)) }}</span>
</div>
</td>

View File

@ -29,7 +29,7 @@
<div slot="body">
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.catalog.attributes.code') }}</label>
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ $attribute->code }}" disabled="disabled" v-code/>
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ $attribute->code }}" disabled="disabled" data-vv-as="&quot;{{ __('admin::app.catalog.attributes.code') }}&quot;" v-code/>
<input type="hidden" name="code" value="{{ $attribute->code }}"/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
@ -73,7 +73,7 @@
<div class="control-group" :class="[errors.has('admin_name') ? 'has-error' : '']">
<label for="admin_name" class="required">{{ __('admin::app.catalog.attributes.admin') }}</label>
<input type="text" v-validate="'required'" class="control" id="admin_name" name="admin_name" value="{{ old('admin_name') ?: $attribute->admin_name }}"/>
<input type="text" v-validate="'required'" class="control" id="admin_name" name="admin_name" value="{{ old('admin_name') ?: $attribute->admin_name }}" data-vv-as="&quot;{{ __('admin::app.catalog.attributes.admin_name') }}&quot;"/>
<span class="control-error" v-if="errors.has('admin_name')">@{{ errors.first('admin_name') }}</span>
</div>
@ -257,7 +257,7 @@
<tr v-for="row in optionRows">
<td>
<div class="control-group" :class="[errors.has(adminName(row)) ? 'has-error' : '']">
<input type="text" v-validate="'required'" v-model="row['admin_name']" :name="adminName(row)" class="control"/>
<input type="text" v-validate="'required'" v-model="row['admin_name']" :name="adminName(row)" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.attributes.admin_name') }}&quot;"/>
<span class="control-error" v-if="errors.has(adminName(row))">@{{ errors.first(adminName(row)) }}</span>
</div>
</td>
@ -265,7 +265,7 @@
@foreach(Webkul\Core\Models\Locale::all() as $locale)
<td>
<div class="control-group" :class="[errors.has(localeInputName(row, '{{ $locale->code }}')) ? 'has-error' : '']">
<input type="text" v-validate="'required'" v-model="row['{{ $locale->code }}']" :name="localeInputName(row, '{{ $locale->code }}')" class="control"/>
<input type="text" v-validate="'required'" v-model="row['{{ $locale->code }}']" :name="localeInputName(row, '{{ $locale->code }}')" class="control" data-vv-as="&quot;{{ $locale->name . ' (' . $locale->code . ')' }}&quot;"/>
<span class="control-error" v-if="errors.has(localeInputName(row, '{{ $locale->code }}'))">@{{ errors.first(localeInputName(row, '{!! $locale->code !!}')) }}</span>
</div>
</td>
@ -273,7 +273,7 @@
<td>
<div class="control-group" :class="[errors.has(sortOrderName(row)) ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric'" v-model="row['sort_order']" :name="sortOrderName(row)" class="control"/>
<input type="text" v-validate="'required|numeric'" v-model="row['sort_order']" :name="sortOrderName(row)" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.attributes.position') }}&quot;"/>
<span class="control-error" v-if="errors.has(sortOrderName(row))">@{{ errors.first(sortOrderName(row)) }}</span>
</div>
</td>

View File

@ -31,13 +31,13 @@
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.catalog.categories.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}"/>
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.name') }}&quot;"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
<div class="control-group" :class="[errors.has('status') ? 'has-error' : '']">
<label for="status" class="required">{{ __('admin::app.catalog.categories.visible-in-menu') }}</label>
<select class="control" v-validate="'required'" id="status" name="status">
<select class="control" v-validate="'required'" id="status" name="status" data-vv-as="&quot;{{ __('admin::app.catalog.categories.visible-in-menu') }}&quot;">
<option value="1">
{{ __('admin::app.catalog.categories.yes') }}
</option>
@ -50,7 +50,7 @@
<div class="control-group" :class="[errors.has('position') ? 'has-error' : '']">
<label for="position" class="required">{{ __('admin::app.catalog.categories.position') }}</label>
<input type="text" v-validate="'required|numeric'" class="control" id="position" name="position" value="{{ old('position') }}"/>
<input type="text" v-validate="'required|numeric'" class="control" id="position" name="position" value="{{ old('position') }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.position') }}&quot;"/>
<span class="control-error" v-if="errors.has('position')">@{{ errors.first('position') }}</span>
</div>
@ -62,7 +62,8 @@
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
<label for="description" class="required">{{ __('admin::app.catalog.categories.description') }}</label>
<textarea v-validate="'required'" class="control" id="description" name="description">{{ old('description') }}</textarea>
<textarea v-validate="'required'" class="control" id="description" name="description" data-vv-as="&quot;{{ __('admin::app.catalog.categories.description') }}&quot;">
{{ old('description') }}</textarea>
<span class="control-error" v-if="errors.has('description')">@{{ errors.first('description') }}</span>
</div>
@ -95,7 +96,7 @@
<div class="control-group" :class="[errors.has('slug') ? 'has-error' : '']">
<label for="slug" class="required">{{ __('admin::app.catalog.categories.slug') }}</label>
<input type="text" v-validate="'required'" class="control" id="slug" name="slug" value="{{ old('slug') }}" v-slugify/>
<input type="text" v-validate="'required'" class="control" id="slug" name="slug" value="{{ old('slug') }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.slug') }}&quot;" v-slugify/>
<span class="control-error" v-if="errors.has('slug')">@{{ errors.first('slug') }}</span>
</div>

View File

@ -44,13 +44,13 @@
<div class="control-group" :class="[errors.has('{{$locale}}[name]') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.catalog.categories.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="name" name="{{$locale}}[name]" value="{{ old($locale)['name'] ?: $category->translate($locale)['name'] }}"/>
<input type="text" v-validate="'required'" class="control" id="name" name="{{$locale}}[name]" value="{{ old($locale)['name'] ?: $category->translate($locale)['name'] }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.name') }}&quot;"/>
<span class="control-error" v-if="errors.has('{{$locale}}[name]')">@{{ errors.first('{!!$locale!!}[name]') }}</span>
</div>
<div class="control-group" :class="[errors.has('status') ? 'has-error' : '']">
<label for="status" class="required">{{ __('admin::app.catalog.categories.visible-in-menu') }}</label>
<select class="control" v-validate="'required'" id="status" name="status">
<select class="control" v-validate="'required'" id="status" name="status" data-vv-as="&quot;{{ __('admin::app.catalog.categories.visible-in-menu') }}&quot;">
<option value="1" {{ $category->status ? 'selected' : '' }}>
{{ __('admin::app.catalog.categories.yes') }}
</option>
@ -62,8 +62,8 @@
</div>
<div class="control-group" :class="[errors.has('position') ? 'has-error' : '']">
<label for="position">{{ __('admin::app.catalog.categories.position') }}</label>
<input type="text" v-validate="'required|numeric'" class="control" id="position" name="position" value="{{ old('position') ?: $category->position }}"/>
<label for="position" class="required">{{ __('admin::app.catalog.categories.position') }}</label>
<input type="text" v-validate="'required|numeric'" class="control" id="position" name="position" value="{{ old('position') ?: $category->position }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.position') }}&quot;"/>
<span class="control-error" v-if="errors.has('position')">@{{ errors.first('position') }}</span>
</div>
@ -75,7 +75,9 @@
<div class="control-group" :class="[errors.has('{{$locale}}[description]') ? 'has-error' : '']">
<label for="description" class="required">{{ __('admin::app.catalog.categories.description') }}</label>
<textarea v-validate="'required'" class="control" id="description" name="{{$locale}}[description]">{{ old($locale)['description'] ?: $category->translate($locale)['description'] }}</textarea>
<textarea v-validate="'required'" class="control" id="description" name="{{$locale}}[description]" data-vv-as="&quot;{{ __('admin::app.catalog.categories.description') }}&quot;">
{{ old($locale)['description'] ?: $category->translate($locale)['description'] }}
</textarea>
<span class="control-error" v-if="errors.has('{{$locale}}[description]')">@{{ errors.first('{!!$locale!!}[description]') }}</span>
</div>
@ -109,7 +111,7 @@
<div class="control-group" :class="[errors.has('{{$locale}}[slug]') ? 'has-error' : '']">
<label for="slug" class="required">{{ __('admin::app.catalog.categories.slug') }}</label>
<input type="text" v-validate="'required'" class="control" id="slug" name="{{$locale}}[slug]" value="{{ old($locale)['slug'] ?: $category->translate($locale)['slug'] }}" v-slugify/>
<input type="text" v-validate="'required'" class="control" id="slug" name="{{$locale}}[slug]" value="{{ old($locale)['slug'] ?: $category->translate($locale)['slug'] }}" data-vv-as="&quot;{{ __('admin::app.catalog.categories.slug') }}&quot;" v-slugify/>
<span class="control-error" v-if="errors.has('{{$locale}}[slug]')">@{{ errors.first('{!!$locale!!}[slug]') }}</span>
</div>

View File

@ -30,13 +30,13 @@
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.catalog.families.code') }}</label>
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" v-code/>
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" data-vv-as="&quot;{{ __('admin::app.catalog.families.code') }}&quot;" v-code/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.catalog.families.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}"/>
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}" data-vv-as="&quot;{{ __('admin::app.catalog.families.name') }}&quot;"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
@ -79,13 +79,13 @@
<div class="control-group" :class="[errors.has('add-group-form.groupName') ? 'has-error' : '']">
<label for="groupName" class="required">{{ __('admin::app.catalog.families.name') }}</label>
<input type="text" v-validate="'required'" v-model="group.groupName" class="control" id="groupName" name="groupName"/>
<input type="text" v-validate="'required'" v-model="group.groupName" class="control" id="groupName" name="groupName" data-vv-as="&quot;{{ __('admin::app.catalog.families.name') }}&quot;"/>
<span class="control-error" v-if="errors.has('add-group-form.groupName')">@{{ errors.first('add-group-form.groupName') }}</span>
</div>
<div class="control-group" :class="[errors.has('add-group-form.position') ? 'has-error' : '']">
<label for="position">{{ __('admin::app.catalog.families.position') }}</label>
<input type="text" v-validate="'required|numeric'" v-model="group.position" class="control" id="position" name="position"/>
<label for="position" class="required">{{ __('admin::app.catalog.families.position') }}</label>
<input type="text" v-validate="'required|numeric'" v-model="group.position" class="control" id="position" name="position" data-vv-as="&quot;{{ __('admin::app.catalog.families.position') }}&quot;"/>
<span class="control-error" v-if="errors.has('add-group-form.position')">@{{ errors.first('add-group-form.position') }}</span>
</div>

View File

@ -30,14 +30,14 @@
<div slot="body">
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<input type="text" v-validate="'required'" name="code" class="control" id="code" value="{{ $attributeFamily->code }}" disabled="disabled" v-code/>
<input type="text" v-validate="'required'" name="code" class="control" id="code" value="{{ $attributeFamily->code }}" disabled="disabled" data-vv-as="&quot;{{ __('admin::app.catalog.families.code') }}&quot;" v-code/>
<input type="hidden" name="code" value="{{ $attributeFamily->code }}"/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.catalog.families.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') ?: $attributeFamily->name }}"/>
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') ?: $attributeFamily->name }}" data-vv-as="&quot;{{ __('admin::app.catalog.families.name') }}&quot;"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
@ -80,13 +80,13 @@
<div class="control-group" :class="[errors.has('add-group-form.groupName') ? 'has-error' : '']">
<label for="groupName" class="required">{{ __('admin::app.catalog.families.name') }}</label>
<input type="text" v-validate="'required'" v-model="group.groupName" class="control" id="groupName" name="groupName"/>
<input type="text" v-validate="'required'" v-model="group.groupName" class="control" id="groupName" name="groupName" data-vv-as="&quot;{{ __('admin::app.catalog.families.name') }}&quot;"/>
<span class="control-error" v-if="errors.has('add-group-form.groupName')">@{{ errors.first('add-group-form.groupName') }}</span>
</div>
<div class="control-group" :class="[errors.has('add-group-form.position') ? 'has-error' : '']">
<label for="position">{{ __('admin::app.catalog.families.position') }}</label>
<input type="text" v-validate="'required|numeric'" v-model="group.position" class="control" id="position" name="position"/>
<label for="position" class="required">{{ __('admin::app.catalog.families.position') }}</label>
<input type="text" v-validate="'required|numeric'" v-model="group.position" class="control" id="position" name="position" data-vv-as="&quot;{{ __('admin::app.catalog.families.position') }}&quot;"/>
<span class="control-error" v-if="errors.has('add-group-form.position')">@{{ errors.first('add-group-form.position') }}</span>
</div>

View File

@ -19,7 +19,7 @@
<div class="control-group" :class="[errors.has('inventories[{{ $inventorySource->id }}]') ? 'has-error' : '']">
<label>{{ $inventorySource->name }}</label>
<input type="text" v-validate="'numeric|min:0'" name="inventories[{{ $inventorySource->id }}]" class="control" value="{{ $qty }}"/>
<input type="text" v-validate="'numeric|min:0'" name="inventories[{{ $inventorySource->id }}]" class="control" value="{{ $qty }}" data-vv-as="&quot;{{ $inventorySource->name }}&quot;"/>
<span class="control-error" v-if="errors.has('inventories[{{ $inventorySource->id }}]')">@{{ errors.first('inventories[{!! $inventorySource->id !!}]') }}</span>
</div>

View File

@ -49,7 +49,7 @@
<div v-for='(attribute, index) in super_attributes' class="control-group" :class="[errors.has('add-variant-form.' + attribute.code) ? 'has-error' : '']">
<label :for="attribute.code" class="required">@{{ attribute.admin_name }}</label>
<select v-validate="'required'" v-model="variant[attribute.code]" class="control" :id="attribute.code" :name="attribute.code">
<select v-validate="'required'" v-model="variant[attribute.code]" class="control" :id="attribute.code" :name="attribute.code" :data-vv-as="'&quot;' + attribute.admin_name + '&quot;'">
<option v-for='(option, index) in attribute.options' :value="option.id">@{{ option.admin_name }}</option>
</select>
<span class="control-error" v-if="errors.has('add-variant-form.' + attribute.code)">@{{ errors.first('add-variant-form.' + attribute.code) }}</span>
@ -100,14 +100,14 @@
<tr>
<td>
<div class="control-group" :class="[errors.has(variantInputName + '[sku]') ? 'has-error' : '']">
<input type="text" v-validate="'required'" v-model="variant.sku" :name="[variantInputName + '[sku]']" class="control" v-slugify/>
<input type="text" v-validate="'required'" v-model="variant.sku" :name="[variantInputName + '[sku]']" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.products.sku') }}&quot;" v-slugify/>
<span class="control-error" v-if="errors.has(variantInputName + '[sku]')">@{{ errors.first(variantInputName + '[sku]') }}</span>
</div>
</td>
<td>
<div class="control-group" :class="[errors.has(variantInputName + '[name]') ? 'has-error' : '']">
<input type="text" v-validate="'required'" v-model="variant.name" :name="[variantInputName + '[name]']" class="control"/>
<input type="text" v-validate="'required'" v-model="variant.name" :name="[variantInputName + '[name]']" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.products.name') }}&quot;"/>
<span class="control-error" v-if="errors.has(variantInputName + '[name]')">@{{ errors.first(variantInputName + '[name]') }}</span>
</div>
</td>
@ -131,7 +131,7 @@
<li v-for='(inventorySource, index) in inventorySources'>
<div class="control-group" :class="[errors.has(variantInputName + '[inventories][' + inventorySource.id + ']') ? 'has-error' : '']">
<label>@{{ inventorySource.name }}</label>
<input type="text" v-validate="'numeric|min:0'" :name="[variantInputName + '[inventories][' + inventorySource.id + ']']" v-model="inventories[inventorySource.id]" class="control" v-on:keyup="updateTotalQty()"/>
<input type="text" v-validate="'numeric|min:0'" :name="[variantInputName + '[inventories][' + inventorySource.id + ']']" v-model="inventories[inventorySource.id]" class="control" v-on:keyup="updateTotalQty()" :data-vv-as="'&quot;' + inventorySource.name + '&quot;'"/>
<span class="control-error" v-if="errors.has(variantInputName + '[inventories][' + inventorySource.id + ']')">@{{ errors.first(variantInputName + '[inventories][' + inventorySource.id + ']') }}</span>
</div>
</li>
@ -142,14 +142,14 @@
<td>
<div class="control-group" :class="[errors.has(variantInputName + '[price]') ? 'has-error' : '']">
<input type="text" v-validate="'required'" v-model="variant.price" :name="[variantInputName + '[price]']" class="control"/>
<input type="text" v-validate="'required'" v-model="variant.price" :name="[variantInputName + '[price]']" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.products.price') }}&quot;"/>
<span class="control-error" v-if="errors.has(variantInputName + '[price]')">@{{ errors.first(variantInputName + '[price]') }}</span>
</div>
</td>
<td>
<div class="control-group" :class="[errors.has(variantInputName + '[price]') ? 'has-error' : '']">
<input type="text" v-validate="'required'" v-model="variant.weight" :name="[variantInputName + '[weight]']" class="control"/>
<input type="text" v-validate="'required'" v-model="variant.weight" :name="[variantInputName + '[weight]']" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.products.weight') }}&quot;"/>
<span class="control-error" v-if="errors.has(variantInputName + '[weight]')">@{{ errors.first(variantInputName + '[weight]') }}</span>
</div>
</td>

View File

@ -46,7 +46,7 @@
<div class="control-group" :class="[errors.has('type') ? 'has-error' : '']">
<label for="type" class="required">{{ __('admin::app.catalog.products.product-type') }}</label>
<select class="control" v-validate="'required'" id="type" name="type" {{ $familyId ? 'disabled' : '' }}>
<select class="control" v-validate="'required'" id="type" name="type" {{ $familyId ? 'disabled' : '' }} data-vv-as="&quot;{{ __('admin::app.catalog.products.product-type') }}&quot;">
<option value="simple">{{ __('admin::app.catalog.products.simple') }}</option>
<option value="configurable" {{ $familyId ? 'selected' : '' }}>{{ __('admin::app.catalog.products.configurable') }}</option>
</select>
@ -59,7 +59,7 @@
<div class="control-group" :class="[errors.has('attribute_family_id') ? 'has-error' : '']">
<label for="attribute_family_id" class="required">{{ __('admin::app.catalog.products.familiy') }}</label>
<select class="control" v-validate="'required'" id="attribute_family_id" name="attribute_family_id" {{ $familyId ? 'disabled' : '' }}>
<select class="control" v-validate="'required'" id="attribute_family_id" name="attribute_family_id" {{ $familyId ? 'disabled' : '' }} data-vv-as="&quot;{{ __('admin::app.catalog.products.familiy') }}&quot;">
<option value=""></option>
@foreach($families as $family)
<option value="{{ $family->id }}" {{ ($familyId == $family->id || old('attribute_family_id') == $family->id) ? 'selected' : '' }}>{{ $family->name }}</option>
@ -74,7 +74,7 @@
<div class="control-group" :class="[errors.has('sku') ? 'has-error' : '']">
<label for="sku">{{ __('admin::app.catalog.products.sku') }}</label>
<input type="text" v-validate="'required'" class="control" id="sku" name="sku" value="{{ $sku ?: old('sku') }}"/>
<input type="text" v-validate="'required'" class="control" id="sku" name="sku" value="{{ $sku ?: old('sku') }}" data-vv-as="&quot;{{ __('admin::app.catalog.products.sku') }}&quot;"/>
<span class="control-error" v-if="errors.has('sku')">@{{ errors.first('sku') }}</span>
</div>

View File

@ -157,11 +157,7 @@
width: "100%",
plugins: 'image imagetools media wordcount save fullscreen code',
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code',
image_advtab: true,
templates: [
{ title: 'Test template 1', content: 'Test 1' },
{ title: 'Test template 2', content: 'Test 2' }
],
image_advtab: true
});
});
</script>

View File

@ -1,4 +1,4 @@
<select v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" {{ $disabled ? 'disabled' : '' }}>
<select v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" {{ $disabled ? 'disabled' : '' }} data-vv-as="&quot;{{ $attribute->admin_name }}&quot;">
<?php $selectedOption = old($attribute->code) ?: $product[$attribute->code] ?>

View File

@ -1,3 +1,3 @@
<date>
<input type="text" name="{{ $attribute->code }}" class="control" {{ $attribute->is_required ? "v-validate='required'" : '' }} value="{{ old($attribute->code) ?: $product[$attribute->code] }}" {{ $disabled ? 'disabled' : '' }}/>
<input type="text" name="{{ $attribute->code }}" class="control" {{ $attribute->is_required ? "v-validate='required'" : '' }} value="{{ old($attribute->code) ?: $product[$attribute->code] }}" data-vv-as="&quot;{{ $attribute->admin_name }}&quot;" {{ $disabled ? 'disabled' : '' }}/>
</date>

View File

@ -1,3 +1,3 @@
<datetime>
<input type="text" name="{{ $attribute->code }}" class="control" {{ $attribute->is_required ? "v-validate='required'" : '' }} value="{{ old($attribute->code) ?: $product[$attribute->code]}}" {{ $disabled ? 'disabled' : '' }}>
<input type="text" name="{{ $attribute->code }}" class="control" {{ $attribute->is_required ? "v-validate='required'" : '' }} value="{{ old($attribute->code) ?: $product[$attribute->code]}}" data-vv-as="&quot;{{ $attribute->admin_name }}&quot;" {{ $disabled ? 'disabled' : '' }}>
</datetime>

View File

@ -1,4 +1,4 @@
<select v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" multiple {{ $disabled ? 'disabled' : '' }}>
<select v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" data-vv-as="&quot;{{ $attribute->admin_name }}&quot;" multiple {{ $disabled ? 'disabled' : '' }}>
@foreach($attribute->options as $option)
<option value="{{ $option->id }}" {{ in_array($option->id, explode(',', $attribute[$attribute->code])) ? 'selected' : ''}}>

View File

@ -1 +1 @@
<input type="text" v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" value="{{ old($attribute->code) ?: $product[$attribute->code]}}" {{ $disabled ? 'disabled' : '' }}/>
<input type="text" v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" value="{{ old($attribute->code) ?: $product[$attribute->code]}}" data-vv-as="&quot;{{ $attribute->admin_name }}&quot;" {{ $disabled ? 'disabled' : '' }}/>

View File

@ -1,4 +1,4 @@
<select v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" {{ $disabled ? 'disabled' : '' }}>
<select v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" data-vv-as="&quot;{{ $attribute->admin_name }}&quot;" {{ $disabled ? 'disabled' : '' }}>
<?php $selectedOption = old($attribute->code) ?: $product[$attribute->code] ?>

View File

@ -1 +1 @@
<input type="text" v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" value="{{ old($attribute->code) ?: $product[$attribute->code] }}" {{ $disabled ? 'disabled' : '' }} {{ in_array($attribute->code, ['sku', 'url_key']) ? 'v-slugify' : '' }}/>
<input type="text" v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" value="{{ old($attribute->code) ?: $product[$attribute->code] }}" data-vv-as="&quot;{{ $attribute->admin_name }}&quot;" {{ $disabled ? 'disabled' : '' }} {{ in_array($attribute->code, ['sku', 'url_key']) ? 'v-slugify' : '' }}/>

View File

@ -1 +1 @@
<textarea v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" {{ $disabled ? 'disabled' : '' }}>{{ old($attribute->code) ?: $product[$attribute->code]}}</textarea>
<textarea v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" data-vv-as="&quot;{{ $attribute->admin_name }}&quot;" {{ $disabled ? 'disabled' : '' }}>{{ old($attribute->code) ?: $product[$attribute->code]}}</textarea>

View File

@ -0,0 +1,33 @@
@extends('admin::layouts.content')
@section('page_title')
{{ __('admin::app.configuration.sales.general.title') }}
@stop
@section('content')
<div class="content">
<form method="POST" action="" @submit.prevent="onSubmit">
<div class="page-header">
<div class="page-title">
<h1>
{{ __('admin::app.configuration.sales.general.title') }}
</h1>
</div>
<div class="page-action">
<button type="submit" class="btn btn-lg btn-primary">
{{ __('admin::app.configuration.sales.general.save-btn-title') }}
</button>
</div>
</div>
<div class="page-content">
<div class="form-container">
</div>
</div>
</form>
</div>
@stop

View File

@ -9,7 +9,7 @@
{{ __('admin::app.customers.customers.country') }}
</label>
<select type="text" v-validate="'required'" class="control" id="country" name="country" v-model="country">
<select type="text" v-validate="'required'" class="control" id="country" name="country" v-model="country" data-vv-as="&quot;{{ __('admin::app.customers.customers.country') }}&quot;">
<option value=""></option>
@foreach (core()->countries() as $country)
@ -29,9 +29,9 @@
{{ __('admin::app.customers.customers.state') }}
</label>
<input type="text" v-validate="'required'" class="control" id="state" name="state" v-model="state" v-if="!haveStates()"/>
<input type="text" v-validate="'required'" class="control" id="state" name="state" v-model="state" v-if="!haveStates()" data-vv-as="&quot;{{ __('admin::app.customers.customers.state') }}&quot;"/>
<select v-validate="'required'" class="control" id="state" name="state" v-model="state" v-if="haveStates()">
<select v-validate="'required'" class="control" id="state" name="state" v-model="state" v-if="haveStates()" data-vv-as="&quot;{{ __('admin::app.customers.customers.state') }}&quot;">
<option value="">{{ __('admin::app.customers.customers.select-state') }}</option>

View File

@ -31,25 +31,25 @@
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
<label for="first_name" class="required">{{ __('shop::app.customer.signup-form.firstname') }}</label>
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{ old('first_name') }}">
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{ old('first_name') }}" data-vv-as="&quot;{{ __('shop::app.customer.signup-form.firstname') }}&quot;">
<span class="control-error" v-if="errors.has('first_name')">@{{ errors.first('first_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
<label for="last_name" class="required">{{ __('shop::app.customer.signup-form.lastname') }}</label>
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{ old('last_name') }}">
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{ old('last_name') }}" data-vv-as="&quot;{{ __('shop::app.customer.signup-form.lastname') }}&quot;">
<span class="control-error" v-if="errors.has('last_name')">@{{ errors.first('last_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email" class="required">{{ __('shop::app.customer.signup-form.email') }}</label>
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{ old('email') }}">
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{ old('email') }}" data-vv-as="&quot;{{ __('shop::app.customer.signup-form.email') }}&quot;">
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
<div class="control-group" :class="[errors.has('gender') ? 'has-error' : '']">
<label for="gender" class="required">{{ __('admin::app.customers.customers.gender') }}</label>
<select name="gender" class="control" v-validate="'required'">
<select name="gender" class="control" v-validate="'required'" data-vv-as="&quot;{{ __('shop::app.customers.customers.gender') }}&quot;">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
@ -61,12 +61,6 @@
<input type="date" class="control" name="date_of_birth">
</div>
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
<input type="text" class="control" v-validate="'numeric'" name="phone" value="{{ old('phone') }}">
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
</div>
<div class="control-group">
<label for="customerGroup" >{{ __('admin::app.customers.customers.customer_group') }}</label>
<select class="control" name="customer_group_id">
@ -78,7 +72,7 @@
<div class="control-group" :class="[errors.has('channel_id') ? 'has-error' : '']">
<label for="channel" >{{ __('admin::app.customers.customers.channel_name') }}</label>
<select class="control" name="channel_id" v-validate="'required'">
<select class="control" name="channel_id" v-validate="'required'" data-vv-as="&quot;{{ __('shop::app.customers.customers.channel_name') }}&quot;">
@foreach ($channelName as $channel)
<option value="{{ $channel->id }}"> {{ $channel->name}} </>
@endforeach

View File

@ -34,25 +34,25 @@
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
<label for="first_name" class="required"> {{ __('admin::app.customers.customers.first_name') }}</label>
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{$customer->first_name}}"/>
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{$customer->first_name}}" data-vv-as="&quot;{{ __('shop::app.customers.customers.first_name') }}&quot;"/>
<span class="control-error" v-if="errors.has('first_name')">@{{ errors.first('first_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
<label for="last_name" class="required"> {{ __('admin::app.customers.customers.last_name') }}</label>
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{$customer->last_name}}"/>
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{$customer->last_name}}" data-vv-as="&quot;{{ __('shop::app.customers.customers.last_name') }}&quot;"/>
<span class="control-error" v-if="errors.has('last_name')">@{{ errors.first('last_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email" class="required"> {{ __('admin::app.customers.customers.email') }}</label>
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{$customer->email}}"/>
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{$customer->email}}" data-vv-as="&quot;{{ __('shop::app.customers.customers.email') }}&quot;"/>
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
<div class="control-group">
<label for="gender" class="required">{{ __('admin::app.customers.customers.gender') }}</label>
<select name="gender" class="control" v-validate="'gender'" value="{{ $customer->gender }}" v-validate="'required'">
<select name="gender" class="control" v-validate="'gender'" value="{{ $customer->gender }}" v-validate="'required'" data-vv-as="&quot;{{ __('shop::app.customers.customers.gender') }}&quot;">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
@ -64,12 +64,6 @@
<input type="date" class="control" name="date_of_birth" value="{{ $customer->date_of_birth }}">
</div>
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
<input type="text" class="control" v-validate="'numeric'" name="phone" value="{{ $customer->phone }}">
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
</div>
<div class="control-group">
<label for="customerGroup" >{{ __('admin::app.customers.customers.customer_group') }}</label>
@ -97,7 +91,7 @@
<?php $selectedChannelOption = $customer->channel_id ?>
@endif
<select class="control" name="channel_id" v-validate="'required'">
<select class="control" name="channel_id" v-validate="'required'" data-vv-as="&quot;{{ __('shop::app.customers.customers.channel_name') }}&quot;">
@foreach($channelName as $channel)
<option value="{{ $channel->id }}" {{ $selectedChannelOption == $channel->id ? 'selected' : '' }}>
{{ $channel->name}}

View File

@ -31,7 +31,7 @@
<label for="name" class="required">
{{ __('admin::app.customers.groups.name') }}
</label>
<input type="text" class="control" name="name" v-validate="'required'" value="{{ old('name') }}">
<input type="text" class="control" name="name" v-validate="'required'" value="{{ old('name') }}" data-vv-as="&quot;{{ __('admin::app.customers.groups.name') }}&quot;">
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>

View File

@ -33,7 +33,7 @@
<label for="name" class="required">
{{ __('admin::app.customers.groups.name') }}
</label>
<input type="text" class="control" name="name" v-validate="'required'" value="{{ $group->name }}">
<input type="text" class="control" name="name" v-validate="'required'" value="{{ $group->name }}" data-vv-as="&quot;{{ __('admin::app.customers.groups.name') }}&quot;">
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
</div>

View File

@ -229,7 +229,7 @@
<td>{{ $item->qty_ordered }}</td>
<td>
<div class="control-group" :class="[errors.has('invoice[items][{{ $item->id }}]') ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric|min:0'" class="control" id="invoice[items][{{ $item->id }}]" name="invoice[items][{{ $item->id }}]" value="{{ $item->qty_to_invoice }}"/>
<input type="text" v-validate="'required|numeric|min:0'" class="control" id="invoice[items][{{ $item->id }}]" name="invoice[items][{{ $item->id }}]" value="{{ $item->qty_to_invoice }}" data-vv-as="&quot;{{ __('admin::app.sales.invoices.qty-to-invoice') }}&quot;"/>
<span class="control-error" v-if="errors.has('invoice[items][{{ $item->id }}]')">
@verbatim

View File

@ -197,7 +197,7 @@
<div class="control-group" :class="[errors.has('shipment[carrier_title]') ? 'has-error' : '']" style="margin-top: 40px">
<label for="shipment[carrier_title]" class="required">{{ __('admin::app.sales.shipments.carrier-title') }}</label>
<input type="text" v-validate="'required'" class="control" id="shipment[carrier_title]" name="shipment[carrier_title]"/>
<input type="text" v-validate="'required'" class="control" id="shipment[carrier_title]" name="shipment[carrier_title]" data-vv-as="&quot;{{ __('admin::app.sales.shipments.carrier-title') }}&quot;"/>
<span class="control-error" v-if="errors.has('shipment[carrier_title]')">
@{{ errors.first('shipment[carrier_title]') }}
</span>
@ -205,7 +205,7 @@
<div class="control-group" :class="[errors.has('shipment[track_number]') ? 'has-error' : '']">
<label for="shipment[track_number]" class="required">{{ __('admin::app.sales.shipments.tracking-number') }}</label>
<input type="text" v-validate="'required'" class="control" id="shipment[track_number]" name="shipment[track_number]"/>
<input type="text" v-validate="'required'" class="control" id="shipment[track_number]" name="shipment[track_number]" data-vv-as="&quot;{{ __('admin::app.sales.shipments.tracking-number') }}&quot;"/>
<span class="control-error" v-if="errors.has('shipment[track_number]')">
@{{ errors.first('shipment[track_number]') }}
</span>
@ -245,7 +245,7 @@
<td>{{ $item->qty_ordered }}</td>
<td>
<div class="control-group" :class="[errors.has('shipment[items][{{ $item->id }}]') ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric|min:0'" class="control" id="shipment[items][{{ $item->id }}]" name="shipment[items][{{ $item->id }}]" value="{{ $item->qty_to_ship }}"/>
<input type="text" v-validate="'required|numeric|min:0'" class="control" id="shipment[items][{{ $item->id }}]" name="shipment[items][{{ $item->id }}]" value="{{ $item->qty_to_ship }}" data-vv-as="&quot;{{ __('admin::app.sales.shipments.qty-to-ship') }}&quot;"/>
<span class="control-error" v-if="errors.has('shipment[items][{{ $item->id }}]')">
@verbatim

View File

@ -29,20 +29,19 @@
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.settings.channels.code') }}</label>
<input v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" v-code/>
<input v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" data-vv-as="&quot;{{ __('admin::app.settings.channels.code') }}&quot;" v-code/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.settings.channels.name') }}</label>
<input v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}"/>
<input v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.settings.channels.name') }}&quot;" value="{{ old('name') }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
<label for="description" class="required">{{ __('admin::app.settings.channels.description') }}</label>
<div class="control-group">
<label for="description">{{ __('admin::app.settings.channels.description') }}</label>
<textarea class="control" id="description" name="description">{{ old('description') }}</textarea>
<span class="control-error" v-if="errors.has('description')">@{{ errors.first('description') }}</span>
</div>
<div class="control-group">
@ -58,7 +57,7 @@
<div class="control-group" :class="[errors.has('locales[]') ? 'has-error' : '']">
<label for="locales" class="required">{{ __('admin::app.settings.channels.locales') }}</label>
<select v-validate="'required'" class="control" id="locales" name="locales[]" multiple>
<select v-validate="'required'" class="control" id="locales" name="locales[]" data-vv-as="&quot;{{ __('admin::app.settings.channels.locales') }}&quot;" multiple>
@foreach(core()->getAllLocales() as $locale)
<option value="{{ $locale->id }}" {{ old('locales') && in_array($locale->id, old('locales')) ? 'selected' : '' }}>
{{ $locale->name }}
@ -70,7 +69,7 @@
<div class="control-group" :class="[errors.has('default_locale_id') ? 'has-error' : '']">
<label for="default_locale_id" class="required">{{ __('admin::app.settings.channels.default-locale') }}</label>
<select v-validate="'required'" class="control" id="default_locale_id" name="default_locale_id">
<select v-validate="'required'" class="control" id="default_locale_id" name="default_locale_id" data-vv-as="&quot;{{ __('admin::app.settings.channels.default-locale') }}&quot;">
@foreach(core()->getAllLocales() as $locale)
<option value="{{ $locale->id }}" {{ old('default_locale_id') == $locale->id ? 'selected' : '' }}>
{{ $locale->name }}
@ -82,7 +81,7 @@
<div class="control-group" :class="[errors.has('currencies[]') ? 'has-error' : '']">
<label for="currencies" class="required">{{ __('admin::app.settings.channels.currencies') }}</label>
<select v-validate="'required'" class="control" id="currencies" name="currencies[]" multiple>
<select v-validate="'required'" class="control" id="currencies" name="currencies[]" data-vv-as="&quot;{{ __('admin::app.settings.channels.currencies') }}&quot;" multiple>
@foreach(core()->getAllCurrencies() as $currency)
<option value="{{ $currency->id }}" {{ old('currencies') && in_array($currency->id, old('currencies')) ? 'selected' : '' }}>
{{ $currency->name }}
@ -94,7 +93,7 @@
<div class="control-group" :class="[errors.has('base_currency_id') ? 'has-error' : '']">
<label for="base_currbase_currency_idency" class="required">{{ __('admin::app.settings.channels.base-currency') }}</label>
<select v-validate="'required'" class="control" id="base_currency_id" name="base_currency_id">
<select v-validate="'required'" class="control" id="base_currency_id" name="base_currency_id" data-vv-as="&quot;{{ __('admin::app.settings.channels.base-currency') }}&quot;">
@foreach(core()->getAllCurrencies() as $currency)
<option value="{{ $currency->id }}" {{ old('base_currency_id') == $currency->id ? 'selected' : '' }}>
{{ $currency->name }}
@ -121,14 +120,14 @@
</div>
<div class="control-group">
<label for="home_page_content" class="required">{{ __('admin::app.settings.channels.home_page_content') }}</label>
<label for="home_page_content">{{ __('admin::app.settings.channels.home_page_content') }}</label>
<textarea class="control" id="home_page_content" name="home_page_content">
{{ old('home_page_content') }}
</textarea>
</div>
<div class="control-group">
<label for="footer_content" class="required">{{ __('admin::app.settings.channels.footer_content') }}</label>
<label for="footer_content">{{ __('admin::app.settings.channels.footer_content') }}</label>
<textarea class="control" id="footer_content" name="footer_content">
{{ old('footer_content') }}
</textarea>

View File

@ -30,21 +30,20 @@
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.settings.channels.code') }}</label>
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ $channel->code }}" disabled="disabled"/>
<input type="text" v-validate="'required'" class="control" id="code" name="code" data-vv-as="&quot;{{ __('admin::app.settings.channels.code') }}&quot;" value="{{ $channel->code }}" disabled="disabled"/>
<input type="hidden" name="code" value="{{ $channel->code }}"/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.settings.channels.name') }}</label>
<input v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') ?: $channel->name }}"/>
<input v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.settings.channels.name') }}&quot;" value="{{ old('name') ?: $channel->name }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
<label for="description" class="required">{{ __('admin::app.settings.channels.description') }}</label>
<div class="control-group">
<label for="description">{{ __('admin::app.settings.channels.description') }}</label>
<textarea class="control" id="description" name="description">{{ old('description') ?: $channel->description }}</textarea>
<span class="control-error" v-if="errors.has('description')">@{{ errors.first('description') }}</span>
</div>
<div class="control-group">
@ -61,7 +60,7 @@
<div class="control-group" :class="[errors.has('locales[]') ? 'has-error' : '']">
<label for="locales" class="required">{{ __('admin::app.settings.channels.locales') }}</label>
<?php $selectedOptionIds = old('locales') ?: $channel->locales->pluck('id')->toArray() ?>
<select v-validate="'required'" class="control" id="locales" name="locales[]" multiple>
<select v-validate="'required'" class="control" id="locales" name="locales[]" data-vv-as="&quot;{{ __('admin::app.settings.channels.locales') }}&quot;" multiple>
@foreach(core()->getAllLocales() as $locale)
<option value="{{ $locale->id }}" {{ in_array($locale->id, $selectedOptionIds) ? 'selected' : '' }}>
{{ $locale->name }}
@ -74,7 +73,7 @@
<div class="control-group" :class="[errors.has('default_locale_id') ? 'has-error' : '']">
<label for="default_locale_id" class="required">{{ __('admin::app.settings.channels.default-locale') }}</label>
<?php $selectedOption = old('default_locale_id') ?: $channel->default_locale_id ?>
<select v-validate="'required'" class="control" id="default_locale_id" name="default_locale_id">
<select v-validate="'required'" class="control" id="default_locale_id" name="default_locale_id" data-vv-as="&quot;{{ __('admin::app.settings.channels.default-locale') }}&quot;">
@foreach(core()->getAllLocales() as $locale)
<option value="{{ $locale->id }}" {{ $selectedOption == $locale->id ? 'selected' : '' }}>
{{ $locale->name }}
@ -87,7 +86,7 @@
<div class="control-group" :class="[errors.has('currencies[]') ? 'has-error' : '']">
<label for="currencies" class="required">{{ __('admin::app.settings.channels.currencies') }}</label>
<?php $selectedOptionIds = old('currencies') ?: $channel->currencies->pluck('id')->toArray() ?>
<select v-validate="'required'" class="control" id="currencies" name="currencies[]" multiple>
<select v-validate="'required'" class="control" id="currencies" name="currencies[]" data-vv-as="&quot;{{ __('admin::app.settings.channels.currencies') }}&quot;" multiple>
@foreach(core()->getAllCurrencies() as $currency)
<option value="{{ $currency->id }}" {{ in_array($currency->id, $selectedOptionIds) ? 'selected' : '' }}>
{{ $currency->name }}
@ -100,7 +99,7 @@
<div class="control-group" :class="[errors.has('base_currency_id') ? 'has-error' : '']">
<label for="base_currency_id" class="required">{{ __('admin::app.settings.channels.base-currency') }}</label>
<?php $selectedOption = old('base_currency_id') ?: $channel->base_currency_id ?>
<select v-validate="'required'" class="control" id="base_currency_id" name="base_currency_id">
<select v-validate="'required'" class="control" id="base_currency_id" name="base_currency_id" data-vv-as="&quot;{{ __('admin::app.settings.channels.base-currency') }}&quot;">
@foreach(core()->getAllCurrencies() as $currency)
<option value="{{ $currency->id }}" {{ $selectedOption == $currency->id ? 'selected' : '' }}>
{{ $currency->name }}
@ -130,14 +129,14 @@
</div>
<div class="control-group">
<label for="home_page_content" class="required">{{ __('admin::app.settings.channels.home_page_content') }}</label>
<label for="home_page_content">{{ __('admin::app.settings.channels.home_page_content') }}</label>
<textarea class="control" id="home_page_content" name="home_page_content">
{{ old('home_page_content') ?: $channel->home_page_content }}
</textarea>
</div>
<div class="control-group">
<label for="footer_content" class="required">{{ __('admin::app.settings.channels.footer_content') }}</label>
<label for="footer_content">{{ __('admin::app.settings.channels.footer_content') }}</label>
<textarea class="control" id="footer_content" name="footer_content">
{{ old('footer_content') ?: $channel->footer_content }}
</textarea>

View File

@ -28,13 +28,13 @@
<div slot="body">
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.settings.currencies.code') }}</label>
<input v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" v-code/>
<input v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" data-vv-as="&quot;{{ __('admin::app.settings.currencies.code') }}&quot;" v-code/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.settings.currencies.name') }}</label>
<input v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}"/>
<input v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.settings.currencies.name') }}&quot;" value="{{ old('name') }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
</div>

View File

@ -30,14 +30,14 @@
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.settings.currencies.code') }}</label>
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ $currency->code }}" disabled="disabled"/>
<input type="text" v-validate="'required'" class="control" id="code" name="code" data-vv-as="&quot;{{ __('admin::app.settings.currencies.code') }}&quot;" value="{{ $currency->code }}" disabled="disabled"/>
<input type="hidden" name="code" value="{{ $currency->code }}"/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.settings.currencies.name') }}</label>
<input v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') ?: $currency->name }}"/>
<input v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.settings.currencies.name') }}&quot;" value="{{ old('name') ?: $currency->name }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
</div>

View File

@ -48,7 +48,7 @@
<td>
<div class="control-group" :class="[errors.has('target_currency') ? 'has-error' : '']">
<select v-validate="'required'" class="control" name="target_currency">
<select v-validate="'required'" class="control" name="target_currency" data-vv-as="&quot;{{ __('admin::app.settings.exchange_rates.target_currency') }}&quot;">
@foreach($currencies as $currency)
<option value="{{ $currency->id }}">{{ $currency->name }}</option>
@endforeach
@ -59,7 +59,7 @@
<td>
<div class="control-group" :class="[errors.has('rate') ? 'has-error' : '']">
<input v-validate="'required'" class="control" id="rate" name="rate" value="{{ old('rate') }}"/>
<input v-validate="'required'" class="control" id="rate" name="rate" data-vv-as="&quot;{{ __('admin::app.settings.exchange_rates.rate') }}&quot;" value="{{ old('rate') }}"/>
<span class="control-error" v-if="errors.has('rate')">@{{ errors.first('rate') }}</span>
</div>
</td>

View File

@ -49,7 +49,7 @@
<td>
<div class="control-group" :class="[errors.has('target_currency') ? 'has-error' : '']">
<select v-validate="'required'" class="control" name="target_currency">
<select v-validate="'required'" class="control" name="target_currency" data-vv-as="&quot;{{ __('admin::app.settings.exchange_rates.target_currency') }}&quot;">
@foreach($currencies as $currency)
<option value="{{ $currency->id }}" {{ $exchangeRate->target_currency == $currency->id ? 'selected' : '' }}>
{{ $currency->name }}
@ -62,7 +62,7 @@
<td>
<div class="control-group" :class="[errors.has('rate') ? 'has-error' : '']">
<input v-validate="'required'" class="control" id="rate" name="rate" value="{{ old('rate') ?: $exchangeRate->rate }}"/>
<input v-validate="'required'" class="control" id="rate" name="rate" data-vv-as="&quot;{{ __('admin::app.settings.exchange_rates.rate') }}&quot;" value="{{ old('rate') ?: $exchangeRate->rate }}"/>
<span class="control-error" v-if="errors.has('rate')">@{{ errors.first('rate') }}</span>
</div>
</td>

View File

@ -29,13 +29,13 @@
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.settings.inventory_sources.code') }}</label>
<input v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" v-code/>
<input v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.code') }}&quot;" v-code/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.settings.inventory_sources.name') }}</label>
<input v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}"/>
<input v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.name') }}&quot;" value="{{ old('name') }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
@ -76,19 +76,19 @@
<div class="control-group" :class="[errors.has('contact_name') ? 'has-error' : '']">
<label for="contact_name" class="required">{{ __('admin::app.settings.inventory_sources.contact_name') }}</label>
<input class="control" v-validate="'required'" class="required" id="contact_name" name="contact_name" value="{{ old('contact_name') }}"/>
<input class="control" v-validate="'required'" class="required" id="contact_name" name="contact_name" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.contact_name') }}&quot;" value="{{ old('contact_name') }}"/>
<span class="control-error" v-if="errors.has('contact_name')">@{{ errors.first('contact_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('contact_email') ? 'has-error' : '']">
<label for="contact_email" class="required">{{ __('admin::app.settings.inventory_sources.contact_email') }}</label>
<input class="control" v-validate="'required'" class="required" id="contact_email" name="contact_email" value="{{ old('contact_email') }}"/>
<input class="control" v-validate="'required'" class="required" id="contact_email" name="contact_email" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.contact_email') }}&quot;" value="{{ old('contact_email') }}"/>
<span class="control-error" v-if="errors.has('contact_email')">@{{ errors.first('contact_email') }}</span>
</div>
<div class="control-group" :class="[errors.has('contact_number') ? 'has-error' : '']">
<label for="contact_number" class="required">{{ __('admin::app.settings.inventory_sources.contact_number') }}</label>
<input class="control" v-validate="'required'" class="required" id="contact_number" name="contact_number" value="{{ old('contact_number') }}"/>
<input class="control" v-validate="'required'" class="required" id="contact_number" name="contact_number" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.contact_number') }}&quot;" value="{{ old('contact_number') }}"/>
<span class="control-error" v-if="errors.has('contact_number')">@{{ errors.first('contact_number') }}</span>
</div>
@ -107,19 +107,19 @@
<div class="control-group" :class="[errors.has('city') ? 'has-error' : '']">
<label for="city" class="required">{{ __('admin::app.settings.inventory_sources.city') }}</label>
<input v-validate="'required'" class="control" id="city" name="city" value="{{ old('city') }}"/>
<input v-validate="'required'" class="control" id="city" name="city" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.city') }}&quot;" value="{{ old('city') }}"/>
<span class="control-error" v-if="errors.has('city')">@{{ errors.first('city') }}</span>
</div>
<div class="control-group" :class="[errors.has('street') ? 'has-error' : '']">
<label for="street" class="required">{{ __('admin::app.settings.inventory_sources.street') }}</label>
<input v-validate="'required'" class="control" id="street" name="street" value="{{ old('street') }}"/>
<input v-validate="'required'" class="control" id="street" name="street" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.street') }}&quot;" value="{{ old('street') }}"/>
<span class="control-error" v-if="errors.has('street')">@{{ errors.first('street') }}</span>
</div>
<div class="control-group" :class="[errors.has('postcode') ? 'has-error' : '']">
<label for="postcode" class="required">{{ __('admin::app.settings.inventory_sources.postcode') }}</label>
<input v-validate="'required'" class="control" id="postcode" name="postcode" value="{{ old('postcode') }}"/>
<input v-validate="'required'" class="control" id="postcode" name="postcode" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.postcode') }}&quot;" value="{{ old('postcode') }}"/>
<span class="control-error" v-if="errors.has('postcode')">@{{ errors.first('postcode') }}</span>
</div>

View File

@ -30,13 +30,13 @@
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.settings.inventory_sources.code') }}</label>
<input v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') ?: $inventorySource->code }}" v-code/>
<input v-validate="'required'" class="control" id="code" name="code" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.code') }}&quot;" value="{{ old('code') ?: $inventorySource->code }}" v-code/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.settings.inventory_sources.name') }}</label>
<input v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') ?: $inventorySource->name }}"/>
<input v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.name') }}&quot;" value="{{ old('name') ?: $inventorySource->name }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
@ -77,19 +77,19 @@
<div class="control-group" :class="[errors.has('contact_name') ? 'has-error' : '']">
<label for="contact_name" class="required">{{ __('admin::app.settings.inventory_sources.contact_name') }}</label>
<input class="control" v-validate="'required'" id="contact_name" name="contact_name" value="{{ old('contact_name') ?: $inventorySource->contact_name }}"/>
<input class="control" v-validate="'required'" id="contact_name" name="contact_name" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.contact_name') }}&quot;" value="{{ old('contact_name') ?: $inventorySource->contact_name }}"/>
<span class="control-error" v-if="errors.has('contact_name')">@{{ errors.first('contact_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('contact_email') ? 'has-error' : '']">
<label for="contact_email" class="required">{{ __('admin::app.settings.inventory_sources.contact_email') }}</label>
<input class="control" v-validate="'required'" id="contact_email" name="contact_email" value="{{ old('contact_email') ?: $inventorySource->symbol }}"/>
<input class="control" v-validate="'required'" id="contact_email" name="contact_email" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.contact_email') }}&quot;" value="{{ old('contact_email') ?: $inventorySource->symbol }}"/>
<span class="control-error" v-if="errors.has('contact_email')">@{{ errors.first('contact_email') }}</span>
</div>
<div class="control-group" :class="[errors.has('contact_number') ? 'has-error' : '']">
<label for="contact_number" class="required">{{ __('admin::app.settings.inventory_sources.contact_number') }}</label>
<input class="control" v-validate="'required'" id="contact_number" name="contact_number" value="{{ old('contact_number') ?: $inventorySource->contact_number }}"/>
<input class="control" v-validate="'required'" id="contact_number" name="contact_number" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.contact_number') }}&quot;" value="{{ old('contact_number') ?: $inventorySource->contact_number }}"/>
<span class="control-error" v-if="errors.has('contact_number')">@{{ errors.first('contact_number') }}</span>
</div>
@ -108,19 +108,19 @@
<div class="control-group" :class="[errors.has('city') ? 'has-error' : '']">
<label for="city" class="required">{{ __('admin::app.settings.inventory_sources.city') }}</label>
<input class="control" v-validate="'required'" id="city" name="city" value="{{ old('city') ?: $inventorySource->city }}"/>
<input class="control" v-validate="'required'" id="city" name="city" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.city') }}&quot;" value="{{ old('city') ?: $inventorySource->city }}"/>
<span class="control-error" v-if="errors.has('city')">@{{ errors.first('city') }}</span>
</div>
<div class="control-group" :class="[errors.has('street') ? 'has-error' : '']">
<label for="street" class="required">{{ __('admin::app.settings.inventory_sources.street') }}</label>
<input class="control" v-validate="'required'" id="street" name="street" value="{{ old('street') ?: $inventorySource->street }}"/>
<input class="control" v-validate="'required'" id="street" name="street" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.street') }}&quot;" value="{{ old('street') ?: $inventorySource->street }}"/>
<span class="control-error" v-if="errors.has('street')">@{{ errors.first('street') }}</span>
</div>
<div class="control-group" :class="[errors.has('postcode') ? 'has-error' : '']">
<label for="postcode" class="required">{{ __('admin::app.settings.inventory_sources.postcode') }}</label>
<input class="control" v-validate="'required'" id="postcode" name="postcode" value="{{ old('postcode') ?: $inventorySource->postcode }}"/>
<input class="control" v-validate="'required'" id="postcode" name="postcode" data-vv-as="&quot;{{ __('admin::app.settings.inventory_sources.postcode') }}&quot;" value="{{ old('postcode') ?: $inventorySource->postcode }}"/>
<span class="control-error" v-if="errors.has('postcode')">@{{ errors.first('postcode') }}</span>
</div>

View File

@ -28,13 +28,13 @@
<div slot="body">
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code">{{ __('admin::app.settings.locales.code') }}</label>
<input v-validate="'required'" class="control" id="code" name="code" v-code/>
<input v-validate="'required'" class="control" id="code" name="code" data-vv-as="&quot;{{ __('admin::app.settings.locales.code') }}&quot;" v-code/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name">{{ __('admin::app.settings.locales.name') }}</label>
<input v-validate="'required'" class="control" id="name" name="name"/>
<input v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.settings.locales.name') }}&quot;"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
</div>

View File

@ -30,14 +30,14 @@
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.settings.locales.code') }}</label>
<input type="text" v-validate="'required'" class="control" id="code" name="code" value="{{ $locale->code }}" disabled="disabled"/>
<input type="text" v-validate="'required'" class="control" id="code" name="code" data-vv-as="&quot;{{ __('admin::app.settings.locales.code') }}&quot;" value="{{ $locale->code }}" disabled="disabled"/>
<input type="hidden" name="code" value="{{ $locale->code }}"/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.settings.locales.name') }}</label>
<input v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') ?: $locale->name }}"/>
<input v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.settings.locales.name') }}&quot;" value="{{ old('name') ?: $locale->name }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
</div>

View File

@ -24,14 +24,14 @@
@csrf()
<div class="control-group" :class="[errors.has('title') ? 'has-error' : '']">
<label for="title">{{ __('admin::app.settings.sliders.title') }}</label>
<input type="text" class="control" name="title" v-validate="'required'">
<input type="text" class="control" name="title" v-validate="'required'" data-vv-as="&quot;{{ __('admin::app.settings.sliders.title') }}&quot;">
<span class="control-error" v-if="errors.has('title')">@{{ errors.first('title') }}</span>
</div>
<?php $channels = core()->getAllChannels() ?>
<div class="control-group" :class="[errors.has('channel_id') ? 'has-error' : '']">
<label for="channel_id">{{ __('admin::app.settings.sliders.channels') }}</label>
<select class="control" id="channel_id" name="channel_id" v-validate="'required'">
<select class="control" id="channel_id" name="channel_id" v-validate="'required'" data-vv-as="&quot;{{ __('admin::app.settings.sliders.channels') }}&quot;">
@foreach($channels as $channel)
<option value="{{ $channel->id }}" @if($channel->id == old('channel_id')) selected @endif>
{{ __($channel->name) }}

View File

@ -26,14 +26,14 @@
<div class="control-group" :class="[errors.has('title') ? 'has-error' : '']">
<label for="title">{{ __('admin::app.settings.sliders.title') }}</label>
<input type="text" class="control" name="title" v-validate="'required'" value="{{ $slider->title ?: old('title') }}">
<input type="text" class="control" name="title" v-validate="'required'" data-vv-as="&quot;{{ __('admin::app.settings.sliders.title') }}&quot;" value="{{ $slider->title ?: old('title') }}">
<span class="control-error" v-if="errors.has('title')">@{{ errors.first('title') }}</span>
</div>
<?php $channels = core()->getAllChannels() ?>
<div class="control-group" :class="[errors.has('channel_id') ? 'has-error' : '']">
<label for="channel_id">{{ __('admin::app.settings.sliders.channels') }}</label>
<select class="control" id="channel_id" name="channel_id" value="" v-validate="'required'">
<select class="control" id="channel_id" name="channel_id" data-vv-as="&quot;{{ __('admin::app.settings.sliders.channels') }}&quot;" value="" v-validate="'required'">
@foreach($channels as $channel)
<option value="{{ $channel->id }}" @if($channel->id == $slider->channel_id) selected @endif>
{{ __($channel->name) }}
@ -47,11 +47,11 @@
<image-wrapper :button-label="'{{ __('admin::app.settings.sliders.image') }}'" input-name="image" :multiple="false" :images='"{{ url('storage/'.$slider->path) }}"'></image-wrapper>
</div>
<div class="control-group" :class="[errors.has('content') ? 'has-error' : '']">
<div class="control-group">
<label for="content">{{ __('admin::app.settings.sliders.content') }}</label>
<div class="panel-body">
<textarea id="tiny" class="control" id="add_content" name="content" v-validate="'required'" rows="5">{{ $slider->content ? : old('content') }}</textarea>
<textarea id="tiny" class="control" id="add_content" name="content" rows="5">{{ $slider->content ? : old('content') }}</textarea>
</div>
<span class="control-error" v-if="errors.has('content')">@{{ errors.first('content') }}</span>

View File

@ -21,58 +21,58 @@
<div class="page-content">
<div class="form-container">
@csrf()
<div class="control-group" :class="[errors.has('channel') ? 'has-error' : '']">
<label for="channel" class="required">{{ __('admin::app.settings.tax-categories.select-channel') }}</label>
<select class="control" name="channel_id">
@foreach(core()->getAllChannels() as $channelModel)
<div class="control-group" :class="[errors.has('channel') ? 'has-error' : '']">
<label for="channel" class="required">{{ __('admin::app.configuration.tax-categories.select-channel') }}</label>
<option value="{{ $channelModel->id }}">
{{ $channelModel->name }}
</option>
<select class="control" name="channel_id">
@foreach(core()->getAllChannels() as $channelModel)
@endforeach
</select>
<option value="{{ $channelModel->id }}">
{{ $channelModel->name }}
</option>
<span class="control-error" v-if="errors.has('channel')">@{{ errors.first('channel') }}</span>
</div>
@endforeach
</select>
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.settings.tax-categories.code') }}</label>
<span class="control-error" v-if="errors.has('channel')">@{{ errors.first('channel') }}</span>
</div>
<input v-validate="'required'" class="control" id="code" name="code" value="{{ old('code') }}"/>
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.configuration.tax-categories.code') }}</label>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<input v-validate="'required'" class="control" id="code" name="code" data-vv-as="&quot;{{ __('admin::app.configuration.tax-categories.code') }}&quot;" value="{{ old('code') }}"/>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.settings.tax-categories.name') }}</label>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<input v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') }}"/>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.configuration.tax-categories.name') }}</label>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
<input v-validate="'required'" class="control" id="name" data-vv-as="&quot;{{ __('admin::app.configuration.tax-categories.name') }}&quot;" name="name" value="{{ old('name') }}"/>
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
<label for="description" class="required">{{ __('admin::app.settings.tax-categories.description') }}</label>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
<textarea v-validate="'required'" class="control" id="description" name="description" value="{{ old('description') }}"></textarea>
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
<label for="description" class="required">{{ __('admin::app.configuration.tax-categories.description') }}</label>
<span class="control-error" v-if="errors.has('description')">@{{ errors.first('description') }}</span>
</div>
<textarea v-validate="'required'" class="control" id="description" name="description" data-vv-as="&quot;{{ __('admin::app.configuration.tax-categories.description') }}&quot;" value="{{ old('description') }}"></textarea>
<div class="control-group" :class="[errors.has('taxrates') ? 'has-error' : '']">
<label for="taxrates" class="required">{{ __('admin::app.settings.tax-categories.select-taxrates') }}</label>
<span class="control-error" v-if="errors.has('description')">@{{ errors.first('description') }}</span>
</div>
<select multiple="multiple" v-validate="'required'" class="control" id="taxrates" name="taxrates[]" value="{{ old('taxrates') }}">
@foreach($taxRates as $taxRate)
<option value="{{ $taxRate['id'] }}">{{ $taxRate['identifier'] }}</option>
@endforeach
</select>
<div class="control-group" :class="[errors.has('taxrates[]') ? 'has-error' : '']">
<label for="taxrates" class="required">{{ __('admin::app.configuration.tax-categories.select-taxrates') }}</label>
<span class="control-error" v-if="errors.first('taxrates')">@{{ errors.first('taxrates') }}</span>
</div>
<select multiple="multiple" v-validate="'required'" class="control" id="taxrates" name="taxrates[]" data-vv-as="&quot;{{ __('admin::app.configuration.tax-categories.select-taxrates') }}&quot;" value="{{ old('taxrates') }}">
@foreach($taxRates as $taxRate)
<option value="{{ $taxRate['id'] }}">{{ $taxRate['identifier'] }}</option>
@endforeach
</select>
<span class="control-error" v-if="errors.first('taxrates[]')">@{{ errors.first('taxrates[]') }}</span>
</div>
</div>
</div>

View File

@ -42,44 +42,29 @@
<div class="control-group" :class="[errors.has('code') ? 'has-error' : '']">
<label for="code" class="required">{{ __('admin::app.settings.tax-categories.code') }}</label>
<input v-validate="'required'" class="control" id="code" name="code" value="{{ $taxCategory->code }}"/>
<span class="control-error" v-if="errors.has('code')">@{{ errors.first('code') }}</span>
</div>
<input v-validate="'required'" class="control" id="code" name="code" data-vv-as="&quot;{{ __('admin::app.configuration.tax-categories.code') }}&quot;" value="{{ $taxCategory->code }}"/>
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.settings.tax-categories.name') }}</label>
<input v-validate="'required'" class="control" id="name" name="name" value="{{ $taxCategory->name }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
<input v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.configuration.tax-categories.name') }}&quot;" value="{{ $taxCategory->name }}"/>
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
<label for="description" class="required">{{ __('admin::app.settings.tax-categories.description') }}</label>
<textarea v-validate="'required'" class="control" id="description" name="description" data-vv-as="&quot;{{ __('admin::app.configuration.tax-categories.description') }}&quot;">
{{ $taxCategory->description }}
</textarea>
<textarea v-validate="'required'" class="control" id="description" name="description">{{ $taxCategory->description }}</textarea>
<span class="control-error" v-if="errors.has('description')">@{{ errors.first('description') }}</span>
</div>
<div class="control-group" :class="[errors.has('taxrates') ? 'has-error' : '']">
<div class="control-group" :class="[errors.has('taxrates[]') ? 'has-error' : '']">
<label for="taxrates" class="required">{{ __('admin::app.settings.tax-categories.select-taxrates') }}</label>
@inject('taxRates', 'Webkul\Tax\Repositories\TaxRateRepository')
<select multiple="multiple" class="control" id="taxrates" name="taxrates[]" v-validate="'required'">
<select multiple="multiple" class="control" id="taxrates" name="taxrates[]" data-vv-as="&quot;{{ __('admin::app.settings.tax-categories.select-taxrates') }}&quot;" v-validate="'required'">
@foreach($taxRates->all() as $taxRate)
<option value="{{ $taxRate->id }}" {{ is_numeric($taxCategory->pluck('id')->search($taxRate->id)) ? 'selected' : '' }}>
{{-- <option value="{{ $taxRate->id }}"> --}}
{{ $taxRate->identifier }}
</option>
<option value="{{ $taxRate->id }}" {{ is_numeric($taxCategory->tax_rates->pluck('id')->search($taxRate->id)) ? 'selected' : '' }}>{{ $taxRate->identifier }}</option>
@endforeach
</select>
<span class="control-error" v-if="errors.has('taxrates')">@{{ errors.first('taxrates[]') }}</span>
<span class="control-error" v-if="errors.has('taxrates[]')">@{{ errors.first('taxrates[]') }}</span>
</div>
</div>
</div>

View File

@ -36,8 +36,8 @@
<script type="text/x-template" id="tax-rate-form-template">
<div>
<div class="control-group" :class="[errors.has('identifier') ? 'has-error' : '']">
<label for="identifier" class="required">{{ __('admin::app.settings.tax-rates.identifier') }}</label>
<input v-validate="'required'" class="control" id="identifier" name="identifier" value="{{ old('identifier') }}"/>
<label for="identifier" class="required">{{ __('admin::app.configuration.tax-rates.identifier') }}</label>
<input v-validate="'required'" class="control" id="identifier" name="identifier" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.identifier') }}&quot;" value="{{ old('identifier') }}"/>
<span class="control-error" v-if="errors.has('identifier')">@{{ errors.first('identifier') }}</span>
</div>
@ -52,28 +52,28 @@
</div>
<div v-if="!is_zip" class="control-group" :class="[errors.has('zip_code') ? 'has-error' : '']" id="zip_code">
<label for="zip_code" class="required">{{ __('admin::app.settings.tax-rates.zip_code') }}</label>
<input v-validate="'required'" class="control" id="zip_code" name="zip_code" value="{{ old('zip_code') }}"/>
<label for="zip_code" class="required">{{ __('admin::app.configuration.tax-rates.zip_code') }}</label>
<input v-validate="'required'" class="control" id="zip_code" name="zip_code" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.zip_code') }}&quot;" value="{{ old('zip_code') }}"/>
<span class="control-error" v-if="errors.has('zip_code')">@{{ errors.first('zip_code') }}</span>
</div>
<span v-if="is_zip">
<div class="control-group" :class="[errors.has('zip_from') ? 'has-error' : '']" id="zip_from">
<label for="zip_from" class="required">{{ __('admin::app.settings.tax-rates.zip_from') }}</label>
<input v-validate="'required'" class="control" name="zip_from" value="{{ old('zip_from') }}"/>
<label for="zip_from" class="required">{{ __('admin::app.configuration.tax-rates.zip_from') }}</label>
<input v-validate="'required'" class="control" name="zip_from" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.zip_from') }}&quot;" value="{{ old('zip_from') }}"/>
<span class="control-error" v-if="errors.has('zip_from')">@{{ errors.first('zip_from') }}</span>
</div>
<div class="control-group" :class="[errors.has('zip_to') ? 'has-error' : '']" id="zip_to">
<label for="zip_to" class="required">{{ __('admin::app.settings.tax-rates.zip_to') }}</label>
<input v-validate="'required'" class="control" name="zip_to" value="{{ old('zip_to') }}"/>
<label for="zip_to" class="required">{{ __('admin::app.configuration.tax-rates.zip_to') }}</label>
<input v-validate="'required'" class="control" name="zip_to" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.zip_to') }}&quot;" value="{{ old('zip_to') }}"/>
<span class="control-error" v-if="errors.has('zip_to')">@{{ errors.first('zip_to') }}</span>
</div>
</span>
<div class="control-group" :class="[errors.has('tax_rate') ? 'has-error' : '']">
<label for="tax_rate" class="required">{{ __('admin::app.settings.tax-rates.tax_rate') }}</label>
<input v-validate="'required'" class="control" id="tax_rate" name="tax_rate" value="{{ old('tax_rate') }}"/>
<label for="tax_rate" class="required">{{ __('admin::app.configuration.tax-rates.tax_rate') }}</label>
<input v-validate="'required'" class="control" id="tax_rate" name="tax_rate" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.tax_rate') }}&quot;" value="{{ old('tax_rate') }}"/>
<span class="control-error" v-if="errors.has('tax_rate')">@{{ errors.first('tax_rate') }}</span>
</div>
</div>

View File

@ -26,8 +26,8 @@
@csrf()
<div class="control-group" :class="[errors.has('identifier') ? 'has-error' : '']">
<label for="identifier" class="required">{{ __('admin::app.settings.tax-rates.identifier') }}</label>
<input v-validate="'required'" class="control" id="identifier" name="identifier" value="{{ $taxRate->identifier }}" disabled="disabled"/>
<label for="identifier" class="required">{{ __('admin::app.configuration.tax-rates.identifier') }}</label>
<input v-validate="'required'" class="control" id="identifier" name="identifier" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.identifier') }}&quot;" value="{{ $taxRate->identifier }}" disabled="disabled"/>
<input type="hidden" name="identifier" value="{{ $taxRate->identifier }}"/>
<span class="control-error" v-if="errors.has('identifier')">@{{ errors.first('identifier') }}</span>
</div>
@ -38,27 +38,27 @@
<input type="hidden" id="is_zip" name="is_zip" value="{{ $taxRate->is_zip }}">
<div class="control-group" :class="[errors.has('zip_from') ? 'has-error' : '']">
<label for="zip_from" class="required">{{ __('admin::app.settings.tax-rates.zip_from') }}</label>
<input v-validate="'required'" class="control" id="zip_from" name="zip_from" value="{{ $taxRate->zip_from }}" />
<label for="zip_from" class="required">{{ __('admin::app.configuration.tax-rates.zip_from') }}</label>
<input v-validate="'required'" class="control" id="zip_from" name="zip_from" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.zip_from') }}&quot;" value="{{ $taxRate->zip_from }}" />
<span class="control-error" v-if="errors.has('zip_from')">@{{ errors.first('zip_from') }}</span>
</div>
<div class="control-group" :class="[errors.has('zip_to') ? 'has-error' : '']">
<label for="zip_to" class="required">{{ __('admin::app.settings.tax-rates.zip_to') }}</label>
<input v-validate="'required'" class="control" id="zip_to" name="zip_to" value="{{ $taxRate->zip_to }}" />
<label for="zip_to" class="required">{{ __('admin::app.configuration.tax-rates.zip_to') }}</label>
<input v-validate="'required'" class="control" id="zip_to" name="zip_to" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.zip_to') }}&quot;" value="{{ $taxRate->zip_to }}" />
<span class="control-error" v-if="errors.has('zip_to')">@{{ errors.first('zip_to') }}</span>
</div>
@else
<div class="control-group" :class="[errors.has('zip_code') ? 'has-error' : '']">
<label for="zip_code" class="required">{{ __('admin::app.settings.tax-rates.zip_code') }}</label>
<input v-validate="'required'" class="control" id="zip_code" name="zip_code" value="{{ $taxRate->zip_code }}" />
<label for="zip_code" class="required">{{ __('admin::app.configuration.tax-rates.zip_code') }}</label>
<input v-validate="'required'" class="control" id="zip_code" name="zip_code" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.zip_code') }}&quot;" value="{{ $taxRate->zip_code }}" />
<span class="control-error" v-if="errors.has('zip_code')">@{{ errors.first('zip_code') }}</span>
</div>
@endif
<div class="control-group" :class="[errors.has('tax_rate') ? 'has-error' : '']">
<label for="tax_rate" class="required">{{ __('admin::app.settings.tax-rates.tax_rate') }}</label>
<input v-validate="'required'" class="control" id="tax_rate" name="tax_rate" value="{{ $taxRate->tax_rate }}" />
<label for="tax_rate" class="required">{{ __('admin::app.configuration.tax-rates.tax_rate') }}</label>
<input v-validate="'required'" class="control" id="tax_rate" name="tax_rate" data-vv-as="&quot;{{ __('admin::app.configuration.tax-rates.tax_rate') }}&quot;" value="{{ $taxRate->tax_rate }}" />
<span class="control-error" v-if="errors.has('tax_rate')">@{{ errors.first('tax_rate') }}</span>
</div>

View File

@ -30,7 +30,7 @@
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email">{{ __('admin::app.users.forget-password.email') }}</label>
<input type="text" v-validate="'required'" class="control" id="email" name="email" value="{{ old('email') }}"/>
<input type="text" v-validate="'required'" class="control" id="email" name="email" data-vv-as="&quot;{{ __('admin::app.users.forget-password.email') }}&quot;" value="{{ old('email') }}"/>
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>

View File

@ -32,19 +32,19 @@
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email">{{ __('admin::app.users.reset-password.email') }}</label>
<input type="text" v-validate="'required|email'" class="control" id="email" name="email" value="{{ old('email') }}"/>
<input type="text" v-validate="'required|email'" class="control" id="email" name="email" data-vv-as="&quot;{{ __('admin::app.users.reset-password.email') }}&quot;" value="{{ old('email') }}"/>
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
<div class="control-group" :class="[errors.has('password') ? 'has-error' : '']">
<label for="password">{{ __('admin::app.users.reset-password.password') }}</label>
<input type="password" v-validate="'required|min:6'" class="control" id="password" name="password"/>
<input type="password" v-validate="'required|min:6'" class="control" id="password" name="password" data-vv-as="&quot;{{ __('admin::app.users.reset-password.password') }}&quot;"/>
<span class="control-error" v-if="errors.has('password')">@{{ errors.first('password') }}</span>
</div>
<div class="control-group" :class="[errors.has('password_confirmation') ? 'has-error' : '']">
<label for="password_confirmation">{{ __('admin::app.users.reset-password.confirm-password') }}</label>
<input type="password" v-validate="'required|min:6|confirmed:password'" class="control" id="password_confirmation" name="password_confirmation" data-vv-as="password"/>
<input type="password" v-validate="'required|min:6|confirmed:password'" class="control" id="password_confirmation" name="password_confirmation" data-vv-as="&quot;{{ __('admin::app.users.reset-password.confirm-password') }}&quot;" data-vv-as="password"/>
<span class="control-error" v-if="errors.has('password_confirmation')">@{{ errors.first('password_confirmation') }}</span>
</div>

View File

@ -28,7 +28,7 @@
<div slot="body">
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.users.roles.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="email" name="name" value="{{ old('name') }}"/>
<input type="text" v-validate="'required'" class="control" id="email" name="name" data-vv-as="&quot;{{ __('admin::app.users.roles.name') }}&quot;" value="{{ old('name') }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>

View File

@ -30,7 +30,7 @@
<div slot="body">
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.users.roles.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="name" name="name" value="{{ old('name') ?: $role->name }}"/>
<input type="text" v-validate="'required'" class="control" id="name" name="name" data-vv-as="&quot;{{ __('admin::app.users.roles.name') }}&quot;" value="{{ old('name') ?: $role->name }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>

View File

@ -19,13 +19,13 @@
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email">{{ __('admin::app.users.sessions.email') }}</label>
<input type="text" v-validate="'required'" class="control" id="email" name="email"/>
<input type="text" v-validate="'required'" class="control" id="email" name="email" data-vv-as="&quot;{{ __('admin::app.users.sessions.email') }}&quot;"/>
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
<div class="control-group" :class="[errors.has('password') ? 'has-error' : '']">
<label for="password">{{ __('admin::app.users.sessions.password') }}</label>
<input type="password" v-validate="'required|min:6'" class="control" id="password" name="password"/>
<input type="password" v-validate="'required|min:6'" class="control" id="password" name="password" data-vv-as="&quot;{{ __('admin::app.users.sessions.password') }}&quot;"/>
<span class="control-error" v-if="errors.has('password')">@{{ errors.first('password') }}</span>
</div>

View File

@ -27,13 +27,13 @@
<div slot="body">
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.users.users.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="email" name="name"/>
<input type="text" v-validate="'required'" class="control" id="email" name="name" data-vv-as="&quot;{{ __('admin::app.users.users.name') }}&quot;"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email" class="required">{{ __('admin::app.users.users.email') }}</label>
<input type="text" v-validate="'required|email'" class="control" id="email" name="email"/>
<input type="text" v-validate="'required|email'" class="control" id="email" name="email" data-vv-as="&quot;{{ __('admin::app.users.users.email') }}&quot;"/>
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
</div>
@ -42,14 +42,14 @@
<accordian :title="'{{ __('Password') }}'" :active="true">
<div slot="body">
<div class="control-group" :class="[errors.has('password') ? 'has-error' : '']">
<label for="password" class="required">{{ __('admin::app.users.users.password') }}</label>
<input type="password" v-validate="'min:6|max:18'" class="control" id="password" name="password"/>
<label for="password">{{ __('admin::app.users.users.password') }}</label>
<input type="password" v-validate="'min:6|max:18'" class="control" id="password" name="password" data-vv-as="&quot;{{ __('admin::app.users.users.password') }}&quot;"/>
<span class="control-error" v-if="errors.has('password')">@{{ errors.first('password') }}</span>
</div>
<div class="control-group" :class="[errors.has('password_confirmation') ? 'has-error' : '']">
<label for="password_confirmation" class="required">{{ __('admin::app.users.users.confirm-password') }}</label>
<input type="password" v-validate="'min:6|max:18|confirmed:password'" class="control" id="password_confirmation" name="password_confirmation"/>
<label for="password_confirmation">{{ __('admin::app.users.users.confirm-password') }}</label>
<input type="password" v-validate="'min:6|max:18|confirmed:password'" class="control" id="password_confirmation" name="password_confirmation" data-vv-as="&quot;{{ __('admin::app.users.users.confirm-password') }}&quot;"/>
<span class="control-error" v-if="errors.has('password_confirmation')">@{{ errors.first('password_confirmation') }}</span>
</div>
</div>
@ -59,7 +59,7 @@
<div slot="body">
<div class="control-group" :class="[errors.has('role_id') ? 'has-error' : '']">
<label for="role" class="required">{{ __('admin::app.users.users.role') }}</label>
<select v-validate="'required'" class="control" name="role_id">
<select v-validate="'required'" class="control" name="role_id" data-vv-as="&quot;{{ __('admin::app.users.users.role') }}&quot;">
@foreach($roles as $role)
<option value="{{ $role->id }}">{{ $role->name }}</option>
@endforeach

View File

@ -28,13 +28,13 @@
<div slot="body">
<div class="control-group" :class="[errors.has('name') ? 'has-error' : '']">
<label for="name" class="required">{{ __('admin::app.users.users.name') }}</label>
<input type="text" v-validate="'required'" class="control" id="email" name="name" value="{{ $user->name }}"/>
<input type="text" v-validate="'required'" class="control" id="email" name="name" data-vv-as="&quot;{{ __('admin::app.users.users.name') }}&quot;" value="{{ $user->name }}"/>
<span class="control-error" v-if="errors.has('name')">@{{ errors.first('name') }}</span>
</div>
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email" class="required">{{ __('admin::app.users.users.email') }}</label>
<input type="text" v-validate="'required|email'" class="control" id="email" name="email" value="{{ $user->email }}"/>
<input type="text" v-validate="'required|email'" class="control" id="email" name="email" data-vv-as="&quot;{{ __('admin::app.users.users.email') }}&quot;" value="{{ $user->email }}"/>
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
</div>
@ -44,13 +44,13 @@
<div slot="body">
<div class="control-group" :class="[errors.has('password') ? 'has-error' : '']">
<label for="password">{{ __('admin::app.users.users.password') }}</label>
<input type="password" v-validate="'min:6|max:18'" class="control" id="password" name="password"/>
<input type="password" v-validate="'min:6|max:18'" class="control" id="password" name="password" data-vv-as="&quot;{{ __('admin::app.users.users.password') }}&quot;"/>
<span class="control-error" v-if="errors.has('password')">@{{ errors.first('password') }}</span>
</div>
<div class="control-group" :class="[errors.has('password_confirmation') ? 'has-error' : '']">
<label for="password_confirmation">{{ __('admin::app.users.users.confirm-password') }}</label>
<input type="password" v-validate="'min:6|max:18|confirmed:password'" class="control" id="password_confirmation" name="password_confirmation"/>
<input type="password" v-validate="'min:6|max:18|confirmed:password'" class="control" id="password_confirmation" name="password_confirmation" data-vv-as="&quot;{{ __('admin::app.users.users.confirm-password') }}&quot;"/>
<span class="control-error" v-if="errors.has('password_confirmation')">@{{ errors.first('password_confirmation') }}</span>
</div>
</div>
@ -60,7 +60,7 @@
<div slot="body">
<div class="control-group" :class="[errors.has('role_id') ? 'has-error' : '']">
<label for="role" class="required">{{ __('admin::app.users.users.role') }}</label>
<select v-validate="'required'" class="control" name="role_id">
<select v-validate="'required'" class="control" name="role_id" data-vv-as="&quot;{{ __('admin::app.users.users.role') }}&quot;">
@foreach($roles as $role)
<option value="{{ $role->id }}" {{ $user->role_id == $role->id ? 'selected' : '' }}>{{ $role->name }}</option>
@endforeach

View File

@ -1,8 +1,8 @@
const { mix } = require("laravel-mix");
require("laravel-mix-merge-manifest");
// var publicPath = 'publishable/assets';
var publicPath = "../../../public/vendor/webkul/admin/assets";
var publicPath = 'publishable/assets';
// var publicPath = "../../../public/vendor/webkul/admin/assets";
mix.setPublicPath(publicPath).mergeManifest();
mix.disableNotifications();

View File

@ -132,9 +132,13 @@ class AttributeController extends Controller
if(!$attribute->is_user_defined) {
session()->flash('error', 'Can not delete system attribute.');
} else {
$this->attribute->delete($id);
try {
$this->attribute->delete($id);
session()->flash('success', 'Attribute deleted successfully.');
session()->flash('success', 'Attribute deleted successfully.');
} catch(\Exception $e) {
session()->flash('error', 'Attribute is used in configurable products.');
}
}
return redirect()->back();

View File

@ -135,8 +135,12 @@ class AttributeFamilyController extends Controller
*/
public function destroy($id)
{
$attributeFamily = $this->attributeFamily->find($id);
if($this->attributeFamily->count() == 1) {
session()->flash('error', 'At least one family is required.');
} else if ($attributeFamily->products()->count()) {
session()->flash('error', 'Attribute family is used in products.');
} else {
$this->attributeFamily->delete($id);

View File

@ -4,6 +4,7 @@ namespace Webkul\Attribute\Models;
use Illuminate\Database\Eloquent\Model;
use Webkul\Attribute\Models\AttributeGroup;
use Webkul\Product\Models\Product;
class AttributeFamily extends Model
{
@ -46,4 +47,12 @@ class AttributeFamily extends Model
{
return $this->custom_attributes()->where('attributes.is_configurable', 1)->where('attributes.type', 'select')->get();
}
/**
* Get all of the products.
*/
public function products()
{
return $this->hasMany(Product::class);
}
}

View File

@ -2,12 +2,12 @@
namespace Webkul\Category\Repositories;
use Webkul\Core\Eloquent\Repository;
use Webkul\Category\Models\Category;
use Webkul\Core\Eloquent\Repository;
use Illuminate\Support\Facades\Storage;
use Illuminate\Container\Container as App;
use Webkul\Category\Models\CategoryTranslation;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Storage;
/**
* Category Reposotory
@ -32,7 +32,7 @@ class CategoryRepository extends Repository
*
* @return mixed
*/
function model()
public function model()
{
return 'Webkul\Category\Models\Category';
}
@ -43,12 +43,12 @@ class CategoryRepository extends Repository
*/
public function create(array $data)
{
if(isset($data['locale']) && $data['locale'] == 'all') {
if (isset($data['locale']) && $data['locale'] == 'all') {
$model = app()->make($this->model());
foreach(core()->getAllLocales() as $locale) {
foreach (core()->getAllLocales() as $locale) {
foreach ($model->translatedAttributes as $attribute) {
if(isset($data[$attribute])) {
if (isset($data[$attribute])) {
$data[$locale->code][$attribute] = $data[$attribute];
}
}
@ -84,8 +84,8 @@ class CategoryRepository extends Repository
public function getVisibleCategoryTree($id = null)
{
return $id
? Category::orderBy('position', 'ASC')->where('id', '!=', $id)->where('status', '=', '1')->get()->toTree()
: Category::orderBy('position', 'ASC')->where('status', '=', '1')->get()->toTree();
? Category::orderBy('position', 'ASC')->where('id', '!=', $id)->where('status', 1)->get()->toTree()
: Category::orderBy('position', 'ASC')->where('status', 1)->get()->toTree();
}
/**
@ -97,7 +97,13 @@ class CategoryRepository extends Repository
*/
public function isSlugUnique($id, $slug)
{
return CategoryTranslation::where('category_id', '!=', $id)->where('slug', '=', $slug)->first() ? false : true;
$exists = CategoryTranslation::where('category_id', '<>', $id)
->where('slug', $slug)
->limit(1)
->select(\DB::raw(1))
->exists();
return $exists ? false : true;
}
/**
@ -110,8 +116,9 @@ class CategoryRepository extends Repository
{
$category = $this->model->whereTranslation('slug', $slug)->first();
if($category)
if ($category) {
return $category;
}
throw (new ModelNotFoundException)->setModel(
get_class($this->model), $slug
@ -140,24 +147,26 @@ class CategoryRepository extends Repository
* @param mixed $category
* @return void
*/
public function uploadImages($data, $category,$type = "image")
public function uploadImages($data, $category, $type = "image")
{
if(isset($data[$type])) {
if (isset($data[$type])) {
$request = request();
foreach ($data[$type] as $imageId => $image) {
$file = $type . '.' . $imageId;
$dir = 'category/' . $category->id;
if(request()->hasFile($file)) {
if($category->{$type}) {
if ($request->hasFile($file)) {
if ($category->{$type}) {
Storage::delete($category->{$type});
}
$category->{$type} = request()->file($file)->store($dir);
$category->{$type} = $request->file($file)->store($dir);
$category->save();
}
}
} else {
if($category->{$type}) {
if ($category->{$type}) {
Storage::delete($category->{$type});
}

View File

@ -389,7 +389,10 @@ class Cart {
if($cart->items()->get()->count() == 0) {
$this->cart->delete($cart->id);
$this->deActivateCart();
// $this->deActivateCart();
if(session()->has('cart')) {
session()->forget('cart');
}
}
session()->flash('success', trans('shop::app.checkout.cart.item.success-remove'));
@ -819,7 +822,7 @@ class Cart {
$haveTaxRate = true;
}
} else {
if($shippingAddress->postcode >= $rate->zip_code && $shippingAddress->postcode <= $rate->zip_code) {
if($shippingAddress->postcode >= $rate->zip_from && $shippingAddress->postcode <= $rate->zip_to) {
$haveTaxRate = true;
}
}

View File

@ -72,7 +72,7 @@ class CurrencyController extends Controller
public function store(Request $request)
{
$this->validate(request(), [
'code' => 'required|unique:countries,code',
'code' => 'required|unique:currencies,code',
'name' => 'required'
]);

View File

@ -0,0 +1,9 @@
<?php
namespace Webkul\Core\Models;
use Illuminate\Database\Eloquent\Model;
class CoreConfig extends Model
{
}

View File

@ -0,0 +1,24 @@
<?php
namespace Webkul\Core\Repositories;
use Webkul\Core\Eloquent\Repository;
/**
* Core Config Reposotory
*
* @author Jitendra Singh <jitendra@webkul.com>
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
*/
class CoreConfigRepository extends Repository
{
/**
* Specify Model class name
*
* @return mixed
*/
function model()
{
return 'Webkul\Core\Models\CoreConfig';
}
}

View File

@ -163,7 +163,7 @@ class ProductRepository extends Repository
$attributes = $product->attribute_family->custom_attributes;
foreach ($attributes as $attribute) {
if(!isset($data[$attribute->code]) || ($attribute->type == 'boolean' && !$data[$attribute->code]) || in_array($attribute->type, ['date', 'datetime']) && !$data[$attribute->code])
if(!isset($data[$attribute->code]) || (in_array($attribute->type, ['date', 'datetime']) && !$data[$attribute->code]))
continue;
$attributeValue = $this->attributeValue->findOneWhere([

View File

@ -93,6 +93,7 @@ class InvoiceRepository extends Repository
$invoice = $this->model->create([
'order_id' => $order->id,
'total_qty' => $totalQty,
'status' => 'paid',
'base_currency_code' => $order->base_currency_code,
'channel_currency_code' => $order->channel_currency_code,
'order_currency_code' => $order->order_currency_code,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/shop.js": "/js/shop.js?id=a656d2dc590579ec4167",
"/css/shop.css": "/css/shop.css?id=a0078d68c2d037d0adcd"
"/js/shop.js": "/js/shop.js?id=31a19d51860e4d8549a1",
"/css/shop.css": "/css/shop.css?id=8ebbcbb5472191aa17e5"
}

View File

@ -45,7 +45,8 @@ class CategoryComposer
$categories = [];
foreach ($this->category->getVisibleCategoryTree() as $category) {
array_push($categories, collect($category));
if($category->slug)
array_push($categories, $category);
}
$view->with('categories', $categories);

View File

@ -1,3 +1,4 @@
require("./bootstrap");
window.jQuery = window.$ = $ = require("jquery");
window.Vue = require("vue");
window.VeeValidate = require("vee-validate");

View File

@ -0,0 +1,56 @@
window._ = require('lodash');
window.Popper = require('popper.js').default;
/**
* We'll load jQuery and the Bootstrap jQuery plugin which provides support
* for JavaScript based Bootstrap features such as modals and tabs. This
* code may be modified to fit the specific needs of your application.
*/
try {
window.$ = window.jQuery = require('jquery');
require('bootstrap');
} catch (e) {}
/**
* We'll load the axios HTTP library which allows us to easily issue requests
* to our Laravel back-end. This library automatically handles sending the
* CSRF token as a header based on the value of the "XSRF" token cookie.
*/
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
/**
* Next we will register the CSRF Token as a common header with Axios so that
* all outgoing HTTP requests automatically have it attached. This is just
* a simple convenience so we don't have to attach every token manually.
*/
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
/**
* Echo exposes an expressive API for subscribing to channels and listening
* for events that are broadcast by Laravel. Echo and event broadcasting
* allows your team to easily build robust real-time web applications.
*/
// import Echo from 'laravel-echo'
// window.Pusher = require('pusher-js');
// window.Echo = new Echo({
// broadcaster: 'pusher',
// key: process.env.MIX_PUSHER_APP_KEY,
// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
// encrypted: true
// });

View File

@ -1,6 +1,10 @@
<?php
return [
'common' => [
'error' => 'Something went wrong, please try again later.'
],
'home' => [
'page-title' => 'Bagisto - Home',
'featured-products' => 'Featured Products',

View File

@ -1,17 +1,20 @@
<div class="footer">
<div class="footer-content">
<div class="footer-list-container">
<div class="list-container">
<span class="list-heading">Categories</span>
<ul class="list-group">
@foreach($categories as $key => $category)
<li>
<a href="{{ route('shop.categories.index', $category['slug']) }}">{{ $category['name'] }}</a>
</li>
@endforeach
</ul>
</div>
@if(count($categories))
<div class="list-container">
<span class="list-heading">Categories</span>
<ul class="list-group">
@foreach($categories as $key => $category)
<li>
<a href="{{ route('shop.categories.index', $category->slug) }}">{{ $category->name }}</a>
</li>
@endforeach
</ul>
</div>
@endif
{!! DbView::make(core()->getCurrentChannel())->field('footer_content')->render() !!}

View File

@ -1,8 +1,8 @@
const { mix } = require("laravel-mix");
require("laravel-mix-merge-manifest");
// var publicPath = 'publishable/assets';
var publicPath = "../../../public/themes/default/assets";
var publicPath = 'publishable/assets';
// var publicPath = "../../../public/themes/default/assets";
mix.setPublicPath(publicPath).mergeManifest();
mix.disableNotifications();

View File

@ -25,13 +25,7 @@ class TaxCategoryRepository extends Repository
public function attachOrDetach($taxCategory, $data) {
$taxRates = $taxCategory->tax_rates;
if($taxRates->count() > 0) {
$taxCategory->tax_rates()->detach();
}
foreach($data as $key => $value) {
$this->model->findOrFail($taxCategory->id)->tax_rates()->attach($taxCategory->id, ['tax_category_id' => $taxCategory->id, 'tax_rate_id' => $value]);
}
$this->model->findOrFail($taxCategory->id)->tax_rates()->sync($data);
return true;
}