{% extends "base.html" %}
{% load get %}
{% load staticfiles %}



{% block head_block %}
    {{ block.super }}

<!-- TopologyComposer D3 -->
    <link rel="stylesheet" href="/static/TopologyComposer/css/composer.css">
    <link rel="stylesheet" href="/static/TopologyComposer/css/d3-context-menu.css">


{% endblock %}
{% block title_header_big %}
    {{ block.super }}
{% endblock %}
{% block left_sidebar %}
    {% include 'osm/osm_project_left_sidebar.html' %}
{% endblock %}


{% block breadcrumb_body %}
    {{ block.super }}
    {% comment %}<li><a href="{% url 'projects:descriptors:list_descriptors'  type=type %}">{{ type|upper }} Descriptors</a></li>
    <li><a href="#"><i class="fa fa-sitemap"></i> {{ type|upper }} Topology</a></li>{% endcomment %}
{% endblock %}

{% block content_body %}
    {{ block.super }}
    {% csrf_token %}
    <div class="container-fluid">
        <div id="main" class="row">
            <div id="leftside">

            </div>
            <div id="graph_editor_container" class="col">
                <div class="btn-group left-tool-bar-monitoring">
                    <button id="topology_force" type="button" class="btn btn btn-default" onclick="handleForce(this)"
                            data-toggle="button" aria-pressed="false" autocomplete="off"><i
                            class="fas fa-thumbtack"></i></button>
                    <button id="reset_filter" type="button" class="btn btn btn-default" onclick="resetFilters(this)"><i
                            class="fa fa-backward"></i></button>
                </div>
                <div id="legenda">
                </div>
            </div>
            <div id="side">

            </div>
        </div>
    </div>

{% endblock %}

{% block resource_block %}
    {{ block.super }}
    <script>
        var topology_data = {};//{{topology_data|safe }};
    </script>
    <!-- d3.js -->
    <script src="/static/bower_components/d3/d3.js"></script>

    <!-- TopologyComposer D3 -->
    <script src="/static/TopologyComposer/js/event.js"></script>
    <script src="/static/TopologyComposer/js/settings.js"></script>
    <script src="/static/TopologyComposer/js/graph_editor.js"></script>
    <script src="/static/TopologyComposer/js/model_graph_editor.js"></script>
    <script src="/static/TopologyComposer/js/d3-context-menu.js"></script>


    <script src="/static/src/osm_gui_properties.js"></script>
{#    <script src="/static/src/instancehandler/instance_topology_view.js"></script>#}

{% endblock %}

{% block footer %}
    {% include "footer.html" %}
{% endblock %}
