92 lines
3.1 KiB
Vue
92 lines
3.1 KiB
Vue
<script setup>
|
|
import { ref } from 'vue';
|
|
import { useForm } from '@inertiajs/inertia-vue3';
|
|
import Input from '../../Share/Components/Input.vue';
|
|
|
|
const props = defineProps({
|
|
category: {
|
|
type: Object,
|
|
required: true,
|
|
},
|
|
});
|
|
|
|
const visibleCheckbox = ref(props.category.visible);
|
|
const defaultCheckbox = ref(props.category.default);
|
|
|
|
const form = useForm({
|
|
name: props.category.name,
|
|
slug: props.category.slug,
|
|
priority: props.category.priority,
|
|
visible: visibleCheckbox,
|
|
default: defaultCheckbox,
|
|
});
|
|
|
|
function updateProject() {
|
|
form.clearErrors();
|
|
form.put(`/dashboard/category/${props.category.id}`);
|
|
if (defaultCheckbox.value)
|
|
visibleCheckbox.value = true;
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<InertiaHead title="Edytuj projekt" />
|
|
<div class="p-4">
|
|
<header class="flex items-center justify-between pb-4">
|
|
<div class="flex items-center gap-2">
|
|
<InertiaLink
|
|
as="button"
|
|
href="/dashboard"
|
|
class="px-2 text-xl text-gray-700 hover:text-black"
|
|
title="Wróc do dashboard"><FontAwesomeIcon :icon="['fas', 'caret-left']" /></InertiaLink>
|
|
<h1 class="text-3xl font-roboto font-light">Edytuj {{ category.name }}</h1>
|
|
</div>
|
|
<InertiaLink
|
|
as="button"
|
|
:href="`/dashboard/category/${category.id}/delete`"
|
|
class="flex items-center gap-2 px-2 py-1 text-red-600 hover:text-white hover:bg-red-600 rounded-md"
|
|
title="Usuń kategorię"
|
|
><FontAwesomeIcon :icon="['fas', 'trash']" />Usuń</InertiaLink>
|
|
</header>
|
|
<div>
|
|
<form class="flex flex-col gap-4" @submit.prevent="updateProject">
|
|
<Input
|
|
id="name"
|
|
label="Nazwa"
|
|
placeholder="Nazwa kategorii"
|
|
v-model="form.name"
|
|
:error="form.errors.name"
|
|
/>
|
|
<Input
|
|
id="slug"
|
|
label="Slug"
|
|
placeholder="Slug dla kategorii"
|
|
v-model="form.slug"
|
|
:error="form.errors.slug"
|
|
/>
|
|
<Input
|
|
id="priority"
|
|
label="Priorytet"
|
|
type="number"
|
|
placeholder="Priorytet dla danej kategorii"
|
|
v-model="form.priority"
|
|
:error="form.errors.priority"
|
|
/>
|
|
<Input
|
|
id="visible"
|
|
label="Widoczny"
|
|
type="checkbox"
|
|
v-model="form.visible"
|
|
/>
|
|
<Input
|
|
id="default"
|
|
label="Domyślny"
|
|
type="checkbox"
|
|
v-model="form.default"
|
|
/>
|
|
<button class="px-0.5 py-1 rounded-lg bg-[#436da7] border-4 border-[#436da7] text-white text-lg hover:bg-transparent hover:text-[#436da7]">Aktualizuj kategorię</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</template>
|