2025-08-10 18:09:07 +02:00

176 lines
8.4 KiB
PHP
Executable File

@extends('layouts.app')
@section('title', 'Neuen Lack hinzufügen - NeoNail DB')
@section('content')
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">
<h4 class="mb-0">
<i class="fas fa-plus me-2"></i>Neuen NeoNail-Lack hinzufügen
</h4>
</div>
<div class="card-body">
<div class="alert alert-info">
<i class="fas fa-info-circle me-2"></i>
<strong>Wichtig:</strong> Der neue Lack wird automatisch zum Hauptkatalog hinzugefügt und steht dann allen Benutzern zur Verfügung.
Er wird auch automatisch zu Ihrer Sammlung hinzugefügt.
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul class="mb-0">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form method="POST" action="https://neonail.vogt.de.com/create-nail-polish" enctype="multipart/form-data">
@csrf
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="name" class="form-label">Name des Lackes *</label>
<input type="text" class="form-control @error('name') is-invalid @enderror"
id="name" name="name" value="{{ old('name') }}"
placeholder="z.B. Classic Red" required>
@error('name')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="number" class="form-label">Nummer des Lackes *</label>
<input type="text" class="form-control @error('number') is-invalid @enderror"
id="number" name="number" value="{{ old('number') }}"
placeholder="z.B. 001" required>
@error('number')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="manufacturer_id" class="form-label">Hersteller *</label>
<select class="form-control @error('manufacturer_id') is-invalid @enderror"
id="manufacturer_id" name="manufacturer_id" required>
<option value="">Hersteller auswählen...</option>
@foreach(\App\Models\Manufacturer::orderBy('name')->get() as $manufacturer)
<option value="{{ $manufacturer->id }}" {{ old('manufacturer_id') == $manufacturer->id ? 'selected' : '' }}>
{{ $manufacturer->name }}
</option>
@endforeach
</select>
@error('manufacturer_id')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
<div class="form-text">
<a href="https://neonail.vogt.de.com/manufacturers/create" target="_blank" class="text-decoration-none">
<i class="fas fa-plus"></i> Neuen Hersteller erstellen
</a>
</div>
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="new_manufacturer" class="form-label">Oder neuen Hersteller erstellen</label>
<input type="text" class="form-control"
id="new_manufacturer" name="new_manufacturer"
placeholder="Name des neuen Herstellers">
<div class="form-text">
Falls der Hersteller noch nicht existiert, können Sie ihn hier erstellen.
</div>
</div>
</div>
</div>
<div class="mb-3">
<label for="image" class="form-label">Bild des Lackes (optional)</label>
<input type="file" class="form-control @error('image') is-invalid @enderror"
id="image" name="image" accept="image/*">
<div class="form-text">
<i class="fas fa-camera me-1"></i>
Sie können ein Bild mit der Handykamera aufnehmen oder eine Datei auswählen.
Maximale Größe: 10MB. Das Bild wird automatisch optimiert.
</div>
@error('image')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary flex-fill">
<i class="fas fa-save me-2"></i>Lack erstellen & zur Sammlung hinzufügen
</button>
<a href="{{ route('user-nail-polishes.index') }}" class="btn btn-outline-secondary">
<i class="fas fa-times me-2"></i>Abbrechen
</a>
</div>
</form>
</div>
</div>
<!-- Hinweise -->
<div class="card mt-4">
<div class="card-header">
<h5 class="mb-0">
<i class="fas fa-lightbulb me-2"></i>Hinweise
</h5>
</div>
<div class="card-body">
<ul class="mb-0">
<li>Der Lack wird automatisch zum Hauptkatalog hinzugefügt</li>
<li>Andere Benutzer können den Lack dann zu ihrer Sammlung hinzufügen</li>
<li>Das Bild wird automatisch auf 400x400 Pixel optimiert</li>
<li>Sie können den Lack später in Ihren Einstellungen bearbeiten</li>
<li>Neue Hersteller werden automatisch erstellt und stehen allen zur Verfügung</li>
</ul>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const manufacturerSelect = document.getElementById('manufacturer_id');
const newManufacturerInput = document.getElementById('new_manufacturer');
// Wenn ein Hersteller ausgewählt wird, leere das neue Hersteller Feld
manufacturerSelect.addEventListener('change', function() {
if (this.value) {
newManufacturerInput.value = '';
newManufacturerInput.disabled = true;
} else {
newManufacturerInput.disabled = false;
}
});
// Wenn ein neuer Hersteller eingegeben wird, leere die Auswahl
newManufacturerInput.addEventListener('input', function() {
if (this.value.trim()) {
manufacturerSelect.value = '';
manufacturerSelect.disabled = true;
} else {
manufacturerSelect.disabled = false;
}
});
// Initial state
if (newManufacturerInput.value.trim()) {
manufacturerSelect.disabled = true;
}
if (manufacturerSelect.value) {
newManufacturerInput.disabled = true;
}
});
</script>
@endsection