{% 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="#"><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 %}
