From f8d4d1df98e16107844fd08d8e563aa8aae4ed30 Mon Sep 17 00:00:00 2001 From: Gregorio Chiko Putra Date: Thu, 16 May 2019 09:55:49 +0700 Subject: [PATCH] sk-hasil-belajar can only be printed once --- app/Siswa.php | 5 ++ public/js/app.js | 23 ++++++++- resources/js/components/SKHasilBelajar.js | 5 +- resources/js/models/AccessLog.js | 61 ++++++++++++++++------- 4 files changed, 71 insertions(+), 23 deletions(-) diff --git a/app/Siswa.php b/app/Siswa.php index 66e1a9e..6af2873 100644 --- a/app/Siswa.php +++ b/app/Siswa.php @@ -22,6 +22,11 @@ class Siswa extends Model 'lulus' => 'boolean', ]; + public function accessLog() + { + return $this->hasMany('App\AccessLog'); + } + public function hasilBelajar() { return $this->hasOne('App\HasilBelajar'); diff --git a/public/js/app.js b/public/js/app.js index 6ccc65e..228112b 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -4819,10 +4819,10 @@ var component = { nisn: e.target.elements.nisn.value, tanggalLahir: e.target.elements.tanggalLahir.value, src: 'sk-hasil-belajar', - "with": 'hasilBelajar' + "with": ['hasilBelajar', 'accessLog'] }); } - }, 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', { + }, 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.'), !lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.access_log) ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('button.print-button', { onclick: function onclick() { if (confirm('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?')) { _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].create({ @@ -4982,6 +4982,7 @@ var model = { current: {}, error: {}, fetch: function fetch(src) { + model.current = {}; return mithril__WEBPACK_IMPORTED_MODULE_0__["default"].request({ method: 'get', url: '/api/access_log', @@ -5009,6 +5010,24 @@ var model = { }).then(function (response) { model.current = response; }); + }, + search: function search(nisn) { + model.current = {}; + mithril__WEBPACK_IMPORTED_MODULE_0__["default"].request({ + method: 'get', + url: '/api/access_log/' + nisn + }).then(function (response) { + mode.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); + }); } }; /* harmony default export */ __webpack_exports__["default"] = (model); diff --git a/resources/js/components/SKHasilBelajar.js b/resources/js/components/SKHasilBelajar.js index 2a773ba..70df8bb 100644 --- a/resources/js/components/SKHasilBelajar.js +++ b/resources/js/components/SKHasilBelajar.js @@ -61,7 +61,7 @@ var component = { nisn: e.target.elements.nisn.value, tanggalLahir: e.target.elements.tanggalLahir.value, src: 'sk-hasil-belajar', - with: 'hasilBelajar', + with: ['hasilBelajar', 'accessLog'], }); } }, @@ -89,7 +89,8 @@ var component = { ])), _isEmpty(Siswa.current) ? null : m('.letter', [ m('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), - m('button.print-button', { + !_isEmpty(Siswa.current.access_log) ? null + : m('button.print-button', { onclick: () => { if (confirm('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?')) { AccessLog.create({siswaId: Siswa.current.id, src: 'sk-hasil-belajar'}).then(() => { diff --git a/resources/js/models/AccessLog.js b/resources/js/models/AccessLog.js index 520db09..32057ee 100644 --- a/resources/js/models/AccessLog.js +++ b/resources/js/models/AccessLog.js @@ -4,26 +4,27 @@ var model = { current: {}, error: {}, fetch: src => { + model.current = {}; return m.request({ method: 'get', url: '/api/access_log', data: { src }, }) - .then(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); - }); + .then(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 => { return m.request({ @@ -31,10 +32,32 @@ var model = { url: '/api/access_log', data, }) - .then(response => { - model.current = response; - }); + .then(response => { + model.current = response; + }); }, -} + search: nisn => { + model.current = {}; + m.request({ + method: 'get', + url: '/api/access_log/' + nisn, + }) + .then(response => { + mode.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); + }); + }, +}; export default model;