mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-28 17:03:59 +00:00
Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0 into login-dashboard-responsive-design
This commit is contained in:
@@ -88,7 +88,7 @@ class CreateCustomerLogic extends AbstractControllerLogic
|
||||
public function logic(Request $request) : JsonResponse
|
||||
{
|
||||
/** @var User $user */
|
||||
$user = $this->createUserProcessor->execute($request, RoleTypes::USER, App::environment(['local', 'staging']) ? ApprovalStatus::APPROVED : ApprovalStatus::PENDING_VERIFICATION);
|
||||
$user = $this->createUserProcessor->execute($request, RoleTypes::USER, App::environment(['local']) ? ApprovalStatus::APPROVED : ApprovalStatus::PENDING_VERIFICATION);
|
||||
|
||||
/** @var Company $company */
|
||||
$company = $this->createCompanyProcessor->execute($request, BusinessType::IMPORTER, $request->input('type'), ApprovalStatus::PENDING_SUBMISSION);
|
||||
@@ -100,7 +100,7 @@ class CreateCustomerLogic extends AbstractControllerLogic
|
||||
|
||||
$this->assignSegmentProcessor->execute($company);
|
||||
|
||||
// $this->generateEmailVerificationAttemptProcessor->execute($user);
|
||||
$this->generateEmailVerificationAttemptProcessor->execute($user);
|
||||
|
||||
return $this->response($this->authenticationProcessor->execute($request));
|
||||
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Exports\Services;
|
||||
|
||||
use App\Models\Company;
|
||||
use Carbon\Carbon;
|
||||
use Maatwebsite\Excel\Concerns\Exportable;
|
||||
use Maatwebsite\Excel\Concerns\FromQuery;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadingRow;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
|
||||
class ExportsCustomers implements FromQuery, WithHeadingRow, WithMapping
|
||||
{
|
||||
|
||||
use Exportable;
|
||||
|
||||
public function headings(): array
|
||||
{
|
||||
return [
|
||||
'Marking',
|
||||
'Name',
|
||||
'Number of bookings',
|
||||
'Bookings total',
|
||||
'Registration Date',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Support\Collection|mixed
|
||||
*/
|
||||
public function query()
|
||||
{
|
||||
return Company::where('business_type', '=', 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Company $company
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function map($company): array
|
||||
{
|
||||
return [
|
||||
$company->reference,
|
||||
$company->name,
|
||||
count($company->bookings),
|
||||
$company->bookings()->sum('fix_amount'),
|
||||
\PhpOffice\PhpSpreadsheet\Shared\Date::dateTimeToExcel($company->created_at)
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Exports;
|
||||
|
||||
|
||||
use App\Classes\Modules\Exports\Services\ExportsCustomers;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Maatwebsite\Excel\Excel;
|
||||
|
||||
class ExportCustomersToExcelController
|
||||
{
|
||||
|
||||
public function export(ExportsCustomers $exportsCustomers, Request $request){
|
||||
$token = Auth::fromUser(User::find(1));
|
||||
$request->headers->set('Authorization', 'Bearer '.$token);
|
||||
return $exportsCustomers->download('customers.csv', Excel::CSV, ['Content-Type' => 'text/csv']);
|
||||
}
|
||||
}
|
||||
+10
-2
@@ -3,9 +3,8 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
/**
|
||||
* Class Address
|
||||
* @package App\Models
|
||||
@@ -58,4 +57,13 @@ class Address extends AbstractModel
|
||||
{
|
||||
return $this->BelongsTo(District::class, 'district_id', 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Builder $query
|
||||
* @return Builder
|
||||
*/
|
||||
public function scopeDefault(Builder $query)
|
||||
{
|
||||
return $query->where('billing', '=',true)->first();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ class Booking extends AbstractModel implements Documentable
|
||||
*/
|
||||
public function bank(): BelongsTo
|
||||
{
|
||||
return $this->BelongsTo(Bank::class, 'bank_id');
|
||||
return $this->BelongsTo(Bank::class, 'bank_id')->withTrashed();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
"intervention/image": "^2.5",
|
||||
"laravel/framework": "^7.0",
|
||||
"laravel/tinker": "^2.0",
|
||||
"maatwebsite/excel": "^3.1",
|
||||
"rinvex/countries": "^6.1",
|
||||
"spatie/laravel-activitylog": "^3.14",
|
||||
"spatie/laravel-permission": "^3.17",
|
||||
|
||||
Vendored
+1
-2
@@ -95,8 +95,7 @@ $panel-condensed-heading-min-height: 48px !default;
|
||||
|
||||
//Forms
|
||||
$form-group-height: 54px !default;
|
||||
$form-control-border-color: rgba($color-black, 0.4) !default;
|
||||
$form-focus-border-color: #0fb5a9;
|
||||
$form-control-border-color: rgba($color-black, 0.15) !default;
|
||||
|
||||
//Dashboard
|
||||
$dashboard-background: #f5f5f5 !default;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div
|
||||
class="row m-r-0 m-l-0 m-b-20 animate__animated animate__fadeInUpBig animate__fast"
|
||||
class="row m-b-10 animate__animated animate__fadeInUpBig animate__fast"
|
||||
v-if="error"
|
||||
>
|
||||
<div class="col p-l-50">
|
||||
|
||||
@@ -1,46 +1,57 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row m-r-0 m-l-0 m-b-20 animate__animated animate__fadeInUpBig animate__fast" v-if="error">
|
||||
<div class="col p-l-50">
|
||||
<small class="bold fs-10 text-danger">{{error}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-l-0 m-b-10 animate__animated animate__fadeInUpBig">
|
||||
<div class="col b-t b-b b-grey animate__animated" :class="[{'animate__shake': $v.parameters.password.$error}]" :style="[$v.parameters.password.$error ? {'border-bottom': 'solid 2px red !important'} : {}]">
|
||||
<div class="row align-items-center">
|
||||
<div class="col no-padding bg-white ">
|
||||
<div class="input-group transparent">
|
||||
<span class="input-group-addon no-border">
|
||||
<i class="fa fa-envelope-o fa-fw p-l-15 p-t-20" style="padding-right: 18px;"></i>
|
||||
</span>
|
||||
<input v-model="parameters.password" placeholder="Password" type="password" class="form-control no-border bg-white p-t-35 p-b-35 p-l-0 p-r-0">
|
||||
<validation-error-component :validator="$v.parameters.password" class="absolute fs-12" style=" top: 10px; right: 15px; z-index: 99;"></validation-error-component>
|
||||
<div class="row" v-show="!$store.getters.isShowing('resetPasswordSuccess')">
|
||||
<div class="col">
|
||||
<div class="row m-b-15">
|
||||
<div class="col">
|
||||
<div class="inline v-align-middle">
|
||||
<div class="font-heading fs-20 all-caps text-primary no-margin lh-28 bold">Reset your password</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-r-0 m-l-0 m-b-20" v-if="error">
|
||||
<div class="col p-l-50">
|
||||
<small class="bold fs-10 text-danger">{{error}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.password">
|
||||
<label class="text-primary">Password</label>
|
||||
<div class="controls">
|
||||
<input type="password" class="form-control fs-12" v-model="parameters.password">
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.confirmPassword">
|
||||
<label class="text-primary">Confirm Password</label>
|
||||
<div class="controls">
|
||||
<input type="password" class="form-control fs-12" v-model="parameters.confirmPassword">
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
<div class="row align-items-center">
|
||||
<div class="col"></div>
|
||||
<div class="col-auto">
|
||||
<div class="btn btn-lg b-rad-none btn-success" @click="submit(route('api.account.authentication.password.reset'), 'post', section, false , false)">Reset Password</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-l-0 m-b-10 animate__animated animate__fadeInUpBig">
|
||||
<div class="col b-t b-b b-grey animate__animated" :class="[{'animate__shake': $v.parameters.confirmPassword.$error}]" :style="[$v.parameters.confirmPassword.$error ? {'border-bottom': 'solid 2px red !important'} : {}]">
|
||||
<div class="row align-items-center">
|
||||
<div class="col no-padding bg-white ">
|
||||
<div class="input-group transparent">
|
||||
<span class="input-group-addon no-border">
|
||||
<i class="fa fa-envelope-o fa-fw p-l-15 p-t-20" style="padding-right: 18px;"></i>
|
||||
</span>
|
||||
<input v-model="parameters.confirmPassword" placeholder="Confirm Password" type="password" class="form-control no-border bg-white p-t-35 p-b-35 p-l-0 p-r-0">
|
||||
<validation-error-component :validator="$v.parameters.confirmPassword" class="absolute fs-12" style=" top: 10px; right: 15px; z-index: 99;"></validation-error-component>
|
||||
</div>
|
||||
<div class="row" v-show="$store.getters.isShowing('resetPasswordSuccess')">
|
||||
<div class="col">
|
||||
<div class="row m-b-5">
|
||||
<div class="col">
|
||||
<h4 class="font-lato text-success bold"><i class="fa fa-check-circle m-r-5"></i> Password Changed successfully</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-10">
|
||||
<div class="col">
|
||||
<small class="font-lato">You have successfully changed your password, now you can login into your account using your new password.</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a :href="route('login')"><div class="btn btn-sm btn-default b-rad-none light" style="letter-spacing: 2px;"><i class="fa fa-angle-left" style="padding-right: 18px;"></i>Go to login</div></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row m-t-30 align-items-center">
|
||||
<div class="col-auto ml-auto p-r-0 animate__animated animate__fadeInRightBig animate__slow">
|
||||
<div class="bg-success all-caps text-white p-t-15 p-b-15 p-l-50 p-r-20 bold font-lato pointer fs-12" style="letter-spacing: 4px;" @click="submit(route('api.account.authentication.password.reset'), 'post', section, false , false)">Reset Password</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -64,6 +75,7 @@
|
||||
data() {
|
||||
return {
|
||||
error: '',
|
||||
passwordChanged: false,
|
||||
parameters: {
|
||||
email: '',
|
||||
confirmPassword:'',
|
||||
@@ -79,9 +91,8 @@
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
successHandler(response){
|
||||
successHandler(){
|
||||
this.$store.dispatch('toggleSection', {name: 'resetPasswordSuccess', status: true});
|
||||
this.$store.dispatch('passwordReset', response)
|
||||
},
|
||||
errorHandler(error){
|
||||
this.error = error.message;
|
||||
|
||||
@@ -63,7 +63,9 @@
|
||||
},
|
||||
addressData: {
|
||||
type: Object,
|
||||
default: {},
|
||||
default() {
|
||||
return {}
|
||||
},
|
||||
required:false
|
||||
},
|
||||
},
|
||||
|
||||
+33
-15
@@ -11,22 +11,40 @@
|
||||
</div>
|
||||
<div class="col p-t-5 p-b-5">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Date</div>
|
||||
<div class="font-heading fs-10">
|
||||
{{item.updated_at}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Currency</div>
|
||||
<div class="font-heading fs-10">
|
||||
<span class="flag-icon" :class="'flag-icon-'+item.original_currency.country.short_code.toLowerCase()"></span> {{item.original_currency.short_code}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="font-heading fs-10 muted all-caps">Amount</div>
|
||||
<div class="font-heading fs-12 text-success bold">
|
||||
{{(Math.round((item.original_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
|
||||
<div class="row m-b-5">
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">reference</div>
|
||||
<div class="font-heading fs-10">
|
||||
<a :href="route('booking.details', item.booking.marking)">{{item.booking.marking}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Marking</div>
|
||||
<div class="font-heading fs-10">
|
||||
<a :href="route('customer.profile', item.booking.company.reference)">{{item.booking.company.reference}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Date</div>
|
||||
<div class="font-heading fs-10">
|
||||
{{item.documents.created_at}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Currency</div>
|
||||
<div class="font-heading fs-10">
|
||||
<span class="flag-icon" :class="'flag-icon-'+item.original_currency.country.short_code.toLowerCase()"></span> {{item.original_currency.short_code}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="font-heading fs-10 muted all-caps">Amount</div>
|
||||
<div class="font-heading fs-12 text-success bold">
|
||||
{{(Math.round((item.original_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<template>
|
||||
<tr>
|
||||
<td class="v-align-middle">
|
||||
<p>{{item.documents.created_at}}</p>
|
||||
</td>
|
||||
<td class="v-align-middle ">
|
||||
<p>{{item.booking.marking}}</p>
|
||||
</td>
|
||||
<td class="v-align-middle">
|
||||
<p>{{item.booking.company.reference}}</p>
|
||||
</td>
|
||||
<td class="v-align-middle">
|
||||
<p>{{(Math.round((item.original_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import componentHandler from '../../../general/mixins/componentHandler';
|
||||
export default {
|
||||
mixins: [componentHandler]
|
||||
}
|
||||
</script>
|
||||
+18
-2
@@ -4,7 +4,7 @@
|
||||
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="isLoading"></loading-component>
|
||||
<div class="row" v-if="booking">
|
||||
<div class="col">
|
||||
<div class="row m-b-50" v-if="booking.status === 3">
|
||||
<div class="row m-b-50" v-if="booking.status === 3 && transactionsComplete">
|
||||
<div class="col-10 no-padding">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
@@ -132,7 +132,7 @@
|
||||
<div class="row b-b b-dashed b-grey p-b-25" v-if="booking.company.address">
|
||||
<div class="col-10">
|
||||
<div class="row m-b-15">
|
||||
<div class="col-4">
|
||||
<div class="col-5">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-10 muted all-caps">Date</div>
|
||||
@@ -146,6 +146,12 @@
|
||||
{{booking.marking}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto" v-if="$store.getters.isAdmin">
|
||||
<div class="font-heading fs-10 muted all-caps">Marking</div>
|
||||
<div class="font-heading fs-10">
|
||||
<a :href="route('customer.profile', booking.company.reference)">{{booking.company.reference}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
@@ -397,6 +403,16 @@
|
||||
computed: {
|
||||
pendingQueue () {
|
||||
return this.$store.getters.isInCompleteQueue(this.section);
|
||||
},
|
||||
transactionsComplete() {
|
||||
let complete = true;
|
||||
this.booking.payment_history.forEach(function(payment){
|
||||
if(payment.status === 2){
|
||||
complete = false
|
||||
}
|
||||
});
|
||||
|
||||
return complete;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:20%">Date</th>
|
||||
<th style="width:20%">Reference</th>
|
||||
<th style="width:29%">Marking</th>
|
||||
<th style="width:15%">Amount</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<urgent-transaction-component v-for="item in list" v-bind:key="item.id" :data="item"></urgent-transaction-component>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="col-auto b-a p-t-5 p-b-5 m-l-5 pointer b-grey pointer" v-for="n in pagination.last_page" @click="fetchList(n)">
|
||||
<small class="fs-11">{{n}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
list: [],
|
||||
pagination: {
|
||||
last_page: 1
|
||||
}
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.fetchList();
|
||||
},
|
||||
methods: {
|
||||
fetchList(Page = 1){
|
||||
this.submit(route('api.transaction.list') + '?page='+ Page +'&filters=' + JSON.stringify({status: 2, type: 1, per_page: 50, order_by: {
|
||||
column: 'created_at',
|
||||
DESC: true
|
||||
}}), 'get', 'urgentListSection', false, true)
|
||||
},
|
||||
successHandler(response){
|
||||
this.list = response.payload.data;
|
||||
this.pagination = response.payload.meta;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,8 +1,8 @@
|
||||
@extends('emails.accounts.layout.base')
|
||||
@extends('emails.layout.base')
|
||||
|
||||
@section('content')
|
||||
<h4 style="font-size: 1em;">Hello, {{ $user->first_name.' '.$user->last_name }}</h4>
|
||||
<p style="font-size: 0.9em">We have received a request to reset the the password for your account on <a href="https://www.izyim.com/" class="bold">https://www.izyim.com</a></p>
|
||||
<p style="font-size: 0.9em">We have received a request to reset the the password for your account on <a href="{{route('login')}}" class="bold">CIEF Exchange</a></p>
|
||||
<p style="margin-top: 30px; font-size: 0.8em">Click the link below to complete the process. Note that the link expires in 24 hours</p>
|
||||
<div style="margin-top: 20px;">
|
||||
<a href="{{route('account.password.reset', ['token' => $attempt->token])}}"><button class="btn all-caps bg-primary no-border text-white pointer" style="font-size: 0.8em">Reset password</button></a>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@extends('emails.accounts.layout.base')
|
||||
@extends('emails.layout.base')
|
||||
|
||||
@section('content')
|
||||
<h4 style="font-size: 1em;">Hello, {{$user->name}}</h4>
|
||||
|
||||
+2
-2
@@ -116,7 +116,7 @@
|
||||
<div class="background text-center">
|
||||
<div class="sm-hide" style="height: 50px;"></div>
|
||||
<div class="container align-center">
|
||||
@include('emails.accounts.layout.header')
|
||||
@include('emails.layout.header')
|
||||
<div class="bg-white text-left">
|
||||
<div class="content">
|
||||
@yield('content')
|
||||
@@ -126,7 +126,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center text-white all-caps" style="margin-top: 30px;">
|
||||
<small style="font-size: 0.6em; letter-spacing: 3px;">©2021 CIEF Worldwide Snd Bhd. All rights reserved</small>
|
||||
<small style="font-size: 0.6em; letter-spacing: 2px;">©{{\Carbon\Carbon::now()->format('Y')}} CIEF Worldwide Snd Bhd. All rights reserved</small>
|
||||
</div>
|
||||
<div style="height: 30px;"></div>
|
||||
</div>
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
<div class="bg-primary content">
|
||||
<h1 class="no-margin font-lato lightest text-white all-caps" style="font-size: 3em; letter-spacing: 20px; line-height: 40px" >Exchange</h1>
|
||||
<h2 class="no-margin font-lato lightest text-white all-caps" style="font-size: 3em; letter-spacing: 15px; line-height: 40px" >Exchange</h2>
|
||||
<div style="height: 15px;"></div>
|
||||
<small class="no-margin font-lato light text-white all-caps" style="letter-spacing: 5px;">Currency Exchange Vendor</small>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
@extends('emails.layout.base')
|
||||
|
||||
@section('content')
|
||||
<h4 style="font-size: 1em;">Hello,</h4>
|
||||
<p style="font-size: 0.9em">verify your email to finish your account registration on</p>
|
||||
<p style="margin-top: 30px; font-size: 0.8em">Please confirm that is your email address by clicking on the button below or use this link within 48 hours</p>
|
||||
<div style="margin-top: 20px;">
|
||||
<button class="btn all-caps bg-primary no-border text-white pointer" style="font-size: 0.8em" >Verify</button>
|
||||
</div>
|
||||
<div class="all-caps hint-text" style="margin-top: 20px;"><small style="font-size: 0.7em">If you didn't perform this request you can safely ignore this email.</small></div>
|
||||
@endsection
|
||||
@@ -32,7 +32,7 @@
|
||||
<loading-component style="height: 350px;" key="1" color="primary" v-show="$store.getters.isLoading('forgetPasswordSection')"></loading-component>
|
||||
<div class="row" v-show="!$store.getters.isLoading('forgetPasswordSection')">
|
||||
<div class="col">
|
||||
<div class="row m-t-50">
|
||||
<div class="row m-t-50" v-show="!$store.getters.isShowing('forgetPasswordSuccess')">
|
||||
<div class="col">
|
||||
<div class="inline v-align-middle">
|
||||
<div class="font-heading fs-25 capitalize text-main no-margin lh-28 bold" style="color: #5c5c5c">Forget Password</div>
|
||||
|
||||
@@ -1,74 +1,18 @@
|
||||
@extends('layouts.base_login')
|
||||
|
||||
@section('inner_content')
|
||||
<transition-component group enter-class="animate__animated animate__fadeInRightBig animate__faster" leave-class="animate__animated animate__fadeOutRightBig" class="h-100">
|
||||
<div class="row h-100 m-auto" key="1" v-show="!$store.getters.isShowing('resetPasswordSuccess')">
|
||||
<div class="col d-flex align-items-start flex-column">
|
||||
<div class="row invisible">
|
||||
<div class="col-auto p-l-0 p-r-0 ml-auto" style="background-color: rgba(255,255,255,0.2);">
|
||||
<div class="text-white font-lato lightest" style=" font-size: 150px; font-weight: 100; margin-right: -17px; margin-left: -183px; ">...</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row w-100">
|
||||
<div class="col">
|
||||
<div class="row" v-show="!$store.getters.isShowing('resetPassword')">
|
||||
<div class="col no-padding relative">
|
||||
<transition-component group enter-class="animate__animated animate__fadeInUpBig animate__faster" leave-class="animate__animated animate__fadeOutRightBig">
|
||||
<loading-component style="height: 350px;" key="1" color="primary" v-show="$store.getters.isLoading('resetPasswordSection')"></loading-component>
|
||||
<div class="row" key="2" v-show="!$store.getters.isLoading('resetPasswordSection')">
|
||||
<div class="col all-caps">
|
||||
<div class="row m-l-0">
|
||||
<div class="col p-l-50">
|
||||
<h5 class="font-lato light animate__animated animate__fadeInRightBig animate__slow" style=" line-height: 50px; letter-spacing: 5px; ">Reset your password</h5>
|
||||
</div>
|
||||
</div>
|
||||
<reset-password-form-component section="resetPasswordSection" token="{{$token}}"></reset-password-form-component>
|
||||
</div>
|
||||
</div>
|
||||
</transition-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-auto m-b-25">
|
||||
<div class="col font-lato p-l-50">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="all-caps fs-10 m-b-5" style="letter-spacing: 2px;">Support:</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p class="all-caps no-margin fs-8 lh-18" style="letter-spacing: 2px;">To obtain access to this site or for any questions about its<br>use submit an email message to <span class="text-underline text-primary bold">info@izyim.com</span></p>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-6 bg-white padding-25">
|
||||
<loading-component style="height: 350px;" key="1" color="primary" v-show="$store.getters.isLoading('resetPasswordSection')"></loading-component>
|
||||
<div class="row" v-show="!$store.getters.isLoading('resetPasswordSection')">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<reset-password-form-component section="resetPasswordSection" token="{{$token}}"></reset-password-form-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-center justify-content-center h-100 bg-white text-center" key="2" v-show="$store.getters.isShowing('resetPasswordSuccess')">
|
||||
<div class="col">
|
||||
<div class="row m-b-20 animate__animated animate__fadeInDownBig">
|
||||
<div class="col">
|
||||
<i class="fa fa-check-circle animate__animated animate__tada animate__slower animate__infinite fs-70 text-success"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row animate__animated animate__fadeInLeftBig">
|
||||
<div class="col">
|
||||
<h5 class="all-caps fs-35 m-b-15 text-success">Password Changed</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row animate__animated animate__fadeInRightBig">
|
||||
<div class="col">
|
||||
<small class="muted font-lato all-caps">Your password has been changed successfully</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-30 animate__animated animate__fadeInUpBig animate__slow">
|
||||
<div class="col">
|
||||
<a :href="route('login')" @click="$store.dispatch('toggleSection', {name: 'resetPasswordSuccess', status: false});$store.dispatch('toggleLoading', {name: 'resetPasswordSection', status: true})"><small class="b-a b-thick b-success text-success all-caps p-t-10 p-b-10 p-r-35 p-l-35 inline bold">Go to login</small></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</transition-component>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -54,10 +54,12 @@
|
||||
@php
|
||||
$addresses = $supplier->addresses()->first();
|
||||
@endphp
|
||||
{{ $addresses->street_one }}
|
||||
{{ $addresses->street_two }}
|
||||
{{ $addresses->state()->first()->name }}
|
||||
{{ $addresses->district()->first()->name }}
|
||||
{{ $addresses->street_one }}
|
||||
{{ $addresses->street_two }} ,
|
||||
{{ $addresses->district()->first()->name }},
|
||||
{{ $addresses->postcode }}
|
||||
{{ $addresses->state()->first()->name }},
|
||||
{{ $addresses->country()->first()->name }}
|
||||
</div>
|
||||
<div>
|
||||
Phone: {{ $supplier->contacts()->first()->phone }}
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
@php
|
||||
$addresses = $supplier->addresses()->first();
|
||||
@endphp
|
||||
{{ $addresses->street_one }}
|
||||
{{ $addresses->street_two }}
|
||||
{{ $addresses->state()->first()->name }}
|
||||
{{ $addresses->district()->first()->name }}
|
||||
{{ $addresses->street_one }}
|
||||
{{ $addresses->street_two }} ,
|
||||
{{ $addresses->district()->first()->name }},
|
||||
{{ $addresses->postcode }}
|
||||
{{ $addresses->state()->first()->name }},
|
||||
{{ $addresses->country()->first()->name }}
|
||||
</div>
|
||||
<div>
|
||||
Phone: {{ $supplier->contacts()->first()->phone }}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
@extends('layouts.base_portal')
|
||||
@section('inner_content')
|
||||
<div class="row">
|
||||
<div class="col bg-white p-t-15 p-b-15">
|
||||
<div class="row no-margin">
|
||||
<div class="col-8">
|
||||
<div class="row m-b-15 p-b-10 b-b b-grey">
|
||||
<div class="col">
|
||||
<small class="all-caps muted fs-10">urgent list</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<urgent-list-section-component></urgent-list-section-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -36,8 +36,10 @@
|
||||
<div class="text-white all-caps fs-12">Transfers</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-auto p-r-20 hide">
|
||||
<div class="text-white all-caps fs-12">Payments & Billing</div>
|
||||
<div class="col-auto p-r-20" v-if="$store.getters.isAdmin">
|
||||
<a href="{{route('bookings.urgent')}}">
|
||||
<div class="text-white all-caps fs-12">Urgent List</div>
|
||||
</a>
|
||||
</div>
|
||||
<div v-if="!$store.getters.isAdmin" class="col-auto p-r-20">
|
||||
<a href="{{route('banks')}}"><div class="text-white all-caps fs-12">Bank Accounts</div></a>
|
||||
|
||||
+9
-2
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
@@ -52,6 +53,10 @@ Route::get('/bookings', function () {
|
||||
return view('pages.bookings');
|
||||
})->name('bookings');
|
||||
|
||||
Route::get('/bookings/urgent', function () {
|
||||
return view('pages.urgent_list');
|
||||
})->name('bookings.urgent');
|
||||
|
||||
Route::get('/transfer/{marking}', function ($marking) {
|
||||
return view('pages.booking_details', ['marking' => $marking]);
|
||||
})->name('booking.details');
|
||||
@@ -60,6 +65,8 @@ Route::get('/transfer/merge/{marking}', function ($marking) {
|
||||
return view('pages.booking_merge', ['marking' => $marking]);
|
||||
})->name('booking.merge');
|
||||
|
||||
Route::get('/clock', function () {
|
||||
dd(Carbon::now());
|
||||
Route::get('/mail', function () {
|
||||
echo route('login');
|
||||
});
|
||||
|
||||
Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export');
|
||||
|
||||
Reference in New Issue
Block a user