fix: added fade in activities, call log note, sidebar section
This commit is contained in:
parent
bc8ba484c3
commit
10894d019d
@ -1,5 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="flex items-center justify-between mx-10 mt-8 mb-4 text-lg font-medium">
|
<div
|
||||||
|
class="mx-10 mb-4 mt-8 flex items-center justify-between text-lg font-medium"
|
||||||
|
>
|
||||||
<div class="flex h-8 items-center text-xl font-semibold text-gray-800">
|
<div class="flex h-8 items-center text-xl font-semibold text-gray-800">
|
||||||
{{ __(title) }}
|
{{ __(title) }}
|
||||||
</div>
|
</div>
|
||||||
@ -71,8 +73,9 @@
|
|||||||
<LoadingIndicator class="h-6 w-6" />
|
<LoadingIndicator class="h-6 w-6" />
|
||||||
<span>{{ __('Loading...') }}</span>
|
<span>{{ __('Loading...') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<FadedScrollableDiv
|
||||||
v-else-if="title == 'WhatsApp' && whatsappMessages.data?.length"
|
v-else-if="title == 'WhatsApp' && whatsappMessages.data?.length"
|
||||||
|
:maskHeight="30"
|
||||||
class="activities flex-1 overflow-y-auto"
|
class="activities flex-1 overflow-y-auto"
|
||||||
>
|
>
|
||||||
<WhatsAppArea
|
<WhatsAppArea
|
||||||
@ -81,8 +84,12 @@
|
|||||||
v-model:reply="replyMessage"
|
v-model:reply="replyMessage"
|
||||||
:messages="whatsappMessages.data"
|
:messages="whatsappMessages.data"
|
||||||
/>
|
/>
|
||||||
</div>
|
</FadedScrollableDiv>
|
||||||
<div v-else-if="activities?.length" class="activities flex-1 overflow-y-auto">
|
<FadedScrollableDiv
|
||||||
|
v-else-if="activities?.length"
|
||||||
|
:maskHeight="30"
|
||||||
|
class="activities flex-1 overflow-y-auto"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
v-if="title == 'Notes'"
|
v-if="title == 'Notes'"
|
||||||
class="activity grid grid-cols-1 gap-4 px-10 pb-5 lg:grid-cols-2 xl:grid-cols-3"
|
class="activity grid grid-cols-1 gap-4 px-10 pb-5 lg:grid-cols-2 xl:grid-cols-3"
|
||||||
@ -439,7 +446,8 @@
|
|||||||
</span>
|
</span>
|
||||||
<span v-if="activity.data.bcc">{{ activity.data.bcc }}</span>
|
<span v-if="activity.data.bcc">{{ activity.data.bcc }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<FadedScrollableDiv
|
||||||
|
:maskHeight="30"
|
||||||
class="email-content prose-f max-h-[500px] overflow-y-auto"
|
class="email-content prose-f max-h-[500px] overflow-y-auto"
|
||||||
v-html="activity.data.content"
|
v-html="activity.data.content"
|
||||||
/>
|
/>
|
||||||
@ -726,7 +734,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</FadedScrollableDiv>
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else
|
||||||
class="flex flex-1 flex-col items-center justify-center gap-3 text-xl font-medium text-gray-500"
|
class="flex flex-1 flex-col items-center justify-center gap-3 text-xl font-medium text-gray-500"
|
||||||
@ -818,6 +826,7 @@ import OutboundCallIcon from '@/components/Icons/OutboundCallIcon.vue'
|
|||||||
import ReplyIcon from '@/components/Icons/ReplyIcon.vue'
|
import ReplyIcon from '@/components/Icons/ReplyIcon.vue'
|
||||||
import ReplyAllIcon from '@/components/Icons/ReplyAllIcon.vue'
|
import ReplyAllIcon from '@/components/Icons/ReplyAllIcon.vue'
|
||||||
import AttachmentItem from '@/components/AttachmentItem.vue'
|
import AttachmentItem from '@/components/AttachmentItem.vue'
|
||||||
|
import FadedScrollableDiv from '@/components/FadedScrollableDiv.vue'
|
||||||
import CommunicationArea from '@/components/CommunicationArea.vue'
|
import CommunicationArea from '@/components/CommunicationArea.vue'
|
||||||
import NoteModal from '@/components/Modals/NoteModal.vue'
|
import NoteModal from '@/components/Modals/NoteModal.vue'
|
||||||
import TaskModal from '@/components/Modals/TaskModal.vue'
|
import TaskModal from '@/components/Modals/TaskModal.vue'
|
||||||
|
|||||||
@ -54,16 +54,21 @@
|
|||||||
></audio>
|
></audio>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="max-h-30 min-h-16 w-full cursor-pointer overflow-hidden rounded border px-2 py-1.5 text-base text-gray-700"
|
class="w-full cursor-pointer rounded border px-2 pt-1.5 text-base text-gray-700"
|
||||||
v-else-if="field.name == 'note'"
|
v-else-if="field.name == 'note'"
|
||||||
@click="() => (showNoteModal = true)"
|
@click="() => (showNoteModal = true)"
|
||||||
>
|
>
|
||||||
<div
|
<FadedScrollableDiv class="max-h-24 min-h-16 overflow-y-auto">
|
||||||
v-if="field.value?.title"
|
<div
|
||||||
:class="[field.value?.content ? 'mb-1 font-bold' : '']"
|
v-if="field.value?.title"
|
||||||
v-html="field.value?.title"
|
:class="[field.value?.content ? 'mb-1 font-bold' : '']"
|
||||||
/>
|
v-html="field.value?.title"
|
||||||
<div v-if="field.value?.content" v-html="field.value?.content" />
|
/>
|
||||||
|
<div
|
||||||
|
v-if="field.value?.content"
|
||||||
|
v-html="field.value?.content"
|
||||||
|
/>
|
||||||
|
</FadedScrollableDiv>
|
||||||
</div>
|
</div>
|
||||||
<div v-else :class="field.color ? `text-${field.color}-600` : ''">
|
<div v-else :class="field.color ? `text-${field.color}-600` : ''">
|
||||||
{{ field.value }}
|
{{ field.value }}
|
||||||
@ -103,7 +108,14 @@ import CalendarIcon from '@/components/Icons/CalendarIcon.vue'
|
|||||||
import NoteIcon from '@/components/Icons/NoteIcon.vue'
|
import NoteIcon from '@/components/Icons/NoteIcon.vue'
|
||||||
import CheckCircleIcon from '@/components/Icons/CheckCircleIcon.vue'
|
import CheckCircleIcon from '@/components/Icons/CheckCircleIcon.vue'
|
||||||
import NoteModal from '@/components/Modals/NoteModal.vue'
|
import NoteModal from '@/components/Modals/NoteModal.vue'
|
||||||
import { FeatherIcon, Avatar, Tooltip, createDocumentResource, call } from 'frappe-ui'
|
import FadedScrollableDiv from '@/components/FadedScrollableDiv.vue'
|
||||||
|
import {
|
||||||
|
FeatherIcon,
|
||||||
|
Avatar,
|
||||||
|
Tooltip,
|
||||||
|
createDocumentResource,
|
||||||
|
call,
|
||||||
|
} from 'frappe-ui'
|
||||||
import { ref, computed, h, watch } from 'vue'
|
import { ref, computed, h, watch } from 'vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="flex max-h-[300px] flex-col gap-1.5 overflow-y-auto">
|
<FadedScrollableDiv
|
||||||
|
class="flex max-h-[300px] flex-col gap-1.5 overflow-y-auto"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
v-for="field in _fields"
|
v-for="field in _fields"
|
||||||
:key="field.label"
|
:key="field.label"
|
||||||
@ -105,10 +107,11 @@
|
|||||||
@click="field.link(data[field.name])"
|
@click="field.link(data[field.name])"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</FadedScrollableDiv>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import FadedScrollableDiv from '@/components/FadedScrollableDiv.vue'
|
||||||
import ArrowUpRightIcon from '@/components/Icons/ArrowUpRightIcon.vue'
|
import ArrowUpRightIcon from '@/components/Icons/ArrowUpRightIcon.vue'
|
||||||
import Link from '@/components/Controls/Link.vue'
|
import Link from '@/components/Controls/Link.vue'
|
||||||
import UserAvatar from '@/components/UserAvatar.vue'
|
import UserAvatar from '@/components/UserAvatar.vue'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user