diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index 3593ddb70..4b94fd2d1 100755 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -1,8 +1,8 @@ call(BagistoDatabaseSeeder::class); - $this->call(VelocityDatabaseSeeder::class); + $this->call(VelocityMetaDataSeeder::class); } } diff --git a/packages/Webkul/Velocity/publishable/assets/css/velocity.css b/packages/Webkul/Velocity/publishable/assets/css/velocity.css index 52dd58a77..f6447cd3b 100644 --- a/packages/Webkul/Velocity/publishable/assets/css/velocity.css +++ b/packages/Webkul/Velocity/publishable/assets/css/velocity.css @@ -7,31 +7,11 @@ background-image: url("../images/Icon-Velocity.svg"); } -.router-link-active .velocity-icon, -.active .velocity-icon { +.router-link-active .velocity-icon, .active .velocity-icon { background-image: url("../images/Icon-Velocity-Active.svg"); } -.router-link-active.velocity-icon, -.active.velocity-icon { - background-image: url("../images/Icon-Velocity-Active.svg"); -} - -.velocity-icon { - width: 60px; - height: 55px; - display: inline-block; - background-size: cover; - background-image: url("../images/Icon-Velocity.svg"); -} - -.router-link-active .velocity-icon, -.active .velocity-icon { - background-image: url("../images/Icon-Velocity-Active.svg"); -} - -.router-link-active.velocity-icon, -.active.velocity-icon { +.router-link-active.velocity-icon, .active.velocity-icon { background-image: url("../images/Icon-Velocity-Active.svg"); } @@ -700,6 +680,22 @@ content: "\E99F"; } +.velocity-icon { + width: 60px; + height: 55px; + display: inline-block; + background-size: cover; + background-image: url("../images/Icon-Velocity.svg"); +} + +.router-link-active .velocity-icon, .active .velocity-icon { + background-image: url("../images/Icon-Velocity-Active.svg"); +} + +.router-link-active.velocity-icon, .active.velocity-icon { + background-image: url("../images/Icon-Velocity-Active.svg"); +} + .qty-btn { height: 36px; display: inline-block; @@ -728,9 +724,9 @@ } .btn-add-to-cart { - padding: 8px; - color: #fff !important; + padding: 8px !important; border-radius: 0px !important; + color: #FFFFFF !important; border-color: #26A37C !important; background-color: #26A37C !important; } @@ -1195,6 +1191,7 @@ } .customer-options { + top: 40px; float: right; padding: 20px; height: 150px; @@ -1210,6 +1207,7 @@ .customer-options li { padding: 3px 0; + height: unset !important; } .customer-options a { @@ -1291,7 +1289,7 @@ top: 44px; z-index: 100; width: 350px; - left: -230px; + left: -265px; position: absolute; } @@ -1302,6 +1300,14 @@ position: relative; } +#cart-modal-content .mini-cart-container { + height: 100%; + font-size: 14px; + max-height: 200px; + overflow-y: scroll; + padding: 10px 15px 0 20px; +} + #cart-modal-content .small-card-container { margin: 0; width: 100%; @@ -1362,6 +1368,7 @@ .cart-details .cart-details-header .cart-header { max-height: 45px; margin-bottom: 20px; + padding-bottom: 20px !important; border-bottom: 2px solid #E5E5E5; } @@ -1811,6 +1818,9 @@ .order-summary-container { padding-top: 25px; + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; max-width: 500px !important; } @@ -1898,6 +1908,7 @@ } .product-price .regular-price { + font-weight: 500; margin-right: 10px; text-decoration: line-through; } @@ -1917,6 +1928,8 @@ .method-sticker { font-size: 13px; padding: 4px 8px; + margin-right: 3px; + margin-bottom: 3px; text-align: center; border-radius: 1px; display: inline-block; @@ -1925,13 +1938,10 @@ } .sidebar { + z-index: 1000000; width: 230px; } -.sidebar .category-content { - margin-bottom: 10px; -} - .sidebar .category-content .category-title { top: -1px; font-weight: 600; @@ -1965,8 +1975,53 @@ display: none; } +.category-list-container { + z-index: 10; + padding: 0px !important; + background: #FFFFFF; + position: absolute !important; + -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); +} + +.category-list-container .category { + width: 100%; + line-height: 2.5rem; + display: inline-block; +} + +.category-list-container .category span { + top: -4px; + position: relative; +} + +.category-list-container li { + padding: 7px 0 5px 15px; +} + +.category-list-container li:hover { + background: #ECECEC; +} + +.category-list-container .sub-categories { + top: 0px; + left: 100%; + z-index: 100; + padding-top: 10px; + position: absolute; + background: #FFFFFF; + border-left: 1px solid #CCCCCC; + -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); +} + +.category-list-container .sub-categories li:nth-last-of-type(1) { + margin-bottom: 10px; +} + #sidebar-level-0 { display: none; + z-index: 100000; border-top: 1px solid #CCCCCC; } @@ -2265,6 +2320,10 @@ box-shadow: none; } +.slides-container .VueCarousel-pagination .VueCarousel-dot { + padding: 5px !important; +} + .slides-container .VueCarousel-dot--active { background-color: #26A37C !important; } @@ -2338,65 +2397,6 @@ body .container-margin { margin: auto 20px; } -.account-modal { - right: 10px; - z-index: 100; - width: 350px !important; - position: absolute !important; -} - -.account-modal .theme-btn, .account-modal .cart-details .continue-shopping-btn, .cart-details .account-modal .continue-shopping-btn, .account-modal .account-content .account-layout .bottom-toolbar .pagination .page-item, .account-content .account-layout .bottom-toolbar .pagination .account-modal .page-item { - padding: .5rem .9rem; -} - -.account-modal .modal-footer .text-left { - padding-left: 5px; -} - -.category-list-container { - z-index: 10; - padding: 0px !important; - background: #FFFFFF; - position: absolute !important; - -webkit-box-shadow: inset -1px 0 0 0 #ECECEC; - box-shadow: inset -1px 0 0 0 #ECECEC; -} - -.category-list-container .category { - width: 100%; - line-height: 2.5rem; - display: inline-block; -} - -.category-list-container .category span { - top: -4px; - position: relative; -} - -.category-list-container li { - padding: 7px 0 5px 15px; -} - -.category-list-container li:hover { - background: #ECECEC; -} - -.category-list-container .sub-category-container { - position: relative; -} - -.category-list-container .sub-categories { - top: -40px; - left: 100%; - z-index: 100; - padding-top: 10px; - position: absolute; - background: #FFFFFF; - border-left: 1px solid #CCCCCC; - -webkit-box-shadow: inset -1px 0 0 0 #ECECEC; - box-shadow: inset -1px 0 0 0 #ECECEC; -} - .root-category-menu { border-bottom: solid 1px #d8e6ed; } @@ -2652,15 +2652,13 @@ header #search-form > *:focus { /* category with custom option */ /* hot & popular categories */ .hot-categories-container .hot-category-wrapper { - padding: 0 10px 15px 0; + padding: 0 10px 0 0; } .hot-categories-container .hot-category-wrapper .card { height: 100%; padding: 20px; border: none; - box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14); - -webkit-box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14); } .hot-categories-container .hot-category-wrapper .velocity-divide-page .left { @@ -2679,11 +2677,11 @@ header #search-form > *:focus { } .hot-categories-container .hot-category-wrapper:nth-last-child(2) { - padding: 15px 0 15px 0px; + padding: 0 0 0 0px; } .hot-categories-container .hot-category-wrapper:last-child { - padding: 15px 0 15px 10px; + padding: 0 0 0 10px; } .hot-categories-container ul, @@ -2721,8 +2719,7 @@ header #search-form > *:focus { } .popular-categories-container .popular-category-wrapper .card-description { - padding: 25px; - margin-top: 15px; + padding: 10px 20px; } .popular-categories-container .popular-category-wrapper:first-child { @@ -2798,6 +2795,7 @@ header #search-form > *:focus { .categories-sidebar-container .content-list { margin: 0; width: 100%; + height: 42px; text-align: left; list-style: none; position: relative; @@ -2807,8 +2805,7 @@ header #search-form > *:focus { .categories-sidebar-container .content-list ul { width: 100%; - height: 104%; - padding-left: 10px; + height: 100%; display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; @@ -2820,11 +2817,15 @@ header #search-form > *:focus { cursor: pointer; font-size: 16px; font-weight: 600; + padding: 8px 15px; letter-spacing: 0; position: relative; color: #FFFFFF; text-decoration: none; - padding: 8px 20px 8px 5px; +} + +.categories-sidebar-container .content-list ul li:hover { + background-color: #42719a; } .velocity-divide-page { @@ -2997,22 +2998,25 @@ body::after { .footer .footer-content .newsletter-subscription .newsletter-wrapper input.subscribe-field { width: 300px; - height: 38px; border: none; + height: 38px; font-size: 18px; + max-width: 250px; padding: 10px 20px; color: rgba(0, 0, 0, 0.83); } .footer .footer-content .newsletter-subscription .newsletter-wrapper button.subscribe-btn { - left: -1px; + left: -2px; height: 38px; font-size: 18px; + max-width: 110px; line-height: 10px; position: relative; } .footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons { + height: 100%; padding: 20px 0; color: #FFFFFF; } @@ -3035,7 +3039,7 @@ body::after { } .footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter { - padding: 30px 0; + padding: 25px 0 30px 0; } .footer .footer-content > .row { @@ -3055,7 +3059,15 @@ body::after { line-height: 2.5rem; } -.footer .footer-content > .row .footer-ct-content > div li a { +.footer .footer-content > .row .footer-ct-content > div ul { + margin-bottom: 0px; +} + +.footer .footer-content > .row .footer-ct-content > div ul li { + margin-bottom: 5px; +} + +.footer .footer-content > .row .footer-ct-content > div ul li a { color: rgba(255, 255, 255, 0.83); } @@ -3396,6 +3408,10 @@ body::after { cursor: pointer; } +.cursor-default { + cursor: default; +} + .grey { color: #9e9e9e; } @@ -3699,6 +3715,12 @@ body::after { .small-card-container { cursor: pointer; margin-bottom: 10px; + margin-left: 0 !important; + margin-right: 0 !important; +} + +.small-card-container .material-icons { + font-size: 16px; } .small-card-container .product-image-container { @@ -3716,6 +3738,11 @@ body::after { padding: 10px 0 !important; } +.small-card-container .sticker, +.small-card-container .regular-price { + display: none; +} + .small-card-container:hover { -webkit-box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14); box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14); @@ -3845,6 +3872,8 @@ a.default { .scrollable { max-height: 100vh; overflow-y: scroll; + scrollbar-width: none; + -ms-overflow-style: none; } .scrollable::-webkit-scrollbar { @@ -3924,8 +3953,13 @@ button[disabled] { font-size: 14px; } +.max-height-350 { + max-height: 350px; +} + .product-detail { padding-top: 20px; + margin-bottom: 60px; } .product-detail .magnifier > img { @@ -3946,6 +3980,10 @@ button[disabled] { padding: 0 15px; } +.product-detail .right .reviews { + vertical-align: top; +} + .product-detail .right .reviews > div { display: inline-block; } @@ -4060,6 +4098,32 @@ button[disabled] { vertical-align: middle; } +.store-meta-images { + margin-top: 20px; +} + +.store-meta-images img { + width: 100%; + height: 100%; + max-height: 300px; +} + +@media only screen and (max-width: 1100px) { + .footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons { + width: 100%; + padding: 5px 0; + text-align: center !important; + } + .footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter { + width: 100%; + padding: 10px 0; + text-align: center; + } + .footer .footer-content .footer-statics > div:not(:last-child) { + margin-bottom: 30px; + } +} + /*! * Bootstrap v3.4.1 (https://getbootstrap.com/) * Copyright 2011-2019 Twitter, Inc. @@ -11039,7 +11103,7 @@ button.close { outline: 0; } -.modal.fade .modal-dialog, .modal.fade .account-modal { +.modal.fade .modal-dialog, .modal.fade #top #account + .account-modal, #top .modal.fade #account + .account-modal { -webkit-transform: translate(0, -25%); transform: translate(0, -25%); -webkit-transition: -webkit-transform 0.3s ease-out; @@ -11048,7 +11112,7 @@ button.close { transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; } -.modal.in .modal-dialog, .modal.in .account-modal { +.modal.in .modal-dialog, .modal.in #top #account + .account-modal, #top .modal.in #account + .account-modal { -webkit-transform: translate(0, 0); transform: translate(0, 0); } @@ -11058,7 +11122,7 @@ button.close { overflow-y: auto; } -.modal-dialog, .account-modal { +.modal-dialog, #top #account + .account-modal { position: relative; width: auto; margin: 10px; @@ -11170,7 +11234,7 @@ button.close { } @media (min-width: 768px) { - .modal-dialog, .account-modal { + .modal-dialog, #top #account + .account-modal { width: 600px; margin: 30px auto; } @@ -12228,17 +12292,41 @@ body { #top #account .select-icon { top: 0px; - left: -3px; + left: 0px; + padding-left: 5px; } #top #account .welcome-content { - width: 150px; + float: right; + display: table; + min-width: 150px; cursor: pointer; text-align: right; } +#top #account .welcome-content * { + display: table-cell; + vertical-align: middle; +} + #top #account + .account-modal { - height: 135px; + right: 10px; + z-index: 100; + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; + width: 290px !important; + position: absolute !important; +} + +#top #account + .account-modal .theme-btn, #top #account + .account-modal .cart-details .continue-shopping-btn, .cart-details #top #account + .account-modal .continue-shopping-btn, #top #account + .account-modal .account-content .account-layout .bottom-toolbar .pagination .page-item, .account-content .account-layout .bottom-toolbar .pagination #top #account + .account-modal .page-item { + padding: .5rem .9rem; +} + +#top #account + .account-modal .modal-footer { + -webkit-box-pack: unset; + -ms-flex-pack: unset; + justify-content: unset; } #top > div:last-child { @@ -12249,16 +12337,6 @@ body { height: 100%; } -#top > div:last-child .welcome-content { - float: right; - display: table; -} - -#top > div:last-child .welcome-content * { - display: table-cell; - vertical-align: middle; -} - .dropdown-menu { border-top: 3px solid #269c77; border-radius: 0px; @@ -12370,9 +12448,14 @@ header .logo { } header #search-form { - height: 35px; + height: 40px; margin: 5px 0px; background: #FFFFFF; + padding: 4px 1px 0px 0px; +} + +header #search-form * { + height: 100%; } header #search-form .btn-group, header #search-form .quantity { @@ -12385,7 +12468,7 @@ header #search-form .btn-group .selectdiv, header #search-form .quantity .select header #search-form .btn-group .selectdiv:before, header #search-form .quantity .selectdiv:before { top: 13px; - left: 100px; + left: 108px; z-index: 10; font-size: 16px; content: "\E906"; @@ -12421,11 +12504,6 @@ header #search-form input { border-left: 1px solid #CCCCCC; } -header #search-form .btn, header #search-form .quantity button, .quantity header #search-form button, -header #search-form .quantity input, .quantity header #search-form input { - height: 40px; -} - header #search-form .btn:hover, header #search-form .quantity button:hover, .quantity header #search-form button:hover, header #search-form .quantity input:hover, .quantity header #search-form input:hover { text-decoration: none; @@ -12698,15 +12776,15 @@ header .dropdown-menu-large .dropdown-footer .checkout-link { } #nav-menu .secondary-navbar li a { - padding: 5px 20px 5px 5px; - font-family: SourceSansPro-Semibold; - font-size: 16px; - color: #FFFFFF; - letter-spacing: 0; display: block; - position: relative; - text-decoration: none; cursor: pointer; + font-size: 16px; + font-weight: 600; + letter-spacing: 0; + position: relative; + color: #FFFFFF; + text-decoration: none; + padding: 5px 20px 5px 5px; } .viewed-products .viewed-products-listing { @@ -12835,10 +12913,6 @@ i.within-circle { height: 50px; } -.mb60 { - margin-bottom: 60px; -} - .center_div { margin: 0 auto; width: 80%; diff --git a/packages/Webkul/Velocity/publishable/assets/js/velocity.js b/packages/Webkul/Velocity/publishable/assets/js/velocity.js index 63a0d985f..4af215ec2 100644 --- a/packages/Webkul/Velocity/publishable/assets/js/velocity.js +++ b/packages/Webkul/Velocity/publishable/assets/js/velocity.js @@ -35539,9 +35539,11 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); // // // +// +// /* harmony default export */ __webpack_exports__["default"] = ({ - props: ['id', 'url', 'addClass', 'categories', 'mainSidebar', 'categoryCount'], + props: ['id', 'url', 'addClass', 'parentSlug', 'categories', 'mainSidebar', 'categoryCount'], data: function data() { var slicedCategories = this.categories; @@ -35551,6 +35553,8 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); slicedCategories = this.categories.slice(0, categoryCount); } + if (this.parentSlug) slicedCategories['parentSlug'] = this.parentSlug; + return { slicedCategories: slicedCategories, sidebarLevel: Math.floor(Math.random() * 1000) @@ -35621,7 +35625,13 @@ var render = function() { staticClass: "category unset", class: category.children.length > 0 ? "fw6" : "", attrs: { - href: _vm.url + "/" + category["translations"][0].slug + href: + _vm.url + + "/" + + (_vm.slicedCategories.parentSlug + ? _vm.slicedCategories.parentSlug + "/" + : "") + + category["translations"][0].slug } }, [ @@ -35698,9 +35708,12 @@ var render = function() { _c("sidebar-component", { attrs: { url: _vm.url, + categories: category.children, id: "sidebar-level-" + (_vm.sidebarLevel + index), - categories: category.children + "parent-slug": category.parentSlug + ? category.parentSlug + : category["translations"][0].slug } }) ], @@ -35801,7 +35814,11 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); // /* harmony default export */ __webpack_exports__["default"] = ({ - props: ['slidesCount', 'slidesPerPage', 'navigationEnabled', 'paginationEnabled', 'addClass'] + props: ['id', 'addClass', 'slidesCount', 'slidesPerPage', 'navigationEnabled', 'paginationEnabled'], + + data: function data() { + return {}; + } }); /***/ }), diff --git a/packages/Webkul/Velocity/src/Database/Migrations/2020_01_10_122226_update_velocity_meta_data.php b/packages/Webkul/Velocity/src/Database/Migrations/2020_01_10_122226_update_velocity_meta_data.php new file mode 100644 index 000000000..73a3e3548 --- /dev/null +++ b/packages/Webkul/Velocity/src/Database/Migrations/2020_01_10_122226_update_velocity_meta_data.php @@ -0,0 +1,32 @@ +json('product_view_images')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('velocity_meta_data', function (Blueprint $table) { + $table->dropColumn('product_view_images'); + }); + } +} diff --git a/packages/Webkul/Velocity/src/Database/Seeders/VelocityMetaDataSeeder.php b/packages/Webkul/Velocity/src/Database/Seeders/VelocityMetaDataSeeder.php index 769c14dbc..ab5b67390 100644 --- a/packages/Webkul/Velocity/src/Database/Seeders/VelocityMetaDataSeeder.php +++ b/packages/Webkul/Velocity/src/Database/Seeders/VelocityMetaDataSeeder.php @@ -18,11 +18,11 @@ class VelocityMetaDataSeeder extends Seeder 'footer_left_content' => trans('velocity::app.admin.meta-data.footer-left-raw-content'), - 'footer_middle_content' => '
', + 'footer_middle_content' => '', 'slider' => 1, - 'subscription_bar_content' => '' + 'subscription_bar_content' => '' ]); } } diff --git a/packages/Webkul/Velocity/src/Http/Controllers/Admin/ConfigurationController.php b/packages/Webkul/Velocity/src/Http/Controllers/Admin/ConfigurationController.php index b8282ec2c..d75f87bf0 100644 --- a/packages/Webkul/Velocity/src/Http/Controllers/Admin/ConfigurationController.php +++ b/packages/Webkul/Velocity/src/Http/Controllers/Admin/ConfigurationController.php @@ -64,11 +64,18 @@ class ConfigurationController extends Controller foreach ($params['images'] as $index => $advertisement) { if ($advertisement['image_1'] !== "") { - $params['advertisement'][$index] = $this->uploadImages($advertisement, $index); + $params['advertisement'][$index] = $this->uploadAdvertisementImages($advertisement, $index); + } + } + + foreach ($params['product_view_images'] as $index => $productViewImage) { + if ($productViewImage !== "") { + $params['product_view_images'][$index] = $this->uploadImage($productViewImage, $index); } } $params['advertisement'] = json_encode($params['advertisement']); + $params['product_view_images'] = json_encode($params['product_view_images']); $params['home_page_content'] = str_replace('=>', '=>', $params['home_page_content']); unset($params['images']); @@ -82,11 +89,12 @@ class ConfigurationController extends Controller return redirect()->route($this->_config['redirect']); } - public function uploadImages($data, $index) + public function uploadAdvertisementImages($data, $index) { $type = 'images'; $request = request(); + $advertisement = []; foreach ($data as $imageId => $image) { $file = $type . '.' . $index . '.' . $imageId; $dir = "velocity/$type"; @@ -100,4 +108,22 @@ class ConfigurationController extends Controller return $advertisement; } + + public function uploadImage($data, $index) + { + $type = 'product_view_images'; + $request = request(); + + $image = ''; + $file = $type . '.' . $index; + $dir = "velocity/$type"; + + if ($request->hasFile($file)) { + Storage::delete($dir . $file); + + $image = $request->file($file)->store($dir); + } + + return $image; + } } \ No newline at end of file diff --git a/packages/Webkul/Velocity/src/Http/Controllers/Shop/SearchController.php b/packages/Webkul/Velocity/src/Http/Controllers/Shop/SearchController.php deleted file mode 100644 index 046ccf4b9..000000000 --- a/packages/Webkul/Velocity/src/Http/Controllers/Shop/SearchController.php +++ /dev/null @@ -1,54 +0,0 @@ - @shubhwebkul - * @copyright 2019 Webkul Software Pvt Ltd (http://www.webkul.com) - */ - class SearchController extends Controller -{ - /** - * Contains route related configuration - * - * @var array - */ - protected $_config; - - /** - * SearchRepository object - * - * @var Object - */ - protected $searchRepository; - - /** - * Create a new controller instance. - * - * @param \Webkul\Product\Repositories\SearchRepository $searchRepository - * @return void - */ - public function __construct(SearchRepository $searchRepository) - { - $this->_config = request('_config'); - - $this->searchRepository = $searchRepository; - } - - /** - * Index to handle the view loaded with the search results - * - * @return \Illuminate\View\View - */ - public function index() - { - $results = $this->searchRepository->search(request()->all()); - - return view($this->_config['view'])->with('results', $results ? $results : null); - } -} diff --git a/packages/Webkul/Velocity/src/Http/Controllers/Shop/ShopController.php b/packages/Webkul/Velocity/src/Http/Controllers/Shop/ShopController.php new file mode 100644 index 000000000..3f92755c6 --- /dev/null +++ b/packages/Webkul/Velocity/src/Http/Controllers/Shop/ShopController.php @@ -0,0 +1,95 @@ + @shubhwebkul + * @copyright 2019 Webkul Software Pvt Ltd (http://www.webkul.com) + */ + class ShopController extends Controller +{ + /** + * Contains route related configuration + * + * @var array + */ + protected $_config; + + /** + * SearchRepository object + * + * @var SearchRepository + */ + protected $searchRepository; + + /** + * ProductRepository object + * + * @var ProductRepository + */ + protected $productRepository; + + + /** + * Create a new controller instance. + * + * @param \Webkul\Product\Repositories\SearchRepository $searchRepository + * @return void + */ + public function __construct( + SearchRepository $searchRepository, + ProductRepository $productRepository + ) { + $this->_config = request('_config'); + + $this->searchRepository = $searchRepository; + $this->productRepository = $productRepository; + } + + /** + * Index to handle the view loaded with the search results + * + * @return \Illuminate\View\View + */ + public function search() + { + $results = $this->searchRepository->search(request()->all()); + + return view($this->_config['view'])->with('results', $results ? $results : null); + } + + public function fetchProductDetails($slug) + { + $product = $this->productRepository->findBySlug($slug); + + if ($product) { + $productReviewHelper = app('Webkul\Product\Helpers\Review'); + $productImageHelper = app('Webkul\Product\Helpers\ProductImage'); + + $response = [ + 'status' => true, + 'details' => [ + 'name' => $product->name, + 'urlKey' => $product->url_key, + 'priceHTML' => $product->getTypeInstance()->getPriceHtml(), + 'totalReviews' => $productReviewHelper->getTotalReviews($product), + 'rating' => ceil($productReviewHelper->getAverageRating($product)), + 'image' => $productImageHelper->getProductBaseImage($product)['small_image_url'], + ] + ]; + } else { + $response = [ + 'status' => false + ]; + } + + return $response; + } +} diff --git a/packages/Webkul/Velocity/src/Http/admin-routes.php b/packages/Webkul/Velocity/src/Http/admin-routes.php index 06da1f6a7..ee90c2d07 100644 --- a/packages/Webkul/Velocity/src/Http/admin-routes.php +++ b/packages/Webkul/Velocity/src/Http/admin-routes.php @@ -43,10 +43,4 @@ Route::group(['middleware' => ['web']], function () { }); }); }); - - Route::group(['middleware' => ['theme']], function () { - Route::get('/search', 'Webkul\Velocity\Http\Controllers\Shop\SearchController@index')->defaults('_config', [ - 'view' => 'velocity::search.search' - ])->name('shop.search.index'); - }); }); \ No newline at end of file diff --git a/packages/Webkul/Velocity/src/Http/front-routes.php b/packages/Webkul/Velocity/src/Http/front-routes.php new file mode 100644 index 000000000..ce689a927 --- /dev/null +++ b/packages/Webkul/Velocity/src/Http/front-routes.php @@ -0,0 +1,14 @@ + ['web']], function () { + Route::group(['middleware' => ['theme']], function () { + Route::namespace('Webkul\Velocity\Http\Controllers\Shop')->group(function () { + // Content Pages Route + Route::get('/product-details/{slug}', 'ShopController@fetchProductDetails')->name('velocity.shop.product'); + }); + + Route::get('/search', 'ShopController@search')->defaults('_config', [ + 'view' => 'velocity::search.search' + ])->name('shop.search.index'); + }); +}); \ No newline at end of file diff --git a/packages/Webkul/Velocity/src/Providers/VelocityServiceProvider.php b/packages/Webkul/Velocity/src/Providers/VelocityServiceProvider.php index e78968185..5ae5917a5 100644 --- a/packages/Webkul/Velocity/src/Providers/VelocityServiceProvider.php +++ b/packages/Webkul/Velocity/src/Providers/VelocityServiceProvider.php @@ -27,6 +27,7 @@ class VelocityServiceProvider extends ServiceProvider { include __DIR__ . '/../Http/helpers.php'; include __DIR__ . '/../Http/admin-routes.php'; + include __DIR__ . '/../Http/front-routes.php'; $this->app->register(EventServiceProvider::class); @@ -46,7 +47,7 @@ class VelocityServiceProvider extends ServiceProvider $velocityHelper = app('Webkul\Velocity\Helpers\Helper'); $velocityMetaData = $velocityHelper->getVelocityMetaData(); - view()->share('showRecentlyViewed', false); + view()->share('showRecentlyViewed', true); view()->share('velocityMetaData', $velocityMetaData); } diff --git a/packages/Webkul/Velocity/src/Resources/assets/js/UI/components/carousel.vue b/packages/Webkul/Velocity/src/Resources/assets/js/UI/components/carousel.vue index ff5977013..5ed6909fd 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/js/UI/components/carousel.vue +++ b/packages/Webkul/Velocity/src/Resources/assets/js/UI/components/carousel.vue @@ -20,11 +20,16 @@ \ No newline at end of file diff --git a/packages/Webkul/Velocity/src/Resources/assets/js/UI/components/sidebar.vue b/packages/Webkul/Velocity/src/Resources/assets/js/UI/components/sidebar.vue index 359f9c8ce..d91b79537 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/js/UI/components/sidebar.vue +++ b/packages/Webkul/Velocity/src/Resources/assets/js/UI/components/sidebar.vue @@ -15,10 +15,11 @@ @mouseout="toggleSidebar(id, $event, 'mouseout')" @mouseover="toggleSidebar(id, $event, 'mouseover')"> + + :href="`${url}/${slicedCategories.parentSlug ? slicedCategories.parentSlug + '/' : ''}${category['translations'][0].slug}`"> @@ -61,6 +63,7 @@ 'id', 'url', 'addClass', + 'parentSlug', 'categories', 'mainSidebar', 'categoryCount' @@ -76,6 +79,9 @@ slicedCategories = this.categories.slice(0, categoryCount); } + if (this.parentSlug) + slicedCategories['parentSlug'] = this.parentSlug; + return { slicedCategories, sidebarLevel: Math.floor(Math.random() * 1000), diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/_variables.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/_variables.scss index e363df7c7..e42ac06dd 100755 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/_variables.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/_variables.scss @@ -23,6 +23,7 @@ $grey-clr: rgba(0,0,0,0.53); $light-grey-clr: rgb(158, 158, 158); $light-background: #F7F7F9; $sidebar-width: 230px; +$box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); $font-family-pro: 'Source Sans Pro', sans-serif; $font-family-regular: 'SourceSansPro-Regular'; diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/admin.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/admin.scss index 5a36bd684..998a57a1a 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/admin.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/admin.scss @@ -11,12 +11,6 @@ font-style: normal; } -.wk-icon { - font-size: 20px; - font-weight: 400; - text-align: center; - color: #0041ff; -} [class^="rango-"], [class*=" rango-"] { /* use !important to prevent issues with browser extensions that change fonts */ diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/app.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/app.scss index 7424949cf..4792e19f8 100755 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/app.scss @@ -1,13 +1,14 @@ -@import "icons"; -@import "variables"; -@import "mixins"; @import "rango"; +@import "icons"; +@import "mixins"; +@import "variables"; @import "components/UI"; @import "components/app"; @import "components/home"; @import "components/footer"; @import "components/shared"; @import "components/product-view"; +@import "components/media"; @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap"; @@ -179,19 +180,42 @@ body { .select-icon { top: 0px; - left: -3px; + left: 0px; + padding-left: 5px; } .welcome-content { @extend .unselectable; - width: 150px; + + float: right; + display: table; + min-width: 150px; cursor: pointer; text-align: right; + + * { + display: table-cell; + vertical-align: middle; + } } + .account-modal { - height: 135px; + @extend .modal-dialog; + + right: 10px; + z-index: 100; + height: max-content; + width: 290px !important; + position: absolute !important; + + .theme-btn { + padding: .5rem .9rem; + } + + .modal-footer { + justify-content: unset; + } } } @@ -201,16 +225,6 @@ body { * { height: 100%; } - - .welcome-content { - float: right; - display: table; - - * { - display: table-cell; - vertical-align: middle; - } - } } } @@ -330,9 +344,14 @@ header { } #search-form { - height: 35px; + height: 40px; margin: 5px 0px; background: $white-color; + padding: 4px 1px 0px 0px; + + * { + height: 100%; + } .btn-group { max-width: 550px; @@ -345,7 +364,7 @@ header { .selectdiv:before { top: 13px; - left: 100px; + left: 108px; z-index: 10; font-size: 16px; content: "\E906"; @@ -385,8 +404,6 @@ header { } .btn { - height: 40px; - &:hover { text-decoration: none; } @@ -631,10 +648,6 @@ header { left: 283px; width: 250px; height: 350px; - - .child-category { - - } } } } @@ -656,15 +669,15 @@ header { float: left; a { - padding: 5px 20px 5px 5px; - font-family: SourceSansPro-Semibold; - font-size: 16px; - color: #FFFFFF; - letter-spacing: 0; display: block; - position: relative; - text-decoration: none; cursor: pointer; + font-size: 16px; + font-weight: 600; + letter-spacing: 0; + position: relative; + color: $white-color; + text-decoration: none; + padding: 5px 20px 5px 5px; } } } @@ -795,10 +808,6 @@ i.within-circle { height: 50px; } -.mb60 { - margin-bottom: 60px; -} - .center_div { margin: 0 auto; width: 80%/* value of your choice which suits your alignment */ diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/components/UI.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/components/UI.scss index 501a7726f..d9baf2f84 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/components/UI.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/components/UI.scss @@ -30,11 +30,11 @@ } .btn-add-to-cart { - padding: 8px; - color: #fff !important; + padding: 8px !important; border-radius: 0px !important; - border-color: #26A37C !important; - background-color: #26A37C !important; + color: $white-color !important; + border-color: $theme-color !important; + background-color: $theme-color !important; &.large { padding: 12px 18px; diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/components/app.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/components/app.scss index bfd4295ac..a58d038e5 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/components/app.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/components/app.scss @@ -405,6 +405,7 @@ } .customer-options{ + top: 40px; float: right; padding: 20px; height: 150px; @@ -422,6 +423,7 @@ li { padding: 3px 0; + height: unset !important; } a { @@ -509,7 +511,7 @@ top: 44px; z-index: 100; width: 350px; - left: -230px; + left: -265px; position: absolute; .close { @@ -519,6 +521,14 @@ position: relative; } + .mini-cart-container { + height: 100%; + font-size: 14px; + max-height: 200px; + overflow-y: scroll; + padding: 10px 15px 0 20px; + } + .small-card-container { margin: 0; width: 100%; @@ -579,6 +589,7 @@ .cart-header { max-height: 45px; margin-bottom: 20px; + padding-bottom: 20px !important; border-bottom: 2px solid $border-general; > h3 { @@ -1083,6 +1094,7 @@ .order-summary-container { padding-top: 25px; + height: max-content; max-width: 500px !important; > div { @@ -1170,6 +1182,7 @@ } .regular-price { + font-weight: 500; margin-right: 10px; text-decoration: line-through; } @@ -1192,6 +1205,8 @@ .method-sticker { font-size: 13px; padding: 4px 8px; + margin-right: 3px; + margin-bottom: 3px; text-align: center; border-radius: 1px; display: inline-block; @@ -1200,10 +1215,11 @@ } .sidebar { + z-index: 1000000; width: $sidebar-width; .category-content { - margin-bottom: 10px; + // margin-bottom: 10px; .category-title { top: -1px; @@ -1244,8 +1260,57 @@ } } +.category-list-container { + z-index: 10; + padding: 0px !important; + background: $white-color; + position: absolute !important; + box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23); + + .category { + @extend .cursor-pointer; + + width: 100%; + line-height: 2.5rem; + display: inline-block; + + span { + top: -4px; + position: relative; + } + } + + li { + padding: 7px 0 5px 15px; + } + + li:hover { + background: $border-light; + } + + .sub-category-container { + // position: relative; + } + + .sub-categories { + top: 0px; + left: 100%; + z-index: 100; + padding-top: 10px; + position: absolute; + background: $light-color; + border-left: 1px solid $border-common; + box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23); + + li:nth-last-of-type(1) { + margin-bottom: 10px; + } + } +} + #sidebar-level-0 { display: none; + z-index: 100000; border-top: 1px solid $border-common; } @@ -1568,6 +1633,10 @@ outline: none; box-shadow: none; } + + .VueCarousel-dot { + padding: 5px !important; + } } .VueCarousel-dot--active { diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/components/footer.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/components/footer.scss index 0063dd0c6..eff6f5e61 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/components/footer.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/components/footer.scss @@ -19,22 +19,25 @@ input.subscribe-field { width: 300px; - height: 38px; border: none; + height: 38px; font-size: 18px; + max-width: 250px; padding: 10px 20px; color: rgba(0,0,0,0.83); } button.subscribe-btn { - left: -1px; + left: -2px; height: 38px; font-size: 18px; + max-width: 110px; line-height: 10px; position: relative; } .social-icons { + height: 100%; padding: 20px 0; color: $light-color; @@ -57,7 +60,7 @@ } .subscribe-newsletter { - padding: 30px 0; + padding: 25px 0 30px 0; } } } @@ -78,8 +81,16 @@ font-size: 14px; line-height: 2.5rem; - li a { - color: rgba(255,255,255,0.83); + ul { + margin-bottom: 0px; + + li { + margin-bottom: 5px; + + a { + color: rgba(255,255,255,0.83); + } + } } } } diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/components/home.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/components/home.scss index 7fd6833a2..c37dc1996 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/components/home.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/components/home.scss @@ -9,71 +9,6 @@ body { } } -.account-modal { - @extend .modal-dialog; - - right: 10px; - z-index: 100; - width: 350px !important; - position: absolute !important; - - .theme-btn { - padding: .5rem .9rem; - } - - .modal-footer { - .text-left { - padding-left: 5px; - } - } -} - -.category-list-container { - z-index: 10; - padding: 0px !important; - background: $white-color; - position: absolute !important; - box-shadow: inset -1px 0 0 0 $border-light; - - .category { - @extend .cursor-pointer; - - width: 100%; - line-height: 2.5rem; - display: inline-block; - - span { - top: -4px; - position: relative; - } - } -} - -.category-list-container li { - padding: 7px 0 5px 15px; -} - -.category-list-container li:hover { - background: $border-light; -} - -.category-list-container { - .sub-category-container { - position: relative; - } - - .sub-categories { - top: -40px; - left: 100%; - z-index: 100; - padding-top: 10px; - position: absolute; - background: $light-color; - border-left: 1px solid $border-common; - box-shadow: inset -1px 0 0 0 $border-light; - } -} - .root-category-menu { border-bottom: solid 1px #d8e6ed; } @@ -352,14 +287,14 @@ header #search-form > *:focus { .hot-categories-container { .hot-category-wrapper { - padding: 0 10px 15px 0; + padding: 0 10px 0 0; .card { height: 100%; padding: 20px; border: none; - box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14); - -webkit-box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14); + // box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14); + // -webkit-box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14); } .velocity-divide-page { @@ -381,11 +316,11 @@ header #search-form > *:focus { } .hot-category-wrapper:nth-last-child(2) { - padding: 15px 0 15px 0px; + padding: 0 0 0 0px; } .hot-category-wrapper:last-child { - padding: 15px 0 15px 10px; + padding: 0 0 0 10px; } } @@ -427,8 +362,7 @@ header #search-form > *:focus { } .card-description { - padding: 25px; - margin-top: 15px; + padding: 10px 20px; } } @@ -513,6 +447,7 @@ header #search-form > *:focus { .content-list { margin: 0; width: 100%; + height: 42px; text-align: left; list-style: none; position: relative; @@ -521,8 +456,7 @@ header #search-form > *:focus { ul { width: 100%; - height: 104%; - padding-left: 10px; + height: 100%; display: inline-flex; background-color: $link-color; @@ -532,13 +466,17 @@ header #search-form > *:focus { cursor: pointer; font-size: 16px; font-weight: 600; + padding: 8px 15px; letter-spacing: 0; position: relative; color: $white-color; text-decoration: none; - padding: 8px 20px 8px 5px; } } + + li:hover { + background-color: #42719a; + } } } } diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/components/media.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/components/media.scss new file mode 100644 index 000000000..b781f35dc --- /dev/null +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/components/media.scss @@ -0,0 +1,43 @@ +@media only screen and (max-width: 1100px) { + .footer { + .footer-content { + .newsletter-subscription { + .newsletter-wrapper { + .social-icons { + width: 100%; + padding: 5px 0; + text-align: center !important; + } + + .subscribe-newsletter { + width: 100%; + padding: 10px 0; + text-align: center; + } + } + } + + .footer-statics { + > div:not(:last-child) { + margin-bottom: 30px; + } + } + } + } +} + +@media only screen and (max-width: 992px) { + +} + +@media only screen and (max-width: 768px) { + // body { + // display: none; + // } +} + +@media only screen and (max-width: 576px) { + // body { + // display: block; + // } +} \ No newline at end of file diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/components/product-view.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/components/product-view.scss index 518317de6..0cd1f4608 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/components/product-view.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/components/product-view.scss @@ -1,5 +1,6 @@ .product-detail { padding-top: 20px; + margin-bottom: 60px; .magnifier { > img { @@ -31,6 +32,8 @@ } .reviews { + vertical-align: top; + > div { display: inline-block; } @@ -206,4 +209,15 @@ vertical-align: middle; } } + +} + +.store-meta-images { + margin-top: 20px; + + img { + width: 100%; + height: 100%; + max-height: 300px; + } } \ No newline at end of file diff --git a/packages/Webkul/Velocity/src/Resources/assets/sass/components/shared.scss b/packages/Webkul/Velocity/src/Resources/assets/sass/components/shared.scss index 16f755c47..701b71f06 100644 --- a/packages/Webkul/Velocity/src/Resources/assets/sass/components/shared.scss +++ b/packages/Webkul/Velocity/src/Resources/assets/sass/components/shared.scss @@ -187,6 +187,9 @@ .cursor-pointer { cursor: pointer; } +.cursor-default { + cursor: default; +} .grey { color: rgb(158, 158, 158); @@ -500,6 +503,12 @@ .small-card-container { cursor: pointer; margin-bottom: 10px; + margin-left: 0 !important; + margin-right: 0 !important; + + .material-icons { + font-size: 16px; + } .product-image-container { padding: 0; @@ -517,6 +526,11 @@ display: inline-block; padding: 10px 0 !important; } + + .sticker, + .regular-price { + display: none; + } } .small-card-container:hover { @@ -656,6 +670,8 @@ a { .scrollable { max-height: 100vh; overflow-y: scroll; + scrollbar-width: none; + -ms-overflow-style: none; } .scrollable::-webkit-scrollbar { @@ -729,4 +745,8 @@ button[disabled] { .description-text { font-size: 14px; +} + +.max-height-350 { + max-height: 350px; } \ No newline at end of file diff --git a/packages/Webkul/Velocity/src/Resources/lang/en/app.php b/packages/Webkul/Velocity/src/Resources/lang/en/app.php index 7427a3a1f..040240502 100644 --- a/packages/Webkul/Velocity/src/Resources/lang/en/app.php +++ b/packages/Webkul/Velocity/src/Resources/lang/en/app.php @@ -95,13 +95,14 @@ return [ 'subscription-content' => 'Subscription bar Content', 'activate-slider' => 'Activate Slider', 'sidebar-categories' => 'Sidebar Categories', - 'footer-left-raw-content' => 'We love to craft softwares and solve the real world problems with the binaries. We are highly committed to our goals. We invest our resources to create world class easy to use softwares and applications for the enterprise business with the top notch, on the edge technology expertise.', + 'footer-left-raw-content' => 'We love to craft softwares and solve the real world problems with the binaries. We are highly committed to our goals. We invest our resources to create world class easy to use softwares and applications for the enterprise business with the top notch, on the edge technology expertise.
', 'footer-middle-content' => 'Footer Middle Content', 'update-meta-data' => 'Update Meta Data', 'advertisement-four' => 'Advertisement Four Images', 'advertisement-three' => 'Advertisement Three Images', 'advertisement-two' => 'Advertisement Two Images', 'advertisement-one' => 'Advertisement One Images', + 'product-view-image' => 'Product View Image', 'footer' => 'Footer', ], 'category' => [ diff --git a/packages/Webkul/Velocity/src/Resources/views/UI/particals.blade.php b/packages/Webkul/Velocity/src/Resources/views/UI/particals.blade.php index 6918a89aa..1b186cb6a 100644 --- a/packages/Webkul/Velocity/src/Resources/views/UI/particals.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/UI/particals.blade.php @@ -1,5 +1,5 @@ + + +@endpush diff --git a/packages/Webkul/Velocity/src/Resources/views/products/reviews/create.blade.php b/packages/Webkul/Velocity/src/Resources/views/products/reviews/create.blade.php index 7894fabbc..4f1f7a57c 100644 --- a/packages/Webkul/Velocity/src/Resources/views/products/reviews/create.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/products/reviews/create.blade.php @@ -39,7 +39,7 @@