1 {% extends "layout-unfold1.html" %}
\r
4 {{ wizard.form.media }}
\r
7 {% block unfold_main %}
\r
9 <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/onelab.css" />
\r
13 <!-- Reputation Specific -->
\r
14 <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}reputation_static/css/main.css" />
\r
16 <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}reputation_static/css/jquery-ui-1.9.2.custom.min.css" />
\r
18 <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}reputation_static/css/jquery.rating.css" />
\r
20 <script src="{{STATIC_URL}}reputation_static/js/jquery-1.9.0.min.js" type="text/javascript"></script>
\r
21 <script type="text/javascript" src="{{STATIC_URL}}reputation_static/js/ui/jquery-ui-1.9.2.custom.min.js"></script>
\r
22 <script type="text/javascript" src="{{STATIC_URL}}reputation_static/js/jquery.raty.min.js"></script>
\r
25 color: rgb(96, 96, 216);
\r
26 width:75% !important;
\r
29 .ui-accordion-header, .ui-accordion-content {
\r
30 width:120% !important;
\r
46 #slicelist li:last-child {
\r
60 #scoreform > ol > li > div > input:first-child {
\r
61 margin: 4px 3px 0 0;
\r
63 #scoreform > ol > li > div > input:last-child {
\r
64 margin: 4px 3px 0 10px;
\r
68 <div id='rep-container' align="center" style="text-align:left;margin-left:1%;">
\r
73 <li><a href="#tabs-1">Testbeds' Reputation</a></li>
\r
74 <li><a href="#tabs-2">Evaluate your experiments</a></li>
\r
79 <table class="reptable table table-bordered table-hover">
\r
82 {% for service in rep_serv %}
\r
83 <th id='service{{forloop.counter}}' class='{{service}}-class'>Service: {{ service}} </th>
\r
88 {% for testbed_rep in reputation %}
\r
89 <tr class="border_bottom">
\r
91 <span> {{ testbed_rep.testbed }} </span>
\r
94 {% for tb_serv in testbed_rep.services %}
\r
107 <h1>Experiment Evaluation</h1>
\r
108 <p><b>List of your unrated experiments</b></p><div id="slicelist">
\r
110 {% for aslice in slicelist %}
\r
111 <h3>Slice <b>{{ aslice.slice_hrn }}</b></h3>
\r
112 <div style="padding-bottom:0;padding-top:0;">
\r
114 experiment from <b>{{ aslice.start_t }}</b> to <b>{{ aslice.end_t }}</b> | <a href="#" class="rate_button" data-resid={{ aslice.id }}>Rate it</a>
\r
128 <div id="scoreform" style="display:none">
\r
131 How was your overall experience with NETMODE Testbed?
\r
136 Did you experience any problems during the experiment?
\r
138 <input type="radio" name="q2" value="1" />Yes
\r
139 <input type="radio" name="q2" value="0" />No
\r
144 How would you rate the provided user support (instructions, tutorials, email support)?
\r
149 Would you use NETMODE testbed again?
\r
151 <input type="radio" name="q4" value="1" />Yes
\r
152 <input type="radio" name="q4" value="0" />No
\r
156 Would you be willing to pay for this service?
\r
158 <input type="radio" name="q5" value="1" />Yes
\r
159 <input type="radio" name="q5" value="0" />No
\r
163 How would you rate the Node Availability in the experiment?
\r
168 How would you rate the Link Quality regarding PDR in the experiment (1:Very Low, 5:Very High )?
\r
173 Rate your level of certainty regarding your answers above?
\r
180 <a href="#">Submit »</a>
\r
188 <div id='temp_log' style="display: none;">
\r
190 <table class="mytable table table-bordered table-hover">
\r
192 <th>User Email</th>
\r
200 {% for slice in slices_users %}
\r
201 <tr class="border_bottom">
\r
203 <a href="/portal/user/{{slice.user}}"><span class="glyphicon glyphicon-search"></span></a>
\r
206 <td class="odd"> {{ slice.user_hrn }} </td>
\r
207 <td class="even"> {{ slice.slice_hrn }} </td>
\r
208 <td class="even"> {{ slice.resource }} </td>
\r
209 <td class="even"> {{ slice.lease }} </td>
\r
216 <div id='logging_out'>{{ logging_test }}</div>
\r
220 <!-- END of Reputation Specific -->
\r
223 <div class="onelab-title well-lg">
\r
224 <h2>Onelab Support</h2>
\r
225 <h4>If you have already registered, then please send an <a href="mailto:support@myslice.info">e-mail</a>
\r
226 or <a href="http://trac.myslice.info/" >visit us</a></h4>
\r
230 <!-- Reputation Specific -->
\r
232 <script type="text/javascript">
\r
236 $( "#tabs" ).tabs();
\r
239 var data = jQuery.parseJSON('{{ json_data|safe }}');
\r
253 function initDialog() {
\r
256 $("input:radio").removeAttr("checked");
\r
257 $("#submit > a").click(function() {
\r
258 if ($("#q2 input:checked").val()) {
\r
259 q2 = $("#q2 input:checked").val();
\r
261 if ($("#q4 input:checked").val()) {
\r
262 q4 = $("#q4 input:checked").val();
\r
264 if ($("#q5 input:checked").val()) {
\r
265 q5 = $("#q5 input:checked").val();
\r
268 $("a[data-resid='"+resid+"']").css("text-decoration", "line-through").unbind("click").removeAttr("href");
\r
270 //TODO: check input if valid before submitting
\r
272 sum = q1 + q2 + q3 + q4 + q5 + q6 + q7 +q8;
\r
275 alert("Please provide at least one rating to submit");
\r
278 $("#scoreform").dialog("close");
\r
280 for(var event in data){
\r
281 if ((data[event]).id == resid) {
\r
282 slicedata = (data[event]);
\r
285 slicedata["user_eval"] = {'overall':q1, 'problems':q2, 'support':q3, 'reuse':q4, 'pay':q5, 'availability':q6, 'link_quality':q7, 'quality':q8};
\r
286 testbeds_str = JSON.stringify(slicedata['testbeds'])
\r
287 delete slicedata['testbeds'];
\r
288 console.log(JSON.stringify(slicedata))
\r
292 url: "reputation/submit_eval",
\r
293 data: {slicedata: slicedata, testbeds: testbeds_str},
\r
294 accepts: "application/json",
\r
295 success: function (data) {
\r
296 var json = $.parseJSON(data);
\r
299 error: function(xhr,errmsg,err) {
\r
300 alert(" X " + errmsg + " X " + err+ ": " + xhr.responseText);
\r
310 starOn: 'static/reputation_static/img/star-on.png',
\r
311 starOff: 'static/reputation_static/img/star-off.png',
\r
312 click: function(score, evt) {
\r
319 starOn: 'static/reputation_static/img/star-on.png',
\r
320 starOff: 'static/reputation_static/img/star-off.png',
\r
321 click: function(score, evt) {
\r
328 starOn: 'static/reputation_static/img/star-on.png',
\r
329 starOff: 'static/reputation_static/img/star-off.png',
\r
330 click: function(score, evt) {
\r
337 starOn: 'static/reputation_static/img/star-on.png',
\r
338 starOff: 'static/reputation_static/img/star-off.png',
\r
339 click: function(score, evt) {
\r
346 starOn: 'static/reputation_static/img/star-on.png',
\r
347 starOff: 'static/reputation_static/img/star-off.png',
\r
348 click: function(score, evt) {
\r
355 vars with answers to questions
\r
358 $("#slicelist").accordion({
\r
359 heightStyle: "content"
\r
364 clone = $("#scoreform").clone(true);
\r
366 $(".rate_button").click(function() {
\r
375 resid = $(this).attr("data-resid");
\r
376 $("#scoreform").dialog({
\r
377 title: "Rate experiment",
\r
383 close : function() {
\r
384 $(this).dialog("destroy");
\r
385 $("#scoreform").remove();
\r
386 $("body").append(clone);
\r
397 <!-- END of Reputation Specific -->
\r