krgm.so-manager-dev.com/resources/views/admin/opes/list.blade.php
你的名字 9c51f711cd
All checks were successful
Deploy preview (main_ou) / deploy (push) Successful in 13s
main_と合わせるように再コミット
2025-09-01 12:12:02 +09:00

177 lines
10 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] オペレータマスタ')
@section('content')
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">オペレータマスタ</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">オペレータマスタ</li>
</ol>
</div>
</div>
</div>
</div>
<section class="content">
<div class="container-fluid">
{{-- 並び替え用 hidden --}}
<form action="{{ route('opes') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<!-- ツールバー -->
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('opes_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" formaction="{{ route('opes_import') }}">インポート</button>
<button type="submit" class="btn btn-sm btn-default mr10" formaction="{{ route('opes_export') }}">CSV出力</button>
<div class="d-flex justify-content-end">
{{ $list->appends(['sort' => $sort, 'sort_type' => $sort_type])->links('pagination') }}
</div>
</div>
<!-- メッセージ表示 -->
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> エラー:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> エラー:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
<!-- 単一テーブル構成 ----------------------------------------- -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('opes_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='ope_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_id"><span>オペレータID</span></th>
<th class="sorting {{ ($sort=='ope_name') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_name"><span>オペレータ名</span></th>
<th><span>パスワード</span></th>
<th class="sorting {{ ($sort=='ope_type') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_type"><span>オペレータ種別</span></th>
<th><span>メールアドレス</span></th>
<th class="sorting {{ ($sort=='ope_phone') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_phone"><span>電話番号</span></th>
<th><span>キュー1~13アラート送信</span></th>
<th><span>管理者権限</span></th>
<th><span>エリアマネージャー</span></th>
<th><span>エリアオペレーター</span></th>
<th><span>オペレーター権限</span></th>
<th class="sorting {{ ($sort=='ope_quit_flag') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_quit_flag"><span>退職フラグ</span></th>
<th class="sorting {{ ($sort=='ope_quitday') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_quitday"><span>退職日</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->ope_id }}">
<a href="{{ route('opes_info', ['id' => $item->ope_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $item->ope_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_name }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_pass }}</td>
<td class="sm-item text-left align-middle">{{ \App\Models\Ope::OPE_TYPE[$item->ope_type] }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_mail }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_phone }}</td>
<td class="sm-item text-left align-middle">
{{ $item->ope_sendalart_que1 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que2 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que3 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que4 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que5 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que6 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que7 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que8 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que9 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que10 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que11 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que12 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que13 ? 'はい' : 'いいえ' }}
</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth1 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth2 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth3 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth4 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_quit_flag ? '退職' : '在籍中' }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_quitday }}</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで ----------------------------------------- -->
</div>
</section>
<form action="{{ route('opes_export') }}" method="GET" id="form_export"></form>
@push('scripts')
<script>
// 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
});
// 削除確認
document.getElementById('delete')?.addEventListener('click', function(){
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
if (!anyChecked) {
alert('削除対象が選択されていません。');
return;
}
if (confirm('削除してよろしいですか?')) {
document.getElementById('form_delete').submit();
}
});
// ソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){
const form = document.getElementById('list-form');
const current = "{{ $sort ?? '' }}";
const currentType = "{{ $sort_type ?? '' }}";
const nextCol = this.getAttribute('sort');
let nextType = 'asc';
if (current === nextCol) {
nextType = (currentType === 'asc') ? 'desc' : 'asc';
}
form.querySelector('[name=sort]').value = nextCol;
form.querySelector('[name=sort_type]').value = nextType;
form.submit();
});
});
</script>
@endpush
@endsection