AutolabJS/AutolabJS

View on GitHub
main_server/public/js/adminLogic.js

Summary

Maintainability
A
1 hr
Test Coverage
$(document).ready(function() {
    $('.modal-trigger').leanModal();
    $('#logout-navbar').hide();
    $('#takeToConfig').hide();
    $('#reval_button').hide();
    $('#reval_list').hide();
    $('#updated_score_div').hide();
      $('.collapsible').collapsible({
        accordion : false // A setting that changes the collapsible behavior to expandable instead of the default accordion style
      });





    $('#takeToConfig').click(function(event)
    {
      event.preventDefault();
      window.location = window.location.origin + '/config'
    })

      $('#revalSubmit').click(function(event)
      {
        reval_labs =[];
        event.preventDefault();
        console.log("Clicked")
        $('.revaluation:checked').each(function()
        {

          var id = $(this).attr('id');
          var s_date = $('#'+id+'_start').val().split(' ');
          var e_date = $('#'+id+'_end').val().split(' ');
          if(s_date.length!=2 || e_date.length != 2) alert("Enter the date in the following format\n DD/MM/YYYY HH:MM")
          reval_labs.push({
            labname: $(this).val(),
            start_date:s_date[0].split('/')[0],
            start_month:s_date[0].split('/')[1],
            start_year:s_date[0].split('/')[2],
            start_hour:s_date[1].split(':')[0],
            start_minute:s_date[1].split(':')[1],
            end_date:e_date[0].split('/')[0],
            end_month:e_date[0].split('/')[1],
            end_year:e_date[0].split('/')[2],
            end_hour:e_date[1].split(':')[0],
            end_minute:e_date[1].split(':')[1],
          })

        })
        socket.emit('revaluate',reval_labs)
        $('#reval_list').hide();
      })

        var socket = io.connect();

        $('#submit').click(function(event)
        {
            event.preventDefault();
        $('#dropdown2').hide();
            socket.emit('authorize',{key:$('#APIKey').val()});
            socket.emit('send_reval_data',{});
        })

        socket.on('reval',function(data)
        {

        //Get the already existing labs as returned by the server

        var existing_boxes = [];
        var temp = document.getElementsByTagName('input');
        for(var i in temp)
        {
          if(temp[i].type == 'checkbox') existing_boxes.push(temp[i].value);
        }

        console.log(existing_boxes)
            console.log(data.Labs)

            for(var i = 0;i<data.Labs.length;i++)
            {
          if(existing_boxes.indexOf(data.Labs[i])!=-1)
                continue; //Dont create a new checkbox if there is already one with the same lab name


          $('<div class="l4 m4 s4 " style="float:left;width:33%">'+
             '<input type="checkbox" id="'+ data.Labs[i] +'" class = "filled-in revaluation" value="'+ data.Labs[i] +'">'+
              '<label for ="'+ data.Labs[i] +'">'+ data.Labs[i] +'</label> <br/>'+
              '<input type="text" style="width:50%"  id="'+data.Labs[i]+'_start">'+
              '<label for ="'+ data.Labs[i] +'_start"> Start time</label><br/>'+
              '<input type="text" style="width:50%" id="'+data.Labs[i]+'_end">'+
              '<label for ="'+ data.Labs[i] +'_end"> End time</label><br/>'+
              '</div>').insertBefore('#dummy-modal');
            }
        })

      socket.on('login_success',function(data)
      {
        console.log("Success")
          $('#login_card').hide();
          $('#logout-navbar').show();
          $('#takeToConfig').show();
          $('#reval_button').show();
         // socket.emit('send_reval_data',{});
      })



      $('#logout').click(function(event)
      {
        event.preventDefault();
        socket.emit('logout');
        location.reload();
      })


      $('#reval_button').click(function(event)
      {
        event.preventDefault();
        console.log('toggle')
        $('#reval_list').toggle();
      })

      socket.on('course details',function(data)
      {
        $('#logo_container').html(data["course number"] + ' : Admin Portal');
        console.log(data);
      })


      socket.on('update_score',function(lab)
      {
        console.log(lab)
        $('#updated_score_div').show();
        $('<a href="/revaluation/download/'+lab+'"  class="collection-item">'+lab+'</a>').insertBefore('#dummy_score')
      })

      socket.on('update_score_timeout',function(lab)
      {
        alert("Sorry the revaluation request for " + lab + " timed out! Try again later");
      })



  });