Widget:WikidocBoardReview: Difference between revisions
Jump to navigation
Jump to search
Matt Pijoan (talk | contribs) No edit summary |
Undo revision 1008080 by William J Gibson (talk) |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<includeonly> | <includeonly> | ||
<script src="http://www.wikidoc.org/includes/raty/jquery.timer.js"></script> | |||
<script type="text/javascript" src="http://www.wikidoc.org/includes/raty/jquery.raty.js"></script> | |||
<style type="text/css"> | <style type="text/css"> | ||
.boxed{ | .boxed{ | ||
border: | border:0px solid black !important; | ||
} | } | ||
.redBoxed{ | |||
border:0px solid #F00 !important; | |||
} | |||
.unboxed{ | .unboxed{ | ||
Line 33: | Line 38: | ||
} | } | ||
.WBRImgButton{ | |||
font-family:Arial; | |||
float:left; | |||
height:40px; | |||
font-weight:bold; | |||
width:100px; | |||
display: table-cell; | |||
cursor: pointer; | |||
color:#FFFFFF; | |||
text-align: center; | |||
vertical-align: middle; | |||
margin-right:10px; | |||
} | |||
.WBRImgButton img{ | |||
width:auto; | |||
height:35px; | |||
} | |||
#globalWrapper{ | |||
z-index:-1; | |||
} | |||
#navPane{ | #navPane{ | ||
position:relative; | position:relative; | ||
float:left; | float:left; | ||
width: | width:5%; | ||
} | } | ||
#examSpace{ | #examSpace{ | ||
position:relative; | position:relative; | ||
float:right; | float:right; | ||
width: | width:94%; | ||
} | |||
#navBar{ | |||
position:relative; | |||
float:right; | |||
width:95%; | |||
background-color:#3366CC; | |||
} | } | ||
.navPaneButton{ | .navPaneButton{ | ||
height: | height:20px; | ||
background-color:# | background-color:#D0D0D0; | ||
padding-top:5px; | padding-top:5px; | ||
color:#000000 ; | |||
color:# | |||
font-weight:bold; | font-weight:bold; | ||
text-align: center; | text-align: center; | ||
} | } | ||
div.answerNoBorder{ | div.answerNoBorder{ | ||
border: | border:0px solid #FFF; | ||
} | } | ||
div.answerBorder{ | div.answerBorder{ | ||
border: | border:0px solid #000; | ||
} | } | ||
div.explanationHide{ | div.explanationHide{ | ||
Line 68: | Line 100: | ||
</style> | </style> | ||
<script type="text/javascript"> | <script type="text/javascript"> | ||
function | function ensureLoggedIn() { | ||
mw.loader.load('mediaWiki.user'); | |||
if ($.isEmptyObject(wgUserName)) { | |||
alert("Please Log In To Continue."); | |||
window.location.replace("http://www.wikidoc.org/index.php?title=Special:UserLogin&returnto=Board_Review"); | |||
} else { | |||
curriculumType(); | |||
} | |||
} | |||
function curriculumType() { | |||
var options = { | var options = { | ||
examtype : null, | examtype : null, | ||
timer : null, | timer : null, | ||
qbank : null, | qbank : null, | ||
searchMethod : null, | |||
timer : null, | timer : null, | ||
timeAmt : | examType : '', | ||
timeAmt : 0, | |||
questionListAll : new Array(), | questionListAll : new Array(), | ||
numQuestion : null, | numQuestion : null, | ||
Line 97: | Line 140: | ||
AnswerEExp : null, | AnswerEExp : null, | ||
selectedAnswer : 'F', | selectedAnswer : 'F', | ||
lastParsed : 0 | lastParsed : 0, | ||
creditReceived : false | |||
} | } | ||
} | } | ||
var stuffs = "<a href='#' class=' | var stuffs = "<a href='#' class='Curric' id='USMLE Step 1'><img src='http://static.wikidoc.org/8/87/Step1.png' /></a>"; | ||
stuffs += "<a href='#' class=' | stuffs += "<a href='#' class='Curric' id='USMLE Step 2 CK'><img src='http://static.wikidoc.org/0/07/Step2CK.png' /></a>"; | ||
stuffs += "<a href='#' class=' | stuffs += "<a href='#' class='Curric' id='USMLE Step 3'><img src='http://static.wikidoc.org/0/08/Step3.png' /></a>"; | ||
stuffs += "<a href='#' class=' | stuffs += "<a href='#' class='Curric' id='Board Review'><img src='http://static.wikidoc.org/7/75/Boardcertification.png' /></a>"; | ||
stuffs += "<a href='#' class=' | stuffs += "<a href='#' class='Curric' id='MCAT'><img src='http://static.wikidoc.org/4/4b/MCAT.png' /></a><br />"; | ||
$("#exam").html(stuffs); | $("#exam").html(stuffs); | ||
$('. | $('.Curric').click(options, chooseQBank); | ||
} | } | ||
function | function chooseQBank(event) { | ||
event.data.examtype = $(this).attr('id'); | event.data.examtype = $(this).attr('id'); | ||
var divs = null; | var divs = null; | ||
divs = "<center><h1>Build your own exam!</h1></center><div id='Pat' class='noSelect WBRButton stepTwo'><br />USMLE Format</div><div id='Flash' class='noSelect WBRButton stepTwo'><br />Flash Cards</div><br /><br /><br />"; | divs = "<center><h1>Build your own exam!</h1></center><div id='Pat' class='noSelect WBRButton stepTwo'><br />USMLE Format</div><div id='Flash' class='noSelect WBRButton stepTwo'><br />Flash Cards</div><br /><br /><br />"; | ||
$("#exam").html(divs); | $("#exam").html(divs); | ||
$('.stepTwo').click(event.data, | $('.stepTwo').click(event.data, tutorOrExam); | ||
} | } | ||
function | function tutorOrExam(event) { | ||
event.data.qbank = $(this).attr('id'); | event.data.qbank = $(this).attr('id'); | ||
var buttons = ''; | |||
buttons = "<div id='Tutor' class='noSelect WBRButton ToE'><br />Tutor Mode</div><div id='Exam' class='noSelect WBRButton ToE'><br />Exam Mode</div><br /><br /><br />"; | |||
$("#exam").append(buttons); | |||
$('.ToE').click(event.data, categoryOrKeyword); | |||
} | |||
function categoryOrKeyword(event) { | |||
event.data.examType = $(this).attr('id'); | |||
var buttons = ''; | |||
buttons = "<div id='Category' class='noSelect WBRButton CoK'><br />Category</div><div id='Keyword' class='noSelect WBRButton CoK'><br />Keyword</div><br /><br /><br />"; | |||
$("#exam").append(buttons); | |||
$('.CoK').click(event.data, timerToggle); | |||
} | |||
function timerToggle(event) { | |||
event.data.searchMethod = $(this).attr('id'); | |||
var form = null; | var form = null; | ||
form = "<div id='yes' class='noSelect WBRButton stepThree'><br />Enable Timer</div><div id='nop' class='noSelect WBRButton stepThree'><br />Disable Timer</div><br /><br /><br />"; | form = "<div id='yes' class='noSelect WBRButton stepThree'><br />Enable Timer</div><div id='nop' class='noSelect WBRButton stepThree'><br />Disable Timer</div><br /><br /><br />"; | ||
Line 123: | Line 182: | ||
$("#exam").append(form); | $("#exam").append(form); | ||
} | } | ||
$('. | $('#yes').click(event.data, timerDuration); | ||
if (event.data.searchMethod === "Category") { | |||
$('#nop').click(event.data, countCats); | |||
} else { | |||
$('#nop').click(event.data, Keywords); | |||
} | |||
} | } | ||
function stepFour(event) { | function timerDuration(event) { | ||
event.data.timer = true; | |||
var form = null; | |||
form = "<div id='1' class='noSelect WBRButton stepFour'><br />1 Minute</div><div id='10' class='noSelect WBRButton stepFour'><br />10 Minute</div><div id='20' class='noSelect WBRButton stepFour'><br />20 Minutes</div><div id='40' class='noSelect WBRButton stepFour'><br />40 Minutes</div><br /><br /><br />" | |||
if ($("#exam").find('#1').length == 0) { | |||
$("#exam").append(form); | |||
} | |||
if (event.data.searchMethod === "Category") { | |||
$('.stepFour').click(event.data, countCats); | |||
} else { | |||
$('.stepFour').click(event.data, Keywords); | |||
} | |||
} | |||
function Keywords(event) { | |||
var stuffs = "<div id='formSpace'></div><div class='WBRButton' id='orOp'><br />OR</div><div class='WBRButton' id='andOp'><br />AND</div><div class='WBRButton' id='showQueries'><br />SHOW</div><br /><br /><br />"; | |||
$("#exam").append(stuffs); | |||
var orBox = "<div class='query'> <input type='text' class='queryString' /> </div><br />"; | |||
var andBox = " <input type='text' class='queryString' /> "; | |||
$("#formSpace").html(orBox); | |||
$(".queryString").focus(function () { | |||
$(".focused").removeClass("focused"); | |||
$(this).parent().addClass("focused"); | |||
$(".queryString").focusout(function () { | |||
if ($(this).val().length <= 1) { | |||
$(this).remove(); | |||
} | |||
}); | |||
}); | |||
$("#orOp").click(function () { | |||
$("#formSpace").append(orBox); | |||
$(".queryString").focus(function () { | |||
$(".focused").removeClass("focused"); | |||
$(this).parent().addClass("focused"); | |||
$(".queryString").focusout(function () { | |||
if ($(this).val().length <= 1) { | |||
$(this).remove(); | |||
} | |||
}); | |||
}); | |||
}); | |||
$("#andOp").click(function () { | |||
var andBox = "<input type='text' class='queryString' />"; | |||
$( | $(".focused").append(andBox); | ||
$(".queryString").focus(function () { | |||
event.data. | $(".focused").removeClass("focused"); | ||
$(this).parent().addClass("focused"); | |||
$(".queryString").focusout(function () { | |||
if ($(this).val().length <= 1) { | |||
$(this).remove(); | |||
} | |||
}); | |||
}); | |||
}); | |||
$("#showQueries").click(event.data, showQueries); | |||
function showQueries(event) { | |||
$("#removeNum").remove(); | |||
event.data.queries = []; | |||
event.data.questionListAll = []; | |||
event.data.keyword = {}; | |||
event.data.keyword.iterator = 0; | |||
$.each($(".query"), function (index, value) { | |||
event.data.queries[index] = "[[ExamType::" + event.data.examtype + "]]"; | |||
$.each($(this).children(), function (ind, val) { | |||
event.data.queries[index] += "[[WBRKeyword::" + $(this).val() + "]]"; | |||
}); | |||
}); | |||
runQueries(event.data); | |||
} | |||
function runQueries(obj) { | |||
var api = new mw.Api(); | |||
api.get({ | |||
action : 'ask', | |||
query : obj.queries[obj.keyword.iterator], | |||
format : 'json' | |||
}) | |||
.always(function (data) { | |||
$.each(data.query.results, function (index, value) { | |||
obj.questionListAll.push(value.fulltext); | |||
}); | |||
if ((obj.keyword.iterator + 1) < obj.queries.length) { | |||
obj.keyword.iterator++; | |||
runQueries(obj); | |||
} else { | |||
removeDuplicates(obj); | |||
} | } | ||
}); | |||
} | } | ||
function removeDuplicates(obj) { | |||
if(res.Count > 45){ | |||
obj.maxQ = 45; | |||
} else { | |||
obj.maxQ = res.Count; | |||
} | |||
var output = "<div id='removeNum'><b>Choose the number of questions you would like to answer. The maximum number of questions you can select is <span id='countShow'>" + obj.maxQ + "</span>.</b><br /><br /><br />Number of questions:<input type='text' id='numQues' /><br /><br /><div id='Go' class='noSelect WBRButton'>Click here to begin the exam</div></div>"; | |||
if ($("#exam").find('#numQues').length == 0) { | |||
$("#exam").append(output); | |||
} else { | |||
alert('Please ensure you have valid keywords entered'); | |||
} | |||
$("#Go").click(obj, TNG); | |||
} | |||
} | |||
function TNG(event) { | |||
event.data.numQuestion = $("#numQues").val(); | |||
if(event.data.numQuestion > 0 && event.data.numQuestion <= 45){ | |||
loadNextQuestion(event.data); | |||
} else { | |||
alert('Invalid number of questions entered.'); | |||
} | |||
} | } | ||
function | function selectCats(exam) { | ||
var categories = []; | var categories = []; | ||
var table = null; | var table = null; | ||
table = "<br /><b>Select All That Apply:</b><br /><br /><br />"; ; | table = "<br /><b>Select All That Apply:</b><br /><br /><br />"; ; | ||
if ( | if (exam.examtype === "MCAT") { | ||
categories['main'] = new Array("Biology", "Cell", "Enzymes", "Microbiology", "Cellular Metabolism", "Reproduction", "Embryology", "Musculoskeletal System", "Digestive System ", "Excretory System", "Respiratory System", "Skin", "Circulatory System", "Immune System", "Homeostasis", "Endocrine System", "Nervous System ", "Genetics", "Evolution", "Organic Chemistry", "Nomenclature", "Bonding/Structure", "Isomers", "Alkanes", "AlkenesAlkynes", "Haloalkanes", "Aromatic Compounds", "Alcohols", "Ethers", "Aldehydes ", "Ketones", "Carboxylic Acid", "Carboxylic Acid Derivatives", "Amines", "Nitrogen Containing Compounds", "Purification", "Spectroscopy", "Separations", "Carbohydrates", "Amino Acids", "Peptides", "Proteins", "Nucleic", "Acids", "Chemistry", "Atomic Structure", "Periodic Table", "Phases", "Gases", "Bonding", "Stoichiometry", "Kinetics", "Thermochemistry", "Phases", "Solutions", "Acids and Bases", "Redox Reactions", "Electrochemistry", "Physics", "Kinematics", "Fluids", "Solids", "Newtonian Mechanics", "Momentum", "Energy", "Thermodynamics", "Electrostatics", "Magnetism", "DC Circuits", "AC Circuits", "Periodic Motion", "Waves", "Sound", "Optics", "Light", "Atomic Phenomena", "Nuclear Phenomena"); | categories['main'] = new Array("Biology", "Cell", "Enzymes", "Microbiology", "Cellular Metabolism", "Reproduction", "Embryology", "Musculoskeletal System", "Digestive System ", "Excretory System", "Respiratory System", "Skin", "Circulatory System", "Immune System", "Homeostasis", "Endocrine System", "Nervous System ", "Genetics", "Evolution", "Organic Chemistry", "Nomenclature", "Bonding/Structure", "Isomers", "Alkanes", "AlkenesAlkynes", "Haloalkanes", "Aromatic Compounds", "Alcohols", "Ethers", "Aldehydes ", "Ketones", "Carboxylic Acid", "Carboxylic Acid Derivatives", "Amines", "Nitrogen Containing Compounds", "Purification", "Spectroscopy", "Separations", "Carbohydrates", "Amino Acids", "Peptides", "Proteins", "Nucleic", "Acids", "Chemistry", "Atomic Structure", "Periodic Table", "Phases", "Gases", "Bonding", "Stoichiometry", "Kinetics", "Thermochemistry", "Phases", "Solutions", "Acids and Bases", "Redox Reactions", "Electrochemistry", "Physics", "Kinematics", "Fluids", "Solids", "Newtonian Mechanics", "Momentum", "Energy", "Thermodynamics", "Electrostatics", "Magnetism", "DC Circuits", "AC Circuits", "Periodic Motion", "Waves", "Sound", "Optics", "Light", "Atomic Phenomena", "Nuclear Phenomena"); | ||
for (var i = 0; i < categories['main'].length; i++) { | for (var i = 0; i < categories['main'].length; i++) { | ||
Line 154: | Line 319: | ||
} else { | } else { | ||
if ( | if (exam.examtype === "USMLE Step 1") { | ||
categories['main'] = new Array("Anatomy", "Behavioral Science/Psychiatry", "Biochemistry", "Biostatistics/Epidemiology", "Embryology", "Ethics", "Genetics", "Histology", "Immunology", "Microbiology", "Pathology", "Pathophysiology", "Pharmacology", "Physiology"); | categories['main'] = new Array("Anatomy", "Behavioral Science/Psychiatry", "Biochemistry", "Biostatistics/Epidemiology", "Embryology", "Ethics", "Genetics", "Histology", "Immunology", "Microbiology", "Pathology", "Pathophysiology", "Pharmacology", "Physiology"); | ||
categories['sub'] = new Array("Cardiology", "Dermatology", "Endocrine", "Gastrointestinal", "Genitourinary", "Head and Neck", "Hematology", "Musculoskeletal/Rheumatology", "Neurology", "Oncology", "Pulmonology", "Reproductive", "Renal", "Vascular", "General Principles", "Infectious Disease"); | categories['sub'] = new Array("Cardiology", "Dermatology", "Endocrine", "Gastrointestinal", "Genitourinary", "Head and Neck", "Hematology", "Musculoskeletal/Rheumatology", "Neurology", "Oncology", "Pulmonology", "Reproductive", "Renal", "Vascular", "General Principles", "Infectious Disease"); | ||
} else if ( | } else if (exam.examtype === "USMLE Step 2 CK") { | ||
categories['main'] = new Array("Internal medicine", "Surgery", "OB/GYN", "Pediatrics", "Psychiatry"); | categories['main'] = new Array("Internal medicine", "Surgery", "OB/GYN", "Pediatrics", "Psychiatry"); | ||
categories['sub'] = new Array("Allergy/Immunology", "Cardiovascular", "Dermatology", "Endocrine", "Gastrointestinal", "Hepatology", "Genitourinary", "Head and Neck", "Hematology", "Infectious Disease", "Musculoskeletal/Rheumatology", "Neurology", "Obstetrics and Gynecology", "Oncology", "Ophthalmology", "Pediatrics", "Poisoning", "Preventive Medicine", "Psychiatry", "Respiratory", "Surgery", "Biostatistics/ Epidemiology", "Ethics", "Electrolytes", "Genetics", "Miscellaneous"); | categories['sub'] = new Array("Allergy/Immunology", "Cardiovascular", "Dermatology", "Endocrine", "Gastrointestinal", "Hepatology", "Genitourinary", "Head and Neck", "Hematology", "Infectious Disease", "Musculoskeletal/Rheumatology", "Neurology", "Obstetrics and Gynecology", "Oncology", "Ophthalmology", "Pediatrics", "Poisoning", "Preventive Medicine", "Psychiatry", "Respiratory", "Surgery", "Biostatistics/ Epidemiology", "Ethics", "Electrolytes", "Genetics", "Miscellaneous"); | ||
} else if ( | } else if (exam.examtype === "USMLE Step 3") { | ||
categories['main'] = new Array("Community Medical Health Center", "Primary Care Office", "Inpatient Facilities", "Emergency Room"); | categories['main'] = new Array("Community Medical Health Center", "Primary Care Office", "Inpatient Facilities", "Emergency Room"); | ||
categories['sub'] = new Array("Allergy/Immunology", "Cardiovascular", "Dermatology", "Endocrine", "Gastrointestinal", "Hepatology", "Genitourinary", "Head and Neck", "Hematology", "Infectious Disease", "Musculoskeletal/Rheumatology", "Neurology", "Obstetrics and Gynecology", "Oncology", "Ophthalmology", "Pediatrics", "Poisoning", "Preventive Medicine", "Psychiatry", "Respiratory", "Surgery", "Biostatistics/Epidemiology", "Ethics", "Electrolytes", "Genetics", "Miscellaneous"); | categories['sub'] = new Array("Allergy/Immunology", "Cardiovascular", "Dermatology", "Endocrine", "Gastrointestinal", "Hepatology", "Genitourinary", "Head and Neck", "Hematology", "Infectious Disease", "Musculoskeletal/Rheumatology", "Neurology", "Obstetrics and Gynecology", "Oncology", "Ophthalmology", "Pediatrics", "Poisoning", "Preventive Medicine", "Psychiatry", "Respiratory", "Surgery", "Biostatistics/Epidemiology", "Ethics", "Electrolytes", "Genetics", "Miscellaneous"); | ||
} else if ( | } else if (exam.examtype === "Board Review") { | ||
categories['main'] = new Array("Adolescent Medicine", "Advanced Heart Failure and Transplant Cardiology", "Allergy & Immunology", "Cardiovascular Disease", "Clinical Cardiac Electrophysiology", "Critical Care Medicine", "Endocrinology", "Diabetes and Metabolism", "Gastroenterology", "Geriatric Medicine", "Hematology", "Hospice & Palliative Medicine", "Hospital Medicine", "Focused Practice", "Infectious Disease", "Internal Medicine", "Interventional Cardiology", "Medical Oncology", "Nephrology", "Pulmonary Disease", "Rheumatology", "Sleep Medicine", "Sports Medicine", "Transplant Hepatology"); | categories['main'] = new Array("Adolescent Medicine", "Advanced Heart Failure and Transplant Cardiology", "Allergy & Immunology", "Cardiovascular Disease", "Clinical Cardiac Electrophysiology", "Critical Care Medicine", "Endocrinology", "Diabetes and Metabolism", "Gastroenterology", "Geriatric Medicine", "Hematology", "Hospice & Palliative Medicine", "Hospital Medicine", "Focused Practice", "Infectious Disease", "Internal Medicine", "Interventional Cardiology", "Medical Oncology", "Nephrology", "Pulmonary Disease", "Rheumatology", "Sleep Medicine", "Sports Medicine", "Transplant Hepatology"); | ||
categories['sub'] = new Array("Anesthesiology", "Dermatology", "Emergency Medicine", "Emergency Medicine/Critical Care Medicine", "Family Medicine", "Medical Genetics", "Neurology", "Nuclear Medicine", "Pediatrics", "Physical Medicine & Rehab", "Preventative Medicine", "Psychiatry"); | categories['sub'] = new Array("Anesthesiology", "Dermatology", "Emergency Medicine", "Emergency Medicine/Critical Care Medicine", "Family Medicine", "Medical Genetics", "Neurology", "Nuclear Medicine", "Pediatrics", "Physical Medicine & Rehab", "Preventative Medicine", "Psychiatry"); | ||
Line 172: | Line 337: | ||
table += "<table style='width:100%;'><tr><td style='width:49%;'><b>Main Category</b></td><td style='width:49%;'><b>Sub Category</b></td></tr>"; | table += "<table style='width:100%;'><tr><td style='width:49%;'><b>Main Category</b></td><td style='width:49%;'><b>Sub Category</b></td></tr>"; | ||
if (categories['sub'].length >= categories['main'].length) { | if (categories['sub'].length >= categories['main'].length) { | ||
for (var i = 0; i < categories['sub'].length; i++) { | for (var i = 0; i < categories['sub'].length; i++) { | ||
if (categories['main'][i]) { | if (categories['main'][i]) { | ||
table += "<tr><td><input type='checkbox' name='MainCat' value='" + categories['main'][i] + "' />" + categories['main'][i] + " ( " + exam.arrCounts['category']['main'][categories['main'][i]] + " ) </td><td><input type='checkbox' name='SubCat' value='" + categories['sub'][i] + "' />" + categories['sub'][i] + " ( " + exam.arrCounts['category']['sub'][categories['sub'][i]] + " )</td></tr>"; | |||
table += "<tr><td><input type='checkbox' name='MainCat' value='" + categories['main'][i] + "' />" + categories['main'][i] + " ( | |||
} else { | } else { | ||
table += "<tr><td></td><td><input type='checkbox' name='SubCat' value='" + categories['sub'][i] + "' />" + categories['sub'][i] + " ( | table += "<tr><td></td><td><input type='checkbox' name='SubCat' value='" + categories['sub'][i] + "' />" + categories['sub'][i] + " ( " + exam.arrCounts['category']['sub'][categories['sub'][i]] + " ) </td></tr>"; | ||
} | } | ||
} | } | ||
Line 223: | Line 387: | ||
}); | }); | ||
$("#CountQ").click( | $("#CountQ").click(exam, selectExamLength); | ||
} | } | ||
function selectExamLength(event) { | |||
function | |||
var Main = new Array(); | var Main = new Array(); | ||
var Sub = new Array(); | var Sub = new Array(); | ||
Line 238: | Line 401: | ||
Sub.push($(this).val()); | Sub.push($(this).val()); | ||
}); | }); | ||
event.data.mainCat = Main; | |||
event.data.subCat = Sub; | |||
var api = new mw.Api(event, Main, Sub); | |||
api.get({ | |||
action : 'catcount', | |||
main : JSON.stringify(Main), | |||
sub : JSON.stringify(Sub), | |||
exam : event.data.examtype, | |||
format : 'json' | |||
}, { | |||
ok : function (res) { | |||
if( res.Count > 45){ | |||
event.data.maxQ = 45; | |||
} else { | |||
event.data.maxQ = res.Count; | |||
} | |||
var output = "<b>Choose the number of questions you would like to answer. The maximum number of questions you can select is <span id='countShow'>" + event.data.maxQ + "</span>.</b><br /><br /><br />Number of questions:<input type='text' id='numQues' /><br /><br /><div id='Go' class='noSelect WBRButton'>Click here to begin the exam</div>"; | |||
if ($("#exam").find('#numQues').length == 0) { | |||
$("#exam").append(output); | |||
} | |||
$("#Go").click(event.data, inputValidation); | |||
} | |||
}); | }); | ||
} else { | } else { | ||
alert('Please ensure you have both a main and a sub category selected'); | alert('Please ensure you have both a main and a sub category selected'); | ||
} | } | ||
} | } | ||
function inputValidation(event) { | |||
function | |||
if ($("#numQues").val().length > 0 && parseInt($("#numQues").val(), 10) <= parseInt($("#countShow").html(), 10) && parseInt($("#numQues").val(), 10) > 0) { | if ($("#numQues").val().length > 0 && parseInt($("#numQues").val(), 10) <= parseInt($("#countShow").html(), 10) && parseInt($("#numQues").val(), 10) > 0) { | ||
event.data.numQuestion = $("#numQues").val(); | event.data.numQuestion = $("#numQues").val(); | ||
$("#exam").html("<img src='http://static.wikidoc.org/5/51/Index.gif' />"); | $("#exam").html("<img src='http://static.wikidoc.org/5/51/Index.gif' />"); | ||
if (event.data.timer) { | |||
event.data.examTimer = $.timer(function () { | |||
var rem = parseInt($("#timeRem").html()); | |||
$('#timerBox').css("visibility", "visible"); | |||
$('#timerBox').html(formatTime(rem)); | |||
if (rem == 0) { | |||
event.data.examTimer.stop(); | |||
$("#content").click(event.data, endExam); | |||
} else { | |||
var temp = rem - 7; | |||
$("#timeRem").html(temp.toString()); | |||
if (rem < 0) { | |||
$("#timeRem").html("0"); | |||
} | |||
} | |||
}, 70, false); | |||
event.data.examTimer.toggle(); | |||
} | |||
loadNextQuestion(event.data); | loadNextQuestion(event.data); | ||
} else { | } else { | ||
Line 269: | Line 457: | ||
} | } | ||
} | } | ||
// Common functions | |||
function pad(number, length) { | |||
var str = '' + number; | |||
while (str.length < length) { | |||
str = '0' + str; | |||
} | |||
return str; | |||
} | |||
function formatTime(time) { | |||
var min = parseInt(time / 6000), | |||
sec = parseInt(time / 100) - (min * 60), | |||
hundredths = pad(time - (sec * 100) - (min * 6000), 2); | |||
return (min > 0 ? pad(min, 2) : "00") + ":" + pad(sec, 2); | |||
} | |||
function loadNextQuestion(event) { | function loadNextQuestion(event) { | ||
if(event.searchMethod === "Category"){ | |||
var api = new mw.Api(event); | var api = new mw.Api(event); | ||
api.get({ | api.get({ | ||
action : ' | action : 'load', | ||
main : JSON.stringify(event.mainCat), | |||
sub : JSON.stringify(event.subCat), | |||
exam : event.examtype, | |||
num : event.numQuestion, | |||
format : 'json' | format : 'json' | ||
}, { | }, { | ||
ok : function (res) { | ok : function (res) { | ||
$.each(res. | var i = 0; | ||
event.currentQuestion = 0; | |||
$.each(res.questions.list, function (key, element) { | |||
element.PageName = key; | |||
event.examQuestions[i] = element; | |||
i++; | |||
event.examQuestions[ | |||
}); | }); | ||
addToNavBar(event); | |||
} | } | ||
}); | }); | ||
} else if(event.searchMethod === "Keyword"){ | |||
var api = new mw.Api(event); | |||
api.get({ | |||
action : 'load', | |||
keywords : JSON.stringify(event.questionListAll), | |||
num : event.numQuestion, | |||
format : 'json' | |||
}, { | |||
ok : function (res) { | |||
var i = 0; | |||
event.currentQuestion = 0; | |||
$.each(res.questions.list, function (key, element) { | |||
element.PageName = key; | |||
event.examQuestions[i] = element; | |||
i++; | |||
}); | |||
addToNavBar(event); | |||
} | |||
}); | |||
} | |||
} | } | ||
function addToNavBar(exam) { | function addToNavBar(exam) { | ||
$("#exam").html("<div id='navPane'></div><div id='examSpace'></div>"); | $("#exam").html("<div id='navBar'><div id='flag' class='noSelect WBRImgButton'><img src='http://static.wikidoc.org/8/89/Flag_3_16_14.png' /></div><div id='back' class='noSelect WBRImgButton'><img src='http://static.wikidoc.org/c/c1/WBRLeftArrowlightblue.png' /></div><div id='next' class='noSelect WBRImgButton'><img src='http://static.wikidoc.org/e/eb/WBRRightArrowlightblue.png' /></div><div id='finish' class='noSelect WBRButton'><br />Finish</div></div><div id='navPane'></div><div id='examSpace'></div><span id='timeRem' style='height: 0px; visibility: hidden'>" + exam.timeAmt.toString() + "</span>"); | ||
$("#flag").click(function(){alert("Coming Soon!")}); | |||
$("#back").click(exam, questionNavigation); | |||
$("#next").click(exam, questionNavigation); | |||
$("#finish").click(exam, endExam); | |||
if (exam.timer) { | |||
$("#bodyContent").append("<div style='position:absolute; z-index:1000; width:300px; height:50px; top:0px; right:0px; border: 1px solid #000; background-color:#EEE; float:right; visibility:hidden;' id='timerBox'>Testing.</div>"); | |||
$("#timerBox").click(function () { | |||
exam.examTimer.toggle(); | |||
}); | |||
} | |||
$.each(exam.examQuestions, function (index, value) { | $.each(exam.examQuestions, function (index, value) { | ||
$("#navPane").append("<div id='" + index + "' class='navPaneButton'> | $("#navPane").append("<div id='" + index + "' class='navPaneButton'> " + (index - -1) + "</div>"); | ||
}); | }); | ||
$(".navPaneButton").click(exam, questionNavigation); | |||
$("#" + exam.currentQuestion).addClass("boxed"); | |||
$(".navPaneButton:odd").css("background-color", "#3338CC"); | |||
$(".navPaneButton:odd").css("background-color", "#B0B0B0"); | |||
questionDisplay(exam); | questionDisplay(exam); | ||
} | } | ||
function questionDisplay(exam) { | function questionDisplay(exam) { | ||
var obj = new Object(); | var obj = new Object(); | ||
Line 332: | Line 543: | ||
parseQuestions(exam); | parseQuestions(exam); | ||
} else { | } else { | ||
var htmlStuff = " | var htmlStuff = "<b>Question " + (exam.currentQuestion - -1) + " / " + (exam.examQuestions.length) + "</b><br /><br />" + obj.Prompt + "<br />"; | ||
if (obj.AnswerA && obj.AnswerA.length > 0) { | if (obj.AnswerA && obj.AnswerA.length > 0) { | ||
htmlStuff += "<div class='answer answerNoBorder' id='A'> | htmlStuff += "<div class='answer answerNoBorder' id='A'><input type='radio' value='A' id='Ar'>" + trimP(obj.AnswerA) + "</div>"; | ||
} | } | ||
if (obj.AnswerAExp && obj.AnswerAExp.length > 0) { | if (obj.AnswerAExp && obj.AnswerAExp.length > 0 && exam.examType === "Tutor") { | ||
htmlStuff += "<div class='answerExp explanationHide' id='Ae'> | htmlStuff += "<div class='answerExp explanationHide' id='Ae'>" + trimP(obj.AnswerAExp) + "</div>"; | ||
} | } | ||
if (obj.AnswerB && obj.AnswerB.length > 0) { | if (obj.AnswerB && obj.AnswerB.length > 0) { | ||
htmlStuff += "<div class='answer answerNoBorder' id='B'> " + obj.AnswerB + "</div>"; | htmlStuff += "<div class='answer answerNoBorder' id='B'><input type='radio' value='B' id='Ar' />" + trimP(obj.AnswerB) + "</div>"; | ||
} | } | ||
if (obj.AnswerBExp && obj.AnswerBExp.length > 0) { | if (obj.AnswerBExp && obj.AnswerBExp.length > 0 && exam.examType === "Tutor") { | ||
htmlStuff += "<div class='answerExp explanationHide' id='Be'> | htmlStuff += "<div class='answerExp explanationHide' id='Be'>" + trimP(obj.AnswerBExp) + "</div>"; | ||
} | } | ||
if (obj.AnswerC && obj.AnswerC.length > 0) { | if (obj.AnswerC && obj.AnswerC.length > 0) { | ||
htmlStuff += "<div class='answer answerNoBorder' id='C'> " + obj.AnswerC + "</div>"; | htmlStuff += "<div class='answer answerNoBorder' id='C'><input type='radio' value='C' id='Ar' />" + trimP(obj.AnswerC) + "</div>"; | ||
} | } | ||
if (obj.AnswerCExp && obj.AnswerCExp.length > 0) { | if (obj.AnswerCExp && obj.AnswerCExp.length > 0 && exam.examType === "Tutor") { | ||
htmlStuff += "<div class='answerExp explanationHide' id='Ce'> | htmlStuff += "<div class='answerExp explanationHide' id='Ce'>" + trimP(obj.AnswerCExp) + "</div>"; | ||
} | } | ||
if (obj.AnswerD && obj.AnswerD.length > 0) { | if (obj.AnswerD && obj.AnswerD.length > 0) { | ||
htmlStuff += "<div class='answer answerNoBorder' id='D'> " + obj.AnswerD + "</div>"; | htmlStuff += "<div class='answer answerNoBorder' id='D'><input type='radio' value='D' id='Ar'>" + trimP(obj.AnswerD) + "</div>"; | ||
} | } | ||
if (obj.AnswerDExp && obj.AnswerDExp.length > 0) { | if (obj.AnswerDExp && obj.AnswerDExp.length > 0 && exam.examType === "Tutor") { | ||
htmlStuff += "<div class='answerExp explanationHide' id='De'> | htmlStuff += "<div class='answerExp explanationHide' id='De'>" + trimP(obj.AnswerDExp) + "</div>"; | ||
} | } | ||
if (obj.AnswerEExp && obj.AnswerE.length > 0) { | if (obj.AnswerEExp && obj.AnswerE.length > 0) { | ||
htmlStuff += "<div class='answer answerNoBorder' id='E'> " + obj.AnswerE + "</div>"; | htmlStuff += "<div class='answer answerNoBorder' id='E'><input type='radio' value='E' id='Ar'>" + trimP(obj.AnswerE) + "</div>"; | ||
} | } | ||
if (obj.AnswerEExp && obj.AnswerEExp.length > 0) { | if (obj.AnswerEExp && obj.AnswerEExp.length > 0 && exam.examType === "Tutor") { | ||
htmlStuff += "<div class='answerExp explanationHide' id='Ee'> | htmlStuff += "<div class='answerExp explanationHide' id='Ee'>" + trimP(obj.AnswerEExp) + "</div>"; | ||
} | } | ||
$("#examSpace").html(htmlStuff); | $("#examSpace").html(htmlStuff); | ||
if (exam.examQuestions[exam.currentQuestion].selectedAnswer !== 'F') { | |||
$("#" + exam.examQuestions[exam.currentQuestion].selectedAnswer).addClass("boxed"); | |||
} | |||
$("div.answer").mouseover(function () { | $("div.answer").mouseover(function () { | ||
$(this).css({ | $(this).css({ | ||
'border' : ' | 'border' : '0px solid #000' | ||
}) | }) | ||
}).mouseout(function () { | }).mouseout(function () { | ||
$(this).css({ | $(this).css({ | ||
'border' : ' | 'border' : '0px solid #FFF' | ||
}) | }) | ||
}); | }); | ||
Line 378: | Line 591: | ||
} | } | ||
function | function trimP(data) { | ||
return data.substring(3, data.length - 4).trim(); ; | |||
} | |||
function questionReview(exam) { | |||
var obj = new Object(); | |||
obj = exam.examQuestions[exam.currentQuestion]; | |||
if (obj.isParsed === 0) { | |||
$("#examSpace").html("<img src='http://static.wikidoc.org/5/51/Index.gif' />"); | |||
parseQuestions(exam); | |||
} else { | |||
$("#examSpace").append("<br /><a href='http://www.wikidoc.org/index.php/Talk:" + obj.PageName + "' target='_blank'>Click here to discuss this question!</a><br />"); | |||
var htmlStuff = "<b>Author:</b> " + obj.PageAuthor + "<br /><br /><b>Question " + (exam.currentQuestion - -1) + " / " + (exam.examQuestions.length) + "</b><br /><br />" + obj.Prompt + "<br />"; | |||
if (obj.AnswerA && obj.AnswerA.length > 0) { | |||
htmlStuff += "<div class='answer answerNoBorder' id='A'><input type='radio' id='Ar'> " + obj.AnswerA + "</div></input>"; | |||
} | |||
if (obj.AnswerAExp && obj.AnswerAExp.length > 0 && exam.examType === "Tutor") { | |||
htmlStuff += "<div class='answerExp explanationHide' id='Ae'><i> " + obj.AnswerAExp + "</i></div>"; | |||
} | |||
if (obj.AnswerB && obj.AnswerB.length > 0) { | |||
htmlStuff += "<div class='answer answerNoBorder' id='B'><input type='radio' id='Br'> " + obj.AnswerB + "</input></div>"; | |||
} | |||
if (obj.AnswerBExp && obj.AnswerBExp.length > 0 && exam.examType === "Tutor") { | |||
htmlStuff += "<div class='answerExp explanationHide' id='Be'><i> " + obj.AnswerBExp + "</div></i>"; | |||
} | |||
if (obj.AnswerC && obj.AnswerC.length > 0) { | |||
htmlStuff += "<div class='answer answerNoBorder' id='C'><input type='radio' id='Cr'> " + obj.AnswerC + "</input></div>"; | |||
} | |||
if (obj.AnswerCExp && obj.AnswerCExp.length > 0 && exam.examType === "Tutor") { | |||
htmlStuff += "<div class='answerExp explanationHide' id='Ce'><i> " + obj.AnswerCExp + "</i></div>"; | |||
} | |||
if (obj.AnswerD && obj.AnswerD.length > 0) { | |||
htmlStuff += "<div class='answer answerNoBorder' id='D'><input type='radio' id='Dr'> " + obj.AnswerD + "</input></div>"; | |||
} | |||
if (obj.AnswerDExp && obj.AnswerDExp.length > 0 && exam.examType === "Tutor") { | |||
htmlStuff += "<div class='answerExp explanationHide' id='De'><i> " + obj.AnswerDExp + "</i></div>"; | |||
} | |||
if (obj.AnswerEExp && obj.AnswerE.length > 0) { | |||
htmlStuff += "<div class='answer answerNoBorder' id='E'><input type='radio' id='Er'> " + obj.AnswerE + "</input></div>"; | |||
} | |||
if (obj.AnswerEExp && obj.AnswerEExp.length > 0 && exam.examType === "Tutor") { | |||
htmlStuff += "<div class='answerExp explanationHide' id='Ee'><i> " + obj.AnswerEExp + "</i></div>"; | |||
} | |||
$("#examSpace").html(htmlStuff); | |||
addRatyRating(exam); | |||
if (exam.examQuestions[exam.currentQuestion].selectedAnswer && exam.examQuestions[exam.currentQuestion].RightAnswer == exam.examQuestions[exam.currentQuestion].selectedAnswer) { | |||
$("#" + exam.examQuestions[exam.currentQuestion].RightAnswer).addClass("boxed"); | |||
} else { | |||
$("#" + exam.examQuestions[exam.currentQuestion].RightAnswer).addClass("redBoxed"); | |||
$("#" + exam.examQuestions[exam.currentQuestion].RightAnswer).removeClass("answerNoBorder"); | |||
$("#" + exam.examQuestions[exam.currentQuestion].selectedAnswer).addClass("boxed"); | |||
$("#" + exam.examQuestions[exam.currentQuestion].selectedAnswer).removeClass("answerNoBorder"); | |||
} | |||
$("#examSpace").append("<br /><br />The correct answer is: " + exam.examQuestions[exam.currentQuestion].RightAnswer + "<br /><br /><b>" + exam.examQuestions[exam.currentQuestion].Explanation + "</b><br /><br />"); | |||
} | } | ||
$(". | } | ||
function addRatyRating(exam) { | |||
var ratyLayers = "<center>Rate this question!</center><br /><span style='position:relative; float:left;'>Difficulty: <div id='star1'></div></span><span style='position:relative; float:left;left:33%;'>High Yield: <div id='star2'></div></span><span style='position:relative; float:left;left:66%'>Quality: <div id='star3'></div></span><br /><br /><br />" | |||
' | $("#examSpace").prepend(ratyLayers); | ||
getRating(exam.examQuestions[exam.currentQuestion].PageName, exam); | |||
} | |||
function answerClicked(event){ | |||
$(".answer").removeClass("boxed"); | |||
$('input[type=radio]').prop('checked', function () { | |||
return this.getAttribute('checked') == 'checked'; | |||
}); | |||
$(this).addClass("boxed"); | |||
$(this).find("#Ar").prop("checked",true); | |||
if($("#exam").find('#submit').length == 0){ | |||
$("#examSpace").append("<div class='noSelect WBRButton' id='submit'><br />Submit</div>"); | |||
$("#submit").click(event.data, answerSubmitted); | |||
} | |||
} | |||
function getRating(page, exam) { | |||
var api = new mw.Api(); | |||
api.get({ | |||
action : 'wbrgetrating', | |||
question : page, | |||
format : 'json' | |||
}, { | |||
ok : function (res) { | |||
$("#star1").raty({ | |||
path : 'http://www.wikidoc.org/includes/raty/img/', | |||
click : function (score, event) { | |||
submitRating("difficulty", score, exam.examQuestions[exam.currentQuestion].PageName) | |||
}, | |||
score: res.wbrgetrating.difficulty, | |||
hints : ['Very Poor', 'Poor', 'Average', 'Good', 'Very Good'] | |||
}); | }); | ||
$("#star1").append("(Avg: " + res.wbrgetrating.difficulty + ", n=" + res.wbrgetrating.diffCount + ")" ); | |||
$("#star2").raty({ | |||
path : 'http://www.wikidoc.org/includes/raty/img/', | |||
click : function (score, event) { | |||
submitRating("yield", score, exam.examQuestions[exam.currentQuestion].PageName) | |||
}, | |||
score: res.wbrgetrating.yield, | |||
hints : ['Very Poor', 'Poor', 'Average', 'Good', 'Very Good'] | |||
}); | |||
$("#star2").append("(Avg: " + res.wbrgetrating.yield + ", n=" + res.wbrgetrating.qualCount + ")" ); | |||
$("#star3").raty({ | |||
path : 'http://www.wikidoc.org/includes/raty/img/', | |||
click : function (score, event) { | |||
submitRating("quality", score, exam.examQuestions[exam.currentQuestion].PageName) | |||
}, | |||
score: res.wbrgetrating.quality, | |||
hints : ['Very Poor', 'Poor', 'Average', 'Good', 'Very Good'] | |||
}); | |||
$("#star3").append("(Avg: " + res.wbrgetrating.quality + ", n=" + res.wbrgetrating.yieldSum + ")" ); | |||
} | } | ||
});} | |||
function answerSubmitted(event) { | |||
$("#submit").remove(); | |||
event.data.examQuestions[event.data.currentQuestion].selectedAnswer = $("div .boxed").attr("id"); | |||
if (!event.data.examQuestions[event.data.currentQuestion].creditReceived && event.data.examQuestions[event.data.currentQuestion].selectedAnswer === event.data.examQuestions[event.data.currentQuestion].RightAnswer) { | |||
event.data.answeredRight += 1; | |||
event.data.examQuestions[event.data.currentQuestion].creditReceived = true; | |||
} | } | ||
if (event.data. | if (event.data.examType === "Tutor") { | ||
$(".answerExp").css("height", "auto"); | |||
$(".answerExp").css("visibility", "visible"); | |||
$(".answerExp").each(function(){ | |||
if($(this).attr('id') === event.data.examQuestions[event.data.currentQuestion].RightAnswer+"e"){ | |||
$(this).prepend(" <b>Correct:</b> "); | |||
} else { | |||
$(this).prepend(" <b>Incorrect:</b> "); | |||
} | |||
}); | |||
} | } | ||
$("div.answer").unbind('click'); | |||
var api = new mw.Api(); | |||
api.get({ | |||
action : 'wbrinsertmetric', | |||
username : mw.user.getName(), | |||
question : event.data.examQuestions[event.data.currentQuestion].PageName, | |||
selectedAnswer : event.data.examQuestions[event.data.currentQuestion].selectedAnswer, | |||
format : 'json' | |||
}) | |||
.done(function (data) { | |||
console.log('API result:', data); | |||
}); | |||
if (event.data.examType === "Exam") { | |||
$("#" + event.data.examQuestions[event.data.currentQuestion].selectedAnswer).addClass("boxed"); | |||
} else if (event.data.examType === "Tutor") { | |||
$("#examSpace").append("<br /><br />The correct answer is: " + event.data.examQuestions[event.data.currentQuestion].RightAnswer + "<br /><br />" + event.data.examQuestions[event.data.currentQuestion].Explanation + "<br />"); | |||
$("#examSpace").append("<b>Author:</b> " + event.data.examQuestions[event.data.currentQuestion].PageAuthor + "<br /><br /><b>Wiki Page:</b>" + event.data.examQuestions[event.data.currentQuestion].PageName + "<br /><br />Discuss this question <a href='http://www.wikidoc.org/index.php/Talk:" + event.data.examQuestions[event.data.currentQuestion].PageName + "'>Here</a>"); | |||
$("#" + event.data.examQuestions[event.data.currentQuestion].selectedAnswer).addClass("boxed"); | |||
$("#" + event.data.examQuestions[event.data.currentQuestion].RightAnswer).addClass("redBoxed"); | |||
addRatyRating(event.data); | |||
} | |||
} | } | ||
function questionNavigation(event) { | function questionNavigation(event) { | ||
$("#" + event.data.currentQuestion).removeClass("boxed"); | $("#" + event.data.currentQuestion).removeClass("boxed"); | ||
Line 415: | Line 758: | ||
$("#" + event.data.currentQuestion).addClass("boxed"); | $("#" + event.data.currentQuestion).addClass("boxed"); | ||
questionDisplay(event.data); | questionDisplay(event.data); | ||
} | |||
function questionReviewNavigation(event) { | |||
$("#" + event.data.currentQuestion).removeClass("boxed"); | |||
if ($(this).attr("id") === "back") { | |||
event.data.currentQuestion--; | |||
} else if ($(this).attr("id") === "next") { | |||
event.data.currentQuestion++; | |||
} else if ($(this).attr("class") === "navPaneButton") { | |||
event.data.currentQuestion = $(this).attr("id"); | |||
} | |||
$("#" + event.data.currentQuestion).addClass("boxed"); | |||
questionReview(event.data); | |||
} | } | ||
function endExam(event) { | function endExam(event) { | ||
if (event.data.timer) { | |||
$('#timerBox').html(""); | |||
$('#timerBox').css("visibility", "hidden"); | |||
event.data.examTimer.stop(); | |||
} | |||
$("#examSpace").html(""); | $("#examSpace").html(""); | ||
var datas; | var datas; | ||
datas = "You answered " + event.data.answeredRight + " out of " + event.data.examQuestions.length + " correctly.<br /> Your percentage score is: "; | datas = ""; | ||
var percent = (event.data.answeredRight / event.data. | datas += "<br />You answered " + event.data.answeredRight + " out of " + event.data.examQuestions.length + " correctly.<br /> Your percentage score is: "; | ||
datas += percent + "%"; | var percent = (event.data.answeredRight / event.data.examQuestions.length) * 100; | ||
datas += percent + "%<br /><br />Click the Navigation Buttons on the left to review the questions you answered."; | |||
var api = new mw.Api(); | |||
api.get({ | |||
action : 'wbrinsertexam', | |||
username : mw.user.getName(), | |||
size : event.data.examQuestions.length, | |||
score : percent, | |||
format : 'json' | |||
}) | |||
.done(function (data) { | |||
console.log('API result:', data); | |||
}); | |||
$("#examSpace").append(datas); | $("#examSpace").append(datas); | ||
$(".navPaneButton").unbind('click'); | |||
$(".navPaneButton").click(event.data, questionReviewNavigation); | |||
} | |||
function submitRating(ratingType, score, page) { | |||
if(ratingType === "difficulty"){ | |||
var api = new mw.Api(); | |||
api.get({ | |||
action : 'wbrinsertrating', | |||
username : mw.user.getName(), | |||
question : page, | |||
difficulty : score, | |||
format : 'json' | |||
}, { | |||
ok : function (res) {} | |||
}); | |||
} else if (ratingType === "yield"){ | |||
var api = new mw.Api(); | |||
api.get({ | |||
action : 'wbrinsertrating', | |||
username : mw.user.getName(), | |||
question : page, | |||
yield : score, | |||
format : 'json' | |||
}, { | |||
ok : function (res) {} | |||
}); | |||
} | } | ||
else if (ratingType === "quality"){ | |||
var api = new mw.Api(); | |||
api.get({ | |||
action : 'wbrinsertrating', | |||
username : mw.user.getName(), | |||
question : page, | |||
quality : score, | |||
format : 'json' | |||
}, { | |||
ok : function (res) {} | |||
}); | |||
} | |||
} | |||
function parseQuestions(examObj) { | function parseQuestions(examObj) { | ||
var tobeParsed = null; | var tobeParsed = null; | ||
Line 465: | Line 879: | ||
tobeParsed = examObj.examQuestions[q].AnswerEExp; | tobeParsed = examObj.examQuestions[q].AnswerEExp; | ||
break; | break; | ||
case 12: | |||
tobeParsed = examObj.examQuestions[q].Author | |||
} | } | ||
if (tobeParsed && tobeParsed.length > 0) { | if (tobeParsed && tobeParsed.length > 0) { | ||
Line 515: | Line 931: | ||
examObj.examQuestions[q].AnswerEExp = parsed; | examObj.examQuestions[q].AnswerEExp = parsed; | ||
break; | break; | ||
case 12: | |||
examObj.examQuestions[q].Author = parsed; | |||
break | |||
} | } | ||
if (examObj.examQuestions[q].lastParsed < | if (examObj.examQuestions[q].lastParsed < 13) { | ||
examObj.examQuestions[q].lastParsed += 1; | examObj.examQuestions[q].lastParsed += 1; | ||
parseQuestions(examObj); | parseQuestions(examObj); | ||
Line 535: | Line 954: | ||
} | } | ||
} | } | ||
function countCats(event) { | |||
function | event.data.timeAmt = parseInt($(this).attr("id"), 10) * 6000; | ||
var temp = event.data.examtype.replace(/ /g, "_"); | |||
var api = new mw.Api(); | var api = new mw.Api(); | ||
api.get({ | api.get({ | ||
action : ' | action : 'singlecat', | ||
exam : temp, | |||
format : 'json' | format : 'json', | ||
async : false | |||
}, { | }, { | ||
ok : function (data) { | ok : function (data) { | ||
event.data.arrCounts = data; | |||
selectCats(event.data); | |||
} | } | ||
}); | }); | ||
} | } | ||
function urlSwapSpace(swap) { | function urlSwapSpace(swap) { | ||
return swap.split(' ').join('+'); | return swap.split(' ').join('+'); | ||
} | } | ||
$(document).ready(ensureLoggedIn); | |||
$(document).ready( | |||
</script> | </script> | ||
<div id="exam"></div> | <div id="exam"></div> | ||
</includeonly> | </includeonly> |