From 7a7cacf515eb4735f7035ff1876296e5ab21ad12 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Thu, 2 Aug 2018 20:28:12 +0530 Subject: [PATCH 01/15] fixes and style changes --- .gitignore | 1 + .../Http/Controllers/DataGridController.php | 113 ++++++------------ .../Shop/src/Resources/assets/js/app.js | 50 ++------ .../assets/js/components/category-nav.vue | 3 +- .../Shop/src/Resources/assets/sass/app.scss | 8 +- .../views/store/header/index.blade.php | 44 ++++++- packages/Webkul/Ui/src/DataGrid/DataGrid.php | 57 ++++----- .../Webkul/Ui/src/DataGrid/Helpers/Column.php | 12 +- .../Ui/src/Resources/assets/sass/app.scss | 10 +- 9 files changed, 121 insertions(+), 177 deletions(-) diff --git a/.gitignore b/.gitignore index a8b6a79d2..b8f14e562 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ Homestead.yaml npm-debug.log yarn-error.log .env +/ignorables/* \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Http/Controllers/DataGridController.php b/packages/Webkul/Admin/src/Http/Controllers/DataGridController.php index be8676840..ef0a5c080 100644 --- a/packages/Webkul/Admin/src/Http/Controllers/DataGridController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/DataGridController.php @@ -22,120 +22,72 @@ class DataGridController extends Controller */ public function index() { - // $select_verbs = [ - // 0 => "aggregate", - // 1 => "columns", - // 2 => "from", - // 3 => "joins", - // 4 => "wheres", - // 5 => "groups", - // 6 => "havings", - // 7 => "orders", - // 8 => "limit", - // 9 => "offset", - // 10 => "lock" - // ]; - // $bindings = [ - // "select" => [], - // "from" => [], - // "join" => [], - // "where" => [], - // "having" => [], - // "order" => [], - // "union" => [], - // ]; - // $operators = [ - // 'eq' => "=", - // 'lt' => "<", - // 'gt' => ">", - // 'lte' => "<=", - // 'gte' => ">=", - // 'neqs' => "<>", - // 'neqn' => "!=", - // 'ceq' => "<=>", - // 'like' => "like", - // 'likebin' => "like binary", - // 'ntlike' => "not like", - // 'ilike' => "ilike", - // 'regex' => "regexp", - // 'notregex' => "not regexp", - // 'simto' => "similar to", - // 'nsimto' => "not similar to", - // 'nilike' => "not ilike", - // ]; DataGrid::make([ - 'name' => 'authors', - 'table' => 'authors as a', - 'select' => 'a.id', + 'name' => 'Admin Datagrid', + 'table' => 'admins as u', + 'select' => 'u.id', 'aliased' => true , //boolean to validate aliasing on the basis of this. 'filterable' => [ [ - 'column' => 'a.id', + 'column' => 'u.id', 'type' => 'integer', 'label' => 'Admin ID' ], [ - 'column' => 'a.email', + 'column' => 'u.email', 'type' => 'string', 'label' => 'Admin E-Mail', ], [ - 'column' => 'a.first_name', + 'column' => 'u.name', 'type' => 'string', 'label' => 'Admin Name', ] ], 'searchables' =>[ [ - 'name' => 'a.id', + 'name' => 'u.id', 'label' => 'ID', 'label' => 'Admin ID', ], [ - 'name' => 'a.name', + 'name' => 'u.name', 'label' => 'Name', 'label' => 'Admin Name', ] ], 'join' => [ - // [ - // 'join' => 'leftjoin', - // 'table' => 'posts as p', - // 'primaryKey' => 'a.id', - // 'condition' => '=', - // 'secondaryKey' => 'p.author_id', - // ] + [ + 'join' => 'leftjoin', + 'table' => 'roles as r', + 'primaryKey' => 'u.role_id', + 'condition' => '=', + 'secondaryKey' => 'r.id', + ] ], 'columns' => [ [ - 'name' => 'a.id', + 'name' => 'u.id', 'type' => 'string', 'label' => 'Admin ID', 'sortable' => true, 'filterable' => true ], [ - 'name' => 'a.email', + 'name' => 'u.email', 'type' => 'string', 'label' => 'Admin E-Mail', 'sortable' => true, 'filterable' => true ], - // [ - // 'name' => 'p.content as pp', - // 'type' => 'string', - // 'label' => 'Content', - // 'sortable' => true, - // 'filterable' => false, - // ], [ - 'name' => 'a.first_name', + 'name' => 'u.name', 'type' => 'string', 'label' => 'Admin Name', 'sortable' => true, 'filterable' => true, // will create on run time query // 'filter' => [ - // 'function' => 'where', // orwhere - // 'condition' => ['name', '=', 'Admin'] // multiarray + // 'function' => 'orwhere', // orwhere + // 'condition' => ['name', 'like', 'u'] // multiarray // ], 'attributes' => [ 'class' => 'class-a class-b', @@ -143,10 +95,23 @@ class DataGridController extends Controller 'onclick' => "window.alert('alert from datagrid column')" ], 'wrapper' => function ($value, $object) { - return '' . $object->first_name . ''; + return '' . $object->name . ''; }, ], - + [ + 'name' => 'r.name as x', + 'type' => 'string', + 'label' => 'Admin\'s Role', + 'sortable' => true, + 'filterable' => true, + ], + [ + 'name' => 'r.id as xx', + 'type' => 'integer', + 'label' => 'Role ID', + 'sortable' => false, + 'filterable' => false + ], ], 'operators' => [ @@ -174,13 +139,6 @@ class DataGridController extends Controller ]); $result = DataGrid::render(); return $result; - // $prepareMassAction = DataGrid::massAction(); - // if ($prepareMassAction) { - // $result = DataGrid::render(); - // return $result; - // } else { - // throw new \Exception('Mass Actions Attributes Have Some Unknown Problems'); - // } } //for performing mass actions @@ -213,7 +171,6 @@ class DataGridController extends Controller ] ]; $result = DataGrid::makeMassAction($make); - // return $result; } public function massDelete(Request $r) diff --git a/packages/Webkul/Shop/src/Resources/assets/js/app.js b/packages/Webkul/Shop/src/Resources/assets/js/app.js index 84547dd7b..8b1427874 100644 --- a/packages/Webkul/Shop/src/Resources/assets/js/app.js +++ b/packages/Webkul/Shop/src/Resources/assets/js/app.js @@ -10,54 +10,18 @@ Vue.component("category-nav", require("./components/category-nav.vue")); Vue.component("category-item", require("./components/category-item.vue")); Vue.component("image-slider", require("./components/imageSlider.vue")); -$(window).resize(function() { - var w = $(document).width(); - var window = {}; - window.width = $(document).width(); - window.height = $(document).height(); - if (window.width < 785) { - $(".header").css("margin-bottom", "0"); - $(".header-top").css("margin-bottom", "0"); - $("ul.search-container").css("display", "none"); - $(".header-bottom").css("display", "none"); - $("div.right-content").css("display", "none"); - $(".right-responsive").css("display", "inherit"); - } else if (window.width > 785) { - $(".header").css("margin-bottom", "21px"); - $(".header-top").css("margin-bottom", "16px"); - $("ul.search-container").css("display", "inherit"); - $(".header-bottom").css("display", "block"); - $("div.right-content").css("display", "inherit"); - $(".right-responsive").css("display", "none"); - } -}); - -$(document).ready(function() { - /* Responsiveness script goes here */ - var w = $(document).width(); - var window = {}; - window.width = $(document).width(); - window.height = $(document).height(); - if (window.width < 785) { - $(".header").css("margin-bottom", "0"); - $(".header-top").css("margin-bottom", "0"); - $("ul.search-container").css("display", "none"); - $(".header-bottom").css("display", "none"); - $("div.right-content").css("display", "none"); - $(".right-responsive").css("display", "inherit"); - } - /* Responsiveness script ends here */ +$(document).ready(function () { const app = new Vue({ el: "#app", - mounted: function() { + mounted: function () { this.addServerErrors(); this.addFlashMessages(); }, methods: { - onSubmit: function(e) { + onSubmit: function (e) { this.$validator.validateAll().then(result => { if (result) { e.target.submit(); @@ -65,7 +29,7 @@ $(document).ready(function() { }); }, - addServerErrors: function() { + addServerErrors: function () { var scope = null; for (var key in serverErrors) { const field = this.$validator.fields.find({ @@ -83,14 +47,14 @@ $(document).ready(function() { } }, - addFlashMessages: function() { + addFlashMessages: function () { const flashes = this.$refs.flashes; - flashMessages.forEach(function(flash) { + flashMessages.forEach(function (flash) { flashes.addFlash(flash); }, this); }, - responsiveHeader: function() {} + responsiveHeader: function () { } } }); }); diff --git a/packages/Webkul/Shop/src/Resources/assets/js/components/category-nav.vue b/packages/Webkul/Shop/src/Resources/assets/js/components/category-nav.vue index 6f6f22704..6bbcda3bd 100644 --- a/packages/Webkul/Shop/src/Resources/assets/js/components/category-nav.vue +++ b/packages/Webkul/Shop/src/Resources/assets/js/components/category-nav.vue @@ -8,7 +8,8 @@ :item="item">
  • - Offer Zone + + Offer Zone
  • diff --git a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss index 8e3f9a74c..103144b48 100644 --- a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss @@ -194,6 +194,7 @@ body { // color: $offer-color; // } // } + ul.nav { display: block; font-size:16px; @@ -240,8 +241,13 @@ body { } .nav > li:last-child { + display:flex; align-items:center; border-radius: 0 0 4px 0; - margin-right: 0; + float:right; + + img { + margin-right:6px; + } } .nav > li:last-child > a { diff --git a/packages/Webkul/Shop/src/Resources/views/store/header/index.blade.php b/packages/Webkul/Shop/src/Resources/views/store/header/index.blade.php index 367bc1af2..9e78eb5b1 100644 --- a/packages/Webkul/Shop/src/Resources/views/store/header/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/store/header/index.blade.php @@ -74,4 +74,46 @@
    @include('shop::store.header.nav-menu.navmenu')
    - \ No newline at end of file + +@section('javascript') + +@endsection \ No newline at end of file diff --git a/packages/Webkul/Ui/src/DataGrid/DataGrid.php b/packages/Webkul/Ui/src/DataGrid/DataGrid.php index c0296aa32..a468040ec 100644 --- a/packages/Webkul/Ui/src/DataGrid/DataGrid.php +++ b/packages/Webkul/Ui/src/DataGrid/DataGrid.php @@ -10,6 +10,7 @@ use Webkul\Ui\DataGrid\Helpers\Column; use Webkul\Ui\DataGrid\Helpers\Pagination; use Webkul\Ui\DataGrid\Helpers\Css; use Webkul\Ui\DataGrid\Helpers\MassAction; +use URL; class DataGrid { @@ -385,39 +386,6 @@ class DataGrid return $this; } - /** - * Parse the URL - * and get it ready - * to be used. - */ - - // private function parse() - // { - // //parse the url here - // if (isset($_SERVER['QUERY_STRING'])) { - // $qr = $_SERVER['QUERY_STRING']; - // parse_str($qr, $parsed); - // foreach ($parsed as $k=>$v) { - // parse_str($v, $parsed[$k]); - // } - // return $parsed; - // } else { - // return $parsed = []; - // } - // } - - private function parse() - { - $parsed = []; - $unparsed = $_SERVER['QUERY_STRING']; - if (isset($unparsed)) { - parse_str($unparsed, $parsed); - return $parsed; - } else { - return $parsed; - } - } - /** * Used for selecting * the columns got in @@ -436,6 +404,25 @@ class DataGrid } } + /** + * Parse the URL + * and get it ready + * to be used. + */ + + private function parse() + { + $parsed = []; + $unparsed = url()->full(); + if (count(explode('?', $unparsed))>1) { + $to_be_parsed = explode('?', $unparsed)[1]; + parse_str($to_be_parsed, $parsed); + return $parsed; + } else { + return $parsed; + } + } + /** * ->join('contacts', 'users.id', '=', 'contacts.user_id') * @return $this->query @@ -452,6 +439,7 @@ class DataGrid { foreach ($this->columns as $column) { if ($column->filter) { // if the filter bag in array exists then these will be applied. + dd($column); if (count($column->filter['condition']) == count($column->filter['condition'], COUNT_RECURSIVE)) { $this->query->{$column->filter['function']}(...$column->filter['condition']); } else { @@ -651,14 +639,13 @@ class DataGrid foreach ($this->join as $join) { $name = strtolower($join['join']); //Allow joins i.e left or right - if ($name=='leftjoin' || $name=='left join' || $name=='rightjoin' || $name=='right join') { + if ($name=='leftjoin' || $name=='rightjoin') { //check if the aliasing on the primary table and primaryKey in join is also the same $primary_key_alias = trim(explode('.', $join['primaryKey'])[0]); if ($primary_key_alias == $table_alias) { $join_table_alias = explode('as', $join['table']); - if (isset($join_table_alias)) { $alias1 = trim($join_table_alias[1]); //important!!!!! diff --git a/packages/Webkul/Ui/src/DataGrid/Helpers/Column.php b/packages/Webkul/Ui/src/DataGrid/Helpers/Column.php index 6bf15cbee..cad3cba73 100644 --- a/packages/Webkul/Ui/src/DataGrid/Helpers/Column.php +++ b/packages/Webkul/Ui/src/DataGrid/Helpers/Column.php @@ -13,17 +13,6 @@ class Column extends AbstractFillable private $readableName = false; private $value = false; private $sortHtml = '%s'; - // private $sortHtml = '%s'; - - // protected $name; - // protected $type; - // protected $label; - // protected $filterable; - // protected $sortable; - // protected $attributes; - // protected $wrapper; - // protected $callback; - /** * Without Array it will treat it like string @@ -53,6 +42,7 @@ class Column extends AbstractFillable 'type', 'label', 'sortable', + 'searchable', 'filterable', 'filter' => [ 'allowed' => 'array', diff --git a/packages/Webkul/Ui/src/Resources/assets/sass/app.scss b/packages/Webkul/Ui/src/Resources/assets/sass/app.scss index 31333f828..8ef12dc69 100644 --- a/packages/Webkul/Ui/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Ui/src/Resources/assets/sass/app.scss @@ -213,10 +213,9 @@ h2 { } tbody td { - padding: 12px 10px; + padding: 10px; border-bottom: solid 1px #d3d3d3; color: #3a3a3a; - vertical-align: top; &.actions { text-align: right; @@ -616,8 +615,6 @@ h2 { } .grid-container { - margin-top: 30px; - .filter-wrapper { display: block; box-sizing: border-box; @@ -932,9 +929,8 @@ h2 { } } - .label { - background: #E7E7E7; + background: #e7e7e7; border-radius: 2px; padding: 8px; color: #000311; @@ -955,4 +951,4 @@ h2 { &.label-xl { padding: 14px; } -} \ No newline at end of file +} From 7c5253aec2f66c19001dddd0dd5f9dd709f65d18 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Fri, 3 Aug 2018 20:20:13 +0530 Subject: [PATCH 02/15] Slider Configuration in works ready to save slider images in next commit --- composer.json | 1 + composer.lock | 187 +++++++++++++++++- config/app.php | 6 +- config/image.php | 20 ++ .../ViewComposers/DataGrids/UserComposer.php | 37 ++-- packages/Webkul/Admin/src/Http/routes.php | 9 + .../src/Providers/EventServiceProvider.php | 18 +- .../Admin/src/Resources/lang/en/app.php | 12 +- .../Resources/views/sliders/create.blade.php | 70 +++++++ ...2018_08_03_114203_create_sliders_table.php | 39 ++++ packages/Webkul/Core/src/Models/Slider.php | 17 ++ .../src/Repositories/SliderRepository.php | 24 +++ .../src/Http/Controllers/SliderController.php | 49 +++++ packages/Webkul/Ui/src/DataGrid/DataGrid.php | 12 +- .../Webkul/Ui/src/Resources/assets/js/app.js | 1 + .../assets/js/components/accordian.vue | 5 +- .../image/image-upload-multiple.vue | 0 .../components/image/image-upload-single.vue | 73 +++++++ 18 files changed, 549 insertions(+), 31 deletions(-) create mode 100644 config/image.php create mode 100644 packages/Webkul/Admin/src/Resources/views/sliders/create.blade.php create mode 100644 packages/Webkul/Core/src/Database/Migrations/2018_08_03_114203_create_sliders_table.php create mode 100644 packages/Webkul/Core/src/Models/Slider.php create mode 100644 packages/Webkul/Core/src/Repositories/SliderRepository.php create mode 100644 packages/Webkul/Shop/src/Http/Controllers/SliderController.php create mode 100644 packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-multiple.vue create mode 100644 packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-single.vue diff --git a/composer.json b/composer.json index 502e36421..79eefdf65 100644 --- a/composer.json +++ b/composer.json @@ -11,6 +11,7 @@ "php": "^7.1.3", "dimsav/laravel-translatable": "^9.0", "fideloper/proxy": "^4.0", + "intervention/image": "^2.4", "kalnoy/nestedset": "^4.3", "laravel/framework": "5.6.*", "laravel/tinker": "^1.0", diff --git a/composer.lock b/composer.lock index d907946d1..43a06425e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "daaa24e649dd4e9808feef8251e43247", + "content-hash": "8acd4eec85be1351459a67cfd14d039b", "packages": [ { "name": "commerceguys/intl", @@ -465,6 +465,141 @@ ], "time": "2018-02-07T20:20:57+00:00" }, + { + "name": "guzzlehttp/psr7", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2017-03-20T17:10:46+00:00" + }, + { + "name": "intervention/image", + "version": "2.4.2", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "e82d274f786e3d4b866a59b173f42e716f0783eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/e82d274f786e3d4b866a59b173f42e716f0783eb", + "reference": "e82d274f786e3d4b866a59b173f42e716f0783eb", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@olivervogel.com", + "homepage": "http://olivervogel.com/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "time": "2018-05-29T14:19:03+00:00" + }, { "name": "jakub-onderka/php-console-color", "version": "0.1", @@ -1371,6 +1506,56 @@ ], "time": "2017-02-14T16:28:37+00:00" }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2016-08-06T14:39:51+00:00" + }, { "name": "psr/log", "version": "1.0.2", diff --git a/config/app.php b/config/app.php index 41513b3e8..c0c8e6ef1 100644 --- a/config/app.php +++ b/config/app.php @@ -170,6 +170,9 @@ return [ App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, + //Laravel Intervention + Intervention\Image\ImageServiceProvider::class, + //Webkul packages Webkul\User\Providers\UserServiceProvider::class, Webkul\Admin\Providers\AdminServiceProvider::class, @@ -232,7 +235,8 @@ return [ 'URL' => Illuminate\Support\Facades\URL::class, 'Validator' => Illuminate\Support\Facades\Validator::class, 'View' => Illuminate\Support\Facades\View::class, - 'Datagrid' => Webkul\Ui\DataGrid\Facades\DataGrid::class + 'Datagrid' => Webkul\Ui\DataGrid\Facades\DataGrid::class, + 'Image' => Intervention\Image\Facades\Image::class ], ]; diff --git a/config/image.php b/config/image.php new file mode 100644 index 000000000..2b1d2c3e1 --- /dev/null +++ b/config/image.php @@ -0,0 +1,20 @@ + 'gd' + +]; diff --git a/packages/Webkul/Admin/src/Http/ViewComposers/DataGrids/UserComposer.php b/packages/Webkul/Admin/src/Http/ViewComposers/DataGrids/UserComposer.php index 028d9bd6f..9a7b147cb 100644 --- a/packages/Webkul/Admin/src/Http/ViewComposers/DataGrids/UserComposer.php +++ b/packages/Webkul/Admin/src/Http/ViewComposers/DataGrids/UserComposer.php @@ -44,6 +44,11 @@ class UserComposer 'column' => 'u.id', 'type' => 'number', 'label' => 'Admin ID' + ], + [ + 'column' => 'r.id', + 'type' => 'number', + 'label' => 'Role ID' ] ], 'searchable' => [ @@ -77,13 +82,13 @@ class UserComposer // ], ], 'join' => [ - // [ - // 'join' => 'leftjoin', - // 'table' => 'roles as r', - // 'primaryKey' => 'u.role_id', - // 'condition' => '=', - // 'secondaryKey' => 'r.id', - // ] + [ + 'join' => 'leftjoin', + 'table' => 'roles as r', + 'primaryKey' => 'u.role_id', + 'condition' => '=', + 'secondaryKey' => 'r.id', + ] ], 'columns' => [ [ @@ -104,12 +109,18 @@ class UserComposer 'label' => 'Admin E-Mail', 'sortable' => true, ], - // [ - // 'name' => 'r.name as rolename', - // 'type' => 'string', - // 'label' => 'Role Name', - // 'sortable' => true, - // ], + [ + 'name' => 'r.name', + 'type' => 'string', + 'label' => 'Role Name', + 'sortable' => true, + ], + [ + 'name' => 'r.id as ds', + 'type' => 'string', + 'label' => 'Role ID', + 'sortable' => true, + ], // [ // 'name' => 'a.first_name', // 'type' => 'string', diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index e0518507c..1a49e40b7 100644 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -299,6 +299,15 @@ Route::group(['middleware' => ['web']], function () { ])->name('admin.account.edit'); Route::put('/account', 'Webkul\User\Http\Controllers\AccountController@update')->name('admin.account.update'); + + // Admin Store Front Settings Route + Route::get('/slider/create','Webkul\Shop\Http\Controllers\SliderController@index')->defaults('_config',[ + 'view' => 'admin::sliders.create' + ])->name('admin.sliders.index'); + + Route::post('/slider/create','Webkul\Shop\Http\Controllers\SliderController@create')->defaults('_config',[ + 'redirect' => 'admin::sliders.create' + ])->name('admin.sliders.create'); }); }); }); diff --git a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php index eb09fd1ca..03095496a 100644 --- a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php +++ b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php @@ -33,13 +33,13 @@ class EventServiceProvider extends ServiceProvider */ public function createAdminMenu() { - Event::listen('admin.menu.create', function() { - return Menu::create(function($menu) { + Event::listen('admin.menu.create', function () { + return Menu::create(function ($menu) { Event::fire('admin.menu.build', $menu); }); }); - Event::listen('admin.menu.build', function($menu) { + Event::listen('admin.menu.build', function ($menu) { $menu->add('dashboard', 'Dashboard', 'admin.dashboard.index', 1, 'dashboard-icon'); $menu->add('catalog', 'Catalog', 'admin.catalog.products.index', 3, 'catalog-icon'); @@ -75,6 +75,8 @@ class EventServiceProvider extends ServiceProvider $menu->add('settings.users.users', 'Users', 'admin.users.index', 1, ''); $menu->add('settings.users.roles', 'Roles', 'admin.roles.index', 2, ''); + + $menu->add('settings.sliders', 'Create Sliders', 'admin.sliders.index', 8, ''); }); } @@ -85,7 +87,7 @@ class EventServiceProvider extends ServiceProvider */ public function buildACL() { - Event::listen('admin.acl.build', function($acl) { + Event::listen('admin.acl.build', function ($acl) { $acl->add('dashboard', 'Dashboard', 'admin.dashboard.index', 1); $acl->add('configuration', 'Configure', 'admin.account.edit', 5); @@ -107,7 +109,7 @@ class EventServiceProvider extends ServiceProvider */ public function registerACL() { - $this->app->singleton('acl', function() { + $this->app->singleton('acl', function () { return current(Event::fire('admin.acl.create')); }); @@ -121,13 +123,13 @@ class EventServiceProvider extends ServiceProvider */ public function createProductFormAccordian() { - Event::listen('admin.catalog.products.accordian.create', function() { - return ProductFormAccordian::create(function($accordian) { + Event::listen('admin.catalog.products.accordian.create', function () { + return ProductFormAccordian::create(function ($accordian) { Event::fire('admin.catalog.products.accordian.build', $accordian); }); }); - Event::listen('admin.catalog.products.accordian.build', function($accordian) { + Event::listen('admin.catalog.products.accordian.build', function ($accordian) { $accordian->add('categories', 'Categories', 'admin::catalog.products.accordians.categories', 1); }); } diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index b5f7f76ec..396c8e85f 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -235,6 +235,16 @@ return [ 'default-locale' => 'Default Locale', 'currencies' => 'Currencies', 'base-currency' => 'Base Currency' - ] + ], + + 'sliders' => [ + 'title' => 'Title', + 'add-title' => 'Create Slider', + 'save-btn-title' => 'Save Slider', + 'general' => 'General', + 'image' => 'Image', + 'content' => 'Content', + 'channels' => 'Channel' + ], ] ]; \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/views/sliders/create.blade.php b/packages/Webkul/Admin/src/Resources/views/sliders/create.blade.php new file mode 100644 index 000000000..5509662a0 --- /dev/null +++ b/packages/Webkul/Admin/src/Resources/views/sliders/create.blade.php @@ -0,0 +1,70 @@ +@extends('admin::layouts.content') + +@section('page_title') + {{ __('admin::app.settings.sliders.add-title') }} +@stop + +@section('content') +
    +
    + + +
    +
    + @csrf() + +
    + +
    + + + @{{ errors.first('title') }} +
    + +
    + + + @{{ errors.first('channel') }} +
    + +
    + + + + + + + @{{ errors.first('image') }} + + +
    + +
    + + + + + @{{ errors.first('content') }} +
    + +
    +
    +
    +
    +
    +
    +@endsection \ No newline at end of file diff --git a/packages/Webkul/Core/src/Database/Migrations/2018_08_03_114203_create_sliders_table.php b/packages/Webkul/Core/src/Database/Migrations/2018_08_03_114203_create_sliders_table.php new file mode 100644 index 000000000..2028f60f8 --- /dev/null +++ b/packages/Webkul/Core/src/Database/Migrations/2018_08_03_114203_create_sliders_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->string('title'); + $table->string('path'); + $table->string('content'); + $table->integer('channel_id')->unsigned(); + $table->foreign('channel_id')->references('id')->on('channels')->onDelete('cascade'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::disableForeignKeyConstraints(); + Schema::dropIfExists('sliders'); + Schema::enableForeignKeyConstraints(); + } +} diff --git a/packages/Webkul/Core/src/Models/Slider.php b/packages/Webkul/Core/src/Models/Slider.php new file mode 100644 index 000000000..e62b9c5df --- /dev/null +++ b/packages/Webkul/Core/src/Models/Slider.php @@ -0,0 +1,17 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class SliderRepository extends Repository +{ + /** + * Specify Model class name + * + * @return mixed + */ + function model() + { + return 'Webkul\Core\Models\Slider'; + } +} \ No newline at end of file diff --git a/packages/Webkul/Shop/src/Http/Controllers/SliderController.php b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php new file mode 100644 index 000000000..fe673aa68 --- /dev/null +++ b/packages/Webkul/Shop/src/Http/Controllers/SliderController.php @@ -0,0 +1,49 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ + +class SliderController extends controller +{ + protected $_config; + + public function __construct() + { + $this->_config = request('_config'); + + } + + public function index(){ + $call = new Channel(); + $channels = $call->getChannelWithLocales(); + return view($this->_config['view'])->with('channels',[$channels]); + } + + public function create(Request $request) { + $this->validate($request,[ + 'title' => 'string|required|max:100', + 'image' => 'required|image|mimes:png,jpg', + // |dimensions:ratio=12/5 + 'content' => 'string' + ]); + + $image = $request->file('image'); + $input['imagename'] = time().'.'.$image->getClientOriginalExtension(); + $destinationPath = public_path('/images'); + $image->move($destinationPath, $input['imagename']); + + + } +} \ No newline at end of file diff --git a/packages/Webkul/Ui/src/DataGrid/DataGrid.php b/packages/Webkul/Ui/src/DataGrid/DataGrid.php index a468040ec..ae05d3391 100644 --- a/packages/Webkul/Ui/src/DataGrid/DataGrid.php +++ b/packages/Webkul/Ui/src/DataGrid/DataGrid.php @@ -668,11 +668,13 @@ class DataGrid } } } - if ($alias_proper_secondary) { - $this->getQueryWithJoin(); - } else { - throw new \Exception('Due to a bug in laravel, you can\'t use secondary table columns without aliasing'); - } + $this->getQueryWithJoin(); + + // if ($alias_proper_secondary) { + // $this->getQueryWithJoin(); + // } else { + // throw new \Exception('Due to a bug in laravel, you can\'t use secondary table columns without aliasing'); + // } } else { throw new \Exception('Aliases of Join table and the secondary key columns do not match'); } diff --git a/packages/Webkul/Ui/src/Resources/assets/js/app.js b/packages/Webkul/Ui/src/Resources/assets/js/app.js index 070c8caa3..127421440 100644 --- a/packages/Webkul/Ui/src/Resources/assets/js/app.js +++ b/packages/Webkul/Ui/src/Resources/assets/js/app.js @@ -6,3 +6,4 @@ Vue.component("tree-item", require("./components/tree-view/tree-item")); Vue.component("tree-checkbox", require("./components/tree-view/tree-checkbox")); Vue.component("tree-radio", require("./components/tree-view/tree-radio")); Vue.component("modal", require("./components/modal")); +Vue.component("image-upload", require("./components/image/image-upload-single")); diff --git a/packages/Webkul/Ui/src/Resources/assets/js/components/accordian.vue b/packages/Webkul/Ui/src/Resources/assets/js/components/accordian.vue index 7da741d3f..b52134d37 100644 --- a/packages/Webkul/Ui/src/Resources/assets/js/components/accordian.vue +++ b/packages/Webkul/Ui/src/Resources/assets/js/components/accordian.vue @@ -6,7 +6,7 @@ - +
    @@ -24,7 +24,8 @@ data: function() { return { - isActive: false + isActive: false, + imageData: '', } }, diff --git a/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-multiple.vue b/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-multiple.vue new file mode 100644 index 000000000..e69de29bb diff --git a/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-single.vue b/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-single.vue new file mode 100644 index 000000000..7cf7a4845 --- /dev/null +++ b/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-single.vue @@ -0,0 +1,73 @@ + + + From ce1a3ebad6a5d52c0f3cc1d99db2e6681ebc6d00 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Mon, 6 Aug 2018 15:21:24 +0530 Subject: [PATCH 03/15] Bug fixes and UI touchups in DataGrid --- .../ViewComposers/DataGrids/UserComposer.php | 15 +- .../Resources/views/sliders/create.blade.php | 1 + packages/Webkul/Ui/src/DataGrid/DataGrid.php | 225 +++++------------- .../Webkul/Ui/src/Resources/assets/js/app.js | 2 +- .../image/image-upload-multiple.vue | 0 ...age-upload-single.vue => image-upload.vue} | 2 +- .../Ui/src/Resources/assets/sass/app.scss | 28 +-- .../views/datagrid/filters/default.blade.php | 9 +- .../Resources/views/datagrid/index.blade.php | 39 ++- .../views/datagrid/table/default.blade.php | 10 +- 10 files changed, 131 insertions(+), 200 deletions(-) delete mode 100644 packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-multiple.vue rename packages/Webkul/Ui/src/Resources/assets/js/components/image/{image-upload-single.vue => image-upload.vue} (94%) diff --git a/packages/Webkul/Admin/src/Http/ViewComposers/DataGrids/UserComposer.php b/packages/Webkul/Admin/src/Http/ViewComposers/DataGrids/UserComposer.php index 9a7b147cb..895ecdd73 100644 --- a/packages/Webkul/Admin/src/Http/ViewComposers/DataGrids/UserComposer.php +++ b/packages/Webkul/Admin/src/Http/ViewComposers/DataGrids/UserComposer.php @@ -30,13 +30,11 @@ class UserComposer 'name' => 'Admins', 'table' => 'admins as u', 'select' => 'u.id', - 'aliased' => true, //boolean to validate aliasing on the basis of this. + 'aliased' => true, //use this with false as default and true in case of joins + + //don't use aliasing in case of filters 'filterable' => [ [ - 'column' => 'u.email', - 'type' => 'string', - 'label' => 'Admin E-Mail' - ], [ 'column' => 'u.name', 'type' => 'string', 'label' => 'Admin Name' @@ -51,6 +49,7 @@ class UserComposer 'label' => 'Role ID' ] ], + //don't use aliasing in case of searchables 'searchable' => [ [ 'column' => 'u.email', @@ -90,6 +89,8 @@ class UserComposer 'secondaryKey' => 'r.id', ] ], + + //use aliasing on secodary columns if join is performed 'columns' => [ [ 'name' => 'u.id', @@ -110,13 +111,13 @@ class UserComposer 'sortable' => true, ], [ - 'name' => 'r.name', + 'name' => 'r.name as Role Name', 'type' => 'string', 'label' => 'Role Name', 'sortable' => true, ], [ - 'name' => 'r.id as ds', + 'name' => 'r.id as Role ID', 'type' => 'string', 'label' => 'Role ID', 'sortable' => true, diff --git a/packages/Webkul/Admin/src/Resources/views/sliders/create.blade.php b/packages/Webkul/Admin/src/Resources/views/sliders/create.blade.php index 5509662a0..3d46e61ae 100644 --- a/packages/Webkul/Admin/src/Resources/views/sliders/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sliders/create.blade.php @@ -49,6 +49,7 @@ @{{ errors.first('image') }} + {{-- The image field validation is not working, resolve it. --}}
    diff --git a/packages/Webkul/Ui/src/DataGrid/DataGrid.php b/packages/Webkul/Ui/src/DataGrid/DataGrid.php index ae05d3391..67ee36d79 100644 --- a/packages/Webkul/Ui/src/DataGrid/DataGrid.php +++ b/packages/Webkul/Ui/src/DataGrid/DataGrid.php @@ -186,7 +186,7 @@ class DataGrid public function setSelect($select) { - $this->select = $select ?: false; + $this->select = $select ? : false; return $this; } @@ -197,7 +197,7 @@ class DataGrid public function setFilterable(array $filterable) { - $this->filterable = $filterable ?: []; + $this->filterable = $filterable ? : []; return $this; } @@ -208,7 +208,7 @@ class DataGrid public function setSearchable($searchable) { - $this->searchable = $searchable ?: []; + $this->searchable = $searchable ? : []; return $this; } @@ -219,7 +219,7 @@ class DataGrid public function setMassOperations($massops) { - $this->massoperations = $massops ?: []; + $this->massoperations = $massops ? : []; return $this; } @@ -274,15 +274,23 @@ class DataGrid } /** - * setFilterableColumns - * @return $this + * Parse the URL + * and get it ready + * to be used. */ - // public function setFilterableColumns($filterable_columns = []) - // { - // $this->join = $filterable_columns ?: []; - // return $this; - // } + private function parse() + { + $parsed = []; + $unparsed = url()->full(); + if (count(explode('?', $unparsed))>1) { + $to_be_parsed = explode('?', $unparsed)[1]; + parse_str($to_be_parsed, $parsed); + return $parsed; + } else { + return $parsed; + } + } /** * Add Columns. @@ -303,6 +311,35 @@ class DataGrid return $this; } + /** + * Adds expressional verbs to be used + * @return $this + */ + + public function setOperators(array $operators) + { + $this->operators = $operators ?: []; + return $this; + } + + /** + * Add Pagination. + * + * @return $this + */ + + public function addPagination($pagination = []) + { + if ($pagination instanceof Pagination) { + $this->pagination = $pagination; + } elseif (gettype($pagination) == 'array' && $pagination) { + $this->pagination = new Pagination($pagination); + } else { + throw new \Exception("DataGrid: Pagination argument is not valid!"); + } + return $this; + } + /** * Add Column. * @@ -357,34 +394,6 @@ class DataGrid return $this; } - /** - * Adds expressional verbs to be used - * @return $this - */ - - public function setOperators(array $operators) - { - $this->operators = $operators ?: []; - return $this; - } - - /** - * Add Pagination. - * - * @return $this - */ - - public function addPagination($pagination = []) - { - if ($pagination instanceof Pagination) { - $this->pagination = $pagination; - } elseif (gettype($pagination) == 'array' && $pagination) { - $this->pagination = new Pagination($pagination); - } else { - throw new \Exception("DataGrid: Pagination argument is not valid!"); - } - return $this; - } /** * Used for selecting @@ -392,6 +401,7 @@ class DataGrid * make from controller. * @return $this */ + private function getSelect() { $select = []; @@ -404,25 +414,6 @@ class DataGrid } } - /** - * Parse the URL - * and get it ready - * to be used. - */ - - private function parse() - { - $parsed = []; - $unparsed = url()->full(); - if (count(explode('?', $unparsed))>1) { - $to_be_parsed = explode('?', $unparsed)[1]; - parse_str($to_be_parsed, $parsed); - return $parsed; - } else { - return $parsed; - } - } - /** * ->join('contacts', 'users.id', '=', 'contacts.user_id') * @return $this->query @@ -464,74 +455,12 @@ class DataGrid } /** - * Used to get the filter - * params from the Url - * and processed manually + * Function runs when + * filters, sort, search + * any of it is applied + * @return $this->query */ - // private function getQueryWithFilters() - // { - // // the only use case remaining is making and testing the full validation and testing of - // // aliased case with alias used in column names also. - // if ($this->aliased) { - // //n of joins can lead to n number of aliases for columns and neglect the as for columns - // $parsed = $this->parse(); - // // dump($parsed); - // foreach ($parsed as $key => $value) { - // foreach ($value as $column => $filter) { - // if (array_keys($filter)[0]=="like") { - // $this->query->where( - // str_replace('_', '.', $column), //replace the logic of making the column name and consider the case for _ in column name already - // $this->operators[array_keys($filter)[0]], - // '%'.array_values($filter)[0].'%' - // ); - // } elseif (array_keys($filter)[0]=="sort") { - // $this->query->orderBy( - // str_replace('_', '.', $column), //replace the logic of making the column name and consider the case for _ - // array_values($filter)[0] - // ); - // } elseif ($column == "search") { - // $this->query->where(function ($query) use ($filter) { - // foreach ($this->searchable as $search) { - // $query->orWhere($search['column'], 'like', '%'.array_values($filter)[0].'%'); - // } - // }); - // } else { - // $this->query->where( - // str_replace('_', '.', $column), - // $this->operators[array_keys($filter)[0]], - // array_values($filter)[0] - // ); - // } - // } - // } - // } else { - // $parsed = $this->parse(); - // foreach ($parsed as $key => $value) { - // foreach ($value as $column => $filter) { - // if (array_keys($filter)[0]=="like") { - // $this->query->where( - // $column, - // $this->operators[array_keys($filter)[0]], - // '%'.array_values($filter)[0].'%' - // ); - // } elseif ($column == "search") { - // $this->query->where(function ($query) use ($filter) { - // foreach ($this->searchable as $search) { - // $query->orWhere($search['column'], 'like', '%'.array_values($filter)[0].'%'); - // } - // }); - // } else { - // $this->query->where( - // $column, - // $this->operators[array_keys($filter)[0]], - // array_values($filter)[0] - // ); - // } - // } - // } - // } - // } private function getQueryWithFilters() { $parsed = $this->parse(); @@ -655,26 +584,8 @@ class DataGrid $exploded_secondary = explode('.', $secondary_join_column); $alias2 = trim($exploded_secondary[0]); if ($alias1 == $alias2) { - - //check whether secondary table columns are properly aliased - $alias_proper_secondary = true; - foreach ($this->columns as $column) { - if ($x = explode('.', $column->name)[0]) { - if (isset($x) && $x == $alias1) { - //check if this secondary column is using independent column alias - if (!strpos($column->name, 'as')) { - $alias_proper_secondary = false; - } - } - } - } $this->getQueryWithJoin(); - - // if ($alias_proper_secondary) { - // $this->getQueryWithJoin(); - // } else { - // throw new \Exception('Due to a bug in laravel, you can\'t use secondary table columns without aliasing'); - // } + $alias_proper_secondary = true; } else { throw new \Exception('Aliases of Join table and the secondary key columns do not match'); } @@ -695,27 +606,25 @@ class DataGrid } //Check for column filter bags and resolve aliasing + //run this if there are columns with filter bag $this->getQueryWithColumnFilters(); - //Run this if there are filters or sort params or range params in the urls - // if (isset($_SERVER['QUERY_STRING'])) { - // $qr = $_SERVER['QUERY_STRING']; - // $parsed; - // parse_str($qr, $parsed); - // } - $parsed = $this->parse(); - if (!empty($parsed)) { + $this->getQueryWithFilters(); } else { + $this->results = $this->query->get(); return $this->results; } + $this->results = $this->query->get(); return $this->results; } else { + $this->query = DB::table($this->table); + if (!empty($this->select)) { $this->getSelect(); } @@ -726,6 +635,7 @@ class DataGrid if (!empty($parsed)) { $this->getQueryWithFilters(); } else { + $this->results = $this->query->get(); return $this->results; } @@ -734,19 +644,6 @@ class DataGrid } } - /** - * Render mass - * action instance - * @return view - */ - - // private function renderMassAction(array $attributes) - // { - - // //probably render some view when mass action is needed - // //the rendered view will have the needed javascript also. - // } - /** * @return view */ diff --git a/packages/Webkul/Ui/src/Resources/assets/js/app.js b/packages/Webkul/Ui/src/Resources/assets/js/app.js index 127421440..d25cc9455 100644 --- a/packages/Webkul/Ui/src/Resources/assets/js/app.js +++ b/packages/Webkul/Ui/src/Resources/assets/js/app.js @@ -6,4 +6,4 @@ Vue.component("tree-item", require("./components/tree-view/tree-item")); Vue.component("tree-checkbox", require("./components/tree-view/tree-checkbox")); Vue.component("tree-radio", require("./components/tree-view/tree-radio")); Vue.component("modal", require("./components/modal")); -Vue.component("image-upload", require("./components/image/image-upload-single")); +Vue.component("image-upload", require("./components/image/image-upload")); diff --git a/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-multiple.vue b/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-multiple.vue deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-single.vue b/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload.vue similarity index 94% rename from packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-single.vue rename to packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload.vue index 7cf7a4845..424daf17a 100644 --- a/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload-single.vue +++ b/packages/Webkul/Ui/src/Resources/assets/js/components/image/image-upload.vue @@ -28,7 +28,7 @@ mounted: function() { - this.sample = "http://www.etaletaculture.fr/wp-content/uploads/2012/10/lorem-ipsum.jpg"; + this.sample = ""; var element = this.$el.getElementsByTagName("input")[0]; var this_this = this; element.onchange = function() { diff --git a/packages/Webkul/Ui/src/Resources/assets/sass/app.scss b/packages/Webkul/Ui/src/Resources/assets/sass/app.scss index 8ef12dc69..5e25125d8 100644 --- a/packages/Webkul/Ui/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Ui/src/Resources/assets/sass/app.scss @@ -663,21 +663,21 @@ h2 { .dropdown-filters { display: inline-flex; - .column-filter { - margin-right: 5px; + // .column-filter { + // margin-right: 5px; - .control { - font-family: "montserrat", sans-serif; - padding-left: 5px; - height: 36px; - width: 150px; - border: 2px solid $control-border-color; - border-radius: 3px; - background-color: white; - color: #8e8e8e; - font-size: 14px; - } - } + // .control { + // font-family: "montserrat", sans-serif; + // padding-left: 5px; + // height: 36px; + // width: 150px; + // border: 2px solid $control-border-color; + // border-radius: 3px; + // background-color: white; + // color: #8e8e8e; + // font-size: 14px; + // } + // } .more-filters { margin-right: 5px; diff --git a/packages/Webkul/Ui/src/Resources/views/datagrid/filters/default.blade.php b/packages/Webkul/Ui/src/Resources/views/datagrid/filters/default.blade.php index ce46c2461..f4839e96f 100644 --- a/packages/Webkul/Ui/src/Resources/views/datagrid/filters/default.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/datagrid/filters/default.blade.php @@ -8,14 +8,17 @@