Skip to content

Commit 51007fa

Browse files
authored
Merge pull request #109 from terminusdb/fix_payment
review change request
2 parents d09ebdc + 514c279 commit 51007fa

File tree

9 files changed

+225
-111
lines changed

9 files changed

+225
-111
lines changed
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
import React, {useState, useEffect} from 'react'
2+
import {Container, Row, Col, Card} from "react-bootstrap"
3+
import {useParams} from 'react-router-dom'
4+
import {GetDiffList} from "../hooks/DocumentHook"
5+
import {WOQLClientObj} from "../init-woql-client"
6+
import {DiffView} from "../components/DiffView"
7+
import Badge from 'react-bootstrap/Badge'
8+
import {BiGitBranch} from "react-icons/bi"
9+
import Tab from 'react-bootstrap/Tab'
10+
import Tabs from 'react-bootstrap/Tabs'
11+
import Stack from 'react-bootstrap/Stack'
12+
import {ChangeRequest} from "../hooks/ChangeRequest"
13+
import {Loading} from "../components/Loading"
14+
import Alert from 'react-bootstrap/Alert'
15+
import {
16+
DIFFS,
17+
MERGED,
18+
MESSAGES,
19+
TRACKING_BRANCH
20+
} from "../components/constants"
21+
import {Messages} from "../components/Messages"
22+
import {ReviewComponent} from "../components/ReviewComponent"
23+
24+
const DocumentModifiedCount = ({documentModifiedCount}) => {
25+
if(documentModifiedCount > 1) return <h6 className="fw-bold mt-2 text-warning font-italic">
26+
{`${documentModifiedCount} documents`}
27+
</h6>
28+
29+
if(documentModifiedCount === 1) return <h6 className="fw-bold mt-2 text-warning font-italic">
30+
{`${documentModifiedCount} document`}
31+
</h6>
32+
}
33+
34+
const BranchCRMessage = ({css, branch}) => {
35+
return <React.Fragment>
36+
<Badge bg={css} className="fw-bold mr-2 text-dark">
37+
<BiGitBranch className=" mr-1"/>{branch}
38+
</Badge>
39+
</React.Fragment>
40+
}
41+
42+
const DisplayHeader = ({author, documentModifiedCount, tracking_branch}) => {
43+
return <>
44+
<h6 className="mt-2">{`${author} wants to merge `}</h6>
45+
<DocumentModifiedCount documentModifiedCount={documentModifiedCount}/>
46+
<h6 className="mt-2">{` into `}</h6>
47+
<BranchCRMessage branch={"main"} css={"success"}/>
48+
<h6 className="mt-2">{`from `}</h6>
49+
<BranchCRMessage branch={tracking_branch} css={"primary"}/>
50+
</>
51+
}
52+
53+
54+
export const ChangeDiffComponent = () => {
55+
56+
const {
57+
woqlClient:client,
58+
currentCRObject
59+
} = WOQLClientObj()
60+
61+
/*const {
62+
getChangeRequestByID,
63+
} = ChangeRequest()*/
64+
65+
const {id} = useParams()
66+
67+
const [key, setKey] = useState(DIFFS)
68+
const [action, setAction]=useState(false)
69+
const [loading, setLoading]=useState(true)
70+
const [errorMsg, setErrorMsg]=useState(false)
71+
72+
/* useEffect(() => {
73+
async function getCRID() {
74+
await getChangeRequestByID(id,true)
75+
}
76+
if(id, client) getCRID()
77+
}, [id, client])*/
78+
79+
//let changeRequestID=localStorage.getItem("TERMINUSCMS_CHANGE_REQUEST_ID")
80+
const result = GetDiffList(client, id, setLoading, setErrorMsg)
81+
//const result = GetDiffList(client, currentCRObject["@id"])
82+
83+
useEffect(() => {
84+
if(key === DIFFS) setAction(false)
85+
}, [key])
86+
87+
if(!client) return <div/>
88+
89+
let documentModifiedCount = result ? result.length : 0
90+
91+
let author= currentCRObject&&currentCRObject.hasOwnProperty("creator") ? currentCRObject["creator"] : "user"
92+
93+
return <Tabs
94+
id="change_request_tabs"
95+
activeKey={key}
96+
onSelect={(k) => setKey(k)}
97+
className="mb-3">
98+
<Tab eventKey={DIFFS} title={DIFFS}>
99+
{loading && <Loading message={`Loading Diffs ...`}/>}
100+
{errorMsg && <Alert variant={"danger"} className="mr-3">
101+
{errorMsg}
102+
</Alert>}
103+
{!documentModifiedCount && <h6 className="text-muted fw-bold mt-3 mb-3">
104+
{`No documents `}
105+
</h6>}
106+
<Card bg="transparent" className="border-secondary mt-5 mb-5">
107+
<Card.Header>
108+
<Stack direction="horizontal" gap={2} className="mt-1">
109+
<DisplayHeader author={author}
110+
tracking_branch={currentCRObject.tracking_branch}
111+
documentModifiedCount={documentModifiedCount}/>
112+
</Stack>
113+
</Card.Header>
114+
<Card.Body>
115+
116+
{currentCRObject.status !== MERGED && <ReviewComponent setKey={setKey} action={action} setAction={setAction}/> }
117+
<DiffView diffs={result} CRObject={currentCRObject}/>
118+
</Card.Body>
119+
</Card>
120+
</Tab>
121+
<Tab eventKey={MESSAGES} title={MESSAGES}>
122+
<Messages/>
123+
</Tab>
124+
</Tabs>
125+
}
126+
127+
/*<small className="fw-bold mr-2 h6">You are in change request mode</small>
128+
<span className="float-right fw-bold mr-2 text-dark badge bg-primary mb-1">
129+
{currentCRObject[TRACKING_BRANCH]}
130+
</span>*/
131+
132+
/**
133+
*
134+
<Row className="w-100 mt-5">
135+
<Col md={6}>
136+
{result && <DocumentModifiedCount documentModifiedCount={documentModifiedCount}/>}
137+
</Col>
138+
<Col md={6}>
139+
<BranchCRMessage trackingBranch={currentCRObject.tracking_branch} originBranch={"main"}/>
140+
</Col>
141+
</Row>
142+
*/

packages/tdb-dashboard/src/components/DiffView copy.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,7 @@ export const DiffView = ({diffs, CRObject}) => {
103103
frames,
104104
woqlClient:client,
105105
} = WOQLClientObj()
106-
/*const {
107-
getChangeRequestByID,
108-
} = ChangeRequest()*/
106+
109107
const {id} = useParams()
110108

111109
// pagination constants

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,7 @@ export const DiffView = ({diffs, CRObject}) => {
103103
frames,
104104
woqlClient:client,
105105
} = WOQLClientObj()
106-
/*const {
107-
getChangeRequestByID,
108-
} = ChangeRequest()*/
106+
109107
const {id} = useParams()
110108

111109
// pagination constants

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

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,19 +68,37 @@ export function ChangeRequest(){
6868
}
6969
}
7070

71+
72+
const rebaseChangeRequestBranch = async(id) =>{
73+
try{
74+
setLoading(true)
75+
// const payload = {id}
76+
const result = await woqlClient.sendCustomRequest("PUT", `${getUrl()}/${id}/rebase`,{})
77+
return result
78+
}catch(err){
79+
const errMessage = formatErrorMessage(err)
80+
setError(errMessage)
81+
}finally{
82+
setLoading(false)
83+
}
84+
}
85+
86+
7187
// TO BE REVIEW ?????
72-
const getChangeRequestByID = async(id) =>{
88+
const getChangeRequestByID = async(id,check_head) =>{
7389
try{
7490
setLoading(true)
7591
// const payload = {id}
76-
const result = await woqlClient.sendCustomRequest("GET", `${getUrl()}/${id}`)
77-
if(setCurrentCRObject) {
92+
const queryParams = check_head ? `?check_head=true` : ""
93+
const result = await woqlClient.sendCustomRequest("GET", `${getUrl()}/${id}${queryParams}`)
94+
return result
95+
/* if(setCurrentCRObject) {
7896
result.map(res=>{
7997
if(res["@id"] === `ChangeRequest/${id}`){
8098
setCurrentCRObject(res)
8199
}
82100
})
83-
}
101+
}*/
84102
}catch(err){
85103
const errMessage = formatErrorMessage(err)
86104
setError(errMessage)
@@ -98,7 +116,8 @@ export function ChangeRequest(){
98116
createChangeRequest,
99117
getChangeRequestList,
100118
updateChangeRequestStatus,
101-
getChangeRequestByID
119+
getChangeRequestByID,
120+
rebaseChangeRequestBranch
102121
}
103122

104123
}

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

Lines changed: 23 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, {useState, useEffect} from 'react'
2-
import {Container, Row, Col, Card} from "react-bootstrap"
2+
import {Button} from "react-bootstrap"
33
import { Layout } from './Layout'
44
import {useParams} from 'react-router-dom'
55
import {GetDiffList} from "../hooks/DocumentHook"
@@ -13,6 +13,7 @@ import Stack from 'react-bootstrap/Stack'
1313
import {ChangeRequest} from "../hooks/ChangeRequest"
1414
import {Loading} from "../components/Loading"
1515
import Alert from 'react-bootstrap/Alert'
16+
import { ChangeDiffComponent } from '../components/ChangeDiffComponent'
1617
import {
1718
DIFFS,
1819
MERGED,
@@ -22,110 +23,48 @@ import {
2223
import {Messages} from "../components/Messages"
2324
import {ReviewComponent} from "../components/ReviewComponent"
2425

25-
const DocumentModifiedCount = ({documentModifiedCount}) => {
26-
if(documentModifiedCount > 1) return <h6 className="fw-bold mt-2 text-warning font-italic">
27-
{`${documentModifiedCount} documents`}
28-
</h6>
29-
30-
if(documentModifiedCount === 1) return <h6 className="fw-bold mt-2 text-warning font-italic">
31-
{`${documentModifiedCount} document`}
32-
</h6>
33-
}
34-
35-
const BranchCRMessage = ({css, branch}) => {
36-
return <React.Fragment>
37-
<Badge bg={css} className="fw-bold mr-2 text-dark">
38-
<BiGitBranch className=" mr-1"/>{branch}
39-
</Badge>
40-
</React.Fragment>
41-
}
42-
43-
const DisplayHeader = ({author, documentModifiedCount, tracking_branch}) => {
44-
return <>
45-
<h6 className="mt-2">{`${author} wants to merge `}</h6>
46-
<DocumentModifiedCount documentModifiedCount={documentModifiedCount}/>
47-
<h6 className="mt-2">{` into `}</h6>
48-
<BranchCRMessage branch={"main"} css={"success"}/>
49-
<h6 className="mt-2">{`from `}</h6>
50-
<BranchCRMessage branch={tracking_branch} css={"primary"}/>
51-
</>
52-
}
5326

5427

5528
export const ChangeDiff = () => {
56-
29+
const {id} = useParams()
5730
const {
5831
woqlClient:client,
59-
currentCRObject
32+
currentCRObject,
33+
setCurrentCRObject
6034
} = WOQLClientObj()
6135

6236
const {
6337
getChangeRequestByID,
38+
rebaseChangeRequestBranch,
39+
loading,
40+
error
6441
} = ChangeRequest()
6542

66-
const {id} = useParams()
67-
68-
const [key, setKey] = useState(DIFFS)
69-
const [action, setAction]=useState(false)
70-
const [loading, setLoading]=useState(true)
71-
const [errorMsg, setErrorMsg]=useState(false)
43+
const rebaseHandler = async ()=>{
44+
const changeRequestDoc = await rebaseChangeRequestBranch(id)
45+
if(changeRequestDoc){
46+
setCurrentCRObject(changeRequestDoc)
47+
}
48+
}
7249

7350
useEffect(() => {
7451
async function getCRID() {
75-
await getChangeRequestByID(id)
52+
const changeRequestDoc = await getChangeRequestByID(id,true)
53+
if(changeRequestDoc){
54+
setCurrentCRObject(changeRequestDoc)
55+
}
7656
}
7757
if(id, client) getCRID()
7858
}, [id, client])
79-
80-
//let changeRequestID=localStorage.getItem("TERMINUSCMS_CHANGE_REQUEST_ID")
81-
const result = GetDiffList(client, id, setLoading, setErrorMsg)
82-
//const result = GetDiffList(client, currentCRObject["@id"])
83-
84-
useEffect(() => {
85-
if(key === DIFFS) setAction(false)
86-
}, [key])
87-
59+
8860
if(!client) return <div/>
89-
90-
let documentModifiedCount = result ? result.length : 0
91-
92-
let author= currentCRObject&&currentCRObject.hasOwnProperty("creator") ? currentCRObject["creator"] : "user"
93-
61+
9462
return <Layout>
9563
<div className='d-flex ml-5 mt-4 mr-5'>
9664
<div className='w-100'>
97-
<Tabs
98-
id="change_request_tabs"
99-
activeKey={key}
100-
onSelect={(k) => setKey(k)}
101-
className="mb-3">
102-
<Tab eventKey={DIFFS} title={DIFFS}>
103-
{loading && <Loading message={`Loading Diffs ...`}/>}
104-
{errorMsg && <Alert variant={"danger"} className="mr-3">
105-
{errorMsg}
106-
</Alert>}
107-
{!documentModifiedCount && <h6 className="text-muted fw-bold mt-3 mb-3">
108-
{`No documents `}
109-
</h6>}
110-
<Card bg="transparent" className="border-secondary mt-5 mb-5">
111-
<Card.Header>
112-
<Stack direction="horizontal" gap={2} className="mt-1">
113-
<DisplayHeader author={author}
114-
tracking_branch={currentCRObject.tracking_branch}
115-
documentModifiedCount={documentModifiedCount}/>
116-
</Stack>
117-
</Card.Header>
118-
<Card.Body>
119-
120-
{currentCRObject.status !== MERGED && <ReviewComponent setKey={setKey} action={action} setAction={setAction}/> }
121-
<DiffView diffs={result} CRObject={currentCRObject}/>
122-
</Card.Body>
123-
</Card>
124-
</Tab>
125-
<Tab eventKey={MESSAGES} title={MESSAGES}>
126-
<Messages/>
127-
</Tab>
128-
</Tabs>
65+
{currentCRObject.needRebase && currentCRObject.status !== "Merged" && <div>
66+
<Button onClick={rebaseHandler}>Rebase</Button></div>}
67+
{(currentCRObject.needRebase === false || currentCRObject.status === "Merged") && <ChangeDiffComponent/>}
12968
</div>
13069
</div>
13170
</Layout>

0 commit comments

Comments
 (0)