Conflicts resolved

This commit is contained in:
Pranshu Tomar 2020-06-18 15:58:18 +05:30
commit 87b3f2acdc
22 changed files with 352 additions and 27 deletions

View File

@ -2,10 +2,13 @@
namespace Webkul\API\Http\Controllers\Shop;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
use Illuminate\Support\Facades\Password;
class ForgotPasswordController extends Controller
{
use SendsPasswordResetEmails;
/**
* Store a newly created resource in storage.
*

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
{
"/js/admin.js": "/js/admin.js?id=a14c779523092ac32b88",
"/css/admin.css": "/css/admin.css?id=e824b5c352609d2e9b66"
"/css/admin.css": "/css/admin.css?id=88c7c29cf850edc4bfb3"
}

View File

@ -416,6 +416,26 @@ return [
'name' => 'admin::app.acl.delete',
'route' => 'admin.cart-rules.delete',
'sort' => 3,
], [
'key' => 'promotions.catalog-rules',
'name' => 'admin::app.acl.catalog-rules',
'route' => 'admin.catalog-rules.index',
'sort' => 1,
], [
'key' => 'promotions.catalog-rules.create',
'name' => 'admin::app.acl.create',
'route' => 'admin.catalog-rules.index',
'sort' => 1,
], [
'key' => 'promotions.catalog-rules.edit',
'name' => 'admin::app.acl.edit',
'route' => 'admin.catalog-rules.edit',
'sort' => 2,
], [
'key' => 'promotions.catalog-rules.delete',
'name' => 'admin::app.acl.delete',
'route' => 'admin.catalog-rules.delete',
'sort' => 3,
],
];

View File

@ -319,4 +319,15 @@ body {
margin-top: 10px;
margin-bottom: 5px;
}
}
.ticket-list {
.control-group {
&.date {
&::after {
left: unset;
right: 10px;
}
}
}
}

View File

@ -244,12 +244,19 @@
.control-group.date {
&::after {
margin-right: -34px;
right: 70%;
position: absolute;
right: calc(70% - 40px);
}
}
.pagination .page-item .icon {
transform: rotate(180deg);
}
.slot-list {
.control-group.date::after {
top: 18px;
right: calc(100% - 40px);
}
}
}

View File

@ -75,7 +75,7 @@
<label class="ticket-label">{{ __('bookingproduct::app.admin.catalog.products.special-price-from') }}</label>
<datetime>
<input type="text" v-validate="'date_format:yyyy-MM-dd HH:mm:ss|after:{{\Carbon\Carbon::yesterday()->format('Y-m-d 23:59:59')}}'" :name="controlName + '[special_price_from]'" v-model="ticketItem.special_price_from" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.special-price-from') }}&quot;" ref="special_price_from" style="width:70%"/>
<input type="text" v-validate="'date_format:yyyy-MM-dd HH:mm:ss|after:{{\Carbon\Carbon::yesterday()->format('Y-m-d 23:59:59')}}'" :name="controlName + '[special_price_from]'" v-model="ticketItem.special_price_from" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.special-price-from') }}&quot;" ref="special_price_from" style="width:100%"/>
</datetime>
<span class="control-error" v-if="errors.has(controlName + '[special_price_from]')">@{{ errors.first(controlName + '[special_price_from]') }}</span>
@ -96,7 +96,7 @@
<label class="ticket-label">{{ __('bookingproduct::app.admin.catalog.products.special-price-to') }}</label>
<datetime>
<input type="text" v-validate="'date_format:yyyy-MM-dd HH:mm:ss|after:special_price_from'" :name="controlName + '[special_price_to]'" v-model="ticketItem.special_price_to" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.special-price-to') }}&quot;" ref="special_price_to" style="width:70%"/>
<input type="text" v-validate="'date_format:yyyy-MM-dd HH:mm:ss|after:special_price_from'" :name="controlName + '[special_price_to]'" v-model="ticketItem.special_price_to" class="control" data-vv-as="&quot;{{ __('bookingproduct::app.admin.catalog.products.special-price-to') }}&quot;" ref="special_price_to" style="width:100%"/>
</datetime>
<span class="control-error" v-if="errors.has(controlName + '[special_price_to]')">@{{ errors.first(controlName + '[special_price_to]') }}</span>

View File

@ -2,10 +2,13 @@
namespace Webkul\Customer\Http\Controllers;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
use Illuminate\Support\Facades\Password;
class ForgotPasswordController extends Controller
{
use SendsPasswordResetEmails;
/**
* Contains route related configuration
*

View File

@ -32,6 +32,7 @@ $factory->define(OrderItem::class, function (Faker $faker, array $attributes) {
'qty_invoiced' => 0,
'qty_canceled' => 0,
'qty_refunded' => 0,
'additional' => [],
'order_id' => function () {
return factory(Order::class)->create()->id;
},

View File

@ -2,10 +2,13 @@
namespace Webkul\User\Http\Controllers;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
use Illuminate\Support\Facades\Password;
class ForgetPasswordController extends Controller
{
use SendsPasswordResetEmails;
/**
* Contains route related configuration
*

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
{
"/js/velocity.js": "/js/velocity.js?id=8800d2830d2fa9f0254d",
"/js/velocity.js": "/js/velocity.js?id=2fdb2d6210b201deb11c",
"/css/velocity-admin.css": "/css/velocity-admin.css?id=612d35e452446366eef7",
"/css/velocity.css": "/css/velocity.css?id=aaf9dc15817e6b912dd2"
"/css/velocity.css": "/css/velocity.css?id=37c5d44764a05752f863"
}

View File

@ -221,10 +221,15 @@ $(document).ready(function () {
miniCartKey: 0,
quickView: false,
productDetails: [],
showPageLoader: false,
}
},
created: function () {
setTimeout(() => {
document.body.classList.remove("modal-open");
}, 0);
window.addEventListener('click', () => {
let modals = document.getElementsByClassName('sensitive-modal');
@ -331,6 +336,20 @@ $(document).ready(function () {
})
});
},
showLoader: function () {
$('#loader').show();
$('.overlay-loader').show();
document.body.classList.add("modal-open");
},
hideLoader: function () {
$('#loader').hide();
$('.overlay-loader').hide();
document.body.classList.remove("modal-open");
}
}
});

View File

@ -2445,3 +2445,88 @@
display: inline-block;
}
}
//CSS for loader
.cp-spinner {
width: 48px;
height: 48px;
position: absolute;
display: inline-block;
box-sizing: border-box;
left: calc(50% - 24px);
margin-top: calc(40% - 24px);
}
.overlay-loader {
top: 50%;
left: 50%;
z-index: 11;
position: fixed;
margin-top: -24px;
margin-left: -24px;
}
@media only screen and (max-width: 720px) {
.cp-spinner {
left: 50%;
margin-left: -24px;
top: 50%;
margin-top: -24px;
}
}
//Spinner style
.cp-round:before {
border-radius: 50%;
content: " ";
width: 48px;
height: 48px;
display: inline-block;
box-sizing: border-box;
border-top: solid 6px grey;
border-right: solid 6px grey;
border-bottom: solid 6px grey;
border-left: solid 6px grey;
position: absolute;
top: 0;
left: 0;
}
.cp-round:after {
border-radius: 50%;
content: " ";
width: 48px;
height: 48px;
display: inline-block;
box-sizing: border-box;
border-top: solid 6px $theme-color;
border-right: solid 6px transparent;
border-bottom: solid 6px transparent;
border-left: solid 6px transparent;
position: absolute;
top: 0;
left: 0;
animation: spin 1s ease-in-out infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.image-search-container {
top: 9px;
right: 45px;
z-index: 10;
cursor: pointer;
position: absolute;
background: #fff;
height: 24px !important;
}
.camera-icon {
width: 24px;
display: inline-block;
background-size: cover;
background-image: url(/vendor/webkul/ui/assets/images/Camera.svg);
}

View File

@ -138,6 +138,13 @@ body {
#cart-modal-content {
left: 0;
.small-card-container {
.rango-close {
left: unset;
right: -10px;
}
}
}
.category-list-container{
@ -265,6 +272,58 @@ body {
.modal-footer>:not(:last-child) {
margin-left: .25rem;
}
.compare-products {
.wishlist-icon {
left: 60px;
right: unset;
}
.material-icons.cross {
left: 20px;
right: unset;
}
}
#alert-container {
right: unset;
left: 15px;
}
.mini-cart-content {
~ .down-arrow-container {
.rango-arrow-down {
left: -15px;
}
}
}
.alert-dismissible {
.close {
left: -8px;
}
}
.booking-information {
.book-slots {
.control-group-container {
.form-group:not(.quantity).date:after {
left: 40px;
right: unset;
}
}
}
}
.full-content-wrapper {
> .container-fluid {
> .row {
&.pl-26 {
padding-right: 26% !important;
}
}
}
}
// Shared
.text-right {
@ -299,5 +358,11 @@ body {
.ml-5 {
margin-right: 3rem !important;
}
.mr15 {
margin-left: 15px !important;
}
.ml5 {
margin-right: 5px;
}
}
}

View File

@ -103,8 +103,10 @@
name="term"
type="search"
class="form-control"
:value="searchedQuery.term ? searchedQuery.term.split('+').join(' ') : ''"
placeholder="{{ __('velocity::app.header.search-text') }}" />
placeholder="{{ __('velocity::app.header.search-text') }}"
:value="searchedQuery.term ? searchedQuery.term.split('+').join(' ') : ''" />
{{-- <image-search-component></image-search-component> --}}
<button class="btn" type="submit" id="header-search-icon">
<i class="fs16 fw6 rango-search"></i>
@ -154,6 +156,9 @@
</div>
</script>
{{-- <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet"></script> --}}
<script type="text/x-template" id="sidebar-categories-template">
<div class="wrapper" v-if="rootCategories">
Hello World
@ -164,6 +169,26 @@
</div>
</script>
<script type="text/x-template" id="image-search-component-template">
<div class="d-inline-block">
<label class="image-search-container" for="image-search-container">
<i class="icon camera-icon"></i>
<input
type="file"
class="d-none"
ref="image_search_input"
id="image-search-container"
v-on:change="uploadImage()" />
<img
class="d-none"
id="uploaded-image-url"
:src="uploadedImageUrl" />
</label>
</div>
</script>
<script type="text/javascript">
(() => {
Vue.component('cart-btn', {
@ -319,5 +344,72 @@
}
}
});
Vue.component('image-search-component', {
template: '#image-search-component-template',
data: function() {
return {
uploadedImageUrl: ''
}
},
methods: {
uploadImage: function() {
debugger
this.$root.showLoader();
var formData = new FormData();
formData.append('image', this.$refs.image_search_input.files[0]);
axios.post(
"{{ route('shop.image.search.upload') }}",
formData,
{
headers: {
'Content-Type': 'multipart/form-data'
}
}
).then(response => {
var net;
this.uploadedImageUrl = response.data;
(async () => {
try {
var queryString = '';
var analysedResult = [];
net = await mobilenet.load();
const imgElement = document.getElementById('uploaded-image-url');
const result = await net.classify(imgElement);
result.forEach(value => {
queryString = value.className.split(',');
if (queryString.length > 1) {
analysedResult = analysedResult.concat(queryString)
} else {
analysedResult.push(queryString[0])
}
})
localStorage.searchedImageUrl = this.uploadedImageUrl;
queryString = localStorage.searched_terms = analysedResult.join('_');
this.$root.hideLoader();
window.location.href = "{{ route('shop.search.index') }}" + '?term=' + queryString + '&image-search=1';
} catch (error) {
this.$root.hideLoader();
};
})();
}).catch(() => {
debugger
this.$root.hideLoader();
});
}
}
});
})()
</script>

View File

@ -209,23 +209,22 @@
this.$validator.validateAll(scope)
.then(result => {
if (result) {
document.body.style.cursor = 'wait';
this.$root.showLoader();
switch (scope) {
case 'address-form':
this.saveAddress();
document.body.style.cursor = 'default';
break;
case 'shipping-form':
if (this.showShippingSection) {
document.body.style.cursor = 'wait';
this.$root.showLoader();
this.saveShipping();
break;
}
case 'payment-form':
document.body.style.cursor = 'wait';
this.$root.showLoader();
this.savePayment();
this.isPlaceOrderEnabled = ! this.validateAddressForm();
@ -301,7 +300,7 @@
console.log(this.is_customer_exist);
if (response.data)
document.body.style.cursor = 'default';
this.$root.hideLoader();
})
.catch(function (error) {})
})
@ -396,9 +395,12 @@
shippingMethods = response.data.shippingMethods;
this.getOrderSummary();
this.$root.hideLoader();
})
.catch(error => {
this.disable_button = false;
this.$root.hideLoader();
this.handleErrorResponse(error.response, 'address-form')
})
@ -409,12 +411,10 @@
this.$http.post("{{ route('shop.checkout.save-shipping') }}", {'shipping_method': this.selected_shipping_method})
.then(response => {
this.$root.hideLoader();
this.disable_button = false;
this.showPaymentSection = true;
document.body.style.cursor = 'default';
paymentHtml = Vue.compile(response.data.html)
this.completed_step = this.step_numbers[response.data.jump_to_section] + 1;
@ -431,7 +431,7 @@
})
.catch(error => {
this.disable_button = false;
this.$root.hideLoader();
this.handleErrorResponse(error.response, 'shipping-form')
})
},
@ -448,7 +448,7 @@
this.disable_button = false;
this.showSummarySection = true;
document.body.style.cursor = 'default';
this.$root.hideLoader();
reviewHtml = Vue.compile(response.data.html)
this.completed_step = this.step_numbers[response.data.jump_to_section] + 1;
@ -460,6 +460,7 @@
})
.catch(error => {
this.disable_button = false;
this.$root.hideLoader();
this.handleErrorResponse(error.response, 'payment-form')
});
}
@ -470,18 +471,23 @@
this.disable_button = false;
this.isPlaceOrderEnabled = false;
this.$root.showLoader();
this.$http.post("{{ route('shop.checkout.save-order') }}", {'_token': "{{ csrf_token() }}"})
.then(function(response) {
.then(response => {
if (response.data.success) {
if (response.data.redirect_url) {
this.$root.hideLoader();
window.location.href = response.data.redirect_url;
} else {
this.$root.hideLoader();
window.location.href = "{{ route('shop.checkout.success') }}";
}
}
})
.catch(error => {
this.disable_button = true;
this.$root.hideLoader();
window.showAlert(`alert-danger`, this.__('shop.general.alert.danger'), "{{ __('shop::app.common.error') }}");
})

View File

@ -10,7 +10,10 @@
<shimmer-component v-if="isLoading && !isMobileView"></shimmer-component>
<template v-else-if="newProducts.length > 0">
<card-list-header heading="{{ __('shop::app.home.new-products') }}">
<card-list-header
row-class="pl-26"
heading="{{ __('shop::app.home.new-products') }}"
>
</card-list-header>
{!! view_render_event('bagisto.shop.new-products.before') !!}

View File

@ -130,6 +130,10 @@
</div>
</div>
<div class="modal-parent" id="loader" style="top: 0" v-show="showPageLoader">
<overlay-loader :is-open="true"></overlay-loader>
</div>
</div>
<!-- below footer -->

View File

@ -2,8 +2,12 @@
@inject ('productRatingHelper', 'Webkul\Product\Helpers\Review')
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@php
$direction = core()->getCurrentLocale()->direction;
@endphp
<recently-viewed
add-class="{{ isset($addClass) ? $addClass : '' }}"
add-class="{{ isset($addClass) ? $addClass . " $direction": '' }}"
quantity="{{ isset($quantity) ? $quantity : null }}"
add-class-wrapper="{{ isset($addClassWrapper) ? $addClassWrapper : '' }}">
</recently-viewed>