dikplhd/resources/views/modules/opendata/dataset-tambahan/form.blade.php

176 lines
10 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

@extends('layouts.master')
@section('content')
<div class="flex-1 overflow-y-auto p-8 custom-scrollbar">
<div class="p-8 bg-white rounded-3xl border border-slate-200 shadow-sm overflow-hidden">
<form action="{{route($route.'.store')}}" method="POST" class="" enctype="multipart/form-data">
{{csrf_field()}}
<input type="hidden" name="secure_id" value="{{@$keyId}}">
<div class="flex flex-col p-3 gap-3">
<h5 class="text-lg text-slate-700 font-bold">Informasi Instansi</h5>
<hr>
<div class="flex gap-4 mt-5">
<label class="mb-3 w-1/2 font-semibold required">Instansi</label>
<select name="instansi_id" required class="p-2 border rounded w-full instansi_id select2 @error('instansi_id') is-invalid @enderror" id="">
<option value="">-</option>
@foreach($instansi as $dataInstansi)
<option {{@$item->instansi_id == $dataInstansi->MsInstansiId ? 'selected' : ''}} value="{{encode_id($dataInstansi->MsInstansiId)}}">{{$dataInstansi->name}}</option>
@endforeach
</select>
@error('instansi_id')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
</div>
<div class="flex gap-4">
<label class="mb-3 w-1/2 font-semibold required">Sumber Data Terkait</label>
<select name="template_id" required class="p-2 border rounded w-full template_id select2 @error('template_id') is-invalid @enderror" id="">
<option value="">-</option>
@foreach($template as $dataTemplate)
<option {{@$item->template_id == $dataTemplate->MsTemplateId ? 'selected' : ''}} data-template="{{asset($dataTemplate->template_url)}}" value="{{encode_id($dataTemplate->MsTemplateId)}}">Tabel {{$dataTemplate->nomor_tabel}} - {{$dataTemplate->name}}</option>
@endforeach
</select>
@error('template_id')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
</div>
<h5 class="text-lg text-slate-700 font-bold">Informasi Dataset</h5>
<hr>
<div class="flex gap-4 mt-5">
<label class="mb-3 w-1/2 font-semibold required">Nama Dataset</label>
<input type="text" value="{{@$item->name ? @$item->name : old('name')}}" name="name" class="p-2 border rounded w-full @error('name') is-invalid @enderror" placeholder="Masukan Nama Dataset" required>
@error('name')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
</div>
<div class="flex gap-4">
<label class="mb-3 w-1/2 font-semibold required">Unggah Berkas</label>
<div class="flex flex-col w-full justify-center items-start gap-2">
<input type="file" accept=".xls,.xlsx" value="{{@$item->file ? @$item->file : old('file')}}" name="file" class="p-2 border rounded w-full @error('file') is-invalid @enderror" placeholder="Masukan File Dataset" {{@$item->file ? '' : 'required'}}>
<small><i>Masukan Ekstensi File : .pdf,.xls,.xlsx</i></small>
@if(@$item->file)
<a href="{{asset('uploads/'.$item->file)}}" class="btn bg-success text-white mt-3"><i class="ri-download-line"></i>&nbsp;Download File</a>
@endif
</div>
@error('file')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
</div>
<div class="flex gap-4">
<label class="mb-3 w-1/2 font-semibold required">Deskripsi Dataset</label>
<textarea name="deskripsi" rows="10" required class="p-2 border rounded w-full @error('deskripsi') is-invalid @enderror" id="">{{@$item->deskripsi}}</textarea>
@error('deskripsi')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
</div>
<div class="flex gap-4">
<label class="mb-3 w-1/2 font-semibold">Tahun Sistem SLHD</label>
<select name="tahun" class="p-2 bg-gray-200 rounded border w-full" id="">
<option value="{{@$item->tahun ? @$item->tahun : date('Y')}}">{{@$item->tahun ? @$item->tahun : date('Y')}}</option>
{{-- @for($i = (date('Y')-5); date('Y') >= $i ; $i++)
<option {{ (@$item ? (@$item->tahun == $i ? 'selected' : '') : ($i == date('Y') ? 'selected' : '') )}} value="{{$i}}">{{$i}}</option>
@endfor --}}
</select>
</div>
<div class="flex gap-4">
<label class="mb-3 w-1/2 font-semibold">Tahun Data</label>
<select name="tahun_data" class="p-2 bg-white rounded border w-full" id="">
@for($i = (date('Y')-5); date('Y')-1 >= $i ; $i++)
<option {{ (@$item ? (@$item->tahun_data == $i ? 'selected' : '') : ($i == date('Y')-1 ? 'selected' : '') )}} value="{{$i}}">{{$i}}</option>
@endfor
</select>
</div>
{{-- <div class="flex gap-4">
<label class="mb-3 w-1/2 font-semibold required">Data Tahun</label>
<select name="tahun" class="p-2 border rounded w-full" id="">
<option value="{{@$item->tahun ? @$item->tahun : date('Y')}}">{{@$item->tahun ? @$item->tahun : date('Y')}}</option>
</select>
</div> --}}
</div>
<div class="flex justify-center items-center gap-2">
<a href="{{route($route.'.index')}}" class="bg-red-500 rounded py-2 px-3 text-white flex items-center"><i data-lucide="arrow-left" class="w-4 h-4 mr-2"></i><span>Batal</span></a>
<button type="submit" class="bg-emerald-500 rounded py-2 px-3 text-white flex items-center"><i data-lucide="save" class="w-4 h-4 mr-2"></i><span> <span>Simpan</span></button>
</div>
</form>
</div>
</div>
@endsection
@section('js')
<script>
const input = document.getElementById('tag-input');
const container = document.getElementById('tag-container');
input.addEventListener('keydown', function (e) {
if (e.key === 'Enter' && this.value.trim() !== '') {
e.preventDefault();
const tagText = this.value.trim();
// Buat tag baru
const tag = document.createElement('span');
tag.className = 'inline-flex items-center px-2 py-1 bg-primary text-white text-sm rounded';
tag.innerHTML = `${tagText} <button type="button" class="ml-1 text-blue-500 hover:text-red-600">&times;</button>`;
// Hidden input untuk dikirim ke server
const hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden';
hiddenInput.name = 'tags[]';
hiddenInput.value = tagText;
// Tempelkan ke tag
tag.appendChild(hiddenInput);
// Tambahkan tag ke container sebelum input
container.insertBefore(tag, input);
// Reset input
this.value = '';
// Hapus tag saat tombol × ditekan
tag.querySelector('button').addEventListener('click', () => tag.remove());
}
});
</script>
<script type="text/javascript">
$('.template_id').on('change',function(){
var template = $(this).find(':selected').attr('data-template');
$('.btnDownload').attr('href',template);
});
$('#template_default').on('change',function(){
var instansi_id = $('.instansi_id').find(':selected').val();
var val = $(this).find(':selected').val();
var template = $('.template_id').find(':selected').attr('data-template');
if(instansi_id == ''){
toastr.error("Data instansi_id Belum Dipilih", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
$('#template_default').val('');
}else{
if(val == 1){
$('.btnDownload').attr('href',template);
$('.btnDownload').removeClass('hidden');
}else{
$('.btnDownload').attr('href',"#");
$('.btnDownload').addClass('hidden');
}
}
});
$(document).ready(function() {
$('.numberInput').on('input', function() {
this.value = this.value.replace(/[^0-9]/g, ''); // Hanya angka 0-9
});
$('#togglePassword').on('click', function() {
let passwordField = $('#password');
let icon = $(this).find('i');
// Cek apakah input saat ini bertipe password
if (passwordField.attr('type') === 'password') {
passwordField.attr('type', 'text'); // Ubah ke teks
icon.removeClass('fa-eye').addClass('fa-eye-slash'); // Ganti ikon
} else {
passwordField.attr('type', 'password'); // Ubah ke password
icon.removeClass('fa-eye-slash').addClass('fa-eye'); // Kembalikan ikon
}
});
});
</script>
@endsection