krgm.so-manager-dev.com/resources/views/admin/users/edit.blade.php
你的名字 a17960f61c
All checks were successful
Deploy main / deploy (push) Successful in 22s
【利用者マスタ】共通取り込み
2025-10-30 16:29:14 +09:00

155 lines
4.8 KiB
PHP

@extends('layouts.app')
@section('title', '利用者マスタ|編集')
@section('content')
@php
/** @var \Illuminate\Support\ViewErrorBag $errors */
$isEdit = isset($user);
$value = static function (string $key, $default = '') use ($isEdit, $user) {
return old($key, $isEdit ? ($user->{$key} ?? $default) : $default);
};
$hasDeleteRoute = Route::has('users_delete');
$operators = $operators ?? collect();
$categoryOptions = $categoryOptions ?? [];
@endphp
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">{{ $isEdit ? '編集' : '新規' }}</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">ホーム</a></li>
<li class="breadcrumb-item"><a href="{{ route('users') }}">利用者マスタ</a></li>
<li class="breadcrumb-item active">{{ $isEdit ? '編集' : '新規' }}</li>
</ol>
</div>
</div>
</div>
</div>
<section class="content">
<div class="container-fluid">
{{-- 成功/エラー表示 --}}
@if (session('status'))
<div class="alert alert-success">{{ session('status') }}</div>
@endif
@if ($errors->any())
<div class="alert alert-danger">
<ul class="mb-0">
@foreach ($errors->all() as $e)
<li>{{ $e }}</li>
@endforeach
</ul>
</div>
@endif
{{-- 共通フォーム部分 --}}
@include('admin.users._form', [
'isEdit' => $isEdit,
'user' => $user ?? null,
'value' => $value,
'operators' => $operators,
'categoryOptions' => $categoryOptions,
])
{{-- 削除用フォーム(非表示) --}}
<form id="form_delete" action="{{ route('users_delete') }}" method="post" class="d-none">
@csrf
<input type="hidden" name="user_seq" value="{{ $user->user_seq ?? '' }}">
</form>
@if ($isEdit && $hasDeleteRoute)
<form method="post" action="{{ route('users_delete') }}" id="quitForm" class="d-none">
@csrf
<input type="hidden" name="user_seq" value="{{ $user->user_seq ?? '' }}">
</form>
@endif
</div>
</section>
{{-- jQuery & jquery-confirm --}}
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jquery-confirm@3.3.4/css/jquery-confirm.min.css">
<script src="https://cdn.jsdelivr.net/npm/jquery-confirm@3.3.4/js/jquery-confirm.min.js"></script>
@push('scripts')
{{-- 退会ボタン確認ダイアログ --}}
@if ($isEdit && $hasDeleteRoute)
<script>
$(function () {
$('#quitForm').on('click', function (e) {
e.preventDefault();
$.confirm({
title: '退会確認',
content: 'この利用者を退会処理します。<br>よろしいですか?',
type: 'red', // 可选: 'blue', 'green', 'orange', 'red'
buttons: {
はい: {
text: 'はい',
btnClass: 'btn-danger',
keys: ['enter'],
action: function () {
// ✅ 退会専用 hidden フィールド追加
$('<input>').attr({
type: 'hidden',
name: 'quit_action',
value: '1'
}).appendTo('#form_edit');
$('#form_edit').submit();
}
},
いいえ: {
text: 'いいえ',
btnClass: 'btn-default',
action: function () {}
}
}
});
});
});
</script>
@endif
{{-- 本人確認写真削除処理 --}}
<script>
(function () {
const hookDelete = function(btnId, hiddenId, fileId, label) {
const btn = document.getElementById(btnId);
if (!btn) return;
btn.addEventListener('click', function () {
if (window.confirm(label + ' を削除します。よろしいですか?')) {
const h = document.getElementById(hiddenId);
if (h) h.value = '1';
const f = document.getElementById(fileId);
if (f) f.value = '';
btn.classList.add('disabled');
btn.textContent = '削除予定';
}
});
};
hookDelete('btn-delete-photo1', 'delete_photo1', 'id_photo1', '本人確認写真ファイル1');
hookDelete('btn-delete-photo2', 'delete_photo2', 'id_photo2', '本人確認写真ファイル2');
})();
</script>
@endpush
<style>
.bg-secondary-light { background: #f8fafc !important; }
.form-check { display: inline-flex; align-items: center; }
.form-check + .form-check { margin-left: 1rem; }
</style>
@endsection