Improved error information to client on both surat-kelulusan and sk-hasil-belajar

This commit is contained in:
Gregorio Chiko Putra 2019-05-16 09:30:36 +07:00
parent 5839165531
commit 30a93871e5
7 changed files with 90 additions and 35 deletions

View File

@ -62,6 +62,7 @@ class SiswaController extends Controller
* Write a new access log * Write a new access log
* *
*/ */
if ($request->src == 'surat-kelulusan')
AccessLog::create(['siswa_id' => $siswa->id, 'src' => $request->src]); AccessLog::create(['siswa_id' => $siswa->id, 'src' => $request->src]);
return $siswa; return $siswa;

47
public/js/app.js vendored
View File

@ -4771,11 +4771,6 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_map__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_map__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _models_Siswa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/Siswa */ "./resources/js/models/Siswa.js"); /* harmony import */ var _models_Siswa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/Siswa */ "./resources/js/models/Siswa.js");
/* harmony import */ var _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../models/AccessLog */ "./resources/js/models/AccessLog.js"); /* harmony import */ var _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../models/AccessLog */ "./resources/js/models/AccessLog.js");
/*
* TODO
*
* - Buat pesan error print
*/
@ -4817,7 +4812,7 @@ var component = {
usbn: [], usbn: [],
unbk: [] unbk: []
}; };
return [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.italic.text-xs', ['Saat ini sudah ', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong', [_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].current.accessed, ' / ', _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].current.total]), ' siswa yang telah melihat surat keterangan hasil belajar.']), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('h1.title', 'Surat Keterangan Hasil Belajar Siswa SMK Bhakti Anindya'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span', 'Silahkan masukkan Nama Lengkap dan NISN kamu di bawah ini.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('form.form', { return [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.italic.text-xs', ['Saat ini sudah ', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong', [_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].current.accessed, ' / ', _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].current.total]), ' siswa yang telah mencetak surat keterangan hasil belajar.']), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('h1.title', 'Surat Keterangan Hasil Belajar Siswa SMK Bhakti Anindya'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span', 'Silahkan masukkan Nama Lengkap dan NISN kamu di bawah ini.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('form.form', {
onsubmit: function onsubmit(e) { onsubmit: function onsubmit(e) {
e.preventDefault(); e.preventDefault();
_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].cariData({ _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].cariData({
@ -4827,21 +4822,30 @@ var component = {
"with": 'hasilBelajar' "with": 'hasilBelajar'
}); });
} }
}, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-grid', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-nisn]', 'NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', [!lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) ? _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa[0] + ' ') : _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn[0] + ' ') : '' : '', 'Nomor Induk Siswa Nasional.'])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', [!lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) && _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir[0] + ' ') : '', 'Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529'])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.form-submit#input-submit[type=submit]', 'Lihat')])), lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current) ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.print-button', { }, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-grid', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-nisn]', 'NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Nomor Induk Siswa Nasional. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) ? _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.siswa[0] + ' ') : _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.nisn[0] + ' ') : '' : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error) && _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].error.errors.tanggalLahir[0] + ' ') : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.form-submit#input-submit[type=submit]', 'Lihat')])), lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current) ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.print-button', {
onclick: function onclick() { onclick: function onclick() {
if (confirm('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?')) { if (confirm('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?')) {
_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].create({ _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].create({
siswaId: _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.id, siswaId: _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.id,
src: 'sk-hasil-belajar' src: 'sk-hasil-belajar'
}).then(function () { }).then(function () {
_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].fetch('sk-hasil-belajar');
window.print(); window.print();
})["catch"](function (e) { })["catch"](function (e) {
//AccessLog.error = JSON.parse(e.message); if (e.code === 0) {
console.log(e, e.message, e.code, e.response); _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error = {
message: e.message,
errors: {
create: ['Terjadi kesalahan saat menghubungkan ke server.']
}
};
} else {
_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error = JSON.parse(e.message);
}
}); });
} }
} }
}, [mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust('⎙'), ' Print']), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('img[src=img/letter-head.jpg]')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', { }, [mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust('⎙'), ' Print']), !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error) ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error.ml-2', _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].error.errors.create[0]) : null, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('img[src=img/letter-head.jpg]')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', {
style: { style: {
height: '1px', height: '1px',
width: '100%', width: '100%',
@ -4933,7 +4937,7 @@ var component = {
src: 'surat-kelulusan' src: 'surat-kelulusan'
}); });
} }
}, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-grid', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-nisn]', 'NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', [!lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error) ? _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.siswa != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.siswa[0] + ' ') : _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.nisn != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.nisn[0] + ' ') : '' : '', 'Nomor Induk Siswa Nasional.'])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', [!lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error) && _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.tanggalLahir != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.tanggalLahir[0] + ' ') : '', 'Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529'])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.form-submit#input-submit[type=submit]', 'Lihat')])), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])(!lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current) ? '.letter' : '.letter.hidden', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.print-button', { }, Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-grid', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-nisn]', 'NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Nomor Induk Siswa Nasional. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error) ? _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.siswa != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.siswa[0] + ' ') : _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.nisn != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.nisn[0] + ' ') : '' : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.form-group', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.input-helper', ['Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529. ', !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error) && _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.tanggalLahir != undefined ? Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.error', _models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].error.errors.tanggalLahir[0] + ' ') : ''])]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.form-submit#input-submit[type=submit]', 'Lihat')])), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])(!lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_2__["default"].current) ? '.letter' : '.letter.hidden', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.print-button', {
onclick: function onclick() { onclick: function onclick() {
window.print(); window.print();
} }
@ -4976,6 +4980,7 @@ __webpack_require__.r(__webpack_exports__);
var model = { var model = {
current: {}, current: {},
error: {},
fetch: function fetch(src) { fetch: function fetch(src) {
return mithril__WEBPACK_IMPORTED_MODULE_0__["default"].request({ return mithril__WEBPACK_IMPORTED_MODULE_0__["default"].request({
method: 'get', method: 'get',
@ -4985,6 +4990,15 @@ var model = {
} }
}).then(function (response) { }).then(function (response) {
model.current = response; model.current = response;
})["catch"](function (e) {
if (e.code === 0) {
model.error = {
message: e.message,
errors: {
accessLog: ['Terjadi kesalahan saat menghubungkan ke server.']
}
};
} else model.error = JSON.parse(e.message);
}); });
}, },
create: function create(data) { create: function create(data) {
@ -5025,9 +5039,16 @@ var model = {
data: data data: data
}).then(function (response) { }).then(function (response) {
model.current = response; model.current = response;
_AccessLog__WEBPACK_IMPORTED_MODULE_1__["default"].fetch('surat-kelulusan'); _AccessLog__WEBPACK_IMPORTED_MODULE_1__["default"].fetch(data.src);
})["catch"](function (e) { })["catch"](function (e) {
model.error = JSON.parse(e.message); if (e.code === 0) {
model.error = {
message: e.message,
errors: {
siswa: ['Terjadi kesalahan saat menghubungkan ke server.']
}
};
} else model.error = JSON.parse(e.message);
}); });
} }
}; };

View File

@ -1,9 +1,3 @@
/*
* TODO
*
* - Buat pesan error print
*/
import m from "mithril" import m from "mithril"
import _isEmpty from "lodash.isempty" import _isEmpty from "lodash.isempty"
import _map from "lodash.map" import _map from "lodash.map"
@ -55,7 +49,7 @@ var component = {
' / ', ' / ',
AccessLog.current.total, AccessLog.current.total,
]), ]),
' siswa yang telah melihat surat keterangan hasil belajar.' ' siswa yang telah mencetak surat keterangan hasil belajar.'
]), ]),
m('h1.title', 'Surat Keterangan Hasil Belajar Siswa SMK Bhakti Anindya'), m('h1.title', 'Surat Keterangan Hasil Belajar Siswa SMK Bhakti Anindya'),
m('span', 'Silahkan masukkan Nama Lengkap dan NISN kamu di bawah ini.'), m('span', 'Silahkan masukkan Nama Lengkap dan NISN kamu di bawah ini.'),
@ -76,19 +70,19 @@ var component = {
m('label.form-label[for=input-nisn]', 'NISN'), m('label.form-label[for=input-nisn]', 'NISN'),
m('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), m('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'),
m('p.input-helper', [ m('p.input-helper', [
'Nomor Induk Siswa Nasional. ',
!_isEmpty(Siswa.error) ? !_isEmpty(Siswa.error) ?
Siswa.error.errors.siswa != undefined ? m('span.error', Siswa.error.errors.siswa[0] + ' ') Siswa.error.errors.siswa != undefined ? m('span.error', Siswa.error.errors.siswa[0] + ' ')
: Siswa.error.errors.nisn != undefined ? m('span.error', Siswa.error.errors.nisn[0] + ' ') : Siswa.error.errors.nisn != undefined ? m('span.error', Siswa.error.errors.nisn[0] + ' ')
: '' : '', : '' : '',
'Nomor Induk Siswa Nasional.',
]), ]),
]), ]),
m('.form-group', [ m('.form-group', [
m('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), m('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'),
m('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), m('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'),
m('p.input-helper', [ m('p.input-helper', [
'Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529. ',
!_isEmpty(Siswa.error) && Siswa.error.errors.tanggalLahir != undefined ? m('span.error', Siswa.error.errors.tanggalLahir[0] + ' ') : '', !_isEmpty(Siswa.error) && Siswa.error.errors.tanggalLahir != undefined ? m('span.error', Siswa.error.errors.tanggalLahir[0] + ' ') : '',
'Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529',
]), ]),
]), ]),
m('button.form-submit#input-submit[type=submit]', 'Lihat'), m('button.form-submit#input-submit[type=submit]', 'Lihat'),
@ -99,11 +93,21 @@ var component = {
onclick: () => { onclick: () => {
if (confirm('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?')) { if (confirm('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?')) {
AccessLog.create({siswaId: Siswa.current.id, src: 'sk-hasil-belajar'}).then(() => { AccessLog.create({siswaId: Siswa.current.id, src: 'sk-hasil-belajar'}).then(() => {
AccessLog.fetch('sk-hasil-belajar');
window.print(); window.print();
}) })
.catch(e => { .catch(e => {
//AccessLog.error = JSON.parse(e.message); if (e.code === 0) {
console.log(e, e.message, e.code, e.response); AccessLog.error = {
message: e.message,
errors: {
create: ['Terjadi kesalahan saat menghubungkan ke server.'],
},
};
}
else {
AccessLog.error = JSON.parse(e.message);
}
}); });
} }
} }
@ -111,6 +115,9 @@ var component = {
m.trust('⎙'), m.trust('⎙'),
' Print', ' Print',
]), ]),
!_isEmpty(AccessLog.error)
? m('span.error.ml-2', AccessLog.error.errors.create[0])
: null,
m('.letter__header', [ m('.letter__header', [
m('img[src=img/letter-head.jpg]'), m('img[src=img/letter-head.jpg]'),
]), ]),

View File

@ -37,19 +37,19 @@ var component = {
m('label.form-label[for=input-nisn]', 'NISN'), m('label.form-label[for=input-nisn]', 'NISN'),
m('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), m('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'),
m('p.input-helper', [ m('p.input-helper', [
'Nomor Induk Siswa Nasional. ',
!_isEmpty(Siswa.error) ? !_isEmpty(Siswa.error) ?
Siswa.error.errors.siswa != undefined ? m('span.error', Siswa.error.errors.siswa[0] + ' ') Siswa.error.errors.siswa != undefined ? m('span.error', Siswa.error.errors.siswa[0] + ' ')
: Siswa.error.errors.nisn != undefined ? m('span.error', Siswa.error.errors.nisn[0] + ' ') : Siswa.error.errors.nisn != undefined ? m('span.error', Siswa.error.errors.nisn[0] + ' ')
: '' : '', : '' : '',
'Nomor Induk Siswa Nasional.',
]), ]),
]), ]),
m('.form-group', [ m('.form-group', [
m('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'), m('label.form-label[for=input-tanggalLahir]', 'Tanggal Lahir'),
m('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'), m('input.form-input.input-text#input-tanggalLahir[name=tanggalLahir][type=text][autocomplete=off][required]'),
m('p.input-helper', [ m('p.input-helper', [
'Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529. ',
!_isEmpty(Siswa.error) && Siswa.error.errors.tanggalLahir != undefined ? m('span.error', Siswa.error.errors.tanggalLahir[0] + ' ') : '', !_isEmpty(Siswa.error) && Siswa.error.errors.tanggalLahir != undefined ? m('span.error', Siswa.error.errors.tanggalLahir[0] + ' ') : '',
'Tanggal lahir dengan format YYYYMMDD. Contoh: untuk tanggal 29 Mei 2000 ditulis 20000529',
]), ]),
]), ]),
m('button.form-submit#input-submit[type=submit]', 'Lihat'), m('button.form-submit#input-submit[type=submit]', 'Lihat'),

View File

@ -2,6 +2,7 @@ import m from "mithril"
var model = { var model = {
current: {}, current: {},
error: {},
fetch: src => { fetch: src => {
return m.request({ return m.request({
method: 'get', method: 'get',
@ -10,6 +11,18 @@ var model = {
}) })
.then(response => { .then(response => {
model.current = response; model.current = response;
})
.catch(e => {
if (e.code === 0) {
model.error = {
message: e.message,
errors: {
accessLog: ['Terjadi kesalahan saat menghubungkan ke server.']
},
};
}
else
model.error = JSON.parse(e.message);
}); });
}, },
create: data => { create: data => {

View File

@ -13,9 +13,18 @@ var model = {
}) })
.then(response => { .then(response => {
model.current = response; model.current = response;
AccessLog.fetch('surat-kelulusan'); AccessLog.fetch(data.src);
}) })
.catch(e => { .catch(e => {
if (e.code === 0) {
model.error = {
message: e.message,
errors: {
siswa: ['Terjadi kesalahan saat menghubungkan ke server.'],
},
};
}
else
model.error = JSON.parse(e.message); model.error = JSON.parse(e.message);
}); });
}, },

View File

@ -19,10 +19,14 @@ Route::post('/hasil_belajar', 'HasilBelajarController')->name('hasilBelajar.retr
Route::get('/access_log', 'AccessLogController')->name('accessLog.fetch'); Route::get('/access_log', 'AccessLogController')->name('accessLog.fetch');
Route::post('/access_log', function(Request $request) { Route::post('/access_log', function(Request $request) {
return response()->json([], 404); try {
/*
* Write a new access log
*
*/
App\AccessLog::create(['siswa_id' => $request->siswaId, 'src' => $request->src]); App\AccessLog::create(['siswa_id' => $request->siswaId, 'src' => $request->src]);
} catch (Exception $e) {
return response()->json([
'message' => $e->getMessage(),
'errors' => [
'create' => ['Telah terjadi kesalahan pada server.'],
],
], (int)$e->getCode() ?: 500);
}
})->name('accessLog.create'); })->name('accessLog.create');