Skip to content

Commit 27dd3cf

Browse files
committed
review pagination
1 parent 5e37fc0 commit 27dd3cf

File tree

96 files changed

+5594
-1374
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+5594
-1374
lines changed

package-lock.json

Lines changed: 417 additions & 126 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/tdb-dashboard/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@
7676
"react": "^18.2.0",
7777
"react-anchor-link-smooth-scroll": "^1.0.12",
7878
"react-bootstrap": "^2.7.0",
79-
"react-bootstrap-pagination-control": "^1.0.5",
8079
"react-codemirror2": "^7.2.1",
8180
"react-collapsed": "^3.6.0",
8281
"react-collapsible-component": "^1.3.4",

packages/tdb-dashboard/src/App.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,3 +1340,4 @@ button.graphiql-tab-add>svg
13401340
.accordion{
13411341
--bs-accordion-bg: #303030 !important;
13421342
}
1343+

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {CopyButton} from "./utils"
1212
import { ManageDatabase } from "../hooks/ManageDatabase"
1313
import { useParams } from "react-router-dom"
1414
import { Loading } from "./Loading"
15-
import {useTDBDocuments} from "@terminusdb/terminusdb-documents-ui"
15+
import {useTDBDocuments} from "@terminusdb/terminusdb-documents-ui-template"
1616

1717
import { UTILS } from "@terminusdb/terminusdb-client"
1818

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

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, {useState, useEffect} from 'react'
22
import {Card} from "react-bootstrap"
3-
import {DocumentHook} from "../hooks/DocumentHook"
3+
import {useDiff} from "../hooks/useDiff"
44
import {WOQLClientObj} from "../init-woql-client"
55
import {DiffView} from "../components/DiffView"
66
import Badge from 'react-bootstrap/Badge'
@@ -11,6 +11,7 @@ import Stack from 'react-bootstrap/Stack'
1111
import {Loading} from "../components/Loading"
1212
import Alert from 'react-bootstrap/Alert'
1313
import { useParams } from 'react-router-dom'
14+
import {useTDBDocuments} from "@terminusdb/terminusdb-documents-ui-template"
1415
import {
1516
DIFFS,
1617
MERGED,
@@ -58,11 +59,18 @@ export const ChangeDiffComponent = () => {
5859
currentCRObject
5960
} = WOQLClientObj()
6061

61-
const {getDiffList,error:errorMsg,loading,result} = DocumentHook()
62+
const {getDiffList,error:errorMsg,loading,result,start} = useDiff()
6263

6364
const [key, setKey] = useState(DIFFS)
65+
66+
const woqlClientCopy = client.copy()
67+
woqlClientCopy.checkout(currentCRObject.original_branch)
68+
69+
const {frames,getDocumentFrames} = useTDBDocuments(woqlClientCopy)
70+
6471

6572
useEffect(() => {
73+
getDocumentFrames()
6674
getDiffList(changeid)
6775
}, [])
6876

@@ -73,6 +81,10 @@ export const ChangeDiffComponent = () => {
7381
// email address
7482
let author= currentCRObject && currentCRObject.hasOwnProperty("creator_email") ? currentCRObject["creator_email"] : "creator"
7583

84+
const changePage=(page)=>{
85+
getDiffList(changeid,page)
86+
}
87+
7688
return <Tabs
7789
id="change_request_tabs"
7890
activeKey={key}
@@ -98,7 +110,7 @@ export const ChangeDiffComponent = () => {
98110
<Card.Body>
99111
{currentCRObject.status === SUBMITTED &&
100112
<ReviewComponent/> }
101-
<DiffView diffs={result} CRObject={currentCRObject}/>
113+
<DiffView frames={frames} diffs={result} start={start} changePage={changePage} CRObject={currentCRObject}/>
102114
</Card.Body>
103115
</Card>
104116
</Tab>

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, {useState} from "react"
22
import {getCommitsTabConfig} from "./ViewConfig"
3-
import {WOQLTable,useTDBWOQLQuery} from '@terminusdb/terminusdb-react-table'
3+
import {WOQLTable} from '@terminusdb/terminusdb-react-table'
4+
import {useTDBWOQLQuery} from '@terminusdb/terminusdb-documents-ui-template'
45
import {Button} from "react-bootstrap"
56
import {printts, copyToClipboard} from "./utils"
67
import {BsClipboard} from "react-icons/bs"

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {getPropertyRelation} from '../queries/GeneralQueries'
77
import {Button, Badge, ButtonGroup} from "react-bootstrap"
88
import {BiPlus} from "react-icons/bi"
99
import {SearchBox} from "./SearchBox"
10-
import {useTDBDocuments} from "@terminusdb/terminusdb-documents-ui"
10+
import {useTDBDocuments} from "@terminusdb/terminusdb-documents-ui-template"
1111
import {Loading} from "./Loading"
1212
import {NEW_DOC} from "../routing/constants"
1313
import {useParams, useNavigate} from "react-router-dom"

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

Lines changed: 27 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,12 @@ import {TbExchange} from "react-icons/tb"
77
import Stack from 'react-bootstrap/Stack'
88
import Pagination from 'react-bootstrap/Pagination'
99
import {DIFFS_PER_PAGE_LIMIT} from "./constants"
10-
import {Row, Col} from "react-bootstrap"
11-
import {DocumentHook} from "../hooks/DocumentHook"
10+
import {useDiff} from "../hooks/useDiff"
1211
import Alert from 'react-bootstrap/Alert'
1312
import {BsPlus} from "react-icons/bs"
1413
import {BiMinusCircle} from "react-icons/bi"
1514
import {Loading} from "./Loading"
16-
import {useTDBDocuments} from "@terminusdb/terminusdb-documents-ui"
1715
import {WOQLClientObj} from '../init-woql-client'
18-
19-
import { PaginationControl } from 'react-bootstrap-pagination-control';
2016
/**
2117
*
2218
* @param {*} diff diff list
@@ -116,7 +112,7 @@ function DiffViewDocument ({documentID,diffObj, CRObject,propertyModifiedCount,f
116112
const {getDocumentByBranches,
117113
error,
118114
originalValue,
119-
changedValue} = DocumentHook()
115+
changedValue} = useDiff()
120116

121117
const [clicked, setClicked]=useState(false)
122118

@@ -186,53 +182,13 @@ function DiffViewDocument ({documentID,diffObj, CRObject,propertyModifiedCount,f
186182
* @param {*} originBranchDocumentList document list of origin branch
187183
* @returns
188184
*/
189-
export const DiffView = ({diffs, CRObject}) => {
190-
const {woqlClient} = WOQLClientObj()
191-
192-
// I need to copy the woqlClient and set the original_branch
193-
// to get the right frame
194-
const woqlClientCopy = woqlClient.copy()
195-
woqlClientCopy.checkout(CRObject.original_branch)
196-
197-
const {frames,getDocumentFrames} = useTDBDocuments(woqlClientCopy)
198-
// pagination constants
199-
const [activePage, setActivePage]=useState(1)
200-
const [current, setCurrent]=useState(0)
201-
202-
const [page, setPage] = useState(1)
203-
185+
export const DiffView = ({diffs, CRObject, changePage, start,frames}) => {
204186
let elements=[], paginationItems=[]
205187

206-
let divide = Math.ceil(diffs.length/DIFFS_PER_PAGE_LIMIT)
207-
208-
useEffect(() => {
209-
getDocumentFrames()
210-
},[])
211-
// function to handle on click of page
212-
function handlePagination(number) {
213-
let position=DIFFS_PER_PAGE_LIMIT * (number-1)
214-
215-
setCurrent(position)
216-
setActivePage(number)
217-
218-
}
219-
220-
// populate pagination Item
221-
for (let number = 1; number <= divide; number++) {
222-
paginationItems.push(
223-
<Pagination.Item key={number} active={number === activePage} onClick={(e) => handlePagination(number)}>
224-
{number}
225-
</Pagination.Item>
226-
)
227-
}
228-
229188
if(!frames) return <Loading message={`Loading Frames ...`}/>
230189
if(!diffs) return <Loading message={`Loading Diffs ...`}/>
231190

232-
233-
// looping through diff lists
234-
for(let start=current; start<(current + DIFFS_PER_PAGE_LIMIT); start++) {
235-
191+
for (let start=0; start<5; start++) {
236192
if(start >= diffs.length) continue
237193

238194
const propertyModifiedCount = getPropertyModifiedCount(diffs[start])
@@ -256,26 +212,31 @@ export const DiffView = ({diffs, CRObject}) => {
256212
)
257213
}
258214

215+
const changePageCallNext =()=>{
216+
changePage(start+5)
217+
}
218+
219+
220+
const changePageCallPreview =()=>{
221+
changePage(start-5)
222+
}
223+
224+
const prevActive = start>1 ? {onClick:changePageCallPreview} : {active:false}
225+
const nextActive = diffs.length> 5 ? {onClick:changePageCallNext} : {active:false}
226+
227+
const lastDiff = start + Math.min(diffs.length,5)
228+
229+
let page = Math.ceil(start/5)
259230
return <React.Fragment>
260231
{elements}
261-
<Row className="w-100">
262-
<Col/>
263-
<Col>
264-
{/*<Pagination className="justify-content-center ">{paginationItems}</Pagination>*/}
265-
<PaginationControl
266-
page={page}
267-
between={3}
268-
total={diffs.length}
269-
limit={5}
270-
changePage={(page) => {
271-
setPage(page)
272-
handlePagination(page)
273-
}}
274-
ellipsis={1}
275-
/>
276-
</Col>
277-
<Col/>
278-
</Row>
232+
<div className="w-100 d-flex justify-content-center">
233+
<Pagination size={"ls"}>
234+
<Pagination.Prev {...prevActive} />
235+
<Pagination.Item active>{`Page ${page+1} -- Diff from ${start+1} to ${lastDiff}`}</Pagination.Item>
236+
<Pagination.Next {...nextActive} />
237+
</Pagination>
238+
</div>
279239
</React.Fragment>
280240
}
241+
281242

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, {useEffect} from "react"
22
import {DocumentsGraphqlTable} from "@terminusdb/terminusdb-documents-ui-template"
33
import {gql} from "@apollo/client"
4-
import {useTDBDocuments} from "@terminusdb/terminusdb-documents-ui"
4+
import {useTDBDocuments} from "@terminusdb/terminusdb-documents-ui-template"
55
import {WOQLClientObj} from '../init-woql-client'
66
/**
77
*
@@ -14,8 +14,7 @@ export const DocumentSearchComponent = ({setSelected, doctype}) => {
1414
if(!apolloClient) return <div/>
1515
const {documentTablesConfig,getGraphqlTablesConfig} = useTDBDocuments(woqlClient)
1616

17-
18-
17+
1918
useEffect(() => {
2019
if(doctype){
2120
getGraphqlTablesConfig()

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import React, {useState, useEffect} from "react"
22
import {Card, Row, Col, Button} from "react-bootstrap"
3-
import {WOQLTable,useTDBDocumentQuery} from '@terminusdb/terminusdb-react-table'
3+
import {WOQLTable} from '@terminusdb/terminusdb-react-table'
4+
import {useTDBDocumentQuery} from '@terminusdb/terminusdb-documents-ui-template'
45
import {getDocumentOfTypeTabConfig} from "./ViewConfig"
56
import {WOQLClientObj} from '../init-woql-client'
67
import {getDocumentTools, getDeleteTool, getCopyIDTool} from "./DocumentActions"
78
import {getColumnsFromResults, displayIDOfLinkedDocuments, isArray} from "./utils"
89
import {Loading} from "./Loading"
910
import { useParams,useNavigate } from "react-router-dom"
10-
import {UTILS} from '@terminusdb/terminusdb-client'
1111

1212
export const DocumentWoqlTable = () => {
1313
const {

0 commit comments

Comments
 (0)