Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
sibiling
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Syaifur
sibiling
Commits
4e30859c
Commit
4e30859c
authored
Nov 11, 2024
by
Isa Asanu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update presensi
parent
9486ed88
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
226 additions
and
7 deletions
+226
-7
AbsensiController.php
app/Http/Controllers/Admin/Akademik/AbsensiController.php
+5
-1
show.blade.php
resources/views/admin/akademik/absensi/show.blade.php
+12
-6
show_old.blade.php
resources/views/admin/akademik/absensi/show_old.blade.php
+209
-0
No files found.
app/Http/Controllers/Admin/Akademik/AbsensiController.php
View file @
4e30859c
...
@@ -186,10 +186,14 @@ class AbsensiController extends Controller
...
@@ -186,10 +186,14 @@ class AbsensiController extends Controller
// 0: belum ada absensi
// 0: belum ada absensi
// 1: hadir
// 1: hadir
// 2: tidak hadir
// 2: tidak hadir
// 3: terlambat
// 4: ijin
// 5: sakit
foreach
(
$cekId
as
$idSiswa
=>
$value
)
{
foreach
(
$cekId
as
$idSiswa
=>
$value
)
{
// Dapatkan status siswa; 'on' berarti hadir (1), '2' berarti tidak hadir
// Dapatkan status siswa; 'on' berarti hadir (1), '2' berarti tidak hadir
$status
=
isset
(
$cekVal
[
$idSiswa
])
&&
$cekVal
[
$idSiswa
]
==
'on'
?
1
:
2
;
// $status = isset($cekVal[$idSiswa]) && $cekVal[$idSiswa] == 'on' ? 1 : 2;
$status
=
$cekVal
[
$idSiswa
];
// Simpan atau update data absensi siswa
// Simpan atau update data absensi siswa
$dataAbsensi
=
[
$dataAbsensi
=
[
...
...
resources/views/admin/akademik/absensi/show.blade.php
View file @
4e30859c
...
@@ -182,15 +182,21 @@
...
@@ -182,15 +182,21 @@
{
data
:
'id'
,
{
data
:
'id'
,
render
:
function
(
data
,
type
,
row
,
meta
)
{
render
:
function
(
data
,
type
,
row
,
meta
)
{
// console.log("idSiswa: "+row.id+" | status: "+row.statusAbsensi)
// console.log("idSiswa: "+row.id+" | status: "+row.statusAbsensi)
if
(
row
.
statusAbsensi
==
0
||
row
.
statusAbsensi
==
1
){
var
checkboxesChecked
=
[];
var
checkboxChecked
=
'checked'
;
}
else
{
var
hadircheckbox
=
(
row
.
statusAbsensi
==
0
||
row
.
statusAbsensi
==
1
)
?
'checked'
:
''
;
var
checkboxChecked
=
''
;
for
(
i
=
2
;
i
<=
5
;
i
++
){
checkboxesChecked
[
i
]
=
(
row
.
statusAbsensi
==
i
)
?
'checked'
:
''
;
}
}
return
`<input name="cekId[${data}]" value="${data}" type="hidden">
return
`<input name="cekId[${data}]" value="${data}" type="hidden">
<input name="cekVal[${data}]" value="0" type="hidden">
<div style="display:flex; gap:8px">
<input type="checkbox" name="cekVal[${data}]" ${checkboxChecked}>`
;
<div style="display:flex; align-items:center;"><input type="radio" name="cekVal[${data}]" value="1" ${hadircheckbox}><label>Hadir</label></div>
<div style="display:flex; align-items:center;"><input type="radio" name="cekVal[${data}]" value="2" ${checkboxesChecked[2]}><label>Tidak Hadir</label></div>
<div style="display:flex; align-items:center;"><input type="radio" name="cekVal[${data}]" value="3" ${checkboxesChecked[3]}><label>Terlambat</label></div>
<div style="display:flex; align-items:center;"><input type="radio" name="cekVal[${data}]" value="4" ${checkboxesChecked[4]}><label>Ijin</label></div>
<div style="display:flex; align-items:center;"><input type="radio" name="cekVal[${data}]" value="5" ${checkboxesChecked[5]}><label>Sakit</label></div>
</div>`
;
}
}
}
}
],
],
...
...
resources/views/admin/akademik/absensi/show_old.blade.php
0 → 100644
View file @
4e30859c
@
extends
(
$admin
)
@
section
(
'title'
)
{{
$title
}}
@
endsection
@
push
(
'css'
)
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/datatables.css') }}"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/select2.css') }}"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/date-picker.css') }}"
>
@
endpush
@
section
(
'content'
)
@
component
(
'components.breadcrumb'
)
@
slot
(
'breadcrumb_title'
)
<
h3
>
Master
Indeks
Kelas
</
h3
>
@
endslot
<
li
class
="
breadcrumb
-
item
">Master</li>
<li class="
breadcrumb
-
item
">Indeks Kelas</li>
<li class="
breadcrumb
-
item
active
">Detail</li>
@endcomponent
<div class="
container
-
fluid
pt
-
4
">
<div class="
row
justify
-
content
-
center
">
<div class="
col
-
lg
-
10
col
-
sm
-
12
">
<div class="
card
border
-
top
border
-
0
border
-
4
border
-
info
">
<div class="
card
-
header
p
-
3
">
<div class="
row
">
<div class="
col
-
lg
-
6
">
<h5 class="
card
-
title
">{{
$page
}}</h5>
</div>
<div class="
col
-
lg
-
6
col
-
sm
-
12
">
<a href="
{{
url
(
$url
)
}}
" class="
btn
btn
-
sm
btn
-
primary
float
-
end
">kembali</a>
</div>
</div>
</div>
<div class="
card
-
body
">
<div class="
row
">
<div class="
mb
-
3
">
<label class="
col
-
sm
-
3
col
-
form
-
label
">Pilih Kelas</label>
<select id="
select
-
kodekelas
" class="
form
-
select
select2
" aria-label="
Default
select
example
" required>
<option value="">Pilih Kelas Terlebih Dahulu</option>
</select>
</div>
</div>
<div class="
row
">
<div class="
mb
-
3
">
<label class="
col
-
sm
-
3
col
-
form
-
label
">Pilih Tanggal</label>
<input id="
tanggal
" class="
datepicker
-
here
form
-
control
digits
col
-
sm
-
9
" type="
text
" data-language="
en
" placeholder="
Isi
Tanggal
Absensi
" />
</div>
</div>
<div class="
row
">
<div class="
mb
-
3
">
<label class="
col
-
sm
-
3
col
-
form
-
label
">Status</label>
<input id="
status
" class="
form
-
control
block
" type="
text
" disabled />
</div>
</div>
<div class="
row
">
<div class="
table
-
responsive
" id="
tabel
-
jquery
">
<form action="
{{
url
(
$url
)
}}
/
store
" method="
POST
">
@csrf
<input id="
valKelas
" type="
hidden
" name="
valKelas
">
<input id="
valTanggal
" type="
hidden
" name="
valTanggal
">
<table id="
isi
-
tabel
" class="
table
table
-
striped
table
-
bordered
dt
-
responsive
nowrap
dataTable
no
-
footer
dtr
-
inline
collapsed
">
<thead >
<tr>
<th data-priority="
1
" width="
50
px
">No.</th>
<th>NISN</th>
<th>Nama</th>
<th width="
250
">Kehadiran</th>
</tr>
</thead>
<tbody>
{{-- fitur di laravel --}}
</tbody>
<tfoot>
<input id="
submit
" type="
submit
" class="
btn
btn
-
primary
" onclick="
return
confirm
(
'Apakah anda yakin data sudah benar ?'
)
">
<button class="
btn
btn
-
secondary
"><a href="
{{
url
(
$url
)
}}
" class="
text
-
white
">Cancel</a></button>
</tfoot>
</table>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@push('scripts')
<script src="
{{
asset
(
'assets/js/datatable/datatables/jquery.dataTables.min.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datatable/datatables/datatable.custom.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/select2/select2.full.min.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/select2/select2-custom.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.en.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.custom.js'
)
}}
"></script>
<script>
let baseUrl = '{{ url('') }}';
let url = '{{
$url
}}';
$("
#isi-tabel").DataTable();
$
(
'#tabel-jquery'
)
.
hide
();
</
script
>
@
include
(
'admin.filter.kelaskomplit'
)
<
script
>
$
(
document
)
.
ready
(
function
()
{
let
isInitialLoad
=
true
;
// Inisialisasi Datepicker
$
(
'#tanggal'
)
.
datepicker
({
autoClose
:
true
,
language
:
'en'
,
dateFormat
:
'yyyy-mm-dd'
,
// onSelect: function(formattedDate, date, inst) {
// updateTable(); // Memanggil fungsi updateTable ketika tanggal dipilih
// }
onSelect
:
function
(
formattedDate
,
date
,
inst
)
{
if
(
!
isInitialLoad
)
{
// Hanya memanggil updateTable jika bukan load pertama
updateTable
();
}
}
})
.
data
(
'datepicker'
)
.
selectDate
(
new
Date
(
'{{ $tanggal }}'
));
// Set tanggal dari server
isInitialLoad
=
false
;
// Menangani perubahan pada dropdown kelas
$
(
'#select-kodekelas'
)
.
on
(
'change'
,
function
()
{
updateTable
();
// Memanggil fungsi updateTable ketika kelas berubah
});
setTimeout
(
function
()
{
if
(
'{{ $tanggal }}'
&&
'{{ $idKelas }}'
)
{
$
(
'#select-kodekelas'
)
.
trigger
(
'change'
);
}
},
500
);
// Fungsi untuk memperbarui tabel
function
updateTable
()
{
var
idPKKode
=
$
(
'#select-kodekelas'
)
.
val
();
// Mendapatkan ID kelas yang dipilih
var
selectedDate
=
$
(
'#tanggal'
)
.
val
();
// Mendapatkan tanggal yang dipilih
$
(
'#valKelas'
)
.
val
(
idPKKode
);
// Set hidden input value
$
(
'#valTanggal'
)
.
val
(
selectedDate
);
// Set hidden input value
console
.
log
(
'kelas: '
+
idPKKode
)
console
.
log
(
'tanggal: '
+
selectedDate
)
if
(
idPKKode
&&
selectedDate
)
{
$
(
"#isi-tabel"
)
.
DataTable
()
.
clear
()
.
destroy
();
// Menghancurkan instance DataTable yang ada
$
(
'#tabel-jquery'
)
.
show
();
// Menampilkan tabel jika tersembunyi
// Membuat instance baru dari DataTable
$
(
"#isi-tabel"
)
.
DataTable
({
language
:
{
emptyTable
:
"Tidak ada data Siswa"
,
info
:
"Total: _TOTAL_ Data Siswa"
,
infoEmpty
:
"Menampilkan 0 dari 0 Data Siswa"
,
},
responsive
:
true
,
autoWidth
:
false
,
processing
:
true
,
ajax
:
{
url
:
baseUrl
+
'/'
+
url
+
'/get-absensi-form/'
+
idPKKode
+
'/'
+
selectedDate
,
method
:
'GET'
,
dataSrc
:
function
(
json
)
{
var
status
=
json
.
status
==
1
?
"Absensi sudah dilakukan"
:
"Belum Absensi"
;
var
submit
=
json
.
status
==
1
?
"Update"
:
"Simpan"
;
if
(
json
.
status
==
1
)
{
alert
(
"kelas di Tanggal ini sudah dilakukan absensi ! Klik Update untuk merubah kehadiran"
);
}
$
(
'#status'
)
.
val
(
status
);
$
(
'#submit'
)
.
val
(
submit
);
return
json
.
data
;
}
},
columns
:
[
{
data
:
'i'
,
render
:
function
(
data
,
type
,
row
,
meta
)
{
return
meta
.
row
+
1
;
}
},
// Menghitung index
{
data
:
'nisn'
},
{
data
:
'nama'
},
{
data
:
'id'
,
render
:
function
(
data
,
type
,
row
,
meta
)
{
// console.log("idSiswa: "+row.id+" | status: "+row.statusAbsensi)
if
(
row
.
statusAbsensi
==
0
||
row
.
statusAbsensi
==
1
){
var
checkboxChecked
=
'checked'
;
}
else
{
var
checkboxChecked
=
''
;
}
return
`<input name="cekId[${data}]" value="${data}" type="hidden">
<input name="cekVal[${data}]" value="0" type="hidden">
<input type="checkbox" name="cekVal[${data}]" ${checkboxChecked}>`
;
}
}
],
dom
:
'Bfrtip'
,
buttons
:
[
'copy'
,
'excel'
,
'pdf'
,
'colvis'
]
});
}
}
});
</
script
>
@
endpush
@
endsection
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment