{% 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 }}
    {{ type|upper }} Composer
{% endblock %}
{% block left_sidebar %}
    {% include 'osm/osm_project_left_sidebar.html' %}
{% endblock %}


{% block breadcrumb_body %}
    {{ block.super }}
    <li><a href="{% url 'projects:descriptors:list_descriptors'  descriptor_type=type %}">{{ type|upper }} Descriptors</a></li>
    <li><a href="#"><i class="fa fa-sitemap"></i> {{ type|upper }} Composer</a></li>
{% 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>

            </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" data-container="body" data-toggle="tooltip" data-placement="top" title="Text view"  class="btn btn btn-default" onclick="openTextedit(this)"><i
                            class="fa fa-edit"></i></button>
                    <button id="info_button" type="button" data-container="body" data-toggle="tooltip" data-placement="top" title="Help"  class="btn btn btn-default "onclick="openHelp(this)" ><i class="fa fa-info"></i></button>
                </div>
                <div id="legenda">
                </div>
            </div>
            <div id="side">
                <form id="side_form" method="post" enctype="multipart/form-data" action="">
                    {% csrf_token %}
                </form>
            </div>
        </div>
    </div>

    {% include 'modal/modal_keyboard_info_base.html' %}
{% endblock %}

{% block resource_block %}
    {{ block.super }}

    <!-- 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/controller.js"></script>
    <script src="/static/src/descriptorhandler/composer.js"></script>

{% endblock %}

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