merged
This commit is contained in:
commit
acadbbea1f
|
|
@ -1,8 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
use Webkul\Velocity\Database\Seeders\VelocityMetaDataSeeder;
|
||||||
use Webkul\Admin\Database\Seeders\DatabaseSeeder as BagistoDatabaseSeeder;
|
use Webkul\Admin\Database\Seeders\DatabaseSeeder as BagistoDatabaseSeeder;
|
||||||
use Webkul\Velocity\Database\Seeders\VelocityMetaDataSeeder as VelocityDatabaseSeeder;
|
|
||||||
|
|
||||||
class DatabaseSeeder extends Seeder
|
class DatabaseSeeder extends Seeder
|
||||||
{
|
{
|
||||||
|
|
@ -14,6 +14,6 @@ class DatabaseSeeder extends Seeder
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
$this->call(BagistoDatabaseSeeder::class);
|
$this->call(BagistoDatabaseSeeder::class);
|
||||||
$this->call(VelocityDatabaseSeeder::class);
|
$this->call(VelocityMetaDataSeeder::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,31 +7,11 @@
|
||||||
background-image: url("../images/Icon-Velocity.svg");
|
background-image: url("../images/Icon-Velocity.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
.router-link-active .velocity-icon,
|
.router-link-active .velocity-icon, .active .velocity-icon {
|
||||||
.active .velocity-icon {
|
|
||||||
background-image: url("../images/Icon-Velocity-Active.svg");
|
background-image: url("../images/Icon-Velocity-Active.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
.router-link-active.velocity-icon,
|
.router-link-active.velocity-icon, .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 {
|
|
||||||
background-image: url("../images/Icon-Velocity-Active.svg");
|
background-image: url("../images/Icon-Velocity-Active.svg");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -700,6 +680,22 @@
|
||||||
content: "\E99F";
|
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 {
|
.qty-btn {
|
||||||
height: 36px;
|
height: 36px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
@ -728,9 +724,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-add-to-cart {
|
.btn-add-to-cart {
|
||||||
padding: 8px;
|
padding: 8px !important;
|
||||||
color: #fff !important;
|
|
||||||
border-radius: 0px !important;
|
border-radius: 0px !important;
|
||||||
|
color: #FFFFFF !important;
|
||||||
border-color: #26A37C !important;
|
border-color: #26A37C !important;
|
||||||
background-color: #26A37C !important;
|
background-color: #26A37C !important;
|
||||||
}
|
}
|
||||||
|
|
@ -1195,6 +1191,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.customer-options {
|
.customer-options {
|
||||||
|
top: 40px;
|
||||||
float: right;
|
float: right;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
height: 150px;
|
height: 150px;
|
||||||
|
|
@ -1210,6 +1207,7 @@
|
||||||
|
|
||||||
.customer-options li {
|
.customer-options li {
|
||||||
padding: 3px 0;
|
padding: 3px 0;
|
||||||
|
height: unset !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.customer-options a {
|
.customer-options a {
|
||||||
|
|
@ -1291,7 +1289,7 @@
|
||||||
top: 44px;
|
top: 44px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
width: 350px;
|
width: 350px;
|
||||||
left: -230px;
|
left: -265px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1302,6 +1300,14 @@
|
||||||
position: relative;
|
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 {
|
#cart-modal-content .small-card-container {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
@ -1362,6 +1368,7 @@
|
||||||
.cart-details .cart-details-header .cart-header {
|
.cart-details .cart-details-header .cart-header {
|
||||||
max-height: 45px;
|
max-height: 45px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
padding-bottom: 20px !important;
|
||||||
border-bottom: 2px solid #E5E5E5;
|
border-bottom: 2px solid #E5E5E5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1811,6 +1818,9 @@
|
||||||
|
|
||||||
.order-summary-container {
|
.order-summary-container {
|
||||||
padding-top: 25px;
|
padding-top: 25px;
|
||||||
|
height: -webkit-max-content;
|
||||||
|
height: -moz-max-content;
|
||||||
|
height: max-content;
|
||||||
max-width: 500px !important;
|
max-width: 500px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1898,6 +1908,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-price .regular-price {
|
.product-price .regular-price {
|
||||||
|
font-weight: 500;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
text-decoration: line-through;
|
text-decoration: line-through;
|
||||||
}
|
}
|
||||||
|
|
@ -1917,6 +1928,8 @@
|
||||||
.method-sticker {
|
.method-sticker {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
|
margin-right: 3px;
|
||||||
|
margin-bottom: 3px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-radius: 1px;
|
border-radius: 1px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
@ -1925,13 +1938,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
.sidebar {
|
||||||
|
z-index: 1000000;
|
||||||
width: 230px;
|
width: 230px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar .category-content {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar .category-content .category-title {
|
.sidebar .category-content .category-title {
|
||||||
top: -1px;
|
top: -1px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|
@ -1965,8 +1975,53 @@
|
||||||
display: none;
|
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 {
|
#sidebar-level-0 {
|
||||||
display: none;
|
display: none;
|
||||||
|
z-index: 100000;
|
||||||
border-top: 1px solid #CCCCCC;
|
border-top: 1px solid #CCCCCC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2265,6 +2320,10 @@
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.slides-container .VueCarousel-pagination .VueCarousel-dot {
|
||||||
|
padding: 5px !important;
|
||||||
|
}
|
||||||
|
|
||||||
.slides-container .VueCarousel-dot--active {
|
.slides-container .VueCarousel-dot--active {
|
||||||
background-color: #26A37C !important;
|
background-color: #26A37C !important;
|
||||||
}
|
}
|
||||||
|
|
@ -2338,65 +2397,6 @@ body .container-margin {
|
||||||
margin: auto 20px;
|
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 {
|
.root-category-menu {
|
||||||
border-bottom: solid 1px #d8e6ed;
|
border-bottom: solid 1px #d8e6ed;
|
||||||
}
|
}
|
||||||
|
|
@ -2652,15 +2652,13 @@ header #search-form > *:focus {
|
||||||
/* category with custom option */
|
/* category with custom option */
|
||||||
/* hot & popular categories */
|
/* hot & popular categories */
|
||||||
.hot-categories-container .hot-category-wrapper {
|
.hot-categories-container .hot-category-wrapper {
|
||||||
padding: 0 10px 15px 0;
|
padding: 0 10px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-categories-container .hot-category-wrapper .card {
|
.hot-categories-container .hot-category-wrapper .card {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
border: none;
|
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 {
|
.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) {
|
.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 {
|
.hot-categories-container .hot-category-wrapper:last-child {
|
||||||
padding: 15px 0 15px 10px;
|
padding: 0 0 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-categories-container ul,
|
.hot-categories-container ul,
|
||||||
|
|
@ -2721,8 +2719,7 @@ header #search-form > *:focus {
|
||||||
}
|
}
|
||||||
|
|
||||||
.popular-categories-container .popular-category-wrapper .card-description {
|
.popular-categories-container .popular-category-wrapper .card-description {
|
||||||
padding: 25px;
|
padding: 10px 20px;
|
||||||
margin-top: 15px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.popular-categories-container .popular-category-wrapper:first-child {
|
.popular-categories-container .popular-category-wrapper:first-child {
|
||||||
|
|
@ -2798,6 +2795,7 @@ header #search-form > *:focus {
|
||||||
.categories-sidebar-container .content-list {
|
.categories-sidebar-container .content-list {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
height: 42px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -2807,8 +2805,7 @@ header #search-form > *:focus {
|
||||||
|
|
||||||
.categories-sidebar-container .content-list ul {
|
.categories-sidebar-container .content-list ul {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 104%;
|
height: 100%;
|
||||||
padding-left: 10px;
|
|
||||||
display: -webkit-inline-box;
|
display: -webkit-inline-box;
|
||||||
display: -ms-inline-flexbox;
|
display: -ms-inline-flexbox;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
|
|
@ -2820,11 +2817,15 @@ header #search-form > *:focus {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
padding: 8px 15px;
|
||||||
letter-spacing: 0;
|
letter-spacing: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
padding: 8px 20px 8px 5px;
|
}
|
||||||
|
|
||||||
|
.categories-sidebar-container .content-list ul li:hover {
|
||||||
|
background-color: #42719a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.velocity-divide-page {
|
.velocity-divide-page {
|
||||||
|
|
@ -2997,22 +2998,25 @@ body::after {
|
||||||
|
|
||||||
.footer .footer-content .newsletter-subscription .newsletter-wrapper input.subscribe-field {
|
.footer .footer-content .newsletter-subscription .newsletter-wrapper input.subscribe-field {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
height: 38px;
|
|
||||||
border: none;
|
border: none;
|
||||||
|
height: 38px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
max-width: 250px;
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
color: rgba(0, 0, 0, 0.83);
|
color: rgba(0, 0, 0, 0.83);
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer .footer-content .newsletter-subscription .newsletter-wrapper button.subscribe-btn {
|
.footer .footer-content .newsletter-subscription .newsletter-wrapper button.subscribe-btn {
|
||||||
left: -1px;
|
left: -2px;
|
||||||
height: 38px;
|
height: 38px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
max-width: 110px;
|
||||||
line-height: 10px;
|
line-height: 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons {
|
.footer .footer-content .newsletter-subscription .newsletter-wrapper .social-icons {
|
||||||
|
height: 100%;
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
}
|
}
|
||||||
|
|
@ -3035,7 +3039,7 @@ body::after {
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter {
|
.footer .footer-content .newsletter-subscription .newsletter-wrapper .subscribe-newsletter {
|
||||||
padding: 30px 0;
|
padding: 25px 0 30px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer .footer-content > .row {
|
.footer .footer-content > .row {
|
||||||
|
|
@ -3055,7 +3059,15 @@ body::after {
|
||||||
line-height: 2.5rem;
|
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);
|
color: rgba(255, 255, 255, 0.83);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3396,6 +3408,10 @@ body::after {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cursor-default {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
.grey {
|
.grey {
|
||||||
color: #9e9e9e;
|
color: #9e9e9e;
|
||||||
}
|
}
|
||||||
|
|
@ -3699,6 +3715,12 @@ body::after {
|
||||||
.small-card-container {
|
.small-card-container {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin-bottom: 10px;
|
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 {
|
.small-card-container .product-image-container {
|
||||||
|
|
@ -3716,6 +3738,11 @@ body::after {
|
||||||
padding: 10px 0 !important;
|
padding: 10px 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.small-card-container .sticker,
|
||||||
|
.small-card-container .regular-price {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.small-card-container:hover {
|
.small-card-container:hover {
|
||||||
-webkit-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);
|
box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14);
|
||||||
|
|
@ -3845,6 +3872,8 @@ a.default {
|
||||||
.scrollable {
|
.scrollable {
|
||||||
max-height: 100vh;
|
max-height: 100vh;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
|
scrollbar-width: none;
|
||||||
|
-ms-overflow-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scrollable::-webkit-scrollbar {
|
.scrollable::-webkit-scrollbar {
|
||||||
|
|
@ -3924,8 +3953,13 @@ button[disabled] {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.max-height-350 {
|
||||||
|
max-height: 350px;
|
||||||
|
}
|
||||||
|
|
||||||
.product-detail {
|
.product-detail {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
|
margin-bottom: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-detail .magnifier > img {
|
.product-detail .magnifier > img {
|
||||||
|
|
@ -3946,6 +3980,10 @@ button[disabled] {
|
||||||
padding: 0 15px;
|
padding: 0 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.product-detail .right .reviews {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
.product-detail .right .reviews > div {
|
.product-detail .right .reviews > div {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
@ -4060,6 +4098,32 @@ button[disabled] {
|
||||||
vertical-align: middle;
|
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/)
|
* Bootstrap v3.4.1 (https://getbootstrap.com/)
|
||||||
* Copyright 2011-2019 Twitter, Inc.
|
* Copyright 2011-2019 Twitter, Inc.
|
||||||
|
|
@ -11039,7 +11103,7 @@ button.close {
|
||||||
outline: 0;
|
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%);
|
-webkit-transform: translate(0, -25%);
|
||||||
transform: translate(0, -25%);
|
transform: translate(0, -25%);
|
||||||
-webkit-transition: -webkit-transform 0.3s ease-out;
|
-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;
|
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);
|
-webkit-transform: translate(0, 0);
|
||||||
transform: translate(0, 0);
|
transform: translate(0, 0);
|
||||||
}
|
}
|
||||||
|
|
@ -11058,7 +11122,7 @@ button.close {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-dialog, .account-modal {
|
.modal-dialog, #top #account + .account-modal {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: auto;
|
width: auto;
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
|
|
@ -11170,7 +11234,7 @@ button.close {
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
.modal-dialog, .account-modal {
|
.modal-dialog, #top #account + .account-modal {
|
||||||
width: 600px;
|
width: 600px;
|
||||||
margin: 30px auto;
|
margin: 30px auto;
|
||||||
}
|
}
|
||||||
|
|
@ -12228,17 +12292,41 @@ body {
|
||||||
|
|
||||||
#top #account .select-icon {
|
#top #account .select-icon {
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: -3px;
|
left: 0px;
|
||||||
|
padding-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#top #account .welcome-content {
|
#top #account .welcome-content {
|
||||||
width: 150px;
|
float: right;
|
||||||
|
display: table;
|
||||||
|
min-width: 150px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#top #account .welcome-content * {
|
||||||
|
display: table-cell;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
#top #account + .account-modal {
|
#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 {
|
#top > div:last-child {
|
||||||
|
|
@ -12249,16 +12337,6 @@ body {
|
||||||
height: 100%;
|
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 {
|
.dropdown-menu {
|
||||||
border-top: 3px solid #269c77;
|
border-top: 3px solid #269c77;
|
||||||
border-radius: 0px;
|
border-radius: 0px;
|
||||||
|
|
@ -12370,9 +12448,14 @@ header .logo {
|
||||||
}
|
}
|
||||||
|
|
||||||
header #search-form {
|
header #search-form {
|
||||||
height: 35px;
|
height: 40px;
|
||||||
margin: 5px 0px;
|
margin: 5px 0px;
|
||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
|
padding: 4px 1px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header #search-form * {
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
header #search-form .btn-group, header #search-form .quantity {
|
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 {
|
header #search-form .btn-group .selectdiv:before, header #search-form .quantity .selectdiv:before {
|
||||||
top: 13px;
|
top: 13px;
|
||||||
left: 100px;
|
left: 108px;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
content: "\E906";
|
content: "\E906";
|
||||||
|
|
@ -12421,11 +12504,6 @@ header #search-form input {
|
||||||
border-left: 1px solid #CCCCCC;
|
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 .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 {
|
header #search-form .quantity input:hover, .quantity header #search-form input:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
@ -12698,15 +12776,15 @@ header .dropdown-menu-large .dropdown-footer .checkout-link {
|
||||||
}
|
}
|
||||||
|
|
||||||
#nav-menu .secondary-navbar li a {
|
#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;
|
display: block;
|
||||||
position: relative;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
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 {
|
.viewed-products .viewed-products-listing {
|
||||||
|
|
@ -12835,10 +12913,6 @@ i.within-circle {
|
||||||
height: 50px;
|
height: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb60 {
|
|
||||||
margin-bottom: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.center_div {
|
.center_div {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 80%;
|
width: 80%;
|
||||||
|
|
|
||||||
|
|
@ -35539,9 +35539,11 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
/* harmony default export */ __webpack_exports__["default"] = ({
|
/* harmony default export */ __webpack_exports__["default"] = ({
|
||||||
props: ['id', 'url', 'addClass', 'categories', 'mainSidebar', 'categoryCount'],
|
props: ['id', 'url', 'addClass', 'parentSlug', 'categories', 'mainSidebar', 'categoryCount'],
|
||||||
|
|
||||||
data: function data() {
|
data: function data() {
|
||||||
var slicedCategories = this.categories;
|
var slicedCategories = this.categories;
|
||||||
|
|
@ -35551,6 +35553,8 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
|
||||||
slicedCategories = this.categories.slice(0, categoryCount);
|
slicedCategories = this.categories.slice(0, categoryCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.parentSlug) slicedCategories['parentSlug'] = this.parentSlug;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
slicedCategories: slicedCategories,
|
slicedCategories: slicedCategories,
|
||||||
sidebarLevel: Math.floor(Math.random() * 1000)
|
sidebarLevel: Math.floor(Math.random() * 1000)
|
||||||
|
|
@ -35621,7 +35625,13 @@ var render = function() {
|
||||||
staticClass: "category unset",
|
staticClass: "category unset",
|
||||||
class: category.children.length > 0 ? "fw6" : "",
|
class: category.children.length > 0 ? "fw6" : "",
|
||||||
attrs: {
|
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", {
|
_c("sidebar-component", {
|
||||||
attrs: {
|
attrs: {
|
||||||
url: _vm.url,
|
url: _vm.url,
|
||||||
|
categories: category.children,
|
||||||
id:
|
id:
|
||||||
"sidebar-level-" + (_vm.sidebarLevel + index),
|
"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"] = ({
|
/* harmony default export */ __webpack_exports__["default"] = ({
|
||||||
props: ['slidesCount', 'slidesPerPage', 'navigationEnabled', 'paginationEnabled', 'addClass']
|
props: ['id', 'addClass', 'slidesCount', 'slidesPerPage', 'navigationEnabled', 'paginationEnabled'],
|
||||||
|
|
||||||
|
data: function data() {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class UpdateVelocityMetaData extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('velocity_meta_data', function (Blueprint $table) {
|
||||||
|
$table->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');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,11 +18,11 @@ class VelocityMetaDataSeeder extends Seeder
|
||||||
|
|
||||||
'footer_left_content' => trans('velocity::app.admin.meta-data.footer-left-raw-content'),
|
'footer_left_content' => trans('velocity::app.admin.meta-data.footer-left-raw-content'),
|
||||||
|
|
||||||
'footer_middle_content' => '<div class="col-4 footer-ct-content"><div class="row"><div class="col-6"><ul type="none"><li><a href="">About Us</a></li><li><a href="">Customer Service</a></li><li><a href="">What’s New</a></li><li><a href="">Contact Us </a></li></div><div class="col-6"><ul type="none"><li><a href="">Order and Returns</a></li><li><a href="">Payment Policy</a></li><li><a href="">Shipping Policy</a></li><li><a href="">Privacy and Cookies Policy</a></li></div></div></div>',
|
'footer_middle_content' => '<div class="col-lg-6 col-md-12 col-sm-12 no-padding"><ul type="none"><li><a href="https://webkul.com/about-us/company-profile/">About Us</a></li><li><a href="https://webkul.com/about-us/company-profile/">Customer Service</a></li><li><a href="https://webkul.com/about-us/company-profile/">What’s New</a></li><li><a href="https://webkul.com/about-us/company-profile/">Contact Us </a></li></ul></div><div class="col-lg-6 col-md-12 col-sm-12 no-padding"><ul type="none"><li><a href="https://webkul.com/about-us/company-profile/"> Order and Returns </a></li><li><a href="https://webkul.com/about-us/company-profile/"> Payment Policy </a></li><li><a href="https://webkul.com/about-us/company-profile/"> Shipping Policy</a></li><li><a href="https://webkul.com/about-us/company-profile/"> Privacy and Cookies Policy </a></li></ul></div>',
|
||||||
|
|
||||||
'slider' => 1,
|
'slider' => 1,
|
||||||
|
|
||||||
'subscription_bar_content' => '<div class="social-icons wk-icon"><i class="fs24 within-circle rango-facebook" title="facebook"></i> <i class="fs24 within-circle rango-twitter" title="twitter"></i> <i class="fs24 within-circle rango-linked-in" title="linkedin"></i> <i class="fs24 within-circle rango-pintrest" title="Pinterest"></i> <i class="fs24 within-circle rango-youtube" title="Youtube"></i> <i class="fs24 within-circle rango-instagram" title="instagram"></i></div>'
|
'subscription_bar_content' => '<div class="social-icons col-lg-6"><i class="fs24 within-circle rango-facebook" title="facebook"></i> <i class="fs24 within-circle rango-twitter" title="twitter"></i> <i class="fs24 within-circle rango-linked-in" title="linkedin"></i> <i class="fs24 within-circle rango-pintrest" title="Pinterest"></i> <i class="fs24 within-circle rango-youtube" title="Youtube"></i> <i class="fs24 within-circle rango-instagram" title="instagram"></i></div>'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,11 +64,18 @@ class ConfigurationController extends Controller
|
||||||
|
|
||||||
foreach ($params['images'] as $index => $advertisement) {
|
foreach ($params['images'] as $index => $advertisement) {
|
||||||
if ($advertisement['image_1'] !== "") {
|
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['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']);
|
$params['home_page_content'] = str_replace('=>', '=>', $params['home_page_content']);
|
||||||
|
|
||||||
unset($params['images']);
|
unset($params['images']);
|
||||||
|
|
@ -82,11 +89,12 @@ class ConfigurationController extends Controller
|
||||||
return redirect()->route($this->_config['redirect']);
|
return redirect()->route($this->_config['redirect']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function uploadImages($data, $index)
|
public function uploadAdvertisementImages($data, $index)
|
||||||
{
|
{
|
||||||
$type = 'images';
|
$type = 'images';
|
||||||
$request = request();
|
$request = request();
|
||||||
|
|
||||||
|
$advertisement = [];
|
||||||
foreach ($data as $imageId => $image) {
|
foreach ($data as $imageId => $image) {
|
||||||
$file = $type . '.' . $index . '.' . $imageId;
|
$file = $type . '.' . $index . '.' . $imageId;
|
||||||
$dir = "velocity/$type";
|
$dir = "velocity/$type";
|
||||||
|
|
@ -100,4 +108,22 @@ class ConfigurationController extends Controller
|
||||||
|
|
||||||
return $advertisement;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Webkul\Velocity\Http\Controllers\Shop;
|
|
||||||
|
|
||||||
use Webkul\Product\Repositories\SearchRepository;
|
|
||||||
use Webkul\Velocity\Http\Shop\Controllers;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Search controller
|
|
||||||
*
|
|
||||||
* @author Shubham Mehrotra <shubhammehrotra.symfony@webkul.com> @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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,95 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Webkul\Velocity\Http\Controllers\Shop;
|
||||||
|
|
||||||
|
use Webkul\Velocity\Helpers\Helper;
|
||||||
|
use Webkul\Velocity\Http\Shop\Controllers;
|
||||||
|
use Webkul\Product\Repositories\SearchRepository;
|
||||||
|
use Webkul\Product\Repositories\ProductRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search controller
|
||||||
|
*
|
||||||
|
* @author Shubham Mehrotra <shubhammehrotra.symfony@webkul.com> @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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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');
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
Route::group(['middleware' => ['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');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -27,6 +27,7 @@ class VelocityServiceProvider extends ServiceProvider
|
||||||
{
|
{
|
||||||
include __DIR__ . '/../Http/helpers.php';
|
include __DIR__ . '/../Http/helpers.php';
|
||||||
include __DIR__ . '/../Http/admin-routes.php';
|
include __DIR__ . '/../Http/admin-routes.php';
|
||||||
|
include __DIR__ . '/../Http/front-routes.php';
|
||||||
|
|
||||||
$this->app->register(EventServiceProvider::class);
|
$this->app->register(EventServiceProvider::class);
|
||||||
|
|
||||||
|
|
@ -46,7 +47,7 @@ class VelocityServiceProvider extends ServiceProvider
|
||||||
$velocityHelper = app('Webkul\Velocity\Helpers\Helper');
|
$velocityHelper = app('Webkul\Velocity\Helpers\Helper');
|
||||||
$velocityMetaData = $velocityHelper->getVelocityMetaData();
|
$velocityMetaData = $velocityHelper->getVelocityMetaData();
|
||||||
|
|
||||||
view()->share('showRecentlyViewed', false);
|
view()->share('showRecentlyViewed', true);
|
||||||
view()->share('velocityMetaData', $velocityMetaData);
|
view()->share('velocityMetaData', $velocityMetaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,16 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
export default {
|
export default {
|
||||||
props: [
|
props: [
|
||||||
|
'id',
|
||||||
|
'addClass',
|
||||||
'slidesCount',
|
'slidesCount',
|
||||||
'slidesPerPage',
|
'slidesPerPage',
|
||||||
'navigationEnabled',
|
'navigationEnabled',
|
||||||
'paginationEnabled',
|
'paginationEnabled',
|
||||||
'addClass'
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
data: function () {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -15,10 +15,11 @@
|
||||||
@mouseout="toggleSidebar(id, $event, 'mouseout')"
|
@mouseout="toggleSidebar(id, $event, 'mouseout')"
|
||||||
@mouseover="toggleSidebar(id, $event, 'mouseover')">
|
@mouseover="toggleSidebar(id, $event, 'mouseover')">
|
||||||
|
|
||||||
|
|
||||||
<a
|
<a
|
||||||
class="category unset"
|
class="category unset"
|
||||||
:class="(category.children.length > 0) ? 'fw6' : ''"
|
:class="(category.children.length > 0) ? 'fw6' : ''"
|
||||||
:href="`${url}/${category['translations'][0].slug}`">
|
:href="`${url}/${slicedCategories.parentSlug ? slicedCategories.parentSlug + '/' : ''}${category['translations'][0].slug}`">
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="category-icon"
|
class="category-icon"
|
||||||
|
|
@ -45,8 +46,9 @@
|
||||||
<div :class="`sub-categories sub-category-${sidebarLevel+index}`">
|
<div :class="`sub-categories sub-category-${sidebarLevel+index}`">
|
||||||
<sidebar-component
|
<sidebar-component
|
||||||
:url="url"
|
:url="url"
|
||||||
|
:categories="category.children"
|
||||||
:id="`sidebar-level-${sidebarLevel+index}`"
|
:id="`sidebar-level-${sidebarLevel+index}`"
|
||||||
:categories="category.children">
|
:parent-slug="category.parentSlug ? category.parentSlug : category['translations'][0].slug">
|
||||||
</sidebar-component>
|
</sidebar-component>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -61,6 +63,7 @@
|
||||||
'id',
|
'id',
|
||||||
'url',
|
'url',
|
||||||
'addClass',
|
'addClass',
|
||||||
|
'parentSlug',
|
||||||
'categories',
|
'categories',
|
||||||
'mainSidebar',
|
'mainSidebar',
|
||||||
'categoryCount'
|
'categoryCount'
|
||||||
|
|
@ -76,6 +79,9 @@
|
||||||
slicedCategories = this.categories.slice(0, categoryCount);
|
slicedCategories = this.categories.slice(0, categoryCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.parentSlug)
|
||||||
|
slicedCategories['parentSlug'] = this.parentSlug;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
slicedCategories,
|
slicedCategories,
|
||||||
sidebarLevel: Math.floor(Math.random() * 1000),
|
sidebarLevel: Math.floor(Math.random() * 1000),
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ $grey-clr: rgba(0,0,0,0.53);
|
||||||
$light-grey-clr: rgb(158, 158, 158);
|
$light-grey-clr: rgb(158, 158, 158);
|
||||||
$light-background: #F7F7F9;
|
$light-background: #F7F7F9;
|
||||||
$sidebar-width: 230px;
|
$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-pro: 'Source Sans Pro', sans-serif;
|
||||||
$font-family-regular: 'SourceSansPro-Regular';
|
$font-family-regular: 'SourceSansPro-Regular';
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,6 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wk-icon {
|
|
||||||
font-size: 20px;
|
|
||||||
font-weight: 400;
|
|
||||||
text-align: center;
|
|
||||||
color: #0041ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
[class^="rango-"], [class*=" rango-"] {
|
[class^="rango-"], [class*=" rango-"] {
|
||||||
/* use !important to prevent issues with browser extensions that change fonts */
|
/* use !important to prevent issues with browser extensions that change fonts */
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
@import "icons";
|
|
||||||
@import "variables";
|
|
||||||
@import "mixins";
|
|
||||||
@import "rango";
|
@import "rango";
|
||||||
|
@import "icons";
|
||||||
|
@import "mixins";
|
||||||
|
@import "variables";
|
||||||
@import "components/UI";
|
@import "components/UI";
|
||||||
@import "components/app";
|
@import "components/app";
|
||||||
@import "components/home";
|
@import "components/home";
|
||||||
@import "components/footer";
|
@import "components/footer";
|
||||||
@import "components/shared";
|
@import "components/shared";
|
||||||
@import "components/product-view";
|
@import "components/product-view";
|
||||||
|
@import "components/media";
|
||||||
|
|
||||||
@import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
|
@import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
|
||||||
|
|
||||||
|
|
@ -179,19 +180,42 @@ body {
|
||||||
|
|
||||||
.select-icon {
|
.select-icon {
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: -3px;
|
left: 0px;
|
||||||
|
padding-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welcome-content {
|
.welcome-content {
|
||||||
@extend .unselectable;
|
@extend .unselectable;
|
||||||
|
|
||||||
width: 150px;
|
|
||||||
|
float: right;
|
||||||
|
display: table;
|
||||||
|
min-width: 150px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|
||||||
|
* {
|
||||||
|
display: table-cell;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ .account-modal {
|
+ .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%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welcome-content {
|
|
||||||
float: right;
|
|
||||||
display: table;
|
|
||||||
|
|
||||||
* {
|
|
||||||
display: table-cell;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -330,9 +344,14 @@ header {
|
||||||
}
|
}
|
||||||
|
|
||||||
#search-form {
|
#search-form {
|
||||||
height: 35px;
|
height: 40px;
|
||||||
margin: 5px 0px;
|
margin: 5px 0px;
|
||||||
background: $white-color;
|
background: $white-color;
|
||||||
|
padding: 4px 1px 0px 0px;
|
||||||
|
|
||||||
|
* {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.btn-group {
|
.btn-group {
|
||||||
max-width: 550px;
|
max-width: 550px;
|
||||||
|
|
@ -345,7 +364,7 @@ header {
|
||||||
|
|
||||||
.selectdiv:before {
|
.selectdiv:before {
|
||||||
top: 13px;
|
top: 13px;
|
||||||
left: 100px;
|
left: 108px;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
content: "\E906";
|
content: "\E906";
|
||||||
|
|
@ -385,8 +404,6 @@ header {
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
height: 40px;
|
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
@ -631,10 +648,6 @@ header {
|
||||||
left: 283px;
|
left: 283px;
|
||||||
width: 250px;
|
width: 250px;
|
||||||
height: 350px;
|
height: 350px;
|
||||||
|
|
||||||
.child-category {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -656,15 +669,15 @@ header {
|
||||||
float: left;
|
float: left;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
padding: 5px 20px 5px 5px;
|
|
||||||
font-family: SourceSansPro-Semibold;
|
|
||||||
font-size: 16px;
|
|
||||||
color: #FFFFFF;
|
|
||||||
letter-spacing: 0;
|
|
||||||
display: block;
|
display: block;
|
||||||
position: relative;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
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;
|
height: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb60 {
|
|
||||||
margin-bottom: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.center_div {
|
.center_div {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 80%/* value of your choice which suits your alignment */
|
width: 80%/* value of your choice which suits your alignment */
|
||||||
|
|
|
||||||
|
|
@ -30,11 +30,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-add-to-cart {
|
.btn-add-to-cart {
|
||||||
padding: 8px;
|
padding: 8px !important;
|
||||||
color: #fff !important;
|
|
||||||
border-radius: 0px !important;
|
border-radius: 0px !important;
|
||||||
border-color: #26A37C !important;
|
color: $white-color !important;
|
||||||
background-color: #26A37C !important;
|
border-color: $theme-color !important;
|
||||||
|
background-color: $theme-color !important;
|
||||||
|
|
||||||
&.large {
|
&.large {
|
||||||
padding: 12px 18px;
|
padding: 12px 18px;
|
||||||
|
|
|
||||||
|
|
@ -405,6 +405,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.customer-options{
|
.customer-options{
|
||||||
|
top: 40px;
|
||||||
float: right;
|
float: right;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
height: 150px;
|
height: 150px;
|
||||||
|
|
@ -422,6 +423,7 @@
|
||||||
|
|
||||||
li {
|
li {
|
||||||
padding: 3px 0;
|
padding: 3px 0;
|
||||||
|
height: unset !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
|
|
@ -509,7 +511,7 @@
|
||||||
top: 44px;
|
top: 44px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
width: 350px;
|
width: 350px;
|
||||||
left: -230px;
|
left: -265px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
.close {
|
.close {
|
||||||
|
|
@ -519,6 +521,14 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mini-cart-container {
|
||||||
|
height: 100%;
|
||||||
|
font-size: 14px;
|
||||||
|
max-height: 200px;
|
||||||
|
overflow-y: scroll;
|
||||||
|
padding: 10px 15px 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
.small-card-container {
|
.small-card-container {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
@ -579,6 +589,7 @@
|
||||||
.cart-header {
|
.cart-header {
|
||||||
max-height: 45px;
|
max-height: 45px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
padding-bottom: 20px !important;
|
||||||
border-bottom: 2px solid $border-general;
|
border-bottom: 2px solid $border-general;
|
||||||
|
|
||||||
> h3 {
|
> h3 {
|
||||||
|
|
@ -1083,6 +1094,7 @@
|
||||||
|
|
||||||
.order-summary-container {
|
.order-summary-container {
|
||||||
padding-top: 25px;
|
padding-top: 25px;
|
||||||
|
height: max-content;
|
||||||
max-width: 500px !important;
|
max-width: 500px !important;
|
||||||
|
|
||||||
> div {
|
> div {
|
||||||
|
|
@ -1170,6 +1182,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.regular-price {
|
.regular-price {
|
||||||
|
font-weight: 500;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
text-decoration: line-through;
|
text-decoration: line-through;
|
||||||
}
|
}
|
||||||
|
|
@ -1192,6 +1205,8 @@
|
||||||
.method-sticker {
|
.method-sticker {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
|
margin-right: 3px;
|
||||||
|
margin-bottom: 3px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-radius: 1px;
|
border-radius: 1px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
@ -1200,10 +1215,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
.sidebar {
|
||||||
|
z-index: 1000000;
|
||||||
width: $sidebar-width;
|
width: $sidebar-width;
|
||||||
|
|
||||||
.category-content {
|
.category-content {
|
||||||
margin-bottom: 10px;
|
// margin-bottom: 10px;
|
||||||
|
|
||||||
.category-title {
|
.category-title {
|
||||||
top: -1px;
|
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 {
|
#sidebar-level-0 {
|
||||||
display: none;
|
display: none;
|
||||||
|
z-index: 100000;
|
||||||
border-top: 1px solid $border-common;
|
border-top: 1px solid $border-common;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1568,6 +1633,10 @@
|
||||||
outline: none;
|
outline: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.VueCarousel-dot {
|
||||||
|
padding: 5px !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.VueCarousel-dot--active {
|
.VueCarousel-dot--active {
|
||||||
|
|
|
||||||
|
|
@ -19,22 +19,25 @@
|
||||||
|
|
||||||
input.subscribe-field {
|
input.subscribe-field {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
height: 38px;
|
|
||||||
border: none;
|
border: none;
|
||||||
|
height: 38px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
max-width: 250px;
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
color: rgba(0,0,0,0.83);
|
color: rgba(0,0,0,0.83);
|
||||||
}
|
}
|
||||||
|
|
||||||
button.subscribe-btn {
|
button.subscribe-btn {
|
||||||
left: -1px;
|
left: -2px;
|
||||||
height: 38px;
|
height: 38px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
max-width: 110px;
|
||||||
line-height: 10px;
|
line-height: 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.social-icons {
|
.social-icons {
|
||||||
|
height: 100%;
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
color: $light-color;
|
color: $light-color;
|
||||||
|
|
||||||
|
|
@ -57,7 +60,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.subscribe-newsletter {
|
.subscribe-newsletter {
|
||||||
padding: 30px 0;
|
padding: 25px 0 30px 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -78,8 +81,16 @@
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 2.5rem;
|
line-height: 2.5rem;
|
||||||
|
|
||||||
li a {
|
ul {
|
||||||
color: rgba(255,255,255,0.83);
|
margin-bottom: 0px;
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: rgba(255,255,255,0.83);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
.root-category-menu {
|
||||||
border-bottom: solid 1px #d8e6ed;
|
border-bottom: solid 1px #d8e6ed;
|
||||||
}
|
}
|
||||||
|
|
@ -352,14 +287,14 @@ header #search-form > *:focus {
|
||||||
|
|
||||||
.hot-categories-container {
|
.hot-categories-container {
|
||||||
.hot-category-wrapper {
|
.hot-category-wrapper {
|
||||||
padding: 0 10px 15px 0;
|
padding: 0 10px 0 0;
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
border: none;
|
border: none;
|
||||||
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);
|
// -webkit-box-shadow: 0 6px 14px 0 rgba(0, 0, 0, 0.14);
|
||||||
}
|
}
|
||||||
|
|
||||||
.velocity-divide-page {
|
.velocity-divide-page {
|
||||||
|
|
@ -381,11 +316,11 @@ header #search-form > *:focus {
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-category-wrapper:nth-last-child(2) {
|
.hot-category-wrapper:nth-last-child(2) {
|
||||||
padding: 15px 0 15px 0px;
|
padding: 0 0 0 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-category-wrapper:last-child {
|
.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 {
|
.card-description {
|
||||||
padding: 25px;
|
padding: 10px 20px;
|
||||||
margin-top: 15px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -513,6 +447,7 @@ header #search-form > *:focus {
|
||||||
.content-list {
|
.content-list {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
height: 42px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -521,8 +456,7 @@ header #search-form > *:focus {
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 104%;
|
height: 100%;
|
||||||
padding-left: 10px;
|
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
background-color: $link-color;
|
background-color: $link-color;
|
||||||
|
|
||||||
|
|
@ -532,13 +466,17 @@ header #search-form > *:focus {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
padding: 8px 15px;
|
||||||
letter-spacing: 0;
|
letter-spacing: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
color: $white-color;
|
color: $white-color;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
padding: 8px 20px 8px 5px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
li:hover {
|
||||||
|
background-color: #42719a;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
.product-detail {
|
.product-detail {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
|
margin-bottom: 60px;
|
||||||
|
|
||||||
.magnifier {
|
.magnifier {
|
||||||
> img {
|
> img {
|
||||||
|
|
@ -31,6 +32,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.reviews {
|
.reviews {
|
||||||
|
vertical-align: top;
|
||||||
|
|
||||||
> div {
|
> div {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
@ -206,4 +209,15 @@
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.store-meta-images {
|
||||||
|
margin-top: 20px;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
max-height: 300px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -187,6 +187,9 @@
|
||||||
.cursor-pointer {
|
.cursor-pointer {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
.cursor-default {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
.grey {
|
.grey {
|
||||||
color: rgb(158, 158, 158);
|
color: rgb(158, 158, 158);
|
||||||
|
|
@ -500,6 +503,12 @@
|
||||||
.small-card-container {
|
.small-card-container {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
margin-left: 0 !important;
|
||||||
|
margin-right: 0 !important;
|
||||||
|
|
||||||
|
.material-icons {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
.product-image-container {
|
.product-image-container {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
@ -517,6 +526,11 @@
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 10px 0 !important;
|
padding: 10px 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sticker,
|
||||||
|
.regular-price {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.small-card-container:hover {
|
.small-card-container:hover {
|
||||||
|
|
@ -656,6 +670,8 @@ a {
|
||||||
.scrollable {
|
.scrollable {
|
||||||
max-height: 100vh;
|
max-height: 100vh;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
|
scrollbar-width: none;
|
||||||
|
-ms-overflow-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scrollable::-webkit-scrollbar {
|
.scrollable::-webkit-scrollbar {
|
||||||
|
|
@ -730,3 +746,7 @@ button[disabled] {
|
||||||
.description-text {
|
.description-text {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.max-height-350 {
|
||||||
|
max-height: 350px;
|
||||||
|
}
|
||||||
|
|
@ -95,13 +95,14 @@ return [
|
||||||
'subscription-content' => 'Subscription bar Content',
|
'subscription-content' => 'Subscription bar Content',
|
||||||
'activate-slider' => 'Activate Slider',
|
'activate-slider' => 'Activate Slider',
|
||||||
'sidebar-categories' => 'Sidebar Categories',
|
'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' => '<p>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.</p>',
|
||||||
'footer-middle-content' => 'Footer Middle Content',
|
'footer-middle-content' => 'Footer Middle Content',
|
||||||
'update-meta-data' => 'Update Meta Data',
|
'update-meta-data' => 'Update Meta Data',
|
||||||
'advertisement-four' => 'Advertisement Four Images',
|
'advertisement-four' => 'Advertisement Four Images',
|
||||||
'advertisement-three' => 'Advertisement Three Images',
|
'advertisement-three' => 'Advertisement Three Images',
|
||||||
'advertisement-two' => 'Advertisement Two Images',
|
'advertisement-two' => 'Advertisement Two Images',
|
||||||
'advertisement-one' => 'Advertisement One Images',
|
'advertisement-one' => 'Advertisement One Images',
|
||||||
|
'product-view-image' => 'Product View Image',
|
||||||
'footer' => 'Footer',
|
'footer' => 'Footer',
|
||||||
],
|
],
|
||||||
'category' => [
|
'category' => [
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script type="text/x-template" id="star-ratings-template">
|
<script type="text/x-template" id="star-ratings-template">
|
||||||
<div :class="`stars mr10 fs${size ? size : '16'} ${pushClass ? pushClass : ''}`">
|
<div :class="`stars mr5 fs${size ? size : '16'} ${pushClass ? pushClass : ''}`">
|
||||||
<input
|
<input
|
||||||
v-if="editable"
|
v-if="editable"
|
||||||
type="number"
|
type="number"
|
||||||
|
|
@ -7,30 +7,35 @@
|
||||||
name="rating"
|
name="rating"
|
||||||
class="hidden" />
|
class="hidden" />
|
||||||
|
|
||||||
<span
|
<i
|
||||||
:class="`rango-star-fill ${editable ? 'cursor-pointer' : ''}`"
|
:class="`material-icons ${editable ? 'cursor-pointer' : ''}`"
|
||||||
v-for="(rating, index) in parseInt(showFilled ? showFilled : 3)"
|
v-for="(rating, index) in parseInt(showFilled ? showFilled : 3)"
|
||||||
:key="`${index}${Math.random()}`"
|
:key="`${index}${Math.random()}`"
|
||||||
@click="updateRating(index + 1)">
|
@click="updateRating(index + 1)">
|
||||||
</span>
|
star
|
||||||
|
</i>
|
||||||
|
|
||||||
<template v-if="!hideBlank">
|
<template v-if="!hideBlank">
|
||||||
<span
|
<i
|
||||||
:class="`rango-star ${editable ? 'cursor-pointer' : ''}`"
|
:class="`material-icons ${editable ? 'cursor-pointer' : ''}`"
|
||||||
v-for="(blankStar, index) in (5 - (showFilled ? showFilled : 3))"
|
v-for="(blankStar, index) in (5 - (showFilled ? showFilled : 3))"
|
||||||
:key="`${index}${Math.random()}`"
|
:key="`${index}${Math.random()}`"
|
||||||
@click="updateRating(showFilled + index + 1)">
|
@click="updateRating(showFilled + index + 1)">
|
||||||
</span>
|
star_border
|
||||||
|
</i>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
{{-- <i class="material-icons">star_border</i>
|
||||||
|
<i class="material-icons">star</i> --}}
|
||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script type="text/x-template" id="cart-btn-template">
|
<script type="text/x-template" id="cart-btn-template">
|
||||||
<button
|
<button
|
||||||
:class="`btn btn-link disable-box-shadow ${parseInt(itemCount)}`"
|
|
||||||
type="button"
|
type="button"
|
||||||
id="mini-cart"
|
id="mini-cart"
|
||||||
@click="toggleMiniCart">
|
@click="toggleMiniCart"
|
||||||
|
class="btn btn-link disable-box-shadow">
|
||||||
|
|
||||||
<div class="mini-cart-content">
|
<div class="mini-cart-content">
|
||||||
<i class="icon fs16 cell rango-arrow-down down-icon-position down-arrow-margin"></i>
|
<i class="icon fs16 cell rango-arrow-down down-icon-position down-arrow-margin"></i>
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,14 @@
|
||||||
input-name="images[1]">
|
input-name="images[1]">
|
||||||
</image-wrapper>
|
</image-wrapper>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="control-group product-view-image">
|
||||||
|
<label>{{ __('velocity::app.admin.meta-data.product-view-image') }}</label>
|
||||||
|
|
||||||
|
<image-wrapper
|
||||||
|
input-name="product_view_images">
|
||||||
|
</image-wrapper>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</accordian>
|
</accordian>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
<div class="modal-content sensitive-modal cart-modal-content hide" id="cart-modal-content">
|
<div class="modal-content sensitive-modal cart-modal-content hide" id="cart-modal-content">
|
||||||
<!--Body-->
|
<!--Body-->
|
||||||
<div class="pl20 pt10 pr15 fs14">
|
<div class="mini-cart-container">
|
||||||
@foreach ($items as $item)
|
@foreach ($items as $item)
|
||||||
@php
|
@php
|
||||||
$images = $item->product->getTypeInstance()->getBaseImage($item);
|
$images = $item->product->getTypeInstance()->getBaseImage($item);
|
||||||
|
|
|
||||||
|
|
@ -573,20 +573,6 @@
|
||||||
onSubmit: function() {
|
onSubmit: function() {
|
||||||
var this_this = this;
|
var this_this = this;
|
||||||
const emptyCouponErrorText = "Please enter a coupon code";
|
const emptyCouponErrorText = "Please enter a coupon code";
|
||||||
axios.post('{{ route('shop.checkout.check.coupons') }}', {code: this_this.coupon_code})
|
|
||||||
.then(function(response) {
|
|
||||||
this_this.$emit('onApplyCoupon');
|
|
||||||
|
|
||||||
this_this.couponChanged = true;
|
|
||||||
})
|
|
||||||
.catch(function(error) {
|
|
||||||
this_this.couponChanged = true;
|
|
||||||
|
|
||||||
this_this.error_message = (error.response.data.message === "The given data was invalid.")?
|
|
||||||
emptyCouponErrorText :
|
|
||||||
(error.response.data.message === "Cannot Apply Coupon")?
|
|
||||||
"Sorry, this Coupon code is invalid":error.response.data.message;
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
changeCoupon: function() {
|
changeCoupon: function() {
|
||||||
|
|
@ -603,16 +589,6 @@
|
||||||
|
|
||||||
removeCoupon: function () {
|
removeCoupon: function () {
|
||||||
var this_this = this;
|
var this_this = this;
|
||||||
|
|
||||||
axios.post('{{ route('shop.checkout.remove.coupon') }}')
|
|
||||||
.then(function(response) {
|
|
||||||
this_this.$emit('onRemoveCoupon')
|
|
||||||
})
|
|
||||||
.catch(function(error) {
|
|
||||||
window.flashMessages = [{'type' : 'alert-error', 'message' : error.response.data.message}];
|
|
||||||
|
|
||||||
this_this.$root.addFlashMessages();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
<a class="unset fw6 full-width" href="{{ $subMenuItem['url'] }}">
|
<a class="unset fw6 full-width" href="{{ $subMenuItem['url'] }}">
|
||||||
<i class="icon {{ $index }} text-down-3"></i>
|
<i class="icon {{ $index }} text-down-3"></i>
|
||||||
<span>{{ trans($subMenuItem['name']) }}<span>
|
<span>{{ trans($subMenuItem['name']) }}<span>
|
||||||
|
<i class="rango-arrow-right pull-right text-down-3"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
|
||||||
|
|
@ -9,94 +9,97 @@
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.login.before') !!}
|
{!! view_render_event('bagisto.shop.customers.login.before') !!}
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="heading">
|
<div class="row col-10 offset-1">
|
||||||
<h2 class="fs24 fw6">
|
<div class="heading">
|
||||||
{{ __('velocity::app.customer.login-form.customer-login')}}
|
<h2 class="fs24 fw6">
|
||||||
</h2>
|
{{ __('velocity::app.customer.login-form.customer-login')}}
|
||||||
|
</h2>
|
||||||
|
|
||||||
<a href="{{ route('customer.register.index') }}" class="btn-new-customer">
|
<a href="{{ route('customer.register.index') }}" class="btn-new-customer">
|
||||||
<button type="button" class="theme-btn light">
|
<button type="button" class="theme-btn light">
|
||||||
{{ __('velocity::app.customer.login-form.new-customer')}}
|
{{ __('velocity::app.customer.login-form.new-customer')}}
|
||||||
</button>
|
</button>
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="body">
|
|
||||||
<div class="form-header">
|
|
||||||
<h3 class="fw6">
|
|
||||||
{{ __('velocity::app.customer.login-form.registered-user')}}
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<p class="fs16">
|
|
||||||
{{ __('velocity::app.customer.login-form.form-login-text')}}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form
|
|
||||||
method="POST"
|
|
||||||
action="{{ route('customer.session.create') }}"
|
|
||||||
@submit.prevent="onSubmit">
|
|
||||||
|
|
||||||
{{ csrf_field() }}
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.login_form_controls.before') !!}
|
|
||||||
|
|
||||||
<div class="form-group" :class="[errors.has('email') ? 'has-error' : '']">
|
|
||||||
<label for="email" class="required label-style">
|
|
||||||
{{ __('shop::app.customer.login-form.email') }}*
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
class="form-style"
|
|
||||||
name="email"
|
|
||||||
v-validate="'required|email'"
|
|
||||||
value="{{ old('email') }}"
|
|
||||||
data-vv-as=""{{ __('shop::app.customer.login-form.email') }}"" />
|
|
||||||
|
|
||||||
<span class="control-error" v-if="errors.has('email')">
|
|
||||||
@{{ errors.first('email') }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group" :class="[errors.has('password') ? 'has-error' : '']">
|
|
||||||
<label for="password" class="required label-style">
|
|
||||||
{{ __('shop::app.customer.login-form.password') }}*
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="password"
|
|
||||||
class="form-style"
|
|
||||||
name="password"
|
|
||||||
v-validate="'required'"
|
|
||||||
value="{{ old('password') }}"
|
|
||||||
data-vv-as=""{{ __('shop::app.customer.login-form.password') }}"" />
|
|
||||||
|
|
||||||
<span class="control-error" v-if="errors.has('password')">
|
|
||||||
@{{ errors.first('password') }}
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<a href="{{ route('customer.forgot-password.create') }}" style="float: right;">
|
|
||||||
{{ __('shop::app.customer.login-form.forgot_pass') }}
|
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="mt10">
|
|
||||||
@if (Cookie::has('enable-resend'))
|
|
||||||
@if (Cookie::get('enable-resend') == true)
|
|
||||||
<a href="{{ route('customer.resend.verification-email', Cookie::get('email-for-resend')) }}">{{ __('shop::app.customer.login-form.resend-verification') }}</a>
|
|
||||||
@endif
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.login_form_controls.after') !!}
|
<div class="body col-12">
|
||||||
|
<div class="form-header">
|
||||||
|
<h3 class="fw6">
|
||||||
|
{{ __('velocity::app.customer.login-form.registered-user')}}
|
||||||
|
</h3>
|
||||||
|
|
||||||
<input class="theme-btn" type="submit" value="{{ __('shop::app.customer.login-form.button_title') }}">
|
<p class="fs16">
|
||||||
|
{{ __('velocity::app.customer.login-form.form-login-text')}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
</form>
|
<form
|
||||||
|
method="POST"
|
||||||
|
action="{{ route('customer.session.create') }}"
|
||||||
|
@submit.prevent="onSubmit">
|
||||||
|
|
||||||
|
{{ csrf_field() }}
|
||||||
|
|
||||||
|
{!! view_render_event('bagisto.shop.customers.login_form_controls.before') !!}
|
||||||
|
|
||||||
|
<div class="form-group" :class="[errors.has('email') ? 'has-error' : '']">
|
||||||
|
<label for="email" class="required label-style">
|
||||||
|
{{ __('shop::app.customer.login-form.email') }}*
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-style"
|
||||||
|
name="email"
|
||||||
|
v-validate="'required|email'"
|
||||||
|
value="{{ old('email') }}"
|
||||||
|
data-vv-as=""{{ __('shop::app.customer.login-form.email') }}"" />
|
||||||
|
|
||||||
|
<span class="control-error" v-if="errors.has('email')">
|
||||||
|
@{{ errors.first('email') }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group" :class="[errors.has('password') ? 'has-error' : '']">
|
||||||
|
<label for="password" class="required label-style">
|
||||||
|
{{ __('shop::app.customer.login-form.password') }}*
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
class="form-style"
|
||||||
|
name="password"
|
||||||
|
v-validate="'required'"
|
||||||
|
value="{{ old('password') }}"
|
||||||
|
data-vv-as=""{{ __('shop::app.customer.login-form.password') }}"" />
|
||||||
|
|
||||||
|
<span class="control-error" v-if="errors.has('password')">
|
||||||
|
@{{ errors.first('password') }}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<a href="{{ route('customer.forgot-password.create') }}" style="float: right;">
|
||||||
|
{{ __('shop::app.customer.login-form.forgot_pass') }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="mt10">
|
||||||
|
@if (Cookie::has('enable-resend'))
|
||||||
|
@if (Cookie::get('enable-resend') == true)
|
||||||
|
<a href="{{ route('customer.resend.verification-email', Cookie::get('email-for-resend')) }}">{{ __('shop::app.customer.login-form.resend-verification') }}</a>
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{!! view_render_event('bagisto.shop.customers.login_form_controls.after') !!}
|
||||||
|
|
||||||
|
<input class="theme-btn" type="submit" value="{{ __('shop::app.customer.login-form.button_title') }}">
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{!! view_render_event('bagisto.shop.customers.login.after') !!}
|
{!! view_render_event('bagisto.shop.customers.login.after') !!}
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
|
||||||
|
|
@ -1,58 +1,71 @@
|
||||||
@extends('shop::layouts.master')
|
@extends('shop::layouts.master')
|
||||||
|
|
||||||
@section('page_title')
|
@section('page_title')
|
||||||
{{ __('shop::app.customer.forgot-password.page_title') }}
|
{{ __('shop::app.customer.forgot-password.page_title') }}
|
||||||
@stop
|
@endsection
|
||||||
|
|
||||||
@section('content-wrapper')
|
@section('content-wrapper')
|
||||||
<div class="auth-content">
|
<div class="auth-content form-container">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="login-text">
|
<div class="row col-10 offset-1">
|
||||||
<h2 style="font-weight:bold;" class="fs24">
|
<div class="heading">
|
||||||
{{ __('velocity::app.customer.forget-password.forgot-password')}}
|
<h2 class="fs24 fw6">
|
||||||
<div style="" class="w3-card-login"><a href="{{ route('customer.session.index') }}" class="btn-new-customer-login">{{ __('velocity::app.customer.signup-form.login')}}</a></div>
|
{{ __('velocity::app.customer.forget-password.forgot-password')}}
|
||||||
</h2>
|
</h2>
|
||||||
</div>
|
|
||||||
<div class="mb60" style="height:260px;width:575px;border:1px solid #E5E5E5;margin: 0 auto;margin-bottom:44px;">
|
|
||||||
<div style="margin: 45px;">
|
|
||||||
|
|
||||||
<p class="fs16" style="font-weight:bold">
|
<a href="{{ route('customer.session.index') }}" class="btn-new-customer">
|
||||||
{{ __('velocity::app.customer.forget-password.recover-password')}}
|
<button type="button" class="theme-btn light">
|
||||||
</p>
|
{{ __('velocity::app.customer.signup-form.login') }}
|
||||||
<p class="fs16">
|
</button>
|
||||||
{{ __('velocity::app.customer.forget-password.recover-password-text')}}
|
</a>
|
||||||
</p>
|
</div>
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.forget_password.before') !!}
|
<div class="body col-12">
|
||||||
|
<h3 class="fw6">
|
||||||
|
{{ __('velocity::app.customer.forget-password.recover-password')}}
|
||||||
|
</h3>
|
||||||
|
|
||||||
<form method="post" action="{{ route('customer.forgot-password.store') }}" @submit.prevent="onSubmit">
|
<p class="fs16">
|
||||||
|
{{ __('velocity::app.customer.forget-password.recover-password-text')}}
|
||||||
|
</p>
|
||||||
|
|
||||||
{{ csrf_field() }}
|
{!! view_render_event('bagisto.shop.customers.forget_password.before') !!}
|
||||||
|
|
||||||
<div class="login-form">
|
<form
|
||||||
|
method="post"
|
||||||
|
action="{{ route('customer.register.create') }}"
|
||||||
|
@submit.prevent="onSubmit">
|
||||||
|
|
||||||
|
{{ csrf_field() }}
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.forget_password_form_controls.before') !!}
|
{!! view_render_event('bagisto.shop.customers.forget_password_form_controls.before') !!}
|
||||||
|
|
||||||
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
|
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
|
||||||
<label for="email" class="label-style">{{ __('shop::app.customer.forgot-password.email') }}</label>
|
<label for="email" class="required label-style">
|
||||||
<input type="email" class="form-control" name="email" v-validate="'required|email'">
|
{{ __('shop::app.customer.forgot-password.email') }}
|
||||||
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
|
</label>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="email"
|
||||||
|
class="form-style"
|
||||||
|
name="email"
|
||||||
|
v-validate="'required|email'" />
|
||||||
|
|
||||||
|
<span class="control-error" v-if="errors.has('email')">
|
||||||
|
@{{ errors.first('email') }}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.forget_password_form_controls.before') !!}
|
{!! view_render_event('bagisto.shop.customers.forget_password_form_controls.after') !!}
|
||||||
|
|
||||||
<div class="button-group">
|
<button class="theme-btn" type="submit">
|
||||||
<button type="submit" class="btn btn-dark-green">
|
{{ __('shop::app.customer.forgot-password.submit') }}
|
||||||
{{ __('shop::app.customer.forgot-password.submit') }}
|
</button>
|
||||||
</button>
|
</form>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.forget_password.before') !!}
|
{!! view_render_event('bagisto.shop.customers.forget_password.after') !!}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
@endsection
|
@endsection
|
||||||
|
|
@ -7,137 +7,138 @@
|
||||||
@section('content-wrapper')
|
@section('content-wrapper')
|
||||||
<div class="auth-content form-container">
|
<div class="auth-content form-container">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
<div class="row col-10 offset-1">
|
||||||
|
<div class="heading">
|
||||||
|
<h2 class="fs24 fw6">
|
||||||
|
{{ __('velocity::app.customer.signup-form.user-registration')}}
|
||||||
|
</h2>
|
||||||
|
|
||||||
<div class="heading">
|
<a href="{{ route('customer.session.index') }}" class="btn-new-customer">
|
||||||
<h2 class="fs24 fw6">
|
<button type="button" class="theme-btn light">
|
||||||
{{ __('velocity::app.customer.signup-form.user-registration')}}
|
{{ __('velocity::app.customer.signup-form.login')}}
|
||||||
</h2>
|
</button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
<a href="{{ route('customer.session.index') }}" class="btn-new-customer">
|
<div class="body col-12">
|
||||||
<button type="button" class="theme-btn light">
|
<h3 class="fw6">
|
||||||
{{ __('velocity::app.customer.signup-form.login')}}
|
{{ __('velocity::app.customer.signup-form.become-user')}}
|
||||||
</button>
|
</h3>
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="body">
|
<p class="fs16">
|
||||||
<h3 class="fw6">
|
{{ __('velocity::app.customer.signup-form.form-sginup-text')}}
|
||||||
{{ __('velocity::app.customer.signup-form.become-user')}}
|
</p>
|
||||||
</h3>
|
|
||||||
|
|
||||||
<p class="fs16">
|
{!! view_render_event('bagisto.shop.customers.signup.before') !!}
|
||||||
{{ __('velocity::app.customer.signup-form.form-sginup-text')}}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.signup.before') !!}
|
<form
|
||||||
|
method="post"
|
||||||
|
action="{{ route('customer.register.create') }}"
|
||||||
|
@submit.prevent="onSubmit">
|
||||||
|
|
||||||
<form
|
{{ csrf_field() }}
|
||||||
method="post"
|
|
||||||
action="{{ route('customer.register.create') }}"
|
|
||||||
@submit.prevent="onSubmit">
|
|
||||||
|
|
||||||
{{ csrf_field() }}
|
{!! view_render_event('bagisto.shop.customers.signup_form_controls.before') !!}
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.signup_form_controls.before') !!}
|
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
|
||||||
|
<label for="first_name" class="required label-style">
|
||||||
|
{{ __('shop::app.customer.signup-form.firstname') }}
|
||||||
|
</label>
|
||||||
|
|
||||||
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
|
<input
|
||||||
<label for="first_name" class="required label-style">
|
type="text"
|
||||||
{{ __('shop::app.customer.signup-form.firstname') }}
|
class="form-style"
|
||||||
</label>
|
name="first_name"
|
||||||
|
v-validate="'required'"
|
||||||
|
value="{{ old('first_name') }}"
|
||||||
|
data-vv-as=""{{ __('shop::app.customer.signup-form.firstname') }}"" />
|
||||||
|
|
||||||
<input
|
<span class="control-error" v-if="errors.has('first_name')">
|
||||||
type="text"
|
@{{ errors.first('first_name') }}
|
||||||
class="form-style"
|
</span>
|
||||||
name="first_name"
|
</div>
|
||||||
v-validate="'required'"
|
|
||||||
value="{{ old('first_name') }}"
|
|
||||||
data-vv-as=""{{ __('shop::app.customer.signup-form.firstname') }}"" />
|
|
||||||
|
|
||||||
<span class="control-error" v-if="errors.has('first_name')">
|
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
|
||||||
@{{ errors.first('first_name') }}
|
<label for="last_name" class="required label-style">
|
||||||
</span>
|
{{ __('shop::app.customer.signup-form.lastname') }}
|
||||||
</div>
|
</label>
|
||||||
|
|
||||||
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
|
<input
|
||||||
<label for="last_name" class="required label-style">
|
type="text"
|
||||||
{{ __('shop::app.customer.signup-form.lastname') }}
|
class="form-style"
|
||||||
</label>
|
name="last_name"
|
||||||
|
v-validate="'required'"
|
||||||
|
value="{{ old('last_name') }}"
|
||||||
|
data-vv-as=""{{ __('shop::app.customer.signup-form.lastname') }}"" />
|
||||||
|
|
||||||
<input
|
<span class="control-error" v-if="errors.has('last_name')">
|
||||||
type="text"
|
@{{ errors.first('last_name') }}
|
||||||
class="form-style"
|
</span>
|
||||||
name="last_name"
|
</div>
|
||||||
v-validate="'required'"
|
|
||||||
value="{{ old('last_name') }}"
|
|
||||||
data-vv-as=""{{ __('shop::app.customer.signup-form.lastname') }}"" />
|
|
||||||
|
|
||||||
<span class="control-error" v-if="errors.has('last_name')">
|
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
|
||||||
@{{ errors.first('last_name') }}
|
<label for="email" class="required label-style">
|
||||||
</span>
|
{{ __('shop::app.customer.signup-form.email') }}
|
||||||
</div>
|
</label>
|
||||||
|
|
||||||
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
|
<input
|
||||||
<label for="email" class="required label-style">
|
type="email"
|
||||||
{{ __('shop::app.customer.signup-form.email') }}
|
class="form-style"
|
||||||
</label>
|
name="email"
|
||||||
|
v-validate="'required|email'"
|
||||||
|
value="{{ old('email') }}"
|
||||||
|
data-vv-as=""{{ __('shop::app.customer.signup-form.email') }}"" />
|
||||||
|
|
||||||
<input
|
<span class="control-error" v-if="errors.has('email')">
|
||||||
type="email"
|
@{{ errors.first('email') }}
|
||||||
class="form-style"
|
</span>
|
||||||
name="email"
|
</div>
|
||||||
v-validate="'required|email'"
|
|
||||||
value="{{ old('email') }}"
|
|
||||||
data-vv-as=""{{ __('shop::app.customer.signup-form.email') }}"" />
|
|
||||||
|
|
||||||
<span class="control-error" v-if="errors.has('email')">
|
<div class="control-group" :class="[errors.has('password') ? 'has-error' : '']">
|
||||||
@{{ errors.first('email') }}
|
<label for="password" class="required label-style">
|
||||||
</span>
|
{{ __('shop::app.customer.signup-form.password') }}
|
||||||
</div>
|
</label>
|
||||||
|
|
||||||
<div class="control-group" :class="[errors.has('password') ? 'has-error' : '']">
|
<input
|
||||||
<label for="password" class="required label-style">
|
type="password"
|
||||||
{{ __('shop::app.customer.signup-form.password') }}
|
class="form-style"
|
||||||
</label>
|
name="password"
|
||||||
|
v-validate="'required|min:6'"
|
||||||
|
ref="password"
|
||||||
|
value="{{ old('password') }}"
|
||||||
|
data-vv-as=""{{ __('shop::app.customer.signup-form.password') }}"" />
|
||||||
|
|
||||||
<input
|
<span class="control-error" v-if="errors.has('password')">
|
||||||
type="password"
|
@{{ errors.first('password') }}
|
||||||
class="form-style"
|
</span>
|
||||||
name="password"
|
</div>
|
||||||
v-validate="'required|min:6'"
|
|
||||||
ref="password"
|
|
||||||
value="{{ old('password') }}"
|
|
||||||
data-vv-as=""{{ __('shop::app.customer.signup-form.password') }}"" />
|
|
||||||
|
|
||||||
<span class="control-error" v-if="errors.has('password')">
|
<div class="control-group" :class="[errors.has('password_confirmation') ? 'has-error' : '']">
|
||||||
@{{ errors.first('password') }}
|
<label for="password_confirmation" class="required label-style">
|
||||||
</span>
|
{{ __('shop::app.customer.signup-form.confirm_pass') }}
|
||||||
</div>
|
</label>
|
||||||
|
|
||||||
<div class="control-group" :class="[errors.has('password_confirmation') ? 'has-error' : '']">
|
<input
|
||||||
<label for="password_confirmation" class="required label-style">
|
type="password"
|
||||||
{{ __('shop::app.customer.signup-form.confirm_pass') }}
|
class="form-style"
|
||||||
</label>
|
name="password_confirmation"
|
||||||
|
v-validate="'required|min:6|confirmed:password'"
|
||||||
|
data-vv-as=""{{ __('shop::app.customer.signup-form.confirm_pass') }}"" />
|
||||||
|
|
||||||
<input
|
<span class="control-error" v-if="errors.has('password_confirmation')">
|
||||||
type="password"
|
@{{ errors.first('password_confirmation') }}
|
||||||
class="form-style"
|
</span>
|
||||||
name="password_confirmation"
|
</div>
|
||||||
v-validate="'required|min:6|confirmed:password'"
|
|
||||||
data-vv-as=""{{ __('shop::app.customer.signup-form.confirm_pass') }}"" />
|
|
||||||
|
|
||||||
<span class="control-error" v-if="errors.has('password_confirmation')">
|
{!! view_render_event('bagisto.shop.customers.signup_form_controls.after') !!}
|
||||||
@{{ errors.first('password_confirmation') }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.signup_form_controls.after') !!}
|
<button class="theme-btn" type="submit">
|
||||||
|
{{ __('shop::app.customer.signup-form.title') }}
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
<button class="theme-btn" type="submit">
|
{!! view_render_event('bagisto.shop.customers.signup.after') !!}
|
||||||
{{ __('shop::app.customer.signup-form.title') }}
|
</div>
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.customers.signup.after') !!}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -18,11 +18,11 @@
|
||||||
|
|
||||||
<div class="container-fluid advertisement-two-container">
|
<div class="container-fluid advertisement-two-container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<a class="col-8 no-padding">
|
<a class="col-9 no-padding">
|
||||||
<img src="{{ asset('/storage/' . $advertisementTwo['image_1']) }}" />
|
<img src="{{ asset('/storage/' . $advertisementTwo['image_1']) }}" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="col-4 pr0">
|
<a class="col-3 pr0">
|
||||||
<img src="{{ asset('/storage/' . $advertisementTwo['image_2']) }}" />
|
<img src="{{ asset('/storage/' . $advertisementTwo['image_2']) }}" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -33,11 +33,11 @@
|
||||||
@if (! $isRendered)
|
@if (! $isRendered)
|
||||||
<div class="container-fluid advertisement-two-container">
|
<div class="container-fluid advertisement-two-container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<a class="col-8 no-padding">
|
<a class="col-9 no-padding">
|
||||||
<img src="{{ asset('/themes/velocity/assets/images/toster.png') }}" />
|
<img src="{{ asset('/themes/velocity/assets/images/toster.png') }}" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="col-4 pr0">
|
<a class="col-3 pr0">
|
||||||
<img src="{{ asset('/themes/velocity/assets/images/trimmer.png') }}" />
|
<img src="{{ asset('/themes/velocity/assets/images/trimmer.png') }}" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,10 @@
|
||||||
|
|
||||||
<div class="row flex-nowrap">
|
<div class="row flex-nowrap">
|
||||||
<carousel-component
|
<carousel-component
|
||||||
:slides-count="{{ sizeof($products) }}"
|
|
||||||
slides-per-page="6"
|
slides-per-page="6"
|
||||||
|
navigation-enabled="hide"
|
||||||
|
pagination-enabled="hide"
|
||||||
|
:slides-count="{{ sizeof($products) }}"
|
||||||
id="{{ $categoryDetails->name }}-carousel">
|
id="{{ $categoryDetails->name }}-carousel">
|
||||||
|
|
||||||
@foreach ($products as $index => $product)
|
@foreach ($products as $index => $product)
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,11 @@
|
||||||
<div class="row flex-nowrap">
|
<div class="row flex-nowrap">
|
||||||
|
|
||||||
<carousel-component
|
<carousel-component
|
||||||
:slides-count="{{ $featuredProductsCount }}"
|
|
||||||
slides-per-page="6"
|
slides-per-page="6"
|
||||||
id="fearured-products-carousel">
|
navigation-enabled="hide"
|
||||||
|
pagination-enabled="hide"
|
||||||
|
id="fearured-products-carousel"
|
||||||
|
:slides-count="{{ $featuredProductsCount }}">
|
||||||
|
|
||||||
@foreach ($featuredProducts as $index => $product)
|
@foreach ($featuredProducts as $index => $product)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
$count = $velocityMetaData->new_products_count;
|
$count = $velocityMetaData->new_products_count;
|
||||||
|
|
||||||
$newProducts = app('Webkul\Velocity\Repositories\Product\ProductRepository')->getNewProducts($count);
|
$newProducts = app('Webkul\Velocity\Repositories\Product\ProductRepository')->getNewProducts($count);
|
||||||
|
|
||||||
$showRecentlyViewed = false;
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if (! empty($newProducts))
|
@if (! empty($newProducts))
|
||||||
|
|
@ -26,11 +24,11 @@
|
||||||
|
|
||||||
<div class="col-9 no-padding">
|
<div class="col-9 no-padding">
|
||||||
<carousel-component
|
<carousel-component
|
||||||
:slides-count="{{ sizeof($newProducts) }}"
|
|
||||||
slides-per-page="5"
|
slides-per-page="5"
|
||||||
id="new-products-carousel"
|
|
||||||
navigation-enabled="hide"
|
navigation-enabled="hide"
|
||||||
pagination-enabled="hide">
|
pagination-enabled="hide"
|
||||||
|
id="new-products-carousel"
|
||||||
|
:slides-count="{{ sizeof($newProducts) }}">
|
||||||
|
|
||||||
@foreach ($newProducts as $index => $product)
|
@foreach ($newProducts as $index => $product)
|
||||||
|
|
||||||
|
|
@ -43,12 +41,17 @@
|
||||||
</carousel-component>
|
</carousel-component>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@include ('shop::products.list.recently-viewed')
|
@include ('shop::products.list.recently-viewed', [
|
||||||
|
'addClass' => 'col-3',
|
||||||
|
'addClassWrapper' => 'scrollable max-height-350',
|
||||||
|
])
|
||||||
@else
|
@else
|
||||||
<carousel-component
|
<carousel-component
|
||||||
:slides-count="{{ sizeof($newProducts) }}"
|
|
||||||
slides-per-page="6"
|
slides-per-page="6"
|
||||||
id="new-products-carousel">
|
navigation-enabled="hide"
|
||||||
|
pagination-enabled="hide"
|
||||||
|
id="new-products-carousel"
|
||||||
|
:slides-count="{{ sizeof($newProducts) }}">
|
||||||
|
|
||||||
@foreach ($newProducts as $index => $product)
|
@foreach ($newProducts as $index => $product)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="col-4 software-description">
|
<div class="col-lg-4 col-md-12 col-sm-12 software-description">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<a href="{{ route('shop.home.index') }}">
|
<a href="{{ route('shop.home.index') }}">
|
||||||
@if ($logo = core()->getCurrentChannel()->logo_url)
|
@if ($logo = core()->getCurrentChannel()->logo_url)
|
||||||
|
|
|
||||||
|
|
@ -1 +1,5 @@
|
||||||
{!! $velocityMetaData->footer_middle_content !!}
|
<div class="col-lg-4 col-md-12 col-sm-12 footer-ct-content">
|
||||||
|
<div class="row">
|
||||||
|
{!! $velocityMetaData->footer_middle_content !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -20,14 +20,13 @@
|
||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
<div class="col-4 footer-rt-content">
|
<div class="col-lg-4 col-md-12 col-sm-12 footer-rt-content">
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="mb5">
|
<div class="mb5 col-12">
|
||||||
<h3>{{ __('velocity::app.home.payment-methods') }}</h3>
|
<h3>{{ __('velocity::app.home.payment-methods') }}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="payment-methods">
|
<div class="payment-methods col-12">
|
||||||
@foreach($activePayments as $paymentMethod)
|
@foreach($activePayments as $paymentMethod)
|
||||||
<div class="method-sticker">
|
<div class="method-sticker">
|
||||||
{{ $paymentMethod}}
|
{{ $paymentMethod}}
|
||||||
|
|
@ -37,11 +36,11 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="mb5">
|
<div class="mb5 col-12">
|
||||||
<h3>{{ __('velocity::app.home.payment-methods') }}</h3>
|
<h3>{{ __('velocity::app.home.shipping-methods') }}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="shipping-methods">
|
<div class="shipping-methods col-12">
|
||||||
@foreach($activeShippings as $shippingMethod)
|
@foreach($activeShippings as $shippingMethod)
|
||||||
<div class="method-sticker">
|
<div class="method-sticker">
|
||||||
{{ $shippingMethod}}
|
{{ $shippingMethod}}
|
||||||
|
|
@ -49,5 +48,4 @@
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -2,15 +2,13 @@
|
||||||
<div class="footer-content">
|
<div class="footer-content">
|
||||||
|
|
||||||
@include('shop::layouts.footer.newsletter-subscription')
|
@include('shop::layouts.footer.newsletter-subscription')
|
||||||
|
|
||||||
@include('shop::layouts.footer.footer-links')
|
@include('shop::layouts.footer.footer-links')
|
||||||
|
|
||||||
@if ($categories)
|
@if ($categories)
|
||||||
@include('shop::layouts.footer.top-brands')
|
{{-- @include('shop::layouts.footer.top-brands') --}}
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@include('shop::layouts.footer.copy-right')
|
@include('shop::layouts.footer.copy-right')
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,38 +3,33 @@
|
||||||
|| core()->getConfigData('customer.settings.newsletter.subscription')
|
|| core()->getConfigData('customer.settings.newsletter.subscription')
|
||||||
)
|
)
|
||||||
<div class="newsletter-subscription">
|
<div class="newsletter-subscription">
|
||||||
<div class="newsletter-wrapper">
|
<div class="newsletter-wrapper row">
|
||||||
@if ($velocityMetaData->subscription_bar_content)
|
@if ($velocityMetaData->subscription_bar_content)
|
||||||
{!! $velocityMetaData->subscription_bar_content !!}
|
{!! $velocityMetaData->subscription_bar_content !!}
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if (core()->getConfigData('customer.settings.newsletter.subscription'))
|
@if (core()->getConfigData('customer.settings.newsletter.subscription'))
|
||||||
<div class="subscribe-newsletter">
|
<div class="subscribe-newsletter col-lg-6 text-right">
|
||||||
|
<div class="form-container">
|
||||||
|
<form action="{{ route('shop.subscribe') }}">
|
||||||
|
<div class="subscriber-form-div">
|
||||||
|
<div :class="`control-group ${errors.has('subscriber_email') ? 'has-error' : ''}`">
|
||||||
|
<input
|
||||||
|
type="email"
|
||||||
|
name="subscriber_email"
|
||||||
|
class="control subscribe-field"
|
||||||
|
placeholder="{{ __('velocity::app.customer.login-form.your-email-address') }}"
|
||||||
|
required />
|
||||||
|
|
||||||
<div class="form-container">
|
<button class="theme-btn subscribe-btn fw6">
|
||||||
|
{{ __('shop::app.subscription.subscribe') }}
|
||||||
<form action="{{ route('shop.subscribe') }}">
|
</button>
|
||||||
<div class="subscriber-form-div">
|
</div>
|
||||||
<div
|
|
||||||
:class="`control-group ${errors.has('subscriber_email') ? 'has-error' : ''}`">
|
|
||||||
|
|
||||||
<input
|
|
||||||
type="email"
|
|
||||||
class="control subscribe-field"
|
|
||||||
name="subscriber_email"
|
|
||||||
placeholder="{{ __('velocity::app.customer.login-form.your-email-address') }}"
|
|
||||||
required />
|
|
||||||
|
|
||||||
<button class="theme-btn subscribe-btn fw6">
|
|
||||||
{{ __('shop::app.subscription.subscribe') }}
|
|
||||||
</button>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
</div>
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,11 @@
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="row no-margin right">
|
<div class="row no-margin right">
|
||||||
<div class="col-8 no-padding">
|
<div class="col-8 no-padding input-group">
|
||||||
<form
|
<form
|
||||||
method="GET"
|
method="GET"
|
||||||
role="search"
|
role="search"
|
||||||
id="search-form"
|
id="search-form"
|
||||||
class="input-group"
|
|
||||||
action="{{ route('shop.search.index') }}">
|
action="{{ route('shop.search.index') }}">
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -41,22 +41,22 @@
|
||||||
|
|
||||||
<!--Footer-->
|
<!--Footer-->
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<div class="col-6 text-left">
|
<div>
|
||||||
<a href="{{ route('customer.session.index') }}">
|
<a href="{{ route('customer.session.index') }}">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="theme-btn fs15">
|
class="theme-btn fs14 fw6">
|
||||||
|
|
||||||
{{ __('velocity::app.header.sign-in') }}
|
{{ __('velocity::app.header.sign-in') }}
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-6 text-right">
|
<div>
|
||||||
<a href="{{ route('customer.register.index') }}">
|
<a href="{{ route('customer.register.index') }}">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="theme-btn fs15">
|
class="theme-btn fs14 fw6">
|
||||||
{{ __('velocity::app.header.sign-up') }}
|
{{ __('velocity::app.header.sign-up') }}
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="product-rating">
|
<div class="product-rating">
|
||||||
<star-ratings ratings="3"></star-ratings>
|
<star-ratings ratings="{{ $avgRatings }}"></star-ratings>
|
||||||
<span>{{ $totalReviews }} Ratings</span>
|
<span>{{ $totalReviews }} Ratings</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,46 +1,91 @@
|
||||||
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
|
@inject ('velocityHelper', 'Webkul\Velocity\Helpers\Helper')
|
||||||
@inject ('productRatingHelper', 'Webkul\Product\Helpers\Review')
|
@inject ('productRatingHelper', 'Webkul\Product\Helpers\Review')
|
||||||
|
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
|
||||||
|
|
||||||
@php
|
<recently-viewed
|
||||||
$recentlyViewedProducts = app('Webkul\Product\Repositories\ProductRepository')->getNewProducts(3)->items();
|
add-class="{{ isset($addClass) ? $addClass : '' }}"
|
||||||
@endphp
|
add-class-wrapper="{{ isset($addClassWrapper) ? $addClassWrapper : '' }}">
|
||||||
|
</recently-viewed>
|
||||||
|
|
||||||
<div class="col-3 recently-viewed">
|
@push('scripts')
|
||||||
<div class="row mb20 pl20">
|
<script type="text/x-template" id="recently-viewed-template">
|
||||||
<div class="col-12 no-padding">
|
<div :class="`${addClass} recently-viewed`">
|
||||||
<h2 class="fs20 fw6">{{ __('velocity::app.products.recently-viewed') }}</h2>
|
<div class="row remove-padding-margin">
|
||||||
</div>
|
<div class="col-12 no-padding">
|
||||||
</div>
|
<h2 class="fs20 fw6 mb15">{{ __('velocity::app.products.recently-viewed') }}</h2>
|
||||||
|
</div>
|
||||||
@foreach ($recentlyViewedProducts as $index => $product)
|
|
||||||
|
|
||||||
@php
|
|
||||||
$productBaseImage = $productImageHelper->getProductBaseImage($product);
|
|
||||||
$productAverageRating = $productRatingHelper->getAverageRating($product);
|
|
||||||
@endphp
|
|
||||||
|
|
||||||
<div class="row small-card-container">
|
|
||||||
<div class="col-4 product-image-container mr15">
|
|
||||||
<a href="{{ route('shop.productOrCategory.index', $product->url_key) }}" class="unset">
|
|
||||||
<div class="product-image" style="background-image: url({{ $productBaseImage['small_image_url'] }})"></div>
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-8 no-padding card-body align-vertical-top">
|
<div :class="`recetly-viewed-products-wrapper ${addClassWrapper}`">
|
||||||
<div class="no-padding">
|
<div
|
||||||
<div class="fs16 text-nowrap">{{ $product->name }}</div>
|
:key="Math.random()"
|
||||||
|
class="row small-card-container"
|
||||||
|
v-for="(product, index) in recentlyViewed">
|
||||||
|
|
||||||
<div class="fs18 card-current-price fw6">
|
<div class="col-4 product-image-container mr15">
|
||||||
@include ('shop::products.price', [
|
<a :href="`${baseURL}/${product.urlKey}`" class="unset">
|
||||||
'product' => $product,
|
<div class="product-image" :style="`background-image: url(${product.image})`"></div>
|
||||||
'showDiscount' => false,
|
</a>
|
||||||
])
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<star-ratings ratings="{{ intval($productAverageRating) }}"></star-ratings>
|
<div class="col-8 no-padding card-body align-vertical-top">
|
||||||
</div>
|
<a :href="`${baseURL}/${product.urlKey}`" class="unset no-padding">
|
||||||
|
<span class="fs16 text-nowrap">@{{ product.name }}</span>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-html="product.priceHTML"
|
||||||
|
class="fs18 card-current-price fw6">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<star-ratings
|
||||||
|
push-class="display-inbl"
|
||||||
|
:ratings="product.rating">
|
||||||
|
</star-ratings>
|
||||||
|
|
||||||
|
<span class="fs16 text-nowrap align-text-bottom">@{{ product.totalReviews }} Reviews</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
</script>
|
||||||
</div>
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
(() => {
|
||||||
|
Vue.component('recently-viewed', {
|
||||||
|
template: '#recently-viewed-template',
|
||||||
|
props: ['addClass', 'addClassWrapper'],
|
||||||
|
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
baseURL: '{{ url()->to('/') }}',
|
||||||
|
recentlyViewed: (() => {
|
||||||
|
let slugs = JSON.parse(window.localStorage.recentlyViewed);
|
||||||
|
let updatedSlugs = {};
|
||||||
|
|
||||||
|
slugs.forEach(slug => {
|
||||||
|
updatedSlugs[slug] = {};
|
||||||
|
});
|
||||||
|
|
||||||
|
return updatedSlugs;
|
||||||
|
})(),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
created: function () {
|
||||||
|
for (slug in this.recentlyViewed) {
|
||||||
|
if (slug) {
|
||||||
|
this.$http(`${this.baseURL}/product-details/${slug}`)
|
||||||
|
.then(response => {
|
||||||
|
if (response.data.status) {
|
||||||
|
this.$set(this.recentlyViewed, response.data.details.urlKey, response.data.details);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
})()
|
||||||
|
</script>
|
||||||
|
@endpush
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="comment">
|
<div class="comment">
|
||||||
<label>Rating*</label>
|
<label>Description*</label>
|
||||||
<textarea rows="4" placeholder="Your Comment" name="comment"></textarea>
|
<textarea rows="4" placeholder="Your Comment" name="comment"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,116 +19,142 @@
|
||||||
<meta name="keywords" content="{{ $product->meta_keywords }}"/>
|
<meta name="keywords" content="{{ $product->meta_keywords }}"/>
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
@section('content-wrapper')
|
@push('css')
|
||||||
|
<style type="text/css">
|
||||||
|
.recently-viewed {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.store-meta-images > .recently-viewed:first-child {
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.categories-sidebar-container {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
@endpush
|
||||||
|
|
||||||
|
@section('full-content-wrapper')
|
||||||
{!! view_render_event('bagisto.shop.products.view.before', ['product' => $product]) !!}
|
{!! view_render_event('bagisto.shop.products.view.before', ['product' => $product]) !!}
|
||||||
|
|
||||||
@if ($showRecentlyViewed)
|
<div class="row no-margin">
|
||||||
<section class="col-7 offset-1 product-detail">
|
@if ($showRecentlyViewed)
|
||||||
@else
|
<section class="col-9 product-detail">
|
||||||
<section class="col-10 offset-1 product-detail">
|
@else
|
||||||
@endif
|
<section class="col-12 product-detail">
|
||||||
<div class="layouter">
|
@endif
|
||||||
<product-view>
|
<div class="layouter">
|
||||||
<div class="form-container">
|
<product-view>
|
||||||
@csrf()
|
<div class="form-container">
|
||||||
|
@csrf()
|
||||||
|
|
||||||
<input type="hidden" name="product_id" value="{{ $product->product_id }}">
|
<input type="hidden" name="product_id" value="{{ $product->product_id }}">
|
||||||
|
|
||||||
{{-- product-gallery --}}
|
{{-- product-gallery --}}
|
||||||
<div class="left col-lg-5">
|
<div class="left col-lg-5">
|
||||||
@include ('shop::products.view.gallery')
|
@include ('shop::products.view.gallery')
|
||||||
</div>
|
|
||||||
|
|
||||||
{{-- right-section --}}
|
|
||||||
<div class="right col-lg-7 scrollable">
|
|
||||||
{{-- product-info-section --}}
|
|
||||||
<div class="row info">
|
|
||||||
<h2 class="col-lg-12">{{ $product->name }}</h2>
|
|
||||||
|
|
||||||
@if ($total)
|
|
||||||
<div class="reviews col-lg-12">
|
|
||||||
<star-ratings
|
|
||||||
:ratings="{{ $avgStarRating }}"
|
|
||||||
push-class="mr5"
|
|
||||||
></star-ratings>
|
|
||||||
|
|
||||||
<div class="reviews">
|
|
||||||
<span>{{ $avgRatings }} Ratings and {{ $total }} Reviews</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
@include ('shop::products.view.stock', ['product' => $product])
|
|
||||||
|
|
||||||
<div class="col-12 price">
|
|
||||||
@include ('shop::products.price', ['product' => $product])
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@include ('shop::products.add-to-cart', [
|
{{-- right-section --}}
|
||||||
'product' => $product,
|
<div class="right col-lg-7 scrollable">
|
||||||
'showCartIcon' => false
|
{{-- product-info-section --}}
|
||||||
])
|
<div class="row info">
|
||||||
|
<h2 class="col-lg-12">{{ $product->name }}</h2>
|
||||||
|
|
||||||
|
@if ($total)
|
||||||
|
<div class="reviews col-lg-12">
|
||||||
|
<star-ratings
|
||||||
|
:ratings="{{ $avgStarRating }}"
|
||||||
|
push-class="mr5"
|
||||||
|
></star-ratings>
|
||||||
|
|
||||||
|
<div class="reviews">
|
||||||
|
<span>{{ $avgRatings }} Ratings and {{ $total }} Reviews</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@include ('shop::products.view.stock', ['product' => $product])
|
||||||
|
|
||||||
|
<div class="col-12 price">
|
||||||
|
@include ('shop::products.price', ['product' => $product])
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@include ('shop::products.add-to-cart', [
|
||||||
|
'product' => $product,
|
||||||
|
'showCartIcon' => false
|
||||||
|
])
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{!! view_render_event('bagisto.shop.products.view.short_description.before', ['product' => $product]) !!}
|
||||||
|
|
||||||
|
<div class="description">
|
||||||
|
<h3 class="col-lg-12">{{ __('velocity::app.products.short-description') }}</h3>
|
||||||
|
|
||||||
|
{!! $product->short_description !!}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{!! view_render_event('bagisto.shop.products.view.short_description.after', ['product' => $product]) !!}
|
||||||
|
|
||||||
|
|
||||||
|
{!! view_render_event('bagisto.shop.products.view.quantity.before', ['product' => $product]) !!}
|
||||||
|
|
||||||
|
@if ($product->getTypeInstance()->showQuantityBox())
|
||||||
|
<quantity-changer></quantity-changer>
|
||||||
|
@else
|
||||||
|
<input type="hidden" name="quantity" value="1">
|
||||||
|
@endif
|
||||||
|
|
||||||
|
{!! view_render_event('bagisto.shop.products.view.quantity.after', ['product' => $product]) !!}
|
||||||
|
|
||||||
|
@include ('shop::products.view.configurable-options')
|
||||||
|
|
||||||
|
@include ('shop::products.view.downloadable')
|
||||||
|
|
||||||
|
@include ('shop::products.view.grouped-products')
|
||||||
|
|
||||||
|
@include ('shop::products.view.bundle-options')
|
||||||
|
|
||||||
|
@include ('shop::products.view.attributes', [
|
||||||
|
'active' => true
|
||||||
|
])
|
||||||
|
|
||||||
|
{{-- product long description --}}
|
||||||
|
@include ('shop::products.view.description')
|
||||||
|
|
||||||
|
{{-- reviews count --}}
|
||||||
|
@include ('shop::products.view.reviews', ['accordian' => true])
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</product-view>
|
||||||
{!! view_render_event('bagisto.shop.products.view.short_description.before', ['product' => $product]) !!}
|
|
||||||
|
|
||||||
<div class="description">
|
|
||||||
<h3 class="col-lg-12">{{ __('velocity::app.products.short-description') }}</h3>
|
|
||||||
|
|
||||||
{!! $product->short_description !!}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.products.view.short_description.after', ['product' => $product]) !!}
|
|
||||||
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.products.view.quantity.before', ['product' => $product]) !!}
|
|
||||||
|
|
||||||
@if ($product->getTypeInstance()->showQuantityBox())
|
|
||||||
<quantity-changer></quantity-changer>
|
|
||||||
@else
|
|
||||||
<input type="hidden" name="quantity" value="1">
|
|
||||||
@endif
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.products.view.quantity.after', ['product' => $product]) !!}
|
|
||||||
|
|
||||||
@include ('shop::products.view.configurable-options')
|
|
||||||
|
|
||||||
@include ('shop::products.view.downloadable')
|
|
||||||
|
|
||||||
@include ('shop::products.view.grouped-products')
|
|
||||||
|
|
||||||
@include ('shop::products.view.bundle-options')
|
|
||||||
|
|
||||||
@include ('shop::products.view.attributes', [
|
|
||||||
'active' => true
|
|
||||||
])
|
|
||||||
|
|
||||||
{{-- product long description --}}
|
|
||||||
@include ('shop::products.view.description')
|
|
||||||
|
|
||||||
{{-- reviews count --}}
|
|
||||||
@include ('shop::products.view.reviews', ['accordian' => true])
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</product-view>
|
|
||||||
|
@include ('shop::products.view.related-products')
|
||||||
|
|
||||||
|
@include ('shop::products.view.up-sells')
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="store-meta-images col-3">
|
||||||
|
@foreach (json_decode($velocityMetaData['product_view_images'], true) as $image)
|
||||||
|
@if ($image && $image !== '')
|
||||||
|
<img src="{{ url()->to('/') }}/storage/{{ $image }}" />
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
|
||||||
|
@if ($showRecentlyViewed)
|
||||||
|
@include ('shop::products.list.recently-viewed')
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@include ('shop::products.view.related-products')
|
</div>
|
||||||
|
|
||||||
@include ('shop::products.view.up-sells')
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
@if ($showRecentlyViewed)
|
|
||||||
@include ('shop::products.list.recently-viewed')
|
|
||||||
@endif
|
|
||||||
|
|
||||||
{!! view_render_event('bagisto.shop.products.view.after', ['product' => $product]) !!}
|
{!! view_render_event('bagisto.shop.products.view.after', ['product' => $product]) !!}
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
|
|
||||||
<script type="text/x-template" id="product-view-template">
|
<script type="text/x-template" id="product-view-template">
|
||||||
<form method="POST" id="product-form" action="{{ route('cart.add', $product->product_id) }}" @click="onSubmit($event)">
|
<form method="POST" id="product-form" action="{{ route('cart.add', $product->product_id) }}" @click="onSubmit($event)">
|
||||||
|
|
||||||
|
|
@ -155,17 +181,33 @@
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
Vue.component('product-view', {
|
Vue.component('product-view', {
|
||||||
|
|
||||||
template: '#product-view-template',
|
|
||||||
|
|
||||||
inject: ['$validator'],
|
inject: ['$validator'],
|
||||||
|
template: '#product-view-template',
|
||||||
data: function() {
|
data: function() {
|
||||||
return {
|
return {
|
||||||
is_buy_now: 0,
|
is_buy_now: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
mounted: function () {
|
||||||
|
let currentProductId = '{{ $product->url_key }}';
|
||||||
|
let existingViewed = window.localStorage.getItem('recentlyViewed');
|
||||||
|
if (! existingViewed) {
|
||||||
|
existingViewed = [];
|
||||||
|
} else {
|
||||||
|
existingViewed = JSON.parse(existingViewed);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (existingViewed.indexOf(currentProductId) == -1) {
|
||||||
|
existingViewed.push(currentProductId);
|
||||||
|
|
||||||
|
if (existingViewed.length >= 4)
|
||||||
|
existingViewed = existingViewed.slice(Math.max(existingViewed.length - 4, 1));
|
||||||
|
|
||||||
|
window.localStorage.setItem('recentlyViewed', JSON.stringify(existingViewed));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
onSubmit: function(e) {
|
onSubmit: function(e) {
|
||||||
if (e.target.getAttribute('type') != 'submit')
|
if (e.target.getAttribute('type') != 'submit')
|
||||||
|
|
@ -189,9 +231,8 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
Vue.component('quantity-changer', {
|
Vue.component('quantity-changer', {
|
||||||
template: '#quantity-changer-template',
|
|
||||||
|
|
||||||
inject: ['$validator'],
|
inject: ['$validator'],
|
||||||
|
template: '#quantity-changer-template',
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
controlName: {
|
controlName: {
|
||||||
|
|
@ -257,8 +298,7 @@
|
||||||
var productHeroImage = document.getElementsByClassName('product-hero-image')[0];
|
var productHeroImage = document.getElementsByClassName('product-hero-image')[0];
|
||||||
|
|
||||||
if (thumbList && productHeroImage) {
|
if (thumbList && productHeroImage) {
|
||||||
|
for (let i=0; i < thumbFrame.length ; i++) {
|
||||||
for(let i=0; i < thumbFrame.length ; i++) {
|
|
||||||
thumbFrame[i].style.height = (productHeroImage.offsetHeight/4) + "px";
|
thumbFrame[i].style.height = (productHeroImage.offsetHeight/4) + "px";
|
||||||
thumbFrame[i].style.width = (productHeroImage.offsetHeight/4)+ "px";
|
thumbFrame[i].style.width = (productHeroImage.offsetHeight/4)+ "px";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -182,11 +182,13 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-lg-12 review-date-time">
|
<div class="col-lg-12 review-date-time">
|
||||||
<span>{{ __('velocity::app.products.review-by') }} -</span>
|
@if ("{{ $review->name }}")
|
||||||
|
<span>{{ __('velocity::app.products.review-by') }} -</span>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
{{ $review->name }},
|
{{ $review->name }},
|
||||||
</label>
|
</label>
|
||||||
|
@endif
|
||||||
|
|
||||||
<span>{{ core()->formatDate($review->created_at, 'F d, Y') }}
|
<span>{{ core()->formatDate($review->created_at, 'F d, Y') }}
|
||||||
</span>
|
</span>
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,29 @@
|
||||||
@inject ('wishListHelper', 'Webkul\Customer\Helpers\Wishlist')
|
@inject ('wishListHelper', 'Webkul\Customer\Helpers\Wishlist')
|
||||||
|
|
||||||
@auth('customer')
|
{!! view_render_event('bagisto.shop.products.wishlist.before') !!}
|
||||||
{!! view_render_event('bagisto.shop.products.wishlist.before') !!}
|
@auth('customer')
|
||||||
|
@php
|
||||||
|
$isWished = $wishListHelper->getWishlistProduct($product);
|
||||||
|
@endphp
|
||||||
|
|
||||||
@php
|
<a
|
||||||
$isWished = $wishListHelper->getWishlistProduct($product);
|
class="unset wishlist-icon col-4 offset-4 text-right"
|
||||||
@endphp
|
@if (! $isWished)
|
||||||
|
href="{{ route('customer.wishlist.add', $product->product_id) }}"
|
||||||
|
@elseif (isset($itemId) && $itemId)
|
||||||
|
href="{{ route('customer.wishlist.remove', $itemId) }}"
|
||||||
|
@endif
|
||||||
|
>
|
||||||
|
|
||||||
<a
|
<i class="fs24 {{ $isWished ? 'rango-heart-fill' : 'rango-heart'}}"></i>
|
||||||
class="unset wishlist-icon col-4 offset-4 text-right"
|
</a>
|
||||||
@if (! $isWished)
|
@endauth
|
||||||
href="{{ route('customer.wishlist.add', $product->product_id) }}"
|
|
||||||
@elseif (isset($itemId) && $itemId)
|
|
||||||
href="{{ route('customer.wishlist.remove', $itemId) }}"
|
|
||||||
@endif
|
|
||||||
>
|
|
||||||
|
|
||||||
<i class="fs24 {{ $isWished ? 'rango-heart-fill' : 'rango-heart'}}"></i>
|
@guest('customer')
|
||||||
</a>
|
<a
|
||||||
|
href="{{ route('customer.session.index') }}"
|
||||||
{!! view_render_event('bagisto.shop.products.wishlist.after') !!}
|
class="unset wishlist-icon col-4 offset-4 text-right">
|
||||||
@endauth
|
<i class="fs24 rango-heart"></i>
|
||||||
|
</a>
|
||||||
|
@endauth
|
||||||
|
{!! view_render_event('bagisto.shop.products.wishlist.after') !!}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue