diff --git a/src/components/ConfirmTeamDeletion.svelte b/src/components/ConfirmTeamDeletion.svelte new file mode 100644 index 00000000..7d7c8e3b --- /dev/null +++ b/src/components/ConfirmTeamDeletion.svelte @@ -0,0 +1,97 @@ + + +{#if modal_open} +
+
+ +
+{/if} diff --git a/src/components/TeamDetail.svelte b/src/components/TeamDetail.svelte index 7ae6fe8f..e32a781a 100644 --- a/src/components/TeamDetail.svelte +++ b/src/components/TeamDetail.svelte @@ -7,13 +7,20 @@ import Toastify from "toastify-js"; import store from "../store"; import PromiseError from "./PromiseError.svelte"; + import ConfirmTeamDeletion from "./ConfirmTeamDeletion.svelte"; + export let params; + let [teamdata, original, delete_team, orgs, modal_open] = [ + {}, + {}, + {}, + [], + false, + ]; $: delete_triggered = false; $: save_enabled = !data_changed; - export let params; - let teamdata = {}; - let original = {}; $: data_loaded = false; $: data_changed = JSON.stringify(teamdata) === JSON.stringify(original); + // const promise = RunnerTeamService.runnerTeamControllerGetOne( params.teamid ).then((value) => { @@ -21,22 +28,23 @@ teamdata = Object.assign(teamdata, value); original = Object.assign(original, value); }); - $: orgs = []; - const orgs_promise = RunnerOrganisationService.runnerOrganisationControllerGetAll().then( - (val) => { - console.log(val); - orgs = val; - val.forEach((t) => { - console.log(t.name); - }); - } - ); + RunnerOrganisationService.runnerOrganisationControllerGetAll().then((val) => { + orgs = val; + }); function deleteTeam() { - RunnerTeamService.runnerTeamControllerRemove(original.id, true) + RunnerTeamService.runnerTeamControllerRemove(original.id, false) .then((resp) => { + Toastify({ + text: "Organization deleted", + duration: 500, + backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", + }).showToast(); location.replace("./"); }) - .catch((err) => {}); + .catch((err) => { + modal_open = true; + delete_team = original; + }); } function submit() { if (data_loaded === true && save_enabled) { @@ -63,6 +71,7 @@ } + {#if data_loaded}
@@ -193,13 +202,17 @@ name="contact" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 dark:bg-gray-900 dark:text-gray-100 rounded-md p-2" />
- +
+ + +
{:else} {#await promise} diff --git a/src/components/TeamsOverview.svelte b/src/components/TeamsOverview.svelte index d8400b8d..eadf531d 100644 --- a/src/components/TeamsOverview.svelte +++ b/src/components/TeamsOverview.svelte @@ -7,9 +7,12 @@ import { users as usersstore } from "../store.js"; import store from "../store"; import TeamsEmptyState from "./TeamsEmptyState.svelte"; + import ConfirmTeamDeletion from "./ConfirmTeamDeletion.svelte"; $: searchvalue = ""; $: active_deletes = []; export let current_teams = []; + let modal_open = false; + let delete_team = {}; usersstore.subscribe((val) => { current_teams = val; }); @@ -18,6 +21,13 @@ }); + { + modal_open = false; + active_deletes[event.detail.id] = false; + }} + bind:modal_open + bind:delete_team /> {#if store.state.jwtinfo.userdetails.permissions.includes('TEAM:GET')} {#await teams_promise}