Files
usher-manage-stack/resources/views/admin/settings/advanced.blade.php
2025-11-20 23:21:05 +08:00

240 lines
16 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.
<x-app-layout>
<x-slot name="header">
<h2 class="text-xl font-semibold leading-tight text-gray-800">
系統設定 - 進階設定
</h2>
</x-slot>
<div class="py-12">
<div class="mx-auto max-w-7xl sm:px-6 lg:px-8">
<div class="grid grid-cols-1 gap-6 lg:grid-cols-4">
<!-- Sidebar -->
<div class="lg:col-span-1">
@include('admin.settings._sidebar')
</div>
<!-- Main Content -->
<div class="lg:col-span-3">
@if (session('status'))
<div class="mb-6 rounded-md bg-green-50 p-4">
<p class="text-sm font-medium text-green-800">{{ session('status') }}</p>
</div>
@endif
<div class="bg-white shadow sm:rounded-lg">
<div class="px-6 py-5 border-b border-gray-200">
<h3 class="text-lg font-medium text-gray-900">進階設定</h3>
<p class="mt-1 text-sm text-gray-600">配置 QR Code、統計、版本控制和其他進階功能</p>
</div>
<form action="{{ route('admin.settings.advanced.update') }}" method="POST" class="px-6 py-6 space-y-8">
@csrf
<!-- QR Code Settings Section -->
<div class="border-b border-gray-200 pb-6">
<h4 class="text-base font-medium text-gray-900 mb-4">QR Code 設定</h4>
<div class="grid grid-cols-1 gap-6 md:grid-cols-2">
<div>
<label for="qr_code_size" class="block text-sm font-medium text-gray-700">
QR Code 尺寸(像素)
</label>
<input type="number" name="qr_code_size" id="qr_code_size"
value="{{ old('qr_code_size', $settings['qr_code_size']) }}"
min="100" max="1000"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
@error('qr_code_size')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="qr_code_format" class="block text-sm font-medium text-gray-700">
QR Code 格式
</label>
<select name="qr_code_format" id="qr_code_format"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
<option value="png" {{ $settings['qr_code_format'] === 'png' ? 'selected' : '' }}>PNG</option>
<option value="svg" {{ $settings['qr_code_format'] === 'svg' ? 'selected' : '' }}>SVG</option>
</select>
@error('qr_code_format')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
</div>
</div>
<!-- Statistics Settings Section -->
<div class="border-b border-gray-200 pb-6">
<h4 class="text-base font-medium text-gray-900 mb-4">統計報表設定</h4>
<div class="grid grid-cols-1 gap-6 md:grid-cols-2">
<div>
<label for="statistics_time_range" class="block text-sm font-medium text-gray-700">
統計時間範圍(天)
</label>
<input type="number" name="statistics_time_range" id="statistics_time_range"
value="{{ old('statistics_time_range', $settings['statistics_time_range']) }}"
min="7" max="365"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
<p class="mt-1 text-sm text-gray-500">預設顯示的統計天數</p>
@error('statistics_time_range')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="statistics_top_n" class="block text-sm font-medium text-gray-700">
熱門項目顯示數量
</label>
<input type="number" name="statistics_top_n" id="statistics_top_n"
value="{{ old('statistics_top_n', $settings['statistics_top_n']) }}"
min="5" max="100"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
<p class="mt-1 text-sm text-gray-500">顯示前 N 個熱門文件</p>
@error('statistics_top_n')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
</div>
</div>
<!-- Document Settings Section -->
<div class="border-b border-gray-200 pb-6">
<h4 class="text-base font-medium text-gray-900 mb-4">文件設定</h4>
<div class="grid grid-cols-1 gap-6 md:grid-cols-2">
<div>
<label for="default_expiration_days" class="block text-sm font-medium text-gray-700">
預設到期天數
</label>
<input type="number" name="default_expiration_days" id="default_expiration_days"
value="{{ old('default_expiration_days', $settings['default_expiration_days']) }}"
min="0" max="3650"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
<p class="mt-1 text-sm text-gray-500">新文件的預設到期天數0 表示永不過期)</p>
@error('default_expiration_days')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="expiration_warning_days" class="block text-sm font-medium text-gray-700">
到期前提醒天數
</label>
<input type="number" name="expiration_warning_days" id="expiration_warning_days"
value="{{ old('expiration_warning_days', $settings['expiration_warning_days']) }}"
min="1" max="365"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
<p class="mt-1 text-sm text-gray-500">到期前幾天發送提醒通知</p>
@error('expiration_warning_days')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="max_tags_per_document" class="block text-sm font-medium text-gray-700">
每個文件的標籤上限
</label>
<input type="number" name="max_tags_per_document" id="max_tags_per_document"
value="{{ old('max_tags_per_document', $settings['max_tags_per_document']) }}"
min="1" max="50"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
@error('max_tags_per_document')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="default_access_level" class="block text-sm font-medium text-gray-700">
預設存取權限
</label>
<select name="default_access_level" id="default_access_level"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
<option value="public" {{ $settings['default_access_level'] === 'public' ? 'selected' : '' }}>公開</option>
<option value="members" {{ $settings['default_access_level'] === 'members' ? 'selected' : '' }}>會員</option>
<option value="admin" {{ $settings['default_access_level'] === 'admin' ? 'selected' : '' }}>管理員</option>
<option value="board" {{ $settings['default_access_level'] === 'board' ? 'selected' : '' }}>理事會</option>
</select>
<p class="mt-1 text-sm text-gray-500">新文件的預設存取權限</p>
@error('default_access_level')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
</div>
<div class="mt-4">
<div class="flex items-start">
<div class="flex items-center h-5">
<input type="checkbox" name="auto_archive_enabled" id="auto_archive_enabled"
{{ $settings['auto_archive_enabled'] ? 'checked' : '' }}
class="w-4 h-4 text-indigo-600 border-gray-300 rounded focus:ring-indigo-500">
</div>
<div class="ml-3 text-sm">
<label for="auto_archive_enabled" class="font-medium text-gray-700">自動封存過期文件</label>
<p class="text-gray-500">當文件到期時自動將其封存</p>
</div>
</div>
</div>
</div>
<!-- System Settings Section -->
<div>
<h4 class="text-base font-medium text-gray-900 mb-4">系統設定</h4>
<div class="grid grid-cols-1 gap-6 md:grid-cols-2">
<div>
<label for="audit_log_retention_days" class="block text-sm font-medium text-gray-700">
稽核記錄保留天數
</label>
<input type="number" name="audit_log_retention_days" id="audit_log_retention_days"
value="{{ old('audit_log_retention_days', $settings['audit_log_retention_days']) }}"
min="30" max="3650"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
<p class="mt-1 text-sm text-gray-500">稽核記錄保留的天數</p>
@error('audit_log_retention_days')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="max_versions_retain" class="block text-sm font-medium text-gray-700">
版本保留數量
</label>
<input type="number" name="max_versions_retain" id="max_versions_retain"
value="{{ old('max_versions_retain', $settings['max_versions_retain']) }}"
min="0" max="100"
class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm"
required>
<p class="mt-1 text-sm text-gray-500">每個文件保留的最大版本數0 表示無限制)</p>
@error('max_versions_retain')
<p class="mt-1 text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
</div>
</div>
<!-- Submit Button -->
<div class="flex items-center justify-end pt-4 border-t">
<button type="submit"
class="inline-flex justify-center rounded-md border border-transparent bg-indigo-600 py-2 px-4 text-sm font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">
儲存變更
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</x-app-layout>