\n \n \n )\n }\n}\n\nexport default withStyles(styles)(HydraConsole);","import React from 'react'\nimport { withStyles } from '@material-ui/styles';\n// eslint-disable-next-line\nimport { DataSet, Network } from 'visjs-network';\n\nconst styles = theme => ({\n graphContainer: {\n width: '100%',\n height: '82vh',\n },\n});\n\nclass HydraGraph extends React.Component {\n\n componentDidMount(){\n debugger\n var { DataSet, Network } = require('visjs-network');\n\n // Create Node and Edge Datasets \n var nodes = new DataSet(this.props.apidocGraph.nodes)\n var edges = new DataSet(this.props.apidocGraph.edges)\n\n // Get reference to the mynetwork div\n var container = document.getElementById('mynetwork');\n\n var data = {\n nodes: nodes,\n edges: edges\n };\n\n // See vis.js network options for more details on how to use this\n var options = {};\n // Create a network\n // eslint-disable-next-line\n var network = new Network(container, data, options);\n }\n\n render() {\n const { classes } = this.props;\n return (\n \n \n \n )\n }\n}\n\nexport default withStyles(styles)(HydraGraph);","import React from 'react';\nimport NavBar from '../components/navbar/NavBar';\nimport Input from '@material-ui/core/Input';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport IconButton from '@material-ui/core/IconButton';\nimport { withStyles } from '@material-ui/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Send from '@material-ui/icons/Send';\nimport HydraConsole from '../components/hydra-console/HydraConsole'\nimport HydraGraph from '../components/hydra-graph/HydraGraph'\nimport './app.scss';\nimport GuiTheme from './gui-theme'\nimport { ThemeProvider } from '@material-ui/styles';\nimport axios from 'axios';\n\nconst styles = theme => ({\n serverInputContainer: {\n width: '100%',\n backgroundColor: GuiTheme.palette.primary.light,\n border: 10\n },\n serverInput: {\n width: '93%',\n backgroundColor: '#FBD20B',\n padding: '5px',\n borderColor: '#000',\n borderRadius: 10,\n },\n});\n\nclass AgentGUI extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n consoleWidth: 6, \n hidden: false, \n classes: null,\n apidocGraph: {edges: null, nodes: null},\n serverURL: \"http://localhost:8080/serverapi/\"\n }\n\n // Empty when hosted using flask\n this.agentEndpoint = \"\"\n }\n \n componentDidMount() {\n axios.get(this.agentEndpoint + \"/hydra-doc\")\n .then(res => {\n this.setState({\n //for this.supportedClass > if @id=\"vocab:EntryPoint\" then supportedProperty.property.labe\n classes: res.data.supportedClass,\n serverURL: res.data.serverURL.replace(/\\/$/, \"\") + \"/\"\n }, () => this.render())\n });\n\n axios.get(this.agentEndpoint + \"/apidoc-graph\")\n .then(res => {\n this.setState({\n //for this.supportedClass > if @id=\"vocab:EntryPoint\" then supportedProperty.property.labe\n apidocGraph: res.data\n }, () => this.render())\n });\n }\n\n toggleGraph(){\n if(this.state.hidden){\n this.setState({\n consoleWidth: 6,\n hidden: false\n })\n }else{\n this.setState({\n consoleWidth: 12,\n hidden: true\n })\n }\n }\n\n handleChangeServerURL(e){\n debugger\n this.setState({\n serverURL: e.target.value,\n })\n }\n\n submitServerURL(e){\n debugger\n axios.post(this.agentEndpoint + \"/start-agent\" , {url: this.state.serverURL})\n .then( (successUpdate) => {\n axios.get(this.agentEndpoint + \"/hydra-doc\")\n .then(res => {\n this.setState({\n classes: res.data.supportedClass,\n }, () => window.location.reload() )\n .catch( (error) => {\n console.log(error)\n })\n });\n })\n .catch( (error) => {\n console.log(error)\n })\n }\n\n render() {\n const { classes } = this.props;\n\n if(this.state.classes && this.state.apidocGraph.nodes ){\n return (\n \n this.toggleGraph()}>\n \n \n \n \n \n Server URL:\n {if(e.key === 'Enter'){ this.submitServerURL(e) } }}\n value={this.state.serverURL}\n onChange={ (e) => this.handleChangeServerURL(e) }\n className={classes.serverInput}\n disableUnderline={true} \n inputProps={{\n 'aria-label': 'hydrus-url',\n }}\n endAdornment={\n \n this.submitServerURL(e) }\n >\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n );\n }else{\n // This should return a loading screen\n return (
)\n }\n }\n}\nexport default withStyles(styles)(AgentGUI);","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport AgentGUI from './app/app.js';\nimport './index.css';\nimport * as serviceWorker from './service-worker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/console-frontend/build/static/js/main.4752fb84.chunk.js b/console-frontend/build/static/js/main.4752fb84.chunk.js
new file mode 100644
index 0000000..4a23de1
--- /dev/null
+++ b/console-frontend/build/static/js/main.4752fb84.chunk.js
@@ -0,0 +1,2 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{119:function(e,t,n){},120:function(e,t,n){},121:function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o=n(9),s=n.n(o),i=n(15),c=n(11),l=n(18),p=n(16),d=n(19),u=n(159),h=n(160),m=n(124),f=n(161),g=n(68),y=n.n(g),v=n(157),b=n(66),C=n.n(b),E=Object(v.a)(function(e){return{hydraEcoLogo:{maxWidth:"30px",cursor:"pointer"}}}),k=function(e){var t=E(),n={AppBar:{backgroundColor:e.backgroundColor},Typography:{fontSize:e.fontSize,flexGrow:1},centeringSpace:{flexGrow:1.21}};return a.a.createElement("div",null,a.a.createElement(u.a,{position:"static",style:n.AppBar,color:e.color},a.a.createElement(h.a,null,a.a.createElement(m.a,{style:n.Typography,color:e.fontColor},e.text),e.onClick&&a.a.createElement(f.a,{color:"primary",onClick:e.onClick,"aria-label":"add",className:t.fab},a.a.createElement(y.a,null)),a.a.createElement("div",{style:n.centeringSpace}),e.onClick&&a.a.createElement("img",{src:C.a,onClick:function(){return window.open("http://www.hydraecosystem.org/")},className:t.hydraEcoLogo,alt:"logo"}))))},O=n(165),I=n(170),x=n(167),j=n(168),w=n(126),S=n(164),R=n(70),D=n.n(R),A=n(43),L=n(163),P=n(169),N=n(71),B=n(162),J=Object(N.a)({palette:{primary:{main:"#212121",dark:"#404040",light:"#eeeeee",contrastText:"#fff"},secondary:{main:"#FBD20B",dark:"#c3a100",light:"#ffff54",contrastText:"#000"},contrastThreshold:3,tonalOffset:.2,companyBlue:"#FF0000",companyRed:{backgroundColor:"#E44D69",color:"#000"},accent:{backgroundColor:B.a[500],color:"#000"},text:{primary:"#000000",secondary:"#585858"}}}),U=n(21),Z=n.n(U),F=n(69),T=function(e){function t(e){var n;Object(i.a)(this,t),n=Object(l.a)(this,Object(p.a)(t).call(this,e));var r=[];Object.keys(n.props.endpoints).forEach(function(e){r[e]=!1});return r[0]=!0,n.state={buttons:r,selectedButton:0},n}return Object(d.a)(t,e),Object(c.a)(t,[{key:"selectButton",value:function(e){var t=this.state.buttons.slice();t[this.state.selectedButton]=!1,t[e]=!0,this.setState({buttons:t,selectedButton:e})}},{key:"generateButtons",value:function(){var e=this,t=Object.keys(this.props.endpoints),n=this.props.classes;return t.map(function(t,r){var o=e.props.endpoints[t].property.label;return a.a.createElement(L.a,{key:t,variant:"contained",color:e.state.buttons[t]?"secondary":null,className:n.endpointButton,onClick:function(n){e.selectButton(t),e.props.selectEndpoint(t)}},o)})}},{key:"render",value:function(){return this.generateButtons()}}]),t}(a.a.Component),W=Object(w.a)(function(e){return{endpointButton:{width:"80%"},endpointSelectedButton:{backgroundColor:"#f00"}}})(T),Y=function(e){function t(e){var n;Object(i.a)(this,t),n=Object(l.a)(this,Object(p.a)(t).call(this,e));var r=[],a=0;return Object.keys(n.props.operations).forEach(function(e,t){r[e]=!1,"GET"==n.props.operations[e].method&&(a=t)}),r[a]=!0,n.state={buttons:r,selectedButton:a},n}return Object(d.a)(t,e),Object(c.a)(t,[{key:"selectButton",value:function(e){var t=this.state.buttons.slice();t[this.state.selectedButton]=!1,t[e]=!0,this.setState({buttons:t,selectedButton:e})}},{key:"generateButtons",value:function(){var e=this,t=Object.keys(this.props.operations),n=this.props.classes;return t.map(function(t,r){var o=e.props.operations[t].method;return a.a.createElement(f.a,{key:t,color:e.state.buttons[t]?"secondary":null,className:n.fabMargin,onClick:function(n){e.selectButton(t),e.props.selectOperation(t)}},o)})}},{key:"componentDidUpdate",value:function(){if(this.state.selectedButton!==this.props.selectedOperationIndex){var e=this.state.buttons.slice();e[this.state.selectedButton]=!1,e[this.props.selectedOperationIndex]=!0,this.setState({buttons:e,selectedButton:this.props.selectedOperationIndex})}}},{key:"render",value:function(){return this.generateButtons()}}]),t}(a.a.Component),Q=Object(w.a)(function(e){return{fabMargin:{}}})(Y),K=function(e){function t(){return Object(i.a)(this,t),Object(l.a)(this,Object(p.a)(t).apply(this,arguments))}return Object(d.a)(t,e),Object(c.a)(t,[{key:"generateField",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.props.classes;return a.a.createElement(S.a,{className:n.propertyContainer,container:!0,direction:"row",justify:"flex-start",alignItems:"center"},a.a.createElement("label",{className:n.propertyInput},e,":"),a.a.createElement(O.a,{placeholder:t,name:e,value:this.props.properties[e],onChange:this.props.onChange,className:n.input,inputProps:{"aria-label":"description"}}))}},{key:"generateProperties",value:function(){var e=[];for(var t in this.props.properties)e.push(this.generateField(t,null));return e}},{key:"render",value:function(){return this.generateProperties()}}]),t}(a.a.Component),z=Object(w.a)(function(e){return{propertyInput:{color:J.palette.primary.dark,marginLeft:"10px",marginRight:"6px"},propertyContainer:{marginTop:"2px",marginBottom:"2px"},input:{flex:"100"}}})(K),X=Object(w.a)({root:{"& label.Mui-focused":{color:J.palette.primary.light},"& .MuiInput-underline:after":{borderBottomColor:J.palette.secondary.main},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:J.palette.primary.light,height:"55px"},"&:hover fieldset":{borderColor:J.palette.secondary.main},"&.Mui-focused fieldset":{borderColor:J.palette.primary.light}}}})(P.a),G=function(e){function t(e){var n;Object(i.a)(this,t);var r=null,a=[];(n=Object(l.a)(this,Object(p.a)(t).call(this,e))).agentEndpoint="";for(var o in n.temporaryEndpoint=null,n.previousEndpointIndex=0,n.selectedEndpoint=null,n.selectedOperation=null,n.getURL=!0,n.props.hydraClasses)a[n.props.hydraClasses[o]["@id"]]=n.props.hydraClasses[o],"vocab:EntryPoint"===n.props.hydraClasses[o]["@id"]&&(r=n.props.hydraClasses[o].supportedProperty);var s={},c={};for(var d in a)for(var u in s[a[d]["@id"]]={},c[a[d]["@id"]]={},c[a[d]["@id"]].ResourceID="",a[d].supportedProperty)s[a[d]["@id"]][a[d].supportedProperty[u].title]="";return null===localStorage.getItem("properties")?localStorage.setItem("properties",JSON.stringify(s)):s=JSON.parse(localStorage.getItem("properties")),null===localStorage.getItem("resourceIDs")?localStorage.setItem("resourceIDs",JSON.stringify(c)):c=JSON.parse(localStorage.getItem("resourceIDs")),n.state={hydraClasses:a,endpoints:r,properties:s,resourcesIDs:c,selectedEndpointIndex:0,selectedOperationIndex:0,outputText:" Your request output will be displayed here..."},n}return Object(d.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){}},{key:"componentDidUpdate",value:function(){this.restorePropertiesAndResourceIDs()}},{key:"restorePropertiesAndResourceIDs",value:function(){if(this.previousEndpointIndex!=this.state.selectedEndpointIndex){var e=JSON.parse(localStorage.getItem("properties")),t=JSON.parse(localStorage.getItem("resourceIDs"));this.setState({properties:e,resourcesIDs:t}),this.previousEndpointIndex=this.state.selectedEndpointIndex}}},{key:"selectEndpoint",value:function(e){var t=this.state.endpoints[e];this.selectedEndpoint=t;var n=t.property.range.replace("Collection","");this.temporaryEndpoint=n;var r=this.state.hydraClasses[n].supportedOperation,a=0;r.map(function(e,t){"GET"==e.method&&(a=t)}),this.setState({selectedEndpointIndex:e,selectedOperationIndex:a})}},{key:"selectOperation",value:function(e){this.setState({selectedOperationIndex:e})}},{key:"handleChange",value:function(e){this.getURL=!1;var t=Object.assign({},this.state.properties);t[this.temporaryEndpoint][e.target.name]=e.target.value,localStorage.setItem("properties",JSON.stringify(t)),this.setState({properties:t})}},{key:"handleChangeResourceID",value:function(e){this.getURL=!0;var t=Object.assign({},this.state.resourcesIDs);t[e.target.name].ResourceID=e.target.value,localStorage.setItem("resourceIDs",JSON.stringify(t)),this.setState({resourcesIDs:t})}},{key:"clearAllInputs",value:function(e){var t=this,n=Object.assign({},this.state.properties);Object.keys(n[this.temporaryEndpoint]).map(function(e){n[t.temporaryEndpoint][e]=""});var r=Object.assign({},this.state.resourcesIDs);Object.keys(r).map(function(e){r[e].ResourceID=""}),localStorage.setItem("properties",JSON.stringify(n)),localStorage.setItem("resourceIDs",JSON.stringify(r)),this.setState({properties:n,resourcesIDs:r})}},{key:"sendCommand",value:function(){var e=this,t=this.state.properties[this.temporaryEndpoint],n={};for(var r in t)""!==t[r]&&(n[r]=t[r]);var a=this.selectedEndpoint.property.label.replace("Collection","");if("get"===this.selectedOperation.method.toLowerCase()){var o=null;return o=this.getURL?{method:"get",url:this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID}:{method:"get",resource_type:a,filters:n},void Z.a.post(this.agentEndpoint+"/send-command",o).then(function(t){e.setState({outputText:JSON.stringify(t.data,e.jsonStringifyReplacer,8)})}).catch(function(e){console.log(e)})}if("put"===this.selectedOperation.method.toLowerCase()){var s;return s={method:"put",url:this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID,new_object:n},n["@type"]=a,void Z.a.post(this.agentEndpoint+"/send-command",s).then(function(t){e.setState({outputText:JSON.stringify(t.data,e.jsonStringifyReplacer,8)})}).catch(function(e){console.log(e)})}if("post"===this.selectedOperation.method.toLowerCase()){var i;return i={method:"post",url:this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID,updated_object:n},n["@type"]=a,void Z.a.post(this.agentEndpoint+"/send-command",i).then(function(t){e.setState({outputText:JSON.stringify(t.data,e.jsonStringifyReplacer,8)})}).catch(function(e){console.log(e)})}if("delete"===this.selectedOperation.method.toLowerCase()){var c;return c={method:"delete",url:this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID},void Z.a.post(this.agentEndpoint+"/send-command",c).then(function(t){e.setState({outputText:JSON.stringify(t.data,e.jsonStringifyReplacer,8)})}).catch(function(e){console.log(e)})}Z.a.post(this.agentEndpoint+"/send-command",{method:this.selectedOperation.method.toLowerCase(),resource_type:this.selectedEndpoint.property.label,filters:this.state.properties[this.temporaryEndpoint]}).then(function(e){this.setState({outputText:e}),console.log(e)}).catch(function(e){console.log(e)})}},{key:"jsonStringifyReplacer",value:function(e,t){if(""!==t)return t}},{key:"render",value:function(){var e=this,t=this.props.classes,n=this.state.endpoints[this.state.selectedEndpointIndex];this.selectedEndpoint=n;var r=n.property.range.replace("Collection","");this.temporaryEndpoint=r;var o=this.state.hydraClasses[r],s=o.supportedOperation[this.state.selectedOperationIndex];this.selectedOperation=s;var i=JSON.stringify(this.state.properties[r],this.jsonStringifyReplacer),c="";return c=this.getURL?"agent."+this.selectedOperation.method.toLowerCase()+'("'+this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID+'")':"agent."+this.selectedOperation.method.toLowerCase()+'("/'+n.property.label+'", '+i+")",a.a.createElement(S.a,{container:!0,className:t.outContainer,md:12},a.a.createElement(S.a,{item:!0,md:4,xs:12,container:!0,direction:"column",justify:"space-evenly",alignItems:"center"},a.a.createElement(W,{selectEndpoint:function(t){e.selectEndpoint(t)},endpoints:this.state.endpoints})),a.a.createElement(S.a,{item:!0,md:2,xs:12,container:!0,direction:"column",justify:"space-evenly",alignItems:"center"},a.a.createElement(Q,{operations:o.supportedOperation,selectedOperationIndex:this.state.selectedOperationIndex,selectOperation:function(t){e.selectOperation(t)}})),a.a.createElement(S.a,{item:!0,md:6,xs:12,container:!0,direction:"column",justify:"center",alignItems:"center"},a.a.createElement(L.a,{"aria-label":"delete",size:"medium",variant:"contained",className:t.deleteIconButton,onClick:function(t){return e.clearAllInputs(t)}},"CLEAR"),a.a.createElement(S.a,{className:t.propertiesContainer,container:!0,direction:"row",justify:"flex-start",alignItems:"center"},a.a.createElement("label",null," ","{"," "),a.a.createElement(S.a,{className:t.propertyContainer,container:!0,direction:"row",justify:"flex-start",alignItems:"center"},a.a.createElement("label",{className:t.propertyInput},"ResourceID:"),a.a.createElement(O.a,{name:r,value:this.state.resourcesIDs[r].ResourceID,onChange:function(t){return e.handleChangeResourceID(t)},onFocus:function(t){return e.handleChangeResourceID(t)},className:t.input,inputProps:{"aria-label":"description"}})),"DELETE"!==this.selectedOperation.method&&a.a.createElement(z,{properties:this.state.properties[r],onChange:function(t){e.handleChange(t)}}),a.a.createElement("label",null," ","}"," "))),a.a.createElement(S.a,{item:!0,xs:12,container:!0,direction:"row",justify:"center",alignItems:"center"},a.a.createElement(X,{id:"outlined-name",label:"Raw Command",inputProps:{style:{color:J.palette.primary.light}},InputLabelProps:{style:{color:J.palette.primary.light}},className:t.textField,onChange:function(){},margin:"normal",variant:"outlined",value:c}),a.a.createElement(L.a,{variant:"contained",color:"secondary",className:t.sendRequest,onClick:function(){return e.sendCommand()}},"Send Request")),a.a.createElement(S.a,{item:!0,xs:12,spacing:5,container:!0,direction:"column",justify:"center",alignItems:"center"},a.a.createElement("span",{className:t.outputContainerHeader}," Output"),a.a.createElement("div",{className:t.outputContainer},a.a.createElement(F.Scrollbars,null,this.state.outputText))))}}]),t}(a.a.Component),V=Object(w.a)(function(e){return{outContainer:Object(A.a)({height:"87vh",backgroundColor:J.palette.primary.dark},e.breakpoints.down("md"),{height:"160vh"}),propertiesContainer:{maxHeight:"40vh",width:"100%",maxWidth:"80%",padding:"20px",backgroundColor:J.palette.primary.light,overflowY:"auto",border:"3px solid Gray",borderRadius:"25px"},propertyContainer:{marginTop:"2px",marginBottom:"2px"},propertyInput:{color:J.palette.primary.dark,marginLeft:"10px",marginRight:"6px"},input:{flex:"100"},outputContainer:Object(A.a)({height:"40vh",width:"90%",backgroundColor:J.palette.primary.light,whiteSpace:"pre",overflowY:"auto"},"@media (min-width:780px)",{width:"80%",fontSize:"0.8em"}),outputContainerHeader:{width:"90%",backgroundColor:J.palette.primary.light,fontSize:"1.0em",padding:"7px",border:"2px solid Gray",borderRadius:"6px"},textField:{width:"68%",marginRight:"1%",color:"#000",borderColor:"#0f0"},sendRequest:{border:0,borderRadius:3,boxShadow:"0 3px 5px 2px rgba(255, 255, 255, .3)",height:48,width:"22%"},deleteIconButton:{marginLeft:"60% !important",marginBottom:"10px",backgroundColor:J.palette.primary.light,color:J.palette.primary.dark,"&:hover":{backgroundColor:J.palette.secondary.light,color:J.palette.primary.dark}}}})(G),q=(n(65),function(e){function t(){return Object(i.a)(this,t),Object(l.a)(this,Object(p.a)(t).apply(this,arguments))}return Object(d.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){var e=n(65),t=e.DataSet,r=e.Network,a=new t(this.props.apidocGraph.nodes),o=new t(this.props.apidocGraph.edges);new r(document.getElementById("mynetwork"),{nodes:a,edges:o},{})}},{key:"render",value:function(){var e=this.props.classes;return a.a.createElement("header",{className:"app-header"},a.a.createElement("div",{className:e.graphContainer,id:"mynetwork"}))}}]),t}(a.a.Component)),H=Object(w.a)(function(e){return{graphContainer:{width:"100%",height:"82vh"}}})(q),M=(n(119),n(166)),_=function(e){function t(e){var n;return Object(i.a)(this,t),(n=Object(l.a)(this,Object(p.a)(t).call(this,e))).state={consoleWidth:6,hidden:!1,classes:null,apidocGraph:{edges:null,nodes:null},serverURL:"http://localhost:8080/serverapi/"},n.agentEndpoint="",n}return Object(d.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){var e=this;Z.a.get(this.agentEndpoint+"/hydra-doc").then(function(t){e.setState({classes:t.data.supportedClass,serverURL:t.data.serverURL.replace(/\/$/,"")+"/"},function(){return e.render()})}),Z.a.get(this.agentEndpoint+"/apidoc-graph").then(function(t){e.setState({apidocGraph:t.data},function(){return e.render()})})}},{key:"toggleGraph",value:function(){this.state.hidden?this.setState({consoleWidth:6,hidden:!1}):this.setState({consoleWidth:12,hidden:!0})}},{key:"handleChangeServerURL",value:function(e){this.setState({serverURL:e.target.value})}},{key:"submitServerURL",value:function(e){var t=this;Z.a.post(this.agentEndpoint+"/start-agent",{url:this.state.serverURL}).then(function(e){Z.a.get(t.agentEndpoint+"/hydra-doc").then(function(e){t.setState({classes:e.data.supportedClass},function(){return window.location.reload()}).catch(function(e){console.log(e)})})}).catch(function(e){console.log(e)})}},{key:"render",value:function(){var e=this,t=this.props.classes;return this.state.classes&&this.state.apidocGraph.nodes?a.a.createElement(M.a,{theme:J},a.a.createElement(k,{text:"Hydra Agent GUI",fontSize:"1.5em",backgroundColor:J.palette.primary.main,color:"primary",onClick:function(){return e.toggleGraph()}}),a.a.createElement(S.a,{container:!0},a.a.createElement(S.a,{item:!0,hidden:this.state.hidden,md:12-this.state.consoleWidth,xs:12},a.a.createElement(k,{text:"Hydra API",fontSize:"1.3em",backgroundColor:J.palette.primary.light,fontColor:"textSecondary"}),a.a.createElement(S.a,{container:!0,display:"flex",direction:"row",justify:"center",alignItems:"center",className:t.serverInputContainer},a.a.createElement(I.a,{htmlFor:"server_url_input"},"Server URL:"),a.a.createElement(O.a,{id:"server_url_input",placeholder:"Server URL - Default: https://localhost:8080/serverapi/",onKeyPress:function(t){"Enter"===t.key&&e.submitServerURL(t)},value:this.state.serverURL,onChange:function(t){return e.handleChangeServerURL(t)},className:t.serverInput,disableUnderline:!0,inputProps:{"aria-label":"hydrus-url"},endAdornment:a.a.createElement(x.a,{position:"end"},a.a.createElement(j.a,{"aria-label":"toggle password visibility",onClick:function(t){return e.submitServerURL(t)}},a.a.createElement(D.a,null)))})),a.a.createElement(H,{apidocGraph:this.state.apidocGraph})),a.a.createElement(S.a,{item:!0,md:this.state.consoleWidth,xs:12,color:"primary"},a.a.createElement(k,{text:"Agent Console",fontSize:"1.3em",backgroundColor:J.palette.primary.dark}),a.a.createElement(V,{serverUrl:this.state.serverURL,hydraClasses:this.state.classes,color:"primary"})))):a.a.createElement("div",{className:"lds-circle"},a.a.createElement("div",null))}}]),t}(a.a.Component),$=Object(w.a)(function(e){return{serverInputContainer:{width:"100%",backgroundColor:J.palette.primary.light,border:10,display:"flex"},serverInput:{width:"75%",backgroundColor:"#FBD20B",padding:"5px",borderColor:"#000",borderRadius:10}}})(_);n(120),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));s.a.render(a.a.createElement($,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(function(e){e.unregister()})},66:function(e,t){e.exports="data:image/png;base64,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"},78:function(e,t,n){e.exports=n(121)}},[[78,1,2]]]);
+//# sourceMappingURL=main.4752fb84.chunk.js.map
\ No newline at end of file
diff --git a/console-frontend/build/static/js/main.4752fb84.chunk.js.map b/console-frontend/build/static/js/main.4752fb84.chunk.js.map
new file mode 100644
index 0000000..84c1ef9
--- /dev/null
+++ b/console-frontend/build/static/js/main.4752fb84.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["components/navbar/NavBar.jsx","app/gui-theme.js","components/hydra-console/endpoints-buttons/EndpointsButtons.jsx","components/hydra-console/operations-buttons/OperationsButtons.jsx","components/hydra-console/properties-editor/PropertiesEditor.jsx","components/hydra-console/HydraConsole.jsx","components/hydra-graph/HydraGraph.jsx","app/app.js","service-worker.js","index.js","assets/images/hydra_eco_logo.png"],"names":["useStyles","makeStyles","theme","hydraEcoLogo","maxWidth","cursor","NavBar","props","classes","toolbar","AppBar","backgroundColor","Typography","fontSize","flexGrow","centeringSpace","react_default","a","createElement","position","style","color","Toolbar","fontColor","text","onClick","Fab","aria-label","className","fab","AspectRatio_default","src","logo","window","open","alt","createMuiTheme","palette","primary","main","dark","light","contrastText","secondary","contrastThreshold","tonalOffset","companyBlue","companyRed","accent","purple","EndpointsButtons","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","buttons","keys","endpoints","forEach","endpoint","state","selectedButton","clickedButton","updatedButtons","slice","setState","_this2","endpointsArray","map","currProperty","index","labelEndpoint","property","label","Button","key","variant","endpointButton","e","selectButton","selectEndpoint","generateButtons","React","Component","withStyles","width","endpointSelectedButton","OperationsButtons","operations","operation","method","operationsArray","fabMargin","selectOperation","selectedOperationIndex","PropertiesEditor","propertyName","placeholder","arguments","length","undefined","Grid","propertyContainer","container","direction","justify","alignItems","propertyInput","Input","name","value","properties","onChange","input","inputProps","fields","push","generateField","generateProperties","GuiTheme","marginLeft","marginRight","marginTop","marginBottom","flex","CssTextField","root","& label.Mui-focused","& .MuiInput-underline:after","borderBottomColor","& .MuiOutlinedInput-root","& fieldset","borderColor","height","&:hover fieldset","&.Mui-focused fieldset","TextField","HydraConsole","classesMapping","agentEndpoint","temporaryEndpoint","previousEndpointIndex","selectedEndpoint","selectedOperation","getURL","hydraClasses","supportedProperty","classesProperties","resourcesIDs","auxClass","auxProperty","title","localStorage","getItem","setItem","JSON","stringify","parse","selectedEndpointIndex","outputText","restorePropertiesAndResourceIDs","storedProperties","storedResourceIDs","endpointIndex","range","replace","supportedOperation","operationIndex","auxProperties","assign","target","_this3","filteredProperties","resourceType","toLowerCase","getBody","url","serverUrl","resource_type","filters","axios","post","then","response","data","jsonStringifyReplacer","catch","error","console","log","putBody","new_object","postBody","updated_object","deleteBody","_this4","selectedHydraClass","stringProps","rawCommand","outContainer","md","item","xs","endpoints_buttons_EndpointsButtons","operations_buttons_OperationsButtons","size","deleteIconButton","clearAllInputs","propertiesContainer","handleChangeResourceID","onFocus","properties_editor_PropertiesEditor","updatedField","handleChange","id","InputLabelProps","textField","margin","sendRequest","sendCommand","spacing","outputContainerHeader","outputContainer","lib","defineProperty","breakpoints","down","maxHeight","padding","overflowY","border","borderRadius","whiteSpace","boxShadow","&:hover","HydraGraph","_require","require","DataSet","Network","nodes","apidocGraph","edges","document","getElementById","graphContainer","AgentGUI","consoleWidth","hidden","serverURL","get","res","supportedClass","render","successUpdate","location","reload","ThemeProvider","navbar_NavBar","toggleGraph","display","serverInputContainer","InputLabel","htmlFor","onKeyPress","submitServerURL","handleChangeServerURL","serverInput","disableUnderline","endAdornment","InputAdornment","IconButton","Send_default","hydra_graph_HydraGraph","hydra_console_HydraConsole","Boolean","hostname","match","ReactDOM","app_app","navigator","serviceWorker","ready","registration","unregister","module","exports"],"mappings":"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","file":"static/js/main.4752fb84.chunk.js","sourcesContent":["import React from 'react';\nimport AppBar from '@material-ui/core/AppBar'\nimport Toolbar from '@material-ui/core/Toolbar'\nimport Typography from '@material-ui/core/Typography'\nimport Fab from '@material-ui/core/Fab';\nimport AspectRatioIcon from '@material-ui/icons/AspectRatio';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport logo from '../../assets/images/hydra_eco_logo.png';\n\nconst useStyles = makeStyles(theme => ({\n hydraEcoLogo: {\n maxWidth: '30px',\n cursor: 'pointer'\n },\n }));\n\nconst NavBar = (props) => {\n const classes = useStyles();\n\n const toolbar = {\n AppBar: {\n backgroundColor: props.backgroundColor,\n },\n Typography: {\n fontSize: props.fontSize,\n flexGrow: 1,\n },\n centeringSpace: {\n flexGrow: 1.21,\n }\n };\n\n return (\n
\n \n \n )\n }\n}\n\nexport default withStyles(styles)(HydraConsole);","import React from 'react'\nimport { withStyles } from '@material-ui/styles';\n// eslint-disable-next-line\nimport { DataSet, Network } from 'visjs-network';\n\nconst styles = theme => ({\n graphContainer: {\n width: '100%',\n height: '82vh',\n },\n});\n\nclass HydraGraph extends React.Component {\n\n componentDidMount(){\n debugger\n var { DataSet, Network } = require('visjs-network');\n\n // Create Node and Edge Datasets \n var nodes = new DataSet(this.props.apidocGraph.nodes)\n var edges = new DataSet(this.props.apidocGraph.edges)\n\n // Get reference to the mynetwork div\n var container = document.getElementById('mynetwork');\n\n var data = {\n nodes: nodes,\n edges: edges\n };\n\n // See vis.js network options for more details on how to use this\n var options = {};\n // Create a network\n // eslint-disable-next-line\n var network = new Network(container, data, options);\n }\n\n render() {\n const { classes } = this.props;\n return (\n \n \n \n )\n }\n}\n\nexport default withStyles(styles)(HydraGraph);","import React from 'react';\nimport NavBar from '../components/navbar/NavBar';\nimport Input from '@material-ui/core/Input';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport IconButton from '@material-ui/core/IconButton';\nimport { withStyles } from '@material-ui/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Send from '@material-ui/icons/Send';\nimport HydraConsole from '../components/hydra-console/HydraConsole'\nimport HydraGraph from '../components/hydra-graph/HydraGraph'\nimport './app.scss';\nimport GuiTheme from './gui-theme'\nimport { ThemeProvider } from '@material-ui/styles';\nimport axios from 'axios';\n\nconst styles = theme => ({\n serverInputContainer: {\n width: '100%',\n backgroundColor: GuiTheme.palette.primary.light,\n border: 10,\n display: 'flex'\n },\n serverInput: {\n width: '75%',\n backgroundColor: '#FBD20B',\n padding: '5px',\n borderColor: '#000',\n borderRadius: 10,\n },\n});\n\nclass AgentGUI extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n consoleWidth: 6, \n hidden: false, \n classes: null,\n apidocGraph: {edges: null, nodes: null},\n serverURL: \"http://localhost:8080/serverapi/\"\n }\n\n // Empty when hosted using flask\n this.agentEndpoint = \"\"\n }\n \n componentDidMount() {\n axios.get(this.agentEndpoint + \"/hydra-doc\")\n .then(res => {\n this.setState({\n //for this.supportedClass > if @id=\"vocab:EntryPoint\" then supportedProperty.property.labe\n classes: res.data.supportedClass,\n serverURL: res.data.serverURL.replace(/\\/$/, \"\") + \"/\"\n }, () => this.render())\n });\n\n axios.get(this.agentEndpoint + \"/apidoc-graph\")\n .then(res => {\n this.setState({\n //for this.supportedClass > if @id=\"vocab:EntryPoint\" then supportedProperty.property.labe\n apidocGraph: res.data\n }, () => this.render())\n });\n }\n\n toggleGraph(){\n if(this.state.hidden){\n this.setState({\n consoleWidth: 6,\n hidden: false\n })\n }else{\n this.setState({\n consoleWidth: 12,\n hidden: true\n })\n }\n }\n\n handleChangeServerURL(e){\n debugger\n this.setState({\n serverURL: e.target.value,\n })\n }\n\n submitServerURL(e){\n debugger\n axios.post(this.agentEndpoint + \"/start-agent\" , {url: this.state.serverURL})\n .then( (successUpdate) => {\n axios.get(this.agentEndpoint + \"/hydra-doc\")\n .then(res => {\n this.setState({\n classes: res.data.supportedClass,\n }, () => window.location.reload() )\n .catch( (error) => {\n console.log(error)\n })\n });\n })\n .catch( (error) => {\n console.log(error)\n })\n }\n\n render() {\n const { classes } = this.props;\n\n if(this.state.classes && this.state.apidocGraph.nodes ){\n return (\n \n this.toggleGraph()}>\n \n \n \n \n \n Server URL:\n {if(e.key === 'Enter'){ this.submitServerURL(e) } }}\n value={this.state.serverURL}\n onChange={ (e) => this.handleChangeServerURL(e) }\n className={classes.serverInput}\n disableUnderline={true} \n inputProps={{\n 'aria-label': 'hydrus-url',\n }}\n endAdornment={\n \n this.submitServerURL(e) }\n >\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n );\n }else{\n // This should return a loading screen\n return (
)\n }\n }\n}\nexport default withStyles(styles)(AgentGUI);","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport AgentGUI from './app/app.js';\nimport './index.css';\nimport * as serviceWorker from './service-worker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/console-frontend/build/static/js/main.a1aa2e85.chunk.js b/console-frontend/build/static/js/main.a1aa2e85.chunk.js
deleted file mode 100644
index fffc2aa..0000000
--- a/console-frontend/build/static/js/main.a1aa2e85.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{119:function(e,t,n){},120:function(e,t,n){},121:function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o=n(9),s=n.n(o),i=n(15),c=n(11),l=n(18),p=n(16),d=n(19),u=n(159),h=n(160),m=n(124),f=n(161),g=n(68),y=n.n(g),v=n(157),b=n(66),C=n.n(b),E=Object(v.a)(function(e){return{hydraEcoLogo:{maxWidth:"30px",cursor:"pointer"}}}),k=function(e){var t=E(),n={AppBar:{backgroundColor:e.backgroundColor},Typography:{fontSize:e.fontSize,flexGrow:1},centeringSpace:{flexGrow:1.21}};return a.a.createElement("div",null,a.a.createElement(u.a,{position:"static",style:n.AppBar,color:e.color},a.a.createElement(h.a,null,a.a.createElement(m.a,{style:n.Typography,color:e.fontColor},e.text),e.onClick&&a.a.createElement(f.a,{color:"primary",onClick:e.onClick,"aria-label":"add",className:t.fab},a.a.createElement(y.a,null)),a.a.createElement("div",{style:n.centeringSpace}),e.onClick&&a.a.createElement("img",{src:C.a,onClick:function(){return window.open("http://www.hydraecosystem.org/")},className:t.hydraEcoLogo,alt:"logo"}))))},O=n(165),w=n(170),x=n(167),j=n(168),R=n(126),I=n(164),L=n(70),S=n.n(L),A=n(43),P=n(163),D=n(169),N=n(71),B=n(162),Z=Object(N.a)({palette:{primary:{main:"#212121",dark:"#404040",light:"#eeeeee",contrastText:"#fff"},secondary:{main:"#FBD20B",dark:"#c3a100",light:"#ffff54",contrastText:"#000"},contrastThreshold:3,tonalOffset:.2,companyBlue:"#FF0000",companyRed:{backgroundColor:"#E44D69",color:"#000"},accent:{backgroundColor:B.a[500],color:"#000"},text:{primary:"#000000",secondary:"#585858"}}}),U=n(21),F=n.n(U),W=n(69),Y=function(e){function t(e){var n;Object(i.a)(this,t),n=Object(l.a)(this,Object(p.a)(t).call(this,e));var r=[];Object.keys(n.props.endpoints).forEach(function(e){r[e]=!1});return r[0]=!0,n.state={buttons:r,selectedButton:0},n}return Object(d.a)(t,e),Object(c.a)(t,[{key:"selectButton",value:function(e){var t=this.state.buttons.slice();t[this.state.selectedButton]=!1,t[e]=!0,this.setState({buttons:t,selectedButton:e})}},{key:"generateButtons",value:function(){var e=this,t=Object.keys(this.props.endpoints),n=this.props.classes;return t.map(function(t,r){var o=e.props.endpoints[t].property.label;return a.a.createElement(P.a,{key:t,variant:"contained",color:e.state.buttons[t]?"secondary":null,className:n.endpointButton,onClick:function(n){e.selectButton(t),e.props.selectEndpoint(t)}},o)})}},{key:"render",value:function(){return this.generateButtons()}}]),t}(a.a.Component),T=Object(R.a)(function(e){return{endpointButton:{width:"80%"},endpointSelectedButton:{backgroundColor:"#f00"}}})(Y),J=function(e){function t(e){var n;Object(i.a)(this,t),n=Object(l.a)(this,Object(p.a)(t).call(this,e));var r=[];Object.keys(n.props.operations).forEach(function(e){r[e]=!1});return r[0]=!0,n.state={buttons:r,selectedButton:0},n}return Object(d.a)(t,e),Object(c.a)(t,[{key:"selectButton",value:function(e){var t=this.state.buttons.slice();t[this.state.selectedButton]=!1,t[e]=!0,this.setState({buttons:t,selectedButton:e})}},{key:"generateButtons",value:function(){var e=this,t=Object.keys(this.props.operations),n=this.props.classes;return t.map(function(t,r){var o=e.props.operations[t].method;return a.a.createElement(f.a,{key:t,color:e.state.buttons[t]?"secondary":null,className:n.fabMargin,onClick:function(n){e.selectButton(t),e.props.selectOperation(t)}},o)})}},{key:"componentDidUpdate",value:function(){if(this.state.selectedButton!==this.props.selectedOperationIndex){var e=this.state.buttons.slice();e[this.state.selectedButton]=!1,e[this.props.selectedOperationIndex]=!0,this.setState({buttons:e,selectedButton:this.props.selectedOperationIndex})}}},{key:"render",value:function(){return this.generateButtons()}}]),t}(a.a.Component),Q=Object(R.a)(function(e){return{fabMargin:{}}})(J),K=function(e){function t(){return Object(i.a)(this,t),Object(l.a)(this,Object(p.a)(t).apply(this,arguments))}return Object(d.a)(t,e),Object(c.a)(t,[{key:"generateField",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.props.classes;return a.a.createElement(I.a,{className:n.propertyContainer,container:!0,direction:"row",justify:"flex-start",alignItems:"center"},a.a.createElement("label",{className:n.propertyInput},e,":"),a.a.createElement(O.a,{placeholder:t,name:e,value:this.props.properties[e],onChange:this.props.onChange,className:n.input,inputProps:{"aria-label":"description"}}))}},{key:"generateProperties",value:function(){var e=[];for(var t in this.props.properties)e.push(this.generateField(t,null));return e}},{key:"render",value:function(){return this.generateProperties()}}]),t}(a.a.Component),z=Object(R.a)(function(e){return{propertyInput:{color:Z.palette.primary.dark,marginLeft:"10px",marginRight:"6px"},propertyContainer:{marginTop:"2px",marginBottom:"2px"},input:{flex:"100"}}})(K),X=Object(R.a)({root:{"& label.Mui-focused":{color:Z.palette.primary.light},"& .MuiInput-underline:after":{borderBottomColor:Z.palette.secondary.main},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:Z.palette.primary.light,height:"55px"},"&:hover fieldset":{borderColor:Z.palette.secondary.main},"&.Mui-focused fieldset":{borderColor:Z.palette.primary.light}}}})(D.a),G=function(e){function t(e){var n;Object(i.a)(this,t),n=Object(l.a)(this,Object(p.a)(t).call(this,e));var r=null,a=[];for(var o in n.agentEndpoint="",n.props.hydraClasses)a[n.props.hydraClasses[o]["@id"]]=n.props.hydraClasses[o],"vocab:EntryPoint"===n.props.hydraClasses[o]["@id"]&&(r=n.props.hydraClasses[o].supportedProperty);var s={},c={};for(var d in a)for(var u in s[a[d]["@id"]]={},c[a[d]["@id"]]={},c[a[d]["@id"]].ResourceID="",a[d].supportedProperty)s[a[d]["@id"]][a[d].supportedProperty[u].title]="";return n.state={hydraClasses:a,endpoints:r,properties:s,resourcesIDs:c,selectedEndpointIndex:0,selectedOperationIndex:0,outputText:" Your request output will be displayed here..."},n.temporaryEndpoint=null,n.selectedEndpoint=null,n.selectedOperation=null,n.getURL=!0,n}return Object(d.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){}},{key:"selectEndpoint",value:function(e){this.setState({selectedEndpointIndex:e,selectedOperationIndex:0})}},{key:"selectOperation",value:function(e){this.setState({selectedOperationIndex:e})}},{key:"handleChange",value:function(e){this.getURL=!1;var t=Object.assign({},this.state.properties);t[this.temporaryEndpoint][e.target.name]=e.target.value,this.setState({properties:t})}},{key:"handleChangeResourceID",value:function(e){this.getURL=!0;var t=Object.assign({},this.state.resourcesIDs);t[e.target.name].ResourceID=e.target.value,this.setState({resourcesIDs:t})}},{key:"sendCommand",value:function(){var e=this,t=this.state.properties[this.temporaryEndpoint],n={};for(var r in t)""!==t[r]&&(n[r]=t[r]);var a=this.selectedEndpoint.property.label.replace("Collection","");if("get"===this.selectedOperation.method.toLowerCase()){var o=null;return o=this.getURL?{method:"get",url:this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID}:{method:"get",resource_type:a,filters:n},void F.a.post(this.agentEndpoint+"/send-command",o).then(function(t){e.setState({outputText:JSON.stringify(t.data,e.jsonStringifyReplacer,8)})}).catch(function(e){console.log(e)})}if("put"===this.selectedOperation.method.toLowerCase()){var s;return s={method:"put",url:this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID,new_object:n},n["@type"]=a,void F.a.post(this.agentEndpoint+"/send-command",s).then(function(t){e.setState({outputText:JSON.stringify(t.data,e.jsonStringifyReplacer,8)})}).catch(function(e){console.log(e)})}if("post"===this.selectedOperation.method.toLowerCase()){var i;return i={method:"post",url:this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID,updated_object:n},n["@type"]=a,void F.a.post(this.agentEndpoint+"/send-command",i).then(function(t){e.setState({outputText:JSON.stringify(t.data,e.jsonStringifyReplacer,8)})}).catch(function(e){console.log(e)})}if("delete"===this.selectedOperation.method.toLowerCase()){var c;return c={method:"delete",url:this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID},void F.a.post(this.agentEndpoint+"/send-command",c).then(function(t){e.setState({outputText:JSON.stringify(t.data,e.jsonStringifyReplacer,8)})}).catch(function(e){console.log(e)})}F.a.post(this.agentEndpoint+"/send-command",{method:this.selectedOperation.method.toLowerCase(),resource_type:this.selectedEndpoint.property.label,filters:this.state.properties[this.temporaryEndpoint]}).then(function(e){this.setState({outputText:e}),console.log(e)}).catch(function(e){console.log(e)})}},{key:"jsonStringifyReplacer",value:function(e,t){if(""!==t)return t}},{key:"render",value:function(){var e=this,t=this.props.classes,n=this.state.endpoints[this.state.selectedEndpointIndex];this.selectedEndpoint=n;var r=n.property.range.replace("Collection","");this.temporaryEndpoint=r;var o=this.state.hydraClasses[r],s=o.supportedOperation[this.state.selectedOperationIndex];this.selectedOperation=s;var i=JSON.stringify(this.state.properties[r],this.jsonStringifyReplacer),c="";return c=this.getURL?"agent."+this.selectedOperation.method.toLowerCase()+'("'+this.props.serverUrl+this.selectedEndpoint.property.label+"/"+this.state.resourcesIDs[this.temporaryEndpoint].ResourceID+'")':"agent."+this.selectedOperation.method.toLowerCase()+'("/'+n.property.label+'", '+i+")",a.a.createElement(I.a,{container:!0,className:t.outContainer,md:12},a.a.createElement(I.a,{item:!0,md:4,xs:12,container:!0,direction:"column",justify:"space-evenly",alignItems:"center"},a.a.createElement(T,{selectEndpoint:function(t){e.selectEndpoint(t)},endpoints:this.state.endpoints})),a.a.createElement(I.a,{item:!0,md:2,xs:12,container:!0,direction:"column",justify:"space-evenly",alignItems:"center"},a.a.createElement(Q,{operations:o.supportedOperation,selectedOperationIndex:this.state.selectedOperationIndex,selectOperation:function(t){e.selectOperation(t)}})),a.a.createElement(I.a,{item:!0,md:6,xs:12,container:!0,direction:"column",justify:"center",alignItems:"center"},a.a.createElement(I.a,{className:t.propertiesContainer,container:!0,direction:"row",justify:"flex-start",alignItems:"center"},a.a.createElement("label",null," ","{"," "),a.a.createElement(I.a,{className:t.propertyContainer,container:!0,direction:"row",justify:"flex-start",alignItems:"center"},a.a.createElement("label",{className:t.propertyInput},"ResourceID:"),a.a.createElement(O.a,{name:r,value:this.state.resourcesIDs[r].ResourceID,onChange:function(t){return e.handleChangeResourceID(t)},onFocus:function(t){return e.handleChangeResourceID(t)},className:t.input,inputProps:{"aria-label":"description"}})),"DELETE"!==this.selectedOperation.method&&a.a.createElement(z,{properties:this.state.properties[r],onChange:function(t){e.handleChange(t)}}),a.a.createElement("label",null," ","}"," "))),a.a.createElement(I.a,{item:!0,xs:12,container:!0,direction:"row",justify:"center",alignItems:"center"},a.a.createElement(X,{id:"outlined-name",label:"Raw Command",inputProps:{style:{color:Z.palette.primary.light}},InputLabelProps:{style:{color:Z.palette.primary.light}},className:t.textField,onChange:function(){},margin:"normal",variant:"outlined",value:c}),a.a.createElement(P.a,{variant:"contained",color:"secondary",className:t.sendRequest,onClick:function(){return e.sendCommand()}},"Send Request")),a.a.createElement(I.a,{item:!0,xs:12,spacing:5,container:!0,direction:"column",justify:"center",alignItems:"center"},a.a.createElement("span",{className:t.outputContainerHeader}," Output"),a.a.createElement("div",{className:t.outputContainer},a.a.createElement(W.Scrollbars,null,this.state.outputText))))}}]),t}(a.a.Component),V=Object(R.a)(function(e){return{outContainer:Object(A.a)({height:"87vh",backgroundColor:Z.palette.primary.dark},e.breakpoints.down("md"),{height:"160vh"}),propertiesContainer:{maxHeight:"40vh",width:"100%",maxWidth:"80%",padding:"20px",backgroundColor:Z.palette.primary.light,overflowY:"auto",border:"3px solid Gray",borderRadius:"25px"},propertyContainer:{marginTop:"2px",marginBottom:"2px"},propertyInput:{color:Z.palette.primary.dark,marginLeft:"10px",marginRight:"6px"},input:{flex:"100"},outputContainer:Object(A.a)({height:"40vh",width:"90%",backgroundColor:Z.palette.primary.light,whiteSpace:"pre",overflowY:"auto"},"@media (min-width:780px)",{width:"80%",fontSize:"0.8em"}),outputContainerHeader:{width:"90%",backgroundColor:Z.palette.primary.light,fontSize:"1.0em",padding:"7px",border:"2px solid Gray",borderRadius:"6px"},textField:{width:"68%",marginRight:"1%",color:"#000",borderColor:"#0f0"},sendRequest:{border:0,borderRadius:3,boxShadow:"0 3px 5px 2px rgba(255, 255, 255, .3)",height:48,width:"22%"}}})(G),q=(n(65),function(e){function t(){return Object(i.a)(this,t),Object(l.a)(this,Object(p.a)(t).apply(this,arguments))}return Object(d.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){var e=n(65),t=e.DataSet,r=e.Network,a=new t(this.props.apidocGraph.nodes),o=new t(this.props.apidocGraph.edges);new r(document.getElementById("mynetwork"),{nodes:a,edges:o},{})}},{key:"render",value:function(){var e=this.props.classes;return a.a.createElement("header",{className:"app-header"},a.a.createElement("div",{className:e.graphContainer,id:"mynetwork"}))}}]),t}(a.a.Component)),H=Object(R.a)(function(e){return{graphContainer:{width:"100%",height:"82vh"}}})(q),M=(n(119),n(166)),_=function(e){function t(e){var n;return Object(i.a)(this,t),(n=Object(l.a)(this,Object(p.a)(t).call(this,e))).state={consoleWidth:6,hidden:!1,classes:null,apidocGraph:{edges:null,nodes:null},serverURL:"http://localhost:8080/serverapi/"},n.agentEndpoint="",n}return Object(d.a)(t,e),Object(c.a)(t,[{key:"componentDidMount",value:function(){var e=this;F.a.get(this.agentEndpoint+"/hydra-doc").then(function(t){e.setState({classes:t.data.supportedClass,serverURL:t.data.serverURL.replace(/\/$/,"")+"/"},function(){return e.render()})}),F.a.get(this.agentEndpoint+"/apidoc-graph").then(function(t){e.setState({apidocGraph:t.data},function(){return e.render()})})}},{key:"toggleGraph",value:function(){this.state.hidden?this.setState({consoleWidth:6,hidden:!1}):this.setState({consoleWidth:12,hidden:!0})}},{key:"handleChangeServerURL",value:function(e){this.setState({serverURL:e.target.value})}},{key:"submitServerURL",value:function(e){var t=this;F.a.post(this.agentEndpoint+"/start-agent",{url:this.state.serverURL}).then(function(e){F.a.get(t.agentEndpoint+"/hydra-doc").then(function(e){t.setState({classes:e.data.supportedClass},function(){return window.location.reload()}).catch(function(e){console.log(e)})})}).catch(function(e){console.log(e)})}},{key:"render",value:function(){var e=this,t=this.props.classes;return this.state.classes&&this.state.apidocGraph.nodes?a.a.createElement(M.a,{theme:Z},a.a.createElement(k,{text:"Hydra Agent GUI",fontSize:"1.5em",backgroundColor:Z.palette.primary.main,color:"primary",onClick:function(){return e.toggleGraph()}}),a.a.createElement(I.a,{container:!0},a.a.createElement(I.a,{item:!0,hidden:this.state.hidden,md:12-this.state.consoleWidth,xs:12},a.a.createElement(k,{text:"Hydra API",fontSize:"1.3em",backgroundColor:Z.palette.primary.light,fontColor:"textSecondary"}),a.a.createElement(I.a,{container:!0,display:"flex",direction:"row",justify:"center",alignItems:"center",className:t.serverInputContainer},a.a.createElement(w.a,{htmlFor:"server_url_input"},"Server URL:"),a.a.createElement(O.a,{id:"server_url_input",placeholder:"Server URL - Default: https://localhost:8080/serverapi/",onKeyPress:function(t){"Enter"===t.key&&e.submitServerURL(t)},value:this.state.serverURL,onChange:function(t){return e.handleChangeServerURL(t)},className:t.serverInput,disableUnderline:!0,inputProps:{"aria-label":"hydrus-url"},endAdornment:a.a.createElement(x.a,{position:"end"},a.a.createElement(j.a,{"aria-label":"toggle password visibility",onClick:function(t){return e.submitServerURL(t)}},a.a.createElement(S.a,null)))})),a.a.createElement(H,{apidocGraph:this.state.apidocGraph})),a.a.createElement(I.a,{item:!0,md:this.state.consoleWidth,xs:12,color:"primary"},a.a.createElement(k,{text:"Agent Console",fontSize:"1.3em",backgroundColor:Z.palette.primary.dark}),a.a.createElement(V,{serverUrl:this.state.serverURL,hydraClasses:this.state.classes,color:"primary"})))):a.a.createElement("div",{className:"lds-circle"},a.a.createElement("div",null))}}]),t}(a.a.Component),$=Object(R.a)(function(e){return{serverInputContainer:{width:"100%",backgroundColor:Z.palette.primary.light,border:10,display:"flex"},serverInput:{width:"75%",backgroundColor:"#FBD20B",padding:"5px",borderColor:"#000",borderRadius:10}}})(_);n(120),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));s.a.render(a.a.createElement($,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(function(e){e.unregister()})},66:function(e,t){e.exports="data:image/png;base64,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"},78:function(e,t,n){e.exports=n(121)}},[[78,1,2]]]);
-//# sourceMappingURL=main.a1aa2e85.chunk.js.map
\ No newline at end of file
diff --git a/console-frontend/build/static/js/main.a1aa2e85.chunk.js.map b/console-frontend/build/static/js/main.a1aa2e85.chunk.js.map
deleted file mode 100644
index 35461d7..0000000
--- a/console-frontend/build/static/js/main.a1aa2e85.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["components/navbar/NavBar.jsx","app/gui-theme.js","components/hydra-console/endpoints-buttons/EndpointsButtons.jsx","components/hydra-console/operations-buttons/OperationsButtons.jsx","components/hydra-console/properties-editor/PropertiesEditor.jsx","components/hydra-console/HydraConsole.jsx","components/hydra-graph/HydraGraph.jsx","app/app.js","service-worker.js","index.js","assets/images/hydra_eco_logo.png"],"names":["useStyles","makeStyles","theme","hydraEcoLogo","maxWidth","cursor","NavBar","props","classes","toolbar","AppBar","backgroundColor","Typography","fontSize","flexGrow","centeringSpace","react_default","a","createElement","position","style","color","Toolbar","fontColor","text","onClick","Fab","aria-label","className","fab","AspectRatio_default","src","logo","window","open","alt","createMuiTheme","palette","primary","main","dark","light","contrastText","secondary","contrastThreshold","tonalOffset","companyBlue","companyRed","accent","purple","EndpointsButtons","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","buttons","keys","endpoints","forEach","endpoint","state","selectedButton","clickedButton","updatedButtons","slice","setState","_this2","endpointsArray","map","currProperty","index","labelEndpoint","property","label","Button","key","variant","endpointButton","e","selectButton","selectEndpoint","generateButtons","React","Component","withStyles","width","endpointSelectedButton","OperationsButtons","operations","operation","operationsArray","method","fabMargin","selectOperation","selectedOperationIndex","PropertiesEditor","propertyName","placeholder","arguments","length","undefined","Grid","propertyContainer","container","direction","justify","alignItems","propertyInput","Input","name","value","properties","onChange","input","inputProps","fields","push","generateField","generateProperties","GuiTheme","marginLeft","marginRight","marginTop","marginBottom","flex","CssTextField","root","& label.Mui-focused","& .MuiInput-underline:after","borderBottomColor","& .MuiOutlinedInput-root","& fieldset","borderColor","height","&:hover fieldset","&.Mui-focused fieldset","TextField","HydraConsole","classesMapping","agentEndpoint","hydraClasses","supportedProperty","classesProperties","resourcesIDs","auxClass","auxProperty","title","selectedEndpointIndex","outputText","temporaryEndpoint","selectedEndpoint","selectedOperation","getURL","endpointIndex","operationIndex","auxProperties","assign","target","filteredProperties","resourceType","replace","toLowerCase","getBody","url","serverUrl","resource_type","filters","axios","post","then","response","JSON","stringify","data","jsonStringifyReplacer","catch","error","console","log","putBody","new_object","postBody","updated_object","deleteBody","_this3","range","selectedHydraClass","supportedOperation","stringProps","rawCommand","outContainer","md","item","xs","endpoints_buttons_EndpointsButtons","operations_buttons_OperationsButtons","propertiesContainer","handleChangeResourceID","onFocus","properties_editor_PropertiesEditor","updatedField","handleChange","id","InputLabelProps","textField","margin","sendRequest","sendCommand","spacing","outputContainerHeader","outputContainer","lib","defineProperty","breakpoints","down","maxHeight","padding","overflowY","border","borderRadius","whiteSpace","boxShadow","HydraGraph","_require","require","DataSet","Network","nodes","apidocGraph","edges","document","getElementById","graphContainer","AgentGUI","consoleWidth","hidden","serverURL","get","res","supportedClass","render","successUpdate","location","reload","_this4","ThemeProvider","navbar_NavBar","toggleGraph","display","serverInputContainer","InputLabel","htmlFor","onKeyPress","submitServerURL","handleChangeServerURL","serverInput","disableUnderline","endAdornment","InputAdornment","IconButton","Send_default","hydra_graph_HydraGraph","hydra_console_HydraConsole","Boolean","hostname","match","ReactDOM","app_app","navigator","serviceWorker","ready","registration","unregister","module","exports"],"mappings":"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","file":"static/js/main.a1aa2e85.chunk.js","sourcesContent":["import React from 'react';\nimport AppBar from '@material-ui/core/AppBar'\nimport Toolbar from '@material-ui/core/Toolbar'\nimport Typography from '@material-ui/core/Typography'\nimport Fab from '@material-ui/core/Fab';\nimport AspectRatioIcon from '@material-ui/icons/AspectRatio';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport logo from '../../assets/images/hydra_eco_logo.png';\n\nconst useStyles = makeStyles(theme => ({\n hydraEcoLogo: {\n maxWidth: '30px',\n cursor: 'pointer'\n },\n }));\n\nconst NavBar = (props) => {\n const classes = useStyles();\n\n const toolbar = {\n AppBar: {\n backgroundColor: props.backgroundColor,\n },\n Typography: {\n fontSize: props.fontSize,\n flexGrow: 1,\n },\n centeringSpace: {\n flexGrow: 1.21,\n }\n };\n\n return (\n
\n \n \n )\n }\n}\n\nexport default withStyles(styles)(HydraConsole);","import React from 'react'\nimport { withStyles } from '@material-ui/styles';\n// eslint-disable-next-line\nimport { DataSet, Network } from 'visjs-network';\n\nconst styles = theme => ({\n graphContainer: {\n width: '100%',\n height: '82vh',\n },\n});\n\nclass HydraGraph extends React.Component {\n\n componentDidMount(){\n debugger\n var { DataSet, Network } = require('visjs-network');\n\n // Create Node and Edge Datasets \n var nodes = new DataSet(this.props.apidocGraph.nodes)\n var edges = new DataSet(this.props.apidocGraph.edges)\n\n // Get reference to the mynetwork div\n var container = document.getElementById('mynetwork');\n\n var data = {\n nodes: nodes,\n edges: edges\n };\n\n // See vis.js network options for more details on how to use this\n var options = {};\n // Create a network\n // eslint-disable-next-line\n var network = new Network(container, data, options);\n }\n\n render() {\n const { classes } = this.props;\n return (\n \n \n \n )\n }\n}\n\nexport default withStyles(styles)(HydraGraph);","import React from 'react';\nimport NavBar from '../components/navbar/NavBar';\nimport Input from '@material-ui/core/Input';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport IconButton from '@material-ui/core/IconButton';\nimport { withStyles } from '@material-ui/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Send from '@material-ui/icons/Send';\nimport HydraConsole from '../components/hydra-console/HydraConsole'\nimport HydraGraph from '../components/hydra-graph/HydraGraph'\nimport './app.scss';\nimport GuiTheme from './gui-theme'\nimport { ThemeProvider } from '@material-ui/styles';\nimport axios from 'axios';\n\nconst styles = theme => ({\n serverInputContainer: {\n width: '100%',\n backgroundColor: GuiTheme.palette.primary.light,\n border: 10,\n display: 'flex'\n },\n serverInput: {\n width: '75%',\n backgroundColor: '#FBD20B',\n padding: '5px',\n borderColor: '#000',\n borderRadius: 10,\n },\n});\n\nclass AgentGUI extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n consoleWidth: 6, \n hidden: false, \n classes: null,\n apidocGraph: {edges: null, nodes: null},\n serverURL: \"http://localhost:8080/serverapi/\"\n }\n\n // Empty when hosted using flask\n this.agentEndpoint = \"\"\n }\n \n componentDidMount() {\n axios.get(this.agentEndpoint + \"/hydra-doc\")\n .then(res => {\n this.setState({\n //for this.supportedClass > if @id=\"vocab:EntryPoint\" then supportedProperty.property.labe\n classes: res.data.supportedClass,\n serverURL: res.data.serverURL.replace(/\\/$/, \"\") + \"/\"\n }, () => this.render())\n });\n\n axios.get(this.agentEndpoint + \"/apidoc-graph\")\n .then(res => {\n this.setState({\n //for this.supportedClass > if @id=\"vocab:EntryPoint\" then supportedProperty.property.labe\n apidocGraph: res.data\n }, () => this.render())\n });\n }\n\n toggleGraph(){\n if(this.state.hidden){\n this.setState({\n consoleWidth: 6,\n hidden: false\n })\n }else{\n this.setState({\n consoleWidth: 12,\n hidden: true\n })\n }\n }\n\n handleChangeServerURL(e){\n debugger\n this.setState({\n serverURL: e.target.value,\n })\n }\n\n submitServerURL(e){\n debugger\n axios.post(this.agentEndpoint + \"/start-agent\" , {url: this.state.serverURL})\n .then( (successUpdate) => {\n axios.get(this.agentEndpoint + \"/hydra-doc\")\n .then(res => {\n this.setState({\n classes: res.data.supportedClass,\n }, () => window.location.reload() )\n .catch( (error) => {\n console.log(error)\n })\n });\n })\n .catch( (error) => {\n console.log(error)\n })\n }\n\n render() {\n const { classes } = this.props;\n\n if(this.state.classes && this.state.apidocGraph.nodes ){\n return (\n \n this.toggleGraph()}>\n \n \n \n \n \n Server URL:\n {if(e.key === 'Enter'){ this.submitServerURL(e) } }}\n value={this.state.serverURL}\n onChange={ (e) => this.handleChangeServerURL(e) }\n className={classes.serverInput}\n disableUnderline={true} \n inputProps={{\n 'aria-label': 'hydrus-url',\n }}\n endAdornment={\n \n this.submitServerURL(e) }\n >\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n );\n }else{\n // This should return a loading screen\n return (
)\n }\n }\n}\nexport default withStyles(styles)(AgentGUI);","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport AgentGUI from './app/app.js';\nimport './index.css';\nimport * as serviceWorker from './service-worker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/console-frontend/src/components/hydra-console/HydraConsole.jsx b/console-frontend/src/components/hydra-console/HydraConsole.jsx
index e8e5e81..df1dce6 100644
--- a/console-frontend/src/components/hydra-console/HydraConsole.jsx
+++ b/console-frontend/src/components/hydra-console/HydraConsole.jsx
@@ -101,6 +101,16 @@ const styles = theme => ({
boxShadow: '0 3px 5px 2px rgba(255, 255, 255, .3)',
height: 48,
width: '22%',
+ },
+ deleteIconButton: {
+ marginLeft: '60% !important',
+ marginBottom: '10px',
+ backgroundColor: GuiTheme.palette.primary.light,
+ color: GuiTheme.palette.primary.dark,
+ '&:hover': {
+ backgroundColor: GuiTheme.palette.secondary.light,
+ color: GuiTheme.palette.primary.dark,
+ },
}
});
@@ -110,6 +120,14 @@ class HydraConsole extends React.Component {
var endpoints = null;
var classesMapping = []
this.agentEndpoint = ""
+ let selectedOperationIndex = 0
+
+ // util variables
+ this.temporaryEndpoint = null;
+ this.previousEndpointIndex = 0; // for managing the state and local storage
+ this.selectedEndpoint = null;
+ this.selectedOperation = null;
+ this.getURL = true;
// Modifying reference from indexed array[0, 1, 2] to name ["vocab:Drone", "vocab:.."]
for(var index in this.props.hydraClasses){
@@ -132,6 +150,20 @@ class HydraConsole extends React.Component {
classesMapping[auxClass].supportedProperty[auxProperty].title] = ""
}
}
+
+ // Initialize the local storage with the empty values
+ if (localStorage.getItem('properties') === null) {
+ localStorage.setItem('properties', JSON.stringify(classesProperties))
+ }else{
+ classesProperties = JSON.parse(localStorage.getItem('properties'))
+ }
+
+ if (localStorage.getItem('resourceIDs') === null) {
+ localStorage.setItem('resourceIDs', JSON.stringify(resourcesIDs))
+ }else{
+ resourcesIDs = JSON.parse(localStorage.getItem('resourceIDs'))
+ }
+
this.state = {
hydraClasses: classesMapping,
endpoints: endpoints,
@@ -141,20 +173,51 @@ class HydraConsole extends React.Component {
selectedOperationIndex: 0,
outputText: " Your request output will be displayed here..."
};
- this.temporaryEndpoint = null;
- this.selectedEndpoint = null;
- this.selectedOperation = null;
- this.getURL = true;
+
}
componentDidMount() {
}
+ componentDidUpdate() {
+ this.restorePropertiesAndResourceIDs()
+ }
+
+ restorePropertiesAndResourceIDs() {
+ if(this.previousEndpointIndex != this.state.selectedEndpointIndex) {
+ const storedProperties = JSON.parse(localStorage.getItem('properties'))
+ const storedResourceIDs = JSON.parse(localStorage.getItem('resourceIDs'))
+
+ this.setState({
+ properties: storedProperties,
+ resourcesIDs: storedResourceIDs
+ })
+
+ // updating for next time
+ this.previousEndpointIndex = this.state.selectedEndpointIndex
+ }
+ }
+
selectEndpoint(endpointIndex) {
- this.setState(
- {selectedEndpointIndex: endpointIndex,
- selectedOperationIndex: 0}
- )
+ const selectedEndpoint = this.state.endpoints[endpointIndex];
+ this.selectedEndpoint = selectedEndpoint;
+
+ const temporaryEndpoint = selectedEndpoint.property.range.replace("Collection", "")
+ this.temporaryEndpoint = temporaryEndpoint;
+
+ const selectedHydraClass = this.state.hydraClasses[temporaryEndpoint];
+ const operations = selectedHydraClass.supportedOperation
+
+ let selectedOperationIndex = 0;
+ operations.map((operation, index) => {
+ if(operation.method == "GET")
+ selectedOperationIndex = index
+ })
+
+ this.setState({
+ selectedEndpointIndex: endpointIndex,
+ selectedOperationIndex: selectedOperationIndex
+ })
}
selectOperation(operationIndex) {
@@ -169,6 +232,9 @@ class HydraConsole extends React.Component {
let auxProperties = Object.assign({}, this.state.properties);
auxProperties[this.temporaryEndpoint][e.target.name] = e.target.value;
+
+ localStorage.setItem('properties', JSON.stringify(auxProperties))
+
this.setState({
properties: auxProperties
})
@@ -180,11 +246,38 @@ class HydraConsole extends React.Component {
let resourcesIDs = Object.assign({}, this.state.resourcesIDs);
resourcesIDs[e.target.name]['ResourceID'] = e.target.value;
+
+ localStorage.setItem('resourceIDs', JSON.stringify(resourcesIDs))
+
this.setState({
resourcesIDs: resourcesIDs
})
}
+ clearAllInputs(e) {
+ // Will clear the current endpoints input
+ let auxProperties = Object.assign({}, this.state.properties);
+ Object.keys(auxProperties[this.temporaryEndpoint]).map(name => {
+ auxProperties[this.temporaryEndpoint][name] = ""
+ })
+
+ let resourcesIDs = Object.assign({}, this.state.resourcesIDs);
+ Object.keys(resourcesIDs).map(name => {
+ resourcesIDs[name]['ResourceID'] = ""
+ })
+
+ localStorage.setItem('properties', JSON.stringify(auxProperties))
+ localStorage.setItem('resourceIDs', JSON.stringify(resourcesIDs))
+
+
+ this.setState({
+ properties: auxProperties,
+ resourcesIDs: resourcesIDs
+ })
+ }
+
+
+
sendCommand(){
const properties = this.state.properties[this.temporaryEndpoint];
var filteredProperties = {}
@@ -312,11 +405,10 @@ class HydraConsole extends React.Component {
const temporaryEndpoint = selectedEndpoint.property.range.replace("Collection", "")
this.temporaryEndpoint = temporaryEndpoint;
-
+
var selectedHydraClass = this.state.hydraClasses[temporaryEndpoint];
- const selectedOperation = selectedHydraClass.supportedOperation[
- this.state.selectedOperationIndex];
+ const selectedOperation = selectedHydraClass.supportedOperation[this.state.selectedOperationIndex];
this.selectedOperation = selectedOperation;
var stringProps = JSON.stringify(this.state.properties[temporaryEndpoint], this.jsonStringifyReplacer);
@@ -363,6 +455,13 @@ class HydraConsole extends React.Component {
direction="column"
justify="center"
alignItems="center">
+
{
+ let selectedButton = 0;
+
+ const operationsArray = Object.keys(this.props.operations);
+ operationsArray.forEach( (operation, index) => {
buttons[operation] = false
+ if(this.props.operations[operation].method == "GET")
+ selectedButton = index
})
- const selectedButton = 0;
+
buttons[ selectedButton ] = true
this.state = {