WIP: Frontend implementation #1
2 changed files with 37 additions and 13 deletions
frontend: createServer moved to useServer
commit
6a78f8b1ec
|
|
@ -24,10 +24,37 @@ export function useServers() {
|
|||
return result
|
||||
}
|
||||
|
||||
async function createServer(hostname: string, description: string, owner_id: number | null) {
|
||||
const payload = {
|
||||
hostname: hostname,
|
||||
description: description,
|
||||
owner_id: owner_id
|
||||
}
|
||||
loading.value = true
|
||||
error.value = ""
|
||||
|
||||
const result = await apiFetch("/servers", {
|
||||
method: "POST",
|
||||
body: payload
|
||||
})
|
||||
|
||||
if (isUnauthorized(result)) {
|
||||
loading.value = false
|
||||
return result
|
||||
}
|
||||
|
||||
// Optional: direkt in die Liste einfügen
|
||||
servers.value.push(result)
|
||||
|
||||
loading.value = false
|
||||
return result
|
||||
}
|
||||
|
||||
return {
|
||||
servers,
|
||||
loading,
|
||||
error,
|
||||
loadServers
|
||||
loadServers,
|
||||
createServer
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import { ref, onMounted } from "vue"
|
|||
import { isUnauthorized } from "~/utils/auth"
|
||||
|
||||
const { apiFetch } = useApi()
|
||||
const { servers, loadServers } = useServers()
|
||||
const { servers, loadServers, createServer } = useServers()
|
||||
const { owners, loadOwners } = useOwners()
|
||||
|
||||
const newServer = ref({
|
||||
|
|
@ -65,23 +65,20 @@ async function saveEdit(serverId: number) {
|
|||
}
|
||||
}
|
||||
|
||||
async function createServer() {
|
||||
async function save() {
|
||||
if (!newServer.value.hostname.trim()) return
|
||||
|
||||
try {
|
||||
const server = await apiFetch("/servers", {
|
||||
method: "POST",
|
||||
body: {
|
||||
hostname: newServer.value.hostname,
|
||||
description: newServer.value.description,
|
||||
owner_id: newServer.value.owner_id
|
||||
}
|
||||
})
|
||||
const server = await createServer(
|
||||
newServer.value.hostname,
|
||||
newServer.value.description,
|
||||
newServer.value.owner_id
|
||||
)
|
||||
if (isUnauthorized(server)) {
|
||||
return server
|
||||
}
|
||||
|
||||
servers.value.push(server)
|
||||
// clear form
|
||||
newServer.value = { hostname: "", description: "" }
|
||||
} catch (e: any) {
|
||||
error.value = e.message
|
||||
|
|
@ -223,7 +220,7 @@ onMounted(async () => {
|
|||
</select>
|
||||
|
||||
|
||||
<button @click="createServer"
|
||||
<button @click="save"
|
||||
class="bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700 self-start">
|
||||
Speichern
|
||||
</button>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue