diff --git a/app/Exports/AttendanceExportView.php b/app/Exports/AttendanceExportView.php index 6cbe18f..8ef4c67 100644 --- a/app/Exports/AttendanceExportView.php +++ b/app/Exports/AttendanceExportView.php @@ -21,7 +21,7 @@ class AttendanceExportView implements FromView public function view(): View { $attendances = Attendance::where('classes_id', $this->classes_id)->get(); - return view('user.attendances_table_preview', ['attendances' => $attendances]); + return view('user.attendances_table_preview', ['attendances' => $attendances, 'export' => 1]); } } diff --git a/app/Http/Controllers/User/UserAttendancesController.php b/app/Http/Controllers/User/UserAttendancesController.php index 20fa946..9ad92bc 100644 --- a/app/Http/Controllers/User/UserAttendancesController.php +++ b/app/Http/Controllers/User/UserAttendancesController.php @@ -34,26 +34,28 @@ class UserAttendancesController extends Controller $student_name = $request->input('student_name'); $student_surname = $request->input('student_surname'); $seat_number = $request->input('seat_number'); + $note = $request->input('note'); Attendance::create([ 'classes_id' => $classes_id, 'student_id_number' => $student_id_number, 'student_name' => $student_name, 'student_surname' => $student_surname, 'seat_number' => $seat_number, + 'notes' => $note ]); - return redirect(route('user_attendances')); + return redirect()->back(); } public function delete_attendance($attendance_id) { Attendance::find($attendance_id)->delete(); - return redirect(route('user_attendances')); + return redirect()->back(); } public function edit_attendance($attendance_id) { Attendance::find($attendance_id); - return redirect(route('user_attendances')); + return redirect()->back(); } public function export($classes_id) @@ -72,4 +74,15 @@ class UserAttendancesController extends Controller return Excel::download(new AttendanceGroupedExportView($groupBy), "all-attendance-grouped-by-{$groupByLabel}-{$today_date}.xlsx"); } + public function add_attendance_note(Request $request) + { + $attendance_id = $request->input('attendance_id'); + $note = $request->input('note_content'); + $attendance = Attendance::find($attendance_id); + $attendance->notes = $note; + $attendance->save(); + $attendance->refresh(); + return redirect()->back(); + } + } diff --git a/app/Http/Controllers/User/UserClassesController.php b/app/Http/Controllers/User/UserClassesController.php index 78f98da..b038492 100644 --- a/app/Http/Controllers/User/UserClassesController.php +++ b/app/Http/Controllers/User/UserClassesController.php @@ -51,13 +51,13 @@ class UserClassesController extends Controller public function delete_classes($classes_id) { Classes::find($classes_id)->delete(); - return redirect(route('user_classes')); + return redirect()->back(); } public function edit_classes($classes_id) { Classes::find($classes_id); - return redirect(route('user_classes')); + return redirect()->back(); } public function start_classes($classes_id) @@ -120,16 +120,16 @@ class UserClassesController extends Controller 'student_id_number' => $student_id_number, 'student_name' => $student_name, 'student_surname' => $student_surname, - 'seat_number' => $seat_number, + 'seat_number' => $seat_number ]); return view('map.summary_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'seat_number' => $seat_number, 'student_id_number' => $student_id_number, 'classes_id' => $classes_id]); } - public function preview_classes($classes_id) + public function preview_classes($classes_id, $orderBy='student_surname', $orderDirection='ASC') { if(!$classes_id == 0) { $classes = Classes::find($classes_id); - $attendances = Attendance::where('classes_id', $classes->id)->get(); + $attendances = Attendance::where('classes_id', $classes->id)->orderBy($orderBy,$orderDirection)->get(); $seat_numbers = $attendances->pluck('seat_number')->toArray(); $subject = Subject::find($classes->subject_id); $room_arrangement = Room::find($subject->room_id)->arrangement; @@ -137,6 +137,6 @@ class UserClassesController extends Controller $room_arrangement = Room::where('name', 'Inna sala')->first()->arrangement; } } - return view('user.user_preview_classes', ['classes_id' => $classes_id, 'room_arrangement' => $room_arrangement, 'attendances' => $attendances, 'seat_numbers' => $seat_numbers]); + return view('user.user_preview_classes', ['classes_id' => $classes_id, 'room_arrangement' => $room_arrangement, 'attendances' => $attendances, 'seat_numbers' => $seat_numbers, 'orderBy' => $orderBy, 'orderDirection' => $orderDirection]); } } diff --git a/app/Http/Controllers/User/UserSubjectsController.php b/app/Http/Controllers/User/UserSubjectsController.php index 94b046a..f7aedd3 100644 --- a/app/Http/Controllers/User/UserSubjectsController.php +++ b/app/Http/Controllers/User/UserSubjectsController.php @@ -14,7 +14,7 @@ class UserSubjectsController extends Controller public function index($groupBy = 'weekday') { setlocale(LC_ALL, 'pl', 'pl_PL', 'pl_PL.ISO8859-2', 'plk', 'polish', 'Polish'); $user_id = Auth::id(); - $subjects = Subject::where('user_id', $user_id)->get(); + $subjects = Subject::where('user_id', $user_id)->orderBy('name','ASC')->get(); $subjects_grouped = $subjects->groupBy($groupBy); $rooms = Room::all(); $weekdays = ['Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota', 'Niedziela']; @@ -43,18 +43,18 @@ class UserSubjectsController extends Controller 'room_id' => $room_id, 'user_id' => $user_id_n ]); - return redirect(route('user_subjects')); + return redirect()->back(); } public function delete_subject($subject_id) { Subject::find($subject_id)->delete(); - return redirect(route('user_subjects')); + return redirect()->back(); } public function edit_subject($subject_id) { Subject::find($subject_id); - return redirect(route('user_subjects')); + return redirect()->back(); } } diff --git a/public/css/app.css b/public/css/app.css index 0bda1a3..52a91bc 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -11199,3 +11199,14 @@ a.text-dark:focus { .card-header { background-color: #ececec; } +.card-custom { + display: flex; + justify-content: flex-start; + align-items: center; +} +.sort-span { + margin-right: 20px; +} +.form-custom { + width: auto; +} diff --git a/public/js/custom.js b/public/js/custom.js index d18547b..d636f41 100644 --- a/public/js/custom.js +++ b/public/js/custom.js @@ -1,6 +1,5 @@ $(document).ready(function(){ $('.add-mn-btn').on('click', function () { - console.log($('.add-mn-btn')); $('.czytnik').toggleClass('open'); }); @@ -22,4 +21,43 @@ $(document).ready(function(){ $(this).text('Dodaj nowy wpis') } }); + + $(".modal").on("hidden.bs.modal", function(){ + const originalText = $(this).find("#note_content_hidden").first().val(); + $(this).find("#note_content").first().val(originalText); + }); + + $('#sort-select').on('change', function() { + $(location).attr('href', $(this).val()) + }); + + $('#group-select').on('change', function() { + $(location).attr('href', $(this).val()) + }); + + function setSelectedOptionSortAttendances() { + const orderBy = $('#orderBy-hidden').first().val(); + const orderDirection = $('#orderDirection-hidden').first().val(); + const pattern = `/${orderBy}/${orderDirection}`; + const options = $('#sort-select').find('option'); + options.each(function() { + if($(this).val().search(pattern) !== -1) { + $('#sort-select').val($(this).val()); + } + }); + } + setSelectedOptionSortAttendances(); + + function setSelectedOptionGroup() { + const groupBy = $('#groupBy-hidden').first().val(); + const pattern = `/${groupBy}`; + const options = $('#group-select').find('option'); + options.each(function() { + if($(this).val().search(pattern) !== -1) { + $('#group-select').val($(this).val()); + } + }); + } + setSelectedOptionGroup(); + }); diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php index d421692..df2322c 100644 --- a/resources/views/home.blade.php +++ b/resources/views/home.blade.php @@ -30,6 +30,7 @@
Dane dotyczące obecności znajdziesz także w zakładce Obecności.
+
Do każdej obecności możesz dodać notatkę.
Rekordy dotyczące wszystkich obecności możesz grupować i wyeksportować. Przy eksporcie każda tabela-grupa trafi do pliku xlsx jako osobny arkusz.
Nr indeksu | -Imię | Nazwisko | +Imię | Nr miejsca | + @if(!$export == 1) ++ | + @else + | Notatka | + @endif|
---|---|---|---|---|---|---|---|---|
{{ $attendance->student_id_number }} | -{{ $attendance->student_name}} | {{ $attendance->student_surname}} | +{{ $attendance->student_name}} | {{ $attendance->seat_number }} | + @if(!$export == 1) ++ Usuń + | + @if(!$attendance->notes) ++ + | + @else ++ + | + @endif + @include('user.attendance_note', [$attendance]) + @else ++ {{ $attendance->notes }} + | + @endif