Use relative URLs for rebuild forms

Avoid mixed-content form submissions behind Coolify by rendering internal links and form actions as relative paths.
This commit is contained in:
Power BI Dev
2026-05-03 22:06:46 +07:00
parent b95d7fed02
commit 030bb7c174
17 changed files with 35 additions and 35 deletions

View File

@@ -36,7 +36,7 @@
@endif
<div class="grid gap-5 lg:grid-cols-[minmax(0,1fr)_420px]">
<form method="POST" action="{{ route('admin.data.mahasiswa.import.store') }}" enctype="multipart/form-data" class="rounded-xl border border-[#E5E7EB] bg-white p-6 shadow-[0_8px_12px_rgba(13,10,44,0.04)]">
<form method="POST" action="{{ route('admin.data.mahasiswa.import.store', [], false) }}" enctype="multipart/form-data" class="rounded-xl border border-[#E5E7EB] bg-white p-6 shadow-[0_8px_12px_rgba(13,10,44,0.04)]">
@csrf
<div class="grid gap-5">
<div>

View File

@@ -31,7 +31,7 @@
</div>
@endif
<form method="POST" action="{{ route('admin.pengumuman.store') }}" class="rounded-xl border border-[#E5E7EB] bg-white p-6 shadow-[0_8px_12px_rgba(13,10,44,0.04)]">
<form method="POST" action="{{ route('admin.pengumuman.store', [], false) }}" class="rounded-xl border border-[#E5E7EB] bg-white p-6 shadow-[0_8px_12px_rgba(13,10,44,0.04)]">
@csrf
<div class="grid gap-5">
<div>

View File

@@ -16,7 +16,7 @@
<div class="flex flex-wrap items-center gap-3">
<div class="rounded-md border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-3 text-sm text-[#15171A]">{{ $pageDate }}</div>
<div class="rounded-md border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-3 text-sm text-[#15171A]">{{ $user['username'] }} · {{ $user['nmprodi'] }}</div>
<form method="POST" action="{{ route('legacy.logout') }}">
<form method="POST" action="{{ route('legacy.logout', [], false) }}">
@csrf
<button type="submit" class="rounded-md bg-[#15171A] px-5.5 py-2.5 text-sm font-medium text-white hover:opacity-90">Logout</button>
</form>

View File

@@ -25,8 +25,8 @@
<div class="rounded-xl bg-white p-5 shadow-[0_8px_12px_rgba(13,10,44,0.04)] sm:p-7.5 xl:p-9">
<div class="mb-6 grid grid-cols-2 rounded-[14px] bg-[#F9FAFB] p-1.5 text-sm font-medium text-[#15171A]">
<a href="{{ route('legacy.login', 'mahasiswa') }}" class="rounded-[10px] px-4 py-3 text-center {{ $role === 'mahasiswa' ? 'bg-white shadow-[0_4px_10px_rgba(13,10,44,0.05)]' : 'text-[#5C6A78]' }}">Mahasiswa</a>
<a href="{{ route('legacy.login', 'dosen') }}" class="rounded-[10px] px-4 py-3 text-center {{ $role === 'dosen' ? 'bg-white shadow-[0_4px_10px_rgba(13,10,44,0.05)]' : 'text-[#5C6A78]' }}">Dosen</a>
<a href="{{ route('legacy.login', 'mahasiswa', false) }}" class="rounded-[10px] px-4 py-3 text-center {{ $role === 'mahasiswa' ? 'bg-white shadow-[0_4px_10px_rgba(13,10,44,0.05)]' : 'text-[#5C6A78]' }}">Mahasiswa</a>
<a href="{{ route('legacy.login', 'dosen', false) }}" class="rounded-[10px] px-4 py-3 text-center {{ $role === 'dosen' ? 'bg-white shadow-[0_4px_10px_rgba(13,10,44,0.05)]' : 'text-[#5C6A78]' }}">Dosen</a>
</div>
<div class="mb-6 inline-flex rounded-full border border-[#E5E7EB] bg-[#F9FAFB] px-3 py-1.5 text-sm font-medium text-[#15171A]">
@@ -43,7 +43,7 @@
</div>
@endif
<form method="POST" action="{{ route('legacy.authenticate', $role) }}">
<form method="POST" action="{{ route('legacy.authenticate', $role, false) }}">
@csrf
<div class="mb-4">
<label for="identifier" class="mb-3 block text-[14px] font-medium leading-[22px] text-[#15171A]">{{ $meta['input'] }}</label>
@@ -61,7 +61,7 @@
</div>
<div class="mb-7 flex items-center justify-between text-sm text-[#374151]">
<span>{{ $role === 'mahasiswa' ? 'Gunakan akun mahasiswa aktif' : ($role === 'dosen' ? 'Gunakan akun dosen aktif' : 'Akses admin belum tersedia') }}</span>
<a href="{{ route('role-login') }}" class="text-[#15171A]">Kembali</a>
<a href="{{ route('role-login', [], false) }}" class="text-[#15171A]">Kembali</a>
</div>
<button type="submit" class="flex w-full justify-center rounded-md bg-[#15171A] px-5 py-3.5 font-medium text-white hover:opacity-90 {{ $role === 'admin' ? 'opacity-75' : '' }}">{{ $role === 'mahasiswa' ? 'Masuk ke Portal Mahasiswa' : ($role === 'dosen' ? 'Masuk ke Dashboard Dosen' : 'Coba Masuk') }}</button>
</form>

View File

@@ -25,7 +25,7 @@
<div class="mt-6 space-y-4">
@foreach ($roles as $role)
<a href="{{ route('legacy.login', $role['slug']) }}" class="block rounded-xl border border-[#E5E7EB] bg-[#F9FAFB] px-5 py-4 transition hover:border-[#15171A] hover:bg-white">
<a href="{{ route('legacy.login', $role['slug'], false) }}" class="block rounded-xl border border-[#E5E7EB] bg-[#F9FAFB] px-5 py-4 transition hover:border-[#15171A] hover:bg-white">
<p class="text-base font-semibold text-[#15171A]">{{ $role['name'] }}</p>
<p class="mt-2 text-sm leading-7 text-[#5C6A78]">{{ $role['summary'] }}</p>
</a>

View File

@@ -51,7 +51,7 @@
<div class="flex flex-wrap items-center gap-3">
<div class="rounded-md border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-3 text-sm text-[#15171A]">{{ $pageDate }}</div>
<div class="rounded-md border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-3 text-sm text-[#15171A]">{{ $user['nip'] }} · {{ $user['nmprodi'] }}</div>
<form method="POST" action="{{ route('legacy.logout') }}">
<form method="POST" action="{{ route('legacy.logout', [], false) }}">
@csrf
<button type="submit" class="rounded-md bg-[#15171A] px-5.5 py-2.5 text-sm font-medium text-white hover:opacity-90">Logout</button>
</form>

View File

@@ -25,10 +25,10 @@
@php
$legacyAuth = session('legacy_auth');
$legacyRole = $legacyAuth['role'] ?? null;
$spotaLogoUrl = route('assets.spota-logo');
$spotaLogoUrl = route('assets.spota-logo', [], false);
$dashboardRoute = match ($legacyRole) {
'mahasiswa' => route('dashboard.mahasiswa'),
'dosen' => route('dashboard.dosen'),
'mahasiswa' => route('dashboard.mahasiswa', [], false),
'dosen' => route('dashboard.dosen', [], false),
default => null,
};
$isDashboardShell = isset($dashboardLayout) && $dashboardLayout === true;
@@ -37,7 +37,7 @@
<header class="fixed left-0 top-0 z-40 w-full border-b border-[#E5E7EB] bg-white">
<div class="mx-auto flex max-w-[1400px] items-center justify-between px-4 py-4 sm:px-6 xl:px-8 lg:relative">
<div class="flex w-full items-center justify-between lg:w-3/12">
<a href="{{ route('home') }}" class="inline-flex items-center">
<a href="{{ route('home', [], false) }}" class="inline-flex items-center">
<img src="{{ $spotaLogoUrl }}" alt="SPOTA" class="h-11 w-auto max-w-[180px] object-contain">
</a>
</div>
@@ -45,10 +45,10 @@
@if (! $isDashboardShell)
<nav>
<ul class="flex items-center gap-10 text-sm text-[#374151]">
<li><a href="{{ route('home') }}" class="hover:text-[#15171A]">Beranda</a></li>
<li><a href="{{ route('role-login') }}" class="hover:text-[#15171A]">Pilih Akun</a></li>
<li><a href="{{ route('legacy.login', 'mahasiswa') }}" class="hover:text-[#15171A]">Mahasiswa</a></li>
<li><a href="{{ route('legacy.login', 'dosen') }}" class="hover:text-[#15171A]">Dosen</a></li>
<li><a href="{{ route('home', [], false) }}" class="hover:text-[#15171A]">Beranda</a></li>
<li><a href="{{ route('role-login', [], false) }}" class="hover:text-[#15171A]">Pilih Akun</a></li>
<li><a href="{{ route('legacy.login', 'mahasiswa', false) }}" class="hover:text-[#15171A]">Mahasiswa</a></li>
<li><a href="{{ route('legacy.login', 'dosen', false) }}" class="hover:text-[#15171A]">Dosen</a></li>
</ul>
</nav>
@else
@@ -58,14 +58,14 @@
@endif
@if ($dashboardRoute && $isDashboardShell)
<div class="flex items-center gap-3">
<a href="{{ route('role-login') }}" class="rounded-md border border-[#E5E7EB] bg-white px-5.5 py-2.5 text-sm font-medium text-[#15171A] hover:bg-[#F3F4F6]">Portal</a>
<form method="POST" action="{{ route('legacy.logout') }}">
<a href="{{ route('role-login', [], false) }}" class="rounded-md border border-[#E5E7EB] bg-white px-5.5 py-2.5 text-sm font-medium text-[#15171A] hover:bg-[#F3F4F6]">Portal</a>
<form method="POST" action="{{ route('legacy.logout', [], false) }}">
@csrf
<button type="submit" class="rounded-md bg-[#15171A] px-5.5 py-2.5 text-sm font-medium text-white hover:opacity-90">Logout</button>
</form>
</div>
@else
<a href="{{ route('legacy.login', 'mahasiswa') }}" class="rounded-md bg-[#15171A] px-5.5 py-2.5 text-sm font-medium text-white hover:opacity-90">Masuk</a>
<a href="{{ route('legacy.login', 'mahasiswa', false) }}" class="rounded-md bg-[#15171A] px-5.5 py-2.5 text-sm font-medium text-white hover:opacity-90">Masuk</a>
@endif
</div>
</div>

View File

@@ -51,7 +51,7 @@
<div class="flex flex-wrap items-center gap-3">
<div class="rounded-md border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-3 text-sm text-[#15171A]">{{ $pageDate }}</div>
<div class="rounded-md border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-3 text-sm text-[#15171A]">{{ $user['nim'] }} · {{ $user['nmprodi'] }}</div>
<form method="POST" action="{{ route('legacy.logout') }}">
<form method="POST" action="{{ route('legacy.logout', [], false) }}">
@csrf
<button type="submit" class="rounded-md bg-[#15171A] px-5.5 py-2.5 text-sm font-medium text-white hover:opacity-90">Logout</button>
</form>

View File

@@ -16,7 +16,7 @@
<div class="flex flex-wrap items-center gap-3">
<div class="rounded-md border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-3 text-sm text-[#15171A]">{{ $pageDate }}</div>
<div class="rounded-md border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-3 text-sm text-[#15171A]">{{ $user['username'] }} · {{ $user['nmprodi'] }}</div>
<form method="POST" action="{{ route('legacy.logout') }}">
<form method="POST" action="{{ route('legacy.logout', [], false) }}">
@csrf
<button type="submit" class="rounded-md bg-[#15171A] px-5.5 py-2.5 text-sm font-medium text-white hover:opacity-90">Logout</button>
</form>

View File

@@ -40,7 +40,7 @@
</div>
<div class="flex flex-wrap items-center gap-3">
<div class="rounded-md border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-3 text-sm text-[#15171A]">{{ $user['nim'] }} · {{ $user['nmprodi'] }}</div>
<form method="POST" action="{{ route('legacy.logout') }}">
<form method="POST" action="{{ route('legacy.logout', [], false) }}">
@csrf
<button type="submit" class="rounded-md bg-[#15171A] px-5.5 py-2.5 text-sm font-medium text-white hover:opacity-90">Logout</button>
</form>

View File

@@ -24,7 +24,7 @@
<div class="flex flex-wrap gap-3">
<button type="submit" class="template-button-dark">{{ $formMode === 'create' ? 'Simpan Data' : 'Simpan Perubahan' }}</button>
<a href="{{ route('dosen.penawaran.index') }}" class="rounded-md border border-[#D1D5DB] bg-white px-4 py-2.5 text-sm font-medium text-[#15171A] hover:bg-[#F9FAFB]">Kembali</a>
<a href="{{ route('dosen.penawaran.index', [], false) }}" class="rounded-md border border-[#D1D5DB] bg-white px-4 py-2.5 text-sm font-medium text-[#15171A] hover:bg-[#F9FAFB]">Kembali</a>
</div>
</form>
</section>

View File

@@ -4,7 +4,7 @@
<p class="mt-2 text-sm text-[#6B7280]">Diposting {{ \Carbon\Carbon::parse($pengumumanItem->tgl)->locale('id')->translatedFormat('j F Y, H:i') }}</p>
<div class="prose mt-6 max-w-none text-[#374151]">{!! $pengumumanItem->isi !!}</div>
<div class="mt-6">
<a href="{{ route('dosen.pengumuman.index') }}" class="inline-flex items-center rounded-md border border-[#D1D5DB] bg-white px-4 py-2.5 text-sm font-medium text-[#15171A] hover:bg-[#F9FAFB]">Kembali</a>
<a href="{{ route('dosen.pengumuman.index', [], false) }}" class="inline-flex items-center rounded-md border border-[#D1D5DB] bg-white px-4 py-2.5 text-sm font-medium text-[#15171A] hover:bg-[#F9FAFB]">Kembali</a>
</div>
</section>
</x-dosen.partials.page-shell>

View File

@@ -15,13 +15,13 @@
SPOTA membantu mahasiswa mengajukan outline tugas akhir, memantau status persetujuan, melihat jadwal seminar atau sidang, serta menerima pengumuman akademik. Dosen dan admin dapat meninjau usulan, mengelola penawaran judul, dan memantau proses tugas akhir dalam satu sistem.
</p>
<div class="mt-8 flex flex-col gap-3 sm:flex-row">
<a href="{{ route('legacy.login', 'mahasiswa') }}" class="inline-flex items-center justify-center rounded-2xl bg-slate-950 px-6 py-3.5 text-sm font-bold text-white shadow-lg shadow-slate-950/15 transition hover:-translate-y-0.5 hover:bg-slate-800">
<a href="{{ route('legacy.login', 'mahasiswa', false) }}" class="inline-flex items-center justify-center rounded-2xl bg-slate-950 px-6 py-3.5 text-sm font-bold text-white shadow-lg shadow-slate-950/15 transition hover:-translate-y-0.5 hover:bg-slate-800">
Masuk Mahasiswa
</a>
<a href="{{ route('legacy.login', 'dosen') }}" class="inline-flex items-center justify-center rounded-2xl border border-slate-200 bg-white px-6 py-3.5 text-sm font-bold text-slate-950 transition hover:-translate-y-0.5 hover:border-emerald-300 hover:text-emerald-800">
<a href="{{ route('legacy.login', 'dosen', false) }}" class="inline-flex items-center justify-center rounded-2xl border border-slate-200 bg-white px-6 py-3.5 text-sm font-bold text-slate-950 transition hover:-translate-y-0.5 hover:border-emerald-300 hover:text-emerald-800">
Masuk Dosen
</a>
<a href="{{ route('legacy.login', 'admin') }}" class="inline-flex items-center justify-center rounded-2xl border border-slate-200 bg-slate-50 px-6 py-3.5 text-sm font-bold text-slate-700 transition hover:-translate-y-0.5 hover:bg-white hover:text-slate-950">
<a href="{{ route('legacy.login', 'admin', false) }}" class="inline-flex items-center justify-center rounded-2xl border border-slate-200 bg-slate-50 px-6 py-3.5 text-sm font-bold text-slate-700 transition hover:-translate-y-0.5 hover:bg-white hover:text-slate-950">
Admin Prodi
</a>
</div>

View File

@@ -9,7 +9,7 @@
<span>{{ $penawaran->waktuInput ? \Carbon\Carbon::parse($penawaran->waktuInput)->locale('id')->translatedFormat('j F Y, H:i') : '-' }}</span>
</div>
</div>
<form method="POST" action="{{ route('mahasiswa.penawaran.book', ['id' => $penawaran->idPenawaran]) }}" class="shrink-0">
<form method="POST" action="{{ route('mahasiswa.penawaran.book', ['id' => $penawaran->idPenawaran], false) }}" class="shrink-0">
@csrf
<button type="submit" class="rounded-md bg-[#15171A] px-5 py-2.5 text-sm font-medium text-white hover:opacity-90">Booking Judul Ini</button>
</form>

View File

@@ -1,6 +1,6 @@
<x-mahasiswa.partials.page-shell :title="$title" :sidebar="$sidebar" :page-title="$pageTitle" :page-description="$pageDescription" :page-date="$pageDate" :user="$user">
<section class="space-y-5">
<form method="GET" action="{{ route('mahasiswa.penawaran.index') }}" class="rounded-xl border border-[#E5E7EB] bg-white p-5 shadow-[0_8px_12px_rgba(13,10,44,0.04)]">
<form method="GET" action="{{ route('mahasiswa.penawaran.index', [], false) }}" class="rounded-xl border border-[#E5E7EB] bg-white p-5 shadow-[0_8px_12px_rgba(13,10,44,0.04)]">
<div class="grid gap-4 lg:grid-cols-[220px_minmax(0,1fr)_auto] lg:items-end">
<div>
<label class="text-sm font-semibold text-[#15171A]">Status Judul</label>
@@ -58,7 +58,7 @@
<div class="flex justify-end gap-2 whitespace-nowrap">
<a href="{{ route('mahasiswa.penawaran.show', ['id' => $item->idPenawaran], false) }}" class="rounded-md border border-[#D1D5DB] px-3 py-2 text-xs font-medium text-[#15171A] hover:bg-[#F9FAFB]">Lihat</a>
@if ($available)
<form method="POST" action="{{ route('mahasiswa.penawaran.book', ['id' => $item->idPenawaran]) }}">
<form method="POST" action="{{ route('mahasiswa.penawaran.book', ['id' => $item->idPenawaran], false) }}">
@csrf
<button type="submit" class="rounded-md bg-[#15171A] px-3 py-2 text-xs font-medium text-white hover:opacity-90">Booking</button>
</form>

View File

@@ -14,7 +14,7 @@
<p class="mt-2">Pastikan file yang diupload berupa PDF dan draft sudah diperiksa. Jika terdapat kesalahan upload, hubungi administrator prodi.</p>
</div>
<form method="POST" action="{{ route('mahasiswa.praoutline.store') }}" enctype="multipart/form-data" class="rounded-xl border border-[#E5E7EB] bg-white p-6 shadow-[0_8px_12px_rgba(13,10,44,0.04)]">
<form method="POST" action="{{ route('mahasiswa.praoutline.store', [], false) }}" enctype="multipart/form-data" class="rounded-xl border border-[#E5E7EB] bg-white p-6 shadow-[0_8px_12px_rgba(13,10,44,0.04)]">
@csrf
<div class="grid gap-5">
<div>

View File

@@ -20,9 +20,9 @@ Route::get('/', function () {
['label' => 'Admin', 'value' => 'Data master dan pengaturan prodi'],
],
'highlights' => [
['number' => '01', 'label' => 'Mahasiswa', 'href' => route('legacy.login', 'mahasiswa'), 'description' => 'Pantau status usulan, baca pengumuman, upload praoutline, dan booking penawaran judul.'],
['number' => '02', 'label' => 'Dosen', 'href' => route('legacy.login', 'dosen'), 'description' => 'Kelola penawaran judul, review praoutline, lihat bimbingan, dan monitoring mahasiswa.'],
['number' => '03', 'label' => 'Admin', 'href' => route('legacy.login', 'admin'), 'description' => 'Kelola data mahasiswa, dosen, kelompok keahlian, pengumuman, jadwal, dan pengaturan prodi.'],
['number' => '01', 'label' => 'Mahasiswa', 'href' => route('legacy.login', 'mahasiswa', false), 'description' => 'Pantau status usulan, baca pengumuman, upload praoutline, dan booking penawaran judul.'],
['number' => '02', 'label' => 'Dosen', 'href' => route('legacy.login', 'dosen', false), 'description' => 'Kelola penawaran judul, review praoutline, lihat bimbingan, dan monitoring mahasiswa.'],
['number' => '03', 'label' => 'Admin', 'href' => route('legacy.login', 'admin', false), 'description' => 'Kelola data mahasiswa, dosen, kelompok keahlian, pengumuman, jadwal, dan pengaturan prodi.'],
],
]);
})->name('home');