+ @if($results->isEmpty())
+
+
{{ __('shop::app.products.whoops') }}
+ {{ __('shop::app.search.no-results') }}
@else
-
-
{{ $results->count() }} {{ __('shop::app.search.found-results') }}
+ @if($results->count() == 1)
+
+ {{ $results->count() }} {{ __('shop::app.search.found-result') }}
+
+ @else
+
+ {{ $results->count() }} {{ __('shop::app.search.found-results') }}
+
+ @endif
+ {{-- @include ('shop::products.list.toolbar')
+
+ @inject ('toolbarHelper', 'Webkul\Product\Helpers\Toolbar') --}}
+
+ @foreach ($results as $product)
+ @include('shop::products.list.card', ['product' => $product])
+ @endforeach
+
+ @include('ui::datagrid.pagination')
@endif
- {{-- @include ('shop::products.list.toolbar')
-
- @inject ('toolbarHelper', 'Webkul\Product\Helpers\Toolbar') --}}
-
- @foreach ($results as $product)
- @include('shop::products.list.card', ['product' => $product])
- @endforeach
-
-
- @include('ui::datagrid.pagination')
- @endif
-
-
+
+ @endif
@endsection
diff --git a/packages/Webkul/Shop/webpack.mix.js b/packages/Webkul/Shop/webpack.mix.js
index acf0d5b90..cc2d629f2 100644
--- a/packages/Webkul/Shop/webpack.mix.js
+++ b/packages/Webkul/Shop/webpack.mix.js
@@ -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();
diff --git a/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php b/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php
index 8bb061042..a22db6fd3 100644
--- a/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php
+++ b/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php
@@ -4,6 +4,7 @@ namespace Webkul\Tax\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
+use Illuminate\Support\Facades\Event;
use Webkul\Channel as Channel;
use Webkul\Tax\Repositories\TaxCategoryRepository as TaxCategory;
use Webkul\Tax\Repositories\TaxRateRepository as TaxRate;
@@ -99,28 +100,26 @@ class TaxCategoryController extends Controller
'taxrates' => 'array|required'
]);
- if($taxCategory = $this->taxCategory->create(request()->input())) {
- $allTaxCategories = $data['taxrates'];
+ Event::fire('tax.tax_category.create.before');
- //attach the categories in the tax map table
- $this->taxCategory->attachOrDetach($taxCategory, $allTaxCategories);
+ $taxCategory = $this->taxCategory->create($data);
- session()->flash('success', trans('admin::app.settings.tax-categories.create-success'));
+ //attach the categories in the tax map table
+ $this->taxCategory->attachOrDetach($taxCategory, $data['taxrates']);
- return redirect()->route($this->_config['redirect']);
- } else {
- session()->flash('error', trans('admin::app.settings.tax-categories.create-error'));
- }
+ Event::fire('tax.tax_category.create.after', $taxCategory);
- return view($this->_config['view']);
+ session()->flash('success', trans('admin::app.settings.tax-categories.create-success'));
+
+ return redirect()->route($this->_config['redirect']);
}
/**
* To show the edit form form the tax category
*
+ * @param int $id
* @return view
*/
-
public function edit($id)
{
$taxCategory = $this->taxCategory->findOrFail($id);
@@ -131,10 +130,11 @@ class TaxCategoryController extends Controller
/**
* To update the tax category
*
- * @return view
+ * @param int $id
+ * @return Response
*/
-
- public function update($id) {
+ public function update($id)
+ {
$this->validate(request(), [
'channel_id' => 'required|numeric',
'code' => 'required|string|unique:tax_categories,code,'.$id,
@@ -144,14 +144,19 @@ class TaxCategoryController extends Controller
]);
$data = request()->input();
-
+
+ Event::fire('tax.tax_category.update.before', $id);
+
$taxCategory = $this->taxCategory->update($data, $id);
+ Event::fire('tax.tax_category.update.after', $taxCategory);
+
if(!$taxCategory) {
session()->flash('error', trans('admin::app.settings.tax-categories.update-error'));
+
return redirect()->back();
}
-
+
$taxRates = $data['taxrates'];
//attach the categories in the tax map table
@@ -170,12 +175,14 @@ class TaxCategoryController extends Controller
*/
public function destroy($id)
{
- if($this->taxCategory->count() == 1) {
- session()->flash('error', trans('admin::app.settings.tax-categories.atleast-one'));
- } else {
+ try {
+ Event::fire('tax.tax_category.delete.before', $id);
+
$this->taxCategory->delete($id);
- session()->flash('success', trans('admin::app.settings.tax-categories.delete'));
+ Event::fire('tax.tax_category.delete.after', $id);
+ } catch(Exception $e) {
+ return redirect()->back();
}
return redirect()->back();
diff --git a/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php b/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php
index 5ee2771fe..c060fb070 100644
--- a/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php
+++ b/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php
@@ -4,6 +4,7 @@ namespace Webkul\Tax\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
+use Illuminate\Support\Facades\Event;
use Webkul\Tax\Repositories\TaxRateRepository as TaxRate;
@@ -91,17 +92,15 @@ class TaxRateController extends Controller
unset($data['zip_code']);
}
- if($this->taxRate->create($data)) {
- session()->flash('success', trans('admin::app.settings.tax-rates.create-success'));
+ Event::fire('tax.tax_rate.create.before');
- return redirect()->route($this->_config['redirect']);
- } else {
- session()->flash('error', trans('admin::app.settings.tax-rates.create-error'));
+ $taxRate = $this->taxRate->create($data);
- return redirect()->back();
- }
+ Event::fire('tax.tax_rate.create.after', $taxRate);
- return redirect()->back();
+ session()->flash('success', trans('admin::app.settings.tax-rates.create-success'));
+
+ return redirect()->route($this->_config['redirect']);
}
/**
@@ -136,17 +135,15 @@ class TaxRateController extends Controller
'tax_rate' => 'required|numeric'
]);
- if($this->taxRate->update(request()->input(), $id)) {
- session()->flash('success', trans('admin::app.settings.tax-rates.update-success'));
+ Event::fire('tax.tax_rate.update.before', $id);
- return redirect()->route($this->_config['redirect']);
- } else {
- session()->flash('error', trans('admin::app.settings.tax-rates.update-error'));
+ $taxRate = $this->taxRate->update(request()->input(), $id);
- return redirect()->back();
- }
+ Event::fire('tax.tax_rate.update.after', $taxRate);
- return redirect()->back();
+ session()->flash('success', trans('admin::app.settings.tax-rates.update-success'));
+
+ return redirect()->route($this->_config['redirect']);
}
/**
@@ -157,13 +154,18 @@ class TaxRateController extends Controller
*/
public function destroy($id)
{
- if($this->taxRate->count() == 1) {
- session()->flash('error', trans('admin::app.settings.tax-rates.atleast-one'));
- } else {
- $this->taxRate->delete($id);
+ // if($this->taxRate->count() == 1) {
+ // session()->flash('error', trans('admin::app.settings.tax-rates.atleast-one'));
+ // } else {
- session()->flash('success', trans('admin::app.settings.tax-rates.delete'));
- }
+
+ // session()->flash('success', trans('admin::app.settings.tax-rates.delete'));
+ // }
+ Event::fire('tax.tax_rate.delete.before', $id);
+
+ $this->taxRate->delete($id);
+
+ Event::fire('tax.tax_rate.delete.after', $id);
return redirect()->back();
}
diff --git a/packages/Webkul/Ui/publishable/assets/js/ui.js b/packages/Webkul/Ui/publishable/assets/js/ui.js
index 07f361aed..d522d3ea5 100644
--- a/packages/Webkul/Ui/publishable/assets/js/ui.js
+++ b/packages/Webkul/Ui/publishable/assets/js/ui.js
@@ -1 +1 @@
-!function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=0)}({"+wdr":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={data:function(){return{sample:"",image_file:"",file:null,newImage:""}},mounted:function(){this.sample="";var e=this.$el.getElementsByTagName("input")[0],t=this;e.onchange=function(){var n=new FileReader;n.readAsDataURL(e.files[0]),n.onload=function(e){this.img=document.getElementsByTagName("input")[0],this.img.src=e.target.result,t.newImage=this.img.src,t.changePreview()}}},methods:{removePreviewImage:function(){this.sample=""},changePreview:function(){this.sample=this.newImage}},computed:{getInputImage:function(){console.log(this.imageData)}}}},0:function(e,t,n){n("J66Q"),n("Oy72"),e.exports=n("MT9B")},"13ON":function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{staticClass:"tabs"},[n("ul",e._l(e.tabs,function(t){return n("li",{class:{active:t.isActive},on:{click:function(n){e.selectTab(t)}}},[n("a",[e._v(e._s(t.name))])])}))]),e._v(" "),n("div",{staticClass:"tabs-content"},[e._t("default")],2)])},staticRenderFns:[]}},"2JMG":function(e,t,n){var i=n("VU/8")(n("G3lE"),null,!1,null,null,null);e.exports=i.exports},"31/P":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default={name:"tree-view",inheritAttrs:!1,props:{inputType:String,nameField:String,idField:String,captionField:String,childrenField:String,valueField:String,items:{type:[Array,String,Object],required:!1,default:null},value:{type:Array,required:!1,default:null},behavior:{type:String,required:!1,default:"reactive"},savedValues:{type:Array,required:!1,default:null}},created:function(){-1!==this.savedValues.indexOf(this.items[this.valueField])&&this.value.push(this.items)},computed:{caption:function(){return this.items[this.captionField]},allChildren:function(){var e=this,t=[];return function n(a){if(a[e.childrenField]&&e.getLength(a[e.childrenField])>0)if("object"==i(a[e.childrenField]))for(var r in a[e.childrenField])n(a[e.childrenField][r]);else a[e.childrenField].forEach(function(e){return n(e)});else t.push(a)}(this.items),t},hasChildren:function(){return!!this.items[this.childrenField]&&this.getLength(this.items[this.childrenField])>0},hasSelection:function(){return!!this.value&&this.value.length>0},isAllChildrenSelected:function(){var e=this;return this.hasChildren&&this.hasSelection&&this.allChildren.every(function(t){return e.value.some(function(n){return n[e.idField]===t[e.idField]})})},isSomeChildrenSelected:function(){var e=this;return this.hasChildren&&this.hasSelection&&this.allChildren.some(function(t){return e.value.some(function(n){return n[e.idField]===t[e.idField]})})}},methods:{getLength:function(e){if("object"==(void 0===e?"undefined":i(e))){var t=0;for(var n in e)t++;return t}return e.length},generateRoot:function(){var e=this;return"checkbox"==this.inputType?"reactive"==this.behavior?this.$createElement("tree-checkbox",{props:{id:this.items[this.idField],label:this.caption,nameField:this.nameField,modelValue:this.items[this.valueField],inputValue:this.hasChildren?this.isSomeChildrenSelected:this.value,value:this.hasChildren?this.isAllChildrenSelected:this.items},on:{change:function(t){e.hasChildren?(e.isAllChildrenSelected?e.allChildren.forEach(function(t){var n=e.value.indexOf(t);e.value.splice(n,1)}):e.allChildren.forEach(function(t){var n=!1;e.value.forEach(function(e){e.key==t.key&&(n=!0)}),n||e.value.push(t)}),e.$emit("input",e.value)):e.$emit("input",t)}}}):this.$createElement("tree-checkbox",{props:{id:this.items[this.idField],label:this.caption,nameField:this.nameField,modelValue:this.items[this.valueField],inputValue:this.value,value:this.items}}):"radio"==this.inputType?this.$createElement("tree-radio",{props:{id:this.items[this.idField],label:this.caption,nameField:this.nameField,modelValue:this.items[this.valueField],value:this.savedValues}}):void 0},generateChild:function(e){var t=this;return this.$createElement("tree-item",{on:{input:function(e){t.$emit("input",e)}},props:{items:e,value:this.value,savedValues:this.savedValues,nameField:this.nameField,inputType:this.inputType,captionField:this.captionField,childrenField:this.childrenField,valueField:this.valueField,idField:this.idField,behavior:this.behavior}})},generateChildren:function(){var e=this,t=[];if(this.items[this.childrenField])if("object"==i(this.items[this.childrenField]))for(var n in this.items[this.childrenField])t.push(this.generateChild(this.items[this.childrenField][n]));else this.items[this.childrenField].forEach(function(n){t.push(e.generateChild(n))});return t},generateIcon:function(){var e=this;return this.$createElement("i",{class:["expand-icon"],on:{click:function(t){e.$el.classList.toggle("active")}}})},generateFolderIcon:function(){return this.$createElement("i",{class:["icon","folder-icon"]})}},render:function(e){return e("div",{class:["tree-item","active",this.hasChildren?"has-children":""]},[this.generateIcon(),this.generateFolderIcon(),this.generateRoot()].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t