aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/config_bundle
diff options
context:
space:
mode:
authorParker Berberian <pberberian@iol.unh.edu>2018-10-10 16:06:47 -0400
committerParker Berberian <pberberian@iol.unh.edu>2018-10-15 13:16:11 -0400
commit1f3a770d2547848590f39e9d9b9bdffeb94eec14 (patch)
tree97222e5facd1a242d951c38482315057b5790d51 /src/templates/config_bundle
parent6d4019e59eda897384e9c00d1daf8b2ce87d128f (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 'src/templates/config_bundle')
-rw-r--r--src/templates/config_bundle/steps/config_software.html72
-rw-r--r--src/templates/config_bundle/steps/define_software.html102
2 files changed, 174 insertions, 0 deletions
diff --git a/src/templates/config_bundle/steps/config_software.html b/src/templates/config_bundle/steps/config_software.html
new file mode 100644
index 0000000..ca15c77
--- /dev/null
+++ b/src/templates/config_bundle/steps/config_software.html
@@ -0,0 +1,72 @@
+{% extends "workflow/viewport-element.html" %}
+{% load staticfiles %}
+
+{% load bootstrap3 %}
+
+{% block content %}
+
+<form action="/wf/workflow/" method="POST" id="software_config_form" class="form">
+ {% csrf_token %}
+ <p>Give it a name:</p>
+ {{ form.name }}
+
+ <p>And a description:</p>
+ {{ form.description }}
+ <p>Install OPNFV?</p>
+ {{ form.opnfv }}
+ <p>Choose your:</p>
+ <table>
+ <thead>
+ <tr>
+ <th>Installer</th>
+ <th>Scenario</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{form.installer}}</td>
+ <td>{{form.scenario}}</td>
+ </tr>
+ </tbody>
+ </table>
+
+</form>
+
+<script>
+var supported = {{supported|safe}};
+var installer_drop = document.getElementById("id_installer");
+installer_drop.addEventListener("change", filter);
+var scenario_drop = document.getElementById("id_scenario");
+var scenario_options = {};
+for(var i=0; i<scenario_drop.options.length; i++){
+ var option = scenario_drop.options[i];
+ scenario_options[option.text] = option;
+}
+
+scenario_drop.disabled=true;
+
+function filter(){
+ //clear out existing options
+ while(scenario_drop.firstChild){
+ scenario_drop.removeChild(scenario_drop.firstChild)
+ }
+ var installer = installer_drop.options[installer_drop.selectedIndex].text;
+ var options = supported[installer];
+ for(var i=0; i<options.length; i++){
+ scenario_drop.appendChild(scenario_options[options[i]]);
+ }
+ scenario_drop.disabled = false;
+}
+</script>
+
+{% endblock content %}
+
+{% block onleave %}
+var ajaxForm = $("#software_config_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 %}
diff --git a/src/templates/config_bundle/steps/define_software.html b/src/templates/config_bundle/steps/define_software.html
new file mode 100644
index 0000000..8e7be91
--- /dev/null
+++ b/src/templates/config_bundle/steps/define_software.html
@@ -0,0 +1,102 @@
+{% extends "workflow/viewport-element.html" %}
+{% load staticfiles %}
+
+{% load bootstrap3 %}
+
+
+{% block extrahead %}
+ <!-- DataTables CSS -->
+ <link href="{% static "bower_components/datatables-plugins/integration/bootstrap/3/dataTables.bootstrap.css" %}"
+ rel="stylesheet">
+
+ <!-- DataTables Responsive CSS -->
+ <link href="{% static "bower_components/datatables-responsive/css/dataTables.responsive.css" %}" rel="stylesheet">
+{% endblock extrahead %}
+
+{% block content %}
+{% if error %}
+ <h1 style="text-align:center;">{{ error }}</h1>
+{% else %}
+ <form style="width: 90%; margin: 5%;" method="post" action="" class="form" id="softwaredefinitionform">
+ {% csrf_token %}
+
+ <div class="row">
+ <div class="col-lg-12">
+ <div class="dataTables_wrapper">
+ <table class="table table-striped table-bordered table-hover" id="table" cellspacing="0"
+ width="100%">
+
+ {% block table %}
+ <thead>
+ <tr>
+ <th>Device</th>
+ <th>Role</th>
+ <th>Image</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for form in formset %}
+ <tr>
+ {% for field in form %}
+ <td>{{ field }}</td>
+ {% endfor %}
+ </tr>
+ {% endfor %}
+ {{formset.management_form}}
+
+ {% endblock table %}
+
+ </table>
+ </div>
+ <!-- /.table-responsive -->
+ <!-- /.panel-body -->
+ <!-- /.panel -->
+ </div>
+ <!-- /.col-lg-12 -->
+ </div>
+ </form>
+
+ <script>
+function filter_images(){
+ var filter_data = {{filter_data|safe}};
+ for(var key in filter_data){
+ var dropdown = document.getElementById(key);
+ var to_remove = filter_data[key];
+ for(var i=0; i<to_remove.length; i++){
+ for(var j=dropdown.children.length-1; j>=0; j--){
+ if(dropdown.children[j].text == to_remove[i]){
+ dropdown.removeChild(dropdown.children[j]);
+ }
+ }
+ }
+ }
+}
+
+filter_images();
+ </script>
+{% endif %}
+{% endblock content %}
+
+{% block extrajs %}
+ {{ block.super }}
+ <!-- DataTables JavaScript -->
+
+ <script src={% static "bower_components/datatables/media/js/jquery.dataTables.min.js" %}></script>
+ <script src={% static "bower_components/datatables-plugins/integration/bootstrap/3/dataTables.bootstrap.min.js" %}></script>
+
+ <script src={% static "js/dataTables-sort.js" %}></script>
+
+ {% block tablejs %}
+ {% endblock tablejs %}
+{% endblock extrajs %}
+
+
+{% block onleave %}
+var form = $("#softwaredefinitionform");
+var formData = form.serialize();
+var req = new XMLHttpRequest();
+req.open("POST", "/wf/workflow/", false);
+req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+req.onerror = function() { alert("problem with form submission"); }
+req.send(formData);
+{% endblock %}