diff options
author | Parker Berberian <pberberian@iol.unh.edu> | 2018-10-10 16:06:47 -0400 |
---|---|---|
committer | Parker Berberian <pberberian@iol.unh.edu> | 2018-10-15 13:16:11 -0400 |
commit | 25275685e9a735e51fae8b1a936ba5733f6fb770 (patch) | |
tree | c3af41d1986c0812ca7ed059c16c7c7c7bd354cf /dashboard/src/templates/snapshot_workflow/steps/select_host.html | |
parent | f2e83b24260b018bb7cc30421eda6c9a8cebc309 (diff) |
Lab as a Service 2.0
See changes here:
https://wiki.opnfv.org/display/INF/Pharos+Laas
Change-Id: I59ada5f98e70a28d7f8c14eab3239597e236ca26
Signed-off-by: Sawyer Bergeron <sbergeron@iol.unh.edu>
Signed-off-by: Parker Berberian <pberberian@iol.unh.edu>
Diffstat (limited to 'dashboard/src/templates/snapshot_workflow/steps/select_host.html')
-rw-r--r-- | dashboard/src/templates/snapshot_workflow/steps/select_host.html | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/dashboard/src/templates/snapshot_workflow/steps/select_host.html b/dashboard/src/templates/snapshot_workflow/steps/select_host.html new file mode 100644 index 0000000..16dd5d4 --- /dev/null +++ b/dashboard/src/templates/snapshot_workflow/steps/select_host.html @@ -0,0 +1,95 @@ +{% extends "workflow/viewport-element.html" %} +{% load staticfiles %} + +{% load bootstrap3 %} + +{% block content %} + + +<style> + .booking { + border-style: solid; + border-color: black; + border-width: 2px; + display: inline-block; + padding: 3px; + } + .host { + border-style: solid; + border-color: black; + border-width: 1px; + margin: 2px; + } +</style> + +{% bootstrap_form_errors form type='non_fields' %} +<form id="host_select_form" action="/wf/workflow/" method="POST" class="form"> +{% csrf_token %} +<input type="hidden" id="hidden_json_input", name="host"/> +</form> +<div id="host_select_container"> +</div> +<script> +var selected_host = null; +var initial = {{chosen|default:'null'}}; + +function select(booking_id, host_name){ + var input = document.getElementById("hidden_json_input"); + input.value = JSON.stringify({"booking": booking_id, "name": host_name}); + // clear out and highlist host + if(selected_host){ + selected_host.style['background-color'] = "white"; + } + selected_host = document.getElementById("booking_" + booking_id + "_host_" + host_name); + selected_host.style['background-color'] = "lightgrey"; +} + +function draw_bookings(){ + var booking_hosts = {{booking_hosts|safe}}; + var bookings = []; + var container = document.getElementById("host_select_container"); + for(var booking_id in booking_hosts){ + var booking = document.createElement("DIV"); + var heading = document.createElement("H3"); + heading.appendChild(document.createTextNode("Booking " + booking_id)); + booking.appendChild(heading); + var desc = "start: " + booking_hosts[booking_id].start + + " end: " + booking_hosts[booking_id].end + + " purpose: " + booking_hosts[booking_id].purpose; + booking.appendChild(document.createTextNode(desc)); + booking.id = "booking_" + booking_id; + booking.className = "booking"; + var hosts = booking_hosts[booking_id].hosts; + for(var i=0; i<hosts.length; i++){ + var host = document.createElement("DIV"); + host.id = "booking_" + booking_id + "_host_" + hosts[i].name; + host.className = "host"; + host.appendChild(document.createTextNode(hosts[i].name)); + var hostname = hosts[i].name; + host.booking = booking_id; + host.hostname = hostname; + host.onclick = function() { + select(this.booking, this.hostname); + } + booking.appendChild(host); + } + bookings.push(booking); + container.appendChild(booking); + } +} +draw_bookings(); +if(initial){ + select(initial.booking_id, initial.hostname); +} +</script> +{% endblock content %} + +{% block onleave %} +var ajaxForm = $("#host_select_form"); +var formData = ajaxForm.serialize(); +req = new XMLHttpRequest(); +req.open("POST", "/wf/workflow/", false); +req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); +req.onerror = function() { alert("problem submitting form"); } +req.send(formData); +{% endblock %} |