From 301a08b3dbc7a59169be7c0a87eb09b5b58bb232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Thu, 27 Jul 2017 12:22:42 +0200 Subject: [PATCH] deactivate nodes without sending a request --- src/c3nav/editor/static/editor/js/editor.js | 19 +++++++++++++++++++ src/c3nav/editor/templates/editor/graph.html | 2 +- src/c3nav/editor/views/edit.py | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/c3nav/editor/static/editor/js/editor.js b/src/c3nav/editor/static/editor/js/editor.js index 711c4143..0c310e07 100644 --- a/src/c3nav/editor/static/editor/js/editor.js +++ b/src/c3nav/editor/static/editor/js/editor.js @@ -201,6 +201,8 @@ editor = { editor._last_graph_path = null; } + editor._deactivate_graph_node_on_click = (content.find('[data-deactivate-node-on-click]').length > 0); + var geometry_url = content.find('[data-geometry-url]'); var $body = $('body'); if (geometry_url.length) { @@ -292,6 +294,7 @@ editor = { _active_graph_node: null, _active_graph_node_space_transfer: null, _active_graph_node_html: null, + _deactivate_graph_node_on_click: false, init_geometries: function () { // init geometries and edit listeners editor._highlight_layer = L.layerGroup().addTo(editor.map); @@ -496,6 +499,7 @@ editor = { }, pointToLayer: editor._point_to_layer }).getLayers()[0].addTo(editor._highlight_layer); + node_layer.node_layer = layer; node_layer.on('mouseover', editor._hover_graph_item) .on('mouseout', editor._unhover_graph_item) .on('click', editor._click_graph_node); @@ -616,6 +620,21 @@ editor = { _click_graph_node: function(e) { // click callback for a graph node if (editor._loading_geometry) return; + if (editor._deactivate_graph_node_on_click && editor._active_graph_node === e.target.feature.properties.id) { + e.target.node_layer.setStyle({ + stroke: false + }); + e.target.setStyle({ + opacity: 0, + }); + var sidebar = $('#sidebar'); + sidebar.find('[data-active-node]').remove(); + sidebar.find('#id_active_node').val(''); + editor._active_graph_node = null; + editor._active_graph_node_space_transfer = null; + editor._active_graph_node_html = null; + return; + } $('#id_clicked_node').val(e.target.feature.properties.id).closest('form').submit(); editor.map.doubleClickZoom.disable(); }, diff --git a/src/c3nav/editor/templates/editor/graph.html b/src/c3nav/editor/templates/editor/graph.html index db742946..4f404d91 100644 --- a/src/c3nav/editor/templates/editor/graph.html +++ b/src/c3nav/editor/templates/editor/graph.html @@ -40,7 +40,7 @@
{% endif %} -
+ {% csrf_token %}

{% trans 'Default node properties' %}

diff --git a/src/c3nav/editor/views/edit.py b/src/c3nav/editor/views/edit.py index 812f01cc..827c35c4 100644 --- a/src/c3nav/editor/views/edit.py +++ b/src/c3nav/editor/views/edit.py @@ -501,6 +501,8 @@ def graph_edit(request, level=None, space=None): 'edge_settings_form': edge_settings_form, 'graph_action_form': graph_action_form, 'graph_editing': graph_editing, + 'deactivate_node_on_click': graph_editing_settings['node_click'] in ('deactivate', 'toggle', + 'connect_or_toggle'), }) return render(request, 'editor/graph.html', ctx)