Skip to content

Commit 5ad339e

Browse files
committed
adding delete CR logic
1 parent 123d961 commit 5ad339e

File tree

4 files changed

+69
-28
lines changed

4 files changed

+69
-28
lines changed

packages/tdb-dashboard/src/components/DocumentComponents.js

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import Popover from "react-bootstrap/Popover"
2121
import OverlayTrigger from "react-bootstrap/OverlayTrigger"
2222
import Row from "react-bootstrap/Row"
2323
import {DocumentsGraphqlTable} from "./DocumentsGraphqlTable"
24+
import {WOQLClientObj} from '../init-woql-client'
2425

2526
// button to view frames
2627
const ViewFramesButton = () => {
@@ -102,8 +103,8 @@ const EditHeader = ({type, id, setView}) => {
102103
/**
103104
* function to display are you sure to delete a document message
104105
*/
105-
const DeleteMessage = ({handleDelete, handleToggle}) => {
106-
return <Card className="border-0">
106+
export const DeleteMessage = ({handleDelete}) => {
107+
return <Card className="border-0 w-100">
107108
<Card.Header className="bg-transparent w-100 fw-bold">
108109
<span>{"Are you sure you want to delete ?"}</span>
109110
</Card.Header>
@@ -116,10 +117,10 @@ const DeleteMessage = ({handleDelete, handleToggle}) => {
116117
onClick={handleDelete}>
117118
<RiDeleteBin7Line className="mb-1" /> Delete
118119
</Button>
119-
<Button className="btn-sm bg-light text-dark"
120-
onClick={handleToggle}>
120+
{/*<Button className="btn-sm bg-light text-dark"
121+
onClick={onCancel}>
121122
<FaTimes className="mr-1" /> Cancel
122-
</Button>
123+
</Button>*/}
123124
</div>
124125

125126
</Card.Body>
@@ -152,23 +153,29 @@ const UpdatingPopover = React.forwardRef(
152153
* @param {*} setView useState constant to set view in Form or JSON View
153154
* @returns View Header
154155
*/
155-
const ViewHeader = ({type, id, startCRMode, setView, setClickedDelete}) => {
156+
const ViewHeader = ({type, id, setView, setShowCRModal, setClickedDelete}) => {
157+
const {
158+
branch
159+
} = WOQLClientObj()
156160

157161
const navigate=useNavigate()
158162
const [show, setShow] = React.useState(false);
163+
159164

160165
const handleToggle = () => {
161166
setShow((prev) => !prev);
162167
};
163168

164169
function handleEdit(e) {
165-
startCRMode(CONST.EDIT_DOCUMENT)
166170
navigate(`${PATH.EDIT_DOC}`)
167171
}
168-
172+
169173
function handleDelete(e) {
170-
startCRMode(CONST.DELETE_DOCUMENT)
171-
setClickedDelete(Date.now())
174+
// show Change Request component if branch is main
175+
if(branch === "main"){
176+
setShowCRModal(Date.now())
177+
}
178+
else setClickedDelete(Date.now())
172179
}
173180

174181

@@ -193,7 +200,16 @@ const ViewHeader = ({type, id, startCRMode, setView, setClickedDelete}) => {
193200
Edit
194201
</Button>
195202

196-
<OverlayTrigger trigger="click"
203+
<Button variant="danger"
204+
type="button"
205+
title="Delete Document"
206+
onClick={handleDelete}
207+
className="btn-sm btn text-gray">
208+
<RiDeleteBin7Line className=" mb-1"/>
209+
</Button>
210+
211+
{/** commenting overlay trigger for delete */}
212+
{/*<OverlayTrigger trigger="click"
197213
placement="bottom"
198214
rootClose={true}
199215
show={show}
@@ -209,7 +225,7 @@ const ViewHeader = ({type, id, startCRMode, setView, setClickedDelete}) => {
209225
className="btn-sm btn text-gray">
210226
<RiDeleteBin7Line className=" mb-1"/>
211227
</Button>
212-
</OverlayTrigger>
228+
</OverlayTrigger>*/}
213229
</div>
214230
<CloseButton type={type}/>
215231
</Stack>
@@ -224,15 +240,15 @@ const ViewHeader = ({type, id, startCRMode, setView, setClickedDelete}) => {
224240
* @param {*} setView useState constant to set view in Form or JSON View
225241
* @returns
226242
*/
227-
export const Header = ({mode, type, id, startCRMode, setClickedDelete}) => {
243+
export const Header = ({mode, type, id, setShowCRModal, setClickedDelete}) => {
228244
const {
229245
setView
230246
} = DocumentControlObj()
231247

232248
let matchHeader ={
233249
[CONST.CREATE_DOCUMENT] : <CreateHeader type={type} setView={setView}/>,
234250
[CONST.EDIT_DOCUMENT] : <EditHeader type={type} id={id} setView={setView}/>,
235-
[CONST.VIEW_DOCUMENT] : <ViewHeader type={type} id={id} startCRMode={startCRMode} setView={setView} setClickedDelete={setClickedDelete}/>
251+
[CONST.VIEW_DOCUMENT] : <ViewHeader type={type} id={id} setView={setView} setShowCRModal={setShowCRModal} setClickedDelete={setClickedDelete}/>
236252
}
237253
return matchHeader[mode]
238254
}

packages/tdb-dashboard/src/hooks/ChangeRequest.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import React, {useState} from "react";
44

55
// import {WOQLClientObj} from '../init-woql-client'
66
import { formatErrorMessage } from './hookUtils'
7-
7+
88
export function ChangeRequest(woqlClient){
99
const [loading, setLoading] = useState(false)
1010
const [errorMessage, setError] = useState(false)
@@ -96,7 +96,7 @@ export function ChangeRequest(woqlClient){
9696
}finally{
9797
setLoading(false)
9898
}
99-
}
99+
}
100100

101101

102102
return {

packages/tdb-dashboard/src/pages/DocumentEdit.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,7 @@ export const DocumentEdit = () => {
130130
setShowModal(false)
131131
}*/
132132
},[branch])
133-
// create a change request before editing document
134-
const startCRMode = (mode) => {
135-
// logic to start CR mode
136-
}
133+
137134

138135
const updateViewMode =(newBranchName, changeRequestId)=>{
139136
setChangeRequestBranch(newBranchName, changeRequestId)

packages/tdb-dashboard/src/pages/DocumentView.js

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import Card from "react-bootstrap/Card"
44
import {FrameViewer} from "@terminusdb/terminusdb-documents-ui"
55
import * as CONST from "../components/constants"
66
import { useNavigate, useParams } from "react-router-dom";
7-
import {Header, onTraverse} from "../components/DocumentComponents"
7+
import {Header, onTraverse, DeleteMessage} from "../components/DocumentComponents"
88
import {JsonFrameViewer} from "../components/JsonFrameViewer"
99
import {GetDocumentHook, DeleteDocumentHook} from "../hooks/DocumentHook"
1010
import Alert from 'react-bootstrap/Alert'
1111
import {Loading} from "../components/Loading"
1212
import {DocumentControlObj} from "../hooks/DocumentControlContext"
1313
import {TarverseDocumentLinks} from "../components/TarverseDocumentLinks"
14+
import {CreateChangeRequestModal} from "../components/CreateChangeRequestModal"
15+
import Modal from 'react-bootstrap/Modal';
1416

1517
const DisplayDocumentBody = ({setLoading, setErrorMsg, setClicked, setModalShow}) => {
1618
const {
@@ -58,7 +60,9 @@ const DisplayDocumentBody = ({setLoading, setErrorMsg, setClicked, setModalShow}
5860
export const DocumentView = () => {
5961

6062
const {
61-
woqlClient
63+
woqlClient,
64+
setChangeRequestBranch,
65+
branch
6266
} = WOQLClientObj()
6367

6468
const {type, id} = useParams()
@@ -68,23 +72,47 @@ export const DocumentView = () => {
6872
const [loading, setLoading]=useState(false)
6973
const [errorMsg, setErrorMsg]=useState(false)
7074
const [clickedDelete, setClickedDelete]=useState(false)
75+
const [deleteDocument, setDeleteDocument] = useState(false)
7176

7277
//constants to traverse through documents
7378
const [clicked, setClicked]=useState(false)
7479
const [modalShow, setModalShow] = React.useState(false);
80+
const [showCRModal, setShowCRModal] = useState(false)
81+
82+
/*useEffect(() => {
83+
if(clickedDelete && branch === "main"){
84+
//setShowModal(true)
85+
}
86+
},[clickedDelete])*/
87+
88+
const handleClose = () => setClickedDelete(false);
7589

7690
let documentID=atob(id)
77-
const deleteResult=DeleteDocumentHook(woqlClient, documentID, type, clickedDelete, setLoading, setErrorMsg)
91+
const deleteResult=DeleteDocumentHook(woqlClient, documentID, type, deleteDocument, setLoading, setErrorMsg)
92+
93+
const updateViewMode =(newBranchName, changeRequestId)=>{
94+
setChangeRequestBranch(newBranchName, changeRequestId)
95+
setClickedDelete(Date.now())
96+
// setCurrentMode(currentMode)
97+
}
7898

79-
// create a change request before editing document
80-
const startCRMode = (mode) => {
81-
// logic to start CR mode
99+
function handleDelete () {
100+
setDeleteDocument(Date.now())
82101
}
83102

84103
return <main className="content w-100 document__interface__main">
85104
{errorMsg && <Alert variant={"danger"} className="mr-3">
86105
{errorMsg}
87-
</Alert>}
106+
</Alert>}
107+
{ clickedDelete && <Modal show={clickedDelete} onHide={handleClose}>
108+
{loading && <span className="text-warning text-break p-3">{`Deleting document ${documentID} ...`}</span>}
109+
{!loading && <DeleteMessage handleDelete={handleDelete}/>}
110+
</Modal>
111+
}
112+
{showCRModal && <CreateChangeRequestModal showModal={showCRModal}
113+
type={type}
114+
setShowModal={setShowCRModal}
115+
updateViewMode={updateViewMode}/>}
88116
<TarverseDocumentLinks
89117
setClicked={setClicked}
90118
clicked={clicked}
@@ -96,7 +124,7 @@ export const DocumentView = () => {
96124
type={type}
97125
id={documentID}
98126
setClickedDelete={setClickedDelete}
99-
startCRMode={startCRMode}/>
127+
setShowCRModal={setShowCRModal}/>
100128
</Card.Header>
101129
<Card.Body className="text-break">
102130
<DisplayDocumentBody setLoading={setLoading}

0 commit comments

Comments
 (0)