{% 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>
                                            </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' %}

                                <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 %}