Merge branch 'master' of https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0 into login-dashboard-responsive-design

This commit is contained in:
Amirul Amin
2021-06-24 00:40:01 +08:00
26 changed files with 342 additions and 145 deletions
@@ -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
View File
@@ -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();
}
}
+1 -1
View File
@@ -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();
}
/**
+1
View File
@@ -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",
+1 -2
View File
@@ -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
},
},
@@ -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>
@@ -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>
@@ -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;">&copy;2021 CIEF Worldwide Snd Bhd. All rights reserved</small>
<small style="font-size: 0.6em; letter-spacing: 2px;">&copy;{{\Carbon\Carbon::now()->format('Y')}} CIEF Worldwide Snd Bhd. All rights reserved</small>
</div>
<div style="height: 30px;"></div>
</div>
@@ -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 }}
+6 -4
View File
@@ -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
+4 -2
View File
@@ -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
View File
@@ -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');