mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/portal.git
synced 2026-08-20 13:04:11 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Accounts\Services;
|
||||
|
||||
|
||||
use App\Classes\Exceptions\MalformedRequestException;
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Models\PasswordReset;
|
||||
|
||||
class ExpiresPasswordReset extends AbstractUpdateRecord
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @param PasswordReset $model
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
* @throws MalformedRequestException
|
||||
*/
|
||||
public function execute(PasswordReset $model){
|
||||
|
||||
$model->is_expired = true;
|
||||
return $this->handler($model);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -55,6 +55,7 @@ class GeneratesAuthenticationToken {
|
||||
|
||||
/** @var Company $companyModule */
|
||||
$companyModule = $user->companyModule()->first();
|
||||
$order = $companyModule->orders->count();
|
||||
|
||||
$claims = [
|
||||
'id' => $user->id,
|
||||
@@ -66,7 +67,9 @@ class GeneratesAuthenticationToken {
|
||||
|
||||
if($user->type === RoleTypes::USER) {
|
||||
$claims = array_merge($claims, [
|
||||
'company_id' => $companyModule->company_id
|
||||
'company_id' => $companyModule->company_id,
|
||||
'company_module_id' => $companyModule->id,
|
||||
'order' => $order
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
/**
|
||||
@@ -56,6 +58,15 @@ class CompanyModule extends AbstractModel
|
||||
return $this->belongsToMany(User::class, (new CompanyEmployee())->getTable(), 'company_module_id', 'user_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return HasMany
|
||||
*/
|
||||
public function orders(): HasMany
|
||||
{
|
||||
return $this->HasMany(Order::class, 'company_module_id');
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
// * @return HasMany
|
||||
// */
|
||||
|
||||
@@ -45,6 +45,6 @@ class CreateBanksTable extends Migration
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('banks');
|
||||
Schema::dropIfExists('bank_accounts');
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+113
@@ -0,0 +1,113 @@
|
||||
@page {
|
||||
header: page-header;
|
||||
footer: page-footer;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: sun-extA;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-top: 5em;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
width: 285px;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 100;
|
||||
padding: 0 15px 0 15px; /* Height of navbar */
|
||||
/* box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1); */
|
||||
}
|
||||
|
||||
.sidebar-sticky {
|
||||
position: relative;
|
||||
top: 0;
|
||||
height: calc(100vh - 48px);
|
||||
padding-top: .5rem;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
|
||||
}
|
||||
|
||||
@supports ((position: -webkit-sticky) or (position: sticky)) {
|
||||
.sidebar-sticky {
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar .nav-link {
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.sidebar .nav-link .feather {
|
||||
margin-right: 4px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.sidebar .nav-link.active {
|
||||
color: #007bff;
|
||||
}
|
||||
|
||||
.sidebar .nav-link:hover .feather,
|
||||
.sidebar .nav-link.active .feather {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.sidebar-heading {
|
||||
font-size: .75rem;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
padding-top: .75rem;
|
||||
padding-bottom: .75rem;
|
||||
font-size: 1rem;
|
||||
background-color: rgba(0, 0, 0, .25);
|
||||
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25);
|
||||
}
|
||||
|
||||
.navbar .navbar-toggler {
|
||||
top: .25rem;
|
||||
right: 1rem;
|
||||
}
|
||||
|
||||
.navbar .form-control {
|
||||
padding: .75rem 1rem;
|
||||
border-width: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.form-control-dark {
|
||||
color: #fff;
|
||||
background-color: rgba(255, 255, 255, .1);
|
||||
border-color: rgba(255, 255, 255, .1);
|
||||
}
|
||||
|
||||
.form-control-dark:focus {
|
||||
border-color: transparent;
|
||||
box-shadow: 0 0 0 3px rgba(255, 255, 255, .25);
|
||||
}
|
||||
|
||||
.text-menu {
|
||||
color: #a6a6a6;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.board {
|
||||
width: 100%;
|
||||
height: 180px;
|
||||
background: -webkit-linear-gradient(#503C93, #912873);
|
||||
background: linear-gradient(#503C93, #912873);
|
||||
}
|
||||
|
||||
.text-small {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.btn-white {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
Vendored
+2
@@ -32,6 +32,8 @@
|
||||
@import "modules";
|
||||
// Responsive Util
|
||||
@import "responsive";
|
||||
// Import custom
|
||||
@import "custom";
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<template>
|
||||
<div class="row h-100 align-items-center justify-content-center text-center">
|
||||
<div class="col">
|
||||
<loading-component style="height: 200px; top: 0;" key="1" color="white" v-show="loading"></loading-component>
|
||||
<div class="row" v-show="!loading">
|
||||
<div class="col">
|
||||
<div class="row justify-content-center m-b-20">
|
||||
<div class="col-4">
|
||||
<i class="fa fs-80 text-white" :class="[{'fa-check-circle': !error}, {'fa-times': error}]"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="font-heading text-white fs-20 all-caps bold lh-25">Email {{error ? 'Failed Verification': 'Verified'}}</div>
|
||||
<div class="font-heading text-white fs-12 all-caps m-b-10 lh-25">Your Email address was{{ error ? 'n\'t' : '' }} successfully verified</div>
|
||||
<div class="font-heading text-white fs-12 all-caps m-b-20 lh-25">{{ error }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a class="btn btn p-t-10 p-b-10 btn-primary bg-master-darker b-rad-none" :href="route('login')">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-auto p-r-10">
|
||||
<i class="fa fa-angle-left fs-16" style="margin-top: 1px;"></i>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
Back to login
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
token:{
|
||||
type: String,
|
||||
required: false
|
||||
}
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
loading: true,
|
||||
error: '',
|
||||
parameters: {
|
||||
token: this.token
|
||||
}
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.submit(this.route('api.account.email.verify'), 'post', 'emailVerificationSection', false, false);
|
||||
},
|
||||
methods: {
|
||||
successHandler(){
|
||||
|
||||
this.loading = false
|
||||
|
||||
this.error = '';
|
||||
|
||||
//this.$store.getters.isAuthenticated ? window.location.href = this.route('dashboard'): this.loading = false;;
|
||||
|
||||
},
|
||||
errorHandler(error){
|
||||
this.loading = false;
|
||||
this.error = error.message;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,78 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row m-b-20 animate__animated animate__fadeInUpBig animate__fast" v-if="error">
|
||||
<div class="col">
|
||||
<small class="bold fs-10 text-danger">{{error}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.email">
|
||||
<label class="text-primary">Email Address</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control fs-12" v-model="parameters.email">
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
<validation-wrapper-component :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>
|
||||
<div class="row m-t-15 align-items-center justify-content-center">
|
||||
<div class="col-auto">
|
||||
<div class="font-heading fs-12" style="line-height: 0px;">
|
||||
<input type="checkbox" v-model="parameters.remember">
|
||||
<label class="text-primary">Remember</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col text-right">
|
||||
<p class="muted fs-11 font-arial m-b-0 pointer" @click="$store.dispatch('toggleSection', {name: 'forgetPassword', status: true})">Forgot password?</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-15">
|
||||
<div class="col text-center">
|
||||
<div class="col btn btn-sm p-l-30 p-r-30 btn-primary bold v-align-middle b-rad-none all-caps" @click="submitForm">Sign In</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-15">
|
||||
<div class="col text-center">
|
||||
<div class="col">
|
||||
<p>New Customer? <strong class=" m-b-0 pointer" @click="$store.dispatch('toggleSection', {name: 'registrationSection', status: true})">Create Account</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import loginFormValidation from '../../../general/mixins/accounts/validation/loginFormValidation'
|
||||
export default {
|
||||
props: {
|
||||
section:{
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
error: '',
|
||||
parameters: {
|
||||
email: this.email,
|
||||
password: '',
|
||||
remember:''
|
||||
}
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
submitForm(){
|
||||
this.submit(this.route('api.account.authentication.authenticate.attempt'), 'post', this.section, false, false)
|
||||
}
|
||||
},
|
||||
mixins: [loginFormValidation]
|
||||
}
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,63 @@
|
||||
<template>
|
||||
<div class="row h-100 parentContainer">
|
||||
<div class="col">
|
||||
<div class="row align-items-center justify-content-center b-a b-thick h-100 pointer requestModal" data-type="logoutModal" style="border-color: #ffffff3d">
|
||||
<div class="col m-t-15 m-b-20 m-r-15 ">
|
||||
<a class="fs-12 light" style="color: #3c3c3c;" href="#">Sign Out</a>
|
||||
<loading-component class="fixed-top h-100 bg-white" style="height: 200px; top: 0;" key="1" color="success" v-show="loading"></loading-component>
|
||||
</div>
|
||||
</div>
|
||||
<modal-component styleType="fill-in" type="logoutModal">
|
||||
<div class="row">
|
||||
<div class="col text-center">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<div class="row text-center">
|
||||
<div class="col">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
||||
width="64" height="64"
|
||||
viewBox="0 0 172 172"
|
||||
style=" fill:#000000;"><defs><linearGradient x1="86" y1="73.90625" x2="86" y2="102.15725" gradientUnits="userSpaceOnUse" id="color-1_48180_gr1"><stop offset="0" stop-color="#f6ab9c"></stop><stop offset="1" stop-color="#f6ab9c"></stop></linearGradient><linearGradient x1="86" y1="12.09375" x2="86" y2="161.54563" gradientUnits="userSpaceOnUse" id="color-2_48180_gr2"><stop offset="0" stop-color="#ed5335"></stop><stop offset="1" stop-color="#ed5335"></stop></linearGradient><linearGradient x1="86" y1="12.09375" x2="86" y2="161.54563" gradientUnits="userSpaceOnUse" id="color-3_48180_gr3"><stop offset="0" stop-color="#ed5335"></stop><stop offset="1" stop-color="#ed5335"></stop></linearGradient><linearGradient x1="86" y1="12.09375" x2="86" y2="161.54563" gradientUnits="userSpaceOnUse" id="color-4_48180_gr4"><stop offset="0" stop-color="#ed5335"></stop><stop offset="1" stop-color="#ed5335"></stop></linearGradient></defs><g fill="none" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><path d="M0,172v-172h172v172z" fill="none"></path><g><path d="M86,77.9375c-5.93706,0 -10.75,4.81294 -10.75,10.75c0,5.93706 4.81294,10.75 10.75,10.75c5.93706,0 10.75,-4.81294 10.75,-10.75c0,-5.93706 -4.81294,-10.75 -10.75,-10.75z" fill="url(#color-1_48180_gr1)"></path><path d="M112.89113,27.10075l-2.15269,4.9235c22.52125,9.84431 37.07406,32.08606 37.07406,56.66325c0,34.08556 -27.72694,61.8125 -61.8125,61.8125c-34.08556,0 -61.8125,-27.72694 -61.8125,-61.8125c0,-24.5745 14.55013,-46.81356 37.07138,-56.66325l-2.15269,-4.9235c-24.48044,10.70163 -40.29369,34.87838 -40.29369,61.58675c0,37.04719 30.14031,67.1875 67.1875,67.1875c37.04719,0 67.1875,-30.14031 67.1875,-67.1875c0,-26.71106 -15.81862,-50.88781 -40.29637,-61.58675z" fill="url(#color-2_48180_gr2)"></path><path d="M86,134.375c-25.19263,0 -45.6875,-20.49487 -45.6875,-45.6875c0,-15.28381 7.59219,-29.48725 20.30944,-37.99587l-2.99388,-4.46663c-14.20881,9.50837 -22.69056,25.38613 -22.69056,42.4625c0,28.15694 22.90556,51.0625 51.0625,51.0625c28.15694,0 51.0625,-22.90556 51.0625,-51.0625c0,-17.14356 -8.5355,-33.05088 -22.83031,-42.55387l-2.97506,4.47738c12.7925,8.50325 20.43037,22.73625 20.43037,38.0765c0,25.19263 -20.49487,45.6875 -45.6875,45.6875z" fill="url(#color-3_48180_gr3)"></path><path d="M72.40394,48.375h10.90856v27.14644c-5.375,1.24969 -10.75,6.67575 -10.75,13.16606c0,7.40944 6.02806,13.4375 13.4375,13.4375c7.40944,0 13.4375,-6.02806 13.4375,-13.4375c0,-6.49031 -5.375,-11.91638 -10.75,-13.16606v-27.14644h10.90587c1.86244,0 3.59856,-0.96481 4.52575,-2.52356c0.88956,-1.49156 0.9245,-3.29219 0.09675,-4.816l-11.33856,-20.92487c-1.33031,-2.45906 -3.96406,-3.98556 -6.87731,-3.98556c-2.91325,0 -5.547,1.5265 -6.88,3.98288l-11.33856,20.92488c-0.82775,1.52381 -0.79281,3.32444 0.09675,4.816c0.92719,1.56144 2.66331,2.52625 4.52575,2.52625zM94.0625,88.6875c0,4.44512 -3.61738,8.0625 -8.0625,8.0625c-4.44512,0 -8.0625,-3.61738 -8.0625,-8.0625c0,-4.44512 3.61737,-8.0625 8.0625,-8.0625c4.44512,0 8.0625,3.61737 8.0625,8.0625zM83.84463,22.67175c0.58856,-1.08844 1.79794,-1.17175 2.15537,-1.17175c0.35744,0 1.56681,0.08331 2.15537,1.17175l11.01606,20.33094l-26.41275,0.13438z" fill="url(#color-4_48180_gr4)"></path></g></g></svg>
|
||||
</div>
|
||||
</div>
|
||||
<h3 class="all-caps">Are you leaving?</h3>
|
||||
<div class="fs-11">Are you sure you want to log out ? You will return to the login screen.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col p-r-5">
|
||||
<div class="btn btn-sm btn-default btn-block b-rad-none" data-dismiss="modal">Stay Here</div>
|
||||
</div>
|
||||
<div class="col p-l-5">
|
||||
<div class="btn btn-sm btn-danger btn-block b-rad-none" data-dismiss="modal" @click="logout()">Logout</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
loading: false
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
logout(){
|
||||
this.loading = true;
|
||||
this.submit(this.route('api.account.authentication.logout'), 'get', this.section, false, false)
|
||||
},
|
||||
successHandler(){
|
||||
this.$store.dispatch('userAuthentication', {access_token: '', redirect_url: this.route('login')});
|
||||
},
|
||||
errorHandler(){
|
||||
this.$store.dispatch('userAuthentication', {access_token: '', redirect_url: this.route('login')});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
@@ -28,6 +28,13 @@
|
||||
<div class="btn btn-block btn-lg btn-primary b-rad-none no-border" @click="submitForm">Sign In</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-15">
|
||||
<div class="col text-center">
|
||||
<div class="col">
|
||||
<p>New Customer? <strong class=" m-b-0 pointer" @click="$store.dispatch('toggleSection', {name: 'registrationSection', status: true})">Create Account</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<div class="fs-11 muted">{{status.message}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.email">
|
||||
<label class="text-primary">Email Address</label>
|
||||
<div class="controls">
|
||||
<input type="text" autocomplete="nope" class="form-control fs-12" v-model="watchCheckEmail">
|
||||
</div>
|
||||
</validation-wrapper-component>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button type="button" class="btn btn-sm p-t-10 p-b-10 btn-default bg-master-lighter b-rad-none" @click="changeStep('back')">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-auto p-r-10">
|
||||
<i class="fa fa-angle-left fs-16" style="margin-top: 1px;"></i>
|
||||
</div>
|
||||
<div class="col p-l-5">Back To Login</div>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col text-right">
|
||||
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('next')" :disabled=!status.error>Next</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import registrationCheckEmailValidation from '../../../general/mixins/accounts/validation/registrationCheckEmailValidation';
|
||||
import stepNavi from '../../../general/mixins/stepNavi';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
parameters : {
|
||||
email: '',
|
||||
},
|
||||
status:{
|
||||
error:false,
|
||||
message:null,
|
||||
direction:null,
|
||||
email:null
|
||||
},
|
||||
watchCheckEmail:null,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
watchCheckEmail(value){
|
||||
this.parameters.email = value;
|
||||
if(this.validate()){
|
||||
this.submit(this.route('api.account.authentication.authenticate.email.check'), 'post', 'registrationSection', false, false);
|
||||
}
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
changeStep(direction){
|
||||
if(direction === 'next'){
|
||||
if(this.validate()){
|
||||
this.step += 1;
|
||||
this.status.direction = direction;
|
||||
this.status.email = this.parameters.email;
|
||||
this.$emit('updateStatus',this.status);
|
||||
}
|
||||
return;
|
||||
}
|
||||
this.$v.$reset();
|
||||
this.$store.dispatch('toggleSection', {name: 'registrationSection', status: false});
|
||||
},
|
||||
},
|
||||
beforeDestroy: function(){
|
||||
},
|
||||
mixins: [registrationCheckEmailValidation]
|
||||
}
|
||||
</script>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,39 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="col ">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<div class="font-heading fs-18 text-primary all-caps">Create Account</div>
|
||||
</div>
|
||||
</div>
|
||||
<error-message-component class="m-b-20" :error="error"></error-message-component>
|
||||
<registration-check-email-form-component section="loginSection" :key="Math.round(+new Date()/1000)" v-if="step === 1" v-on:updateStatus="updateStatus($event)"></registration-check-email-form-component>
|
||||
<registration-form-component section="loginSection" v-if="step === 2" :key="Math.round(+new Date()/1000)" v-on:updateStatus="updateStatus($event)" :email=parameters.email></registration-form-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
error: '',
|
||||
step: 1,
|
||||
parameters : {
|
||||
email: ''
|
||||
},
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
updateStatus(event){
|
||||
if(event.direction === 'next'){
|
||||
this.parameters.email =event.email;
|
||||
this.step += 1;
|
||||
}else if(event.direction === 'back'){
|
||||
this.step -= 1;
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<h1>Dashboard</h1>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
created(){
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -24,7 +24,7 @@
|
||||
case 'primary':
|
||||
return '#912873';
|
||||
case 'success':
|
||||
return '#349128';
|
||||
return '#912873';
|
||||
case 'danger':
|
||||
return '#F3201F';
|
||||
case 'white':
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import errorMessageHandler from "../errorMessageHandler";
|
||||
import formHandler from "../formHandler";
|
||||
|
||||
export default {
|
||||
methods: {
|
||||
successHandler(response){
|
||||
this.formHandler('');
|
||||
this.status = {
|
||||
message:response.message,
|
||||
error:false
|
||||
}
|
||||
},
|
||||
errorHandler(error){
|
||||
this.formHandler(error.message);
|
||||
this.status = {
|
||||
message:"",
|
||||
error:true
|
||||
}
|
||||
}
|
||||
},
|
||||
mixins: [errorMessageHandler, formHandler]
|
||||
|
||||
}
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
import { required, email } from "vuelidate/lib/validators";
|
||||
import checkEmailHandler from '../checkEmailHandler'
|
||||
export default {
|
||||
validations: {
|
||||
parameters: {
|
||||
email: {
|
||||
required,
|
||||
email
|
||||
},
|
||||
}
|
||||
},
|
||||
mixins: [checkEmailHandler]
|
||||
}
|
||||
+11
-5
@@ -4,10 +4,10 @@ export default {
|
||||
validations: {
|
||||
parameters: {
|
||||
name: {
|
||||
required
|
||||
required,
|
||||
},
|
||||
email: {
|
||||
required: requiredIf(function () { return this.step === 2 }),
|
||||
required,
|
||||
email
|
||||
},
|
||||
company_name: {
|
||||
@@ -18,12 +18,18 @@ export default {
|
||||
numeric
|
||||
},
|
||||
password: {
|
||||
required: requiredIf(function () { return this.step === 2 }),
|
||||
required
|
||||
},
|
||||
password_confirmation: {
|
||||
required: requiredIf(function () { return this.step === 2 }),
|
||||
required,
|
||||
sameAs: sameAs('password')
|
||||
}
|
||||
},
|
||||
identification_no:{
|
||||
required
|
||||
},
|
||||
files:{
|
||||
required
|
||||
},
|
||||
}
|
||||
},
|
||||
mixins: [authenticationHandler]
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
export default {
|
||||
methods: {
|
||||
changeStep(direction) {
|
||||
this.status.direction = direction;
|
||||
|
||||
if (direction === 'next') {
|
||||
|
||||
if (this.validate()) {
|
||||
//this.step += 1;
|
||||
this.status.email = this.parameters.email;
|
||||
this.$emit('updateStatus', this.status);
|
||||
}
|
||||
return;
|
||||
}
|
||||
this.$emit('updateStatus', this.status);
|
||||
this.$v.$reset();
|
||||
},
|
||||
},
|
||||
beforeDestroy: function (event) {
|
||||
},
|
||||
|
||||
}
|
||||
@@ -17,6 +17,8 @@ export default {
|
||||
getUserId: (state, getters) => getters.getDecodedAccessToken.user.id,
|
||||
getUserEmail: (state, getters) => getters.getDecodedAccessToken.user.email,
|
||||
getCompanyId: (state, getters) => getters.getDecodedAccessToken.user.company_id,
|
||||
getCompanyModuleId: (state, getters) => getters.getDecodedAccessToken.user.company_module_id,
|
||||
getOrder: (state, getters) => getters.getDecodedAccessToken.user.order,
|
||||
|
||||
getDecodedAccessToken(state) {
|
||||
try{
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
@extends('layouts.base')
|
||||
|
||||
@section('content')
|
||||
|
||||
@yield('inner_content')
|
||||
|
||||
@yield('inner_content')
|
||||
@endsection
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
@section('content')
|
||||
@include('partials.header')
|
||||
@include('partials.menu')
|
||||
<div class="page-container">
|
||||
<div class="page-content-wrapper p-b-50" style="padding-top: 70px;">
|
||||
<div class="content pt-md-auto pt-4">
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
@extends('layouts.base_login')
|
||||
|
||||
@section('inner_content')
|
||||
<div class="row">
|
||||
<div class="col p-l-0 p-r-0 p-t-15 p-b-15">
|
||||
<div class="row justify-content-center h-100">
|
||||
<div class="col-8 p-t-50 p-b-50 bg-primary">
|
||||
<email-verification-component token="{{$token}}"></email-verification-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -1,7 +1,7 @@
|
||||
@extends('layouts.base_login')
|
||||
|
||||
@section('inner_content')
|
||||
<div class="row h-100">
|
||||
<div class="row h-100" v-show="!$store.getters.isShowing('registrationSection')">
|
||||
<div class="col bg-white">
|
||||
<div class="row h-100 no-margin align-items-center justify-content-center">
|
||||
<div class="col-12 col-md-8" v-show="!$store.getters.isShowing('registrationForm')">
|
||||
@@ -57,7 +57,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col h-100 bg-info-primary-gradient">
|
||||
<div class="col h-100 bg-info-primary-gradient" >
|
||||
<div class="row h-100 align-items-center justify-content-center">
|
||||
<div class="absolute hint-text dotted-grid" style="width: 250px; height: 142px; bottom: 0; right: 0; "></div>
|
||||
<div class="absolute hint-text dotted-grid" style="width: 200px; height: 135px; top: 140px; left: 100px;"></div>
|
||||
@@ -123,7 +123,21 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row h-100" v-show="$store.getters.isShowing('registrationSection')">
|
||||
<div class="col">
|
||||
<div class="row h-100 no-margin align-items-center justify-content-center">
|
||||
<div class="col-12 col-md-8">
|
||||
<loading-component style="height: 350px;" key="1" color="primary" v-show="$store.getters.isLoading('loginSection')"></loading-component>
|
||||
<div class="row justify-content-center" v-show="!$store.getters.isLoading('loginSection')">
|
||||
<div class="col-8">
|
||||
<registration-section-component section="loginSection"></registration-section-component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,74 @@
|
||||
@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">
|
||||
<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>
|
||||
</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>
|
||||
@endsection
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
|
||||
<div class="row d-none" :class="[{'d-flex': !$store.getters.isAdmin}]" v-if="!$store.getters.isAdmin">
|
||||
<div class="col">
|
||||
<customer-dashboard-section-component></customer-dashboard-section-component>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,5 @@
|
||||
@extends('layouts.base_portal')
|
||||
@section('inner_content')
|
||||
@include('pages.dashboards.admin')
|
||||
@include('pages.dashboards.customer')
|
||||
@endsection
|
||||
@@ -0,0 +1,206 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
@include('vendor/head')
|
||||
<style>
|
||||
@page {
|
||||
header: page-header;
|
||||
footer: page-footer;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: sun-extA;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-top: 5em;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
width: 285px;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 100;
|
||||
padding: 0 15px 0 15px; /* Height of navbar */
|
||||
/* box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1); */
|
||||
}
|
||||
|
||||
.sidebar-sticky {
|
||||
position: relative;
|
||||
top: 0;
|
||||
height: calc(100vh - 48px);
|
||||
padding-top: .5rem;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
|
||||
}
|
||||
|
||||
@supports ((position: -webkit-sticky) or (position: sticky)) {
|
||||
.sidebar-sticky {
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar .nav-link {
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.sidebar .nav-link .feather {
|
||||
margin-right: 4px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.sidebar .nav-link.active {
|
||||
color: #007bff;
|
||||
}
|
||||
|
||||
.sidebar .nav-link:hover .feather,
|
||||
.sidebar .nav-link.active .feather {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.sidebar-heading {
|
||||
font-size: .75rem;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
padding-top: .75rem;
|
||||
padding-bottom: .75rem;
|
||||
font-size: 1rem;
|
||||
background-color: rgba(0, 0, 0, .25);
|
||||
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25);
|
||||
}
|
||||
|
||||
.navbar .navbar-toggler {
|
||||
top: .25rem;
|
||||
right: 1rem;
|
||||
}
|
||||
|
||||
.navbar .form-control {
|
||||
padding: .75rem 1rem;
|
||||
border-width: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.form-control-dark {
|
||||
color: #fff;
|
||||
background-color: rgba(255, 255, 255, .1);
|
||||
border-color: rgba(255, 255, 255, .1);
|
||||
}
|
||||
|
||||
.form-control-dark:focus {
|
||||
border-color: transparent;
|
||||
box-shadow: 0 0 0 3px rgba(255, 255, 255, .25);
|
||||
}
|
||||
|
||||
.text-menu {
|
||||
color: #a6a6a6;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.board {
|
||||
width: 100%;
|
||||
height: 180px;
|
||||
background: -webkit-linear-gradient(#503C93, #912873);
|
||||
background: linear-gradient(#503C93, #912873);
|
||||
}
|
||||
|
||||
.text-small {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.btn-white {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<div class="d-flex flex-column align-items-end navbar navbar-dark bg-light flex-md-nowrap p-0 shadow">
|
||||
<button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-toggle="collapse" data-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<ul class="navbar-nav px-3">
|
||||
<li class="nav-item text-nowrap">
|
||||
<a class="no-margin fs-12 light" style="color: #3c3c3c;" href="#">Sign Out</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block sidebar" style="background-color: #f6f6f6">
|
||||
<div class="py-sm-3">
|
||||
<a href="#">
|
||||
<img class="" src="https://www.izyim.com/images/logo.png" alt="" height="24">
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-sticky pt-3 pb-4">
|
||||
<div class="d-flex flex-column justify-content-between" style="height: 100%">
|
||||
<div>
|
||||
<div class="py-sm-3">
|
||||
<span class="fs-14 all-caps">Main Menu</span>
|
||||
</div>
|
||||
<ul class="nav flex-column justify-content-between" style="height: 250px">
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-house-door" viewBox="0 0 16 16">
|
||||
<path d="M8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4.5a.5.5 0 0 0 .5-.5v-4h2v4a.5.5 0 0 0 .5.5H14a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146zM2.5 14V7.707l5.5-5.5 5.5 5.5V14H10v-4a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5v4H2.5z"/>
|
||||
</svg>
|
||||
Dashboard
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-journal-text" viewBox="0 0 16 16">
|
||||
<path d="M5 10.5a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z"/>
|
||||
<path d="M3 0h10a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-1h1v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v1H1V2a2 2 0 0 1 2-2z"/>
|
||||
<path d="M1 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1z"/>
|
||||
</svg>
|
||||
My Addresses
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-file-earmark-text" viewBox="0 0 16 16">
|
||||
<path d="M5.5 7a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zM5 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0 2a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5z"/>
|
||||
<path d="M9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.5L9.5 0zm0 1v2A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z"/>
|
||||
</svg>
|
||||
My Orders
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-box" viewBox="0 0 16 16">
|
||||
<path d="M8.186 1.113a.5.5 0 0 0-.372 0L1.846 3.5 8 5.961 14.154 3.5 8.186 1.113zM15 4.239l-6.5 2.6v7.922l6.5-2.6V4.24zM7.5 14.762V6.838L1 4.239v7.923l6.5 2.6zM7.443.184a1.5 1.5 0 0 1 1.114 0l7.129 2.852A.5.5 0 0 1 16 3.5v8.662a1 1 0 0 1-.629.928l-7.185 2.874a.5.5 0 0 1-.372 0L.63 13.09a1 1 0 0 1-.63-.928V3.5a.5.5 0 0 1 .314-.464L7.443.184z"/>
|
||||
</svg>
|
||||
My Packages
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-truck" viewBox="0 0 16 16">
|
||||
<path d="M0 3.5A1.5 1.5 0 0 1 1.5 2h9A1.5 1.5 0 0 1 12 3.5V5h1.02a1.5 1.5 0 0 1 1.17.563l1.481 1.85a1.5 1.5 0 0 1 .329.938V10.5a1.5 1.5 0 0 1-1.5 1.5H14a2 2 0 1 1-4 0H5a2 2 0 1 1-3.998-.085A1.5 1.5 0 0 1 0 10.5v-7zm1.294 7.456A1.999 1.999 0 0 1 4.732 11h5.536a2.01 2.01 0 0 1 .732-.732V3.5a.5.5 0 0 0-.5-.5h-9a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .294.456zM12 10a2 2 0 0 1 1.732 1h.768a.5.5 0 0 0 .5-.5V8.35a.5.5 0 0 0-.11-.312l-1.48-1.85A.5.5 0 0 0 13.02 6H12v4zm-9 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm9 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/>
|
||||
</svg>
|
||||
Tracking
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="container d-flex flex-column justify-content-between py-3 col-sx-12 rounded board">
|
||||
<div class="inline v-align-middle">
|
||||
<div class="text-white bold">Got Problems?</div>
|
||||
<span class="text-white text-small normal">If you have any problems regarding your order, contact us now.</span>
|
||||
</div>
|
||||
<div class="absolute hint-text dotted-grid" style="width: 83px; height: 74px; margin-top: 80px; margin-left: 85px;"></div>
|
||||
<div class="row m-t-15">
|
||||
<div class="col text-center">
|
||||
<div class="col btn btn-sm p-l-30 p-r-30 btn-white text-primary normal v-align-middle b-rad-1">Contact Us</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,11 @@
|
||||
<!-- START COPYRIGHT -->
|
||||
<div class="footer bg-white">
|
||||
<div class="container-fluid">
|
||||
<div class="row no-margin">
|
||||
<div class="col p-l-0 p-t-20 p-b-20 sm-text-center">
|
||||
<small class="small no-margin pull-left sm-pull-reset all-caps fs-10 muted" style=" letter-spacing: 1px; ">Copyright © 2021 CIEF IZYIM. All rights reserved.</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END COPYRIGHT -->
|
||||
@@ -0,0 +1,12 @@
|
||||
<div class="d-flex flex-column align-items-end navbar navbar-dark bg-light flex-md-nowrap p-0 shadow">
|
||||
<button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-toggle="collapse"
|
||||
data-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<ul class="navbar-nav px-3">
|
||||
<li class="nav-item text-nowrap">
|
||||
<log-out-form-component></log-out-form-component>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,89 @@
|
||||
<div id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block sidebar" style="background-color: #f6f6f6">
|
||||
<div class="py-sm-3">
|
||||
<a href="#">
|
||||
<img class="" src="https://www.izyim.com/images/logo.png" alt="" height="24">
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar-sticky pt-3 pb-4">
|
||||
<div class="d-flex flex-column justify-content-between" style="height: 100%">
|
||||
<div>
|
||||
<div class="py-sm-3">
|
||||
<span class="fs-14 all-caps">Main Menu</span>
|
||||
</div>
|
||||
<ul class="nav flex-column justify-content-between" style="height: 250px">
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
|
||||
class="bi bi-house-door" viewBox="0 0 16 16">
|
||||
<path
|
||||
d="M8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4.5a.5.5 0 0 0 .5-.5v-4h2v4a.5.5 0 0 0 .5.5H14a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146zM2.5 14V7.707l5.5-5.5 5.5 5.5V14H10v-4a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5v4H2.5z" />
|
||||
</svg>
|
||||
Dashboard
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
|
||||
class="bi bi-journal-text" viewBox="0 0 16 16">
|
||||
<path
|
||||
d="M5 10.5a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z" />
|
||||
<path
|
||||
d="M3 0h10a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-1h1v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v1H1V2a2 2 0 0 1 2-2z" />
|
||||
<path
|
||||
d="M1 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1z" />
|
||||
</svg>
|
||||
My Addresses
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
|
||||
class="bi bi-file-earmark-text" viewBox="0 0 16 16">
|
||||
<path
|
||||
d="M5.5 7a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zM5 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0 2a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5z" />
|
||||
<path
|
||||
d="M9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.5L9.5 0zm0 1v2A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z" />
|
||||
</svg>
|
||||
My Orders
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
|
||||
class="bi bi-box" viewBox="0 0 16 16">
|
||||
<path
|
||||
d="M8.186 1.113a.5.5 0 0 0-.372 0L1.846 3.5 8 5.961 14.154 3.5 8.186 1.113zM15 4.239l-6.5 2.6v7.922l6.5-2.6V4.24zM7.5 14.762V6.838L1 4.239v7.923l6.5 2.6zM7.443.184a1.5 1.5 0 0 1 1.114 0l7.129 2.852A.5.5 0 0 1 16 3.5v8.662a1 1 0 0 1-.629.928l-7.185 2.874a.5.5 0 0 1-.372 0L.63 13.09a1 1 0 0 1-.63-.928V3.5a.5.5 0 0 1 .314-.464L7.443.184z" />
|
||||
</svg>
|
||||
My Packages
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="text-menu font-weight-normal" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
|
||||
class="bi bi-truck" viewBox="0 0 16 16">
|
||||
<path
|
||||
d="M0 3.5A1.5 1.5 0 0 1 1.5 2h9A1.5 1.5 0 0 1 12 3.5V5h1.02a1.5 1.5 0 0 1 1.17.563l1.481 1.85a1.5 1.5 0 0 1 .329.938V10.5a1.5 1.5 0 0 1-1.5 1.5H14a2 2 0 1 1-4 0H5a2 2 0 1 1-3.998-.085A1.5 1.5 0 0 1 0 10.5v-7zm1.294 7.456A1.999 1.999 0 0 1 4.732 11h5.536a2.01 2.01 0 0 1 .732-.732V3.5a.5.5 0 0 0-.5-.5h-9a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .294.456zM12 10a2 2 0 0 1 1.732 1h.768a.5.5 0 0 0 .5-.5V8.35a.5.5 0 0 0-.11-.312l-1.48-1.85A.5.5 0 0 0 13.02 6H12v4zm-9 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm9 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z" />
|
||||
</svg>
|
||||
Tracking
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="container d-flex flex-column justify-content-between py-3 col-sx-12 rounded board">
|
||||
<div class="inline v-align-middle">
|
||||
<div class="text-white bold">Got Problems?</div>
|
||||
<span class="text-white text-small normal">If you have any problems regarding your order, contact us
|
||||
now.</span>
|
||||
</div>
|
||||
<div class="absolute hint-text dotted-grid"
|
||||
style="width: 83px; height: 74px; margin-top: 80px; margin-left: 85px;"></div>
|
||||
<div class="row m-t-15">
|
||||
<div class="col text-center">
|
||||
<div class="col btn btn-sm p-l-30 p-r-30 btn-white text-primary normal v-align-middle b-rad-1">
|
||||
Contact Us</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
|
||||
<meta charset="utf-8"/>
|
||||
<title>Exchange - Overseas Money Transfers</title>
|
||||
<title>IZYIM Shipping</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no"/>
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="images/favicon/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="images/favicon/favicon-32x32.png">
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
//to access ://{{servername}}/template/dashboard
|
||||
Route::group(['prefix' => 'template'], function () {
|
||||
Route::get('/dashboard', function () {
|
||||
return view('pages.templates.dashboard');
|
||||
})->name('template.dashboard');
|
||||
});
|
||||
@@ -13,6 +13,8 @@ use Illuminate\Support\Facades\Route;
|
||||
|
|
||||
*/
|
||||
|
||||
require __DIR__ . '/template.php';
|
||||
|
||||
Route::get('/', function () {
|
||||
return view('welcome');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user