Compare commits

..

2 Commits

Author SHA1 Message Date
skillens.ai 4c260ac15c color doding in the live exam bottom tab 2025-11-01 20:19:21 +05:30
skillens.ai 9b6c8f4fef subject fix 2025-11-01 14:23:36 +05:30
4 changed files with 132 additions and 110 deletions

View File

@ -1,12 +1,12 @@
robots.txt,1761396900570,bfe106a3fb878dc83461c86818bf74fc1bdc7f28538ba613cd3e775516ce8b49
manifest.json,1761396900568,a9350a49aaac9fe94d3dd77b8270cc998c04ab97944a606189675022431faa51
favicon.svg,1761396900561,a2a4880301751061a600b0bfc5c26fc413aed41e581516c4fa976bcb7fff6663
asset-manifest.json,1761853385780,947bcb706b377c9dbf5a38e63708e532cee066bfea120b9e2e23b6b36368140d
service-worker.js,1761853385779,b77b732bc5ed74bc5eece87a42f726611d4762a43a3b74fdcd9e992a0dd4873d
static/media/sub-ques-icon.366b4f1e.svg,1761853385736,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425
index.html,1761853385779,ff959c046bb89ef0a41f7d163ebf43d375ba9005643531f126da31c6c232a165
precache-manifest.dec188fe831dd96865bf08d8736029aa.js,1761853385779,25aca59ae49e7fec8ee114db57ebf98a3122ccceb668d1d25bb097667eb84567
static/media/student-engaged.53fb7b0b.svg,1761853385733,5f8e01d1a5efcbdf3aa00ed07de843ab84404a28b672ca91f4d70d89fa8b37cf
service-worker.js,1761967891625,f7744b581ca227e2a41f575b69dea1ab6d18cce982b6a960d28e71fadc44f741
static/media/tru-fals-icon.d0b962d8.svg,1761967891590,a1deab7e5db8e8a94a9c5812dcde5f8cbfbe5da790da8500bf106980b9c79c33
precache-manifest.7cad5215247b24b3b19ef8edf1d4fe9a.js,1761967891625,60375439202070d0556de010cbf10824235f73b4c2f63f9948438a94df2a5edf
index.html,1761967891604,52b58a29314f6829b20c7e23e4f7fd5b5b40e3c7bc9949341548becbc6ef7879
static/media/student-engaged.53fb7b0b.svg,1761967891589,5f8e01d1a5efcbdf3aa00ed07de843ab84404a28b672ca91f4d70d89fa8b37cf
static/media/sub-ques-icon.366b4f1e.svg,1761967891590,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425
assets/images/locale-icon.svg,1761396900579,610498c7ca3b5800d268b1654473f0b1d79de2c6493a7c6982bef90456d35179
assets/images/icons/icon-96x96.png,1761396900602,43a8ac4df8945d7a44e3e4911032214f01eaea92267baa31a93e77942b424c73
assets/images/icons/icon-72x72.png,1761396900600,a42f1df8ab0a8fe921573976d49158e1a2c52fe430460c869947f221aba30a94
@ -16,52 +16,52 @@ assets/images/icons/icon-192x192.png,1761396900592,ac9fe46fbeb4c54fb3c838b645380
assets/images/icons/icon-152x152.png,1761396900590,95a5a117fbd5640f1f1f13c9923398545e3f5b66734ff6c8ce67c942319a8b67
assets/images/icons/icon-144x144.png,1761396900588,e42168e0e1abb5bd7811ebe1b5a2183d0ce287bf266c2efd8d97a23d23ca8d00
assets/images/icons/icon-128x128.png,1761396900585,45b577c86e7c03fef868bfa3f96810c5b36f31156c32c0d85620d2e6fe1fc85b
static/media/tru-fals-icon.d0b962d8.svg,1761853385735,a1deab7e5db8e8a94a9c5812dcde5f8cbfbe5da790da8500bf106980b9c79c33
static/media/PracticeKiaLogo.a8336af5.svg,1761853385716,1a592518bcfabb2f86669d06ae2fb7b2948bbdbfaf5a80d138ab30f4e482a0f8
static/media/translate.610ad011.svg,1761853385736,c06f8a3d0c976b02429ce805d8a4944571ab0128ed2ce49c2d3ca134511ed120
static/media/questions-icon.3d3c1aaf.svg,1761853385732,197f459a359b00c1c44b6ddd71cbc9160f593d1fe08534e3711e9d72a2956ef1
static/media/question.0c505ed9.svg,1761853385722,29938066f93476c487414bb7a5dd5227d891c8ab8e115a74a7e7ffccd8d87b36
static/media/practice.f05e6f00.svg,1761853385723,13b094bcbbb8c50906b1ee0ce68305059e99319464dd4147b4c2194dbb460475
static/media/performance.88855f12.svg,1761853385730,03fc1b19005084049382091745d3f1f29a447763091ad4a9bc5d097c338671c9
static/media/quizexam.5545802e.svg,1761853385722,dfc1278bfcd264264a4d0e0e0247c229335abf0573439c5e9829c8607aacd569
static/media/mul-res-icon.8ef3b097.svg,1761853385733,1f0a79350cb5546361ef02af1657ad36efeff833fd7bb61db88a20e127a290b4
static/media/practice-icon.bf603115.svg,1761853385733,27b6a729d91914d899f4b3c1f817e26ac58d2ec0be54dc9b93c01f28adcdd00c
static/media/mul-cho-icon.b3dc9ea9.svg,1761853385734,e8edbceb0eb49f7629cf0b8edf599f9347acbf0c6d1df2fa6145cbed03f37e1f
static/media/perf-icon.1597a235.svg,1761853385734,7183482b785de425506f49deb27bba02e906132ac7ce5af01f7da8452ef64f28
static/media/GrayscalePKLogo.6bb74404.svg,1761853385722,576b38300e49eda6407adce420001e7ad0333cca317eb668aff457c3258dcca2
static/media/getFetch.2b2b7da4.cjs,1761853385722,b2d82abee5b8af22b81d67fc20b3feef1eaaf04585dbc24ec755e3304c469096
static/media/locale-icon.b3596424.svg,1761853385732,68618c76952aa4c5f2623bb010514871688960bb3b9edbcda0eab7eb75442054
static/media/delete-icon.da38c0f4.svg,1761853385739,8078772ee88a0588989eec477da1ca949430f3f06efaa9c2db860b74c65f6722
static/media/exam-icon.10f48851.svg,1761853385733,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693
static/media/feature-2.36f8d7e2.webp,1761853385722,fc1c038517abf3b731ff3a4675cbaf1a6aa1150ca970762dd0ffc4199b92b75c
static/media/dashboard.8ec7624b.svg,1761853385722,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1
static/media/classes.3b73dba0.svg,1761853385722,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d
static/media/class-icon.6afd34b5.svg,1761853385732,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e
static/media/batch.3fcff66e.svg,1761853385723,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862
static/media/auth-BG.2835584f.svg,1761853385722,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf
static/media/add-circle.0011f2bc.svg,1761853385732,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17
static/media/Checkmark.1356376c.svg,1761853385740,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027
static/media/OdiSVGlogo.f0834bb1.svg,1761853385722,3ec1cab31a32db378894d796afedaee7c35f8ff99dfb1039b0bb757225a47235
static/media/batch-icon.bf664771.svg,1761853385733,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0
static/js/runtime-main.2bdeab81.js,1761853385744,5c04066aee33f757af11aff4783499664f995e641476c3c1552c373bf87171bb
static/js/runtime-main.2bdeab81.js.map,1761853385779,a6cd518ca4773cf5562057dad7acb281edac1b802572abcdc6ee19c33f02b744
static/js/4.568469c1.chunk.js,1761853385750,7f998d124bddb5cb8e916a7bb559ddd2f5c133920e79651382bbabf25affc9c4
static/js/3.d75ced33.chunk.js.map,1761853385780,a12fbfb03ced36f6a8c055bf8b3961a9170b3676c8e4f545921152b23e9bc4dd
static/js/3.d75ced33.chunk.js,1761853385744,c68f66b973c4099ec168a05edb6212303bf31b91c57a2adc0a46595d31262355
static/js/2.62337eda.chunk.js.LICENSE.txt,1761853385750,9c84bc4d2f8584d32d75e01e0317e22af1e39f5ac5ded3e2e4e34984704c172b
static/js/4.568469c1.chunk.js.map,1761853385780,f626752d2d2cffe76387c84c314248f1ab02d9c6a79a16442a98e124c8f7d5fa
static/media/logo.0dd03933.png,1761853385722,b9716ed1f565a052edc1154a207334de81856339e8ca43d5d8f51041f3785085
static/media/feature-1.ea5c34ea.svg,1761853385722,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8
static/media/feature-3.3d5d81e9.svg,1761853385722,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b
static/js/main.dc7a2e26.chunk.js,1761853385738,1293d0870db2e36165f74a2ecab3f5e9e9400cc6cd21a13a53f945a03daa4aee
static/css/main.b90ebd71.chunk.css,1761853385738,47c0c4a15920e9cea3ceba32d4bc59829a376a7f4347c15b82d7e8878d59008d
static/css/4.629184c9.chunk.css,1761853385744,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab
static/css/2.561a8df6.chunk.css,1761853385744,c87247fc5cf38902aee0ee29244f6ab0c4bc14e5a0a1d6860cd771410dc826f8
static/css/3.6c5a3051.chunk.css,1761853385744,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1
static/css/4.629184c9.chunk.css.map,1761853385780,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205
static/js/main.dc7a2e26.chunk.js.map,1761853385780,c56d0ef8b291303c026aa85a72cd2ded6b170209baa26f266856af48fcba7c01
static/css/3.6c5a3051.chunk.css.map,1761853385751,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796
static/css/2.561a8df6.chunk.css.map,1761853385751,ed9f46fc5b36bd835967cfd533fb33fd9ceec9c3aadcbe6c12bfb90b3ad1bc83
static/css/main.b90ebd71.chunk.css.map,1761853385751,bff960067cfb59c88b8ec495e5b5334532e05ae898ad3f3a78ee293f74fb7855
static/js/2.62337eda.chunk.js,1761853385748,77cf5f150a62f871cd755bda4416b033e3beb160bd839ff268a882922536c428
static/js/2.62337eda.chunk.js.map,1761853385790,b9d5a81200c981136931f3bc4b5e66963f392de9e4de8bd1e6f9821749e0164b
static/media/translate.610ad011.svg,1761967891590,c06f8a3d0c976b02429ce805d8a4944571ab0128ed2ce49c2d3ca134511ed120
asset-manifest.json,1761967891625,e86b1b4d49803659560b3c6cc8a81dd59bc4d766ec96f72d36ce1c06ab45c30b
static/media/quizexam.5545802e.svg,1761967891584,dfc1278bfcd264264a4d0e0e0247c229335abf0573439c5e9829c8607aacd569
static/media/questions-icon.3d3c1aaf.svg,1761967891588,197f459a359b00c1c44b6ddd71cbc9160f593d1fe08534e3711e9d72a2956ef1
static/media/PracticeKiaLogo.a8336af5.svg,1761967891581,1a592518bcfabb2f86669d06ae2fb7b2948bbdbfaf5a80d138ab30f4e482a0f8
static/media/performance.88855f12.svg,1761967891587,03fc1b19005084049382091745d3f1f29a447763091ad4a9bc5d097c338671c9
static/media/practice.f05e6f00.svg,1761967891584,13b094bcbbb8c50906b1ee0ce68305059e99319464dd4147b4c2194dbb460475
static/media/perf-icon.1597a235.svg,1761967891589,7183482b785de425506f49deb27bba02e906132ac7ce5af01f7da8452ef64f28
static/media/question.0c505ed9.svg,1761967891585,29938066f93476c487414bb7a5dd5227d891c8ab8e115a74a7e7ffccd8d87b36
static/media/mul-cho-icon.b3dc9ea9.svg,1761967891589,e8edbceb0eb49f7629cf0b8edf599f9347acbf0c6d1df2fa6145cbed03f37e1f
static/media/locale-icon.b3596424.svg,1761967891588,68618c76952aa4c5f2623bb010514871688960bb3b9edbcda0eab7eb75442054
static/media/OdiSVGlogo.f0834bb1.svg,1761967891583,3ec1cab31a32db378894d796afedaee7c35f8ff99dfb1039b0bb757225a47235
static/media/practice-icon.bf603115.svg,1761967891588,27b6a729d91914d899f4b3c1f817e26ac58d2ec0be54dc9b93c01f28adcdd00c
static/media/GrayscalePKLogo.6bb74404.svg,1761967891583,576b38300e49eda6407adce420001e7ad0333cca317eb668aff457c3258dcca2
static/media/getFetch.2b2b7da4.cjs,1761967891581,b2d82abee5b8af22b81d67fc20b3feef1eaaf04585dbc24ec755e3304c469096
static/media/dashboard.8ec7624b.svg,1761967891583,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1
static/media/exam-icon.10f48851.svg,1761967891588,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693
static/media/feature-2.36f8d7e2.webp,1761967891581,fc1c038517abf3b731ff3a4675cbaf1a6aa1150ca970762dd0ffc4199b92b75c
static/media/delete-icon.da38c0f4.svg,1761967891595,8078772ee88a0588989eec477da1ca949430f3f06efaa9c2db860b74c65f6722
static/media/class-icon.6afd34b5.svg,1761967891588,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e
static/media/classes.3b73dba0.svg,1761967891585,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d
static/media/Checkmark.1356376c.svg,1761967891595,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027
static/media/batch.3fcff66e.svg,1761967891585,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862
static/media/auth-BG.2835584f.svg,1761967891580,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf
static/media/batch-icon.bf664771.svg,1761967891589,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0
static/media/mul-res-icon.8ef3b097.svg,1761967891589,1f0a79350cb5546361ef02af1657ad36efeff833fd7bb61db88a20e127a290b4
static/js/4.568469c1.chunk.js,1761967891598,7f998d124bddb5cb8e916a7bb559ddd2f5c133920e79651382bbabf25affc9c4
static/media/add-circle.0011f2bc.svg,1761967891588,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17
static/js/4.568469c1.chunk.js.map,1761967891628,f626752d2d2cffe76387c84c314248f1ab02d9c6a79a16442a98e124c8f7d5fa
static/js/runtime-main.2bdeab81.js.map,1761967891625,a6cd518ca4773cf5562057dad7acb281edac1b802572abcdc6ee19c33f02b744
static/js/3.d75ced33.chunk.js.map,1761967891628,a12fbfb03ced36f6a8c055bf8b3961a9170b3676c8e4f545921152b23e9bc4dd
static/js/3.d75ced33.chunk.js,1761967891595,c68f66b973c4099ec168a05edb6212303bf31b91c57a2adc0a46595d31262355
static/js/runtime-main.2bdeab81.js,1761967891595,5c04066aee33f757af11aff4783499664f995e641476c3c1552c373bf87171bb
static/js/2.a43d95bf.chunk.js.LICENSE.txt,1761967891596,9c84bc4d2f8584d32d75e01e0317e22af1e39f5ac5ded3e2e4e34984704c172b
static/media/logo.0dd03933.png,1761967891583,b9716ed1f565a052edc1154a207334de81856339e8ca43d5d8f51041f3785085
static/media/feature-1.ea5c34ea.svg,1761967891581,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8
static/media/feature-3.3d5d81e9.svg,1761967891581,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b
static/js/main.e17b1c66.chunk.js,1761967891590,7881f9d9a302a7f12898e4731f9aff65871aae813e3be47dbeaa5764d3e5b8e4
static/css/main.b90ebd71.chunk.css,1761967891590,47c0c4a15920e9cea3ceba32d4bc59829a376a7f4347c15b82d7e8878d59008d
static/css/4.629184c9.chunk.css,1761967891598,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab
static/css/2.561a8df6.chunk.css,1761967891595,c87247fc5cf38902aee0ee29244f6ab0c4bc14e5a0a1d6860cd771410dc826f8
static/css/3.6c5a3051.chunk.css,1761967891595,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1
static/css/main.b90ebd71.chunk.css.map,1761967891600,bff960067cfb59c88b8ec495e5b5334532e05ae898ad3f3a78ee293f74fb7855
static/js/main.e17b1c66.chunk.js.map,1761967891604,e6ee670831252a3e7da77d48ece9502f92c19fd2d0596cf366bb0f597c320ca2
static/css/4.629184c9.chunk.css.map,1761967891625,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205
static/css/3.6c5a3051.chunk.css.map,1761967891604,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796
static/css/2.561a8df6.chunk.css.map,1761967891600,ed9f46fc5b36bd835967cfd533fb33fd9ceec9c3aadcbe6c12bfb90b3ad1bc83
static/js/2.a43d95bf.chunk.js,1761967891596,e4a75b184cbb51bd95baa7cb97581e00e72d83a37f15540e9d8f845c7d90eb6a
static/js/2.a43d95bf.chunk.js.map,1761967891636,154c414780aa8752ddddd74528ff704d5ae7243dcdebea39ea84400667c889c1

View File

@ -117,6 +117,13 @@
border-spacing: 16px 12px;
}
.exam-status-row {
display: flex;
gap: 1.5rem; /* spacing between each status item */
flex-wrap: wrap; /* optional: wrap if small screens */
justify-content: center;
}
.status-item {
display: flex;
align-items: center;

View File

@ -381,17 +381,53 @@ class AttemptExam extends React.Component {
accordions = this.state.sections.map((item, index) => (
<Panel header={item.subject_name} key={index}>
<Row gutter={20}>
{item.questions.map((question) => (
<Col key={question.id}>
<Avatar
className={question.classN}
onClick={this.onQuestionClick.bind(this, question.index)}
>
{question.index}
</Avatar>
</Col>
))}
<Row gutter={[10, 10]}>
{item.questions.map((question) => {
let bgColor = "#bfbfbf"; // Default (Not Visited)
// Match with your computed classN
switch (question.classN) {
case "QuesttionStatusNotVisited":
bgColor = "#bfbfbf"; // gray
break;
case "QuesttionStatusNotAnswered":
bgColor = "#ff4d4f"; // red
break;
case "QuesttionStatusAnswered":
bgColor = "#52c41a"; // green
break;
case "QuesttionStatusReview":
bgColor = "#faad14"; // orange
break;
case "QuesttionStatusAnsweredReview":
bgColor = "#1890ff"; // blue
break;
default:
bgColor = "#bfbfbf";
}
return (
<Col key={question.id}>
<Avatar
style={{
backgroundColor: bgColor,
color: "#fff",
fontWeight: "bold",
cursor: "pointer",
width: 38,
height: 38,
display: "flex",
alignItems: "center",
justifyContent: "center",
border: "1px solid #d9d9d9",
}}
onClick={() => this.onQuestionClick(question.index)}
>
{question.index}
</Avatar>
</Col>
);
})}
</Row>
</Panel>
));
@ -444,55 +480,33 @@ class AttemptExam extends React.Component {
<Layout className="exam-status-card">
<div className="exam-status-section">
<table className="exam-status-table">
<tbody>
<tr>
<td>
<div className="status-item">
<Avatar className="status-avatar not-visited">{total_notVisited}</Avatar>
<span className="status-label">Not Visited</span>
</div>
</td>
<td>
<div className="status-item">
<Avatar className="status-avatar not-answered">{total_notAnswered}</Avatar>
<span className="status-label">Not Answered</span>
</div>
</td>
</tr>
<tr>
<td>
<div className="status-item">
<Avatar className="status-avatar answered">{total_Answered}</Avatar>
<span className="status-label">Answered</span>
</div>
</td>
<td>
<div className="status-item">
<Avatar className="status-avatar to-review">{total_Reviwed}</Avatar>
<span className="status-label">To Review</span>
</div>
</td>
</tr>
<tr>
<td colSpan="2">
<div className="status-item">
<Avatar className="status-avatar answered-review">{total_AnsweredReviwed}</Avatar>
<span className="status-label">Answered & To Review</span>
</div>
</td>
</tr>
</tbody>
</table>
<div className="exam-status-row">
<div className="status-item">
<Avatar className="status-avatar not-visited">{total_notVisited}</Avatar>
<span className="status-label">Not Visited</span>
</div>
<div className="status-item">
<Avatar className="status-avatar not-answered">{total_notAnswered}</Avatar>
<span className="status-label">Not Answered</span>
</div>
<div className="status-item">
<Avatar className="status-avatar answered">{total_Answered}</Avatar>
<span className="status-label">Answered</span>
</div>
<div className="status-item">
<Avatar className="status-avatar to-review">{total_Reviwed}</Avatar>
<span className="status-label">To Review</span>
</div>
<div className="status-item">
<Avatar className="status-avatar answered-review">{total_AnsweredReviwed}</Avatar>
<span className="status-label">Answered & To Review</span>
</div>
</div>
</div>
<div className="exam-accordion">
<Collapse accordion>{accordions}</Collapse>
</div>
</Layout>
</Layout>
</Content>
</Layout>

View File

@ -751,6 +751,7 @@ function loadLiveExams(jsonObj) {
if (jsonObj.pageNumber !== undefined) {
queryStr = queryStr + `&pageNumber=${jsonObj.pageNumber}`;
}
queryStr = queryStr + `&subject_id=-1`;
if (currentUser.language_code === null) {
currentUser.language_code = "En";
currentUser.language_name = "English";