Conversation
Co-authored-by: Aryawart-kathpal <aryawart.kathpal2909@gmail.com>
Co-authored-by: Aryawart-kathpal <aryawart.kathpal2909@gmail.com>
This pull request introduces several improvements and refactors across multiple pages, focusing on dynamic data fetching from the database, UI consistency, and code style cleanups. The most significant changes are the migration of static research data to dynamic database queries, UI/UX refinements for the SC/ST cell page, and minor formatting and code cleanup in other components. **Dynamic Data Fetching and Table Updates:** * Migrated static data for Memorandum of Understanding (MoU) and Sponsored Research Projects in `app/[locale]/research/page.tsx` to fetch directly from the database, including transforming and formatting the data for table display. This includes updating the table headers and rows to show new fields such as sanctioned file/order number, date, and project status. ([app/[locale]/research/page.tsxR24-R38](diffhunk://#diff-7e2ef4caf94dbc72306307e50144de2644725209044410ff5dc769152068eb67R24-R38), [app/[locale]/research/page.tsxR98-R132](diffhunk://#diff-7e2ef4caf94dbc72306307e50144de2644725209044410ff5dc769152068eb67R98-R132), [app/[locale]/research/page.tsxL210-R148](diffhunk://#diff-7e2ef4caf94dbc72306307e50144de2644725209044410ff5dc769152068eb67L210-R148), [app/[locale]/research/page.tsxL473-R411](diffhunk://#diff-7e2ef4caf94dbc72306307e50144de2644725209044410ff5dc769152068eb67L473-R411), [app/[locale]/research/page.tsxR449-R453](diffhunk://#diff-7e2ef4caf94dbc72306307e50144de2644725209044410ff5dc769152068eb67R449-R453), [app/[locale]/research/page.tsxR740-R742](diffhunk://#diff-7e2ef4caf94dbc72306307e50144de2644725209044410ff5dc769152068eb67R740-R742), [app/[locale]/research/page.tsxR761-R763](diffhunk://#diff-7e2ef4caf94dbc72306307e50144de2644725209044410ff5dc769152068eb67R761-R763)) **UI/UX and Styling Improvements:** * Refined layout, className ordering, and responsive styles for the SC/ST cell page (`app/[locale]/institute/cells/scst/page.tsx`), including adjustments to faculty info display, section spacing, and list styling for better readability and consistency. ([app/[locale]/institute/cells/scst/page.tsxL18-R18](diffhunk://#diff-19c9706882ffe3c5011d10c9fc1e574aa3f0c8095b33184bddde8ec8abf2ba6cL18-R18), [app/[locale]/institute/cells/scst/page.tsxL33-R40](diffhunk://#diff-19c9706882ffe3c5011d10c9fc1e574aa3f0c8095b33184bddde8ec8abf2ba6cL33-R40), [app/[locale]/institute/cells/scst/page.tsxL58-R65](diffhunk://#diff-19c9706882ffe3c5011d10c9fc1e574aa3f0c8095b33184bddde8ec8abf2ba6cL58-R65), [app/[locale]/institute/cells/scst/page.tsxL86-R139](diffhunk://#diff-19c9706882ffe3c5011d10c9fc1e574aa3f0c8095b33184bddde8ec8abf2ba6cL86-R139), [app/[locale]/institute/cells/scst/page.tsxL159-R163](diffhunk://#diff-19c9706882ffe3c5011d10c9fc1e574aa3f0c8095b33184bddde8ec8abf2ba6cL159-R163), [app/[locale]/institute/cells/scst/page.tsxL179-L190](diffhunk://#diff-19c9706882ffe3c5011d10c9fc1e574aa3f0c8095b33184bddde8ec8abf2ba6cL179-L190)) * Minor UI adjustments in the gallery component for improved code readability and style formatting. [[1]](diffhunk://#diff-7a11d6e30b52d89cba0ae61febfb2a8dc1c64a312509fdbeffa3119de9061aa7L188-R191) [[2]](diffhunk://#diff-7a11d6e30b52d89cba0ae61febfb2a8dc1c64a312509fdbeffa3119de9061aa7L204-R211) **Code Style and Formatting Cleanups:** * Added or corrected trailing commas and semicolons for consistency in various files. ([app/[locale]/academics/curricula/page.tsxL123-R123](diffhunk://#diff-f28e90cdfc2124ecddf73b3a9d4522b6270d42112fa9b8a81c67656ed7722c86L123-R123), [app/[locale]/header.tsxL88-R88](diffhunk://#diff-05aeabaff5d1ec0d925bc6519f8dcf6cdc4f94efcf74117ecca3fbbd77eb7777L88-R88)) * Removed unnecessary blank lines and improved code formatting for clarity. ([app/[locale]/student-activities/clubs/[display_name]/event-section.tsxL96](diffhunk://#diff-fe0a45bba40a113ff0cfe178c0a454d4980293098763ae248037759f44e58de0L96)) These changes collectively enhance maintainability, data accuracy, and user experience across the affected pages. --------- Co-authored-by: soumil221 <soumiljain221@gmail.com>
A constant Faculty updates to Staged --------- Co-authored-by: Navneet Kaur <navneet78141@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: ArnavSharma005 <145358467+ArnavSharma005@users.noreply.github.com> Co-authored-by: heydoyouknowme0 <akrb2204@gmail.com>
This pull request introduces a comprehensive faculty photo upload and display system, enabling users to upload profile photos for faculty and staff, and ensuring robust display of these images throughout the application. The changes include a new `FacultyPhotoUpload` component for uploading images, a `FacultyImage` component that intelligently loads images with fallback logic, and integration of these components across profile editing and listing pages. Additionally, minor UI and formatting improvements are included. **Faculty and Staff Photo Upload and Display** * Added a new `FacultyPhotoUpload` component that allows users to upload faculty/staff profile photos, including file type and size validation, image preview, S3 upload logic, and user feedback via toasts. ([app/[locale]/@modals/(.)profile/edit/faculty-photo-upload.tsxR1-R231](diffhunk://#diff-7866be717a5ec66dbf321ab271194ff475030422db1cdcfc38b03472f9189f72R1-R231)) * Introduced a `FacultyImage` component that attempts to load the faculty/staff image from S3 in multiple formats with graceful fallback to a default image, and replaced direct `<Image>` usage with this component in all relevant places: faculty list, staff list, and faculty profile. ([app/[locale]/faculty-and-staff/faculty-image.tsxR1-R73](diffhunk://#diff-f3054df127f38ef9044a3b238e2c892fffc15bbda73792eaedfe36286ea35c2fR1-R73), [app/[locale]/faculty-and-staff/page.tsxL407-L412](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6L407-L412), [app/[locale]/faculty-and-staff/page.tsxL581-L586](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6L581-L586), [app/[locale]/faculty-and-staff/utils.tsxL241-R248](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dL241-R248)) * Integrated the photo upload section into the faculty profile edit modal, including fetching and passing the necessary props (`facultyId`, `employeeId`, `name`) to the upload component. ([app/[locale]/@modals/(.)profile/edit/page.tsxR25](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R25), [app/[locale]/@modals/(.)profile/edit/page.tsxR55-R56](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R55-R56), [app/[locale]/@modals/(.)profile/edit/page.tsxR67](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R67), [app/[locale]/@modals/(.)profile/edit/page.tsxR79-R81](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R79-R81), [app/[locale]/@modals/(.)profile/edit/page.tsxL98-R117](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805L98-R117)) **Faculty/Staff List and Profile Improvements** * Updated faculty and staff listing pages to use the new `FacultyImage` for consistent image handling, and improved external link handling for profile links to ensure proper URL formatting. ([app/[locale]/faculty-and-staff/page.tsxL407-L412](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6L407-L412), [app/[locale]/faculty-and-staff/page.tsxL471-R479](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6L471-R479), [app/[locale]/faculty-and-staff/page.tsxL581-L586](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6L581-L586)) * Updated the faculty/staff profile utility to use `FacultyImage` for image rendering. ([app/[locale]/faculty-and-staff/utils.tsxR49](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR49), [app/[locale]/faculty-and-staff/utils.tsxL241-R248](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dL241-R248)) **UI and Code Formatting Enhancements** * Improved section headers and layout in the profile edit modal for clarity. ([app/[locale]/@modals/(.)profile/edit/page.tsxL98-R117](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805L98-R117)) * Minor code formatting and readability improvements in client components and curricula page. ([app/[locale]/academics/curricula/page.tsxL70-R73](diffhunk://#diff-f28e90cdfc2124ecddf73b3a9d4522b6270d42112fa9b8a81c67656ed7722c86L70-R73), [app/[locale]/academics/curricula/page.tsxL126-R129](diffhunk://#diff-f28e90cdfc2124ecddf73b3a9d4522b6270d42112fa9b8a81c67656ed7722c86L126-R129), [app/[locale]/faculty-and-staff/client-components.tsxL55](diffhunk://#diff-f3d956fa19c730d337793ff6235013b3be6594251230f0777f7bcc95cfb03726L55), [app/[locale]/faculty-and-staff/client-components.tsxL76-R85](diffhunk://#diff-f3d956fa19c730d337793ff6235013b3be6594251230f0777f7bcc95cfb03726L76-R85), [app/[locale]/faculty-and-staff/client-components.tsxL115-R118](diffhunk://#diff-f3d956fa19c730d337793ff6235013b3be6594251230f0777f7bcc95cfb03726L115-R118), [app/[locale]/faculty-and-staff/client-components.tsxL126-R131](diffhunk://#diff-f3d956fa19c730d337793ff6235013b3be6594251230f0777f7bcc95cfb03726L126-R131), [app/[locale]/faculty-and-staff/client-components.tsxL291-R298](diffhunk://#diff-f3d956fa19c730d337793ff6235013b3be6594251230f0777f7bcc95cfb03726L291-R298), [app/[locale]/faculty-and-staff/client-components.tsxL340-R347](diffhunk://#diff-f3d956fa19c730d337793ff6235013b3be6594251230f0777f7bcc95cfb03726L340-R347), [app/[locale]/faculty-and-staff/client-components.tsxL368](diffhunk://#diff-f3d956fa19c730d337793ff6235013b3be6594251230f0777f7bcc95cfb03726L368), [app/[locale]/faculty-and-staff/client-components.tsxL406-R411](diffhunk://#diff-f3d956fa19c730d337793ff6235013b3be6594251230f0777f7bcc95cfb03726L406-R411))
replaced all tables with generic table component
This pull request refactors the notifications display logic across several pages by introducing a new reusable `NotificationsPanel` component. The main goal is to centralize and streamline how notifications are fetched, filtered, and rendered, reducing code duplication and improving maintainability. The panel supports flexible filtering and customization, and is now used in place of previous ad-hoc implementations in the Academics and Notifications pages. **Notifications UI Refactor and Componentization** * Introduced a new `NotificationsPanel` component that encapsulates all logic for fetching, filtering (by category, club, date), and displaying notifications, with support for loading states and customization options. This component replaces previous inline implementations and is now the single source for notifications UI. * Updated the Academics (`app/[locale]/academics/page.tsx`) and Notifications (`app/[locale]/notifications.tsx`) pages to use the new `NotificationsPanel`, removing their local notification list logic and related imports, and simplifying their main render logic. ([app/[locale]/academics/page.tsxL5-L29](diffhunk://#diff-bb42d3e07d6a4b2f5a35dc4e6210318de482ab7f0c0a2bf19580b1cedf742a82L5-L29), [app/[locale]/academics/page.tsxL48-R41](diffhunk://#diff-bb42d3e07d6a4b2f5a35dc4e6210318de482ab7f0c0a2bf19580b1cedf742a82L48-R41), [app/[locale]/academics/page.tsxL80-R78](diffhunk://#diff-bb42d3e07d6a4b2f5a35dc4e6210318de482ab7f0c0a2bf19580b1cedf742a82L80-R78), [app/[locale]/academics/page.tsxL298-L339](diffhunk://#diff-bb42d3e07d6a4b2f5a35dc4e6210318de482ab7f0c0a2bf19580b1cedf742a82L298-L339), [app/[locale]/notifications.tsxL2-L12](diffhunk://#diff-fc4ab4f58418a1ce1ca032d258b139c979709ec0e41edf5494c8c0b99a31b6ecL2-L12), [app/[locale]/notifications.tsxL72-L148](diffhunk://#diff-fc4ab4f58418a1ce1ca032d258b139c979709ec0e41edf5494c8c0b99a31b6ecL72-L148)) **Code Cleanup and Consistency** * Removed now-unused components and helper functions (`NotificationsList` and related database queries/grouping logic) from both the Academics and Notifications pages, as this functionality is now handled by the new panel. ([app/[locale]/academics/page.tsxL298-L339](diffhunk://#diff-bb42d3e07d6a4b2f5a35dc4e6210318de482ab7f0c0a2bf19580b1cedf742a82L298-L339), [app/[locale]/notifications.tsxL72-L148](diffhunk://#diff-fc4ab4f58418a1ce1ca032d258b139c979709ec0e41edf5494c8c0b99a31b6ecL72-L148)) * Updated imports in dependent files (such as the Hostels page) to use the new default export for `NotificationsList`, ensuring consistency with the refactor. ([app/[locale]/institute/hostels/page.tsxL16-R16](diffhunk://#diff-11a346a0b3b637deeabb5eb45cbb54a281cb3a311e358726adc923b9057c9c80L16-R16))
Co-authored-by: Swastik Bhowmick <swastik200419@gmail.com>
TABLES for : BOG ,Senate ,SCSA, Other officers, Financial and working committee, Building and construction commitee
This pull request updates the sorting logic and meeting data handling across several committee pages to ensure meetings are sorted by the correct date or meeting number fields. It also improves the `GenericTable` component to handle numeric sorting properly. The main changes are grouped below: **Committee Pages: Sorting Field Updates** * Updated the `sortByDateField` prop in multiple committee pages (`board-of-governors`, `building-and-work-committee`, `scsa`, `senate`) to use the `date` field instead of `created_at` for more accurate meeting sorting. (`app/[locale]/institute/administration/(committees)/board-of-governors/page.tsx` [app/[locale]/institute/administration/(committees)/board-of-governors/page.tsxL120-R131](diffhunk://#diff-c3c09c0b78573302e9114f7b5c8b3dd7b6595ad633647910670f7f0c0f69ff06L120-R131), `building-and-work-committee/page.tsx` [app/[locale]/institute/administration/(committees)/building-and-work-committee/page.tsxL118-R118](diffhunk://#diff-5103d70f013e00bb7173d6fc6151208540d89110a2c32feea4da0de2ca291880L118-R118), `scsa/page.tsx` [app/[locale]/institute/administration/(committees)/scsa/page.tsxL101-R101](diffhunk://#diff-48b94a66fa30b997acc051bf15874af155437d3aeac97a450bef0323d512c06cL101-R101), `senate/page.tsx` [app/[locale]/institute/administration/(committees)/senate/page.tsxL111-R111](diffhunk://#diff-8e004bb516d101f7280c73ab50955ab9c59f0a4f01063a82da819a8cd3d1666cL111-R111)) * For the `financial-committee` page, added a `meetingNumber` field to each meeting and updated sorting to use this numeric field for correct ordering. (`financial-committee/page.tsx` [app/[locale]/institute/administration/(committees)/financial-committee/page.tsxR90](diffhunk://#diff-b66c6cc2b15973120500a43f5cca35a648d7cb402671229bd74f46db9a10b307R90), [app/[locale]/institute/administration/(committees)/financial-committee/page.tsxL117-R118](diffhunk://#diff-b66c6cc2b15973120500a43f5cca35a648d7cb402671229bd74f46db9a10b307L117-R118)) **GenericTable Component: Sorting Enhancement** * Enhanced the `GenericTable` component to properly handle numeric sorting when the sort field is a number, ensuring correct order for fields like `meetingNumber`. (`components/ui/generic-table.tsx` [components/ui/generic-table.tsxR95-R99](diffhunk://#diff-1133b034223eb2492ab7f0ff0089616e410fd52886fa9704e4e613fcd55a804fR95-R99)) **Minor UI Improvements** * Removed unnecessary `id` attributes and adjusted the placement of the `agenda` section heading for improved accessibility and structure. (`board-of-governors/page.tsx` [app/[locale]/institute/administration/(committees)/board-of-governors/page.tsxL105-R105](diffhunk://#diff-c3c09c0b78573302e9114f7b5c8b3dd7b6595ad633647910670f7f0c0f69ff06L105-R105), [app/[locale]/institute/administration/(committees)/board-of-governors/page.tsxL120-R131](diffhunk://#diff-c3c09c0b78573302e9114f7b5c8b3dd7b6595ad633647910670f7f0c0f69ff06L120-R131)) --------- Co-authored-by: Aryawart-kathpal <aryawart.kathpal2909@gmail.com>
adding scoe -page --------- Co-authored-by: Aryawart-kathpal <aryawart.kathpal2909@gmail.com> Co-authored-by: ArnavSharma005 <arnavoct.20@gmail.com>
### What was changed - Reduced excessive vertical spacing in the Events section - Tightened spacing between filters and "View All" on mobile
This pull request introduces a new suite of animated UI components using Framer Motion for enhanced user experience and visual appeal across several sections of the application. It replaces static layouts for the header, footer, events grid, page content, and button groups with animated versions, and centralizes animation variants for consistency and reuse. **Major introduction of animated components:** * Added new animated components for header (`animate-header.tsx`), footer (`animate-footer.tsx`), events grid (`animate-events-grid.tsx`), page content (`animate-page-content.tsx`), section wrappers (`animate-section.tsx`), and button groups (`animate-button-group.tsx`). These components use Framer Motion for scroll and hover effects, staggered entrances, and interactive animations. ([app/[locale]/(animations)/animate-header.tsxR1-R48](diffhunk://#diff-1a86ad4d600dec3d9c8f1ad7315a70e2091590b42bc5815e98187555bd38d8eaR1-R48), [app/[locale]/(animations)/animate-footer.tsxR1-R212](diffhunk://#diff-9d03213baa3ffa7524fc544cdaf0f14294dfc0c13c5f6c019d9806127519f0b7R1-R212), [app/[locale]/(animations)/animate-events-grid.tsxR1-R101](diffhunk://#diff-29b5f1de21f3b78582704e76fe491202134537fe1136fc5869f17e936f61b89dR1-R101), [app/[locale]/(animations)/animate-page-content.tsxR1-R118](diffhunk://#diff-0f7d2b5a510dfc56d22049f8bd0241eb380d9af3f324322e89f3ad37c871078cR1-R118), [app/[locale]/(animations)/animate-section.tsxR1-R38](diffhunk://#diff-bbac5636cc02739d7821ca40cf2228bd98ab97ae4c17ea60c682646dc9da0befR1-R38), [app/[locale]/(animations)/animate-button-group.tsxR1-R144](diffhunk://#diff-08236e3f9e6f12ba4d1b37c1e14b47ab72cbe16220ebac30901c5326f9063a32R1-R144)) **Centralized animation configuration:** * Introduced `animation-variants.ts` to define reusable animation variants and viewport settings for scroll-triggered effects, ensuring consistent behavior across all animated components. ([app/[locale]/(animations)/animation-variants.tsR1-R54](diffhunk://#diff-a1592c6dccd58b90189351e0438891d6e258fcb709e8068b75fbdeb40e082a83R1-R54)) **Integration of animated components into pages:** * Updated imports and usage in `events.tsx` and `footer.tsx` to use the new animated components instead of their static counterparts, resulting in animated event grids and animated footer link columns. ([app/[locale]/events.tsxL19-R19](diffhunk://#diff-d8ba86c912049bdd5b256623a1355c1b45682b0855f0fb9d00963a5781250e39L19-R19), [app/[locale]/events.tsxL141-R141](diffhunk://#diff-d8ba86c912049bdd5b256623a1355c1b45682b0855f0fb9d00963a5781250e39L141-R141), [app/[locale]/footer.tsxR15-R21](diffhunk://#diff-61eaebe162b94a33902a9b854548f6d1995339ba17e568a6946ca400d1844292R15-R21), [app/[locale]/footer.tsxL105-R133](diffhunk://#diff-61eaebe162b94a33902a9b854548f6d1995339ba17e568a6946ca400d1844292L105-R133)) **Styling and layout improvements:** * Minor adjustments to layout and spacing in `events.tsx` for improved visual consistency with the new animated components. ([app/[locale]/events.tsxL56-R56](diffhunk://#diff-d8ba86c912049bdd5b256623a1355c1b45682b0855f0fb9d00963a5781250e39L56-R56), [app/[locale]/events.tsxL107-R107](diffhunk://#diff-d8ba86c912049bdd5b256623a1355c1b45682b0855f0fb9d00963a5781250e39L107-R107)) **Index and exports for new animation module:** * Added an index file to export all new animated components and animation variants for easy import throughout the app. ([app/[locale]/(animations)/index.tsR1-R12](diffhunk://#diff-1c924324bea72f4fbaaf39abfa1cfb7a86396006ca5f69ae90c9d301ac320dfbR1-R12)) --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This pull request implements full support for storing, displaying, and updating user profile images for faculty and staff. It introduces a new `img` field to the `persons` table, updates the upload flow to save image URLs in the database, and ensures that profile images are consistently used across the application, including in search, profile, and listing components. The Typesense search collections and population scripts are also updated to include the new image field. **Database and API changes:** * Added an `img` (image URL) field to the `persons` table schema to store profile image URLs. * Implemented the `updatePersonProfileImage` server action to update a person's profile image in the database and trigger revalidation. **Profile image upload and display:** * Updated the faculty photo upload component to accept and display the current image, and to save the uploaded image URL to the database. ([app/[locale]/@modals/(.)profile/edit/faculty-photo-upload.tsxR12-R18](diffhunk://#diff-7866be717a5ec66dbf321ab271194ff475030422db1cdcfc38b03472f9189f72R12-R18), [app/[locale]/@modals/(.)profile/edit/faculty-photo-upload.tsxR38-R55](diffhunk://#diff-7866be717a5ec66dbf321ab271194ff475030422db1cdcfc38b03472f9189f72R38-R55), [app/[locale]/@modals/(.)profile/edit/faculty-photo-upload.tsxL63-R74](diffhunk://#diff-7866be717a5ec66dbf321ab271194ff475030422db1cdcfc38b03472f9189f72L63-R74), [app/[locale]/@modals/(.)profile/edit/faculty-photo-upload.tsxR121-R139](diffhunk://#diff-7866be717a5ec66dbf321ab271194ff475030422db1cdcfc38b03472f9189f72R121-R139), [app/[locale]/@modals/(.)profile/edit/page.tsxR72](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R72), [app/[locale]/@modals/(.)profile/edit/page.tsxR83](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R83), [app/[locale]/@modals/(.)profile/edit/page.tsxR117](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R117)) * Enhanced the `FacultyImage` component to prioritize the database image URL, then fallback to legacy paths or a placeholder if needed. ([app/[locale]/faculty-and-staff/faculty-image.tsxR18-R19](diffhunk://#diff-f3054df127f38ef9044a3b238e2c892fffc15bbda73792eaedfe36286ea35c2fR18-R19), [app/[locale]/faculty-and-staff/faculty-image.tsxR34-R45](diffhunk://#diff-f3054df127f38ef9044a3b238e2c892fffc15bbda73792eaedfe36286ea35c2fR34-R45), [app/[locale]/faculty-and-staff/faculty-image.tsxR55-R59](diffhunk://#diff-f3054df127f38ef9044a3b238e2c892fffc15bbda73792eaedfe36286ea35c2fR55-R59)) * Updated the faculty/staff listing and detail components to use the new `img` field for profile images. ([app/[locale]/faculty-and-staff/page.tsxL377-R381](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6L377-R381), [app/[locale]/faculty-and-staff/page.tsxR416](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6R416), [app/[locale]/faculty-and-staff/utils.tsxR128](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR128), [app/[locale]/faculty-and-staff/utils.tsxR247](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR247), [app/[locale]/faculty-and-staff/utils.tsxR292](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR292)) **Search and header integration:** * Modified search card rendering to use the `img` field for faculty and staff images, with a fallback if not present. ([app/[locale]/search/cards.tsxL218-R218](diffhunk://#diff-a1bf1e6421b8f7db98af617d93ab8477ad1d28a03876f953a55897f0f2ed7eafL218-R218), [app/[locale]/search/cards.tsxL296-R296](diffhunk://#diff-a1bf1e6421b8f7db98af617d93ab8477ad1d28a03876f953a55897f0f2ed7eafL296-R296)) * Updated the authenticated user section in the header to fetch and display the user's profile image from the database. ([app/[locale]/header.tsxL389-R396](diffhunk://#diff-05aeabaff5d1ec0d925bc6519f8dcf6cdc4f94efcf74117ecca3fbbd77eb7777L389-R396), [app/[locale]/header.tsxL417-R408](diffhunk://#diff-05aeabaff5d1ec0d925bc6519f8dcf6cdc4f94efcf74117ecca3fbbd77eb7777L417-R408), [app/[locale]/header.tsxL428-R418](diffhunk://#diff-05aeabaff5d1ec0d925bc6519f8dcf6cdc4f94efcf74117ecca3fbbd77eb7777L428-R418)) **Typesense search collection updates:** * Added the `img` field to the Typesense `faculty` and `staff` schemas and population scripts, ensuring search results include profile images. [[1]](diffhunk://#diff-c1462ef951f294dc2fba2c4f2e74aaa6eb664ac275887693e67be19ec4998be5R11) [[2]](diffhunk://#diff-c1462ef951f294dc2fba2c4f2e74aaa6eb664ac275887693e67be19ec4998be5L22-R32) [[3]](diffhunk://#diff-c1462ef951f294dc2fba2c4f2e74aaa6eb664ac275887693e67be19ec4998be5L48) [[4]](diffhunk://#diff-3d8eb5594a0483b1e248b500882721ebdcb0e2b005c95f03b3cf7fbb5829d804R11) [[5]](diffhunk://#diff-3d8eb5594a0483b1e248b500882721ebdcb0e2b005c95f03b3cf7fbb5829d804L21-R31)This pull request implements support for storing, updating, and displaying user profile images (specifically for faculty and staff) by introducing an `img` field to the `persons` table and propagating its use throughout the application. The changes ensure that profile images are fetched from and saved to the database, fallback images are used when necessary, and the new field is indexed in search schemas. **Database and Backend Enhancements:** - Added a new `img` field to the `persons` table schema to store the profile image URL. - Implemented the `updatePersonProfileImage` backend action to update the profile image for the currently authenticated user. **Profile Image Upload and Editing:** - Updated the faculty photo upload component to accept and display the current profile image, and to save the uploaded image URL to the database. ([app/[locale]/@modals/(.)profile/edit/faculty-photo-upload.tsxR12-R18](diffhunk://#diff-7866be717a5ec66dbf321ab271194ff475030422db1cdcfc38b03472f9189f72R12-R18), [app/[locale]/@modals/(.)profile/edit/faculty-photo-upload.tsxR38-R55](diffhunk://#diff-7866be717a5ec66dbf321ab271194ff475030422db1cdcfc38b03472f9189f72R38-R55), [app/[locale]/@modals/(.)profile/edit/faculty-photo-upload.tsxL63-R74](diffhunk://#diff-7866be717a5ec66dbf321ab271194ff475030422db1cdcfc38b03472f9189f72L63-R74), [app/[locale]/@modals/(.)profile/edit/faculty-photo-upload.tsxR121-R139](diffhunk://#diff-7866be717a5ec66dbf321ab271194ff475030422db1cdcfc38b03472f9189f72R121-R139)) - Modified the profile edit page to fetch and pass the `img` field to the photo upload component. ([app/[locale]/@modals/(.)profile/edit/page.tsxR72](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R72), [app/[locale]/@modals/(.)profile/edit/page.tsxR83](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R83), [app/[locale]/@modals/(.)profile/edit/page.tsxR117](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R117)) **Frontend Usage and Display:** - Updated the `FacultyImage` component and its consumers to prioritize displaying the image from the database, falling back to legacy paths or a default image as needed. ([app/[locale]/faculty-and-staff/faculty-image.tsxR18-R19](diffhunk://#diff-f3054df127f38ef9044a3b238e2c892fffc15bbda73792eaedfe36286ea35c2fR18-R19), [app/[locale]/faculty-and-staff/faculty-image.tsxR34-R45](diffhunk://#diff-f3054df127f38ef9044a3b238e2c892fffc15bbda73792eaedfe36286ea35c2fR34-R45), [app/[locale]/faculty-and-staff/faculty-image.tsxR55-R59](diffhunk://#diff-f3054df127f38ef9044a3b238e2c892fffc15bbda73792eaedfe36286ea35c2fR55-R59), [app/[locale]/faculty-and-staff/page.tsxL377-R381](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6L377-R381), [app/[locale]/faculty-and-staff/page.tsxR416](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6R416), [app/[locale]/faculty-and-staff/utils.tsxR128](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR128), [app/[locale]/faculty-and-staff/utils.tsxR247](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR247), [app/[locale]/faculty-and-staff/utils.tsxR292](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR292)) - Updated the authentication header and profile image rendering to use the new `img` field, falling back to the previous image or a default if not set. ([app/[locale]/header.tsxL389-R396](diffhunk://#diff-05aeabaff5d1ec0d925bc6519f8dcf6cdc4f94efcf74117ecca3fbbd77eb7777L389-R396), [app/[locale]/header.tsxL417-R408](diffhunk://#diff-05aeabaff5d1ec0d925bc6519f8dcf6cdc4f94efcf74117ecca3fbbd77eb7777L417-R408), [app/[locale]/header.tsxL428-R418](diffhunk://#diff-05aeabaff5d1ec0d925bc6519f8dcf6cdc4f94efcf74117ecca3fbbd77eb7777L428-R418)) - Modified faculty and staff search cards to use the new `img` field for profile images. ([app/[locale]/search/cards.tsxL218-R218](diffhunk://#diff-a1bf1e6421b8f7db98af617d93ab8477ad1d28a03876f953a55897f0f2ed7eafL218-R218), [app/[locale]/search/cards.tsxL296-R296](diffhunk://#diff-a1bf1e6421b8f7db98af617d93ab8477ad1d28a03876f953a55897f0f2ed7eafL296-R296)) **Search Indexing and Typesense Integration:** - Added the `img` field to the Typesense search schemas and population logic for both faculty and staff, ensuring profile images are indexed and available in search results. [[1]](diffhunk://#diff-c1462ef951f294dc2fba2c4f2e74aaa6eb664ac275887693e67be19ec4998be5R11) [[2]](diffhunk://#diff-c1462ef951f294dc2fba2c4f2e74aaa6eb664ac275887693e67be19ec4998be5L22-R32) [[3]](diffhunk://#diff-c1462ef951f294dc2fba2c4f2e74aaa6eb664ac275887693e67be19ec4998be5L48) [[4]](diffhunk://#diff-3d8eb5594a0483b1e248b500882721ebdcb0e2b005c95f03b3cf7fbb5829d804R11) [[5]](diffhunk://#diff-3d8eb5594a0483b1e248b500882721ebdcb0e2b005c95f03b3cf7fbb5829d804L21-R31)
This pull request enhances the footer component by adding new external resource links and improving how footer links are rendered. The changes ensure that external links open in a new tab with proper security attributes, and the footer now includes additional useful resources. **Footer link rendering improvements:** * Updated the `FooterLinkColumnProps` interface and related rendering logic in `animate-footer.tsx` to support an optional `target` property, allowing links to specify if they should open in a new tab. External links (those with `target="_blank"` or starting with "http") are now rendered as `<a>` tags with `rel="noopener noreferrer"` for security, while internal links continue to use the `Link` component. ([app/[locale]/(animations)/animate-footer.tsxL103-R103](diffhunk://#diff-9d03213baa3ffa7524fc544cdaf0f14294dfc0c13c5f6c019d9806127519f0b7L103-R103), [app/[locale]/(animations)/animate-footer.tsxR141-R157](diffhunk://#diff-9d03213baa3ffa7524fc544cdaf0f14294dfc0c13c5f6c019d9806127519f0b7R141-R157)) **New external resource links:** * Added "Register as Alumni" (linking to an external Google Form) to the institute links section, opening in a new tab. ([app/[locale]/footer.tsxR36-R41](diffhunk://#diff-61eaebe162b94a33902a9b854548f6d1995339ba17e568a6946ca400d1844292R36-R41)) * Added "NAD Digilocker" and "NIT KKR @ndl" as new external links in the academic links section, both opening in new tabs. ([app/[locale]/footer.tsxR58-R69](diffhunk://#diff-61eaebe162b94a33902a9b854548f6d1995339ba17e568a6946ca400d1844292R58-R69)) * Added "Council of NITs" as an external link in the resource links section, opening in a new tab. ([app/[locale]/footer.tsxR89-R94](diffhunk://#diff-61eaebe162b94a33902a9b854548f6d1995339ba17e568a6946ca400d1844292R89-R94))
Co-authored-by: Debatreya Das <116421305+Debatreya@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Rahul5g3d-official <Rahul5g3d.official@gmail.com>
…ls is avaiable from current site is pushed. Co-authored-by: Debatreya <debatreyadas@gmail.com>
Changed the Thought Lab page according to the new design... Pending tasks: 1. Events Section 2. Students Secretaries Cards --------- Co-authored-by: Debatreya Das <116421305+Debatreya@users.noreply.github.com>
This pull request adds support for the ORCID external profile link for faculty members, improves the UI for editing faculty profiles by making form content scrollable with fixed headers and footers, and enhances the display of external profile links. The changes span schema updates, backend logic, UI components, and translations. ### ORCID Support for Faculty Profiles * Added `orcidId` field to the `faculty` database schema and included it in all relevant queries and data structures. ([server/db/schema/faculty.schema.tsR46](diffhunk://#diff-8bcc32dd561b4fe62d5c0f87de70181d1d472510a7d4a937e24ee17dbbec9f9dR46), [app/[locale]/@modals/(.)profile/edit/page.tsxR58](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R58), [app/[locale]/faculty-and-staff/page.tsxR295](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6R295), [app/[locale]/faculty-and-staff/utils.tsxR117](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR117)) * Updated the faculty personal details schema to validate ORCID URLs and made the field optional. * Included `orcidId` in backend logic for updating faculty profiles. * Added `orcidId` to translation files for both English and Hindi. [[1]](diffhunk://#diff-653df80672e4aa7b682c54c831c40f13419ccfdc848c1ec1be4269ddb20f1482R11) [[2]](diffhunk://#diff-653df80672e4aa7b682c54c831c40f13419ccfdc848c1ec1be4269ddb20f1482R58) [[3]](diffhunk://#diff-653df80672e4aa7b682c54c831c40f13419ccfdc848c1ec1be4269ddb20f1482R105) ### UI Improvements for Faculty Profile Editing * Refactored the edit profile modal to use scrollable form content with fixed header, photo upload section, and footer, improving usability on larger screens. ([app/[locale]/@modals/(.)profile/edit/page.tsxL103-R118](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805L103-R118), [app/[locale]/@modals/(.)profile/edit/client-utils.tsxL349-R365](diffhunk://#diff-7c2e4d7020e011706a88acc0afb6b98c2056a5adb5900f07977925b7e4ec1b03L349-R365), [app/[locale]/@modals/(.)profile/edit/page.tsxR127](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805R127)) * Added `ScrollArea` component to relevant files for scrollable content. ([app/[locale]/@modals/(.)profile/edit/client-utils.tsxL16-R16](diffhunk://#diff-7c2e4d7020e011706a88acc0afb6b98c2056a5adb5900f07977925b7e4ec1b03L16-R16), [app/[locale]/@modals/(.)profile/edit/page.tsxL5-R5](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805L5-R5)) ### Display and Filtering of External Profile Links * Enhanced logic for displaying external profile links to only show links that are present and non-empty, including ORCID. ([app/[locale]/faculty-and-staff/page.tsxL407-R412](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6L407-R412), [app/[locale]/faculty-and-staff/page.tsxR336](diffhunk://#diff-73d9b8e5183a03609e638663514db195677d4e964b2ba2898d7ad4aa250d81d6R336), [app/[locale]/faculty-and-staff/utils.tsxR326-R396](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR326-R396)) * Improved layout and responsiveness of external profile links section, dynamically adjusting based on the number of links. ([app/[locale]/faculty-and-staff/utils.tsxR326-R396](diffhunk://#diff-3e362b10e143377150343a08121115b31eeefe1081b2d3cdc3bb5551eaec6b4dR326-R396)) ### Minor UI and Data Handling Fixes * Updated button styling for primary variant to improve contrast and accessibility. * Handled potential `undefined` values for image and external profile fields in faculty personal details. ([app/[locale]/@modals/(.)profile/edit/page.tsxL83-R86](diffhunk://#diff-e73212c94224fb2541821a5e5cdf5880f9ecace5d712ec5cd8dff6e590ded805L83-R86)) --- These changes collectively provide a more robust and user-friendly experience for faculty profile management, with expanded support for external academic profiles.
text alignment in p tag , if ylu find any page where it is not please add comment .....
- Added NCC page under Student Activities according to figma - Implemented route: /student-activities/ncc
commit ca0ddbbdd3df764fd52ff8bf876024d90ca28414
Author: Saksham1143me <150987031+Saksham1143me@users.noreply.github.com>
Date: Tue Feb 10 01:14:25 2026 +0530
feat: add NCC page and route /student-activities/ncc (#534)
- Added NCC page under Student Activities according to figma
- Implemented route: /student-activities/ncc
commit 2ebf915
Author: Aryawart-kathpal <aryawart.kathpal2909@gmail.com>
Date: Tue Feb 10 00:47:23 2026 +0530
fix: Fix to Image header and adding translations
commit 6717323
Merge: 78e1150 028d2f8
Author: Aryawart-kathpal <aryawart.kathpal2909@gmail.com>
Date: Mon Feb 9 23:48:07 2026 +0530
Merge branch 'staged' into fix/tnp
commit 78e1150
Author: Aryawart-kathpal <aryawart.kathpal2909@gmail.com>
Date: Mon Feb 9 23:40:50 2026 +0530
fix: Fixes to Student-card and Headings
commit 959492f
Author: Debatreya <debatreyadas@gmail.com>
Date: Fri Feb 6 19:09:12 2026 +0530
fix/tnp: Done chnages
commit 1df64d7
Merge: 6a8bef1 155204a
Author: Debatreya <debatreyadas@gmail.com>
Date: Fri Feb 6 18:19:38 2026 +0530
Merge branch 'fix/tnp' of github.com:nitkkr-dev/nitkkr into fix/tnp
commit 6a8bef1
Author: Debatreya <debatreyadas@gmail.com>
Date: Fri Feb 6 18:04:46 2026 +0530
feat: Student group
commit 728493f
Author: Debatreya <debatreyadas@gmail.com>
Date: Fri Feb 6 14:17:44 2026 +0530
Merge commit
commit 155204a
Author: nitya matta <nityamatta@gmail.com>
Date: Thu Feb 5 22:19:42 2026 +0530
changes in headings/tnp
commit 42e473a
Author: nitya matta <nityamatta@gmail.com>
Date: Sun Feb 1 18:00:23 2026 +0530
fix/tnp
- Changed curiculla schema and removed coordinator link from it - Update curiculla/:id page as per the new schema
…ts and notifications
… props and fixing some CSS on events page
|
@Aryawart-kathpal @Debatreya this has my changes |
There was a problem hiding this comment.
Pull request overview
This pull request adds a new Student Council page to the student activities section of the website. The page displays different categories of Student Council members (Institute Functionaries, Core Committee, Nominated Students, and Student Representatives) with their details fetched from the database.
Changes:
- Added Student Council translations for English and Hindi
- Created a new Student Council page component that fetches and displays member information organized by category
- Integrated the translations into the i18n system
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| i18n/translations.ts | Added StudentCouncilTranslations type and export, reorganized import order |
| i18n/translate/student-council.ts | New translation file with English and Hindi translations for Student Council page |
| i18n/translate/index.ts | Exported student-council translations |
| i18n/hi.ts | Added Hindi Student Council translations to the main translations object |
| i18n/en.ts | Added English Student Council translations to the main translations object |
| app/[locale]/student-activities/student-council/page.tsx | New page component displaying Student Council members with database queries and multiple display sections |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -0,0 +1,288 @@ | |||
| import NotificationsPanel from '~/components/notifications/notifications-panel'; | |||
There was a problem hiding this comment.
Missing revalidation configuration. Pages with database-backed server components in this directory typically set export const revalidate = 300; at the top to revalidate every 5 minutes. This page makes multiple database queries and should include this configuration for consistent caching behavior.
| member.personId | ||
| ); | ||
| const year = academicData?.batch | ||
| ? 2026 - academicData.batch |
There was a problem hiding this comment.
Hardcoded year value 2026 will become outdated. The year calculation logic 2026 - academicData.batch should use the current year dynamically (e.g., new Date().getFullYear() - academicData.batch) to ensure the calculation remains accurate over time.
| ? 2026 - academicData.batch | |
| ? new Date().getFullYear() - academicData.batch |
| <> | ||
| <ImageHeader | ||
| title={text.StudentCouncil.title} | ||
| src="student-activities/thought-lab/welcome-bk-shivani.jpeg" |
There was a problem hiding this comment.
The image source path appears incorrect for the Student Council page. The path "student-activities/thought-lab/welcome-bk-shivani.jpeg" references a Thought Lab image, but should reference an appropriate Student Council image instead.
| src="student-activities/thought-lab/welcome-bk-shivani.jpeg" | |
| src="student-activities/student-council/student-council-header.jpeg" |
| year: year ? ` ${year}` : '-', | ||
| }; | ||
| })} | ||
| getCount={Promise.resolve([])} |
There was a problem hiding this comment.
The getCount prop is passed as Promise.resolve([]) which always returns an empty array. This will likely cause pagination issues or incorrect behavior. Either pass the correct count query or omit the prop if pagination is not needed for this table.
| getCount={Promise.resolve([])} |
| ? ` ${member.person.telephone}`.trim() | ||
| : '-', | ||
| branch: branchWithDegree, | ||
| year: year ? ` ${year}` : '-', |
There was a problem hiding this comment.
Unnecessary space in template literal. The expression ${year} adds a leading space before the year value. This should be ${year} without the leading space, similar to how it's handled for other fields.
| year: year ? ` ${year}` : '-', | |
| year: year ? `${year}` : '-', |
| locale={locale} | ||
| category="student-activities" | ||
| showViewAll={true} | ||
| viewAllHref={`/${locale}/notifications?category=miscellaneous`} |
There was a problem hiding this comment.
Inconsistent notification category. The NotificationsPanel uses category="student-activities" but the viewAllHref redirects to "miscellaneous" category. These should match - both should use "student-activities" for consistency with other student activities pages like clubs.
| viewAllHref={`/${locale}/notifications?category=miscellaneous`} | |
| viewAllHref={`/${locale}/notifications?category=student-activities`} |
| ? ` ${member.person.telephone}`.trim() | ||
| : '-', | ||
| branch: branchWithDegree, | ||
| year: year ? ` ${year}` : '-', |
There was a problem hiding this comment.
Unnecessary space manipulation in string formatting. The expression ${member.person.telephone}.trim() adds a space before the telephone and then trims it, which is redundant. Either remove the leading space or remove the trim() call. Similarly on line 274 for the year field.
| ? ` ${member.person.telephone}`.trim() | |
| : '-', | |
| branch: branchWithDegree, | |
| year: year ? ` ${year}` : '-', | |
| ? `${member.person.telephone}`.trim() | |
| : '-', | |
| branch: branchWithDegree, | |
| year: year ? `${year}` : '-', |
| instituteFunctionaries: 'Institute Functionaries', | ||
| coreCommittee: 'Core Committee', | ||
| nominatedStudents: 'Nominated Students', | ||
| studentsRepresentatives: `Student's Representatives`, |
There was a problem hiding this comment.
Inconsistent possessive form. The text uses "Student's Representatives" (singular possessive) but should likely be "Students' Representatives" (plural possessive) to match the context of representing multiple students. Alternatively, could be "Student Representatives" (no possessive) which is more common in institutional contexts.
| studentsRepresentatives: `Student's Representatives`, | |
| studentsRepresentatives: `Student Representatives`, |
No description provided.