diff --git a/002_source/cms/src/app/dashboard/lp_categories/[cat_id]/page.tsx b/002_source/cms/src/app/dashboard/lp_categories/[cat_id]/page.tsx index 9e56186..d0bd3a6 100644 --- a/002_source/cms/src/app/dashboard/lp_categories/[cat_id]/page.tsx +++ b/002_source/cms/src/app/dashboard/lp_categories/[cat_id]/page.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import RouterLink from 'next/link'; import { useParams, useRouter } from 'next/navigation'; -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import Box from '@mui/material/Box'; import Link from '@mui/material/Link'; import Stack from '@mui/material/Stack'; @@ -47,7 +47,7 @@ export default function Page(): React.JSX.Element { React.useEffect(() => { if (catId) { - pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES) + pb.collection(COL_QUIZ_LP_CATEGORIES) .getOne(catId) .then((model: RecordModel) => { setShowLessonCategory({ ...defaultLpCategory, ...model }); diff --git a/002_source/cms/src/app/dashboard/lp_categories/page.tsx b/002_source/cms/src/app/dashboard/lp_categories/page.tsx index a566b7b..24a908c 100644 --- a/002_source/cms/src/app/dashboard/lp_categories/page.tsx +++ b/002_source/cms/src/app/dashboard/lp_categories/page.tsx @@ -6,7 +6,7 @@ // import * as React from 'react'; import { useRouter } from 'next/navigation'; -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import { LoadingButton } from '@mui/lab'; import Box from '@mui/material/Box'; import Card from '@mui/material/Card'; @@ -56,7 +56,7 @@ export default function Page({ searchParams }: PageProps): React.JSX.Element { const reloadRows = async (): Promise => { try { const models: ListResult = await pb - .collection(COL_LISTENINGS_PRACTICE_CATEGORIES) + .collection(COL_QUIZ_LP_CATEGORIES) .getList(currentPage + 1, rowsPerPage, {}); const { items, totalItems } = models; const tempLessonTypes: LpCategory[] = items.map((lt) => { diff --git a/002_source/cms/src/app/dashboard/mf_categories/[cat_id]/page.tsx b/002_source/cms/src/app/dashboard/mf_categories/[cat_id]/page.tsx index cb708b5..c01f888 100644 --- a/002_source/cms/src/app/dashboard/mf_categories/[cat_id]/page.tsx +++ b/002_source/cms/src/app/dashboard/mf_categories/[cat_id]/page.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import RouterLink from 'next/link'; import { useParams, useRouter } from 'next/navigation'; -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_MF_CATEGORIES } from '@/constants'; import Box from '@mui/material/Box'; import Link from '@mui/material/Link'; import Stack from '@mui/material/Stack'; @@ -47,7 +47,7 @@ export default function Page(): React.JSX.Element { React.useEffect(() => { if (catId) { - pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES) + pb.collection(COL_QUIZ_MF_CATEGORIES) .getOne(catId) .then((model: RecordModel) => { setShowLessonCategory({ ...defaultLpCategory, ...model }); diff --git a/002_source/cms/src/app/dashboard/mf_categories/page.tsx b/002_source/cms/src/app/dashboard/mf_categories/page.tsx index f6f17d9..7fe1c25 100644 --- a/002_source/cms/src/app/dashboard/mf_categories/page.tsx +++ b/002_source/cms/src/app/dashboard/mf_categories/page.tsx @@ -6,7 +6,7 @@ // import * as React from 'react'; import { useRouter } from 'next/navigation'; -import { COL_LISTENINGS_PRACTICE_CATEGORIES, COL_MF_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES, COL_QUIZ_MF_CATEGORIES } from '@/constants'; import { LoadingButton } from '@mui/lab'; import Box from '@mui/material/Box'; import Card from '@mui/material/Card'; @@ -56,7 +56,7 @@ export default function Page({ searchParams }: PageProps): React.JSX.Element { const reloadRows = async (): Promise => { try { const models: ListResult = await pb - .collection(COL_MF_CATEGORIES) + .collection(COL_QUIZ_MF_CATEGORIES) .getList(currentPage + 1, rowsPerPage, {}); const { items, totalItems } = models; const tempLessonTypes: LpCategory[] = items.map((lt) => { diff --git a/002_source/cms/src/components/dashboard/lesson_category/lesson-categories-table.tsx b/002_source/cms/src/components/dashboard/lesson_category/lesson-categories-table.tsx index b217506..f90667a 100644 --- a/002_source/cms/src/components/dashboard/lesson_category/lesson-categories-table.tsx +++ b/002_source/cms/src/components/dashboard/lesson_category/lesson-categories-table.tsx @@ -2,6 +2,7 @@ import * as React from 'react'; import RouterLink from 'next/link'; +import { LoadingButton } from '@mui/lab'; import Avatar from '@mui/material/Avatar'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; @@ -27,13 +28,17 @@ import type { ColumnDef } from '@/components/core/data-table'; import ConfirmDeleteModal from './confirm-delete-modal'; import { useLessonCategoriesSelection } from './lesson-categories-selection-context'; -import { LessonCategory } from './type'; +import type { LessonCategory } from './type'; function columns(handleDeleteClick: (testId: string) => void): ColumnDef[] { return [ { formatter: (row): React.JSX.Element => ( - + void): ColumnDef - + void): ColumnDef{' '}
{row.cat_name} - + slug: {row.cat_name}
@@ -63,9 +75,20 @@ function columns(handleDeleteClick: (testId: string) => void): ColumnDef ( - - - + + + {new Intl.NumberFormat('en-US', { style: 'percent', maximumFractionDigits: 2 }).format(row.quota / 100)} @@ -77,13 +100,36 @@ function columns(handleDeleteClick: (testId: string) => void): ColumnDef { // eslint-disable-next-line react-hooks/rules-of-hooks - const { t } = useTranslation(); const mapping = { - active: { label: 'Active', icon: }, + active: { + label: 'Active', + icon: ( + + ), + }, blocked: { label: 'Blocked', icon: }, - pending: { label: 'Pending', icon: }, - NA: { label: 'NA', icon: }, + pending: { + label: 'Pending', + icon: ( + + ), + }, + NA: { + label: 'NA', + icon: ( + + ), + }, } as const; const { label, icon } = mapping[row.status] ?? { label: 'Unknown', icon: null }; @@ -111,23 +157,27 @@ function columns(handleDeleteClick: (testId: string) => void): ColumnDef ( - - + - - - + + { handleDeleteClick(row.id); }} > - - + + ), name: 'Actions', @@ -157,7 +207,12 @@ export function LessonCategoriesTable({ rows, reloadRows }: LessonCategoriesTabl return ( - + columns={columns(handleDeleteClick)} onDeselectAll={deselectAll} @@ -174,7 +229,11 @@ export function LessonCategoriesTable({ rows, reloadRows }: LessonCategoriesTabl /> {!rows.length ? ( - + {/* TODO: use hyphen here */} {t('no-lesson-categories-found')} diff --git a/002_source/cms/src/components/dashboard/lp_categories/confirm-delete-modal.tsx b/002_source/cms/src/components/dashboard/lp_categories/confirm-delete-modal.tsx index 83f4787..4d5b267 100644 --- a/002_source/cms/src/components/dashboard/lp_categories/confirm-delete-modal.tsx +++ b/002_source/cms/src/components/dashboard/lp_categories/confirm-delete-modal.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import { useRouter } from 'next/navigation'; import { COL_LESSON_TYPES } from '@/constants'; -import deleteQuizListening from '@/db/QuizListenings/Delete'; +import deleteQuizLPCategories from '@/db/QuizListenings/Delete'; import { LoadingButton } from '@mui/lab'; import { Button, Container, Modal, Paper } from '@mui/material'; import Avatar from '@mui/material/Avatar'; @@ -17,8 +17,6 @@ import { useTranslation } from 'react-i18next'; import { logger } from '@/lib/default-logger'; import { toast } from '@/components/core/toaster'; -const pb = new PocketBase(process.env.NEXT_PUBLIC_POCKETBASE_URL); - export default function ConfirmDeleteModal({ open, setOpen, @@ -45,30 +43,19 @@ export default function ConfirmDeleteModal({ transform: 'translate(-50%, -50%)', }; - function performDelete(id: string): Promise { - return deleteQuizListening(id) - .then(() => { - toast(t('dashboard.lessonTypes.delete.success')); - reloadRows(); - }) - .catch((err) => { - logger.error(err); - toast(t('dashboard.lessonTypes.delete.error')); - }) - .finally(() => {}); - } - function handleUserConfirmDelete(): void { if (idToDelete) { setIsDeleteing(true); - performDelete(idToDelete) + deleteQuizLPCategories(idToDelete) .then(() => { + reloadRows(); handleClose(); + toast(t('delete.success')); }) .catch((err) => { // console.error(err) logger.error(err); - toast(t('dashboard.lessonTypes.delete.error')); + toast(t('delete.error')); }) .finally(() => { setIsDeleteing(false); @@ -87,19 +74,33 @@ export default function ConfirmDeleteModal({ - + {t('Delete Lesson Type ?')} - + {t('Are you sure you want to delete lesson type ?')} - - - + {tabs.map((tab) => ( } + icon={ + + } iconPosition="end" key={tab.value} label={tab.label} @@ -210,8 +219,16 @@ export function LpCategoriesFilters({ ))} - - + + {t('Clear filters')} : null} {selection.selectedAny ? ( - - + + {selection.selected.size} {t('selected')} - ) : null} - @@ -269,7 +301,12 @@ function TypeFilterPopover(): React.JSX.Element { }, [initialValue]); return ( - + { @@ -305,7 +342,12 @@ function NameFilterPopover(): React.JSX.Element { }, [initialValue]); return ( - + { @@ -341,7 +383,12 @@ function EmailFilterPopover(): React.JSX.Element { }, [initialValue]); return ( - + { @@ -377,7 +424,12 @@ function PhoneFilterPopover(): React.JSX.Element { }, [initialValue]); return ( - + { diff --git a/002_source/cms/src/components/dashboard/lp_categories/lp-categories-table.tsx b/002_source/cms/src/components/dashboard/lp_categories/lp-categories-table.tsx index 9209a82..7fc4e2e 100644 --- a/002_source/cms/src/components/dashboard/lp_categories/lp-categories-table.tsx +++ b/002_source/cms/src/components/dashboard/lp_categories/lp-categories-table.tsx @@ -2,6 +2,7 @@ import * as React from 'react'; import RouterLink from 'next/link'; +import { LoadingButton } from '@mui/lab'; import Avatar from '@mui/material/Avatar'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; @@ -159,22 +160,23 @@ function columns(handleDeleteClick: (testId: string) => void): ColumnDef - - - - + + { handleDeleteClick(row.id); }} > - - + + ), name: 'Actions', diff --git a/002_source/cms/src/components/dashboard/lp_categories/lp-category-create-form.tsx b/002_source/cms/src/components/dashboard/lp_categories/lp-category-create-form.tsx index 97c2beb..ba46ac7 100644 --- a/002_source/cms/src/components/dashboard/lp_categories/lp-category-create-form.tsx +++ b/002_source/cms/src/components/dashboard/lp_categories/lp-category-create-form.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import RouterLink from 'next/link'; import { useRouter } from 'next/navigation'; -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import { zodResolver } from '@hookform/resolvers/zod'; import { LoadingButton } from '@mui/lab'; import { Avatar, Divider, MenuItem, Select } from '@mui/material'; @@ -101,7 +101,7 @@ export function LpCategoryCreateForm(): React.JSX.Element { }; try { - const result = await pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).create(payload); + const result = await pb.collection(COL_QUIZ_LP_CATEGORIES).create(payload); logger.debug(result); toast.success(t('create.success')); diff --git a/002_source/cms/src/components/dashboard/lp_categories/lp-category-edit-form.tsx b/002_source/cms/src/components/dashboard/lp_categories/lp-category-edit-form.tsx index cbcf700..ba4020d 100644 --- a/002_source/cms/src/components/dashboard/lp_categories/lp-category-edit-form.tsx +++ b/002_source/cms/src/components/dashboard/lp_categories/lp-category-edit-form.tsx @@ -4,7 +4,7 @@ import * as React from 'react'; import RouterLink from 'next/link'; import { useParams, useRouter } from 'next/navigation'; // -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import { zodResolver } from '@hookform/resolvers/zod'; import { LoadingButton } from '@mui/lab'; // @@ -129,7 +129,7 @@ export function LpCategoryEditForm(): React.JSX.Element { }; try { - const result = await pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).update(catId, tempUpdate); + const result = await pb.collection(COL_QUIZ_LP_CATEGORIES).update(catId, tempUpdate); logger.debug(result); toast.success(t('edit.success')); router.push(paths.dashboard.lp_categories.list); @@ -171,7 +171,7 @@ export function LpCategoryEditForm(): React.JSX.Element { setShowLoading(true); try { - const result = await pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).getOne(id); + const result = await pb.collection(COL_QUIZ_LP_CATEGORIES).getOne(id); reset({ ...defaultValues, ...result, init_answer: JSON.stringify(result.init_answer) }); setTextDescription(result.description); diff --git a/002_source/cms/src/components/dashboard/mf_categories/confirm-delete-modal.tsx b/002_source/cms/src/components/dashboard/mf_categories/confirm-delete-modal.tsx index 83f4787..eb51d40 100644 --- a/002_source/cms/src/components/dashboard/mf_categories/confirm-delete-modal.tsx +++ b/002_source/cms/src/components/dashboard/mf_categories/confirm-delete-modal.tsx @@ -1,9 +1,7 @@ 'use client'; import * as React from 'react'; -import { useRouter } from 'next/navigation'; -import { COL_LESSON_TYPES } from '@/constants'; -import deleteQuizListening from '@/db/QuizListenings/Delete'; +import deleteQuizMFCategories from '@/db/QuizMFCategories/Delete'; import { LoadingButton } from '@mui/lab'; import { Button, Container, Modal, Paper } from '@mui/material'; import Avatar from '@mui/material/Avatar'; @@ -17,8 +15,6 @@ import { useTranslation } from 'react-i18next'; import { logger } from '@/lib/default-logger'; import { toast } from '@/components/core/toaster'; -const pb = new PocketBase(process.env.NEXT_PUBLIC_POCKETBASE_URL); - export default function ConfirmDeleteModal({ open, setOpen, @@ -45,30 +41,19 @@ export default function ConfirmDeleteModal({ transform: 'translate(-50%, -50%)', }; - function performDelete(id: string): Promise { - return deleteQuizListening(id) - .then(() => { - toast(t('dashboard.lessonTypes.delete.success')); - reloadRows(); - }) - .catch((err) => { - logger.error(err); - toast(t('dashboard.lessonTypes.delete.error')); - }) - .finally(() => {}); - } - function handleUserConfirmDelete(): void { if (idToDelete) { setIsDeleteing(true); - performDelete(idToDelete) + deleteQuizMFCategories(idToDelete) .then(() => { + reloadRows(); handleClose(); + toast(t('delete.success')); }) .catch((err) => { // console.error(err) logger.error(err); - toast(t('dashboard.lessonTypes.delete.error')); + toast(t('delete.error')); }) .finally(() => { setIsDeleteing(false); @@ -87,19 +72,33 @@ export default function ConfirmDeleteModal({ - + {t('Delete Lesson Type ?')} - + {t('Are you sure you want to delete lesson type ?')} - - void): ColumnDef - - - - + + { handleDeleteClick(row.id); }} > - - + + ), name: 'Actions', diff --git a/002_source/cms/src/components/dashboard/mf_categories/mf-category-create-form.tsx b/002_source/cms/src/components/dashboard/mf_categories/mf-category-create-form.tsx index bb6b7d0..08a1c0b 100644 --- a/002_source/cms/src/components/dashboard/mf_categories/mf-category-create-form.tsx +++ b/002_source/cms/src/components/dashboard/mf_categories/mf-category-create-form.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import RouterLink from 'next/link'; import { useRouter } from 'next/navigation'; -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_MF_CATEGORIES } from '@/constants'; import { zodResolver } from '@hookform/resolvers/zod'; import { LoadingButton } from '@mui/lab'; import { Avatar, Divider, MenuItem, Select } from '@mui/material'; @@ -101,7 +101,7 @@ export function LpCategoryCreateForm(): React.JSX.Element { }; try { - const result = await pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).create(payload); + const result = await pb.collection(COL_QUIZ_MF_CATEGORIES).create(payload); logger.debug(result); toast.success(t('create.success')); diff --git a/002_source/cms/src/components/dashboard/mf_categories/mf-category-edit-form.tsx b/002_source/cms/src/components/dashboard/mf_categories/mf-category-edit-form.tsx index ace1ccc..29c8c28 100644 --- a/002_source/cms/src/components/dashboard/mf_categories/mf-category-edit-form.tsx +++ b/002_source/cms/src/components/dashboard/mf_categories/mf-category-edit-form.tsx @@ -4,7 +4,7 @@ import * as React from 'react'; import RouterLink from 'next/link'; import { useParams, useRouter } from 'next/navigation'; // -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_MF_CATEGORIES } from '@/constants'; import { zodResolver } from '@hookform/resolvers/zod'; import { LoadingButton } from '@mui/lab'; // @@ -129,7 +129,7 @@ export function LpCategoryEditForm(): React.JSX.Element { }; try { - const result = await pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).update(catId, tempUpdate); + const result = await pb.collection(COL_QUIZ_MF_CATEGORIES).update(catId, tempUpdate); logger.debug(result); toast.success(t('edit.success')); router.push(paths.dashboard.mf_categories.list); @@ -171,7 +171,7 @@ export function LpCategoryEditForm(): React.JSX.Element { setShowLoading(true); try { - const result = await pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).getOne(id); + const result = await pb.collection(COL_QUIZ_MF_CATEGORIES).getOne(id); reset({ ...defaultValues, ...result, init_answer: JSON.stringify(result.init_answer) }); setTextDescription(result.description); diff --git a/002_source/cms/src/constants.ts b/002_source/cms/src/constants.ts index 5c8cb4d..621edae 100644 --- a/002_source/cms/src/constants.ts +++ b/002_source/cms/src/constants.ts @@ -1,4 +1,6 @@ -// RULES: COL_ = "" +// RULES: +// COL_ = "" +// e.g. COL_APPLE = "Apple" table in dbml const COL_LESSON_TYPES = 'LessonsTypes'; const COL_LESSON_CATEGORIES = 'LessonsCategories'; const NO_VALUE = 'NO_VALUE'; @@ -7,10 +9,12 @@ const NS_LESSON_CATEGORY = 'lesson_category'; const COL_USERS = 'users'; const COL_USER_METAS = 'UserMetas'; -// do not use LP_CATEGORIES -const COL_LISTENINGS_PRACTICE_CATEGORIES = 'QuizLPCategories'; +// RULES: +// do not use LP_CATEGORIES anymore +const COL_QUIZ_LP_CATEGORIES = 'QuizLPCategories'; const COL_QUIZ_LP_QUESTIONS = 'QuizLPQuestions'; -const COL_MF_CATEGORIES = 'QuizMFCategories'; +// +const COL_QUIZ_MF_CATEGORIES = 'QuizMFCategories'; export { COL_LESSON_TYPES, @@ -21,9 +25,9 @@ export { COL_USERS, COL_USER_METAS, // - COL_LISTENINGS_PRACTICE_CATEGORIES, + COL_QUIZ_LP_CATEGORIES, COL_QUIZ_LP_QUESTIONS, // - COL_MF_CATEGORIES, + COL_QUIZ_MF_CATEGORIES, // }; diff --git a/002_source/cms/src/db/QuizListenings/Delete.tsx b/002_source/cms/src/db/QuizListenings/Delete.tsx index 1bc13fb..7199c87 100644 --- a/002_source/cms/src/db/QuizListenings/Delete.tsx +++ b/002_source/cms/src/db/QuizListenings/Delete.tsx @@ -1,8 +1,7 @@ -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; -import type { RecordModel } from 'pocketbase'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import { pb } from '@/lib/pb'; -export default function deleteQuizListening(id: string): Promise { - return pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).delete(id); +export default function deleteQuizLPCategories(id: string): Promise { + return pb.collection(COL_QUIZ_LP_CATEGORIES).delete(id); } diff --git a/002_source/cms/src/db/QuizListenings/GetAll.tsx b/002_source/cms/src/db/QuizListenings/GetAll.tsx index 5086859..ecc7f17 100644 --- a/002_source/cms/src/db/QuizListenings/GetAll.tsx +++ b/002_source/cms/src/db/QuizListenings/GetAll.tsx @@ -1,8 +1,8 @@ -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import type { RecordModel } from 'pocketbase'; import { pb } from '@/lib/pb'; export default function getAllQuizListenings(): Promise { - return pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).getFullList(); + return pb.collection(COL_QUIZ_LP_CATEGORIES).getFullList(); } diff --git a/002_source/cms/src/db/QuizListenings/GetAllCount.tsx b/002_source/cms/src/db/QuizListenings/GetAllCount.tsx index 7c6f6b2..e6027ba 100644 --- a/002_source/cms/src/db/QuizListenings/GetAllCount.tsx +++ b/002_source/cms/src/db/QuizListenings/GetAllCount.tsx @@ -1,9 +1,9 @@ // REQ0006 -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import { pb } from '@/lib/pb'; export default async function GetAllCount(): Promise { - const { totalItems: count } = await pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).getList(1, 9999, {}); + const { totalItems: count } = await pb.collection(COL_QUIZ_LP_CATEGORIES).getList(1, 9999, {}); return count; } diff --git a/002_source/cms/src/db/QuizListenings/GetById.tsx b/002_source/cms/src/db/QuizListenings/GetById.tsx index 9c7d433..06a4fbb 100644 --- a/002_source/cms/src/db/QuizListenings/GetById.tsx +++ b/002_source/cms/src/db/QuizListenings/GetById.tsx @@ -1,8 +1,8 @@ -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import type { RecordModel } from 'pocketbase'; import { pb } from '@/lib/pb'; export default function getQuizListeningById(id: string): Promise { - return pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).getOne(id); + return pb.collection(COL_QUIZ_LP_CATEGORIES).getOne(id); } diff --git a/002_source/cms/src/db/QuizListenings/GetHiddenCount.tsx b/002_source/cms/src/db/QuizListenings/GetHiddenCount.tsx index 81d9cef..445be78 100644 --- a/002_source/cms/src/db/QuizListenings/GetHiddenCount.tsx +++ b/002_source/cms/src/db/QuizListenings/GetHiddenCount.tsx @@ -1,13 +1,11 @@ // REQ0006 -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import { pb } from '@/lib/pb'; export default async function GetHiddenCount(): Promise { try { - const result = await pb - .collection(COL_LISTENINGS_PRACTICE_CATEGORIES) - .getList(1, 9999, { filter: 'visible = "hidden"' }); + const result = await pb.collection(COL_QUIZ_LP_CATEGORIES).getList(1, 9999, { filter: 'visible = "hidden"' }); const { totalItems: count } = result; return count; } catch (error) { diff --git a/002_source/cms/src/db/QuizListenings/GetVisibleCount.tsx b/002_source/cms/src/db/QuizListenings/GetVisibleCount.tsx index b0cac5d..73f2399 100644 --- a/002_source/cms/src/db/QuizListenings/GetVisibleCount.tsx +++ b/002_source/cms/src/db/QuizListenings/GetVisibleCount.tsx @@ -1,13 +1,11 @@ // REQ0006 -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import { pb } from '@/lib/pb'; export default async function GetVisibleCount(): Promise { try { - const result = await pb - .collection(COL_LISTENINGS_PRACTICE_CATEGORIES) - .getList(1, 9999, { filter: 'visible = "visible"' }); + const result = await pb.collection(COL_QUIZ_LP_CATEGORIES).getList(1, 9999, { filter: 'visible = "visible"' }); const { totalItems: count } = result; return count; } catch (error) { diff --git a/002_source/cms/src/db/QuizListenings/ListWithOption.tsx b/002_source/cms/src/db/QuizListenings/ListWithOption.tsx index 543d25c..f305836 100644 --- a/002_source/cms/src/db/QuizListenings/ListWithOption.tsx +++ b/002_source/cms/src/db/QuizListenings/ListWithOption.tsx @@ -1,4 +1,4 @@ -import { COL_LISTENINGS_PRACTICE_CATEGORIES } from '@/constants'; +import { COL_QUIZ_LP_CATEGORIES } from '@/constants'; import type { ListResult, RecordModel } from 'pocketbase'; import { pb } from '@/lib/pb'; @@ -18,5 +18,5 @@ export default function listWithOption({ rowsPerPage, listOption = {}, }: ListWithOptionParams): Promise> { - return pb.collection(COL_LISTENINGS_PRACTICE_CATEGORIES).getList(currentPage + 1, rowsPerPage, listOption); + return pb.collection(COL_QUIZ_LP_CATEGORIES).getList(currentPage + 1, rowsPerPage, listOption); } diff --git a/002_source/cms/src/db/QuizMFCategories/Delete.tsx b/002_source/cms/src/db/QuizMFCategories/Delete.tsx new file mode 100644 index 0000000..751573a --- /dev/null +++ b/002_source/cms/src/db/QuizMFCategories/Delete.tsx @@ -0,0 +1,7 @@ +import { COL_QUIZ_MF_CATEGORIES } from '@/constants'; + +import { pb } from '@/lib/pb'; + +export default function deleteQuizMFCategories(id: string): Promise { + return pb.collection(COL_QUIZ_MF_CATEGORIES).delete(id); +} diff --git a/002_source/cms/src/db/QuizMFCategories/GetAllCount.tsx b/002_source/cms/src/db/QuizMFCategories/GetAllCount.tsx new file mode 100644 index 0000000..56b84d9 --- /dev/null +++ b/002_source/cms/src/db/QuizMFCategories/GetAllCount.tsx @@ -0,0 +1,9 @@ +// REQ0006 +import { COL_QUIZ_MF_CATEGORIES } from '@/constants'; + +import { pb } from '@/lib/pb'; + +export default async function GetAllCount(): Promise { + const { totalItems: count } = await pb.collection(COL_QUIZ_MF_CATEGORIES).getList(1, 9999, {}); + return count; +} diff --git a/002_source/cms/src/db/QuizMFCategories/GetHiddenCount.tsx b/002_source/cms/src/db/QuizMFCategories/GetHiddenCount.tsx new file mode 100644 index 0000000..50d940d --- /dev/null +++ b/002_source/cms/src/db/QuizMFCategories/GetHiddenCount.tsx @@ -0,0 +1,14 @@ +// REQ0006 +import { COL_QUIZ_MF_CATEGORIES } from '@/constants'; + +import { pb } from '@/lib/pb'; + +export default async function GetHiddenCount(): Promise { + try { + const result = await pb.collection(COL_QUIZ_MF_CATEGORIES).getList(1, 9999, { filter: 'visible = "hidden"' }); + const { totalItems: count } = result; + return count; + } catch (error) { + return 0; + } +} diff --git a/002_source/cms/src/db/QuizMFCategories/GetVisibleCount.tsx b/002_source/cms/src/db/QuizMFCategories/GetVisibleCount.tsx new file mode 100644 index 0000000..0c72686 --- /dev/null +++ b/002_source/cms/src/db/QuizMFCategories/GetVisibleCount.tsx @@ -0,0 +1,14 @@ +// REQ0006 +import { COL_QUIZ_MF_CATEGORIES } from '@/constants'; + +import { pb } from '@/lib/pb'; + +export default async function GetVisibleCount(): Promise { + try { + const result = await pb.collection(COL_QUIZ_MF_CATEGORIES).getList(1, 9999, { filter: 'visible = "visible"' }); + const { totalItems: count } = result; + return count; + } catch (error) { + return 0; + } +}