176 lines
8.4 KiB
PHP
Executable File
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
|