Changeset ba52069 for src/app/students/applications
- Timestamp:
- 02/13/26 19:32:02 (7 months ago)
- Branches:
- master
- Children:
- d7deae5
- Parents:
- 50f2fb4
- File:
-
- 1 edited
-
src/app/students/applications/page.tsx (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/app/students/applications/page.tsx
r50f2fb4 rba52069 23 23 24 24 const TableCell = ({ children, className = "" }: TableCellProps) => ( 25 <td className={`px-4 py-3 text-sm border-b border- gray-200${className}`}>25 <td className={`px-4 py-3 text-sm border-b border-border ${className}`}> 26 26 {children} 27 27 </td> … … 78 78 <div className="bg-primary text-white rounded-xl p-8 mb-8"> 79 79 <div className="flex items-center gap-4"> 80 <div className="bg-white bg-opacity-20rounded-full p-4">81 <FontAwesomeIcon icon={faPenToSquare} className="text-3xl text- primary" />80 <div className="bg-white rounded-full p-4"> 81 <FontAwesomeIcon icon={faPenToSquare} className="text-3xl text-[#0272D1]" /> 82 82 </div> 83 83 <div> … … 91 91 92 92 {/* Session Selection */} 93 <div className="bg- white rounded-xl p-6 shadow-sm border border-gray-100mb-8">93 <div className="bg-card rounded-xl p-6 shadow-sm border border-border mb-8"> 94 94 <div className="flex items-center justify-between"> 95 <h2 className="text-lg font-semibold text- gray-900flex items-center gap-2">95 <h2 className="text-lg font-semibold text-card-foreground flex items-center gap-2"> 96 96 <FontAwesomeIcon icon={faCalendarAlt} className="text-primary" /> 97 97 {t('select_exam_session', 'Избери испитна сесија:')} … … 101 101 <button 102 102 onClick={() => setIsDropdownOpen(!isDropdownOpen)} 103 className="bg- white border border-gray-300rounded-lg px-4 py-2 text-left focus:outline-none focus:ring-2 focus:ring-primary focus:border-primary min-w-80"103 className="bg-card border border-border rounded-lg px-4 py-2 text-left focus:outline-none focus:ring-2 focus:ring-primary focus:border-primary min-w-80" 104 104 > 105 105 <div className="flex items-center justify-between"> … … 109 109 <FontAwesomeIcon 110 110 icon={faChevronDown} 111 className={`w-4 h-4 text- gray-400transition-transform ml-4 ${isDropdownOpen ? 'rotate-180' : ''}`}111 className={`w-4 h-4 text-muted-foreground transition-transform ml-4 ${isDropdownOpen ? 'rotate-180' : ''}`} 112 112 /> 113 113 </div> … … 115 115 116 116 {isDropdownOpen && ( 117 <div className="absolute z-10 right-0 mt-1 w-80 bg- white border border-gray-200rounded-lg shadow-lg">117 <div className="absolute z-10 right-0 mt-1 w-80 bg-card border border-border rounded-lg shadow-lg"> 118 118 {applicationsData.examSessions.map((session) => ( 119 119 <button … … 123 123 setIsDropdownOpen(false); 124 124 }} 125 className="w-full px-4 py-3 text-left text-sm hover:bg- gray-50 focus:outline-none focus:bg-gray-50first:rounded-t-lg last:rounded-b-lg"125 className="w-full px-4 py-3 text-left text-sm hover:bg-accent focus:outline-none focus:bg-accent first:rounded-t-lg last:rounded-b-lg" 126 126 > 127 <div className="font-medium text- gray-900">{t(session.id, session.name)}</div>128 <div className="text-xs text- gray-500">{session.year} - {t(session.semester, session.semester)} - {t(session.session, session.session)}</div>127 <div className="font-medium text-card-foreground">{t(session.id, session.name)}</div> 128 <div className="text-xs text-muted-foreground">{session.year} - {t(session.semester, session.semester)} - {t(session.session, session.session)}</div> 129 129 </button> 130 130 ))} … … 136 136 137 137 {/* Applications Section */} 138 <div className="bg- white rounded-xl shadow-sm border border-gray-100overflow-hidden">138 <div className="bg-card rounded-xl shadow-sm border border-border overflow-hidden"> 139 139 <div className="bg-primary text-white px-6 py-4"> 140 140 <h2 className="text-xl font-bold">{t('registered_exams', 'Пријавени испити')}</h2> … … 143 143 <div className="overflow-x-auto"> 144 144 <table className="w-full"> 145 <thead className="bg- gray-50">145 <thead className="bg-accent"> 146 146 <tr> 147 <th className="px-4 py-4 text-left text-xs font-medium text- gray-500uppercase tracking-wider">#</th>148 <th className="px-4 py-4 text-left text-xs font-medium text- gray-500uppercase tracking-wider">{t('serial_number', 'Сериски број')}</th>149 <th className="px-4 py-4 text-left text-xs font-medium text- gray-500uppercase tracking-wider">{t('code', 'Код')}</th>150 <th className="px-4 py-4 text-left text-xs font-medium text- gray-500uppercase tracking-wider">{t('subject', 'Предмет')}</th>151 <th className="px-4 py-4 text-center text-xs font-medium text- gray-500uppercase tracking-wider">{t('completed', 'Завршена')}</th>152 <th className="px-4 py-4 text-center text-xs font-medium text- gray-500uppercase tracking-wider">{t('fee', 'Таксени')}</th>153 <th className="px-4 py-4 text-left text-xs font-medium text- gray-500uppercase tracking-wider">{t('date', 'Датум')}</th>154 <th className="px-4 py-4 text-left text-xs font-medium text- gray-500uppercase tracking-wider">{t('instructor', 'Наставник')}</th>155 <th className="px-4 py-4 text-center text-xs font-medium text- gray-500uppercase tracking-wider">{t('decade', 'Декада')}</th>147 <th className="px-4 py-4 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider">#</th> 148 <th className="px-4 py-4 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider">{t('serial_number', 'Сериски број')}</th> 149 <th className="px-4 py-4 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider">{t('code', 'Код')}</th> 150 <th className="px-4 py-4 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider">{t('subject', 'Предмет')}</th> 151 <th className="px-4 py-4 text-center text-xs font-medium text-muted-foreground uppercase tracking-wider">{t('completed', 'Завршена')}</th> 152 <th className="px-4 py-4 text-center text-xs font-medium text-muted-foreground uppercase tracking-wider">{t('fee', 'Таксени')}</th> 153 <th className="px-4 py-4 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider">{t('date', 'Датум')}</th> 154 <th className="px-4 py-4 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider">{t('instructor', 'Наставник')}</th> 155 <th className="px-4 py-4 text-center text-xs font-medium text-muted-foreground uppercase tracking-wider">{t('decade', 'Декада')}</th> 156 156 </tr> 157 157 </thead> 158 <tbody className="divide-y divide- gray-100">158 <tbody className="divide-y divide-border"> 159 159 {applications.map((application) => ( 160 <tr key={application.id} className="hover:bg- gray-50transition-colors">161 <TableCell className="font-medium text- gray-900">{application.id}</TableCell>160 <tr key={application.id} className="hover:bg-accent transition-colors"> 161 <TableCell className="font-medium text-card-foreground">{application.id}</TableCell> 162 162 <TableCell> 163 163 <span className="font-mono text-sm text-primary font-medium hover:underline cursor-pointer"> … … 166 166 </TableCell> 167 167 <TableCell className="font-mono text-sm font-medium">{application.code}</TableCell> 168 <TableCell className="font-medium text- gray-900max-w-xs">168 <TableCell className="font-medium text-card-foreground max-w-xs"> 169 169 <div className="flex items-center gap-2"> 170 170 <FontAwesomeIcon icon={faFileText} className="w-4 h-4 text-primary" /> … … 178 178 <FeeBadge fee={application.fee} /> 179 179 </TableCell> 180 <TableCell className="text- gray-600font-medium">{application.date}</TableCell>180 <TableCell className="text-muted-foreground font-medium">{application.date}</TableCell> 181 181 <TableCell> 182 182 <div className="flex items-center gap-2"> 183 <FontAwesomeIcon icon={faUser} className="w-4 h-4 text- gray-400" />184 <span className="font-medium text- gray-900">{t(application.instructor, application.instructor)}</span>183 <FontAwesomeIcon icon={faUser} className="w-4 h-4 text-muted-foreground" /> 184 <span className="font-medium text-card-foreground">{t(application.instructor, application.instructor)}</span> 185 185 </div> 186 186 </TableCell> … … 208 208 {/* Statistics Cards */} 209 209 <div className="grid grid-cols-1 md:grid-cols-3 gap-6 mt-8"> 210 <div className="bg- white rounded-xl p-6 shadow-sm border border-gray-100">210 <div className="bg-card rounded-xl p-6 shadow-sm border border-border"> 211 211 <div className="flex items-center gap-4"> 212 212 <div className="bg-blue-100 text-blue-600 rounded-full p-3"> … … 214 214 </div> 215 215 <div> 216 <h3 className="text-lg font-bold text- gray-900">{t('registered_exams', 'Пријавени испити')}</h3>216 <h3 className="text-lg font-bold text-card-foreground">{t('registered_exams', 'Пријавени испити')}</h3> 217 217 <p className="text-2xl font-bold text-blue-600"> 218 218 {applications.length} … … 222 222 </div> 223 223 224 <div className="bg- white rounded-xl p-6 shadow-sm border border-gray-100">224 <div className="bg-card rounded-xl p-6 shadow-sm border border-border"> 225 225 <div className="flex items-center gap-4"> 226 226 <div className="bg-green-100 text-green-600 rounded-full p-3"> … … 228 228 </div> 229 229 <div> 230 <h3 className="text-lg font-bold text- gray-900">{t('completed', 'Завршени')}</h3>230 <h3 className="text-lg font-bold text-card-foreground">{t('completed', 'Завршени')}</h3> 231 231 <p className="text-2xl font-bold text-green-600"> 232 232 {applications.filter(app => app.completed === t('yes', 'Да')).length} … … 236 236 </div> 237 237 238 <div className="bg- white rounded-xl p-6 shadow-sm border border-gray-100">238 <div className="bg-card rounded-xl p-6 shadow-sm border border-border"> 239 239 <div className="flex items-center gap-4"> 240 240 <div className="bg-yellow-100 text-yellow-600 rounded-full p-3"> … … 242 242 </div> 243 243 <div> 244 <h3 className="text-lg font-bold text- gray-900">{t('total_fee', 'Вкупна такса')}</h3>244 <h3 className="text-lg font-bold text-card-foreground">{t('total_fee', 'Вкупна такса')}</h3> 245 245 <p className="text-2xl font-bold text-yellow-600"> 246 246 {applications.reduce((sum, app) => sum + parseFloat(app.fee.replace(',', '.')), 0).toFixed(2)}
Note:
See TracChangeset
for help on using the changeset viewer.
