From 193a5d3b6ceaa8c1076f4a6e29e3228069e36127 Mon Sep 17 00:00:00 2001 From: Gregorio Chiko Putra Date: Fri, 17 May 2019 12:01:23 +0700 Subject: [PATCH] Added page to print sk-hasil-belajar freely --- app/Console/Commands/PendopoPassword.php | 43 +++ app/Http/Controllers/SiswaController.php | 3 +- app/Http/Kernel.php | 1 + app/Http/Middleware/IzinMasukPendopo.php | 35 +++ public/js/app.js | 234 ++++++++++++---- resources/js/app.js | 111 ++++---- resources/js/components/Pendopo.js | 318 ++++++++++++++++++++++ resources/js/components/SKHasilBelajar.js | 2 +- resources/views/main.blade.php | 4 +- resources/views/pendopo.blade.php | 21 ++ routes/web.php | 4 + 11 files changed, 670 insertions(+), 106 deletions(-) create mode 100644 app/Console/Commands/PendopoPassword.php create mode 100644 app/Http/Middleware/IzinMasukPendopo.php create mode 100644 resources/js/components/Pendopo.js create mode 100644 resources/views/pendopo.blade.php diff --git a/app/Console/Commands/PendopoPassword.php b/app/Console/Commands/PendopoPassword.php new file mode 100644 index 0000000..58c2b20 --- /dev/null +++ b/app/Console/Commands/PendopoPassword.php @@ -0,0 +1,43 @@ +toDateString().'ba'), 0, 6); + } +} diff --git a/app/Http/Controllers/SiswaController.php b/app/Http/Controllers/SiswaController.php index a2cd017..1fac937 100644 --- a/app/Http/Controllers/SiswaController.php +++ b/app/Http/Controllers/SiswaController.php @@ -46,8 +46,7 @@ class SiswaController extends Controller } $siswa = Siswa::where('nisn', $request->nisn) - ->where('tanggal_lahir', $tanggalLahir) - ->first(); + ->where('tanggal_lahir', $tanggalLahir); if ($request->with !== null) $siswa = $siswa->with($request->with); diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index a3d8c48..3041d8b 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -60,6 +60,7 @@ class Kernel extends HttpKernel 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + 'pendopo' => \App\Http\Middleware\IzinMasukPendopo::class, ]; /** diff --git a/app/Http/Middleware/IzinMasukPendopo.php b/app/Http/Middleware/IzinMasukPendopo.php new file mode 100644 index 0000000..68b49fe --- /dev/null +++ b/app/Http/Middleware/IzinMasukPendopo.php @@ -0,0 +1,35 @@ +toDateString().'ba'), 0, 6); + header('Cache-Control: no-cache, must-revalidate, max-age=0'); + $has_supplied_credentials = !(empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PW'])); + $is_not_authenticated = ( + !$has_supplied_credentials || + $_SERVER['PHP_AUTH_USER'] != $AUTH_USER || + $_SERVER['PHP_AUTH_PW'] != $AUTH_PASS + ); + if ($is_not_authenticated) { + header('HTTP/1.1 401 Authorization Required'); + header('WWW-Authenticate: Basic realm="Access denied"'); + exit; + } + return $next($request); + } +} diff --git a/public/js/app.js b/public/js/app.js index cc7e894..d6034fe 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -4744,64 +4744,201 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var mithril__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mithril */ "./node_modules/mithril/mithril.mjs"); /* harmony import */ var _components_SuratKelulusan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/SuratKelulusan */ "./resources/js/components/SuratKelulusan.js"); /* harmony import */ var _components_SKHasilBelajar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/SKHasilBelajar */ "./resources/js/components/SKHasilBelajar.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 _components_Pendopo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/Pendopo */ "./resources/js/components/Pendopo.js"); +/* harmony import */ var _models_Siswa__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./models/Siswa */ "./resources/js/models/Siswa.js"); +/* harmony import */ var _models_AccessLog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./models/AccessLog */ "./resources/js/models/AccessLog.js"); -mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route.prefix('#'); -mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route(document.body.querySelector('.container'), '/', { - '/': _components_SuratKelulusan__WEBPACK_IMPORTED_MODULE_1__["default"], - '/hasil-belajar': _components_SKHasilBelajar__WEBPACK_IMPORTED_MODULE_2__["default"] -}); // Below is to handle Ctrl+P or MouseR->Print -window.addEventListener("beforeprint", function () { - if (mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route.get() === '/hasil-belajar') { - // If the print button did not exists, show nothing when printing - if (document.body.querySelector('button.print-button') === null) document.body.style.display = 'none';else { - if (!component.confirmPrint) { - alert('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?'); - component.confirmPrint = 1; - _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].create({ - siswaId: _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.id, - src: 'sk-hasil-belajar' - }).then(function () { - _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].fetch('sk-hasil-belajar'); - })["catch"](function (e) { - if (e.code === 0) { - _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); - } - }); + +if (document.body.querySelector('.container#pendopo') === null) { + mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route.prefix('#'); + mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route(document.body.querySelector('.container'), '/', { + '/': _components_SuratKelulusan__WEBPACK_IMPORTED_MODULE_1__["default"], + '/hasil-belajar': _components_SKHasilBelajar__WEBPACK_IMPORTED_MODULE_2__["default"] + }); // Below is to handle Ctrl+P or MouseR->Print + + window.addEventListener("beforeprint", function () { + if (mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route.get() === '/hasil-belajar') { + // If the print button did not exists, show nothing when printing + if (document.body.querySelector('button.print-button') === null) document.body.style.display = 'none';else { + if (!component.confirmPrint) { + alert('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?'); + component.confirmPrint = 1; + _models_AccessLog__WEBPACK_IMPORTED_MODULE_5__["default"].create({ + siswaId: _models_Siswa__WEBPACK_IMPORTED_MODULE_4__["default"].current.id, + src: 'sk-hasil-belajar' + }).then(function () { + _models_AccessLog__WEBPACK_IMPORTED_MODULE_5__["default"].fetch('sk-hasil-belajar'); + })["catch"](function (e) { + if (e.code === 0) { + _models_AccessLog__WEBPACK_IMPORTED_MODULE_5__["default"].error = { + message: e.message, + errors: { + create: ['Terjadi kesalahan saat menghubungkan ke server.'] + } + }; + } else { + _models_AccessLog__WEBPACK_IMPORTED_MODULE_5__["default"].error = JSON.parse(e.message); + } + }); + } } } - } -}); -window.addEventListener("afterprint", function () { - if (mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route.get() === '/hasil-belajar') { - // Give back the whole document.body - if (document.body.querySelector('button.print-button') === null) document.body.style.display = 'block'; // Hide the print button + }); + window.addEventListener("afterprint", function () { + if (mithril__WEBPACK_IMPORTED_MODULE_0__["default"].route.get() === '/hasil-belajar') { + // Give back the whole document.body + if (document.body.querySelector('button.print-button') === null) document.body.style.display = 'block'; // Hide the print button - if (document.body.querySelector('button.print-button') !== null) document.body.querySelector('button.print-button').style.display = 'none'; // To redraw the content to prevent printing + if (document.body.querySelector('button.print-button') !== null) document.body.querySelector('button.print-button').style.display = 'none'; // To redraw the content to prevent printing - var nisn = document.body.querySelector('input[name=nisn]').value, - tanggalLahir = document.body.querySelector('input[name=tanggalLahir]').value; - _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].cariData({ - nisn: nisn, - tanggalLahir: tanggalLahir, - src: 'sk-hasil-belajar', - "with": ['hasilBelajar', 'accessLog'] - }); + var nisn = document.body.querySelector('input[name=nisn]').value, + tanggalLahir = document.body.querySelector('input[name=tanggalLahir]').value; + _models_Siswa__WEBPACK_IMPORTED_MODULE_4__["default"].cariData({ + nisn: nisn, + tanggalLahir: tanggalLahir, + src: 'sk-hasil-belajar', + "with": ['hasilBelajar', 'accessLog'] + }); + } + }); +} else { + mithril__WEBPACK_IMPORTED_MODULE_0__["default"].mount(document.body.querySelector('.container#pendopo'), _components_Pendopo__WEBPACK_IMPORTED_MODULE_3__["default"]); +} + +/***/ }), + +/***/ "./resources/js/components/Pendopo.js": +/*!********************************************!*\ + !*** ./resources/js/components/Pendopo.js ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var mithril__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mithril */ "./node_modules/mithril/mithril.mjs"); +/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash.isempty */ "./node_modules/lodash.isempty/index.js"); +/* harmony import */ var lodash_isempty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isempty__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var lodash_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash.map */ "./node_modules/lodash.map/index.js"); +/* 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"); + + + + +var component = { + oninit: function oninit() { + document.title = 'Surat Keterangan Hasil Belajar Siswa - SMK Bhakti Anindya'; + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current = {}; + }, + namaMapel: { + 'agama': 'Pendidikan Agama', + 'pkn': 'Pendidikan Kewarganegaraan', + 'indo': 'Bahasa Indonesia', + 'penjas': 'Pendidikan Jasmani dan Kesehatan', + 'senbud': 'Seni Budaya', + 'mtk': 'Matematika', + 'inggris': 'Bahasa Inggris', + 'ipa': 'Ilmu Pengetahuan Alam', + 'ips': 'Ilmu Pengetahuan Sosial', + 'fisika': 'Fisika', + 'kimia': 'Kimia', + 'kwh': 'Kewirausahaan', + 'kkpi': 'Keterampilan Komputer dan Pengelolaan Informasi', + 'dkk': 'Dasar Kompetensi Keahlian', + 'kk': 'Kompetensi Keahlian', + 'mandarin': 'Bahasa Mandarin', + 'kbi': 'Korespondensi Bahasa Inggris', + 'pap': 'Praktek Administrasi Perkantoran', + 'myob': 'MYOB' + }, + rataRata: { + raport: [], + usbn: [], + unbk: [] + }, + view: function view() { + component.rataRata = { + raport: [], + usbn: [], + unbk: [] + }; + return [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.header', [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) { + e.preventDefault(); + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].cariData({ + nisn: e.target.elements.nisn.value, + tanggalLahir: e.target.elements.tanggalLahir.value, + src: 'sk-hasil-belajar', + "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', ['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() { + window.print(); + } + }, [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"])('', { + style: { + height: '1px', + width: '100%', + backgroundColor: '#000', + marginTop: '.5rem' + } + }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', { + style: { + height: '3px', + width: '100%' + } + }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('', { + style: { + height: '3px', + width: '100%', + backgroundColor: '#000', + marginBottom: '1rem' + } + }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__body', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('strong.letter__body-header', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('span.border-b.border-black', 'SURAT KETERANGAN')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('p.font-normal.mt-1', 'Nomor: 077/SMK-BA/V/2019')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('br'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Yang bertanda tangan di bawah ini :')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nama'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Drs. Engkos Kosasih, M.M.')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Jabatan'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'Kepala Sekolah')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Asal Sekolah'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', 'SMK Bhakti Anindya')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Menerangkan bahwa')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nama'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nama)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tempat / Tanggal Lahir'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.tempat_lahir + ' , ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.tanggal_lahir)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'NIS / NISN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nis + ' / ' + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nisn)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Nomor Peserta'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.nopes)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kelas'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.kelas)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Bidang Studi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.bsk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Program Studi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.psk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kompetensi Keahlian'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', ':'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=3]', _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.kk)]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Adalah benar siswa SMK Bhakti Anindya, Kota Tangerang dan pada tanggal 13 Mei 2019 telah dinyatakan lulus')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Berikut hasil belajar siswa tersebut :')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table.nilai', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', { + style: { + width: '5%' + } + }, 'No.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=2]', 'Mata Pelajaran'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Rata-rata Raport Semester 1-6'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'Raport'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Ujian Sekolah Berstandar Nasional'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'USBN'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.long.md:w-1/5', 'Ujian Nasional Berbasis Komputer'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th.short.md:w-1/5', 'UNBK')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'A.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Normatif')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.normatif, function (nilai, mapel) { + if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport); + if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn); + if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk); + return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]); + })), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'B.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Adaptif')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.adaptif, function (nilai, mapel) { + if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport); + if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn); + if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk); + return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]); + }), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'C.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Produktif')])), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.produktif, function (nilai, mapel) { + if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport); + if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn); + if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk); + return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]); + })), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th', 'D.'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=5].text-left', 'Mulok')]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tbody.counter', lodash_map__WEBPACK_IMPORTED_MODULE_2___default()(_models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current.hasil_belajar.meta.mulok, function (nilai, mapel) { + if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport); + if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn); + if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk); + return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-right'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=2]', component.namaMapel[mapel]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null)]); + })), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('th[colspan=3]', 'Rata-rata'), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', (component.rataRata.raport.reduce(function (total, num) { + return total + num; + }) / component.rataRata.raport.length).toFixed(2)), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', (component.rataRata.usbn.reduce(function (total, num) { + return total + num; + }) / component.rataRata.usbn.length).toFixed(2)), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td.text-center', (component.rataRata.unbk.reduce(function (total, num) { + return total + num; + }) / component.rataRata.unbk.length).toFixed(2))])]))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', mithril__WEBPACK_IMPORTED_MODULE_0__["default"].trust(' '))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td[colspan=6]', 'Demikian Surat Keterangan ini dibuat untuk siswa yang bersangkutan melanjutkan ke jenjang yang lebih tinggi.'))]), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('table.signature', [Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Tangerang, 13 Mei 2019')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Kepala Sekolah,')), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('.letter__sign', { + style: { + height: '3rem' + } + }))), Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('tr', Object(mithril__WEBPACK_IMPORTED_MODULE_0__["default"])('td', 'Drs. Engkos Kosasih, M.M.'))])])])]; } -}); +}; +/* harmony default export */ __webpack_exports__["default"] = (component); /***/ }), @@ -4829,7 +4966,8 @@ __webpack_require__.r(__webpack_exports__); var component = { oninit: function oninit() { document.title = 'Surat Keterangan Hasil Belajar Siswa - SMK Bhakti Anindya'; - _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current = {}, _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].fetch('sk-hasil-belajar'); + _models_Siswa__WEBPACK_IMPORTED_MODULE_3__["default"].current = {}; + _models_AccessLog__WEBPACK_IMPORTED_MODULE_4__["default"].fetch('sk-hasil-belajar'); }, namaMapel: { 'agama': 'Pendidikan Agama', diff --git a/resources/js/app.js b/resources/js/app.js index 41dd183..a005943 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1,65 +1,70 @@ import m from "mithril" import SuratKelulusan from "./components/SuratKelulusan" import SKHasilBelajar from "./components/SKHasilBelajar" +import Pendopo from "./components/Pendopo" import Siswa from "./models/Siswa" import AccessLog from "./models/AccessLog" -m.route.prefix('#'); -m.route(document.body.querySelector('.container'), '/', { - '/': SuratKelulusan, - '/hasil-belajar': SKHasilBelajar, -}); +if (document.body.querySelector('.container#pendopo') === null) { + m.route.prefix('#'); + m.route(document.body.querySelector('.container'), '/', { + '/': SuratKelulusan, + '/hasil-belajar': SKHasilBelajar, + }); -// Below is to handle Ctrl+P or MouseR->Print -window.addEventListener("beforeprint", function () { - if (m.route.get() === '/hasil-belajar') { - // If the print button did not exists, show nothing when printing - if (document.body.querySelector('button.print-button') === null) - document.body.style.display = 'none'; - else { - if (!component.confirmPrint) { - alert('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?'); - component.confirmPrint = 1; - AccessLog.create({siswaId: Siswa.current.id, src: 'sk-hasil-belajar'}).then(() => { - AccessLog.fetch('sk-hasil-belajar'); - }) - .catch(e => { - if (e.code === 0) { - AccessLog.error = { - message: e.message, - errors: { - create: ['Terjadi kesalahan saat menghubungkan ke server.'], - }, - }; - } - else { - AccessLog.error = JSON.parse(e.message); - } - }); + // Below is to handle Ctrl+P or MouseR->Print + window.addEventListener("beforeprint", function () { + if (m.route.get() === '/hasil-belajar') { + // If the print button did not exists, show nothing when printing + if (document.body.querySelector('button.print-button') === null) + document.body.style.display = 'none'; + else { + if (!component.confirmPrint) { + alert('Surat Keterangan ini hanya dapat dicetak satu kali. Lanjutkan?'); + component.confirmPrint = 1; + AccessLog.create({siswaId: Siswa.current.id, src: 'sk-hasil-belajar'}).then(() => { + AccessLog.fetch('sk-hasil-belajar'); + }) + .catch(e => { + if (e.code === 0) { + AccessLog.error = { + message: e.message, + errors: { + create: ['Terjadi kesalahan saat menghubungkan ke server.'], + }, + }; + } + else { + AccessLog.error = JSON.parse(e.message); + } + }); + } } } - } -}); + }); -window.addEventListener("afterprint", function () { - if (m.route.get() === '/hasil-belajar') { - // Give back the whole document.body - if (document.body.querySelector('button.print-button') === null) - document.body.style.display = 'block'; + window.addEventListener("afterprint", function () { + if (m.route.get() === '/hasil-belajar') { + // Give back the whole document.body + if (document.body.querySelector('button.print-button') === null) + document.body.style.display = 'block'; - // Hide the print button - if (document.body.querySelector('button.print-button') !== null) - document.body.querySelector('button.print-button').style.display = 'none'; - - // To redraw the content to prevent printing - let nisn = document.body.querySelector('input[name=nisn]').value, - tanggalLahir = document.body.querySelector('input[name=tanggalLahir]').value; - Siswa.cariData({ - nisn, - tanggalLahir, - src: 'sk-hasil-belajar', - with: ['hasilBelajar', 'accessLog'], - }); - } -}); + // Hide the print button + if (document.body.querySelector('button.print-button') !== null) + document.body.querySelector('button.print-button').style.display = 'none'; + // To redraw the content to prevent printing + let nisn = document.body.querySelector('input[name=nisn]').value, + tanggalLahir = document.body.querySelector('input[name=tanggalLahir]').value; + Siswa.cariData({ + nisn, + tanggalLahir, + src: 'sk-hasil-belajar', + with: ['hasilBelajar', 'accessLog'], + }); + } + }); +} +else { + m.mount(document.body.querySelector('.container#pendopo'), Pendopo); +} diff --git a/resources/js/components/Pendopo.js b/resources/js/components/Pendopo.js new file mode 100644 index 0000000..ba8d38e --- /dev/null +++ b/resources/js/components/Pendopo.js @@ -0,0 +1,318 @@ +import m from "mithril" +import _isEmpty from "lodash.isempty" +import _map from "lodash.map" +import Siswa from "../models/Siswa" + +var component = { + oninit: () => { + document.title = 'Surat Keterangan Hasil Belajar Siswa - SMK Bhakti Anindya'; + Siswa.current = {}; + }, + namaMapel: { + 'agama': 'Pendidikan Agama', + 'pkn': 'Pendidikan Kewarganegaraan', + 'indo': 'Bahasa Indonesia', + 'penjas': 'Pendidikan Jasmani dan Kesehatan', + 'senbud': 'Seni Budaya', + 'mtk': 'Matematika', + 'inggris': 'Bahasa Inggris', + 'ipa': 'Ilmu Pengetahuan Alam', + 'ips': 'Ilmu Pengetahuan Sosial', + 'fisika': 'Fisika', + 'kimia': 'Kimia', + 'kwh': 'Kewirausahaan', + 'kkpi': 'Keterampilan Komputer dan Pengelolaan Informasi', + 'dkk': 'Dasar Kompetensi Keahlian', + 'kk': 'Kompetensi Keahlian', + 'mandarin': 'Bahasa Mandarin', + 'kbi': 'Korespondensi Bahasa Inggris', + 'pap': 'Praktek Administrasi Perkantoran', + 'myob': 'MYOB', + }, + rataRata: { + raport: [], + usbn: [], + unbk: [], + }, + view: () => { + component.rataRata = { + raport: [], + usbn: [], + unbk: [], + }; + return [ + m('.header', [ + m('h1.title', 'Surat Keterangan Hasil Belajar Siswa SMK Bhakti Anindya'), + m('span', 'Silahkan masukkan Nama Lengkap dan NISN kamu di bawah ini.'), + ]), + m('form.form', { + onsubmit: e => { + e.preventDefault(); + Siswa.cariData({ + nisn: e.target.elements.nisn.value, + tanggalLahir: e.target.elements.tanggalLahir.value, + src: 'sk-hasil-belajar', + with: 'hasilBelajar', + }); + } + }, + m('.form-grid', [ + m('.form-group', [ + m('label.form-label[for=input-nisn]', 'NISN'), + m('input.form-input.input-text#input-nisn[name=nisn][type=text][autocomplete=off][required]'), + m('p.input-helper', [ + 'Nomor Induk Siswa Nasional. ', + !_isEmpty(Siswa.error) ? + 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] + ' ') + : '' : '', + ]), + ]), + m('.form-group', [ + 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('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] + ' ') : '', + ]), + ]), + m('button.form-submit#input-submit[type=submit]', 'Lihat'), + ])), + _isEmpty(Siswa.current) ? null : m('.letter', [ + m('span.mobile-info', 'Untuk mencetak surat ini, harap gunakan browser di desktop PC.'), + !_isEmpty(Siswa.current.access_log) ? null + : m('button.print-button', { + onclick: () => { + window.print(); + } + }, [ + m.trust('⎙'), + ' Print', + ]), + m('.letter__header', [ + m('img[src=img/letter-head.jpg]'), + ]), + m('', { + style: { + height: '1px', + width: '100%', + backgroundColor: '#000', + marginTop: '.5rem', + }}), + m('', { + style: { + height: '3px', + width: '100%', + }}), + m('', { + style: { + height: '3px', + width: '100%', + backgroundColor: '#000', + marginBottom: '1rem', + }}), + m('.letter__body', [ + m('strong.letter__body-header', [ + m('p', m('span.border-b.border-black', 'SURAT KETERANGAN')), + m('p.font-normal.mt-1', 'Nomor: 077/SMK-BA/V/2019'), + ]), + m('br'), + m('table', [ + m('tr', + m('td[colspan=6]', 'Yang bertanda tangan di bawah ini :')), + m('tr', [ + m('td'), + m('td', 'Nama'), + m('td', ':'), + m('td[colspan=3]', 'Drs. Engkos Kosasih, M.M.'), + ]), + m('tr', [ + m('td'), + m('td', 'Jabatan'), + m('td', ':'), + m('td[colspan=3]', 'Kepala Sekolah'), + ]), + m('tr', [ + m('td'), + m('td', 'Asal Sekolah'), + m('td', ':'), + m('td[colspan=3]', 'SMK Bhakti Anindya'), + ]), + m('tr', + m('td', + m.trust(' '))), + m('tr', + m('td[colspan=6]', 'Menerangkan bahwa')), + m('tr', + m('td', + m.trust(' '))), + m('tr', [ + m('td'), + m('td', 'Nama'), + m('td', ':'), + m('td[colspan=3]', Siswa.current.nama), + ]), + m('tr', [ + m('td'), + m('td', 'Tempat / Tanggal Lahir'), + m('td', ':'), + m('td', Siswa.current.tempat_lahir + ' , ' + Siswa.current.tanggal_lahir), + ]), + m('tr', [ + m('td'), + m('td', 'NIS / NISN'), + m('td', ':'), + m('td', Siswa.current.nis + ' / ' + Siswa.current.nisn), + ]), + m('tr', [ + m('td'), + m('td', 'Nomor Peserta'), + m('td', ':'), + m('td[colspan=3]', Siswa.current.nopes), + ]), + m('tr', [ + m('td'), + m('td', 'Kelas'), + m('td', ':'), + m('td[colspan=3]', Siswa.current.kelas), + ]), + m('tr', [ + m('td'), + m('td', 'Bidang Studi Keahlian'), + m('td', ':'), + m('td[colspan=3]', Siswa.current.bsk), + ]), + m('tr', [ + m('td'), + m('td', 'Program Studi Keahlian'), + m('td', ':'), + m('td[colspan=3]', Siswa.current.psk), + ]), + m('tr', [ + m('td'), + m('td', 'Kompetensi Keahlian'), + m('td', ':'), + m('td[colspan=3]', Siswa.current.kk), + ]), + m('tr', + m('td', + m.trust(' '))), + m('tr', + m('td[colspan=6]', 'Adalah benar siswa SMK Bhakti Anindya, Kota Tangerang dan pada tanggal 13 Mei 2019 telah dinyatakan lulus')), + m('tr', + m('td[colspan=6]', 'Berikut hasil belajar siswa tersebut :')), + m('tr', + m('td', + m.trust(' '))), + m('tr', + m('td[colspan=6]', + m('table.nilai', [ + m('tr', [ + m('th', { style: { width: '5%' } }, 'No.'), + m('th[colspan=2]', 'Mata Pelajaran'), + m('th.long.md:w-1/5', 'Rata-rata Raport Semester 1-6'), + m('th.short.md:w-1/5', 'Raport'), + m('th.long.md:w-1/5', 'Ujian Sekolah Berstandar Nasional'), + m('th.short.md:w-1/5', 'USBN'), + m('th.long.md:w-1/5', 'Ujian Nasional Berbasis Komputer'), + m('th.short.md:w-1/5', 'UNBK'), + ]), + m('tr', [ + m('th', 'A.'), + m('th[colspan=5].text-left', 'Normatif'), + ]), + m('tbody.counter', + _map(Siswa.current.hasil_belajar.meta.normatif, (nilai, mapel) => { + if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport); + if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn); + if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk); + return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : m('tr', [ + m('td.text-right'), + m('td[colspan=2]', component.namaMapel[mapel]), + m('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), + m('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), + m('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null), + ]); + })), + m('tr', [ + m('th', 'B.'), + m('th[colspan=5].text-left', 'Adaptif'), + ]), + m('tbody.counter', + _map(Siswa.current.hasil_belajar.meta.adaptif, (nilai, mapel) => { + if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport); + if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn); + if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk); + return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : m('tr', [ + m('td.text-right'), + m('td[colspan=2]', component.namaMapel[mapel]), + m('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), + m('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), + m('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null), + ]); + }), + m('tr', [ + m('th', 'C.'), + m('th[colspan=5].text-left', 'Produktif'), + ])), + m('tbody.counter', + _map(Siswa.current.hasil_belajar.meta.produktif, (nilai, mapel) => { + if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport); + if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn); + if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk); + return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : m('tr', [ + m('td.text-right'), + m('td[colspan=2]', component.namaMapel[mapel]), + m('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), + m('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), + m('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null), + ]); + })), + m('tr', [ + m('th', 'D.'), + m('th[colspan=5].text-left', 'Mulok'), + ]), + m('tbody.counter', + _map(Siswa.current.hasil_belajar.meta.mulok, (nilai, mapel) => { + if (nilai.raport != 0) component.rataRata.raport.push(nilai.raport); + if (nilai.usbn != 0) component.rataRata.usbn.push(nilai.usbn); + if (nilai.unbk != 0) component.rataRata.unbk.push(nilai.unbk); + return nilai.raport == 0 && nilai.usbn == 0 && nilai.unbk == 0 ? null : m('tr', [ + m('td.text-right'), + m('td[colspan=2]', component.namaMapel[mapel]), + m('td.text-center', nilai.raport !== 0 ? nilai.raport.toFixed(2) : null), + m('td.text-center', nilai.usbn !== 0 ? nilai.usbn.toFixed(2) : null), + m('td.text-center', nilai.unbk !== 0 ? nilai.unbk.toFixed(2) : null), + ]); + })), + m('tr', [ + m('th[colspan=3]', 'Rata-rata'), + m('td.text-center', (component.rataRata.raport.reduce((total, num) => total + num) / component.rataRata.raport.length).toFixed(2)), + m('td.text-center', (component.rataRata.usbn.reduce((total, num) => total + num) / component.rataRata.usbn.length).toFixed(2)), + m('td.text-center', (component.rataRata.unbk.reduce((total, num) => total + num) / component.rataRata.unbk.length).toFixed(2)), + ]), + ]))), + m('tr', + m('td', + m.trust(' '))), + m('tr', + m('td[colspan=6]', 'Demikian Surat Keterangan ini dibuat untuk siswa yang bersangkutan melanjutkan ke jenjang yang lebih tinggi.')), + ]), + m('table.signature', [ + m('tr', + m('td', 'Tangerang, 13 Mei 2019')), + m('tr', + m('td', 'Kepala Sekolah,')), + m('tr', + m('td', + m('.letter__sign', { style: { height: '3rem' } }))), + m('tr', + m('td', 'Drs. Engkos Kosasih, M.M.')), + ]), + ]), + ]), + ]; + }, +}; + +export default component; diff --git a/resources/js/components/SKHasilBelajar.js b/resources/js/components/SKHasilBelajar.js index 445cfd0..eded992 100644 --- a/resources/js/components/SKHasilBelajar.js +++ b/resources/js/components/SKHasilBelajar.js @@ -7,7 +7,7 @@ import AccessLog from "../models/AccessLog" var component = { oninit: () => { document.title = 'Surat Keterangan Hasil Belajar Siswa - SMK Bhakti Anindya'; - Siswa.current = {}, + Siswa.current = {}; AccessLog.fetch('sk-hasil-belajar'); }, namaMapel: { diff --git a/resources/views/main.blade.php b/resources/views/main.blade.php index 3845a3f..58ada00 100644 --- a/resources/views/main.blade.php +++ b/resources/views/main.blade.php @@ -10,12 +10,12 @@ - +
- + diff --git a/resources/views/pendopo.blade.php b/resources/views/pendopo.blade.php new file mode 100644 index 0000000..127f1df --- /dev/null +++ b/resources/views/pendopo.blade.php @@ -0,0 +1,21 @@ + + + + + + + Pendopo + + + + + + + + +
+
+ + + + diff --git a/routes/web.php b/routes/web.php index 5272f77..c1fba75 100644 --- a/routes/web.php +++ b/routes/web.php @@ -14,3 +14,7 @@ Route::get('/', function () { return view('main'); }); + +Route::get('/pendopo', function () { + return view('pendopo'); +})->middleware('pendopo');