From 766a0b2ddb3c3d1de0db5549facce9e1b08e7e03 Mon Sep 17 00:00:00 2001 From: jensp Date: Fri, 22 Jun 2018 17:27:44 +0000 Subject: [PATCH] CCM NG: PageModels Editor: Delete container from PageModel git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5541 8810af33-2d31-482b-a856-94f89814c4df --- .../ccm-pagemodelseditor/PageModelsEditor.tsx | 67 +++++++++++++++++-- 1 file changed, 60 insertions(+), 7 deletions(-) diff --git a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx index 824ce480b..9ce6a0ceb 100644 --- a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx +++ b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx @@ -531,6 +531,7 @@ class ContainerListComponent } this.addContainer = this.addContainer.bind(this); + this.deleteContainer = this.deleteContainer.bind(this); this.updateNewContainerName = this.updateNewContainerName.bind(this); } @@ -560,17 +561,12 @@ class ContainerListComponent && this.state.containers.map((container) =>
  • {container.key} - -
  • ) - } } ; @@ -687,6 +683,63 @@ class ContainerListComponent }); }); } + + private deleteContainer(event: React.MouseEvent): void { + + event.preventDefault(); + + const deleteButton: HTMLButtonElement + = event.target as HTMLButtonElement + const containerKey: string = deleteButton + .getAttribute("data-containerKey") as string; + + const init: RequestInit = { + + body: JSON.stringify({}), + credentials: "same-origin", + method: "DELETE", + } + + const url: string = `${this.props.dispatcherPrefix}` + + `/page-models/${this.props.ccmApplication}/` + + `${this.props.pageModelName}` + + `/containers/${containerKey}`; + + fetch(url, init) + .then((response: Response) => { + + if (response.ok) { + + const containers = this + .state + .containers + .filter((container) => { + return container.key !== containerKey; + }); + + this.setState({ + ...this.state, + containers, + }) + + } else { + this.setState({ + ...this.state, + errorMsg: `Failed to delete container ` + + `"${containerKey}": ` + + ` ${response.status} ${response.statusText}`, + }); + } + + }) + .catch((error) => { + this.setState({ + ...this.state, + errorMsg: `Failed to delete container ` + + `"${containerKey}": ${error.message}`, + }); + }); + } } // interface PageModelEditorProps {