diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php
index dfb2c2a..3978b39 100644
--- a/app/Http/Controllers/UserController.php
+++ b/app/Http/Controllers/UserController.php
@@ -9,6 +9,7 @@
use App\Models\Company;
use App\Models\Department;
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
class UserController extends Controller
{
@@ -146,6 +147,10 @@ public function create()
->join('schools', 'departments.school_id', '=', 'schools.id')
->where('schools.id', $schoolId)
->get();
+ $modelIds = DB::table('model_has_roles')
+ ->where('role_id', 6)
+ ->pluck('model_id');
+ $students = User::whereIn('id', $modelIds)->get();
} elseif ($isKaprog) {
$roles = Role::where('name', 'student')->orWhere('name', 'kepala program')->orWhere('name', 'mentor')->pluck('name', 'id');
$schoolId = auth()->user()->schools()->first()->id;
@@ -154,6 +159,10 @@ public function create()
$departments = Department::where('id', $departmentId)->pluck('name', 'id');
$courses = Course::where('department_id', $departmentId)->pluck('name', 'id');
$companies = Company::where('department_id', $departmentId)->get();
+ $modelIds = DB::table('model_has_roles')
+ ->where('role_id', 6)
+ ->pluck('model_id');
+ $students = User::whereIn('id', $modelIds)->get();
} else {
$roles = auth()->user()->hasRole('super-admin')
? Role::pluck('name', 'id')
@@ -163,9 +172,13 @@ public function create()
$departments = Department::pluck('name', 'id');
$courses = Course::pluck('name', 'id');
$companies = Company::all();
+ $modelIds = DB::table('model_has_roles')
+ ->where('role_id', 6)
+ ->pluck('model_id');
+ $students = User::whereIn('id', $modelIds)->get();
}
- return view('users.create', compact('schools', 'departments', 'courses', 'roles', 'companies'));
+ return view('users.create', compact('schools', 'departments', 'courses', 'roles', 'companies', 'students'));
}
/**
@@ -184,7 +197,8 @@ public function store(Request $request)
'school_id' => 'nullable|exists:schools,id',
'department_id' => 'nullable|exists:departments,id',
'course_id' => 'nullable|exists:courses,id',
- 'company_id' => 'nullable|exists:companies,id'
+ 'company_id' => 'nullable|exists:companies,id',
+ 'student_ids' => 'nullable|array'
]);
try {
@@ -210,6 +224,14 @@ public function store(Request $request)
if ($request->company_id) {
$user->companies()->attach($request->company_id);
}
+ if ($request->student_ids) {
+ foreach ($request->student_ids as $studentId) {
+ DB::table('group_user')->insert([
+ 'teacher_id' => $user->id,
+ 'user_id' => $studentId,
+ ]);
+ }
+ }
return redirect()->route('users.index')
->with('success', 'Berhasil menambahkan user baru');
diff --git a/package-lock.json b/package-lock.json
index d1dc93e..eec3549 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5 +1,5 @@
{
- "name": "Internity-Web",
+ "name": "Internity",
"lockfileVersion": 3,
"requires": true,
"packages": {
@@ -13,6 +13,7 @@
"font-awesome": "^4.7.0",
"iconify-icon": "^1.0.8",
"jquery": "^3.7.1",
+ "select2": "^4.1.0-rc.0",
"sweetalert": "^2.1.2",
"trix": "^2.0.7",
"vanilla-picker": "^2.12.2"
@@ -431,12 +432,12 @@
"dev": true
},
"node_modules/axios": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz",
- "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz",
+ "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==",
"dev": true,
"dependencies": {
- "follow-redirects": "^1.15.0",
+ "follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -484,12 +485,12 @@
]
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -597,9 +598,9 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -609,9 +610,9 @@
}
},
"node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"dev": true,
"funding": [
{
@@ -912,6 +913,11 @@
"node": ">=14.0.0"
}
},
+ "node_modules/select2": {
+ "version": "4.1.0-rc.0",
+ "resolved": "https://registry.npmjs.org/select2/-/select2-4.1.0-rc.0.tgz",
+ "integrity": "sha512-Hr9TdhyHCZUtwznEH2CBf7967mEM0idtJ5nMtjvk3Up5tPukOLXbHUNmh10oRfeNIhj+3GD3niu+g6sVK+gK0A=="
+ },
"node_modules/source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
@@ -943,9 +949,9 @@
}
},
"node_modules/trix": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/trix/-/trix-2.0.7.tgz",
- "integrity": "sha512-qnqElm1BA4XYMgwowEHlF4xE4wfEjFBpmybvdzVUQP4OTzQxRXVEQNP4WSvWT6HzV4wYFP06/HSo14fWoGo6jQ=="
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/trix/-/trix-2.1.5.tgz",
+ "integrity": "sha512-5pC4olCp7BwxTC8Joy1Kv33kDvSOApi9Tqf6c8wygqCgeCx9xPP5cxkZEhvKpMV+kjd9gszingd5fZo834+ktw=="
},
"node_modules/vanilla-picker": {
"version": "2.12.2",
@@ -956,9 +962,9 @@
}
},
"node_modules/vite": {
- "version": "4.4.11",
- "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
- "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
+ "version": "4.5.3",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
+ "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==",
"dev": true,
"dependencies": {
"esbuild": "^0.18.10",
diff --git a/package.json b/package.json
index 4ed0977..4759eec 100644
--- a/package.json
+++ b/package.json
@@ -21,6 +21,7 @@
"font-awesome": "^4.7.0",
"iconify-icon": "^1.0.8",
"jquery": "^3.7.1",
+ "select2": "^4.1.0-rc.0",
"sweetalert": "^2.1.2",
"trix": "^2.0.7",
"vanilla-picker": "^2.12.2"
diff --git a/resources/js/app.js b/resources/js/app.js
index 3103e5d..575eb2d 100644
--- a/resources/js/app.js
+++ b/resources/js/app.js
@@ -1 +1 @@
-import "./bootstrap";
+import "./bootstrap";
\ No newline at end of file
diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js
index d363730..8fe0fe9 100644
--- a/resources/js/bootstrap.js
+++ b/resources/js/bootstrap.js
@@ -20,8 +20,8 @@ window.swal = swal;
import utils from "./utils";
window.utils = utils;
-import $ from "jquery";
-window.$ = $;
+// import $ from "jquery";
+// window.$ = $;
import "iconify-icon";
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index d64960c..d996220 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -6,6 +6,7 @@
+