Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //--------------------------------------------
- // FRONT-END
- // JASON POLAND
- //--------------------------------------------
- //curlRegistrar.php
- <?php
- $data = $_POST['data'];
- $decode = json_decode($data);
- $curlId = $decode->curlid;
- //Start POST for Question
- $curlInit = curl_init();
- $post = [ 'data' => $data ];
- //init
- $url = "";
- $message = "";
- //null check
- if(is_null($data)) { $message .= "Data is Not Defined \n"; }
- if(is_null($curlId)) { $message .= "CurlId is Not Defined \n"; $curlId=""; }
- //curl options
- curl_setopt($curlInit, CURLOPT_POST, 1);
- curl_setopt($curlInit, CURLOPT_RETURNTRANSFER, true);
- switch ($curlId) {
- case "getquestion":
- $message .= "GETQUESTION - MID Curl \n";
- $url = "http://afsaccess1.njit.edu/~rap86/backCurlRegistrarCopy.php";
- break;
- case "gettest":
- $message .= "GETTEST - MID Curl \n";
- $url = "http://afsaccess1.njit.edu/~rap86/backCurlRegistrarCopy.php";
- break;
- case "modtest":
- $message .= "MODTEST - MID Curl \n";
- $url = "http://afsaccess1.njit.edu/~rap86/backCurlRegistrarCopy.php";
- break;
- case "updatetest":
- $message .= "UPDATETEST - MID Curl \n";
- $url = "http://afsaccess1.njit.edu/~rap86/backCurlRegistrarCopy.php";
- break;
- case "createtest":
- $message .= "CREATETEST - MID Curl \n";
- $url = "http://afsaccess1.njit.edu/~rap86/backCurlRegistrarCopy.php";
- break;
- case "createquestion":
- $message .= "CREATEQUESTION - MID Curl \n";
- $url = "http://afsaccess1.njit.edu/~rap86/backCurlRegistrarCopy.php";
- break;
- case "updatefeedback":
- $message .= "UPDATEFEEDBACK - MID Curl \n";
- $url = "http://afsaccess1.njit.edu/~rap86/backCurlRegistrarCopy.php";
- break;
- default:
- $message .= "Invalid/Unsupported Curl \n";
- break;
- }
- //curl fill-in options
- curl_setopt($curlInit, CURLOPT_URL, $url);
- curl_setopt($curlInit, CURLOPT_POSTFIELDS, http_build_query($post));
- //json test function
- function isJson($string){
- return is_string($string) && is_array(json_decode($string, true)) && (json_last_error() == JSON_ERROR_NONE) ? true : false;
- }
- //execute curl
- $response = curl_exec($curlInit);
- curl_close($curlInit);
- if(isset($response)){
- if(isJson($response)){
- $decode2 = json_decode($response);
- $decode2->middebugmessage = $message;
- echo json_encode($decode2);
- }
- else{
- echo "\n Middle Debug: \n".$message."\n Back End Response: \n".$response;
- }
- }
- else{
- echo "No Curls Executed \n".$message;
- }
- ?>
- //Auth.js
- // Setting up For Authentication
- //*********************************************************************************
- function createCookie( cookie_name, cookie_value, expire_indays){
- var d = new Date();
- d.setTime(d.getTime() + (expire_indays * 24 * 60 * 60 * 1000));
- var expires = "expires=" + d.toUTCString();
- document.cookie = cookie_name + "=" + cookie_value + ";" + expires + ";path=/";
- }
- function getCookie( cookie_name ){
- var name = cookie_name + "=";
- var ca = document.cookie.split(';');
- for(var i = 0; i <ca.length; i++){
- var c = ca[i];
- while(c.charAt(0) == ' '){
- c = c.substring(1);
- }
- if( c.indexOf(name) == 0 ){
- return c.substring(name.length, c.length);
- }
- }
- return "";
- }
- function checkAuth(accessLevel){
- var access = getCookie("access");
- var session = getCookie("session");
- //No Session Found |or| No Access - Redirect To Login
- if(session == "" || access == "" || session == "undefined"){ location.href = 'https://web.njit.edu/~jrp68/CS490/Login.html'; }
- //Student Page
- if( accessLevel == "1" ){
- //Check if User is Student
- if( access == "2" ){
- //Not a Student! - redirect to Teacher homepage
- //alert("No Access!");
- location.href = 'https://web.njit.edu/~jrp68/CS490/teacherHomepage.html';
- }
- }
- //Teacher Page
- if( accessLevel == "2" ){
- //Check if User is Teacher
- if( access == "1"){
- //Not a Teacher! - redirect to Student homepage
- //alert("No Access!");
- location.href = 'https://web.njit.edu/~jrp68/CS490/studentHomepage.html';
- }
- }
- }
- function logout(){
- //Getting Values for Post
- var xhttp = new XMLHttpRequest();
- var session = getCookie("session");
- var query = 'sessionID=' + session + '&curlid=' + "logout";
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){
- console.log("%c"+JsonStr.debugmessage,"color:orange");
- }
- console.log(JsonStr);
- if( JsonStr.logout == "0" ){
- //Error? - ?
- }
- if( JsonStr.logout == "1" ){
- //Successful Logout
- createCookie("session", "", 1);
- createCookie("access", "", 1);
- location.href = 'https://web.njit.edu/~jrp68/CS490/Login.html';
- }
- }
- catch(err){
- console.warn("Curl Returned a Message: "+this.responseText);
- }
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- //Login.js
- //Allowing Enter key to Submit
- var input = document.getElementById("Pass");
- input.addEventListener("keyup", function(event){
- event.preventDefault();
- if(event.keyCode === 13){
- document.getElementById("enter").click();
- }
- });
- //JS Functions Start
- //**********************************************************
- function sendPost(){
- //Getting Values for Post
- var xhttp = new XMLHttpRequest();
- var user = document.getElementById("UCID").value;
- var pass = document.getElementById("Pass").value;
- var query = 'user=' + user + '&pass=' + pass + '&curlid=' + "auth";
- createCookie("usernameTest", user, 2);
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){
- console.log("%c"+JsonStr.debugmessage,"color:orange");
- }
- console.log(JsonStr);
- if( JsonStr.dbresponse == "0" ){
- //Invalid Login
- document.getElementById("postResponse").innerHTML = "Invalid Credentials: ";
- }
- if( JsonStr.dbresponse == "1" ){
- //Student Login
- createCookie("access", "1", 2);
- createCookie("session", JsonStr.sid, 2);
- location.href = 'https://web.njit.edu/~jrp68/CS490/studentHomepage.html';
- }
- if( JsonStr.dbresponse == "2" ){
- //Teacher Login
- createCookie("access", "2", 2);
- createCookie("session", JsonStr.sid, 2);
- location.href = 'https://web.njit.edu/~jrp68/CS490/teacherHomepage.html';
- }
- }
- catch(err){
- console.warn("Curl Returned a Message: \n"+this.responseText);
- }
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- //PreviewGrade.js
- //Setting up Page Title
- var test = getCookie("testName");
- var name = getCookie("studentName");
- var questionstable = [];
- document.getElementById('testTitle').innerHTML = test;
- loadTestQuestions(test, name);
- function loadTestQuestions(test, user){
- //gettests
- //parse data and only use the data for user/test
- //create tables for each questions
- var xhttp = new XMLHttpRequest();
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- //Build Query
- var query = 'sessionID=' + sessionID + '&curlid=' + "gettest";
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{ var JsonStr = JSON.parse(this.responseText); }
- catch(err){ }
- //Reset Current Test Search
- //document.getElementById("questionDisplay").innerHTML = "";
- console.log(JsonStr);
- var currentHTML = document.getElementById("questionDisplay");
- //TESTS
- for( var key in JsonStr.dbTests){
- if(key != test) { continue; } //If not this test dont include it
- //USERS
- for(var key2 in JsonStr.dbTests[key]){
- if(key2 != user) { continue; } //If not this user dont include it
- //QUESTIONS
- for( var key3 in JsonStr.dbTests[key][key2]['questions']){
- //Setup values
- var qName = key3;
- var fName = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['fname'];
- var studentAnswer = JsonStr.dbTests[key][key2]['questions'][key3]['studentanswer'];
- var autoFeedBack = JsonStr.dbTests[key][key2]['questions'][key3]['autofeedback'];
- var qWorth = JsonStr.dbTests[key][key2]['questions'][key3]['worth'];
- var qEarned = JsonStr.dbTests[key][key2]['questions'][key3]['earnedpoints'];
- var dfname = JsonStr.dbTests[key][key2]['questions'][key3]['dfname'];
- var dconstraint = JsonStr.dbTests[key][key2]['questions'][key3]['dconstraint'];
- var dcase1 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase1'];
- var dcase2 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase2'];
- var dcase3 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase3'];
- var dcase4 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase4'];
- var dcase5 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase5'];
- var dcase6 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase6'];
- var dcolon = JsonStr.dbTests[key][key2]['questions'][key3]['dcolon'];
- var srcase1 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase1'];
- var srcase2 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase2'];
- var srcase3 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase3'];
- var srcase4 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase4'];
- var srcase5 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase5'];
- var srcase6 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase6'];
- var deducted = qWorth - qEarned;
- var teacherFeedBack = JsonStr.dbTests[key][key2]['questions'][key3]['teacherfeedback'];
- //Add question for later reference
- questionstable.push(fName);
- //Null Checks
- if(teacherFeedBack==null) { teacherFeedBack=""; }
- if(studentAnswer==null) { studentAnswer=""; }
- //create table for question using data
- //FIRST - QUESTION, FUNCTION, STUDENT ANSWER, AND AUTO FEEDBACK
- var input = "<table>";
- input += "<tr width=100%> <td><label>Question: </label><br><textarea id=\""+fName+"qname"+"\" placeholder='No Answer' disabled rows='2' cols='100'>"+qName+"</textarea></td>";
- input += "<td><label>Function Name: </label><br><textarea placeholder='No Answer' disabled rows='2' cols='100'>"+fName+"</textarea></td> </tr>";
- input += "<tr width=100%> <td valign='top'><label>Student Answered: </label><br><textarea placeholder='No Answer' disabled rows='8' cols='50'>"+studentAnswer+"</textarea></td>";
- input += "<td valign='top'><label>Auto Grader Feedback: </label><br>"; //end td tag after loop
- // AUTOGRADER FEEDBACK WORKAROUND!!!
- // -check if testcase is null
- // -if it is dont include it
- // -check deduct that autograder set
- // -if 0 then Passed!
- // -if more then 0 Fail!
- // -----------------------------------------------
- //get values for all testcases
- var case1 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case1'];
- var case2 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case2'];
- var case3 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case3'];
- var case4 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case4'];
- var case5 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case5'];
- var case6 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case6'];
- var rcase1 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase1'];
- var rcase2 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase2'];
- var rcase3 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase3'];
- var rcase4 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase4'];
- var rcase5 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase5'];
- var rcase6 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase6'];
- var constraint = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['constraint'];
- //Start Checking if testcase exsist and display it with correct data
- input += "<table class='clean'>";
- if(dfname>0){
- input += "<tr><td width=70%>";
- input += "<label class='redGrade'>";
- input += "Function Name Does Not Match: Expecting " + fName + "</label></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+fName+"df"+"\" value='"+dfname+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td width=70%><label class='greenGrade'>";
- input += "Function Name Matches </label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"df"+"\" value='0' min='0'><br></td></tr>";
- }
- if(constraint!=''){
- if(dconstraint>0){
- input += "<tr><td><label class='redGrade'>";
- input += constraint + " Constraint was not used.</label></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"dc"+"\" value='"+dconstraint+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += constraint + " Contraint was used. </label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"dc"+"\" value='0' min='0'><br></td></tr>";
- }
- }
- //Added colon
- //-----------------------------------------------------------------
- if(typeof dcolon !== 'undefined'){
- if(dcolon>0){
- input += "<tr><td><label class='redGrade'>";
- input += "Colon was not used.</label></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"dcol"+"\" value='"+dcolon+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += "Colon was used. </label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"dcol"+"\" value='0' min='0'><br></td></tr>";
- }
- }
- //end
- //-------------------------------------------------------------------
- if(case1!=''){
- if(dcase1>0){
- input += "<tr><td><label class='redGrade'>";
- input += case1 + " Failed: Expecting " + rcase1 + " Got " + srcase1 + "</label></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d1"+"\" value='"+dcase1+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case1 + " Passed: Expecting " + rcase1 + " Got " + srcase1 + "</label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d1"+"\" value='0' min='0'><br></td></tr>";
- }
- }
- if(case2!=''){
- if(dcase2>0){
- input += "<tr><td><label class='redGrade'>";
- input += case2 + " Failed: Expecting " + rcase2 + " Got " + srcase2 + "</label></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d2"+"\" value='"+dcase2+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case2 + " Passed: Expecting " + rcase2 + " Got " + srcase2 + "</label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d2"+"\" value='0' min='0'><br></td></tr>";
- }
- }
- if(case3!=''){
- if(dcase3>0){
- input += "<tr><td><label class='redGrade'>";
- input += case3 + " Failed: Expecting " + rcase3 + " Got " + srcase3 + "</label></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d3"+"\" value='"+dcase3+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case3 + " Passed: Expecting " + rcase3 + " Got " + srcase3 + "</label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d3"+"\" value='0' min='0'><br></td></tr>";
- }
- }
- if(case4!=''){
- if(dcase4>0){
- input += "<tr><td><label class='redGrade'>";
- input += case4 + " Failed: Expecting " + rcase4 + " Got " + srcase4 + "</label></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d4"+"\" value='"+dcase4+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case4 + " Passed: Expecting " + rcase4 + " Got " + srcase4 + "</label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d4"+"\" value='0' min='0'><br></td></tr>";
- }
- }
- if(case5!=''){
- if(dcase5>0){
- input += "<tr><td><label class='redGrade'>";
- input += case5 + " Failed: Expecting " + rcase5 + " Got " + srcase5 + " </label></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d5"+"\" value='"+dcase5+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case5 + " Passed: Expecting " + rcase5 + " Got " + srcase5 + "</label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d5"+"\" value='0' min='0'><br></td></tr>";
- }
- }
- if(case6!=''){
- if(dcase6>0){
- input += "<tr><td><label class='redGrade'>";
- input += case6 + " Failed: Expecting " + rcase6 + " Got " + srcase6 + "</label></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d6"+"\" value='"+dcase6+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case6 + " Passed: Expecting " + rcase6 + " Got " + srcase6 + "</label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"d6"+"\" value='0' min='0'><br></td></tr>";
- }
- }
- input += "</table>";
- input += "</td> </tr> ";
- //SECOND - QUESTION WORTHS AND TEACHER FEEDBACK BOX
- input += "<tr width=100%> <td width=50%>";
- input += "<label>Worth: </label><input disabled type='number' id=\""+fName+"worth"+"\" value='"+qWorth+"'>";
- input += "<label>Earned Points: </label><input disabled type='number' value='"+qEarned+"'>";
- input += "</td><td width=50%><textarea placeholder='Teacher Feedback' id=\""+fName+"teacherFB"+"\" rows='2' cols='50'>"+teacherFeedBack+"</textarea> </td></tr>";
- input += "</table>";
- //Add to Screen
- currentHTML.innerHTML = currentHTML.innerHTML + input;
- }
- }
- }
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function sendupdate(){
- //structure data to be send!!!
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- var test = getCookie("testName");
- var name = getCookie("studentName");
- var qCount = questionstable.length;
- var query = 'qCount=' + qCount + '&sessionID=' + sessionID;
- query += '&testname=' + test + '&username=' + name;
- query += '&curlid=' + "updatefeedback";
- var loopcount = 0;
- while(questionstable.length){
- var fName = questionstable.pop();
- var qName = document.getElementById(fName+"qname").value;
- var qWorth = document.getElementById(fName+"worth").value;
- var df=0;
- var dc=0;
- //Added
- var dcol=0;
- var d1=0;
- var d2=0;
- var d3=0;
- var d4=0;
- var d5=0;
- var d6=0;
- var tdf = document.getElementById(fName+"df");
- var tdc = document.getElementById(fName+"dc");
- var td1 = document.getElementById(fName+"d1");
- var td2 = document.getElementById(fName+"d2");
- var td3 = document.getElementById(fName+"d3");
- var td4 = document.getElementById(fName+"d4");
- var td5 = document.getElementById(fName+"d5");
- var td6 = document.getElementById(fName+"d6");
- //Added
- var tdcol = document.getElementById(fName+"dcol");
- var earned = parseInt(qWorth, 10);
- console.error(earned);
- if(tdf){ df = tdf.value; earned = earned - parseInt(df,10); }
- if(tdc){ dc = tdc.value; earned = earned - parseInt(dc,10);}
- if(td1){ d1 = td1.value; earned = earned - parseInt(d1,10);}
- if(td2){ d2 = td2.value; earned = earned - parseInt(d2,10);}
- if(td3){ d3 = td3.value; earned = earned - parseInt(d3,10);}
- if(td4){ d4 = td4.value; earned = earned - parseInt(d4,10);}
- if(td5){ d5 = td5.value; earned = earned - parseInt(d5,10);}
- if(td6){ d6 = td6.value; earned = earned - parseInt(d6,10);}
- //Added
- if(tdcol){ dcol = tdcol.value; earned = earned - parseInt(dcol,10);}
- var teacherFB = document.getElementById(fName+"teacherFB").value;
- query += '&q'+loopcount+'='+(encodeURIComponent(qName).replace('+', '%2B')).replace('\'', '\'\'');
- query += '&e'+loopcount+'='+earned;
- query += '&t'+loopcount+'='+teacherFB;
- query += '&df'+loopcount+'='+df;
- query += '&dc'+loopcount+'='+dc;
- query += '&d1'+loopcount+'='+d1;
- query += '&d2'+loopcount+'='+d2;
- query += '&d3'+loopcount+'='+d3;
- query += '&d4'+loopcount+'='+d4;
- query += '&d5'+loopcount+'='+d5;
- query += '&d6'+loopcount+'='+d6;
- //Added
- query += '&dcol'+loopcount+'='+dcol;
- loopcount++;
- }
- modTest(test, 3, name); //Need another way to mod the test! release for all students!
- //send data
- var xhttp = new XMLHttpRequest();
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){
- console.log("%c"+JsonStr.debugmessage,"color:orange");
- }
- console.log(JsonStr);
- if(JsonStr.teacherFB=="1"){
- location.href = 'https://web.njit.edu/~jrp68/CS490/teacherHomepage.html';
- }
- else{
- document.getElementById("Alert").innerHTML = "Error Submiting Feedback"
- }
- }
- catch(err){
- console.warn("Curl Returned a Message: \n"+this.responseText);
- }
- //location.href = 'https://web.njit.edu/~jrp68/CS490/teacherHomepage.html';
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- //StudentViewGrade.js
- //Setting up Page Title
- var test = getCookie("testName");
- var name = getCookie("studentName");
- var questionstable = [];
- document.getElementById('testTitle').innerHTML = test;
- loadTestQuestions(test);
- function loadTestQuestions(test){
- //gettests
- //parse data and only use the data for user/test
- //create tables for each questions
- var xhttp = new XMLHttpRequest();
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- //Build Query
- var query = 'sessionID=' + sessionID + '&curlid=' + "gettest";
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{ var JsonStr = JSON.parse(this.responseText); }
- catch(err){ }
- //Reset Current Test Search
- //document.getElementById("questionDisplay").innerHTML = "";
- console.log(JsonStr);
- var currentHTML = document.getElementById("questionDisplay");
- //TESTS
- for( var key in JsonStr.dbTests){
- if(key != test) { continue; } //If not this test dont include it
- //USERS
- for(var key2 in JsonStr.dbTests[key]){
- if(key2 != name) { continue; } //If not this user dont include it
- //QUESTIONS
- for( var key3 in JsonStr.dbTests[key][key2]['questions']){
- //Setup values
- var qName = key3;
- var fName = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['fname'];
- var studentAnswer = JsonStr.dbTests[key][key2]['questions'][key3]['studentanswer'];
- var autoFeedBack = JsonStr.dbTests[key][key2]['questions'][key3]['autofeedback'];
- var qWorth = JsonStr.dbTests[key][key2]['questions'][key3]['worth'];
- var qEarned = JsonStr.dbTests[key][key2]['questions'][key3]['earnedpoints'];
- var dfname = JsonStr.dbTests[key][key2]['questions'][key3]['dfname'];
- var dconstraint = JsonStr.dbTests[key][key2]['questions'][key3]['dconstraint'];
- var dcase1 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase1'];
- var dcase2 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase2'];
- var dcase3 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase3'];
- var dcase4 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase4'];
- var dcase5 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase5'];
- var dcase6 = JsonStr.dbTests[key][key2]['questions'][key3]['dcase6'];
- var dcolon = JsonStr.dbTests[key][key2]['questions'][key3]['dcolon'];
- var srcase1 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase1'];
- var srcase2 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase2'];
- var srcase3 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase3'];
- var srcase4 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase4'];
- var srcase5 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase5'];
- var srcase6 = JsonStr.dbTests[key][key2]['questions'][key3]['srcase6'];
- var deducted = qWorth - qEarned;
- var teacherFeedBack = JsonStr.dbTests[key][key2]['questions'][key3]['teacherfeedback'];
- //Add question for later reference
- questionstable.push(qName);
- //Null Checks
- if(teacherFeedBack==null) { teacherFeedBack=""; }
- if(studentAnswer==null) { studentAnswer=""; }
- //create table for question using data
- //FIRST - QUESTION, FUNCTION, STUDENT ANSWER, AND AUTO FEEDBACK
- var input = "<table>";
- input += "<tr width=100%> <td><label>Question: </label><br><textarea placeholder='No Answer' disabled rows='2' cols='100'>"+qName+"</textarea></td>";
- input += "<td><label>Function Name: </label><br><textarea placeholder='No Answer' disabled rows='2' cols='100'>"+fName+"</textarea></td> </tr>";
- input += "<tr width=100%> <td valign='top'><label>Student Answered: </label><br><textarea placeholder='No Answer' disabled rows='8' cols='50'>"+studentAnswer+"</textarea></td>";
- input += "<td valign='top'><label>Auto Grader Feedback: </label><br>"; //end td tag after loop
- // AUTOGRADER FEEDBACK WORKAROUND!!!
- // -check if testcase is null
- // -if it is dont include it
- // -check deduct that autograder set
- // -if 0 then Passed!
- // -if more then 0 Fail!
- // -----------------------------------------------
- //get values for all testcases
- var case1 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case1'];
- var case2 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case2'];
- var case3 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case3'];
- var case4 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case4'];
- var case5 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case5'];
- var case6 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['case6'];
- var rcase1 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase1'];
- var rcase2 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase2'];
- var rcase3 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase3'];
- var rcase4 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase4'];
- var rcase5 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase5'];
- var rcase6 = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['rcase6'];
- var constraint = JsonStr.dbTests[key][key2]['questions'][key3]['qdata']['constraint'];
- //Start Checking if testcase exsist and display it with correct data
- input += "<table class='clean'>";
- if(dfname>0){
- input += "<tr><td width=70%>";
- input += "<label class='redGrade'>";
- input += "Function Name Does Not Match: Expecting " + fName + " </label></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"df"+"\" value='"+dfname+"' min='0' disabled><br></td></tr>";
- }
- else{
- input += "<tr><td width=70%><label class='greenGrade'>";
- input += "Function Name Matches </label><br></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"df"+"\" value='0' min='0' disabled><br></td></tr>";
- }
- if(constraint!=''){
- if(dconstraint>0){
- input += "<tr><td><label class='redGrade'>";
- input += constraint + " Constraint was not used.</label></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"dc"+"\" value='"+dconstraint+"' min='0' disabled><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += constraint + " Contraint was used. </label><br></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"dc"+"\" value='0' min='0' disabled><br></td></tr>";
- }
- }
- //Added colon
- //-----------------------------------------------------------------
- if(typeof dcolon !== 'undefined'){
- if(dcolon>0){
- input += "<tr><td><label class='redGrade'>";
- input += "Colon was not used.</label></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"dcol"+"\" value='"+dcolon+"' min='0'><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += "Colon was used. </label><br></td>";
- input += "<td>Deducted Points:<input type='number' id=\""+fName+"dcol"+"\" value='0' min='0'><br></td></tr>";
- }
- }
- //end
- //-------------------------------------------------------------------
- if(case1!=''){
- if(dcase1>0){
- input += "<tr><td><label class='redGrade'>";
- input += case1 + " Failed: Expecting " + rcase1 + " Got " + srcase1 + "</label></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d1"+"\" value='"+dcase1+"' min='0' disabled><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case1 + " Passed: Expecting " + rcase1 + " Got " + srcase1 + "</label><br></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d1"+"\" value='0' min='0' disabled><br></td></tr>";
- }
- }
- if(case2!=''){
- if(dcase2>0){
- input += "<tr><td><label class='redGrade'>";
- input += case2 + " Failed: Expecting " + rcase2 + " Got " + srcase2 + "</label></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d2"+"\" value='"+dcase2+"' min='0' disabled><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case2 + " Passed: Expecting " + rcase2 + " Got " + srcase2 + "</label><br></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d2"+"\" value='0' min='0' disabled><br></td></tr>";
- }
- }
- if(case3!=''){
- if(dcase3>0){
- input += "<tr><td><label class='redGrade'>";
- input += case3 + " Failed: Expecting " + rcase3 + " Got " + srcase3 + "</label></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d3"+"\" value='"+dcase3+"' min='0' disabled><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case3 + " Passed: Expecting " + rcase3 + " Got " + srcase3 + "</label><br></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d3"+"\" value='0' min='0' disabled><br></td></tr>";
- }
- }
- if(case4!=''){
- if(dcase4>0){
- input += "<tr><td><label class='redGrade'>";
- input += case4 + " Failed: Expecting " + rcase4 + " Got " + srcase4 + "</label></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d4"+"\" value='"+dcase4+"' min='0' disabled><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case4 + " Passed: Expecting " + rcase4 + " Got " + srcase4 + "</label><br></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d4"+"\" value='0' min='0' disabled><br></td></tr>";
- }
- }
- if(case5!=''){
- if(dcase5>0){
- input += "<tr><td><label class='redGrade'>";
- input += case5 + " Failed: Expecting " + rcase5 + " Got " + srcase5 + "</label></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d5"+"\" value='"+dcase5+"' min='0' disabled><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case5 + " Passed: Expecting " + rcase5 + " Got " + srcase5 + "</label><br></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d5"+"\" value='0' min='0' disabled><br></td></tr>";
- }
- }
- if(case6!=''){
- if(dcase6>0){
- input += "<tr><td><label class='redGrade'>";
- input += case6 + " Failed: Expecting " + rcase6 + " Got " + srcase6 + "</label></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d6"+"\" value='"+dcase6+"' min='0' disabled><br></td></tr>";
- }
- else{
- input += "<tr><td><label class='greenGrade'>";
- input += case6 + " Passed: Expecting " + rcase6 + " Got " + srcase6 + "</label><br></td>";
- input += "<td>Deducted Points: <input type='number' id=\""+qName+"d6"+"\" value='0' min='0' disabled><br></td></tr>";
- }
- }
- input += "</table>";
- input += "</td> </tr> ";
- //SECOND - QUESTION WORTHS AND TEACHER FEEDBACK BOX
- input += "<tr width=100%> <td width=50%>";
- input += "<label>Worth: </label><input disabled type='number' id=\""+qName+"worth"+"\" value='"+qWorth+"'>";
- input += "<label> Earned Points: </label><input disabled type='number' value='"+qEarned+"'>";
- input += "</td><td width=50%>Teacher Feedback: <br><textarea placeholder='Teacher Feedback' id=\""+qName+"teacherFB"+"\" rows='2' cols='50' disabled>"+teacherFeedBack+"</textarea> </td></tr>";
- input += "</table>";
- //Add to Screen
- currentHTML.innerHTML = currentHTML.innerHTML + input;
- }
- }
- }
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function returnhome(){
- location.href = 'https://web.njit.edu/~jrp68/CS490/studentHomepage.html';
- }
- //takeTest.js
- //Setting up Page Title
- var test = getCookie("testName");
- var name = getCookie("userName");
- document.getElementById('testTitle').innerHTML = test;
- function loadTest(){
- var xhttp = new XMLHttpRequest();
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- //Build Query
- var query = 'sessionID=' + sessionID + '&curlid=' + "gettest";
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{ var JsonStr = JSON.parse(this.responseText); }
- catch(err){ console.log("Error"); }
- //Reset Current Test Search
- document.getElementById("questionTable").innerHTML = "<tr><th width=30%> Question </th><th width=70%> Answer</th><th width=70%>Question Value </th></tr>";
- console.log(JsonStr);
- //Loop Through Parse and show all tests returned
- var currentHTML = document.getElementById("questionTable");
- var loopcount = 1
- for( var key in JsonStr.dbTests[test][name]['questions']){
- var question = key;
- var answer = JsonStr.dbTests[test][name]['questions'][key]['studentanswer'];
- var worth = JsonStr.dbTests[test][name]['questions'][key]['worth'];
- var input = "<tr class='aligncenter'>";
- input += "<td>" + question + "</td>";
- if(answer==null){
- input += "<td> <textarea placeholder='Your Answer' id='answer"+loopcount+"' rows='8' cols='50'></textarea> </td>";
- }
- else{
- input += "<td> <textarea rows='8' cols='50' id='answer"+loopcount+"' spellcheck='false' >"+answer+"</textarea> </td>";
- }
- input += "<td>"+worth+" Points</td>";
- input += "</tr>";
- currentHTML.innerHTML = currentHTML.innerHTML + input;
- loopcount++;
- }
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function submitTest(){
- var numRows = document.getElementById("questionTable").rows.length - 1;
- var table = document.getElementById("questionTable");
- var rowStart = 1;
- var query = "";
- while( rowStart <= numRows ){
- if(rowStart == 1){
- query += "question" + rowStart + "=" + encodeURIComponent(table.rows[rowStart].cells[0].innerHTML).replace('+', '%2B');
- }
- else{
- query += "&question" + rowStart + "=" + encodeURIComponent(table.rows[rowStart].cells[0].innerHTML).replace('+', '%2B');
- }
- var Qid = encodeURIComponent(document.getElementById("answer"+rowStart).value).replace('+', '%2B');
- query += "&answer" + rowStart + "=" + Qid;
- rowStart += 1;
- }
- query += "&qCount=" + numRows;
- query += "&testname=" + test;
- query += "&username=" + name;
- query += "&curlid=" + "updatetest";
- var xhttp = new XMLHttpRequest();
- //Retrieve SessionID - function from Auth.js
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){
- console.log("%c"+JsonStr.debugmessage,"color:orange");
- }
- console.log(JsonStr);
- }
- catch(err){
- console.warn("Curl Returned a Message: \n"+this.responseText);
- }
- //document.getElementById("answer2").innerHTML = JsonStr.answers[0];
- location.href = 'https://web.njit.edu/~jrp68/CS490/studentHomepage.html';
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- //teacher.js
- checkAuth("2");
- function home(){
- document.getElementById("webcontainer-Home").style.display = "inline";
- document.getElementById("webcontainer-Assignments").style.display = "none";
- document.getElementById("webcontainer-Grades").style.display = "none";
- }
- function assignments(){
- document.getElementById("webcontainer-Home").style.display = "none";
- document.getElementById("webcontainer-Assignments").style.display = "inline";
- document.getElementById("webcontainer-Grades").style.display = "none";
- }
- function grades(){
- document.getElementById("webcontainer-Home").style.display = "none";
- document.getElementById("webcontainer-Assignments").style.display = "none";
- document.getElementById("webcontainer-Grades").style.display = "inline";
- }
- function questionScreen(){
- getQuestions();
- document.getElementById("questionCreation").style.display = "inline";
- document.getElementById("testCreation").style.display = "none";
- document.getElementById("directions").innerHTML = '<h1 style="text-align: center;"> Create Question Below or GoBack</h1><input type="button" onclick="testScreen()" value="Go Back">';
- }
- function testScreen(){
- getQuestions();
- document.getElementById("questionCreation").style.display = "none";
- document.getElementById("testCreation").style.display = "inline";
- document.getElementById("directions").innerHTML = '<h1 style="text-align: center;">Add Questions From Question Bank or Create a Question</h1><input type="button" onclick="questionScreen()" value="Create a Question">';
- }
- function gotoCreateTest(){
- location.href = 'https://web.njit.edu/~jrp68/CS490/testCreation.html';
- }
- function testg(){
- location.href = 'https://web.njit.edu/~jrp68/CS490/testg.html';
- }
- function resetQuestionFields(){
- setTimeout(addQResponseReset, 20000)
- document.getElementById("question").value = "";
- document.getElementById("functionName").value = "";
- document.getElementById("difficulty").value = "";
- document.getElementById("topic").value = "";
- document.getElementById("constraint").value = "";
- document.getElementById("case1").value = "";
- document.getElementById("rcase1").value = "";
- document.getElementById("case2").value = "";
- document.getElementById("rcase2").value = "";
- document.getElementById("case3").value = "";
- document.getElementById("rcase3").value = "";
- document.getElementById("case4").value = "";
- document.getElementById("rcase4").value = "";
- document.getElementById("case5").value = "";
- document.getElementById("rcase5").value = "";
- document.getElementById("case6").value = "";
- document.getElementById("rcase6").value = "";
- }
- function removeTestQuestions(){
- document.getElementById("testCreationTable").innerHTML = "";
- }
- function addQResponseReset(){
- document.getElementById("addAnswer").innerHTML = "";
- }
- function addQuestion(row){
- var tableRef = document.getElementById("questionTable");
- var questionToAdd = tableRef.rows[row].cells[0].innerHTML;
- var testQuestionTable = document.getElementById("testCreationTable");
- var row = testQuestionTable.insertRow();
- var cell1 = row.insertCell(0);
- var cell2 = row.insertCell(1);
- var cell3 = row.insertCell(2);
- cell3.style.textAlign = "right";
- cell1.innerHTML = questionToAdd;
- cell2.innerHTML = "<input type='button' value='X' onclick='removeQuestion(this)'>";
- cell3.innerHTML = "<input type='number' value='20' onchange='calcTotalPoints()'>";
- calcTotalPoints();
- }
- function calcTotalPoints(){
- var rowEnd = document.getElementById("testCreationTable").rows.length;
- var table = document.getElementById("testCreationTable");
- var totalpoints = document.getElementById("totalpoints");
- var currentpoints = 0;
- var rowStart = 0;
- while( rowStart < rowEnd ){
- var qWorth = table.rows[rowStart].cells[2].childNodes[0].value;
- currentpoints += parseInt(qWorth, 10);
- rowStart += 1;
- }
- totalpoints.value = parseInt(currentpoints, 10);
- }
- function removeQuestion(index){
- var row = index.parentNode.parentNode;
- document.getElementById("testCreationTable").deleteRow(row.rowIndex);
- calcTotalPoints();
- }
- //Send test data to db for save.
- function createTest(){
- var xhttp = new XMLHttpRequest();
- var rowEnd = document.getElementById("testCreationTable").rows.length;
- var table = document.getElementById("testCreationTable");
- var testName = document.getElementById("testName").value;
- if(testName=='' || testName==null){
- document.getElementById("addTest123").innerHTML = "ADD Failed Enter a Valid TestName";
- return;
- }
- var rowStart = 0;
- var query = "";
- while( rowStart < rowEnd ){
- if(rowStart == 0){
- query += "question" + rowStart + "=" + encodeURIComponent(table.rows[rowStart].cells[0].innerHTML);
- }
- else{
- query += "&question" + rowStart + "=" + encodeURIComponent(table.rows[rowStart].cells[0].innerHTML);
- }
- query += "&worth" + rowStart + "=" + table.rows[rowStart].cells[2].childNodes[0].value;
- rowStart += 1;
- }
- query += "&qCount=" + rowEnd;
- query += "&testname=" + testName;
- query += "&curlid=" + "createtest";
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- query += "&sessionID=" + sessionID;
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){
- console.log("%c"+JsonStr.debugmessage,"color:orange");
- }
- console.log(JsonStr);
- if( JsonStr.dbresponse == "0" ){
- //Invalid Login - redirect to login
- location.href = 'https://web.njit.edu/~jrp68/CS490/errorLogout.php';
- }
- if( JsonStr.dbresponse == "1" ){
- //Student Login - NO ACCESS ALLOWED - redirect to login
- location.href = 'https://web.njit.edu/~jrp68/CS490/errorLogout.php';
- }
- if( JsonStr.dbtestAdd == "1"){
- document.getElementById("addTest123").innerHTML = "Add Successful!";
- document.getElementById("testCreationTable").innerHTML = "";
- }
- else{ document.getElementById("addTest123").innerHTML = "Add Failed! : forgot name?"; }
- }
- catch(err){
- console.warn("Curl Returned a Message: \n"+this.responseText);
- }
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function createQuestion(){
- //Getting Values for Post
- var xhttp = new XMLHttpRequest();
- var temp = document.getElementById("question").value.replace('+', '%2B');
- var question = encodeURIComponent(temp.replace('\'', '\'\''));
- var func = encodeURIComponent(document.getElementById("functionName").value.replace('\'', '\'\''));
- var diff = encodeURIComponent(document.getElementById("difficulty").value.replace('\'', '\'\''));
- var topic = encodeURIComponent(document.getElementById("topic").value.replace('\'', '\'\''));
- var constraint = encodeURIComponent(document.getElementById("constraint").value.replace('\'', '\'\''));
- var case1 = encodeURIComponent(document.getElementById("case1").value.replace('\'', '\'\''));
- var rcase1 = encodeURIComponent(document.getElementById("rcase1").value.replace('\'', '\'\''));
- var case2 = encodeURIComponent(document.getElementById("case2").value.replace('\'', '\'\''));
- var rcase2 = encodeURIComponent(document.getElementById("rcase2").value.replace('\'', '\'\''));
- var case3 = encodeURIComponent(document.getElementById("case3").value.replace('\'', '\'\''));
- var rcase3 = encodeURIComponent(document.getElementById("rcase3").value.replace('\'', '\'\''));
- var case4 = encodeURIComponent(document.getElementById("case4").value.replace('\'', '\'\''));
- var rcase4 = encodeURIComponent(document.getElementById("rcase4").value.replace('\'', '\'\''));
- var case5 = encodeURIComponent(document.getElementById("case5").value.replace('\'', '\'\''));
- var rcase5 = encodeURIComponent(document.getElementById("rcase5").value.replace('\'', '\'\''));
- var case6 = encodeURIComponent(document.getElementById("case6").value.replace('\'', '\'\''));
- var rcase6 = encodeURIComponent(document.getElementById("rcase6").value.replace('\'', '\'\''));
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- var isQuestion = "1";
- //Broken in parts for readability
- var part1 = 'question=' + question + '&functionName=' + func + '&difficulty=' + diff + '&topic=' + topic;
- var part2 = 'constraint=' + constraint + '&case1=' + case1 + '&rcase1=' + rcase1 + '&case2=' + case2;
- var part3 = 'rcase2=' + rcase2 + '&case3=' + case3 + '&rcase3=' + rcase3 + '&sessionID=' + sessionID + '&isQuestion=' + isQuestion;
- var part4 = 'case4=' + case4 + '&rcase4=' + rcase4 + '&case5=' + case5 + '&rcase5=' + rcase5 + '&case6=' + case6 + '&rcase6=' + rcase6;
- var query = part1 + '&' + part2 + '&' + part3 + '&' + part4;
- query += '&curlid=' + "createquestion";
- console.log("Question query being sent: "+query);
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){
- console.log("%c"+JsonStr.debugmessage,"color:orange");
- }
- console.log(JsonStr);
- /*
- if( JsonStr.dbresponse != "2" ){
- //Invalid Login/Access - redirect to login
- location.href = 'https://web.njit.edu/~jrp68/CS490/errorLogout.php';
- }
- */
- if( JsonStr.dbquestionAdd == "1"){
- document.getElementById("addAnswer").innerHTML = "Add Successful!";
- resetQuestionFields();
- }
- else{ document.getElementById("addAnswer").innerHTML = "Add Failed!"; }
- }
- catch(err){
- console.warn("Curl Returned a Message: \n"+this.responseText);
- }
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function getQuestions(){
- //Getting Values for Post
- var xhttp = new XMLHttpRequest();
- var topic = document.getElementById("searchTopic").value;
- var difficulty = document.getElementById("searchDifficulty").value;
- var keyword = document.getElementById("searchKeyword").value;
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- //Build Query
- var query = 'topic=' + topic + '&difficulty=' + difficulty + '&keyword=' + keyword + '&sessionID=' + sessionID + '&curlid=' + "getquestion";
- console.log("Question query being sent: "+query);
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){
- console.log("%c"+JsonStr.debugmessage,"color:orange");
- }
- console.log(JsonStr);
- document.getElementById("questionTable").innerHTML = "";
- //Loop Through Parse and show all questions returned (10 max)
- if(document.getElementById("testCreation").style.display == "none"){
- for( var key in JsonStr.dbQuestions){
- var currentHTML = document.getElementById("questionTable");
- var input = "<tr><td style='padding: 25px;'>"+JsonStr.dbQuestions[key].qname;
- //var input = "<tr><td style='padding: 25px;'>"+JsonStr.dbQuestions[key].question; //TEST
- input += "</td><td style=\"text-align: right;\">";
- //input += "<input type=\"button\" onclick=\"addQuestion(" + key + ")\" value=\"Add\" >";
- input += "</td></tr>";
- currentHTML.innerHTML = currentHTML.innerHTML + input;
- }
- }
- else{
- for( var key in JsonStr.dbQuestions){
- var currentHTML = document.getElementById("questionTable");
- var input = "<tr><td style='padding: 25px;'>"+JsonStr.dbQuestions[key].qname;
- input += "</td><td style=\"text-align: right;\">";
- input += "<input type=\"button\" onclick=\"addQuestion(" + key + ")\" value=\"Add\" >";
- input += "</td></tr>";
- currentHTML.innerHTML = currentHTML.innerHTML + input;
- }
- }
- }
- catch(err){
- console.warn("Curl Returned a Message: \n"+this.responseText);
- document.getElementById("getQuestionAlert").innerHTML = "Error: Couldn't Load Questions";
- }
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function getTests(){
- var xhttp = new XMLHttpRequest();
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- //Build Query
- var query = 'sessionID=' + sessionID + '&curlid=' + "gettest";
- //NEED USER and PASS
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){ console.log("%c"+JsonStr.debugmessage,"color:orange"); }
- if(JsonStr.middebugmessage!=""){ console.log("%c"+JsonStr.middebugmessage,"color:orange"); }
- console.log(JsonStr);
- // SETTING UP TEST MENU
- //---------------------------------------------------------------
- //Reset Current Test Search
- document.getElementById("assignmentTable").innerHTML = "<tr><th> Assignment </th><th></th><th></th></tr>";
- //Loop Through Parse and show all tests returned
- var currentHTML = document.getElementById("assignmentTable");
- for( var key in JsonStr.dbTests){
- var status;
- //Only one loop need to get status
- for( var key2 in JsonStr.dbTests[key]){
- status = JsonStr.dbTests[key][key2]['status'];
- break;
- }
- var name = key;
- var input = "<tr><td style='width: 80%;'>" + name + "</td>";
- if(status=='none'){
- input += "<td class=\"enterInfo\"><input type='button' onclick='modTest(\""+name+"\", 0)' value='Delete Test' style='margin-right: 25px;'></td>";
- input += "<td class=\"enterInfo\"><input type='button' onclick='modTest(\""+name+"\", 1)' value='Post Test'></td>";
- }
- if(status=='posted'){
- input += "<td class=\"enterInfo\"><input type='button' onclick='modTest(\""+name+"\", 0)' value='Delete Test' style='margin-right: 25px;'></td>";
- input += "<td class=\"enterInfo\"><input type='button' onclick='modTest(\""+name+"\", 2)' value='End Test'></td>";
- }
- if(status=='pregrade' || status=='graded'){
- input += "<td class=\"enterInfo\"><input type='button' onclick='modTest(\""+name+"\", 0)' value='Delete Test' style='margin-right: 25px;'></td><td class=\"enterInfo\">Test is Closed & Graded</td>";
- }
- input += "</tr>";
- currentHTML.innerHTML = currentHTML.innerHTML + input;
- }
- // SETTING UP TEST PREVIEW MENU
- //------------------------------------------------------------------
- //Reset Current Test Search
- document.getElementById("gradeTable").innerHTML = "<tr><th> Assignment </th><th> Student </th><th> Grade </th><th> </th></tr>";
- //Loop Through Parse and show all tests returned
- var currentHTML = document.getElementById("gradeTable");
- //Loops through every TEST
- for( var key in JsonStr.dbTests){
- //Loops through every STUDENT
- for(var key2 in JsonStr.dbTests[key]){
- var name = key;
- var status = JsonStr.dbTests[key][key2]['status'];
- var grade = parseInt(JsonStr.dbTests[key][key2]['grade'], 10);
- var max = JsonStr.dbTests[key][key2]['maxscore'];
- var student = key2;
- var input = "<tr><td>" + name + "</td>";
- input += "<td>" + student + "</td>";
- input += "<td>" + grade + " / " + max + "</td>";
- if(status=='none' || status=='posted'){
- input += "<td class=\"enterInfo\"><input type='button' disabled value='Not Graded'></td>";
- }
- if(status=='pregrade'){
- input += "<td class=\"enterInfo\"><input type='button' onclick=\"gotoPreviewGrade(this)\" value='Preview/Release Grade'></td>";
- }
- if(status=='graded'){
- input += "<td class=\"enterInfo\"><input type='button' onclick=\"gotoPreviewGrade(this)\" value='Modify Grade'><input style=\"margin-left: 25px; background-color: green;\" type='button' value='Graded'></td>";
- }
- input += "</tr>";
- currentHTML.innerHTML = currentHTML.innerHTML + input;
- }
- }
- }
- catch(err){
- console.warn("Curl Returned a Message: \n"+this.responseText);
- //console.log(this.responseText);
- }
- }
- };
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function modTest(name, modNum, user="none"){
- //Mod# 0-Delete, 1-Post, 2-AutoGrade/Close Test;
- var xhttp = new XMLHttpRequest();
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- //Build Query
- var query = 'sessionID=' + sessionID + '&testname=' + name + '&modnum=' + modNum + '&username=' + user;
- query += '&curlid=' + "modtest";
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){
- console.log("%c"+JsonStr.debugmessage,"color:orange");
- }
- console.log(JsonStr);
- if(modNum==2){
- //also make request to autograde
- gradetest(name);
- }
- if(modNum==3){
- //do nothing
- }
- else{
- getTests();
- }
- }
- catch(err){
- console.warn("Curl Returned a Message: \n"+this.responseText);
- }
- }
- };
- //Send post
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function gradetest(name){
- var xhttp = new XMLHttpRequest();
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- //Build Query
- var query = 'sessionID=' + sessionID + '&testname=' + name + '&curlid=' + "gradetest";
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- //Catching Invalid Responses
- try{
- var JsonStr = JSON.parse(this.responseText);
- if(JsonStr.debugmessage!=""){
- console.log("%c"+JsonStr.debugmessage,"color:orange");
- }
- console.log(JsonStr);
- getTests();
- }
- catch(err){
- console.warn("Curl Returned a Message: \n"+this.responseText);
- modTest(name, 1);
- }
- }
- };
- //Send post
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function gotoPreviewGrade(index){
- var row = index.parentNode.parentNode;
- var rowNum = row.rowIndex;
- var test = document.getElementById("gradeTable").rows[rowNum].cells[0].innerHTML;
- var student = document.getElementById("gradeTable").rows[rowNum].cells[1].innerHTML;
- createCookie("testName", test, 2);
- createCookie("studentName", student, 2);
- location.href = 'https://web.njit.edu/~jrp68/CS490/previewGrade.html';
- }
- function teacherInit(){
- getTests();
- }
- //student.js
- checkAuth("1");
- function home(){
- document.getElementById("webcontainer-Home").style.display = "inline";
- document.getElementById("webcontainer-Assignments").style.display = "none";
- document.getElementById("webcontainer-Grades").style.display = "none";
- }
- function assignments(){
- document.getElementById("webcontainer-Home").style.display = "none";
- document.getElementById("webcontainer-Assignments").style.display = "inline";
- document.getElementById("webcontainer-Grades").style.display = "none";
- }
- function grades(){
- document.getElementById("webcontainer-Home").style.display = "none";
- document.getElementById("webcontainer-Assignments").style.display = "none";
- document.getElementById("webcontainer-Grades").style.display = "inline";
- }
- function studentInit(){
- loadPage();
- }
- function loadPage(){
- var xhttp = new XMLHttpRequest();
- //Retrieve SessionID - function from Auth.js
- var sessionID = getCookie("session");
- //Build Query
- var query = 'sessionID=' + sessionID + '&curlid=' + "gettest";
- var studentname = getCookie("usernameTest");
- xhttp.onreadystatechange = function(){
- if(this.readyState == 4 && this.status == 200){
- try{
- var JsonStr = JSON.parse(this.responseText);
- console.log(JsonStr);
- // SETTING UP TEST MENU
- //--------------------------------------------------------------
- //Reset Current Test Search
- document.getElementById("assignmentTable").innerHTML = "";
- //Loop Through Parse and show all tests returned
- var currentHTML = document.getElementById("assignmentTable");
- //Loop through all the tests
- for( var key in JsonStr.dbTests){
- //User level
- for( var key2 in JsonStr.dbTests[key]){
- if(key2!=studentname){ continue; }
- var status = JsonStr.dbTests[key][key2]['status'];
- var user = key2;
- var name = key;
- var input = "<tr>";
- if(status=='posted'){
- input += "<td style='width: 80%;'>" + name + "</td>";
- input += "<td class=\"enterInfo\"><input type='button' onclick='TakeTest(\""+name+"\",\""+user+"\")' value='Take Test'></td>";
- }
- if(status=='pregrade' || status=='graded'){
- input += "<td style='width: 80%;'>" + name + "</td>";
- input += "<td class=\"enterInfo\"><input type='button' disabled value='Test Closed'></td>";
- }
- input += "</tr>";
- currentHTML.innerHTML = currentHTML.innerHTML + input;
- break;
- }
- }
- // SETTING UP PREVIEW MENU
- //-------------------------------------------------------
- //Reset Current Test Search
- document.getElementById("gradeTable").innerHTML = "<tr><th> Assignment </th><th> Grade </th><th> </th></tr>";
- //Loop Through Parse and show all tests returned
- var currentHTML = document.getElementById("gradeTable");
- //Loops
- for( var key in JsonStr.dbTests){
- //User level
- for( var key2 in JsonStr.dbTests[key]){
- if(key2!=studentname){ continue; }
- var status = JsonStr.dbTests[key][key2]['status'];
- var user = key2;
- var name = key;
- var grade = parseInt(JsonStr.dbTests[key][key2]['grade'], 10);
- var max = JsonStr.dbTests[key][key2]['maxscore'];
- if(status=='none'){
- break;
- }
- var input = "<tr><td>" + name + "</td>";
- if(status=='posted'){
- input += "<td>" + " -- / " + max + "</td>";
- input += "<td class=\"enterInfo\"><input type='button' disabled value='Test Still in Progress'></td>";
- }
- if(status=='pregrade'){
- input += "<td>" + " -- / " + max + "</td>";
- input += "<td class=\"enterInfo\"><input type='button' disabled value='Grade Not Released'></td>";
- }
- if(status=='graded'){
- input += "<td>" + grade + " / " + max + "</td>";
- input += "<td class=\"enterInfo\"><input type='button' onclick=\"gotoPreviewGrade(\'"+user+"\', this)\" value='ViewGrade'></td>";
- }
- input += "</tr>";
- currentHTML.innerHTML = currentHTML.innerHTML + input;
- break;
- }
- }
- }
- catch(err){
- }
- }
- }
- xhttp.open("POST", "https://web.njit.edu/~jrp68/CS490/curlRegistrar.php", true);
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xhttp.send(query);
- }
- function TakeTest(name, user){
- createCookie("testName", name, 2);
- createCookie("userName", user, 2);
- location.href = 'https://web.njit.edu/~jrp68/CS490/takeTest.html';
- }
- function gotoPreviewGrade(user, index){
- var row = index.parentNode.parentNode;
- var rowNum = row.rowIndex;
- var test = document.getElementById("gradeTable").rows[rowNum].cells[0].innerHTML;
- var student = user;
- createCookie("testName", test, 2);
- createCookie("studentName", student, 2);
- location.href = 'https://web.njit.edu/~jrp68/CS490/studentviewGrade.html';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement