Skip to content
Snippets Groups Projects
Commit 89009a68 authored by Heinz-Ullrich Rings's avatar Heinz-Ullrich Rings
Browse files

chnaged deleteProjectByNameButton to have a dropdown, also added a...

chnaged deleteProjectByNameButton to have a dropdown, also added a confirmation dialog before deleting
parent 50251f23
No related branches found
No related tags found
No related merge requests found
<script lang="ts"> <script lang="ts">
import { Modal, ModalHeader, ModalBody, ModalFooter, Button, Icon } from "@sveltestrap/sveltestrap"; import {
import { removeProject } from '../stores/projects'; Modal,
import { createEventDispatcher } from 'svelte'; ModalHeader,
ModalBody,
ModalFooter,
Button,
Icon,
} from "@sveltestrap/sveltestrap";
import { userProjects, removeProject } from "../stores/projects";
import { onDestroy, createEventDispatcher } from "svelte";
let projects: any = [];
export let projectToRemove = "";
const unsubscribe = userProjects.subscribe((value) => {
projects = value;
});
export let projectToRemove = ''; // Der Name des zu löschenden Projekts
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
let isModalOpen = false; let isModalOpen = false;
function openModal() { function openModal() {
isModalOpen = true; isModalOpen = true;
dispatch('openModal'); // Optional: Benachrichtige Hauptkomponente dispatch("openModal");
} }
function closeModal() { function closeModal() {
isModalOpen = false; isModalOpen = false;
dispatch('closeModal'); // Optional: Benachrichtige Hauptkomponente dispatch("closeModal");
} }
function handleDeleteProject() { function handleDeleteProject() {
if (projectToRemove.trim() !== '') { if (projectToRemove.trim() !== "") {
removeProject(projectToRemove); if (
projectToRemove = ''; // Eingabefeld leeren confirm(
closeModal(); // Modal schließen nach dem Löschen `Are you sure you want to delete the project "${projectToRemove}"?`,
)
) {
removeProject(projectToRemove);
projectToRemove = "";
closeModal();
}
} }
} }
function handleKeyDown(event: KeyboardEvent) { onDestroy(() => {
if (event.key === 'Enter') { unsubscribe();
handleDeleteProject(); });
}
}
</script> </script>
<!-- Button zum Öffnen des Modals --> <!-- Button zum Öffnen des Modals -->
...@@ -41,16 +57,17 @@ ...@@ -41,16 +57,17 @@
<Modal isOpen={isModalOpen} toggle={closeModal}> <Modal isOpen={isModalOpen} toggle={closeModal}>
<ModalHeader toggle={closeModal}>Remove Project</ModalHeader> <ModalHeader toggle={closeModal}>Remove Project</ModalHeader>
<ModalBody> <ModalBody>
<input <select bind:value={projectToRemove} class="form-control">
type="text" <option value="" disabled>Select a project to remove...</option>
bind:value={projectToRemove} {#each projects as project}
placeholder="Enter project name to remove..." <option value={project.name}>{project.name}</option>
class="form-control" {/each}
on:keydown={handleKeyDown} </select>
/>
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="danger" on:click={handleDeleteProject}>Remove Project</Button> <Button color="danger" on:click={handleDeleteProject}
>Remove Project</Button
>
<Button color="secondary" on:click={closeModal}>Cancel</Button> <Button color="secondary" on:click={closeModal}>Cancel</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment