Changeset ba52069 for src/app/professor
- Timestamp:
- 02/13/26 19:32:02 (7 months ago)
- Branches:
- master
- Children:
- d7deae5
- Parents:
- 50f2fb4
- Location:
- src/app/professor
- Files:
-
- 2 edited
-
profile/page.tsx (modified) (4 diffs)
-
students/page.tsx (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/app/professor/profile/page.tsx
r50f2fb4 rba52069 98 98 const { t } = useTranslation(); 99 99 return ( 100 <div className="flex justify-between items-center py-3 border-b border- gray-100last:border-b-0">101 <div className="flex items-center gap-2 text- gray-600font-medium">100 <div className="flex justify-between items-center py-3 border-b border-border last:border-b-0"> 101 <div className="flex items-center gap-2 text-muted-foreground font-medium"> 102 102 {icon && <FontAwesomeIcon icon={icon} className="w-4 h-4" />} 103 103 <span>{t(label)}:</span> 104 104 </div> 105 <div className="text- gray-900font-semibold text-right max-w-xs break-words">105 <div className="text-card-foreground font-semibold text-right max-w-xs break-words"> 106 106 {value || t('n_a')} 107 107 </div> … … 119 119 const { t } = useTranslation(); 120 120 return ( 121 <div className="bg- white rounded-xl shadow-sm border border-gray-100overflow-hidden">121 <div className="bg-card rounded-xl shadow-sm border border-border overflow-hidden"> 122 122 <div className="bg-primary text-white px-6 py-4"> 123 123 <div className="flex items-center gap-3"> … … 185 185 return ( 186 186 <div className="min-h-screen pb-8"> 187 <div className="bg- white rounded-xl shadow-sm border border-gray-100p-6">{t('loading')}</div>187 <div className="bg-card rounded-xl shadow-sm border border-border p-6">{t('loading')}</div> 188 188 </div> 189 189 ); … … 208 208 <div className="flex items-center gap-6"> 209 209 <div className="relative"> 210 <div className="w-20 h-20 bg-white bg-opacity-20 rounded-full flex items-center justify-center border-2 border-white border-opacity-30">211 <FontAwesomeIcon icon={faUser} className="text-3xl text- primary" />210 <div className="w-20 h-20 bg-white rounded-full flex items-center justify-center border-2 border-white shadow-lg"> 211 <FontAwesomeIcon icon={faUser} className="text-3xl text-[#0272D1]" /> 212 212 </div> 213 213 <div className="absolute -bottom-1 -right-1 w-6 h-6 bg-green-500 rounded-full border-2 border-white"></div> -
src/app/professor/students/page.tsx
r50f2fb4 rba52069 129 129 130 130 return ( 131 <div className="bg- white rounded-xl shadow-sm border border-gray-200p-6">131 <div className="bg-card rounded-xl shadow-sm border border-border p-6"> 132 132 <div className="flex flex-col gap-4 md:flex-row md:items-end md:justify-between"> 133 133 134 134 <div> 135 <h1 className="text-2xl font-semibold text- gray-900">{t('prof_students_title')}</h1>136 <p className="text- gray-700mt-1">135 <h1 className="text-2xl font-semibold text-card-foreground">{t('prof_students_title')}</h1> 136 <p className="text-muted-foreground mt-1"> 137 137 {t('prof_students_data_note')} <span className="font-mono">/api/prof/students</span> (demo store). 138 138 </p> … … 141 141 <div className="flex flex-col sm:flex-row gap-3"> 142 142 <div className="flex flex-col"> 143 <label className="text-sm text- gray-700">{t('filter_by_subject')}</label>143 <label className="text-sm text-muted-foreground">{t('filter_by_subject')}</label> 144 144 <select 145 className="border border- gray-300rounded-lg px-3 py-2"145 className="border border-border rounded-lg px-3 py-2" 146 146 value={subjectFilter} 147 147 onChange={(e) => setSubjectFilter(e.target.value)} … … 159 159 160 160 <div className="flex flex-col"> 161 <label className="text-sm text- gray-700">{t('find_student_by_id')}</label>161 <label className="text-sm text-muted-foreground">{t('find_student_by_id')}</label> 162 162 <input 163 className="border border- gray-300rounded-lg px-3 py-2"163 className="border border-border rounded-lg px-3 py-2" 164 164 placeholder={t('student_id_placeholder')} 165 165 value={studentIdQuery} … … 177 177 178 178 <div className="mt-6 overflow-x-auto"> 179 <table className="min-w-full border border- gray-200rounded-lg overflow-hidden">180 <thead className="bg- gray-50">179 <table className="min-w-full border border-border rounded-lg overflow-hidden"> 180 <thead className="bg-accent"> 181 181 <tr> 182 <th className="text-left text-sm font-semibold text- gray-700px-4 py-3 border-b">{t('student')}</th>183 <th className="text-left text-sm font-semibold text- gray-700px-4 py-3 border-b">{t('id')}</th>184 <th className="text-left text-sm font-semibold text- gray-700px-4 py-3 border-b">{t('subject')}</th>185 <th className="text-left text-sm font-semibold text- gray-700px-4 py-3 border-b">{t('grade')}</th>186 <th className="text-left text-sm font-semibold text- gray-700px-4 py-3 border-b">{t('actions')}</th>182 <th className="text-left text-sm font-semibold text-muted-foreground px-4 py-3 border-b">{t('student')}</th> 183 <th className="text-left text-sm font-semibold text-muted-foreground px-4 py-3 border-b">{t('id')}</th> 184 <th className="text-left text-sm font-semibold text-muted-foreground px-4 py-3 border-b">{t('subject')}</th> 185 <th className="text-left text-sm font-semibold text-muted-foreground px-4 py-3 border-b">{t('grade')}</th> 186 <th className="text-left text-sm font-semibold text-muted-foreground px-4 py-3 border-b">{t('actions')}</th> 187 187 </tr> 188 188 </thead> … … 190 190 {loading ? ( 191 191 <tr> 192 <td className="px-4 py-4 text- gray-700" colSpan={5}>192 <td className="px-4 py-4 text-muted-foreground" colSpan={5}> 193 193 {t('loading')} 194 194 </td> … … 196 196 ) : filteredRows.length === 0 ? ( 197 197 <tr> 198 <td className="px-4 py-4 text- gray-700" colSpan={5}>198 <td className="px-4 py-4 text-muted-foreground" colSpan={5}> 199 199 {t('no_students_found')} 200 200 </td> … … 207 207 208 208 return ( 209 <tr key={key} className="hover:bg- gray-50">210 <td className="px-4 py-3 border-b text- gray-900">{r.studentName}</td>211 <td className="px-4 py-3 border-b text- gray-900">{r.studentIdStr}</td>212 <td className="px-4 py-3 border-b text- gray-900">{r.subjectName}</td>209 <tr key={key} className="hover:bg-accent"> 210 <td className="px-4 py-3 border-b text-card-foreground">{r.studentName}</td> 211 <td className="px-4 py-3 border-b text-card-foreground">{r.studentIdStr}</td> 212 <td className="px-4 py-3 border-b text-card-foreground">{r.subjectName}</td> 213 213 <td className="px-4 py-3 border-b"> 214 214 <div className="flex items-center gap-3"> 215 215 <select 216 className="border border- gray-300rounded-lg px-3 py-2"216 className="border border-border rounded-lg px-3 py-2" 217 217 value={selected} 218 218 onChange={(e) => … … 229 229 ))} 230 230 </select> 231 <span className="text-sm text- gray-600">231 <span className="text-sm text-muted-foreground"> 232 232 {t('current')}: {r.grade > 0 ? r.grade : t('none')} 233 233 </span>
Note:
See TracChangeset
for help on using the changeset viewer.
