summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-06-02 20:41:58 +0200
committerJules Laplace <julescarbon@gmail.com>2020-06-02 20:41:58 +0200
commit7eab18f839616140fe3dbc4b51e29ec903c48077 (patch)
treec6f4160b7567904726f8036d2f5a2ef4d7846093
parent402dd17858076b6a0fac618de85614114dfe94fe (diff)
adding les pages
-rw-r--r--cli/app/controllers/page_controller.py7
-rw-r--r--cli/app/controllers/tile_controller.py6
-rw-r--r--frontend/app.js6
-rw-r--r--frontend/views/graph/components/page.form.js13
-rw-r--r--frontend/views/graph/components/page.new.js3
-rw-r--r--frontend/views/graph/graph.container.js1
-rw-r--r--frontend/views/index/components/graph.form.js6
7 files changed, 35 insertions, 7 deletions
diff --git a/cli/app/controllers/page_controller.py b/cli/app/controllers/page_controller.py
index 1f53171..41d30f3 100644
--- a/cli/app/controllers/page_controller.py
+++ b/cli/app/controllers/page_controller.py
@@ -17,5 +17,12 @@ class PageView(CrudView):
query = query.filter(Page.graph_id == int(graph_id))
return query
+ def on_create(self, session, form, item):
+ item.settings = form['settings']
+ item.graph_id = int(form['graph_id'])
+
+ def on_update(self, session, form, item):
+ item.settings = form['settings']
+
def on_destroy(self, session, item):
session.query(Tile).filter(Tile.page_id == item.id).delete(synchronize_session=False)
diff --git a/cli/app/controllers/tile_controller.py b/cli/app/controllers/tile_controller.py
index 58fd6d0..6e68cb9 100644
--- a/cli/app/controllers/tile_controller.py
+++ b/cli/app/controllers/tile_controller.py
@@ -18,3 +18,9 @@ class TileView(CrudView):
if page_id is not None:
query = query.filter(Tile.page_id == int(page_id))
return query
+
+ def on_create(self, session, form, item):
+ item.settings = form['settings']
+
+ def on_update(self, session, form, item):
+ item.settings = form['settings']
diff --git a/frontend/app.js b/frontend/app.js
index d6bbcb8..ac1f3e1 100644
--- a/frontend/app.js
+++ b/frontend/app.js
@@ -8,16 +8,18 @@ import * as views from './views'
const viewList = Object.keys(views).map(name => {
const view = views[name]
- let path
+ let path, exact = false
if (name === 'graph') {
path = '/:graph_name'
+ exact = true
} else if (name === 'page') {
path = '/:graph_name/:page_name'
+ exact = true
} else {
path = '/' + name
}
return (
- <Route key={name} path={path} component={view} />
+ <Route key={name} path={path} component={view} exact={exact} />
)
})
diff --git a/frontend/views/graph/components/page.form.js b/frontend/views/graph/components/page.form.js
index ce14e2e..54a96a1 100644
--- a/frontend/views/graph/components/page.form.js
+++ b/frontend/views/graph/components/page.form.js
@@ -10,6 +10,9 @@ const newPage = (data) => ({
title: '',
username: session('username'),
description: '',
+ settings: {
+ x: 10, y: 10,
+ },
...data,
})
@@ -42,11 +45,15 @@ export default class PageForm extends Component {
if (errorFields.has(name)) {
errorFields.delete(name)
}
+ let sanitizedValue = value
+ if (name === 'path') {
+ sanitizedValue = sanitizedValue.toLowerCase().replace(/ /, '-').replace(/[!@#$%^&*()[\]{}]/, '-').replace(/-+/, '-')
+ }
this.setState({
errorFields,
data: {
...this.state.data,
- [name]: value,
+ [name]: sanitizedValue,
}
})
}
@@ -69,8 +76,8 @@ export default class PageForm extends Component {
e.preventDefault()
const { isNew, onSubmit } = this.props
const { data } = this.state
- const requiredKeys = "title username path description".split(" ")
- const validKeys = "title username path description".split(" ")
+ const requiredKeys = "path title".split(" ")
+ const validKeys = "graph_id path title username description settings".split(" ")
const validData = validKeys.reduce((a,b) => { a[b] = data[b]; return a }, {})
const errorFields = requiredKeys.filter(key => !validData[key])
if (errorFields.length) {
diff --git a/frontend/views/graph/components/page.new.js b/frontend/views/graph/components/page.new.js
index 5b72f89..921bebd 100644
--- a/frontend/views/graph/components/page.new.js
+++ b/frontend/views/graph/components/page.new.js
@@ -13,8 +13,9 @@ class PageNew extends Component {
actions.page.create(data)
.then(res => {
console.log(res)
+ const graph = this.props.graph.show.res
if (res.res && res.res.id) {
- history.push('/' + res.res.path)
+ history.push('/' + graph.path + '/' + res.res.path)
}
})
.catch(err => {
diff --git a/frontend/views/graph/graph.container.js b/frontend/views/graph/graph.container.js
index 5646d71..0770a04 100644
--- a/frontend/views/graph/graph.container.js
+++ b/frontend/views/graph/graph.container.js
@@ -25,6 +25,7 @@ class GraphContainer extends Component {
}
shouldShowGraph() {
const { graph_name, page_name } = this.props.match.params
+ console.log(graph_name, page_name)
return (graph_name && !page_name && graph_name !== 'index')
}
shouldLoadGraph(prevProps) {
diff --git a/frontend/views/index/components/graph.form.js b/frontend/views/index/components/graph.form.js
index 50f9773..d90b663 100644
--- a/frontend/views/index/components/graph.form.js
+++ b/frontend/views/index/components/graph.form.js
@@ -41,11 +41,15 @@ export default class GraphForm extends Component {
if (errorFields.has(name)) {
errorFields.delete(name)
}
+ let sanitizedValue = value
+ if (name === 'path') {
+ sanitizedValue = sanitizedValue.toLowerCase().replace(/ /, '-').replace(/[!@#$%^&*()[\]{}]/, '-').replace(/-+/, '-')
+ }
this.setState({
errorFields,
data: {
...this.state.data,
- [name]: value,
+ [name]: sanitizedValue,
}
})
}