허진호

dd

...@@ -61,6 +61,23 @@ function showRequest(request_rows){ ...@@ -61,6 +61,23 @@ function showRequest(request_rows){
61 61
62 } 62 }
63 63
64 +function showImage(request_rows){
65 + var image = request_rows.result;
66 +
67 + $("#student-image-table > tbody").empty();
68 + for(var i = 0; i < image.length; i++){
69 + var bytes, blob;
70 + bytes = new Uint8Array(image[i].image);
71 + blob = new Blob([bytes], {type:'image/bmp'});
72 + var url = URL.createObjectURL(blob);
73 +
74 + if($('#request' + image[i].image).length <= 0){
75 + $("#student-image-table > tbody:last").append('<tr id="request' + image[i].image + '"><td><img src="' + url + '"/></td>' + '<td>' + image[i].timestamp + '</td></tr>')
76 + }
77 + }
78 +
79 +}
80 +
64 function checkAttendance(){ 81 function checkAttendance(){
65 var lecture_id = '0' 82 var lecture_id = '0'
66 var url = '/lecture_student/' + lecture_id; 83 var url = '/lecture_student/' + lecture_id;
...@@ -129,6 +146,31 @@ function checkRequest(){ ...@@ -129,6 +146,31 @@ function checkRequest(){
129 showRequest(request_rows) 146 showRequest(request_rows)
130 } 147 }
131 148
149 +function checkImage(){
150 + var lecture_id = '0'
151 + var url = '/admin/image/' + lecture_id;
152 +
153 + var request_rows;
154 + $.ajax({
155 + async: false,
156 + type: "GET",
157 + url: url,
158 + success: function(rows){
159 + request_rows = rows
160 + return 0;
161 + },
162 + error: function(xhr, status, err){
163 + var err = '';
164 + $.each(JSON.parse(xhr.responseText), function(i, item){
165 + err += '<li>' + item.msg + '</li>';
166 + });
167 + return 0;
168 + }
169 + });
170 +
171 + showImage(request_rows)
172 +}
173 +
132 function addRequest(){ 174 function addRequest(){
133 var lecture_id = '0' 175 var lecture_id = '0'
134 var url = '/admin/request/' + lecture_id; 176 var url = '/admin/request/' + lecture_id;
......
...@@ -128,6 +128,28 @@ router.post('/request/:lecture_id', function(req, res, next) { ...@@ -128,6 +128,28 @@ router.post('/request/:lecture_id', function(req, res, next) {
128 }); 128 });
129 }); 129 });
130 130
131 +router.get('/image/:lecture_id', function(req, res, next) {
132 + var lecture_id = req.params.lecture_id;
133 +
134 + pool.getConnection(function(err, conn){
135 + conn.query('select r.image, r.width AS width, r.height AS height, CONVERT_TZ(r.timestamp, "+00:00", "+09:00") AS timestamp FROM undefined_image r WHERE (r.lecture_id=?) AND (DATE(timestamp) = CURDATE()) ORDER BY timestamp DESC;', [lecture_id], function (err, rows){
136 + if (err){
137 + console.log(err);
138 + return res.status(500).json({error: err});
139 + }
140 + if (!rows) return res.status(400).json({error: 'not found'});
141 + var msg = {
142 + status: 'success',
143 + err: '',
144 + result: rows,
145 + length: rows.length
146 + };
147 + res.json(msg);
148 + });
149 + conn.release();
150 + });
151 +});
152 +
131 153
132 154
133 module.exports = router; 155 module.exports = router;
......
...@@ -34,6 +34,18 @@ block content ...@@ -34,6 +34,18 @@ block content
34 th(scope="col") 출석 상태 34 th(scope="col") 출석 상태
35 th(scope="col") 출석 처리 35 th(scope="col") 출석 처리
36 tbody(id="requestTbody") 36 tbody(id="requestTbody")
37 + <br/>
38 + <br/>
39 + button(type="button" class="btn btn-primary" onclick="checkUndefinedImage()") 미인증 사진 확인
40 + <br/>
41 + <br/>
42 + div(class="container-fluid-3")
43 + table(id="student-image-table" class="table")
44 + thead(class="thead-dark")
45 + tr(class="col")
46 + th(scope="col") 사진
47 + th(scope="col") 등록 시간
48 + tbody(id="imageTbody")
37 49
38 50
39 51
......