@@ -7,6 +7,8 @@ var quiz_list = {}
7
7
var quiz_displayed = ""
8
8
var role_value = ""
9
9
10
+ var subject_selected = "All"
11
+
10
12
export default class DashboardTests extends React . Component {
11
13
12
14
constructor ( e ) {
@@ -49,9 +51,15 @@ export default class DashboardTests extends React.Component {
49
51
// this.display_quiz_details()
50
52
}
51
53
54
+ filter ( ) {
55
+ subject_selected = $ ( "#filter" ) . val ( )
56
+ quiz_displayed = false
57
+ $ ( "#quiz-details" ) . remove ( )
58
+ $ ( "#table" ) . append ( `<tbody id='quiz-details' className="text-sm font-medium divide-y divide-slate-100"></tbody>` )
59
+ this . display_quiz_details ( )
60
+ }
61
+
52
62
display_quiz_details ( ) {
53
- // console.clear()
54
- // console.log(quiz_displayed)
55
63
56
64
if ( quiz_displayed === false ) {
57
65
@@ -75,11 +83,11 @@ export default class DashboardTests extends React.Component {
75
83
` )
76
84
}
77
85
for ( var i = 0 ; i < ids . length ; i ++ ) {
86
+
78
87
var data = quiz_list [ ids [ i ] ]
79
88
var location = `path1=questions/&path2=`
80
89
// console.log(location)
81
90
82
-
83
91
try {
84
92
var time = data . time
85
93
var start_exam_hour = parseInt ( time . split ( "-" ) [ 0 ] . split ( ":" ) [ 0 ] )
@@ -98,9 +106,9 @@ export default class DashboardTests extends React.Component {
98
106
catch ( err ) {
99
107
console . log ( err )
100
108
}
101
-
102
- $ ( "#quiz-details" ) . append ( `
103
- <tr>
109
+ if ( subject_selected === "All" || subject_selected === data . subject ) {
110
+ $ ( "#quiz-details" ) . append ( `
111
+ <tr id="display-quiz" >
104
112
<td class="p-2">
105
113
<div class="flex items-center">
106
114
<div class="flex items-center">
@@ -125,11 +133,11 @@ export default class DashboardTests extends React.Component {
125
133
` )
126
134
127
135
128
- if ( eaxm_year >= year && exam_mon > month || exam_date >= date ) {
129
- if ( exam_mon === month && exam_date === date ) {
130
136
131
- if ( start_exam_hour <= hour && end_exam_hour >= hour ) {
132
- if ( end_exam_min >= min ) {
137
+ if ( eaxm_year >= year && exam_mon > month || exam_date >= date ) {
138
+ if ( exam_mon === month && exam_date === date ) {
139
+
140
+ if ( start_exam_hour <= hour && end_exam_hour >= hour ) {
133
141
$ ( `#status-${ i } ` ) . append ( `<div class="text-center text-yellow-500 bg-yellow-200 p-1 rounded-full">In Progress</div>` )
134
142
$ ( `#view-quiz${ i } ` ) . on ( "click" , ( e ) => { this . view_quiz ( e , location ) } )
135
143
}
@@ -140,21 +148,16 @@ export default class DashboardTests extends React.Component {
140
148
141
149
}
142
150
else {
143
- $ ( `#status-${ i } ` ) . append ( `<div class="text-center text-red -500 bg-red -200 p-1 rounded-full">Closed </div>` )
151
+ $ ( `#status-${ i } ` ) . append ( `<div class="text-center text-green -500 bg-green -200 p-1 rounded-full">Active </div>` )
144
152
if ( role_value === "View" ) $ ( `#view-quiz${ i } ` ) . on ( "click" , ( e ) => { this . view_quiz ( e , location ) } )
145
153
}
146
-
147
154
}
148
155
else {
149
- $ ( `#status-${ i } ` ) . append ( `<div class="text-center text-green -500 bg-green -200 p-1 rounded-full">Active </div>` )
156
+ $ ( `#status-${ i } ` ) . append ( `<div class="text-center text-red -500 bg-red -200 p-1 rounded-full">Closed </div>` )
150
157
if ( role_value === "View" ) $ ( `#view-quiz${ i } ` ) . on ( "click" , ( e ) => { this . view_quiz ( e , location ) } )
151
158
}
152
- }
153
- else {
154
- $ ( `#status-${ i } ` ) . append ( `<div class="text-center text-red-500 bg-red-200 p-1 rounded-full">Closed</div>` )
155
- if ( role_value === "View" ) $ ( `#view-quiz${ i } ` ) . on ( "click" , ( e ) => { this . view_quiz ( e , location ) } )
156
- }
157
159
160
+ }
158
161
}
159
162
quiz_displayed = ! quiz_displayed
160
163
}
@@ -179,14 +182,49 @@ export default class DashboardTests extends React.Component {
179
182
render ( ) {
180
183
return (
181
184
< div className = "col-span-full xl:col-span-8 bg-white shadow-lg rounded-sm border border-slate-200" >
182
- < header className = "px-5 py-4 border-b border-slate-100" >
185
+ < header className = "px-5 py-4 border-b border-slate-100 flex justify-between " >
183
186
< h2 className = "font-semibold text-slate-800" > QUIZS</ h2 >
187
+
188
+
189
+ < div style = { {
190
+ "minWidth" : "250px" ,
191
+ "display" : "flex" ,
192
+ "justifyContent" : "space-evenly" ,
193
+ "alignItems" : 'center'
194
+ } } >
195
+ < label className = "text-gray-600 font-medium" htmlFor = "filter" >
196
+ Subject:
197
+ </ label >
198
+
199
+ < select
200
+ id = "filter"
201
+ name = "filter"
202
+ className = "bg-gray-200 p-2 rounded-md outline-0 focus:bg-gray-300"
203
+
204
+ >
205
+ < option value = "All" > All</ option >
206
+ < option value = "English" > English</ option >
207
+ < option value = "Science" > Science</ option >
208
+ < option value = "Social Studies" > Social Studies</ option >
209
+ < option value = "Mathematics" > Mathematics</ option >
210
+ < option value = "Artificial Intelligence" > Computer</ option >
211
+ </ select >
212
+
213
+ < button style = { { borderRadius : "10px" } } type = "submit" className = "bg-green-600 rounde-md p-3 text-white hover:bg-yellow-500"
214
+ onClick = { ( e ) => { this . filter ( ) } } >
215
+ Filter
216
+ </ button >
217
+ </ div >
218
+
219
+
184
220
</ header >
221
+
222
+
185
223
< div className = "p-3" >
186
224
187
225
{ /* Table */ }
188
226
< div style = { { maxHeight : "340px" , minHeight : "100px" } } className = "overflow-x-auto overflow-y-auto" >
189
- < table className = "table-auto w-full" >
227
+ < table id = "table" className = "table-auto w-full" >
190
228
{ /* Table header */ }
191
229
< thead className = "text-xs uppercase text-slate-400 bg-slate-50 rounded-sm" >
192
230
< tr >
0 commit comments