mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-21 05:23:58 +00:00
106 lines
6.7 KiB
Vue
106 lines
6.7 KiB
Vue
<template>
|
|
<div class="row h-100">
|
|
<div class="col">
|
|
<div class="btn-group h-100">
|
|
<div class="d-none d-md-flex row align-items-center justify-content-center b-a b-thick h-100 pointer" :class="{'b-info' : isClicked}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" @click="openNotification()" style="border-color: #ffffff3d">
|
|
<div class="col p-r-10 p-l-10">
|
|
<i class="fa fa-bell fs-12" :class="{'text-info' : isClicked, 'text-primary-lighter' : !isClicked}"></i>
|
|
</div>
|
|
</div>
|
|
<i class="fa fa-bell fs-18 d-md-none" :class="{'text-info' : isClicked, 'text-white' : !isClicked}" style="margin-right: -10px;" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" @click="openNotification()"></i>
|
|
<div class="b-rad-md dropdown-menu dropdown-menu-right p-l-15 p-b-15 p-r-15 p-t-0" style="height: 100vh; width:100vw; background: transparent !important; box-shadow: none!important;" @click="openNotification()">
|
|
<div class="container-fluid container-fixed-lg" style="position: relative; background: transparent; height: 100vh; left: 0;">
|
|
<div class="row shadow" style="width: 320px; position: absolute; top: 50px; right: 30px; background: white!important;">
|
|
<div class="col">
|
|
<div class="row">
|
|
<div class="bg-master-lighter col p-l-10 p-l-10 p-t-10 bg-white text-center">
|
|
<p>Notification Center</p>
|
|
</div>
|
|
</div>
|
|
<loading-component style="height: 200px; top: 0;" key="1" color="primary" v-show="isLoading"></loading-component>
|
|
<div class="row" :class="{'h-100' : notificationsLength >= 5}" v-show="!isLoading" style="max-height: 400px; ">
|
|
<div class="col page-container overflow-hidden">
|
|
<div class="row b-b b-grey bg-primary-lighter-hover pointer w-100 m-l-0 m-r-0" v-for="(notification, index) in notifications">
|
|
<div class="col-auto justify-content-center align-items-center d-flex hide">
|
|
<div>
|
|
<i class="fa fa-check-circle fs-20 p-l-5 text-success"></i>
|
|
</div>
|
|
</div>
|
|
<div class="col padding-10 p-l-15 p-r-15">
|
|
<p class="bold m-b-5 lh-16">{{ notification.title }}</p>
|
|
<p class="fs-9 m-b-0 lh-10">{{ notification.description }}</p>
|
|
<p class="fs-9 m-b-0 m-t-10 lh-10">{{ notification.long_ago }}</p>
|
|
</div>
|
|
<div class="col-auto justify-content-center align-items-center d-none" :class="{'d-flex' : index === 0}">
|
|
<div>
|
|
<i class="fa fa-circle fs-10 text-primary"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row text-center m-t-50 m-b-50" v-if="notificationsLength === 0" v-show="!isLoading">
|
|
<div class="col">
|
|
<div class="row align-items-center justify-content-center hint-text">
|
|
<div class="col-4 hint-text"><img :src="asset('images/not-found-illustration.png')" class="w-100 hint-text"/></div>
|
|
</div>
|
|
<div class="row text-center">
|
|
<div class="col">
|
|
<div class="row m-t-20">
|
|
<div class="col">
|
|
<p class="all-caps no-margin fs-11" style="letter-spacing: 2px;">Nothing To Show Here</p>
|
|
</div>
|
|
</div>
|
|
<div class="row m-t-5 align-items-center justify-content-center hide">
|
|
<div class="col">
|
|
<small class="fs-9 muted all-caps font-lato" style="letter-spacing: 2px">There is no results found.</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row b-t muted">
|
|
<div class="col p-l-10 p-l-10 p-t-10 m-b-10 bg-white text-center">
|
|
<a href="#">View All Notifications</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import ModalFormHandler from '../../../general/mixins/modalFormHandler';
|
|
export default {
|
|
data(){
|
|
return {
|
|
isLoading: true,
|
|
error: '',
|
|
notifications: null,
|
|
isClicked: false,
|
|
notificationsLength: 0,
|
|
}
|
|
},
|
|
methods: {
|
|
openNotification(){
|
|
this.isClicked === false ? this.fetchNotification() : '';
|
|
this.isClicked = !this.isClicked;
|
|
},
|
|
fetchNotification(){
|
|
this.isLoading = true;
|
|
this.submit(route('notifications.list'), 'get', this.section, false, false)
|
|
},
|
|
successHandler(response){
|
|
this.isLoading = false;
|
|
this.notifications = response.payload.data;
|
|
this.notificationsLength = response.payload.data.length;
|
|
},
|
|
},
|
|
mixins: [ModalFormHandler]
|
|
}
|
|
</script>
|