diff --git a/resources/js/components/tracker/SyllabusBreakdownModal.vue b/resources/js/components/tracker/SyllabusBreakdownModal.vue new file mode 100644 index 00000000..8a0b5a45 --- /dev/null +++ b/resources/js/components/tracker/SyllabusBreakdownModal.vue @@ -0,0 +1,355 @@ + + + diff --git a/resources/js/pages/User/Show.vue b/resources/js/pages/User/Show.vue index 64dcbf26..c0ee2e1c 100644 --- a/resources/js/pages/User/Show.vue +++ b/resources/js/pages/User/Show.vue @@ -8,7 +8,6 @@ import { ArrowUpRight, Calendar, CheckCircle2, - ChevronDown, ChevronRight, Edit3, Eye, @@ -19,14 +18,12 @@ import { GraduationCap, Heart, HelpCircle, - Info, Instagram, Loader2, Lock, LogIn, MessageSquare, MessageSquareCheck, - Share2, UploadCloud, Users, X, @@ -36,12 +33,12 @@ import { computed, ref, watch } from 'vue'; import BaseModal from '@/components/BaseModal.vue'; import EmptyState from '@/components/EmptyState.vue'; import ImageViewerModal from '@/components/ImageViewerModal.vue'; -import SubjectIcon from '@/components/SubjectIcon.vue'; import StudyHeatmap from '@/components/tracker/StudyHeatmap.vue'; import type { HeatmapItem, TrackerStats, } from '@/components/tracker/StudyHeatmap.vue'; +import SyllabusBreakdownModal from '@/components/tracker/SyllabusBreakdownModal.vue'; import SyllabusShareModal from '@/components/tracker/SyllabusShareModal.vue'; import UserListItem from '@/components/UserListItem.vue'; import VerifiedBadge from '@/components/VerifiedBadge.vue'; @@ -249,16 +246,6 @@ const isOwnProfile = computed( const showSyllabusModal = ref(false); const showShareModal = ref(false); -const showAlgorithmInfo = ref(false); -const expandedSubjects = ref>(new Set()); - -const toggleSubjectExpanded = (subjId: number) => { - if (expandedSubjects.value.has(subjId)) { - expandedSubjects.value.delete(subjId); - } else { - expandedSubjects.value.add(subjId); - } -}; const activeTab = ref<'forum' | 'blogs' | 'activity'>('forum'); const forumSubTab = ref<'questions' | 'answers'>('questions'); @@ -913,11 +900,12 @@ const formatGroupName = (group?: string) => { > Syllabus Completed ({{ syllabusProgress.course.toUpperCase() - }}) + }}{{ + syllabusProgress.group + ? ' ' + + formatGroupName(syllabusProgress.group) + : '' + }}) { - -
- -
- - -
-

- ১. অধ্যায়ের গুরুত্ব (Weight): অধ্যায়ের - পরিধি অনুযায়ী পয়েন্ট নির্ধারিত (ছোট অধ্যায় = ১ পয়েন্ট, - সাধারণ = ২ পয়েন্ট, বড় অধ্যায় = ৩ পয়েন্ট) থাকে। -

-

- ২. বিষয়ের অগ্রগতি: প্রতিটি বিষয়ের - সম্পন্ন হওয়া অধ্যায়ের মোট পয়েন্টকে ঐ বিষয়ের সর্বমোট - পয়েন্ট দিয়ে ভাগ করে শতকরা হার বের করা হয়। -

-

- ৩. সামগ্রিক অগ্রগতি (Overall): সব - বিষয়ের শতকরা অগ্রগতির সমান গড় (Average) করে মোট অগ্রগতি - বের করা হয়, যাতে কোনো বিষয়ে অধ্যায় বেশি থাকলেও ফলাফলে - বৈষম্য না ঘটে। -

-
-
- -
-
-
-
- -
-
-

- {{ subj.name }} -

-
-
- -
-
- - {{ subj.percent }}% - -

- {{ subj.completed }}/{{ subj.total }} Chapters -

-
- -
-
- - -
-
-
- - -
-
-
- - -
- - - - {{ chap.name }} - -
- - - {{ - chap.weight === 3 - ? '(Large Chapter)' - : chap.weight === 1 - ? '(Small Chapter)' - : '(Normal Chapter)' - }} - -
-
-
-
- - - + v-model="showSyllabusModal" + :user="profileUser" + :syllabus-progress="syllabusProgress" + :is-own-profile="isOwnProfile" + @share="showShareModal = true" + />