updated /profile/edit
This commit is contained in:
commit
20fc8f8c53
|
|
@ -31,7 +31,7 @@ return [
|
|||
|
|
||||
*/
|
||||
|
||||
'guard' => ['customer'],
|
||||
'guard' => ['admin', 'customer'],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace TPS\API\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
|
@ -127,4 +128,58 @@ class Customers extends \Webkul\RestApi\Http\Controllers\V1\Shop\Customer\AuthCo
|
|||
'message' => 'Your account has been updated successfully.',
|
||||
]);
|
||||
}
|
||||
|
||||
public function resetPassword(Request $request)
|
||||
{
|
||||
$validation = Validator::make($request->all(), [
|
||||
'phone' => 'required|digits:8',
|
||||
]);
|
||||
|
||||
if ($validation->fails()) {
|
||||
|
||||
return response()->json(['errors'=>$validation->getMessageBag()->all()],422);
|
||||
}
|
||||
|
||||
if($customer = $this->customerRepository
|
||||
->where('phone', $request->phone)
|
||||
->first()){
|
||||
|
||||
$token = rand(1000,9999);
|
||||
|
||||
$customer->token = $token;
|
||||
$customer->save();
|
||||
|
||||
Event::dispatch('shop.register.verify', ['phone' => $request->phone,'token' => $token]);
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function updatePassword(Request $request){
|
||||
$validation = Validator::make($request->all(), [
|
||||
'phone' => 'required|digits:8',
|
||||
'token' => 'required',
|
||||
'password' => 'required|min:6'
|
||||
]);
|
||||
|
||||
if ($validation->fails()) {
|
||||
|
||||
return response()->json(['errors'=>$validation->getMessageBag()->all()],422);
|
||||
}
|
||||
|
||||
if($customer = $this->customerRepository
|
||||
->where('phone', $request->phone)
|
||||
->where('token', $request->token)
|
||||
->first()){
|
||||
|
||||
$customer->password = bcrypt($request->password);
|
||||
$customer->save();
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
}else{
|
||||
return response()->json(['success'=> false],422);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -44,6 +44,9 @@ Route::group(['prefix' => 'api','middleware' => ['locale', 'currency']], functio
|
|||
*/
|
||||
Route::post('customer/login', [Customers::class, 'login']);
|
||||
Route::post('customer/register', [Customers::class, 'register']);
|
||||
Route::post('customer/reset_password', [Customers::class, 'resetPassword']);
|
||||
Route::post('customer/update_password', [Customers::class, 'updatePassword']);
|
||||
|
||||
Route::group(['middleware' => ['auth:sanctum', 'sanctum.customer'],'prefix' =>'customer'], function () {
|
||||
Route::put('profile', [Customers::class, 'update']);
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="40" height="25" viewBox="0 0 40 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M21.4689 12.5L25.9481 8.03124C26.1442 7.83509 26.2544 7.56905 26.2544 7.29166C26.2544 7.01426 26.1442 6.74822 25.9481 6.55207C25.7519 6.35592 25.4859 6.24573 25.2085 6.24573C24.9311 6.24573 24.6651 6.35592 24.4689 6.55207L20.0002 11.0312L15.5314 6.55207C15.3353 6.35592 15.0692 6.24573 14.7918 6.24573C14.5144 6.24573 14.2484 6.35592 14.0523 6.55207C13.8561 6.74822 13.7459 7.01426 13.7459 7.29166C13.7459 7.56905 13.8561 7.83509 14.0523 8.03124L18.5314 12.5L14.0523 16.9687C13.9546 17.0656 13.8771 17.1808 13.8243 17.3077C13.7714 17.4347 13.7441 17.5708 13.7441 17.7083C13.7441 17.8458 13.7714 17.982 13.8243 18.1089C13.8771 18.2359 13.9546 18.3511 14.0523 18.4479C14.1491 18.5455 14.2643 18.623 14.3912 18.6759C14.5182 18.7288 14.6543 18.756 14.7918 18.756C14.9294 18.756 15.0655 18.7288 15.1924 18.6759C15.3194 18.623 15.4346 18.5455 15.5314 18.4479L20.0002 13.9687L24.4689 18.4479C24.5658 18.5455 24.681 18.623 24.8079 18.6759C24.9349 18.7288 25.071 18.756 25.2085 18.756C25.346 18.756 25.4822 18.7288 25.6091 18.6759C25.7361 18.623 25.8513 18.5455 25.9481 18.4479C26.0457 18.3511 26.1232 18.2359 26.1761 18.1089C26.229 17.982 26.2562 17.8458 26.2562 17.7083C26.2562 17.5708 26.229 17.4347 26.1761 17.3077C26.1232 17.1808 26.0457 17.0656 25.9481 16.9687L21.4689 12.5Z" fill="#C3000E"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="40" height="25" viewBox="0 0 40 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M21.4689 12.5L25.9481 8.03124C26.1442 7.83509 26.2544 7.56905 26.2544 7.29166C26.2544 7.01426 26.1442 6.74822 25.9481 6.55207C25.7519 6.35592 25.4859 6.24573 25.2085 6.24573C24.9311 6.24573 24.6651 6.35592 24.4689 6.55207L20.0002 11.0312L15.5314 6.55207C15.3353 6.35592 15.0692 6.24573 14.7918 6.24573C14.5144 6.24573 14.2484 6.35592 14.0523 6.55207C13.8561 6.74822 13.7459 7.01426 13.7459 7.29166C13.7459 7.56905 13.8561 7.83509 14.0523 8.03124L18.5314 12.5L14.0523 16.9687C13.9546 17.0656 13.8771 17.1808 13.8243 17.3077C13.7714 17.4347 13.7441 17.5708 13.7441 17.7083C13.7441 17.8458 13.7714 17.982 13.8243 18.1089C13.8771 18.2359 13.9546 18.3511 14.0523 18.4479C14.1491 18.5455 14.2643 18.623 14.3912 18.6759C14.5182 18.7288 14.6543 18.756 14.7918 18.756C14.9294 18.756 15.0655 18.7288 15.1924 18.6759C15.3194 18.623 15.4346 18.5455 15.5314 18.4479L20.0002 13.9687L24.4689 18.4479C24.5658 18.5455 24.681 18.623 24.8079 18.6759C24.9349 18.7288 25.071 18.756 25.2085 18.756C25.346 18.756 25.4822 18.7288 25.6091 18.6759C25.7361 18.623 25.8513 18.5455 25.9481 18.4479C26.0457 18.3511 26.1232 18.2359 26.1761 18.1089C26.229 17.982 26.2562 17.8458 26.2562 17.7083C26.2562 17.5708 26.229 17.4347 26.1761 17.3077C26.1232 17.1808 26.0457 17.0656 25.9481 16.9687L21.4689 12.5Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.6 KiB |
|
|
@ -53,7 +53,7 @@ $(document).ready(function () {
|
|||
loginBtn.addEventListener('click', () => {
|
||||
regForm.style.display = 'none';
|
||||
passRecNr.style.display = 'none';
|
||||
passRecSMS.style.display = 'none';
|
||||
// passRecSMS.style.display = 'none';
|
||||
loginFormSection.style.display = 'block';
|
||||
body.style.overflowY = 'hidden';
|
||||
});
|
||||
|
|
@ -82,8 +82,8 @@ $(document).ready(function () {
|
|||
passRecNr.style.display = 'block';
|
||||
loginForm.style.display = 'none';
|
||||
});
|
||||
smsTrig.addEventListener('click', () => {
|
||||
passRecNr.style.display = 'none';
|
||||
passRecSMS.style.display = 'block';
|
||||
});
|
||||
// smsTrig.addEventListener('click', () => {
|
||||
// passRecNr.style.display = 'none';
|
||||
// passRecSMS.style.display = 'block';
|
||||
// });
|
||||
});
|
||||
|
|
|
|||
|
|
@ -151,6 +151,12 @@ let signUpWrapper = document.querySelector('.sign-up-wrapper');
|
|||
let signUpContainer = document.querySelector('.sign-up-container');
|
||||
let burgerSignIn = document.querySelector('.burger-sign-in');
|
||||
let burgerSignUp = document.querySelector('.burger-sign-up');
|
||||
const confirmBlock = document.querySelector('.login-form.confirm');
|
||||
|
||||
confirmBlock.addEventListener('click', () => {
|
||||
regForm.style.display = 'block';
|
||||
confirmBlock.style.display = 'block';
|
||||
});
|
||||
|
||||
burgerSignIn.addEventListener('click', () => {
|
||||
burgerElement.classList.add('hidden-burger');
|
||||
|
|
@ -158,6 +164,7 @@ burgerSignIn.addEventListener('click', () => {
|
|||
passRecNr.style.display = 'none';
|
||||
passRecSMS.style.display = 'none';
|
||||
loginFormSection.style.display = 'block';
|
||||
confirmBlock.style.display = 'none';
|
||||
body.style.overflowY = 'hidden';
|
||||
});
|
||||
|
||||
|
|
@ -178,12 +185,14 @@ signUpContainer.addEventListener('click', (event) => {
|
|||
regForm.style.display = 'none';
|
||||
passRecNr.style.display = 'none';
|
||||
passRecSMS.style.display = 'none';
|
||||
confirmBlock.style.display = 'none';
|
||||
loginForm.style.display = 'block';
|
||||
body.style.overflowY = 'auto';
|
||||
}
|
||||
});
|
||||
|
||||
loginBtn.addEventListener('click', () => {
|
||||
confirmBlock.style.display = 'none';
|
||||
regForm.style.display = 'none';
|
||||
passRecNr.style.display = 'none';
|
||||
passRecSMS.style.display = 'none';
|
||||
|
|
|
|||
|
|
@ -173,6 +173,12 @@
|
|||
'm1 s2';
|
||||
}
|
||||
|
||||
.delivery-content-bottom {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
.delivery-content-bottom-inner:not(:last-child) {
|
||||
margin-right: 2rem;
|
||||
}
|
||||
|
|
@ -379,6 +385,100 @@
|
|||
right: 0;
|
||||
}
|
||||
|
||||
.dc-head {
|
||||
border-radius: 1rem;
|
||||
background: rgb(36, 36, 36);
|
||||
}
|
||||
|
||||
.dc-row {
|
||||
align-items: center;
|
||||
display: grid;
|
||||
padding: 2.8rem 2.5rem;
|
||||
grid-template-columns: 5fr 3fr 2fr 1fr;
|
||||
}
|
||||
|
||||
.dc-row:not(:last-child) {
|
||||
border-bottom: 0.1rem solid #cecece;
|
||||
}
|
||||
|
||||
.dc-head button {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.delivery-content-table {
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.dc-content-inner {
|
||||
min-width: 80rem;
|
||||
}
|
||||
|
||||
.delivery-content-table button {
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dc-head p:first-child {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.dc-head p {
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
.dc-text {
|
||||
font-size: 1.8rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.dc-img {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.dc-name {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
.dc-name-text {
|
||||
font-weight: bold;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
|
||||
.dc-quantity {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.dc-add {
|
||||
padding: 1rem 1.8rem;
|
||||
font-size: 1.8rem;
|
||||
border-top-right-radius: 0.5rem;
|
||||
border-bottom-right-radius: 0.5rem;
|
||||
background: #f7f7f7;
|
||||
}
|
||||
|
||||
.dc-subtract {
|
||||
border-top-left-radius: 0.5rem;
|
||||
border-bottom-left-radius: 0.5rem;
|
||||
padding: 1rem 1.8rem;
|
||||
font-size: 1.8rem;
|
||||
background: #f7f7f7;
|
||||
}
|
||||
|
||||
.dc-quantity input {
|
||||
background: #f7f7f7;
|
||||
width: 3rem;
|
||||
padding: 1rem 1.8rem;
|
||||
border: none;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1440px) {
|
||||
.delivery-content-inner-title {
|
||||
padding-bottom: 3rem;
|
||||
|
|
|
|||
|
|
@ -759,6 +759,8 @@ input.quantity {
|
|||
}
|
||||
|
||||
.quantity-wrapper {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
font-size: 1.4rem;
|
||||
/* background: lightgray; */
|
||||
border-radius: 0.5rem;
|
||||
|
|
@ -870,6 +872,10 @@ input.quantity {
|
|||
|
||||
/* MEDIA QUERIES ======================================== */
|
||||
@media screen and (max-width: 1210px) {
|
||||
.quantity-wrapper {
|
||||
width: 18rem;
|
||||
}
|
||||
|
||||
.upper-section {
|
||||
display: -ms-grid;
|
||||
display: grid;
|
||||
|
|
|
|||
|
|
@ -296,6 +296,8 @@ body::-webkit-scrollbar {
|
|||
}
|
||||
|
||||
.sign-up-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
color: #c3000e;
|
||||
|
|
@ -501,7 +503,7 @@ body::-webkit-scrollbar {
|
|||
border: none;
|
||||
border-radius: 0.5rem;
|
||||
background: #f2f2f2;
|
||||
padding-left: 2rem;
|
||||
padding: 0 2rem;
|
||||
color: #000;
|
||||
font-family: 'Open sans', sans-serif;
|
||||
}
|
||||
|
|
@ -888,6 +890,7 @@ button.nav-link {
|
|||
padding-bottom: 3rem;
|
||||
flex-direction: column;
|
||||
height: 45rem;
|
||||
max-width: 90rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1054,6 +1054,86 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="delivery-content-table">
|
||||
<div class="dc-content-inner">
|
||||
<div class="dc-head dc-row">
|
||||
<p>Наименование</p>
|
||||
<p>Количество</p>
|
||||
<p>Цена</p>
|
||||
<button type="button">
|
||||
<img src="../assets/icons/cross-white.svg" alt="">
|
||||
</button>
|
||||
</div>
|
||||
<div class="dc-row">
|
||||
<div class="dc-name">
|
||||
<div class="dc-img">
|
||||
<img src="../assets/images/smartphone.jpg" alt="">
|
||||
</div>
|
||||
<p class="dc-name-text">Смартфон Apple iPhone 11</p>
|
||||
</div>
|
||||
<div class="dc-quantity">
|
||||
<button type="button" class="dc-subtract">-</button>
|
||||
<input type="number" aria-valuenow="0" readonly>
|
||||
<button type="button" class="dc-add">+</button>
|
||||
</div>
|
||||
<p class="dc-text dc-price">12.00 TMT</p>
|
||||
<button type="button" class="dc-img">
|
||||
<img src="../assets/icons/cross-red.svg" alt="">
|
||||
</button>
|
||||
</div>
|
||||
<div class="dc-row">
|
||||
<div class="dc-name">
|
||||
<div class="dc-img">
|
||||
<img src="../assets/images/smartphone.jpg" alt="">
|
||||
</div>
|
||||
<p class="dc-name-text">Смартфон Apple iPhone 11</p>
|
||||
</div>
|
||||
<div class="dc-quantity">
|
||||
<button type="button" class="dc-subtract">-</button>
|
||||
<input type="number" aria-valuenow="0" readonly>
|
||||
<button type="button" class="dc-add">+</button>
|
||||
</div>
|
||||
<p class="dc-text dc-price">12.00 TMT</p>
|
||||
<button type="button" class="dc-img">
|
||||
<img src="../assets/icons/cross-red.svg" alt="">
|
||||
</button>
|
||||
</div>
|
||||
<div class="dc-row">
|
||||
<div class="dc-name">
|
||||
<div class="dc-img">
|
||||
<img src="../assets/images/smartphone.jpg" alt="">
|
||||
</div>
|
||||
<p class="dc-name-text">Смартфон Apple iPhone 11</p>
|
||||
</div>
|
||||
<div class="dc-quantity">
|
||||
<button type="button" class="dc-subtract">-</button>
|
||||
<input type="number" aria-valuenow="0" readonly>
|
||||
<button type="button" class="dc-add">+</button>
|
||||
</div>
|
||||
<p class="dc-text dc-price">12.00 TMT</p>
|
||||
<button type="button" class="dc-img">
|
||||
<img src="../assets/icons/cross-red.svg" alt="">
|
||||
</button>
|
||||
</div>
|
||||
<div class="dc-row">
|
||||
<div class="dc-name">
|
||||
<div class="dc-img">
|
||||
<img src="../assets/images/smartphone.jpg" alt="">
|
||||
</div>
|
||||
<p class="dc-name-text">Смартфон Apple iPhone 11</p>
|
||||
</div>
|
||||
<div class="dc-quantity">
|
||||
<button type="button" class="dc-subtract">-</button>
|
||||
<input type="number" aria-valuenow="0" readonly>
|
||||
<button type="button" class="dc-add">+</button>
|
||||
</div>
|
||||
<p class="dc-text dc-price">12.00 TMT</p>
|
||||
<button type="button" class="dc-img">
|
||||
<img src="../assets/icons/cross-red.svg" alt="">
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="deliver-content-bottom-third">
|
||||
<button class="checkout-button" type="submit"><span>Оформить заказ</span></button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -91,6 +91,31 @@
|
|||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="login-form confirm">
|
||||
<div class="sign-up-title">
|
||||
<p>Регистрация</p>
|
||||
<div class="sign-up-exit-img">
|
||||
<img src="../assets/icons/cancel.svg" alt="exit">
|
||||
</div>
|
||||
</div>
|
||||
<form class="sign-up-content">
|
||||
<div class="sign-up-input">
|
||||
<span>Мы отправили SMS с шестизначным кодом подтверждения на номер +993 61 62-63-64</span>
|
||||
<div class="sign-up-input"></div>
|
||||
</div>
|
||||
<div class="sign-up-input">
|
||||
<span>Код из смс сообщения</span>
|
||||
<div class="dif-input">
|
||||
<input type="text">
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="log-in">Отправить</button>
|
||||
<div class="sign-up-footer">
|
||||
<span>Сообщение не пришло?</span>
|
||||
<button class="sign-up-btn sign-up-btn-return">Отправить заново.</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="login-form password-recovery-nr">
|
||||
<div class="sign-up-title">
|
||||
<p>Восстановление пароля</p>
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class Registration extends Controller
|
|||
|
||||
session(['signup' => $data]);
|
||||
|
||||
Event::dispatch('shop.register.verify', $data);
|
||||
Event::dispatch('shop.register.verify', $request->merge(['token'=>$data['token']]));
|
||||
|
||||
// $customer = $this->customerRepository->create($data);
|
||||
|
||||
|
|
@ -127,7 +127,6 @@ class Registration extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
|
||||
public function update(CustomerProfileRequest $customerProfileRequest)
|
||||
{
|
||||
// dd("hi");
|
||||
|
|
@ -217,4 +216,47 @@ class Registration extends Controller
|
|||
return redirect()->back($this->_config['redirect']);
|
||||
}
|
||||
|
||||
public function resetPassword(Request $request){
|
||||
$request->validate([
|
||||
'phone' => 'required|digits:8'
|
||||
]);
|
||||
|
||||
if($customer = $this->customerRepository
|
||||
->where('phone', $request->phone)
|
||||
->first()){
|
||||
|
||||
$token = rand(1000,9999);
|
||||
|
||||
$customer->token = $token;
|
||||
$customer->save();
|
||||
|
||||
$request->merge(['token'=>$token]);
|
||||
|
||||
Event::dispatch('shop.register.verify', $request);
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
}
|
||||
}
|
||||
|
||||
public function changePassword(Request $request){
|
||||
$request->validate([
|
||||
'phone' => 'required|digits:8',
|
||||
'token' => 'required',
|
||||
'password' => 'required|min:6',
|
||||
]);
|
||||
|
||||
if($customer = $this->customerRepository
|
||||
->where('phone', $request->phone)
|
||||
->where('token', $request->token)
|
||||
->first()){
|
||||
|
||||
$customer->password = bcrypt($request->password);
|
||||
$customer->save();
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
}else{
|
||||
return response()->json(['success'=> false],422);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -10,10 +10,8 @@ class Customer
|
|||
}
|
||||
|
||||
public function sendVeificationCode($data){
|
||||
Log::info($data);
|
||||
Http::withHeaders(['Accept' => 'application/json'])
|
||||
->post($this->sms_gateway, $data->only(['phone','token']));
|
||||
|
||||
$response = Http::get($this->sms_gateway, $data);
|
||||
|
||||
Log::info($response->body());
|
||||
}
|
||||
}
|
||||
|
|
@ -22,7 +22,11 @@ class ShopServiceProvider extends ServiceProvider
|
|||
public function boot(Router $router)
|
||||
{
|
||||
include __DIR__ . '/../Http/helpers.php';
|
||||
|
||||
$this->app->concord->registerModel(SliderContract::class,Slider::class);
|
||||
|
||||
$this->app->register(EventServiceProvider::class);
|
||||
|
||||
/* publishers */
|
||||
$this->publishes([
|
||||
__DIR__ . '/../../publishable/assets' => public_path('themes/elektronika/assets')
|
||||
|
|
|
|||
|
|
@ -192,6 +192,9 @@ return [
|
|||
'confirm-password' => 'Подтвердить Пароль',
|
||||
'back-link-title' => '«Вернуться к входу»',
|
||||
'submit-btn-title' => 'Сброс пароля',
|
||||
'token' => 'Код из смс сообщения',
|
||||
'no-message' => 'Сообщение не пришло?',
|
||||
'resend-sms' => 'Отправить заново.'
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
|
|||
|
|
@ -328,12 +328,15 @@ return [
|
|||
],
|
||||
|
||||
'reset-password' => [
|
||||
'title' => 'Açar sözüni gaýtadan düzmek',
|
||||
'email' => 'Hasaba alnan e-poçta',
|
||||
'password' => 'açar sözi',
|
||||
'confirm-password' => 'açar sözüni gaýtalaň',
|
||||
'back-link-title' => 'Yza dolanmak',
|
||||
'submit-btn-title' => 'Açar sözüni gaýtadan düzmek'
|
||||
'title' => 'Açar sözi dikeltmek',
|
||||
'email' => 'E-poçta',
|
||||
'password' => 'Açar söz',
|
||||
'confirm-password' => 'Açar sözi gaýtalaň',
|
||||
'back-link-title' => 'Yza',
|
||||
'submit-btn-title' => 'Tassykla',
|
||||
'token' => 'Sms bilen gelen kod',
|
||||
'no-message' => 'Sms bilen kod gelmedik bolsa.',
|
||||
'resend-sms' => 'Täzeden ugrat'
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- BREADCRUMB end ==================================================================== -->
|
||||
<!-- BREADCRUMB end ==================================================================== -->
|
||||
<section class="profile-content">
|
||||
<div class="container">
|
||||
<div class="profile-content-inner">
|
||||
|
|
@ -94,10 +94,9 @@
|
|||
<div class="profile-content-block">
|
||||
<div class="profile-content-block-inner" :class="[errors.has('date_of_birth') ? 'has-error' : '']">
|
||||
<span>{{ __('shop::app.customer.account.profile.dob') }}</span>
|
||||
<input type="date" class="hidden-shown" name="date_of_birth" value="{{ old('date_of_birth') ?? $customer->date_of_birth }}" v-validate="" data-vv-as=""{{ __('shop::app.customer.account.profile.dob') }}"">
|
||||
<!-- <button type="button" class="password-show">
|
||||
<img src="../assets/icons/view.svg" alt="view">
|
||||
</button> -->
|
||||
<input type="date" class="hidden-shown" name="date_of_birth" value="{{ old('date_of_birth') ?? $customer->date_of_birth }}"
|
||||
v-validate="" data-vv-as=""{{ __('shop::app.customer.account.profile.dob') }}"">
|
||||
|
||||
<span class="control-error" v-if="errors.has('date_of_birth')">@{{ errors.first('date_of_birth') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -105,23 +104,17 @@
|
|||
<div class="profile-content-block">
|
||||
<div class="profile-content-block-inner" :class="[errors.has('email') ? 'has-error' : '']">
|
||||
<span>{{ __('shop::app.customer.account.profile.email') }}</span>
|
||||
<input type="email" class="control" name="email" value="{{ old('email') ?? $customer->email }}" v-validate="'required'" data-vv-as=""{{ __('shop::app.customer.account.profile.email') }}"">
|
||||
<input type="email" class="control" name="email" value="{{ old('email') ?? $customer->email }}"
|
||||
v-validate="'required'" data-vv-as=""{{ __('shop::app.customer.account.profile.email') }}"">
|
||||
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="profile-content-inner-mid">
|
||||
<div class="profile-content-inner-mid-block-wrapper">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="profile-content-block">
|
||||
<div class="profile-content-block-inner">
|
||||
<span>{{ __('shop::app.customer.account.profile.opassword') }}</span>
|
||||
|
|
@ -133,7 +126,6 @@
|
|||
|
||||
</div>
|
||||
</div>
|
||||
{!! view_render_event('bagisto.shop.customers.account.profile.edit.oldpassword.after') !!}
|
||||
|
||||
<div class="profile-content-block">
|
||||
<div class="profile-content-block-inner">
|
||||
|
|
@ -143,8 +135,6 @@
|
|||
|
||||
</div>
|
||||
</div>
|
||||
{!! view_render_event('bagisto.shop.customers.account.profile.edit.password.after') !!}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -25,11 +25,11 @@
|
|||
<span class="control-error" v-if="errors.has('login.password')">@{{ errors.first('login.password') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<span class="forgot-pass">Забыли пароль?</span>
|
||||
<button type="submit" class="log-in" :disabled="disable_button">Войти</button>
|
||||
<span class="forgot-pass">{{__('shop::app.customer.login-form.forgot_pass')}}</span>
|
||||
<button type="submit" class="log-in" :disabled="disable_button">{{__('shop::app.customer.login-form.button-title')}}</button>
|
||||
<div class="sign-up-footer">
|
||||
<span>Если у вас нет профиля</span>
|
||||
<a href="#" class="sign-up-btn" >Зарегистрируйтесь.</a>
|
||||
<span>{{__('shop::app.customer.signup-form.dont-have-account')}}</span>
|
||||
<a href="#" class="sign-up-btn" >{{__('shop::app.customer.signup-form.title')}}</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,125 @@
|
|||
<script type="text/x-template" id="recovery-form-template">
|
||||
<div v-if="recovery" class="login-form password-recovery-nr">
|
||||
<div class="sign-up-title">
|
||||
<span>{{ __('shop::app.customer.forgot-password.title') }}</span>
|
||||
<div class="sign-up-exit-img">
|
||||
<img src="{{ bagisto_asset('icons/cancel.svg') }}" alt="exit">
|
||||
</div>
|
||||
</div>
|
||||
<form class="sign-up-content" method="post" @submit.prevent="validateRecoveryForm('recovery')" data-vv-scope="recovery">
|
||||
<div class="sign-up-input">
|
||||
<span>{{ ucfirst(__('shop::app.customer.account.address.create.phone')) }}</span>
|
||||
<div class="dif-input">
|
||||
<span class="pointer-ev-none">+993</span>
|
||||
<input class="abs-input" type="text" v-model="phone" name="phone" v-validate="'required|numeric|digits:8'"
|
||||
data-vv-as=""{{ ucfirst(__('shop::app.customer.account.address.create.phone')) }}"">
|
||||
<span class="control-error" v-if="errors.has('register.phone')">@{{ errors.first('register.phone') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="log-in topped sms-trigger" :disabled="disable_button">{{ __('shop::app.customer.forgot-password.submit') }}</button>
|
||||
</form>
|
||||
</div>
|
||||
<div v-else class="login-form password-recovery-sms">
|
||||
<div class="sign-up-title">
|
||||
<span>{{ __('shop::app.customer.reset-password.title') }}</span>
|
||||
<div class="sign-up-exit-img">
|
||||
<img src="{{ bagisto_asset('icons/cancel.svg') }}" alt="exit">
|
||||
</div>
|
||||
</div>
|
||||
<form class="sign-up-content">
|
||||
<div class="sign-up-input">
|
||||
<span>{{ __('shop::app.customer.reset-password.token') }}</span>
|
||||
<div class="dif-input">
|
||||
<input type="text" name="token" v-validate="'required|numeric|min:4'" >
|
||||
<span class="control-error" v-if="errors.has('password')">@{{ errors.first('password') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sign-up-input">
|
||||
<span>{{ __('shop::app.customer.reset-password.password') }}</span>
|
||||
<div class="dif-input">
|
||||
<input type="password" name="password" v-validate="'required|min:6'" ref="password">
|
||||
<span class="control-error" v-if="errors.has('password')">@{{ errors.first('password') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sign-up-input">
|
||||
<span>{{ __('shop::app.customer.reset-password.confirm-password') }}</span>
|
||||
<div class="dif-input">
|
||||
<input type="password" name="password_confirmation" v-validate="'required|min:6|confirmed:password'">
|
||||
<span class="control-error" v-if="errors.has('confirm_password')">@{{ errors.first('confirm_password') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="log-in topped">{ __('shop::app.customer.reset-password.submit-btn-title') }}</button>
|
||||
<div class="sign-up-footer">
|
||||
<span>{{ __('shop::app.customer.reset-password.no-message') }}</span>
|
||||
<span class="sign-up-btn resend-sms">{{ __('shop::app.customer.reset-password.resend-sms') }}</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</script>
|
||||
<script>
|
||||
Vue.component('recovery-form-component', {
|
||||
template: '#recovery-form-template',
|
||||
|
||||
inject: ['$validator'],
|
||||
|
||||
data: function() {
|
||||
return {
|
||||
phone: '',
|
||||
|
||||
password: "",
|
||||
|
||||
message: null,
|
||||
|
||||
disable_button: false,
|
||||
|
||||
recovery: true,
|
||||
|
||||
code:''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
validateRecoveryForm(scope){
|
||||
let self = this;
|
||||
|
||||
self.message = null;
|
||||
|
||||
self.disable_button = true;
|
||||
this.$validator.validateAll(scope).then(result => {
|
||||
if (result) {
|
||||
axios.post('{{ route('customer.register.recovery') }}', {phone: self.phone})
|
||||
.then(function(response) {
|
||||
// console.log(response.data);
|
||||
self.message = response.data.message;
|
||||
if (response.data.success) {
|
||||
|
||||
self.recovery = false;
|
||||
}
|
||||
|
||||
self.disable_button = false;
|
||||
})
|
||||
.catch(function(error) {
|
||||
self.error_message = error.response.data.message;
|
||||
// self.$setErrorsFromResponse(error.response.data);
|
||||
self.disable_button = false;
|
||||
let errorFields = Object.keys(error.response.data.errors);
|
||||
errorFields.map(field => {
|
||||
let errorString = error.response.data.errors[field].join(', ');
|
||||
self.$validator.errors.add({
|
||||
field:field,
|
||||
msg: errorString,
|
||||
scope:scope
|
||||
});
|
||||
});
|
||||
});
|
||||
} else {
|
||||
self.disable_button = false;
|
||||
eventBus.$emit('onFormError')
|
||||
}
|
||||
});
|
||||
},
|
||||
verifyPhone(scope){
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
|
@ -3,8 +3,7 @@
|
|||
<div class="sign-up-wrapper">
|
||||
<login-form-component></login-form-component>
|
||||
<signup-form-component></signup-form-component>
|
||||
|
||||
@include('shop::customers.signup.recovery-modal')
|
||||
<recovery-form-component></recovery-form-component>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -12,4 +11,5 @@
|
|||
<script type="text/javascript" defer src="{{bagisto_asset('scripts/auth.js')}}"></script>
|
||||
@include('shop::customers.session.login-form')
|
||||
@include('shop::customers.signup.signup-form')
|
||||
@include('shop::customers.signup.recovery-form')
|
||||
@endpush
|
||||
|
|
@ -96,68 +96,6 @@
|
|||
</nav>
|
||||
<main class="item-section container">
|
||||
@include ('shop::products.list.toolbar')
|
||||
|
||||
<div class="filter-pop-up-menu">
|
||||
<div class="filter-pop-up-menu-container">
|
||||
<div class="filter-pop-up-title">
|
||||
<h4 class="filter-pop-up-title-text">{{__('shop::app.header.service')}}</h4>
|
||||
<div class="filter-pop-up-exit">
|
||||
<img src="{{bagisto_asset('icons/cancel-icon.svg')}}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="horizontal" style="margin-bottom: 1rem;"></div>
|
||||
<div class="filter-pop-up-scrollable">
|
||||
<div class="item-section-filter-menu item-section-filter-menu-pop-up">
|
||||
<div class="item-section-filter-brands">
|
||||
<h3 class="item-section-filter-brands-title">{{__('shop::app.header.service')}}</h3>
|
||||
<form class="item-section-search">
|
||||
<input type="text" placeholder="Поиск">
|
||||
<button>
|
||||
<div class="button-icon-wrapper">
|
||||
<img src="{{bagisto_asset('icons/icon (loop)-black.svg')}}" alt="loop">
|
||||
</div>
|
||||
</button>
|
||||
</form>
|
||||
<form class="item-section-filter-brands-checkbox">
|
||||
<div class="item-section-filter-element">
|
||||
<input class="checkbox" type="checkbox" id="samsung_2" value="samsung" />
|
||||
<label for="samsung_2" class="item-section-brand">Samsung</label>
|
||||
<label for="samsung_2" class="item-section-quantity">(52)</label>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="item-section-filter-price">
|
||||
<h3 class="item-section-filter-brands-title">Цена</h3>
|
||||
<form class="item-section-filter-price-range">
|
||||
<input type="text" placeholder="от">
|
||||
<span>—</span>
|
||||
<input type="text" placeholder="до">
|
||||
</form>
|
||||
</div>
|
||||
<div class="item-section-filter-item-special">
|
||||
<h3 class="item-section-filter-brands-title">Диагональ</h3>
|
||||
<form class="item-section-search">
|
||||
<input type="text" placeholder="Поиск значения">
|
||||
<button>
|
||||
<div class="button-icon-wrapper">
|
||||
<img src="{{bagisto_asset('icons/icon (loop)-black.svg')}}" alt="loop">
|
||||
</div>
|
||||
</button>
|
||||
</form>
|
||||
<form class="item-section-filter-brands-checkbox">
|
||||
<div class="item-section-filter-element">
|
||||
<input class="checkbox" type="checkbox" id="p19-27_2" value="19-27"/>
|
||||
<label for="p19-27_2" class="item-section-brand">19" - 27"</label>
|
||||
<label for="p19-27_2" class="item-section-quantity">(52)</label>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-section-wrapper">
|
||||
@if (in_array($category->display_mode, [null, 'products_only', 'products_and_description']))
|
||||
@include ('shop::products.list.layered-navigation')
|
||||
|
|
@ -173,28 +111,27 @@
|
|||
|
||||
<div class="product-block @if ($toolbarHelper->isModeActive('grid')) cube-view @endif">
|
||||
|
||||
<!-- Favourites -->
|
||||
<form class="wishlist-{{ $product->product_id }}" action="{{ route('customer.wishlist.add', $product->product_id) }}" method="POST"
|
||||
style="visibility: hidden; height: 0; width: 0;">
|
||||
@csrf
|
||||
</form>
|
||||
<button type="button" class="item-gallery-fav" style="opacity: 1; pointer-events: unset; position: static;"
|
||||
@guest('customer')
|
||||
onclick="document.querySelector('.logged-false').click(); return false;"
|
||||
@else
|
||||
onclick="document.querySelector('.wishlist-{{ $product->product_id }}').submit();"
|
||||
@endguest
|
||||
>
|
||||
<div>
|
||||
<img src="{{bagisto_asset($wishListHelper->getWishlistProduct($product) ? 'icons/heart.svg' : 'icons/love.svg')}}" alt="fav">
|
||||
</div>
|
||||
</button>
|
||||
<!-- Favourites End -->
|
||||
|
||||
<div class="product-block-img">
|
||||
<img src="{{ $productBaseImage['medium_image_url'] }}"
|
||||
onerror="this.src='{{ asset('vendor/webkul/ui/assets/images/product/meduim-product-placeholder.png') }}'"
|
||||
alt="{{$product->name}}">
|
||||
<!-- Favourites -->
|
||||
<form class="wishlist-{{ $product->product_id }}" action="{{ route('customer.wishlist.add', $product->product_id) }}" method="POST">
|
||||
@csrf
|
||||
<button type="button" class="item-gallery-fav" style="opacity: 1; pointer-events: unset; position: static; margin-left:-40px;"
|
||||
@guest('customer')
|
||||
onclick="document.querySelector('.logged-false').click(); return false;"
|
||||
@else
|
||||
onclick="document.querySelector('.wishlist-{{ $product->product_id }}').submit();"
|
||||
@endguest
|
||||
>
|
||||
<div>
|
||||
<img src="{{bagisto_asset($wishListHelper->getWishlistProduct($product) ? 'icons/heart.svg' : 'icons/love.svg')}}" alt="fav">
|
||||
</div>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<!-- Favourites End -->
|
||||
</div>
|
||||
<div class="product-description">
|
||||
<a href='{{ route('shop.productOrCategory.index', $product->url_key) }}' title="{{ $product->name }}" class="product-name">
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ Route::group(['middleware' => ['web', 'locale', 'theme', 'currency']], function
|
|||
|
||||
Route::post('register', [Registration::class, 'create'])->name('customer.register.create');
|
||||
Route::post('send-verification', [Registration::class, 'sendCode'])->name('customer.register.send');
|
||||
Route::post('recovery', [Registration::class, 'resetPassword'])->name('customer.register.recovery');
|
||||
|
||||
Route::post('verify', [Registration::class, 'verify'])->defaults('_config', [
|
||||
'redirect' => 'customer.session.index',
|
||||
|
|
@ -56,7 +57,7 @@ Route::group(['middleware' => ['web', 'locale', 'theme', 'currency']], function
|
|||
*/
|
||||
Route::prefix('account')->group(function () {
|
||||
Route::post('profile/edit', [Registration::class, 'update'])->defaults('_config', [
|
||||
'redirect' => 'customer.profile.index',
|
||||
'redirect' => 'customer.profile.edit',
|
||||
])->name('customer.profile.store');
|
||||
/**
|
||||
* Wishlist.
|
||||
|
|
|
|||
|
|
@ -1301,7 +1301,7 @@ return [
|
|||
],
|
||||
|
||||
'error' => [
|
||||
'go-to-home' => 'TORNA A HOME',
|
||||
'go-to-home' => 'TORNA ALLA HOME',
|
||||
'in-maitainace' => 'In Manutezione',
|
||||
'right-back' => 'Torno subito',
|
||||
|
||||
|
|
@ -1312,22 +1312,22 @@ return [
|
|||
'message' => 'La Pagina che stai cercando non esiste o è stata spostata. Naviga utilizzando il menu.',
|
||||
],
|
||||
'403' => [
|
||||
'page-title' => '403 accesso negato',
|
||||
'page-title' => '403 Accesso negato',
|
||||
'name' => '403',
|
||||
'title' => 'Accesso negato',
|
||||
'message' => 'Non hai i permessi per accedere a questa pagina',
|
||||
'message' => 'Non hai i permessi necessari per accedere a questa pagina',
|
||||
],
|
||||
'500' => [
|
||||
'page-title' => '500 Errore interno del server',
|
||||
'name' => '500',
|
||||
'title' => 'Errore interno del server',
|
||||
'message' => 'Il Server ha incontrato un errore interno.',
|
||||
'message' => 'Il Server ha riscontrato un errore interno.',
|
||||
],
|
||||
'401' => [
|
||||
'page-title' => '401 Errore non autorizzato',
|
||||
'name' => '401',
|
||||
'title' => 'Errore non autorizzato',
|
||||
'message' => 'La richiesta non è stata applicata perchè manca di una valida autenticazione per accedere alla risorsa.',
|
||||
'message' => 'La richiesta non è stata applicata perchè priva di una valida autenticazione per accedere alla risorsa.',
|
||||
],
|
||||
|
||||
'tinymce' => [
|
||||
|
|
@ -1390,8 +1390,8 @@ return [
|
|||
],
|
||||
|
||||
'response' => [
|
||||
'being-used' => 'Questo resource :name is getting used in :source',
|
||||
'cannot-change' => 'Cannot change the :name.',
|
||||
'being-used' => 'Questa risorsa :name é utilizzata in :source',
|
||||
'cannot-change' => 'Impossibile modificare :name.',
|
||||
'cannot-delete-default' => 'Non è possibile eliminare il canale di default',
|
||||
'create-success' => ':name creato con successo.',
|
||||
'update-success' => ':name aggiornato con successo.',
|
||||
|
|
@ -1406,11 +1406,11 @@ return [
|
|||
'upload-success' => ':name caricato con successo.',
|
||||
'delete-category-root' => 'Non è possibile eliminare la categoria root',
|
||||
'create-root-failure' => 'Una Categoria con lo stesso nome esiste già',
|
||||
'cancel-success' => ':name cancellata con successo.',
|
||||
'cancel-success' => ':name cancellato con successo.',
|
||||
'cancel-error' => ':name non può essere cancellato.',
|
||||
'already-taken' => 'Il nome :name è stato giù utilizzato.',
|
||||
'already-taken' => 'Il nome :name è stato già utilizzato.',
|
||||
'order-pending' => 'Non è possibile eliminare l\'account perchè alcuni Ordini sono in stato di attesa o in corso.',
|
||||
'something-went-wrong' => 'Something went wrong!',
|
||||
'something-went-wrong' => 'Qualcosa é andato storto!',
|
||||
],
|
||||
|
||||
'validations' => [
|
||||
|
|
@ -1500,13 +1500,13 @@ return [
|
|||
'weight-unit' => 'Unità di peso',
|
||||
'email-settings' => 'Impostazioni Email',
|
||||
'email-sender-name' => 'Nome Mittente Email',
|
||||
'email-sender-name-tip' => 'This name will be displayed in the customers inbox',
|
||||
'email-sender-name-tip' => 'Questo nome verrá visualizzato nella casella del cliente',
|
||||
'shop-email-from' => 'Indirizzo Email Negozio [per invio email]',
|
||||
'shop-email-from-tip' => 'The email address of this channel to send emails to your customers',
|
||||
'shop-email-from-tip' => 'L\'indirizzo email di questo canale per inviare email al cliente',
|
||||
'admin-name' => 'Nome Admin',
|
||||
'admin-name-tip' => 'This name will be displayed in all admin emails',
|
||||
'admin-name-tip' => 'Questo nome verrá visualizzato in tutte le emails admin',
|
||||
'admin-email' => 'Email Admin',
|
||||
'admin-email-tip' => 'The email address of the admin for this channel to receive emails',
|
||||
'admin-email-tip' => 'L\'indirizzo email dell\'admin per questo canale adibito alla ricezione di email',
|
||||
'admin-page-limit' => 'Numero di risultati per Pagina (Admin)',
|
||||
'design' => 'Design',
|
||||
'admin-logo' => 'Logo Admin',
|
||||
|
|
@ -1530,27 +1530,27 @@ return [
|
|||
'invoice-number-generator-class' => 'Generatore di numeri di fattura',
|
||||
'payment-terms' => 'Termini di pagamento',
|
||||
'due-duration' => 'Durata dovuta',
|
||||
'due-duration-day' => ':due-duration Giorno',
|
||||
'due-duration-day' => ':due-duration giorno',
|
||||
'due-duration-days' => ':due-duration giorni',
|
||||
'invoice-slip-design' => 'Design della Fattura',
|
||||
'logo' => 'Logo',
|
||||
'default' => 'Default',
|
||||
'invoice-reminders' => 'Rappels de factures',
|
||||
'maximum-limit-of-reminders' => 'Limite maximale de rappels',
|
||||
'interval-between-reminders' => 'Intervalle entre les rappels',
|
||||
'invoice-reminders' => 'Promemoria di fatture',
|
||||
'maximum-limit-of-reminders' => 'Limite mattismo di promemoria',
|
||||
'interval-between-reminders' => 'Intervallo tra i promemoria',
|
||||
'sandbox' => 'Sandbox',
|
||||
'all-channels' => 'Tutti',
|
||||
'all-locales' => 'Tutti',
|
||||
'all-customer-groups' => 'tutti i Gruppi di Clienti',
|
||||
'storefront' => 'Storefront',
|
||||
'default-list-mode' => 'Modalità predefinita elenchiDefault List Mode',
|
||||
'all-customer-groups' => 'Tutti i gruppi di clienti',
|
||||
'storefront' => 'Vetrina',
|
||||
'default-list-mode' => 'Modalità predefinita elenchi',
|
||||
'grid' => 'Griglia',
|
||||
'list' => 'Lista',
|
||||
'products-per-page' => 'Prodotti Per Pagina',
|
||||
'sort-by' => 'Ordina Per',
|
||||
'from-z-a' => 'Da Z-A',
|
||||
'from-a-z' => 'Da A-Z',
|
||||
'newest-first' => 'I più nuovi prima',
|
||||
'newest-first' => 'I più recenti prima',
|
||||
'oldest-first' => 'I più vecchi prima',
|
||||
'cheapest-first' => 'I più convenienti prima',
|
||||
'expensive-first' => 'I più cari prima',
|
||||
|
|
@ -1558,45 +1558,45 @@ return [
|
|||
'favicon' => 'Favicon',
|
||||
'seo' => 'SEO',
|
||||
'rich-snippets' => 'Rich Snippets',
|
||||
'products' => 'Products',
|
||||
'enable' => 'Enable',
|
||||
'show-weight' => 'Show Weight',
|
||||
'show-categories' => 'Show Categories',
|
||||
'show-images' => 'Show Images',
|
||||
'show-reviews' => 'Show Reviews',
|
||||
'show-ratings' => 'Show Ratings',
|
||||
'show-offers' => 'Show Offers',
|
||||
'show-sku' => 'Show SKU',
|
||||
'categories' => 'Categories',
|
||||
'show-sku' => 'Show SKU',
|
||||
'show-search-input-field' => 'Show Search Input Field',
|
||||
'products' => 'Prodotti',
|
||||
'enable' => 'Abilita',
|
||||
'show-weight' => 'Mostra peso',
|
||||
'show-categories' => 'Mostra categorie',
|
||||
'show-images' => 'Mostra immagini',
|
||||
'show-reviews' => 'Mostra recensioni',
|
||||
'show-ratings' => 'Mostra giudizi sulle recensioni',
|
||||
'show-offers' => 'Mostra offerte',
|
||||
'show-sku' => 'Mostra SKU',
|
||||
'categories' => 'Categorie',
|
||||
'show-sku' => 'Mostra SKU',
|
||||
'show-search-input-field' => 'Mostra campo di ricerca',
|
||||
'store-name' => 'Nome del negozio',
|
||||
'vat-number' => 'Partita IVA',
|
||||
'contact-number' => 'Numero di contatto',
|
||||
'bank-details' => 'Coordinate bancarie',
|
||||
'mailing-address' => 'Send Check to',
|
||||
'instructions' => 'Instructions',
|
||||
'custom-scripts' => 'Custom Scripts',
|
||||
'custom-css' => 'Custom CSS',
|
||||
'custom-javascript' => 'Custom Javascript',
|
||||
'mailing-address' => 'Indirizzo di posta',
|
||||
'instructions' => 'Istruzioni',
|
||||
'custom-scripts' => 'Scripts personalizzati',
|
||||
'custom-css' => 'CSS personalizzati',
|
||||
'custom-javascript' => 'Javascript personalizzati',
|
||||
'paypal-smart-button' => 'PayPal',
|
||||
'client-id' => 'Client Id',
|
||||
'client-id-info' => 'Use "sb" for testing.',
|
||||
'client-id' => 'Id cliente',
|
||||
'client-id-info' => 'Usa "sb" per effettuare test.',
|
||||
'client-secret' => 'Client Secret',
|
||||
'client-secret-info' => 'Add your secret key here',
|
||||
'accepted-currencies' => 'Accepted currencies',
|
||||
'accepted-currencies-info' => 'Add currency code comma seperated e.g. USD,INR,...',
|
||||
'buy-now-button-display' => 'Allow customers to directly buy products',
|
||||
'width' => 'Width',
|
||||
'height' => 'Height',
|
||||
'cache-small-image' => 'Small Image',
|
||||
'cache-medium-image' => 'Medium Image',
|
||||
'cache-large-image' => 'Large Image',
|
||||
'generate-invoice' => 'Automatically generate the invoice after placing an order',
|
||||
'client-secret-info' => 'Aggiungi la tua secret key qui',
|
||||
'accepted-currencies' => 'Valute accettate',
|
||||
'accepted-currencies-info' => 'Aggiungi valute separate da virgole e.g. USD,EUR,GBP,...',
|
||||
'buy-now-button-display' => 'Permetti ia clienti di comprare direttamente prodotti',
|
||||
'width' => 'Larghezza',
|
||||
'height' => 'Altezza',
|
||||
'cache-small-image' => 'Immagine piccola',
|
||||
'cache-medium-image' => 'Immagine media',
|
||||
'cache-large-image' => 'Immagine grande',
|
||||
'generate-invoice' => 'Genera automaticamente la fattura al piazzamento dell\'ordine',
|
||||
'set-invoice-status' => 'Set the invoice status after creating the invoice to',
|
||||
'set-order-status' => 'Set the order status after creating the invoice to',
|
||||
'generate-invoice-applicable' => 'Applicable if automatic generate invoice is enabled',
|
||||
'records-found' => 'Record(s) found',
|
||||
'generate-invoice-applicable' => 'Applicabile se la generazione automatica di fatture é abilitata',
|
||||
'records-found' => 'Record(s) trovati',
|
||||
],
|
||||
],
|
||||
|
||||
|
|
@ -1606,7 +1606,7 @@ return [
|
|||
'basic-configuration' => 'Configurazione di base',
|
||||
'customer-configuration' => 'Configurazione del cliente',
|
||||
'username' => 'Nome utente',
|
||||
'password' => 'Parola d\'ordine',
|
||||
'password' => 'Password',
|
||||
'login-after-register' => 'Accedi dopo la registrazione',
|
||||
'info-login' => 'Info: il cliente deve effettuare il login dopo la registrazione API.',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ return [
|
|||
|
|
||||
*/
|
||||
|
||||
'guard' => ['customer'],
|
||||
'guard' => ['admin', 'customer'],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -192,6 +192,9 @@ return [
|
|||
'confirm-password' => 'Подтвердить Пароль',
|
||||
'back-link-title' => '«Вернуться к входу»',
|
||||
'submit-btn-title' => 'Сброс пароля',
|
||||
'token' => 'Код из смс сообщения',
|
||||
'no-message' => 'Сообщение не пришло?',
|
||||
'resend-sms' => 'Отправить заново.'
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
|
|||
|
|
@ -328,12 +328,15 @@ return [
|
|||
],
|
||||
|
||||
'reset-password' => [
|
||||
'title' => 'Açar sözüni gaýtadan düzmek',
|
||||
'email' => 'Hasaba alnan e-poçta',
|
||||
'password' => 'açar sözi',
|
||||
'confirm-password' => 'açar sözüni gaýtalaň',
|
||||
'back-link-title' => 'Yza dolanmak',
|
||||
'submit-btn-title' => 'Açar sözüni gaýtadan düzmek'
|
||||
'title' => 'Açar sözi dikeltmek',
|
||||
'email' => 'E-poçta',
|
||||
'password' => 'Açar söz',
|
||||
'confirm-password' => 'Açar sözi gaýtalaň',
|
||||
'back-link-title' => 'Yza',
|
||||
'submit-btn-title' => 'Tassykla',
|
||||
'token' => 'Sms bilen gelen kod',
|
||||
'no-message' => 'Sms bilen kod gelmedik bolsa.',
|
||||
'resend-sms' => 'Täzeden ugrat'
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -356,7 +359,7 @@ return [
|
|||
'edit-fail' => 'Profil täzelenip bilinmez, soňrak synanyşyň.',
|
||||
'unmatch' => 'Köne açar sözi gabat gelmedi',
|
||||
|
||||
'fname' => 'ady',
|
||||
'fname' => 'Ady',
|
||||
'lname' => 'Familýasy',
|
||||
'gender' => 'Jynsy',
|
||||
'other' => 'başga',
|
||||
|
|
|
|||
Loading…
Reference in New Issue