{% 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 class="section">
                    <span style="font-weight: 500;">Select Element</span>
                </div>
                <div id="palette">
                    <div class="node" draggable="true">
                        <div class="icon" style="background-color: #cf1c24" ></div>
                        <div class="name">VDU</div>
                    </div>
                    <div class="node" draggable="true">
                        <div class="icon" style="background-color: #f8a800" ></div>
                        <div class="name">VL</div>
                    </div>
                    <div class="node" draggable="true">
                        <div class="icon" style="background-color: #e3bfad" ></div>
                        <div class="name">intCP</div>
                    </div>
                    <div class="node" draggable="true">
                        <div class="icon" style="background-color: #c6b63f" ></div>
                        <div class="name">extCp</div>
                    </div>

                </div>

            </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>
    <script src="/static/bower_components/moment/moment.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/descriptorhandler/composer.js"></script>
{#    <script src="/static/src/instancehandler/instance_topology_view.js"></script>#}

{% endblock %}

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