From 0a341a1f6e1d805143dc13e56bc67394840118b4 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 10 Jul 2020 20:37:19 +0200 Subject: updating home page works --- frontend/api/crud.reducer.js | 7 +++++++ frontend/views/graph/components/graph.editor.js | 5 +++++ frontend/views/graph/components/page.handle.js | 5 ++++- frontend/views/graph/graph.actions.js | 8 ++++++++ frontend/views/graph/graph.container.js | 1 - frontend/views/graph/graph.css | 4 ++++ 6 files changed, 28 insertions(+), 2 deletions(-) diff --git a/frontend/api/crud.reducer.js b/frontend/api/crud.reducer.js index 04ade91..baf2536 100644 --- a/frontend/api/crud.reducer.js +++ b/frontend/api/crud.reducer.js @@ -114,6 +114,13 @@ export const crudReducer = (type) => { return { ...state, update: action.data, + index: addToIndex(state.index, action.data.res, state.options.sort), + show: { + res: (state.show.res.id === action.data.res.id ? { + ...state.show.res, + ...action.data.res, + } : state.show.res), + } } case crud_type.index_error: return { diff --git a/frontend/views/graph/components/graph.editor.js b/frontend/views/graph/components/graph.editor.js index 3be0063..99c5665 100644 --- a/frontend/views/graph/components/graph.editor.js +++ b/frontend/views/graph/components/graph.editor.js @@ -82,6 +82,11 @@ class GraphEditor extends Component { } handleMouseDown(e, page) { + if (e.shiftKey) { + e.preventDefault() + this.props.graphActions.setHomePageId(this.props.graph.show.res, page) + return + } const bounds = this.getBoundingClientRect() const mouseX = e.pageX const mouseY = e.pageY diff --git a/frontend/views/graph/components/page.handle.js b/frontend/views/graph/components/page.handle.js index 13eee45..be05a1a 100644 --- a/frontend/views/graph/components/page.handle.js +++ b/frontend/views/graph/components/page.handle.js @@ -36,11 +36,14 @@ export default class PageHandle extends Component { left: (bounds.width) * Math.min(page.settings.x, 0.95), } } + const className = (graph.home_page_id === page.id) + ? 'handle homepage' + : 'handle' const url = '/' + graph.path + '/' + page.path // console.log(style) return (
history.push(url)} diff --git a/frontend/views/graph/graph.actions.js b/frontend/views/graph/graph.actions.js index 03ea217..bf6b643 100644 --- a/frontend/views/graph/graph.actions.js +++ b/frontend/views/graph/graph.actions.js @@ -1,4 +1,5 @@ import * as types from '../../types' +import actions from '../../actions' export const showAddPageForm = () => dispatch => { dispatch({ type: types.graph.show_add_page_form }) @@ -27,3 +28,10 @@ export const toggleEditPageForm = () => dispatch => { export const updateGraphPage = page => dispatch => { dispatch({ type: types.graph.update_graph_page, page }) } + +export const setHomePageId = (graph, page) => dispatch => { + let updated_graph = { ...graph } + delete updated_graph.pages + updated_graph.home_page_id = page.id + actions.graph.update(updated_graph) +} \ No newline at end of file diff --git a/frontend/views/graph/graph.container.js b/frontend/views/graph/graph.container.js index 5c6e3b5..7f53d64 100644 --- a/frontend/views/graph/graph.container.js +++ b/frontend/views/graph/graph.container.js @@ -25,7 +25,6 @@ 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/graph/graph.css b/frontend/views/graph/graph.css index d59e649..389a55d 100644 --- a/frontend/views/graph/graph.css +++ b/frontend/views/graph/graph.css @@ -160,6 +160,10 @@ user-select: none; cursor: arrow; } +.handle.homepage { + background: #533854; + border-color: #edc40e; +} .handle a { margin-left: 0.25rem; color: #fff; -- cgit v1.2.3-70-g09d2