Attendance/templates/homeroom.html

373 lines
No EOL
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Attendance 點名系統 2.0</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="/static/allpages.css">
<link rel="stylesheet" href="/static/homeroom.css">
<link rel="shortcut icon" type="image/x-icon" href="/static/favicon.ico" />
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-H6D61RSBHR"></script>
<script src="/static/gtag.js"></script>
</head>
<body>
<div class="showTime"><span id="showTime"></span></div>
{% include 'sidebar.html' %}
<div class="container">
<h1 class="margin-top">Homeroom View | 班級主頁</h1>
<h2 class="margin-top">{{currRoom[0]}}{{currRoom[1]}}</h2>
<h2>[{{currDate}}]</h2>
<select name="date" id="date" class="form-select logout" onchange="chgDate();">
{% for date in range(dates|length) %}
{% if dates[date][0] == currDate %}
{% if date-2 >= 0 %}<option value="{{dates[date-2][0]}}">{{dates[date-2][0]}}</option>{% endif %}
{% if date-1 >= 0 %}<option value="{{dates[date-1][0]}}">{{dates[date-1][0]}}</option>{% endif %}
<option value="{{dates[date][0]}}" selected="selected">{{dates[date][0]}} ★</option>
{% for i in range(1,5) %}
{% if date+i < dates|length %}<option value="{{dates[date+i][0]}}">{{dates[date+i][0]}}</option>{%endif%}
{% endfor %}
{% endif %}
{% endfor %}
</select>
<form action="/manage/homeroom_confirm" id="homeroom_confirm" method="post">
<input type="hidden" name="date" value="{{currDate}}">
<input type="hidden" name="homeroom" value="{{currRoom[0]}}^{{currRoom[1]}}">
<input type="hidden" id="hrCfrm-sign" name="signatureData" value="">
<input type="hidden" id="hrCfrm-notes" name="notes" value="">
</form>
<div class="col">
<div class="sticky-top" style="background-color:white;">
<div class="row title">
<div class="col">班級</div>
<div class="col">座號</div>
<div class="col">姓名</div>
<div class="col">英文姓名</div>
{% for i in periods %}
<div class="col" {% if currPeriod==i %}style="background-color: #ffdf81;"{%endif%}>{{i}}</div>
{% endfor %}
</div>
<div class="row title">
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
{% for i in periods %}
<div class="col" {% if currPeriod==i %}style="background-color: #ffdf81;"{%endif%}>
{{schedule[i]['subject']}} {% if schedule[i]['special'] == True %} <span class="text-red">(換)</span> {% endif %}</div>
{% endfor %}
</div>
<div class="row title">
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
{% for i in periods %}
<div class="col" {% if currPeriod==i %}style="background-color: #ffdf81;"{%endif%}>{{schedule[i]['teacher']}}</div>
{% endfor %}
</div>
</div>
{% for i in students %}
<div class="row">
<div class="col">{{currRoom[0]}}{{currRoom[1]}}</div>
<div class="col">{{ i[0] }}</div>
<div class="col">{{ i[1] }}</div>
<div class="col">{{ i[2] }}</div>
{% for j in periods %}
<div class="col view-{{j}}" {% if currPeriod==j %}style="background-color: #ffdf81;"{%endif%}>
{% if schedule[j]['subject'] == 'GP' %}
{% for k in submission[j] %}
{% if k!='notes' and i[0] in absentData[j] %}
{% if absentData[j][i[0]]['status'] == 'L' %}
<p class="highlightAbs n-3 view-n-{{i[0]}}">𝜑</p>
{% elif absentData[j][i[0]]['status'] == 'K' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'G' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'S' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'F' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'P' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'O' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% else %}
<p class="highlightAbs n-2 view-n-{{i[0]}}">{{absentData[j][i[0]]['status']}}</p>
{% endif %}
<p class="highlightAbs">{{absentData[j][i[0]]['note']}}</p>
{% elif studGP[i[0]][schedule[j]['teacher']] == k %}
<p class="highlightAbs n-1 view-n-{{i[0]}}">V</p>
{% if j in idvDS and i[0] in idvDS[j] %}
<p class="highlightAbs n-2">{{idvDS[j][i[0]]}}</p>
{% endif %}
{% else %}
<p class="highlightAbs view-n-{{i[0]}}"></p>
{% endif %}
{% endfor %}
{% else %}
{% if j in submission or j in absentData %}
{% if i[0] in absentData[j] %}
{% if absentData[j][i[0]]['status'] == 'L' %}
<p class="highlightAbs n-3 view-n-{{i[0]}}">𝜑</p>
{% elif absentData[j][i[0]]['status'] == 'K' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'G' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'S' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'F' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'P' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% elif absentData[j][i[0]]['status'] == 'O' %}
<p class="highlightAbs n-2 view-n-{{i[0]}}"></p>
{% else %}
<p class="highlightAbs n-2 view-n-{{i[0]}}">{{absentData[j][i[0]]['status']}}</p>
{% endif %}
<p class="highlightAbs">{{absentData[j][i[0]]['note']}}</p>
{% else %}
{% if j in submission %}
<p class="highlightAbs n-1 view-n-{{i[0]}}">V</p>
{% if j in idvDS and i[0] in idvDS[j] %}
<p class="highlightAbs n-2">{{idvDS[j][i[0]]}}</p>
{% endif %}
{% else %}
<div class="input-{{j}}-{{i[0]}}">
<input type="checkbox" class="tobeform 2^{{j}}^{{i[0]}} late" id="late^{{j}}^{{i[0]}}"
onchange="unCheckAbs('{{j}}^{{i[0]}}')">
<input type="checkbox" class="tobeform 1^{{j}}^{{i[0]}} absent" id="absent^{{j}}^{{i[0]}}"
onchange="unCheckLate('{{j}}^{{i[0]}}')">
</div>
{% endif %}
{% endif %}
{% endif %}
{% endif %}
</div>
{% endfor %}
</div>
{% endfor %}
<div class="row">
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
{% for i in periods %}
<div id="btns-{{i}}" class="col" {% if currPeriod==i %} style="background-color: #ffdf81;" {% endif %}>
{% if (schedule[i]['subject'] == 'GP' or 'c' in submission) or (i in submission and submission[i]['dscfrm'] == True) %}
<button class="btn btn-primary afterSelButton" disabled="disabled"></button>
{% elif i in submission and submission[i]['dscfrm'] != True %}
<button class="btn btn-warning afterSelButton" onclick="showSelDS('{{i|string}}')">定心<br>{{schedule[i]['subject']}}</button>
{% else %}
<button class="btn btn-primary afterSelButton"
onclick="afterSelAbs('{{i|string}}', 'newSubmit')">Confirm<br>{{schedule[i]['subject']}}</button>
{% endif %}
</div>
{% endfor %}
</div>
{% for i in range(7) %}
<div class="row" {%if i==0%}style="border-top: 2px solid black;"{%endif%} {% if i == 6 %} style="border-bottom: 2px solid black;" {% endif %}>
<div class="col"></div>
<div class="col"></div>
<div class="col" style="font-weight: bold;">{{dstext[i]}}</div>
<div class="col">{{dsboard[i]}}</div>
{% for j in periods %}
{% if j in submission and schedule[j] != 'GP' %}
<div class="col" {% if currPeriod==j %} style="background-color: #ffdf81;" {% endif %}>
{{submission[j]['ds' + (i+1)|string]}}</div>
{% else %}
<div class="col" {% if currPeriod==j %} style="background-color: #ffdf81;" {% endif %}></div>
{% endif %}
{% endfor %}
</div>
{% endfor %}
<form action="/manage/homeroom_abs" id="postHomeroomAbs" hidden="hidden" method="post">
<input type="text" id="HR-date" name="date" value="{{currDate}}">
<input type="text" id="HR-period" name="period" value="">
<input type="text" id="HR-signatureData" name="signatureData" value="">
<input type="text" id="HR-notes" name="notes" value="">
<input type="text" id="HR-homeroom" name="homeroom" value="{{currRoom[0]}}^{{currRoom[1]}}">
</form>
<form action="/manage/homeroom_ds" id="postHomeroomDS" hidden="hidden" method="POST">
<input type="text" id="DS-date" name="date" value="{{currDate}}">
<input type="text" id="DS-period" name="period" value="">
<input type="text" id="DS-ds1" name="ds^1" value="">
<input type="text" id="DS-ds2" name="ds^2" value="">
<input type="text" id="DS-ds3" name="ds^3" value="">
<input type="text" id="DS-ds4" name="ds^4" value="">
<input type="text" id="DS-ds5" name="ds^5" value="">
<input type="text" id="DS-ds6" name="ds^6" value="">
<input type="text" id="DS-ds7" name="ds^7" value="">
<input type="text" id="DS-notes" name="notes" value="">
<input type="text" id="DS-homeroom" name="homeroom" value="{{currRoom[0]}}^{{currRoom[1]}}">
</form>
{% if 'c' in submission %}
<button class="btn btn-primary margin-top afterSelButton" onclick="homeroomCfrm()" disabled="disabled">
Homeroom Teacher Already Confirmed | 班導已確認</button>
{% else %}
<button class="btn btn-primary margin-top afterSelButton" onclick="homeroomCfrm()">Homeroom
Teacher Confirm | 班導確認</button>
{% endif %}
<div id="finalCheck" class="modal fade" id="staticBackdrop" data-bs-backdrop="static"
data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-xl">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="staticBackdropLabel">Please Sign Below 請在下方簽名</h5>
</div>
<div class="modal-body">
<h3>Period: <span id="showSignPeriod"></span></h3>
<h3>Subject: <span id="showSignSubjectName"></h3>
<div class="alert alert-warning margin-top" id="allPresentWarning" role="alert"
hidden="hidden">
<h4 class="alert-heading">請確認是否全班全到Please check if everyone is present!</h4>
</div>
<div class="forSign"><canvas id="signature_pad"></canvas></div>
<h3 class="margin-top">Notes 備註欄</h3>
<input type="textarea" class="form-control" name="notes" id="subjectNotes"
placeholder="Enter Notes 請輸入備註" style="width: 80%; margin-left: 10%;" row="3">
</div>
<div class="modal-footer">
<div class="row">
<div class="col"><button class="btn btn-secondary" type="button" onclick="signaturePad.clear()">Clear Signature 清除簽名</button></div>
<div class="col"><button type="button" class="btn btn-danger" onclick="location.reload();">Cancel 取消</button></div>
<div class="col"><button type="button" class="btn btn-primary" onclick="submitForm()">Submit 提交</button></div>
</div>
</div>
</div>
</div>
</div>
<div id="dsCheck" class="modal fade" id="staticBackdrop" data-bs-backdrop="static"
data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-xl">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="staticBackdropLabel">定心專案 DS</h5>
</div>
<div class="modal-body">
<div class="ds">
{% for i in range(dsboard|length) %}
<div class="row dsboard" style="width: 40%; margin-left: 30%;">
<div class="col col-4">
<span>{{dsboard[i]}}</span>
</div>
{% for j in range(6) %}
<div class="col">
<input class="form-check-input" type="radio" name="ds{{i+1}}" id="ds{{i+1}}{{j}}" value="{{j}}" {%if j==5%}checked{%endif%}>
<label class="form-check-label" for="ds{{i+1}}{{j}}">{{j}}</label>
</div>
{% endfor %}
</div>
{% endfor %}
<div id="indds" class="row margin-top" style="width: 90%; margin-left: 5%">
<div class="col-2">
<select class="form-select" name="dsnumbers" id="dsnumbersel">
<option value="">選擇號碼</option>
{% for i in students %}
<option value="{{i[0]}}-{{i[1]}}-{{i[2]}}">{{i[0]}}-{{i[1]}}-{{i[2]}}</option>
{% endfor %}
</select>
</div>
<div class="col-4">
<select name="dsoffense" id="dsoffensesel" class="form-select">
<option value="">選擇違規事由</option>
{% for i in dsoffenses %}
<option value="{{i}}-{{dsoffenses[i]}}">{{i}}-{{dsoffenses[i]}}</option>
{% endfor %}
</select>
</div>
<div class="col-5">
<input type="text" class="form-control" name="dsoffenseother" id="dsoffenseother" placeholder="Other">
</div>
<div class="col noborder"><button class="btn btn-secondary nomargin-top" onclick="addDS()"><i class="fas fa-plus"></i></button></div>
</div>
<div id="inddsview" class="margin-top" style="width: 90%; margin-left: 5%;"><div class="col"></div></div>
</div>
<h3 class="margin-top">Notes 備註欄</h3>
<input type="textarea" class="form-control" name="notes" id="dsNotesEnter"
placeholder="Enter Notes 請輸入備註" style="width: 80%; margin-left: 10%;" row="3">
</div>
<div class="modal-footer">
<div class="row">
<div class="col"><button type="button" class="btn btn-danger" onclick="location.reload();">Cancel 取消</button></div>
<div class="col"><button type="button" class="btn btn-primary" onclick="submitDSForm()">Submit 提交</button></div>
</div>
</div>
</div>
</div>
</div>
{% for c in range(periods|length + 1) %}
{% if c % 4 == 0 %}
<div class="row signatures">
{% endif %}
<div class="col half">
{% if c == 0 %}
<div class="row needborder">Homeroom Teacher 導師</div>
{% if 'c' in submission %}
<div class="row"><img src="{{submission['c']['signature']}}" alt=""></div>
<div class="row">備註: {{submission['c']['notes']}}</div>
{% else %}
<div class="row"><span style="color:red;">No Signature 導師尚未簽名</span></div>
{% endif %}
{% else %}
{% if schedule[periods[c-1]]['subject'] == 'GP' %}
{% if periods[c-1] in submission %}
{% for i in submission[periods[c-1]] %}
{% if i != 'notes' %}
<div class="row needborder">{{periods[c-1]}}:
{{schedule[periods[c-1]]['teacher']}}: {{i}}</div>
<div class="row"><img src="{{submission[periods[c-1]][i]['signature']}}" alt="">
{% if loop.index == loop.length-1 %}
<br>備註: {{submission[periods[c-1]]['notes']}}
{% endif %}
</div>
{% endif %}
{% endfor %}
{% else %}
<div class="row needborder">{{periods[c-1]}}:
{{schedule[periods[c-1]]['teacher']}}: {{i}}: No
Signature
</div>
<div class="row"></div>
{% endif %}
{% else %}
<div class="row needborder">{{periods[c-1]}}: {{schedule[periods[c-1]]['subject']}}:
{{schedule[periods[c-1]]['teacher']}}
</div>
{% if periods[c-1] in submission %}
<div class="row"><img src="{{submission[periods[c-1]]['signature']}}" alt=""><br>備註:
{{submission[periods[c-1]]['notes']}}</div>
{% endif %}
{% endif %}
{% endif %}
</div>
{% if c % 4 == 3 %}
</div>
{% endif %}
{% endfor %}
</div>
{% include 'footer.html' %}
</div>
<script src="https://cdn.jsdelivr.net/npm/signature_pad@2.3.2/dist/signature_pad.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous"></script>
<script>
var periodData = {}
{% for i in periods %}
periodData['{{i}}'] = '{{ schedule[i]['subject'] }}'
{% endfor %}
</script>
<script src="/static/pagejs/homeroom.js"></script>
<script src="/static/time.js"></script>
</body>
</html>