All Scripts Are Moved To Footer

This commit is contained in:
devansh bawari 2020-09-18 13:56:43 +05:30
parent 891ae5c085
commit 44b489dded
11 changed files with 904 additions and 898 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><circle cx="12" cy="12" r="3.2"/><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></svg>

After

Width:  |  Height:  |  Size: 324 B

View File

@ -1,5 +1,5 @@
{
"/js/velocity.js": "/js/velocity.js?id=1163ad750316d05c0869",
"/css/velocity-admin.css": "/css/velocity-admin.css?id=612d35e452446366eef7",
"/css/velocity.css": "/css/velocity.css?id=8b1c7e45d2b61caa923a"
"/css/velocity-admin.css": "/css/velocity-admin.css?id=4322502d80a0e4a0affd",
"/css/velocity.css": "/css/velocity.css?id=3e4dedf3dd293f2a3389"
}

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><circle cx="12" cy="12" r="3.2"/><path d="M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></svg>

After

Width:  |  Height:  |  Size: 324 B

View File

@ -1528,7 +1528,7 @@
margin-bottom: 20px;
}
.instructions {
.instructions {
margin-top: 5px;
margin-left: -13px;
@ -2566,13 +2566,6 @@
height: 24px !important;
}
.camera-icon {
width: 24px;
display: inline-block;
background-size: cover;
background-image: url(/vendor/webkul/ui/assets/images/Camera.svg);
}
.image-search-result {
width: 100%;
padding: 20px;

View File

@ -6,6 +6,13 @@
background-image: url("../images/Icon-Velocity.svg");
}
.camera-icon {
background-image: url("../images/Camera.svg");
width: 24px;
display: inline-block;
background-size: cover;
}
.router-link-active,
.active {
.velocity-icon {

View File

@ -1,448 +1,446 @@
<style>
.camera-icon {
background-image: url("{{ asset('/vendor/webkul/ui/assets/images/Camera.svg') }}");
}
</style>
@push('scripts')
<script type="text/x-template" id="cart-btn-template">
<button
type="button"
id="mini-cart"
@click="toggleMiniCart"
:class="`btn btn-link disable-box-shadow ${itemCount == 0 ? 'cursor-not-allowed' : ''}`">
<script type="text/x-template" id="cart-btn-template">
<button
type="button"
id="mini-cart"
@click="toggleMiniCart"
:class="`btn btn-link disable-box-shadow ${itemCount == 0 ? 'cursor-not-allowed' : ''}`">
<div class="mini-cart-content">
<i class="material-icons-outlined text-down-3">shopping_cart</i>
<span class="badge" v-text="itemCount" v-if="itemCount != 0"></span>
<span class="fs18 fw6 cart-text">{{ __('velocity::app.minicart.cart') }}</span>
</div>
<div class="down-arrow-container">
<span class="rango-arrow-down"></span>
</div>
</button>
</script>
<div class="mini-cart-content">
<i class="material-icons-outlined text-down-3">shopping_cart</i>
<span class="badge" v-text="itemCount" v-if="itemCount != 0"></span>
<span class="fs18 fw6 cart-text">{{ __('velocity::app.minicart.cart') }}</span>
<script type="text/x-template" id="close-btn-template">
<button type="button" class="close disable-box-shadow">
<span class="white-text fs20" @click="togglePopup">×</span>
</button>
</script>
<script type="text/x-template" id="quantity-changer-template">
<div :class="`quantity control-group ${errors.has(controlName) ? 'has-error' : ''}`">
<label class="required">{{ __('shop::app.products.quantity') }}</label>
<button type="button" class="decrease" @click="decreaseQty()">-</button>
<input
:value="qty"
class="control"
:name="controlName"
:v-validate="validations"
data-vv-as="&quot;{{ __('shop::app.products.quantity') }}&quot;"
readonly />
<button type="button" class="increase" @click="increaseQty()">+</button>
<span class="control-error" v-if="errors.has(controlName)">@{{ errors.first(controlName) }}</span>
</div>
<div class="down-arrow-container">
<span class="rango-arrow-down"></span>
</div>
</button>
</script>
<script type="text/x-template" id="close-btn-template">
<button type="button" class="close disable-box-shadow">
<span class="white-text fs20" @click="togglePopup">×</span>
</button>
</script>
<script type="text/x-template" id="quantity-changer-template">
<div :class="`quantity control-group ${errors.has(controlName) ? 'has-error' : ''}`">
<label class="required">{{ __('shop::app.products.quantity') }}</label>
<button type="button" class="decrease" @click="decreaseQty()">-</button>
<input
:value="qty"
class="control"
:name="controlName"
:v-validate="validations"
data-vv-as="&quot;{{ __('shop::app.products.quantity') }}&quot;"
readonly />
<button type="button" class="increase" @click="increaseQty()">+</button>
<span class="control-error" v-if="errors.has(controlName)">@{{ errors.first(controlName) }}</span>
</div>
</script>
</script>
@endpush
@include('velocity::UI.header')
<script type="text/x-template" id="logo-template">
<a
:class="`left ${addClass}`"
href="{{ route('shop.home.index') }}">
@push('scripts')
<script type="text/x-template" id="logo-template">
<a
:class="`left ${addClass}`"
href="{{ route('shop.home.index') }}">
@if ($logo = core()->getCurrentChannel()->logo_url)
<img class="logo" src="{{ $logo }}" />
@else
<img class="logo" src="{{ asset('themes/velocity/assets/images/logo-text.png') }}" />
@endif
</a>
</script>
@if ($logo = core()->getCurrentChannel()->logo_url)
<img class="logo" src="{{ $logo }}" />
@else
<img class="logo" src="{{ asset('themes/velocity/assets/images/logo-text.png') }}" />
@endif
</a>
</script>
<script type="text/x-template" id="searchbar-template">
<div class="row no-margin right searchbar">
<div class="col-lg-5 col-md-12 no-padding input-group">
<form
method="GET"
role="search"
id="search-form"
action="{{ route('velocity.search.index') }}">
<script type="text/x-template" id="searchbar-template">
<div class="row no-margin right searchbar">
<div class="col-lg-5 col-md-12 no-padding input-group">
<form
method="GET"
role="search"
id="search-form"
action="{{ route('velocity.search.index') }}">
<div
class="btn-toolbar full-width"
role="toolbar">
<div
class="btn-toolbar full-width"
role="toolbar">
<div class="btn-group full-width">
<div class="selectdiv">
<select class="form-control fs13 styled-select" name="category" @change="focusInput($event)">
<option value="">
{{ __('velocity::app.header.all-categories') }}
</option>
<template v-for="(category, index) in $root.sharedRootCategories">
<option
:key="index"
selected="selected"
:value="category.id"
v-if="(category.id == searchedQuery.category)">
@{{ category.name }}
<div class="btn-group full-width">
<div class="selectdiv">
<select class="form-control fs13 styled-select" name="category" @change="focusInput($event)">
<option value="">
{{ __('velocity::app.header.all-categories') }}
</option>
<option :key="index" :value="category.id" v-else>
@{{ category.name }}
</option>
</template>
</select>
<template v-for="(category, index) in $root.sharedRootCategories">
<option
:key="index"
selected="selected"
:value="category.id"
v-if="(category.id == searchedQuery.category)">
@{{ category.name }}
</option>
<div class="select-icon-container">
<span class="select-icon rango-arrow-down"></span>
<option :key="index" :value="category.id" v-else>
@{{ category.name }}
</option>
</template>
</select>
<div class="select-icon-container">
<span class="select-icon rango-arrow-down"></span>
</div>
</div>
<div class="full-width">
<input
required
name="term"
type="search"
class="form-control"
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>
</button>
</div>
</div>
<div class="full-width">
<input
required
name="term"
type="search"
class="form-control"
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>
</button>
</div>
</div>
</div>
</form>
</div>
</form>
</div>
<div class="col-lg-7 col-md-12">
{!! view_render_event('bagisto.shop.layout.header.cart-item.before') !!}
@include('shop::checkout.cart.mini-cart')
{!! view_render_event('bagisto.shop.layout.header.cart-item.after') !!}
<div class="col-lg-7 col-md-12">
{!! view_render_event('bagisto.shop.layout.header.cart-item.before') !!}
@include('shop::checkout.cart.mini-cart')
{!! view_render_event('bagisto.shop.layout.header.cart-item.after') !!}
@php
$showCompare = core()->getConfigData('general.content.shop.compare_option') == "1" ? true : false
@endphp
@php
$showCompare = core()->getConfigData('general.content.shop.compare_option') == "1" ? true : false
@endphp
{!! view_render_event('bagisto.shop.layout.header.compare.before') !!}
@if ($showCompare)
<a
class="compare-btn unset"
@auth('customer')
href="{{ route('velocity.customer.product.compare') }}"
@endauth
{!! view_render_event('bagisto.shop.layout.header.compare.before') !!}
@if ($showCompare)
<a
class="compare-btn unset"
@auth('customer')
href="{{ route('velocity.customer.product.compare') }}"
@endauth
@guest('customer')
href="{{ route('velocity.product.compare') }}"
@endguest
>
@guest('customer')
href="{{ route('velocity.product.compare') }}"
@endguest
>
<i class="material-icons">compare_arrows</i>
<div class="badge-container" v-if="compareCount > 0">
<span class="badge" v-text="compareCount"></span>
<i class="material-icons">compare_arrows</i>
<div class="badge-container" v-if="compareCount > 0">
<span class="badge" v-text="compareCount"></span>
</div>
<span>{{ __('velocity::app.customer.compare.text') }}</span>
</a>
@endif
{!! view_render_event('bagisto.shop.layout.header.compare.after') !!}
{!! view_render_event('bagisto.shop.layout.header.wishlist.before') !!}
<a class="wishlist-btn unset" :href="`${isCustomer ? '{{ route('customer.wishlist.index') }}' : '{{ route('velocity.product.guest-wishlist') }}'}`">
<i class="material-icons">favorite_border</i>
<div class="badge-container" v-if="wishlistCount > 0">
<span class="badge" v-text="wishlistCount"></span>
</div>
<span>{{ __('velocity::app.customer.compare.text') }}</span>
<span>{{ __('shop::app.layouts.wishlist') }}</span>
</a>
@endif
{!! view_render_event('bagisto.shop.layout.header.compare.after') !!}
{!! view_render_event('bagisto.shop.layout.header.wishlist.before') !!}
<a class="wishlist-btn unset" :href="`${isCustomer ? '{{ route('customer.wishlist.index') }}' : '{{ route('velocity.product.guest-wishlist') }}'}`">
<i class="material-icons">favorite_border</i>
<div class="badge-container" v-if="wishlistCount > 0">
<span class="badge" v-text="wishlistCount"></span>
</div>
<span>{{ __('shop::app.layouts.wishlist') }}</span>
</a>
{!! view_render_event('bagisto.shop.layout.header.wishlist.after') !!}
{!! view_render_event('bagisto.shop.layout.header.wishlist.after') !!}
</div>
</div>
</div>
</script>
</script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet"></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="image-search-component-template">
<div class="d-inline-block">
<label class="image-search-container" for="image-search-container">
<i class="icon camera-icon"></i>
<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()" />
<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>
<img
class="d-none"
id="uploaded-image-url"
:src="uploadedImageUrl" />
</label>
</div>
</script>
<script type="text/javascript">
(() => {
Vue.component('cart-btn', {
template: '#cart-btn-template',
<script type="text/javascript">
(() => {
Vue.component('cart-btn', {
template: '#cart-btn-template',
props: ['itemCount'],
props: ['itemCount'],
methods: {
toggleMiniCart: function () {
let modal = $('#cart-modal-content')[0];
if (modal)
modal.classList.toggle('hide');
methods: {
toggleMiniCart: function () {
let modal = $('#cart-modal-content')[0];
if (modal)
modal.classList.toggle('hide');
let accountModal = $('.account-modal')[0];
if (accountModal)
accountModal.classList.add('hide');
let accountModal = $('.account-modal')[0];
if (accountModal)
accountModal.classList.add('hide');
event.stopPropagation();
}
}
});
Vue.component('close-btn', {
template: '#close-btn-template',
methods: {
togglePopup: function () {
$('#cart-modal-content').hide();
}
}
});
Vue.component('quantity-changer', {
template: '#quantity-changer-template',
inject: ['$validator'],
props: {
controlName: {
type: String,
default: 'quantity'
},
quantity: {
type: [Number, String],
default: 1
},
minQuantity: {
type: [Number, String],
default: 1
},
validations: {
type: String,
default: 'required|numeric|min_value:1'
}
},
data: function() {
return {
qty: this.quantity
}
},
watch: {
quantity: function (val) {
this.qty = val;
this.$emit('onQtyUpdated', this.qty)
}
},
methods: {
decreaseQty: function() {
if (this.qty > this.minQuantity)
this.qty = parseInt(this.qty) - 1;
this.$emit('onQtyUpdated', this.qty)
},
increaseQty: function() {
this.qty = parseInt(this.qty) + 1;
this.$emit('onQtyUpdated', this.qty)
}
}
});
Vue.component('logo-component', {
template: '#logo-template',
props: ['addClass'],
});
Vue.component('searchbar-component', {
template: '#searchbar-template',
data: function () {
return {
compareCount: 0,
wishlistCount: 0,
searchedQuery: [],
isCustomer: '{{ auth()->guard('customer')->user() ? "true" : "false" }}' == "true",
}
},
watch: {
'$root.headerItemsCount': function () {
this.updateHeaderItemsCount();
}
},
created: function () {
let searchedItem = window.location.search.replace("?", "");
searchedItem = searchedItem.split('&');
let updatedSearchedCollection = {};
searchedItem.forEach(item => {
let splitedItem = item.split('=');
updatedSearchedCollection[splitedItem[0]] = decodeURI(splitedItem[1]);
});
if (updatedSearchedCollection['image-search'] == 1) {
updatedSearchedCollection.term = '';
}
this.searchedQuery = updatedSearchedCollection;
this.updateHeaderItemsCount();
},
methods: {
'focusInput': function (event) {
$(event.target.parentElement.parentElement).find('input').focus();
},
'updateHeaderItemsCount': function () {
if (! this.isCustomer) {
let comparedItems = this.getStorageValue('compared_product');
let wishlistedItems = this.getStorageValue('wishlist_product');
if (wishlistedItems) {
this.wishlistCount = wishlistedItems.length;
}
if (comparedItems) {
this.compareCount = comparedItems.length;
}
} else {
this.$http.get(`${this.$root.baseUrl}/items-count`)
.then(response => {
this.compareCount = response.data.compareProductsCount;
this.wishlistCount = response.data.wishlistedProductsCount;
})
.catch(exception => {
console.log(this.__('error.something_went_wrong'));
});
event.stopPropagation();
}
}
}
});
});
Vue.component('image-search-component', {
template: '#image-search-component-template',
data: function() {
return {
uploadedImageUrl: ''
Vue.component('close-btn', {
template: '#close-btn-template',
methods: {
togglePopup: function () {
$('#cart-modal-content').hide();
}
}
},
});
methods: {
uploadImage: function() {
var imageInput = this.$refs.image_search_input;
Vue.component('quantity-changer', {
template: '#quantity-changer-template',
inject: ['$validator'],
props: {
controlName: {
type: String,
default: 'quantity'
},
if (imageInput.files && imageInput.files[0]) {
if (imageInput.files[0].type.includes('image/')) {
this.$root.showLoader();
quantity: {
type: [Number, String],
default: 1
},
var formData = new FormData();
minQuantity: {
type: [Number, String],
default: 1
},
formData.append('image', imageInput.files[0]);
validations: {
type: String,
default: 'required|numeric|min_value:1'
}
},
axios.post(
"{{ route('shop.image.search.upload') }}",
formData,
{
headers: {
'Content-Type': 'multipart/form-data'
data: function() {
return {
qty: this.quantity
}
},
watch: {
quantity: function (val) {
this.qty = val;
this.$emit('onQtyUpdated', this.qty)
}
},
methods: {
decreaseQty: function() {
if (this.qty > this.minQuantity)
this.qty = parseInt(this.qty) - 1;
this.$emit('onQtyUpdated', this.qty)
},
increaseQty: function() {
this.qty = parseInt(this.qty) + 1;
this.$emit('onQtyUpdated', this.qty)
}
}
});
Vue.component('logo-component', {
template: '#logo-template',
props: ['addClass'],
});
Vue.component('searchbar-component', {
template: '#searchbar-template',
data: function () {
return {
compareCount: 0,
wishlistCount: 0,
searchedQuery: [],
isCustomer: '{{ auth()->guard('customer')->user() ? "true" : "false" }}' == "true",
}
},
watch: {
'$root.headerItemsCount': function () {
this.updateHeaderItemsCount();
}
},
created: function () {
let searchedItem = window.location.search.replace("?", "");
searchedItem = searchedItem.split('&');
let updatedSearchedCollection = {};
searchedItem.forEach(item => {
let splitedItem = item.split('=');
updatedSearchedCollection[splitedItem[0]] = decodeURI(splitedItem[1]);
});
if (updatedSearchedCollection['image-search'] == 1) {
updatedSearchedCollection.term = '';
}
this.searchedQuery = updatedSearchedCollection;
this.updateHeaderItemsCount();
},
methods: {
'focusInput': function (event) {
$(event.target.parentElement.parentElement).find('input').focus();
},
'updateHeaderItemsCount': function () {
if (! this.isCustomer) {
let comparedItems = this.getStorageValue('compared_product');
let wishlistedItems = this.getStorageValue('wishlist_product');
if (wishlistedItems) {
this.wishlistCount = wishlistedItems.length;
}
if (comparedItems) {
this.compareCount = comparedItems.length;
}
} else {
this.$http.get(`${this.$root.baseUrl}/items-count`)
.then(response => {
this.compareCount = response.data.compareProductsCount;
this.wishlistCount = response.data.wishlistedProductsCount;
})
.catch(exception => {
console.log(this.__('error.something_went_wrong'));
});
}
}
}
});
Vue.component('image-search-component', {
template: '#image-search-component-template',
data: function() {
return {
uploadedImageUrl: ''
}
},
methods: {
uploadImage: function() {
var imageInput = this.$refs.image_search_input;
if (imageInput.files && imageInput.files[0]) {
if (imageInput.files[0].type.includes('image/')) {
this.$root.showLoader();
var formData = new FormData();
formData.append('image', imageInput.files[0]);
axios.post(
"{{ route('shop.image.search.upload') }}",
formData,
{
headers: {
'Content-Type': 'multipart/form-data'
}
}
}
).then(response => {
var net;
var self = this;
this.uploadedImageUrl = response.data;
).then(response => {
var net;
var self = this;
this.uploadedImageUrl = response.data;
async function app() {
var analysedResult = [];
async function app() {
var analysedResult = [];
var queryString = '';
var queryString = '';
net = await mobilenet.load();
net = await mobilenet.load();
const imgElement = document.getElementById('uploaded-image-url');
const imgElement = document.getElementById('uploaded-image-url');
try {
const result = await net.classify(imgElement);
try {
const result = await net.classify(imgElement);
result.forEach(function(value) {
queryString = value.className.split(',');
result.forEach(function(value) {
queryString = value.className.split(',');
if (queryString.length > 1) {
analysedResult = analysedResult.concat(queryString)
} else {
analysedResult.push(queryString[0])
}
});
} catch (error) {
self.$root.hideLoader();
window.showAlert(
`alert-danger`,
this.__('shop.general.alert.error'),
"{{ __('shop::app.common.error') }}"
);
}
localStorage.searchedImageUrl = self.uploadedImageUrl;
queryString = localStorage.searched_terms = analysedResult.join('_');
if (queryString.length > 1) {
analysedResult = analysedResult.concat(queryString)
} else {
analysedResult.push(queryString[0])
}
});
} catch (error) {
self.$root.hideLoader();
window.showAlert(
`alert-danger`,
this.__('shop.general.alert.error'),
"{{ __('shop::app.common.error') }}"
);
window.location.href = "{{ route('shop.search.index') }}" + '?term=' + queryString + '&image-search=1';
}
localStorage.searchedImageUrl = self.uploadedImageUrl;
app();
}).catch(() => {
this.$root.hideLoader();
queryString = localStorage.searched_terms = analysedResult.join('_');
window.showAlert(
`alert-danger`,
this.__('shop.general.alert.error'),
"{{ __('shop::app.common.error') }}"
);
});
} else {
imageInput.value = '';
self.$root.hideLoader();
window.location.href = "{{ route('shop.search.index') }}" + '?term=' + queryString + '&image-search=1';
}
app();
}).catch(() => {
this.$root.hideLoader();
window.showAlert(
`alert-danger`,
this.__('shop.general.alert.error'),
"{{ __('shop::app.common.error') }}"
);
});
} else {
imageInput.value = '';
alert('Only images (.jpeg, .jpg, .png, ..) are allowed.');
alert('Only images (.jpeg, .jpg, .png, ..) are allowed.');
}
}
}
}
}
});
})()
</script>
});
})()
</script>
@endpush

View File

@ -1,7 +1,7 @@
@php
$velocityHelper = app('Webkul\Velocity\Helpers\Helper');
$velocityMetaData = $velocityHelper->getVelocityMetaData();
view()->share('velocityMetaData', $velocityMetaData);
@endphp
@ -31,22 +31,6 @@
<link rel="icon" sizes="16x16" href="{{ asset('/themes/velocity/assets/images/static/v-icon.png') }}" />
@endif
<script
type="text/javascript"
src="{{ asset('themes/velocity/assets/js/jquery.min.js') }}">
</script>
<script
type="text/javascript"
baseUrl="{{ url()->to('/') }}"
src="{{ asset('themes/velocity/assets/js/velocity.js') }}">
</script>
<script
type="text/javascript"
src="{{ asset('themes/velocity/assets/js/jquery.ez-plus.js') }}">
</script>
@yield('head')
@section('seo')
@ -204,6 +188,22 @@
})();
</script>
<script
type="text/javascript"
src="{{ asset('themes/velocity/assets/js/jquery.min.js') }}">
</script>
<script
type="text/javascript"
src="{{ asset('themes/velocity/assets/js/jquery.ez-plus.js') }}">
</script>
<script
type="text/javascript"
baseUrl="{{ url()->to('/') }}"
src="{{ asset('themes/velocity/assets/js/velocity.js') }}">
</script>
<script
type="text/javascript"
src="{{ asset('vendor/webkul/ui/assets/js/ui.js') }}">

View File

@ -16,6 +16,8 @@ mix
"js/velocity.js"
)
.copy(__dirname + "/src/Resources/assets/images", publicPath + "/images")
.sass(
__dirname + '/src/Resources/assets/sass/admin.scss',
__dirname + '/' + publicPath + '/css/velocity-admin.css'