diff --git a/README.md b/README.md index 2a11cec..000f856 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # Prometheus +[![License](https://img.shields.io/github/license/aeon-software/prometheus)](LICENSE.md) +[![Commit](https://img.shields.io/github/last-commit/aeon-software/prometheus)](https://github.com/aeon-software/prometheus/commits) +[![Repo](https://img.shields.io/github/repo-size/aeon-software/prometheus)](https://github.com/aeon-software/prometheus) +

Prometheus UI

@@ -27,7 +31,7 @@ These instructions will get Prometheus up and running on your local machine for Run `npm install` -Start development by running `npm run development` +Start development by running `npm run dev` Build project by running `npm run build` diff --git a/package.json b/package.json index 4806f17..135f7f8 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "private": true, "scripts": { "build": "react-scripts build && (if exist server\\build rmdir /s /q server\\build) && move build server", - "build-linux": "react-scripts build && (if exist server\\build rmdir /s /q server\\build) && mv build server", - "development": "concurrently \"react-scripts start\" \"nodemon server/server.js\"", + "build-linux": "react-scripts build && (if exist server/build rm -rf server/build) && mv build server", + "dev": "concurrently \"react-scripts start\" \"nodemon server/server.js\"", "lint": "./node_modules/.bin/eslint app.js", "react": "react-scripts start", "start": "node server/server.js", diff --git a/src/components/CollectionView/index.jsx b/src/components/CollectionView/index.jsx index d0abd81..8de0ce4 100644 --- a/src/components/CollectionView/index.jsx +++ b/src/components/CollectionView/index.jsx @@ -5,12 +5,12 @@ import { DialogContent, DialogContentText, DialogTitle, - NativeSelect, + NativeSelect, Table, TableBody, TableCell, TableHead, - TableRow + TableRow, } from '@material-ui/core'; import AppBar from '@material-ui/core/AppBar'; import Button from '@material-ui/core/Button'; @@ -23,7 +23,7 @@ import { Create as CreateIcon, Delete as DeleteIcon, KeyboardArrowLeft, - KeyboardArrowRight + KeyboardArrowRight, } from '@material-ui/icons'; import React from 'react'; import { DndProvider } from 'react-dnd'; @@ -49,6 +49,7 @@ const INITIAL_STATE = { order: [], orderDir: '', locked: true, + reset: false, loading: false, setOpen: false, setDetailOpen: false, @@ -59,6 +60,8 @@ const INITIAL_STATE = { }; let published = true; +let lockedValue = true; +let isRemovable = true; let tableKeys = []; let tempDetails = []; let viewOrderField = 'none'; @@ -127,24 +130,23 @@ class CollectionView extends React.Component { }; toggleTable = async (value) => { - this.setState({ - loading: true, - }); if (!value) { await Prom.unlockTable(this.state.documentDetails[0].collection); this.setState({ locked: false, - loading: false, }); } else { Prom.lockTable(this.state.documentDetails[0].collection); this.setState({ locked: true, - loading: false, }); } }; + setLockedValue = (value) => { + lockedValue = value; + }; + setOrderField = (field) => { viewOrderField = field; }; @@ -153,7 +155,18 @@ class CollectionView extends React.Component { viewOrder = order; }; + setEntriesPerPage = (value) => { + rowNum = value; + }; + + setUpdateOnly = (value) => { + isRemovable = value; + }; + saveViewSettings = async () => { + this.setState({ + loading: true, + }); let tempView = this.state.prmthsView; if (viewOrderField === 'none') { tempView['orderBy'] = ''; @@ -162,12 +175,18 @@ class CollectionView extends React.Component { tempView['orderBy'] = viewOrderField; tempView['order'] = viewOrder; } + tempView['isRemovable'] = isRemovable; + tempView['rowNum'] = rowNum; + this.toggleTable(lockedValue); + this.context.setHeld(false); await Prom.updateData('prmths_views', tempView, [['id', '=', tempView.id]]); this.setState({ setViewOpen: false, + reset: true, totalRows: 0, page: 1, }); + tableKeys = []; this.mount(); }; @@ -202,10 +221,12 @@ class CollectionView extends React.Component { await Prom.deleteData(documentDetails[0].collection, keys); } }) - .catch(async () => { - - }); + .catch(async () => {}); this.handleClose(); + this.setState({ + reset: true, + }); + tableKeys = []; this.mount(); this.setState({ deleteLoading: false }); }; @@ -240,6 +261,7 @@ class CollectionView extends React.Component { this.state.order, this.state.orderDir ); + this.context.setPageDirection('prev'); window.scrollTo(0, 0); }; @@ -277,6 +299,7 @@ class CollectionView extends React.Component { this.state.order, this.state.orderDir ); + this.context.setPageDirection('next'); window.scrollTo(0, 0); }; @@ -336,10 +359,14 @@ class CollectionView extends React.Component { let currentData; let order = []; let orderDir = 'asc'; + lockedValue = true; + isRemovable = true; viewOrderField = 'none'; viewOrder = 'asc'; rowNum = 10; - tableKeys = this.props.location.state.tableKeys; + if (!this.state.reset) { + tableKeys = this.props.location.state.tableKeys; + } let id = ''; if (published) { id = this.props.match.params.id; @@ -353,10 +380,11 @@ class CollectionView extends React.Component { try { prmthsView = await Prom.getData('prmths_views', [['id', '=', contentId]]); + isRemovable = prmthsView[0].isRemovable; + rowNum = prmthsView[0].rowNum; if (prmthsView[0].orderBy.length > 0) { viewOrderField = prmthsView[0].orderBy; viewOrder = prmthsView[0].order; - rowNum = prmthsView[0].rowNum; } let keys = []; @@ -389,7 +417,7 @@ class CollectionView extends React.Component { this.context.getRowsPerPage(), this.context.getOrder(), this.context.getDirection(), - 'next' + this.context.getPageDirection() ); page = this.context.getPage(); } else { @@ -434,11 +462,13 @@ class CollectionView extends React.Component { .then((result) => { if (result[0].table === id) { locked = false; + lockedValue = false; } }) .catch(() => {}); this.setState({ + reset: false, view: this.props.location.state.view, loading: false, locked: locked, @@ -575,6 +605,7 @@ class CollectionView extends React.Component { pathname: '/DocumentView', state: { mode: 'update', + isRemovable: isRemovable, tableKeys: tableKeys[rowIndex], routed: false, viewId: documentDetails[0].contentId, @@ -596,7 +627,7 @@ class CollectionView extends React.Component { )} - {Prom.getMode() !== 'Viewer' ? ( + {Prom.getMode() !== 'Viewer' && isRemovable ? ( {tableDetails} - ); + return
{tableDetails}
; } else { try { return ( @@ -693,10 +719,7 @@ class CollectionView extends React.Component { {this.renderPagination(paginate)} ); - } - catch (error) { - - } + } catch (error) {} } } render() { @@ -717,17 +740,12 @@ class CollectionView extends React.Component { try { projectId = prmthsView.id; - } - catch (error) { + } catch (error) {} - } - try { viewTable = tempDetails[0].collection; - } - catch (error) { + } catch (error) {} - } for (let i = 0; i < documentDetails.length; i++) { if (documentDetails[i].isKey) { let tempObj = { @@ -806,7 +824,7 @@ class CollectionView extends React.Component {
)} - {Prom.getMode() !== 'Viewer' ? ( + {Prom.getMode() !== 'Viewer' && isRemovable ? ( - diff --git a/src/components/DocumentView/index.jsx b/src/components/DocumentView/index.jsx index 32690be..3ad4b1f 100644 --- a/src/components/DocumentView/index.jsx +++ b/src/components/DocumentView/index.jsx @@ -56,6 +56,7 @@ let tempDocument = []; let fileDoc = []; let fileRefs = []; let mode = ''; +let isRemovable = true; let quillRef = null; let quillIndex = 0; let quillURL = ''; @@ -471,6 +472,7 @@ class DocumentView extends React.Component { ]); try { mode = this.props.location.state.mode; + isRemovable = this.props.location.state.isRemovable; tableKeys = this.props.location.state.tableKeys; } catch (error) { mode = tempMode; @@ -1501,7 +1503,7 @@ class DocumentView extends React.Component {
{Prom.getMode() !== 'Viewer' ? (
- {!this.props.location.state.routed ? ( + {!this.props.location.state.routed && isRemovable ? (