refactor: new toast api
This commit is contained in:
@@ -191,10 +191,11 @@ import {
|
||||
FileUploader,
|
||||
FormControl,
|
||||
TextEditor,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { computed, inject, onMounted, onBeforeUnmount, ref, watch } from 'vue'
|
||||
import { FileText, X } from 'lucide-vue-next'
|
||||
import { showToast, getFileSize } from '@/utils'
|
||||
import { getFileSize } from '@/utils'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
const submissionFile = ref(null)
|
||||
@@ -284,7 +285,7 @@ const submissionResource = createDocumentResource({
|
||||
doctype: 'LMS Assignment Submission',
|
||||
name: props.submissionName,
|
||||
onError(err) {
|
||||
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
auto: false,
|
||||
cache: [user.data?.name, props.assignmentID],
|
||||
@@ -338,7 +339,7 @@ const submitAssignment = () => {
|
||||
},
|
||||
{
|
||||
onSuccess(data) {
|
||||
showToast(__('Success'), __('Changes saved successfully'), 'check')
|
||||
toast.success(__('Changes saved successfully'))
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -352,7 +353,7 @@ const addNewSubmission = () => {
|
||||
{},
|
||||
{
|
||||
onSuccess(data) {
|
||||
showToast('Success', 'Assignment submitted successfully.', 'check')
|
||||
toast.success(__('Assignment submitted successfully'))
|
||||
if (router.currentRoute.value.name == 'AssignmentSubmission') {
|
||||
router.push({
|
||||
name: 'AssignmentSubmission',
|
||||
@@ -370,7 +371,7 @@ const addNewSubmission = () => {
|
||||
submissionResource.reload()
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -86,9 +86,9 @@ import {
|
||||
ListRows,
|
||||
ListView,
|
||||
ListRowItem,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { Plus, Trash2 } from 'lucide-vue-next'
|
||||
import { showToast } from '@/utils'
|
||||
const readOnlyMode = window.read_only_mode
|
||||
|
||||
const showCourseModal = ref(false)
|
||||
@@ -152,7 +152,7 @@ const removeCourses = (selections, unselectAll) => {
|
||||
{
|
||||
onSuccess(data) {
|
||||
courses.reload()
|
||||
showToast(__('Success'), __('Courses deleted successfully'), 'check')
|
||||
toast.success(__('Courses deleted successfully'))
|
||||
unselectAll()
|
||||
},
|
||||
}
|
||||
|
||||
@@ -122,9 +122,9 @@
|
||||
</template>
|
||||
<script setup>
|
||||
import { inject, computed } from 'vue'
|
||||
import { Badge, Button, createResource } from 'frappe-ui'
|
||||
import { Badge, Button, createResource, toast } from 'frappe-ui'
|
||||
import { BookOpen, Clock, Globe } from 'lucide-vue-next'
|
||||
import { formatNumberIntoCurrency, formatTime, showToast } from '@/utils'
|
||||
import { formatNumberIntoCurrency, formatTime } from '@/utils'
|
||||
import DateRange from '@/components/Common/DateRange.vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
@@ -156,11 +156,7 @@ const enrollInBatch = () => {
|
||||
{},
|
||||
{
|
||||
onSuccess(data) {
|
||||
showToast(
|
||||
__('Success'),
|
||||
__('You have been enrolled in this batch'),
|
||||
'check'
|
||||
)
|
||||
toast.success(__('You have been enrolled in this batch'))
|
||||
router.push({
|
||||
name: 'Batch',
|
||||
params: {
|
||||
|
||||
@@ -223,6 +223,7 @@ import {
|
||||
ListRows,
|
||||
ListView,
|
||||
ListRowItem,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import {
|
||||
BookOpen,
|
||||
@@ -234,7 +235,6 @@ import {
|
||||
} from 'lucide-vue-next'
|
||||
import { ref, watch } from 'vue'
|
||||
import StudentModal from '@/components/Modals/StudentModal.vue'
|
||||
import { showToast } from '@/utils'
|
||||
import ProgressBar from '@/components/ProgressBar.vue'
|
||||
import BatchStudentProgress from '@/components/Modals/BatchStudentProgress.vue'
|
||||
import ApexChart from 'vue3-apexcharts'
|
||||
@@ -323,7 +323,7 @@ const removeStudents = (selections, unselectAll) => {
|
||||
{
|
||||
onSuccess(data) {
|
||||
students.reload()
|
||||
showToast(__('Success'), __('Students deleted successfully'), 'check')
|
||||
toast.success(__('Students deleted successfully'))
|
||||
unselectAll()
|
||||
},
|
||||
}
|
||||
|
||||
@@ -146,8 +146,8 @@
|
||||
<script setup>
|
||||
import { BookOpen, Users, Star, GraduationCap } from 'lucide-vue-next'
|
||||
import { computed, inject } from 'vue'
|
||||
import { Badge, Button, createResource } from 'frappe-ui'
|
||||
import { showToast, formatAmount } from '@/utils/'
|
||||
import { Badge, Button, createResource, toast } from 'frappe-ui'
|
||||
import { formatAmount } from '@/utils/'
|
||||
import { capture } from '@/telemetry'
|
||||
import { useRouter } from 'vue-router'
|
||||
import CertificationLinks from '@/components/CertificationLinks.vue'
|
||||
@@ -172,11 +172,7 @@ const video_link = computed(() => {
|
||||
|
||||
function enrollStudent() {
|
||||
if (!user.data) {
|
||||
showToast(
|
||||
__('Please Login'),
|
||||
__('You need to login first to enroll for this course'),
|
||||
'alert-circle'
|
||||
)
|
||||
toast.success(__('You need to login first to enroll for this course'))
|
||||
setTimeout(() => {
|
||||
window.location.href = `/login?redirect-to=${window.location.pathname}`
|
||||
}, 1000)
|
||||
@@ -192,11 +188,7 @@ function enrollStudent() {
|
||||
capture('enrolled_in_course', {
|
||||
course: props.course.data.name,
|
||||
})
|
||||
showToast(
|
||||
__('Success'),
|
||||
__('You have been enrolled in this course'),
|
||||
'check'
|
||||
)
|
||||
toast.success(__('You have been enrolled in this course'))
|
||||
setTimeout(() => {
|
||||
router.push({
|
||||
name: 'Lesson',
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
/>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Button, createResource, Tooltip } from 'frappe-ui'
|
||||
import { Button, createResource, Tooltip, toast } from 'frappe-ui'
|
||||
import { getCurrentInstance, inject, ref } from 'vue'
|
||||
import Draggable from 'vuedraggable'
|
||||
import { Disclosure, DisclosureButton, DisclosurePanel } from '@headlessui/vue'
|
||||
@@ -162,7 +162,6 @@ import {
|
||||
} from 'lucide-vue-next'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import ChapterModal from '@/components/Modals/ChapterModal.vue'
|
||||
import { showToast } from '@/utils'
|
||||
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
@@ -215,7 +214,7 @@ const deleteLesson = createResource({
|
||||
},
|
||||
onSuccess() {
|
||||
outline.reload()
|
||||
showToast('Success', 'Lesson deleted successfully', 'check')
|
||||
toast.success(__('Lesson deleted successfully'))
|
||||
},
|
||||
})
|
||||
|
||||
@@ -230,7 +229,7 @@ const updateLessonIndex = createResource({
|
||||
}
|
||||
},
|
||||
onSuccess() {
|
||||
showToast('Success', 'Lesson moved successfully', 'check')
|
||||
toast.success(__('Lesson moved successfully'))
|
||||
},
|
||||
})
|
||||
|
||||
@@ -288,7 +287,7 @@ const deleteChapter = createResource({
|
||||
},
|
||||
onSuccess() {
|
||||
outline.reload()
|
||||
showToast('Success', 'Chapter deleted successfully', 'check')
|
||||
toast.success(__('Chapter deleted successfully'))
|
||||
},
|
||||
})
|
||||
|
||||
@@ -317,11 +316,7 @@ const redirectToChapter = (chapter) => {
|
||||
event.preventDefault()
|
||||
if (props.allowEdit) return
|
||||
if (!user.data) {
|
||||
showToast(
|
||||
__('You are not enrolled'),
|
||||
__('Please enroll for this course to view this lesson'),
|
||||
'alert-circle'
|
||||
)
|
||||
toast.success(__('Please enroll for this course to view this lesson'))
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -93,12 +93,11 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { createResource, TextEditor, Button, Dropdown } from 'frappe-ui'
|
||||
import { createResource, TextEditor, Button, Dropdown, toast } from 'frappe-ui'
|
||||
import { timeAgo } from '../utils'
|
||||
import UserAvatar from '@/components/UserAvatar.vue'
|
||||
import { ChevronLeft, MoreHorizontal } from 'lucide-vue-next'
|
||||
import { ref, inject, onMounted } from 'vue'
|
||||
import { createToast } from '../utils'
|
||||
|
||||
const showTopics = defineModel('showTopics')
|
||||
const newReply = ref('')
|
||||
@@ -192,14 +191,7 @@ const postReply = () => {
|
||||
replies.reload()
|
||||
},
|
||||
onError(err) {
|
||||
createToast({
|
||||
title: 'Error',
|
||||
text: err.messages?.[0] || err,
|
||||
icon: 'x',
|
||||
iconClasses: 'bg-surface-red-5 text-ink-white rounded-md p-px',
|
||||
position: 'top-center',
|
||||
timeout: 10,
|
||||
})
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -43,9 +43,8 @@
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Dialog, Input, TextEditor, createResource } from 'frappe-ui'
|
||||
import { Dialog, Input, TextEditor, createResource, toast } from 'frappe-ui'
|
||||
import { reactive } from 'vue'
|
||||
import { showToast } from '@/utils/'
|
||||
|
||||
const show = defineModel()
|
||||
|
||||
@@ -95,14 +94,10 @@ const makeAnnouncement = (close) => {
|
||||
},
|
||||
onSuccess() {
|
||||
close()
|
||||
showToast(
|
||||
__('Success'),
|
||||
__('Announcement has been sent successfully'),
|
||||
'check'
|
||||
)
|
||||
toast.success(__('Announcement has been sent successfully'))
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), __(err.messages?.[0] || err), 'alert-circle')
|
||||
toast.error(__(err.messages?.[0] || err))
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -31,10 +31,9 @@
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Dialog, FormControl, createResource } from 'frappe-ui'
|
||||
import { Dialog, FormControl, createResource, toast } from 'frappe-ui'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
import { computed, ref } from 'vue'
|
||||
import { showToast } from '@/utils'
|
||||
|
||||
const show = defineModel()
|
||||
const assessmentType = ref(null)
|
||||
@@ -70,7 +69,7 @@ const addAssessment = (close) => {
|
||||
{
|
||||
onSuccess(data) {
|
||||
assessments.value.reload()
|
||||
showToast(__('Success'), __('Assessment added successfully'), 'check')
|
||||
toast.success(__('Assessment added successfully'))
|
||||
close()
|
||||
},
|
||||
}
|
||||
|
||||
@@ -64,9 +64,8 @@
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { Button, Dialog, FormControl, TextEditor } from 'frappe-ui'
|
||||
import { Button, Dialog, FormControl, TextEditor, toast } from 'frappe-ui'
|
||||
import { computed, reactive, watch } from 'vue'
|
||||
import { showToast } from '@/utils'
|
||||
|
||||
const show = defineModel()
|
||||
const assignments = defineModel<Assignments>('assignments')
|
||||
@@ -123,11 +122,7 @@ const saveAssignment = () => {
|
||||
{
|
||||
onSuccess() {
|
||||
show.value = false
|
||||
showToast(
|
||||
__('Success'),
|
||||
__('Assignment created successfully'),
|
||||
'check'
|
||||
)
|
||||
toast.success(__('Assignment created successfully'))
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -140,11 +135,7 @@ const saveAssignment = () => {
|
||||
{
|
||||
onSuccess() {
|
||||
show.value = false
|
||||
showToast(
|
||||
__('Success'),
|
||||
__('Assignment updated successfully'),
|
||||
'check'
|
||||
)
|
||||
toast.success(__('Assignment updated successfully'))
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -31,10 +31,9 @@
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Dialog, createResource } from 'frappe-ui'
|
||||
import { Dialog, createResource, toast } from 'frappe-ui'
|
||||
import { ref, inject } from 'vue'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
import { showToast } from '@/utils'
|
||||
import { useOnboarding } from 'frappe-ui/frappe'
|
||||
import { useSettings } from '@/stores/settings'
|
||||
|
||||
@@ -83,7 +82,7 @@ const addCourse = (close) => {
|
||||
evaluator.value = null
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.message[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -62,9 +62,8 @@
|
||||
</template>
|
||||
<script setup>
|
||||
import { inject, reactive } from 'vue'
|
||||
import { createResource, Dialog, FormControl, Switch } from 'frappe-ui'
|
||||
import { createResource, Dialog, FormControl, Switch, toast } from 'frappe-ui'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
import { showToast } from '@/utils'
|
||||
|
||||
const show = defineModel()
|
||||
const dayjs = inject('$dayjs')
|
||||
@@ -112,13 +111,13 @@ const generateCertificates = (close) => {
|
||||
},
|
||||
{
|
||||
onError(err) {
|
||||
showToast(__('Error'), err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
})
|
||||
close()
|
||||
showToast(__('Success'), __('Certificates generated successfully'), 'check')
|
||||
toast.success(__('Certificates generated successfully'))
|
||||
}
|
||||
|
||||
const getCourses = () => {
|
||||
|
||||
@@ -76,9 +76,10 @@ import {
|
||||
FileUploader,
|
||||
FormControl,
|
||||
Switch,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { reactive, watch, inject } from 'vue'
|
||||
import { showToast, getFileSize } from '@/utils/'
|
||||
import { getFileSize } from '@/utils/'
|
||||
import { capture } from '@/telemetry'
|
||||
import { FileText, X } from 'lucide-vue-next'
|
||||
import { useOnboarding } from 'frappe-ui/frappe'
|
||||
@@ -150,21 +151,17 @@ const addChapter = async (close) => {
|
||||
onSuccess(data) {
|
||||
cleanChapter()
|
||||
outline.value.reload()
|
||||
showToast(
|
||||
__('Success'),
|
||||
__('Chapter added successfully'),
|
||||
'check'
|
||||
)
|
||||
toast.success(__('Chapter added successfully'))
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
close()
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -196,11 +193,11 @@ const editChapter = (close) => {
|
||||
},
|
||||
onSuccess() {
|
||||
outline.value.reload()
|
||||
showToast(__('Success'), __('Chapter updated successfully'), 'check')
|
||||
toast.success(__('Chapter updated successfully'))
|
||||
close()
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -34,9 +34,15 @@
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Dialog, FormControl, TextEditor, createResource } from 'frappe-ui'
|
||||
import {
|
||||
Dialog,
|
||||
FormControl,
|
||||
TextEditor,
|
||||
createResource,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { reactive } from 'vue'
|
||||
import { showToast, singularize } from '@/utils'
|
||||
import { singularize } from '@/utils'
|
||||
|
||||
const topics = defineModel('reloadTopics')
|
||||
|
||||
@@ -115,7 +121,7 @@ const submitTopic = (close) => {
|
||||
)
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.message, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -93,10 +93,11 @@ import {
|
||||
Button,
|
||||
createResource,
|
||||
TextEditor,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { reactive, watch } from 'vue'
|
||||
import { FileText, X } from 'lucide-vue-next'
|
||||
import { getFileSize, showToast, escapeHTML } from '@/utils'
|
||||
import { getFileSize, escapeHTML } from '@/utils'
|
||||
|
||||
const reloadProfile = defineModel('reloadProfile')
|
||||
|
||||
@@ -155,7 +156,7 @@ const saveProfile = (close) => {
|
||||
reloadProfile.value.reload()
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<script setup>
|
||||
import { Dialog, createResource, Select, FormControl } from 'frappe-ui'
|
||||
import { reactive, watch, inject } from 'vue'
|
||||
import { createToast, formatTime } from '@/utils/'
|
||||
import { formatTime } from '@/utils/'
|
||||
|
||||
const user = inject('$user')
|
||||
const dayjs = inject('$dayjs')
|
||||
@@ -148,14 +148,7 @@ function submitEvaluation(close) {
|
||||
unavailabilityMessage = false
|
||||
}
|
||||
|
||||
createToast({
|
||||
title: unavailabilityMessage ? __('Evaluator is Unavailable') : '',
|
||||
text: message,
|
||||
icon: unavailabilityMessage ? 'alert-circle' : 'x',
|
||||
iconClasses: 'bg-yellow-600 text-ink-white rounded-md p-px',
|
||||
position: 'top-center',
|
||||
timeout: 10,
|
||||
})
|
||||
toast.warn(__('Evaluator is unavailable'))
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -144,6 +144,7 @@ import {
|
||||
Tabs,
|
||||
Tooltip,
|
||||
Textarea,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import {
|
||||
User,
|
||||
@@ -157,7 +158,7 @@ import {
|
||||
ClipboardList,
|
||||
} from 'lucide-vue-next'
|
||||
import { inject, reactive, watch, ref, computed } from 'vue'
|
||||
import { formatTime, showToast } from '@/utils'
|
||||
import { formatTime } from '@/utils'
|
||||
import Rating from '@/components/Controls/Rating.vue'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
|
||||
@@ -252,7 +253,7 @@ const saveEvaluation = () => {
|
||||
} else {
|
||||
show.value = false
|
||||
}
|
||||
showToast(__('Success'), __('Evaluation saved successfully'), 'check')
|
||||
toast.success(__('Evaluation saved successfully'))
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -307,7 +308,7 @@ const saveCertificate = () => {
|
||||
{},
|
||||
{
|
||||
onSuccess: () => {
|
||||
showToast(__('Success'), __('Certificate saved successfully'), 'check')
|
||||
toast.success(__('Certificate saved successfully'))
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -64,10 +64,10 @@
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Dialog, FileUploader, Button, createResource } from 'frappe-ui'
|
||||
import { Dialog, FileUploader, Button, createResource, toast } from 'frappe-ui'
|
||||
import { FileText } from 'lucide-vue-next'
|
||||
import { ref, inject } from 'vue'
|
||||
import { createToast, getFileSize } from '@/utils/'
|
||||
import { getFileSize } from '@/utils/'
|
||||
|
||||
const resume = ref(null)
|
||||
const show = defineModel()
|
||||
@@ -112,24 +112,12 @@ const submitResume = (close) => {
|
||||
}
|
||||
},
|
||||
onSuccess() {
|
||||
createToast({
|
||||
title: 'Success',
|
||||
text: 'Your application has been submitted',
|
||||
icon: 'check',
|
||||
iconClasses: 'bg-surface-green-3 text-ink-white rounded-md p-px',
|
||||
})
|
||||
toast.success('Your application has been submitted successfully')
|
||||
application.value.reload()
|
||||
close()
|
||||
},
|
||||
onError(err) {
|
||||
createToast({
|
||||
title: 'Error',
|
||||
text: err.messages?.[0] || err,
|
||||
icon: 'x',
|
||||
iconClasses: 'bg-surface-red-5 text-ink-white rounded-md p-px',
|
||||
position: 'top-center',
|
||||
timeout: 10,
|
||||
})
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -94,9 +94,10 @@ import {
|
||||
Tooltip,
|
||||
FormControl,
|
||||
Autocomplete,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { reactive, inject, onMounted } from 'vue'
|
||||
import { getTimezones, createToast, getUserTimezone } from '@/utils/'
|
||||
import { getTimezones, getUserTimezone } from '@/utils/'
|
||||
|
||||
const liveClasses = defineModel('reloadLiveClasses')
|
||||
const show = defineModel()
|
||||
@@ -202,14 +203,7 @@ const submitLiveClass = (close) => {
|
||||
close()
|
||||
},
|
||||
onError(err) {
|
||||
createToast({
|
||||
title: 'Error',
|
||||
text: err.messages?.[0] || err,
|
||||
icon: 'x',
|
||||
iconClasses: 'bg-surface-red-5 text-ink-white rounded-md p-px',
|
||||
position: 'top-center',
|
||||
timeout: 10,
|
||||
})
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -30,11 +30,10 @@
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Dialog, createResource } from 'frappe-ui'
|
||||
import { Dialog, createResource, toast } from 'frappe-ui'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
import { reactive, watch } from 'vue'
|
||||
import IconPicker from '@/components/Controls/IconPicker.vue'
|
||||
import { showToast } from '@/utils'
|
||||
|
||||
const sidebar = defineModel('reloadSidebar')
|
||||
const show = defineModel()
|
||||
@@ -78,10 +77,10 @@ const addWebPage = (close) => {
|
||||
onSuccess() {
|
||||
sidebar.value.reload()
|
||||
close()
|
||||
showToast('Success', 'Web page added to sidebar', 'check')
|
||||
toast.success(__('Web page added to sidebar'))
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.message[0] || err, 'x')
|
||||
toast.error(err.message[0] || err)
|
||||
close()
|
||||
},
|
||||
}
|
||||
|
||||
@@ -121,10 +121,10 @@ import {
|
||||
createResource,
|
||||
Switch,
|
||||
Button,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { computed, watch, reactive, ref, inject } from 'vue'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
import { showToast } from '@/utils'
|
||||
import { useOnboarding } from 'frappe-ui/frappe'
|
||||
|
||||
const show = defineModel()
|
||||
@@ -260,7 +260,7 @@ const addQuestion = () => {
|
||||
})
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -278,12 +278,12 @@ const addQuestionRow = (question) => {
|
||||
updateOnboardingStep('create_first_quiz')
|
||||
|
||||
show.value = false
|
||||
showToast(__('Success'), __('Question added successfully'), 'check')
|
||||
toast.success(__('Question added successfully'))
|
||||
quiz.value.reload()
|
||||
show.value = false
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
show.value = false
|
||||
},
|
||||
}
|
||||
@@ -328,18 +328,14 @@ const updateQuestion = () => {
|
||||
{
|
||||
onSuccess() {
|
||||
show.value = false
|
||||
showToast(
|
||||
__('Success'),
|
||||
__('Question updated successfully'),
|
||||
'check'
|
||||
)
|
||||
toast.success(__('Question updated successfully'))
|
||||
quiz.value.reload()
|
||||
},
|
||||
}
|
||||
)
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -32,10 +32,9 @@
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Dialog, Textarea, createResource } from 'frappe-ui'
|
||||
import { Dialog, Textarea, createResource, toast } from 'frappe-ui'
|
||||
import { reactive } from 'vue'
|
||||
import Rating from '@/components/Controls/Rating.vue'
|
||||
import { createToast } from '@/utils/'
|
||||
|
||||
const show = defineModel()
|
||||
const reviews = defineModel('reloadReviews')
|
||||
@@ -78,11 +77,7 @@ function submitReview(close) {
|
||||
hasReviewed.value.reload()
|
||||
},
|
||||
onError(err) {
|
||||
createToast({
|
||||
text: err.messages?.[0] || err,
|
||||
icon: 'x',
|
||||
iconClasses: 'text-ink-red-4 bg-surface-red-4',
|
||||
})
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
})
|
||||
close()
|
||||
|
||||
@@ -25,10 +25,9 @@
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Dialog, createResource } from 'frappe-ui'
|
||||
import { Dialog, createResource, toast } from 'frappe-ui'
|
||||
import { ref, inject } from 'vue'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
import { showToast } from '@/utils'
|
||||
import { useOnboarding } from 'frappe-ui/frappe'
|
||||
|
||||
const students = defineModel('reloadStudents')
|
||||
@@ -70,7 +69,7 @@ const addStudent = (close) => {
|
||||
close()
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -291,9 +291,9 @@ import {
|
||||
ListView,
|
||||
TextEditor,
|
||||
FormControl,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { ref, watch, reactive, inject, computed } from 'vue'
|
||||
import { createToast, showToast } from '@/utils/'
|
||||
import { CheckCircle, XCircle, MinusCircle } from 'lucide-vue-next'
|
||||
import { timeAgo } from '@/utils'
|
||||
import { useRouter } from 'vue-router'
|
||||
@@ -494,12 +494,7 @@ const getAnswers = () => {
|
||||
const checkAnswer = () => {
|
||||
let answers = getAnswers()
|
||||
if (!answers.length) {
|
||||
createToast({
|
||||
title: 'Please select an option',
|
||||
icon: 'alert-circle',
|
||||
iconClasses: 'text-yellow-600 bg-yellow-100 rounded-full',
|
||||
position: 'top-center',
|
||||
})
|
||||
toast.warn(__('Please select an option'))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -589,7 +584,7 @@ const createSubmission = () => {
|
||||
const errorTitle = err?.message || ''
|
||||
if (errorTitle.includes('MaximumAttemptsExceededError')) {
|
||||
const errorMessage = err.messages?.[0] || err
|
||||
showToast(__('Error'), __(errorMessage), 'x')
|
||||
toast.error(__(errorMessage))
|
||||
setTimeout(() => {
|
||||
window.location.reload()
|
||||
}, 3000)
|
||||
|
||||
@@ -27,9 +27,8 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Button, Badge } from 'frappe-ui'
|
||||
import { Button, Badge, toast } from 'frappe-ui'
|
||||
import SettingFields from '@/components/SettingFields.vue'
|
||||
import { showToast } from '@/utils'
|
||||
|
||||
const props = defineProps({
|
||||
fields: {
|
||||
@@ -61,7 +60,7 @@ const update = () => {
|
||||
{},
|
||||
{
|
||||
onError(err) {
|
||||
showToast(__('Error'), err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -278,9 +278,9 @@ import {
|
||||
TextEditor,
|
||||
createResource,
|
||||
usePageMeta,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { showToast } from '@/utils'
|
||||
import { Image } from 'lucide-vue-next'
|
||||
import { capture } from '@/telemetry'
|
||||
import { useOnboarding } from 'frappe-ui/frappe'
|
||||
@@ -460,7 +460,7 @@ const createNewBatch = () => {
|
||||
})
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Message', err.messages?.[0] || err, 'alert-circle')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -479,7 +479,7 @@ const editBatchDetails = () => {
|
||||
})
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Message', err.messages?.[0] || err, 'alert-circle')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -156,9 +156,9 @@ import {
|
||||
FormControl,
|
||||
Breadcrumbs,
|
||||
usePageMeta,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { reactive, inject, onMounted, computed } from 'vue'
|
||||
import { showToast } from '@/utils/'
|
||||
import { sessionStore } from '../stores/session'
|
||||
import Link from '@/components/Controls/Link.vue'
|
||||
import NotPermitted from '@/components/NotPermitted.vue'
|
||||
@@ -259,7 +259,7 @@ const generatePaymentLink = () => {
|
||||
window.location.href = data
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -333,14 +333,7 @@ const validateAddress = () => {
|
||||
}
|
||||
|
||||
const showError = (err) => {
|
||||
createToast({
|
||||
title: 'Error',
|
||||
text: err.messages?.[0] || err,
|
||||
icon: 'x',
|
||||
iconClasses: 'bg-surface-red-5 text-ink-white rounded-md p-px',
|
||||
position: 'top-center',
|
||||
timeout: 10,
|
||||
})
|
||||
toast.error(err.messages?.[0] || err)
|
||||
}
|
||||
|
||||
const changeCurrency = (country) => {
|
||||
|
||||
@@ -282,7 +282,6 @@ import {
|
||||
watch,
|
||||
getCurrentInstance,
|
||||
} from 'vue'
|
||||
import { showToast } from '@/utils'
|
||||
import { Check, Image, Trash2, X } from 'lucide-vue-next'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { capture } from '@/telemetry'
|
||||
@@ -450,31 +449,10 @@ const submitCourse = () => {
|
||||
},
|
||||
{
|
||||
onSuccess() {
|
||||
console.log('Course updated successfully')
|
||||
/* showToast('Success', 'Course updated successfully', 'check') */
|
||||
/* First arg of toast.promise is a promiseToResolve and second is the options obj, how to write this */
|
||||
toast.promise(
|
||||
new Promise((resolve) => {
|
||||
resolve()
|
||||
}),
|
||||
{
|
||||
open: true,
|
||||
type: 'success',
|
||||
message: __('Course updated successfully'),
|
||||
icon: Check,
|
||||
duration: 500,
|
||||
}
|
||||
)
|
||||
/* toast.promise({
|
||||
open: true,
|
||||
type: 'success',
|
||||
message: __('Course updated successfully'),
|
||||
icon: Check,
|
||||
duration: 5
|
||||
}) */
|
||||
toast.success(__('Course updated successfully'))
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -488,14 +466,14 @@ const submitCourse = () => {
|
||||
}
|
||||
|
||||
capture('course_created')
|
||||
showToast('Success', 'Course created successfully', 'check')
|
||||
toast.success(__('Course created successfully'))
|
||||
router.push({
|
||||
name: 'CourseForm',
|
||||
params: { courseName: data.name },
|
||||
})
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -509,7 +487,7 @@ const deleteCourse = createResource({
|
||||
}
|
||||
},
|
||||
onSuccess() {
|
||||
showToast(__('Success'), __('Course deleted successfully'), 'check')
|
||||
toast.success(__('Course deleted successfully'))
|
||||
router.push({ name: 'Courses' })
|
||||
},
|
||||
})
|
||||
|
||||
@@ -145,12 +145,13 @@ import {
|
||||
TextEditor,
|
||||
FileUploader,
|
||||
usePageMeta,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { computed, onMounted, reactive, inject } from 'vue'
|
||||
import { FileText, X } from 'lucide-vue-next'
|
||||
import { sessionStore } from '@/stores/session'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getFileSize, showToast } from '../utils'
|
||||
import { getFileSize } from '@/utils'
|
||||
|
||||
const user = inject('$user')
|
||||
const router = useRouter()
|
||||
@@ -259,7 +260,7 @@ const createNewJob = () => {
|
||||
})
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -278,7 +279,7 @@ const editJobDetails = () => {
|
||||
})
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -84,6 +84,7 @@ import {
|
||||
createResource,
|
||||
FormControl,
|
||||
usePageMeta,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import {
|
||||
computed,
|
||||
@@ -97,7 +98,7 @@ import { sessionStore } from '../stores/session'
|
||||
import EditorJS from '@editorjs/editorjs'
|
||||
import LessonHelp from '@/components/LessonHelp.vue'
|
||||
import { ChevronRight } from 'lucide-vue-next'
|
||||
import { createToast, getEditorTools, enablePlyr } from '@/utils'
|
||||
import { getEditorTools, enablePlyr } from '@/utils'
|
||||
import { capture } from '@/telemetry'
|
||||
import { useOnboarding } from 'frappe-ui/frappe'
|
||||
|
||||
@@ -410,14 +411,14 @@ const createNewLesson = () => {
|
||||
updateOnboardingStep('create_first_lesson')
|
||||
|
||||
capture('lesson_created')
|
||||
showToast('Success', 'Lesson created successfully', 'check')
|
||||
toast.success(__('Lesson created successfully'))
|
||||
lessonDetails.reload()
|
||||
},
|
||||
}
|
||||
)
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.message, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -434,11 +435,11 @@ const editCurrentLesson = () => {
|
||||
},
|
||||
onSuccess() {
|
||||
showSuccessMessage
|
||||
? showToast('Success', 'Lesson updated successfully', 'check')
|
||||
? toast.success(__('Lesson updated successfully'))
|
||||
: ''
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.message, 'x')
|
||||
toast.error(err.message)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -453,20 +454,6 @@ const validateLesson = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const showToast = (title, text, icon) => {
|
||||
createToast({
|
||||
title: title,
|
||||
text: text,
|
||||
icon: icon,
|
||||
iconClasses:
|
||||
icon == 'check'
|
||||
? 'bg-surface-green-3 text-ink-white rounded-md p-px'
|
||||
: 'bg-surface-red-5 text-ink-white rounded-md p-px',
|
||||
position: icon == 'check' ? 'bottom-right' : 'top-center',
|
||||
timeout: icon == 'check' ? 5 : 10,
|
||||
})
|
||||
}
|
||||
|
||||
const breadcrumbs = computed(() => {
|
||||
let crumbs = [
|
||||
{
|
||||
|
||||
@@ -141,9 +141,9 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { createResource, FormControl, Button, Badge } from 'frappe-ui'
|
||||
import { createResource, FormControl, Button, Badge, toast } from 'frappe-ui'
|
||||
import { computed, reactive, ref, onMounted, inject } from 'vue'
|
||||
import { showToast, convertToTitleCase } from '@/utils'
|
||||
import { convertToTitleCase } from '@/utils'
|
||||
import { Plus, X, Check, CircleAlert } from 'lucide-vue-next'
|
||||
|
||||
const user = inject('$user')
|
||||
@@ -198,7 +198,7 @@ const createSlot = createResource({
|
||||
}
|
||||
},
|
||||
onSuccess() {
|
||||
showToast('Success', 'Slot added successfully', 'check')
|
||||
toast.success(__('Slot added successfully'))
|
||||
evaluator.reload()
|
||||
showSlotsTemplate.value = 0
|
||||
newSlot.day = ''
|
||||
@@ -206,7 +206,7 @@ const createSlot = createResource({
|
||||
newSlot.end_time = ''
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
})
|
||||
|
||||
@@ -221,10 +221,10 @@ const updateSlot = createResource({
|
||||
}
|
||||
},
|
||||
onSuccess() {
|
||||
showToast('Success', 'Availability updated successfully', 'check')
|
||||
toast.success(__('Availability updated successfully'))
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
})
|
||||
|
||||
@@ -237,11 +237,11 @@ const deleteSlot = createResource({
|
||||
}
|
||||
},
|
||||
onSuccess() {
|
||||
showToast('Success', 'Slot deleted successfully', 'check')
|
||||
toast.success(__('Slot deleted successfully'))
|
||||
evaluator.reload()
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
})
|
||||
|
||||
@@ -256,10 +256,10 @@ const updateUnavailability = createResource({
|
||||
}
|
||||
},
|
||||
onSuccess() {
|
||||
showToast('Success', 'Unavailability updated successfully', 'check')
|
||||
toast.success(__('Unavailability updated successfully'))
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -44,9 +44,9 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { FormControl, createResource } from 'frappe-ui'
|
||||
import { FormControl, createResource, toast } from 'frappe-ui'
|
||||
import { ref } from 'vue'
|
||||
import { showToast, convertToTitleCase } from '@/utils'
|
||||
import { convertToTitleCase } from '@/utils'
|
||||
import { CircleAlert } from 'lucide-vue-next'
|
||||
|
||||
const moderator = ref(false)
|
||||
@@ -102,7 +102,7 @@ const changeRole = (role) => {
|
||||
},
|
||||
{
|
||||
onSuccess(data) {
|
||||
showToast('Success', 'Role updated successfully', 'check')
|
||||
toast.success(__('Role updated successfully'))
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -188,10 +188,10 @@ import {
|
||||
ListHeaderItem,
|
||||
ListSelectBanner,
|
||||
usePageMeta,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { computed, ref } from 'vue'
|
||||
import { Plus, Trash2 } from 'lucide-vue-next'
|
||||
import { showToast } from '@/utils/'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { sessionStore } from '@/stores/session'
|
||||
import { useSettings } from '@/stores/settings'
|
||||
@@ -232,11 +232,11 @@ const addProgramCourse = () => {
|
||||
onSuccess(data) {
|
||||
showDialog.value = false
|
||||
course.value = null
|
||||
showToast(__('Success'), __('Course added to program'), 'check')
|
||||
toast.success(__('Course added to program'))
|
||||
program.reload()
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -254,11 +254,11 @@ const addProgramMember = () => {
|
||||
onSuccess(data) {
|
||||
showDialog.value = false
|
||||
member.value = null
|
||||
showToast(__('Success'), __('Member added to program'), 'check')
|
||||
toast.success(__('Member added to program'))
|
||||
program.reload()
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -275,11 +275,11 @@ const remove = (selections, unselectAll, doctype) => {
|
||||
{
|
||||
onSuccess(data) {
|
||||
unselectAll()
|
||||
showToast(__('Success'), __('Items removed successfully'), 'check')
|
||||
toast.success(__('Items removed successfully'))
|
||||
program.reload()
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -301,11 +301,11 @@ const updateOrder = (e) => {
|
||||
},
|
||||
{
|
||||
onSuccess(data) {
|
||||
showToast(__('Success'), __('Course moved successfully'), 'check')
|
||||
toast.success(__('Course moved successfully'))
|
||||
program.reload()
|
||||
},
|
||||
onError(err) {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -112,6 +112,7 @@ import {
|
||||
Dialog,
|
||||
FormControl,
|
||||
usePageMeta,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { computed, inject, onMounted, ref } from 'vue'
|
||||
import { Edit, Plus, LockKeyhole } from 'lucide-vue-next'
|
||||
@@ -119,7 +120,6 @@ import CourseCard from '@/components/CourseCard.vue'
|
||||
import EmptyState from '@/components/EmptyState.vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { sessionStore } from '../stores/session'
|
||||
import { showToast } from '@/utils'
|
||||
import { useSettings } from '@/stores/settings'
|
||||
|
||||
const { brand } = sessionStore()
|
||||
@@ -184,7 +184,7 @@ const enrollMember = (program, course) => {
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
showToast('Error', err.messages?.[0] || err, 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -198,6 +198,7 @@ import {
|
||||
ListSelectBanner,
|
||||
Button,
|
||||
usePageMeta,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import {
|
||||
computed,
|
||||
@@ -210,7 +211,7 @@ import {
|
||||
} from 'vue'
|
||||
import { sessionStore } from '../stores/session'
|
||||
import { Plus, Trash2 } from 'lucide-vue-next'
|
||||
import { showToast, updateDocumentTitle } from '@/utils'
|
||||
import { updateDocumentTitle } from '@/utils'
|
||||
import { useRouter } from 'vue-router'
|
||||
import Question from '@/components/Modals/Question.vue'
|
||||
|
||||
@@ -340,14 +341,14 @@ const createQuiz = () => {
|
||||
{},
|
||||
{
|
||||
onSuccess(data) {
|
||||
showToast(__('Success'), __('Quiz created successfully'), 'check')
|
||||
toast.success(__('Quiz created successfully'))
|
||||
router.push({
|
||||
name: 'QuizForm',
|
||||
params: { quizID: data.name },
|
||||
})
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -359,10 +360,10 @@ const updateQuiz = () => {
|
||||
{
|
||||
onSuccess(data) {
|
||||
quiz.total_marks = data.total_marks
|
||||
showToast(__('Success'), __('Quiz updated successfully'), 'check')
|
||||
toast.success(__('Quiz updated successfully'))
|
||||
},
|
||||
onError(err) {
|
||||
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -428,7 +429,7 @@ const deleteQuestions = (selections, unselectAll) => {
|
||||
},
|
||||
{
|
||||
onSuccess() {
|
||||
showToast(__('Success'), __('Questions deleted successfully'), 'check')
|
||||
toast.success(__('Questions deleted successfully'))
|
||||
quizDetails.reload()
|
||||
unselectAll()
|
||||
},
|
||||
|
||||
@@ -80,10 +80,10 @@ import {
|
||||
Button,
|
||||
Badge,
|
||||
usePageMeta,
|
||||
toast,
|
||||
} from 'frappe-ui'
|
||||
import { computed, onBeforeUnmount, onMounted, inject } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { showToast } from '@/utils'
|
||||
import { sessionStore } from '@/stores/session'
|
||||
|
||||
const { brand } = sessionStore()
|
||||
@@ -147,7 +147,7 @@ const saveSubmission = () => {
|
||||
{},
|
||||
{
|
||||
onError(err) {
|
||||
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||
toast.error(err.messages?.[0] || err)
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { toast } from 'frappe-ui'
|
||||
import { useTimeAgo } from '@vueuse/core'
|
||||
import { Quiz } from '@/utils/quiz'
|
||||
import { Assignment } from '@/utils/assignment'
|
||||
@@ -20,13 +19,6 @@ import 'plyr/dist/plyr.css'
|
||||
|
||||
const readOnlyMode = window.read_only_mode
|
||||
|
||||
export function createToast(options) {
|
||||
toast({
|
||||
position: 'bottom-right',
|
||||
...options,
|
||||
})
|
||||
}
|
||||
|
||||
export function timeAgo(date) {
|
||||
return useTimeAgo(date).value
|
||||
}
|
||||
@@ -97,26 +89,6 @@ export function getFileSize(file_size) {
|
||||
return value
|
||||
}
|
||||
|
||||
export function showToast(title, text, icon, iconClasses = null) {
|
||||
if (!iconClasses) {
|
||||
if (icon == 'check') {
|
||||
iconClasses = 'bg-surface-green-3 text-ink-white rounded-md p-px'
|
||||
} else if (icon == 'alert-circle') {
|
||||
iconClasses = 'bg-yellow-600 text-ink-white rounded-md p-px'
|
||||
} else {
|
||||
iconClasses = 'bg-surface-red-5 text-ink-white rounded-md p-px'
|
||||
}
|
||||
}
|
||||
createToast({
|
||||
title: title,
|
||||
text: htmlToText(text),
|
||||
icon: icon,
|
||||
iconClasses: iconClasses,
|
||||
position: icon == 'check' ? 'bottom-right' : 'top-center',
|
||||
timeout: icon != 'check' ? 10 : 5,
|
||||
})
|
||||
}
|
||||
|
||||
export function getImgDimensions(imgSrc) {
|
||||
return new Promise((resolve) => {
|
||||
let img = new Image()
|
||||
|
||||
Reference in New Issue
Block a user