diff --git a/packages/tdb-dashboard/src/App.css b/packages/tdb-dashboard/src/App.css index 71769fdb..55081696 100644 --- a/packages/tdb-dashboard/src/App.css +++ b/packages/tdb-dashboard/src/App.css @@ -1165,15 +1165,6 @@ pre.CodeMirror-line > span > span.cm-string { border-color: #3450DC !important; } -.model-builder-copy-button { - position: absolute; - z-index: 20; - text-align: right !important; - border: 1px solid blue; - right: 0; - margin-right: 60px !important; -} - /** to display status if not on latest version */ .tdb__status_latest__version { color: #3450DC; @@ -1202,3 +1193,4 @@ pre.CodeMirror-line > span > span.cm-string { width: 100px; height: 100px; } + diff --git a/packages/tdb-dashboard/src/components/DocumentSummary.js b/packages/tdb-dashboard/src/components/DocumentSummary.js index 76b6e363..3a4951c6 100644 --- a/packages/tdb-dashboard/src/components/DocumentSummary.js +++ b/packages/tdb-dashboard/src/components/DocumentSummary.js @@ -90,7 +90,7 @@ export const DocumentSummary = () => { setRoute(IconBarConfig.dataProductModal.path)} diff --git a/packages/tdb-dashboard/src/components/JSONModelBuilder.js b/packages/tdb-dashboard/src/components/JSONModelBuilder.js index f69a1383..14300937 100644 --- a/packages/tdb-dashboard/src/components/JSONModelBuilder.js +++ b/packages/tdb-dashboard/src/components/JSONModelBuilder.js @@ -5,20 +5,24 @@ import 'codemirror/lib/codemirror.css' import 'codemirror/theme/ayu-dark.css' require('codemirror/mode/css/css') require('codemirror/mode/javascript/javascript') +import 'codemirror/theme/material-darker.css' //import 'codemirror/addon/display/autorefresh.js' import {PROGRESS_BAR_COMPONENT, TERMINUS_SUCCESS} from "./constants" import {Loading} from "./Loading" import {MODEL_BUILDER_EDITOR_OPTIONS} from "./constants" -import {AiOutlineCloseCircle, AiOutlineEdit, AiOutlineSave} from "react-icons/ai" +import { BiUndo } from "react-icons/bi" import {FaRegEdit} from 'react-icons/fa' import {Alerts} from "./Alerts" import {TERMINUS_DANGER,DOCUMENT_PREFIX} from "./constants" import {GRAPH_TAB} from "../pages/constants" import {GraphContextObj} from "@terminusdb-live/tdb-react-components" import {CopyButton} from "./utils" +import Card from "react-bootstrap/Card" import {BsSave} from "react-icons/bs" +import Stack from "react-bootstrap/Stack" -export const JSONModelBuilder = ({tab,saveGraph,accessControlEditMode}) => { +export const JSONModelBuilder = ({tab,saveGraph,accessControlEditMode, setReportMessage}) => { + const {getSchemaGraph,mainGraphObj} = GraphContextObj(); const {dataProduct} = WOQLClientObj() const [loading, setLoading] = useState(false) @@ -28,6 +32,9 @@ export const JSONModelBuilder = ({tab,saveGraph,accessControlEditMode}) => { const [jsonSchema, setJsonSchema]=useState(false) + const [editMode, setEditMode]=useState(false) + const [value, setValue]=useState(false) + let branch = "main" let ref = "" @@ -49,8 +56,7 @@ export const JSONModelBuilder = ({tab,saveGraph,accessControlEditMode}) => { getJSONSchema() }, [tab,dataProduct,mainGraphObj]) - const [editMode, setEditMode]=useState(false) - const [value, setValue]=useState(false) + MODEL_BUILDER_EDITOR_OPTIONS.readOnly=!editMode @@ -68,7 +74,7 @@ export const JSONModelBuilder = ({tab,saveGraph,accessControlEditMode}) => { //save change in the server await saveGraph(value, commitMsg) setLoading(false) - setEditMode(false) + //setEditMode(false) }catch(err){ let jsonError= JSON.parse(JSON.stringify(err)) @@ -76,61 +82,69 @@ export const JSONModelBuilder = ({tab,saveGraph,accessControlEditMode}) => { if(jsonError.data && jsonError.data["api:message"]) { setReport() } - else setReport() + else setReport() } } } - const editStyle = editMode ? {className:"border rounded border-warning position-sticky"} : {} - const editMessage = editMode ? "Save schema or you will loose your changes" : "" - return + function handleUndo () { + // sets report messagen from modelCallServerHook to false + if(setReportMessage) setReportMessage(false) + setEditMode(false); + getJSONSchema(); + } + + const editStyle = editMode ? {className:"border rounded border-warning position-sticky"} : {} + const editMessage = editMode ? "Save schema or you will lose your changes" : "" + + //console.log("editMode", editMode) + return <> + + {loading && loading} - -
-
- - {accessControlEditMode && !editMode && - - } - {editMode && - - } -
- - {editMode && -
-
-
-
- } - -
- {report && {report}} - + } + {accessControlEditMode && !editMode && + + } - { - const editorValue =editor.doc.getValue() - onBlurHandler(editorValue) - }} - value={value} - options={MODEL_BUILDER_EDITOR_OPTIONS} - className="model-builder-code-mirror" - /> - {/*
{schema}
*/} -
+ css={"btn btn-md bg-light text-dark float-right"}/> + + +
+ {report && {report}} + { + const editorValue =editor.doc.getValue() + onBlurHandler(editorValue) + }} + value={value} + options={MODEL_BUILDER_EDITOR_OPTIONS} + className="model-builder-code-mirror" + /> + {/*
{schema}
*/}
- - + + } diff --git a/packages/tdb-dashboard/src/components/constants.js b/packages/tdb-dashboard/src/components/constants.js index 3394d659..7929ce65 100644 --- a/packages/tdb-dashboard/src/components/constants.js +++ b/packages/tdb-dashboard/src/components/constants.js @@ -439,14 +439,16 @@ export const EDITOR_READ = { } export const MODEL_BUILDER_EDITOR_OPTIONS = { - theme: "ayu-dark", + //theme: "ayu-dark", + theme: "material-darker", height: "auto", viewportMargin: Infinity, - mode: { + mode: "application/ld+json", + /*mode: { name: "javascript", json: true, statementIndent: 2 - }, + },*/ lineNumbers: true, lineWrapping: true, indentWithTabs: false, diff --git a/packages/tdb-dashboard/src/pages/ModelBuilder.js b/packages/tdb-dashboard/src/pages/ModelBuilder.js index 539c25e7..d106a2fe 100644 --- a/packages/tdb-dashboard/src/pages/ModelBuilder.js +++ b/packages/tdb-dashboard/src/pages/ModelBuilder.js @@ -63,7 +63,7 @@ export const ModelBuilder = (props) =>{ {callServerLoading && } {!callServerLoading && dataProduct && - + }