extend layout
block content
  - var con = parseInt(body.concurrency);
  - var t   = parseInt(body.time);

  form.form-horizontal(action="/services/#{params.service}/sensors/#{params.sensor}/test", method="post", onSubmit="return checkForm()")
    select.input-medium(name="concurrency")
      option Concurrency
      each n in [ 1, 2, 3, 4, 5 ]
        option(value=n, selected=n==con)= n
    &nbsp;
    select.time.input-small(name="time")
      option Time
      each n in [ 2, 5, 10, 20, 30 ]
        option(value=n, selected=n==t)= n + " secs"
    &nbsp;
    input.btn(type="submit", value="Test Performance")
    br
    .hide.progress.progress-striped
      .bar(style="width: 0%;")

    if results
      hr
      table.table.table-bordered
        tr
          th Passed
          td= results.pass
          td= Math.round(results.pass/(results.fail + results.pass)*100) + '%'
        tr
          th Failed
          td= results.fail
          td
        tr
          th Avg Response Time
          td= Math.round(results.time / results.pass) + 'ms'
          td

  :mochi
    function checkForm() {
      var pass = true;
      $('form select').each(#{ if (this.selectedIndex == 0) pass = false });
      if (!pass) alert('Please select proper values for testing');

      if (pass) {
        $('.hide').show();
        var $bar = $('.bar');

        var time    = parseInt($('select.time').val());
        var timeout = time * 1000;
        var incr    = 100 / (timeout / 100);
        var percent = incr;
        var intervalId = setInterval(#{ 
          percent += incr;
          console.log(percent);
          $bar.css('width', percent + '%');
        }, 100);

        setTimeout(#{ clearInterval(intervalId) }, timeout);
      }
      
      return pass;
    }
