diff --git a/config/imagecache.php b/config/imagecache.php index b93d2e94a..af29594b0 100755 --- a/config/imagecache.php +++ b/config/imagecache.php @@ -66,6 +66,6 @@ return array( | */ - 'lifetime' => 43200, + 'lifetime' => 525600, ); \ No newline at end of file diff --git a/packages/Webkul/API/Http/Controllers/Shop/InvoiceController.php b/packages/Webkul/API/Http/Controllers/Shop/InvoiceController.php new file mode 100644 index 000000000..d20a9fffb --- /dev/null +++ b/packages/Webkul/API/Http/Controllers/Shop/InvoiceController.php @@ -0,0 +1,104 @@ +guard = request()->has('token') ? 'api' : 'customer'; + + $this->_config = request('_config'); + + if (isset($this->_config['authorization_required']) && $this->_config['authorization_required']) { + + auth()->setDefaultDriver($this->guard); + + $this->middleware('auth:' . $this->guard); + } + + $this->repository = app($this->_config['repository']); + } + + /** + * Returns a listing of the invoices. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + $query = $this->repository->scopeQuery(function($query) { + $query = $query->leftJoin('orders', 'invoices.order_id', '=', 'orders.id')->select('invoices.*', 'orders.customer_id'); + + if (isset($this->_config['authorization_required']) && $this->_config['authorization_required']) { + $query = $query->where('customer_id', auth()->user()->id); + } + + foreach (request()->except(['page', 'limit', 'pagination', 'sort', 'order', 'token']) as $input => $value) { + $query = $query->whereIn($input, array_map('trim', explode(',', $value))); + } + + if ($sort = request()->input('sort')) { + $query = $query->orderBy($sort, request()->input('order') ?? 'desc'); + } else { + $query = $query->orderBy('id', 'desc'); + } + + return $query; + }); + + if (is_null(request()->input('pagination')) || request()->input('pagination')) { + $results = $query->paginate(request()->input('limit') ?? 10); + } else { + $results = $query->get(); + } + + return $this->_config['resource']::collection($results); + } + + /** + * Returns an individual invoice. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function get($id) + { + if (isset($this->_config['authorization_required']) && $this->_config['authorization_required']) { + $query = $this->repository->leftJoin('orders', 'invoices.order_id', '=', 'orders.id') + ->select('invoices.*', 'orders.customer_id') + ->where('customer_id', auth()->user()->id) + ->findOrFail($id); + } else { + $query = $this->repository->findOrFail($id); + } + + return new $this->_config['resource']($query); + } +} diff --git a/packages/Webkul/API/Http/routes.php b/packages/Webkul/API/Http/routes.php index 448d6412f..a05a3d437 100755 --- a/packages/Webkul/API/Http/routes.php +++ b/packages/Webkul/API/Http/routes.php @@ -202,13 +202,13 @@ Route::group(['prefix' => 'api'], function ($router) { //Invoice routes - Route::get('invoices', 'ResourceController@index')->defaults('_config', [ + Route::get('invoices', 'InvoiceController@index')->defaults('_config', [ 'repository' => 'Webkul\Sales\Repositories\InvoiceRepository', 'resource' => 'Webkul\API\Http\Resources\Sales\Invoice', 'authorization_required' => true ]); - Route::get('invoices/{id}', 'ResourceController@get')->defaults('_config', [ + Route::get('invoices/{id}', 'InvoiceController@get')->defaults('_config', [ 'repository' => 'Webkul\Sales\Repositories\InvoiceRepository', 'resource' => 'Webkul\API\Http\Resources\Sales\Invoice', 'authorization_required' => true diff --git a/packages/Webkul/Admin/src/Config/system.php b/packages/Webkul/Admin/src/Config/system.php index c2e522e97..2ad1d0c05 100644 --- a/packages/Webkul/Admin/src/Config/system.php +++ b/packages/Webkul/Admin/src/Config/system.php @@ -121,13 +121,13 @@ return [ 'title' => 'admin::app.admin.system.logo-image', 'type' => 'image', 'channel_based' => true, - 'validation' => 'mimes:jpeg,bmp,png,jpg', + 'validation' => 'mimes:bmp,jpeg,jpg,png,webp', ], [ 'name' => 'favicon', 'title' => 'admin::app.admin.system.favicon', 'type' => 'image', 'channel_based' => true, - 'validation' => 'mimes:jpeg,bmp,png,jpg', + 'validation' => 'mimes:bmp,jpeg,jpg,png,webp', ], ], ], [ diff --git a/packages/Webkul/Admin/src/Http/Requests/ConfigurationForm.php b/packages/Webkul/Admin/src/Http/Requests/ConfigurationForm.php index 03a23e3dd..424a72379 100644 --- a/packages/Webkul/Admin/src/Http/Requests/ConfigurationForm.php +++ b/packages/Webkul/Admin/src/Http/Requests/ConfigurationForm.php @@ -58,7 +58,7 @@ class ConfigurationForm extends FormRequest && ! request()->input('general.design.admin_logo.logo_image.delete') ) { $this->rules = array_merge($this->rules, [ - 'general.design.admin_logo.logo_image' => 'required|mimes:jpeg,bmp,png,jpg|max:5000', + 'general.design.admin_logo.logo_image' => 'required|mimes:bmp,jpeg,jpg,png,webp|max:5000', ]); } @@ -66,7 +66,7 @@ class ConfigurationForm extends FormRequest && ! request()->input('general.design.admin_logo.favicon.delete') ) { $this->rules = array_merge($this->rules, [ - 'general.design.admin_logo.favicon' => 'required|mimes:jpeg,bmp,png,jpg|max:5000', + 'general.design.admin_logo.favicon' => 'required|mimes:bmp,jpeg,jpg,png,webp|max:5000', ]); } @@ -74,7 +74,7 @@ class ConfigurationForm extends FormRequest && ! request()->input('sales.orderSettings.invoice_slip_design.logo.delete') ) { $this->rules = array_merge($this->rules, [ - 'sales.orderSettings.invoice_slip_design.logo' => 'required|mimes:jpeg,bmp,png,jpg|max:5000', + 'sales.orderSettings.invoice_slip_design.logo' => 'required|mimes:bmp,jpeg,jpg,png,webp|max:5000', ]); } @@ -89,7 +89,7 @@ class ConfigurationForm extends FormRequest public function messages() { return [ - 'general.design.admin_logo.logo_image.mimes' => 'Invalid file format. Use only jpeg, bmp, png, jpg.', + 'general.design.admin_logo.logo_image.mimes' => 'Invalid file format. Use only bmp, jpeg, jpg, png and webp.', 'catalog.products.storefront.products_per_page.comma_seperated_integer' => 'The "Product Per Page" field must be numeric and may contain comma.' ]; } diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php index 8296548a3..82850d4d7 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php @@ -96,9 +96,9 @@ array_push($validations, 'size:' . $retVal); } - if ($attribute->type == 'image') { + if ($attribute->type == 'image') { $retVal = (core()->getConfigData('catalog.products.attribute.image_attribute_upload_size')) ? core()->getConfigData('catalog.products.attribute.image_attribute_upload_size') : '2048' ; - array_push($validations, 'size:' . $retVal . '|mimes:jpeg, bmp, png, jpg'); + array_push($validations, 'size:' . $retVal . '|mimes:bmp,jpeg,jpg,png,webp'); } array_push($validations, $attribute->validation); diff --git a/packages/Webkul/Admin/src/Resources/views/layouts/anonymous-master.blade.php b/packages/Webkul/Admin/src/Resources/views/layouts/anonymous-master.blade.php index badfff4d2..411484cc2 100755 --- a/packages/Webkul/Admin/src/Resources/views/layouts/anonymous-master.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/layouts/anonymous-master.blade.php @@ -12,7 +12,7 @@ @else @endif - + @@ -81,8 +81,8 @@