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


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

{% endblock %}
{% block title_header_big %}
    {{ block.super }}
{% endblock %}
{% block left_sidebar %}

    {% include 'osm/osm_project_left_sidebar.html' %}

{% endblock %}


{% block breadcrumb_body %}
    {{ block.super }}
    <li><a href="{% url 'vims:list'  %}">VIMS</a></li>
{% endblock %}

{% block content_body %}
    {{ block.super }}

    <div class="row">
        <div class="col-md-12">
            <form action='{% url "vims:create"   %}' method="post">
                {% csrf_token %}
                <div class="box">
                    <div class="box-header with-border">
                        <h3 class="box-title">NEW VIM ACCOUNT</h3>
                        <div class="box-tools">

                        </div>
                    </div>
                    <div class="box-body">

                        <div class="row">
                            <div class="col-lg-6">
                                <div class="row">
                                    <div class="form-group">
                                        <label for="name" class="col-sm-3 control-label">Name*</label>
                                        <div class="col-sm-6 input-group input-group-sm">
                                            <input class="form-control" id="name" name="name" placeholder="VIM name"
                                                   required>
                                        </div>
                                    </div>
                                </div>
                                <div class="row">
                                    <div class="form-group">
                                        <label for="vim_type" class="col-sm-3 control-label">Type*</label>
                                        <div class="col-sm-6 input-group input-group-sm">
                                            <select id="vim_type" name="vim_type" class="form-control"
                                                    onchange="toggleConfig(this)">
                                                <option value="openvim">OpenVIM</option>
                                                <option value="openstack">Openstack</option>
                                                <option value="vmware">VMware vCD</option>
                                                <option value="aws">AWS</option>
                                                <option value="opennebula">OpenNebula</option>
                                            </select>
                                        </div>
                                    </div>
                                </div>
                                <div class="row">
                                    <div class="form-group">
                                        <label for="vim_url" class="col-sm-3 control-label">VIM URL*</label>
                                        <div class="col-sm-6 input-group input-group-sm">
                                            <input type="url" class="form-control" id="vim_url" name="vim_url"
                                                   placeholder="VIM URL" required>
                                        </div>
                                    </div>
                                </div>
                                <div class="row">
                                    <div class="form-group">
                                        <label for="vim_user" class="col-sm-3 control-label">VIM Username*</label>
                                        <div class="col-sm-6 input-group input-group-sm">
                                            <input class="form-control" id="vim_user" name="vim_user"
                                                   placeholder="VIM Username" required>
                                        </div>
                                    </div>
                                </div>
                                <div class="row">
                                    <div class="form-group">
                                        <label for="vim_password" class="col-sm-3 control-label">VIM Password*</label>
                                        <div class="col-sm-6 input-group input-group-sm">
                                            <input type="password" class="form-control" id="vim_password"
                                                   name="vim_password" placeholder="VIM Password" required>
                                        </div>
                                    </div>
                                </div>




                            </div>
                            <div class="col-lg-6">
                                <div class="row">
                                    <div class="form-group">
                                        <label for="vim_tenant_name" class="col-sm-3 control-label">Tenant name*</label>
                                        <div class="col-sm-6 input-group input-group-sm">
                                            <input class="form-control" id="vim_tenant_name" name="vim_tenant_name"
                                                   placeholder="Tenant name" required>
                                        </div>
                                    </div>
                                </div>
                                <div class="row">
                                    <div class="form-group">
                                        <label for="description" class="col-sm-3 control-label">Description</label>
                                        <div class="col-sm-6 input-group input-group-sm">
                                            <input class="form-control" id="description" name="description"
                                                   placeholder="Description">
                                        </div>
                                    </div>
                                </div>
                                <div class="row">
                                    <div class="form-group">
                                        <label for="schema_type" class="col-sm-3 control-label">Schema Type</label>
                                        <div class="col-sm-6 input-group input-group-sm">
                                            <input class="form-control" id="schema_type" name="schema_type"
                                                   placeholder="Schema Type">
                                        </div>
                                    </div>
                                </div>
                                <div class="row">
                                    <div class="form-group">
                                        <label for="schema_version" class="col-sm-3 control-label">Schema
                                            Version</label>
                                        <div class="col-sm-6 input-group input-group-sm">
                                            <input class="form-control" id="schema_version" name="schema_version"
                                                   placeholder="Schema Version">
                                        </div>
                                    </div>
                                </div>
                            </div>


                        </div>

                        <div id="config" class="panel box">

                                <a data-toggle="collapse" data-parent="#accordion" href="#config_collapse"
                                   aria-expanded="false" class="collapsed" style="color:black">
                                    <h5 class="box-title" style="background-color:#f7f7f7; text-align: center;">
                                        CONFIG PARAMETERS
                                    </h5>
                                </a>


                            <div id="config_collapse" class="panel-collapse collapse ">
                                {% include 'config/openvim.html' %}
                                {% include 'config/openstack.html' %}
                                {% include 'config/vmware.html' %}
                                {% include 'config/aws.html' %}
                                {% include 'config/opennebula.html' %}

                                <div class="row">
                                    <div class="col-lg-6">
                                        <div class="row ">
                                            <div class="form-group">
                                                <label for="additional_conf" class="col-sm-4 control-label">Additional configuration</label>
                                                <div class="col-sm-6 input-group input-group-sm">
                                                    <input class="form-control" id="additional_conf"
                                                           name="additional_conf"
                                                           placeholder='{ "key1": [...],  "key2": {}, "key3": "" }'>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>

                            </div>
                        </div>


                    </div>
                    <div class="box-footer">
                        <button onclick="location.href='{% url 'vims:list' %}'" class="btn btn-default pull-left">Back to
                            VIM Accounts
                        </button>
                        <button class="btn btn-primary pull-right">Create</button>
                    </div>
                </div>
            </form>
        </div>

    </div>
{% endblock %}

{% block resource_block %}
    {{ block.super }}
    <!-- Utility JS -->

    <script>
        $(document).ready(function () {
            toggleConfig(document.getElementById("vim_type"));
        });
        function toggleConfig(element){
            $('.config-vim').hide();
            $('.config-input').prop('disabled', true);
            var type_selected = element.options[element.selectedIndex].value;
            console.log("type selected: " + type_selected);
            var div_config_index = type_selected + '_config_collapse';
            $('#'+div_config_index).show();
            $('#'+div_config_index+' .config-input').prop('disabled', false);
        }
    </script>

{% endblock %}

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