Widget:UserExamQuery: Difference between revisions
Jump to navigation
Jump to search
Matt Pijoan (talk | contribs) Created page with "<includeonly> </includeonly>" |
Matt Pijoan (talk | contribs) No edit summary |
||
(102 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<includeonly> | <includeonly> | ||
<style type="text/css"> | |||
#metrics{ | |||
width:100%; | |||
text-align: center; | |||
} | |||
.headerCell{ | |||
display: inline-block; | |||
width:20%; | |||
} | |||
.question{ | |||
background: #C7DDEE; | |||
color:#000; | |||
display: inline-block; | |||
width:20%; | |||
height:30px; | |||
} | |||
.cell | |||
{ background:#C7DDEE url('http://www.jankoatwarpspeed.com/wp-content/uploads/examples/expandable-rows/row_bkg.png') repeat-x scroll center left; color:#000; display: inline-block; width:20%; height:30px; } | |||
#header { background:#7CB8E2 url('http://www.jankoatwarpspeed.com/wp-content/uploads/examples/expandable-rows/header_bkg.png') repeat-x scroll center left; color:#fff; width:100%; height:30px; text-align:left; | |||
display: inline-block;} | |||
.mw-collapsible-toggle{ | |||
position:absolute; | |||
/* @noflip */ | |||
right: 20px; | |||
} | |||
</style> | |||
<script type="text/javascript"> | |||
function ensureLoggedIn() { | |||
mw.loader.using('mediawiki.user', function() { | |||
mw.loader.using('jquery.makeCollapsible', function() { | |||
if ($.isEmptyObject(wgUserName)) { | |||
alert("Please Log In To Continue."); | |||
window.location.replace("http://wikidoc.org/index.php?title=Special:UserLogin&returnto=UserExamQuery"); | |||
} else { | |||
runQuery(); | |||
} | |||
}); | |||
}); | |||
} | |||
function runQuery() { | |||
var api = new mw.Api(); | |||
api.get({ | |||
action : 'userExamQuery', | |||
username : wgUserName, | |||
format : 'json' | |||
}) | |||
.always(function (data) { | |||
$.each(data.userExamQuery[0], function(index, value){ | |||
var outstring = ""; | |||
var timeBegin = ""; | |||
var timeEnd = ""; | |||
var scoreString = ""; | |||
if(value.begin != null){ | |||
timeBegin = new Date(value.begin * 1000).toDateString(); | |||
} | |||
if(value.end != null){ | |||
timeEnd = new Date (value.end * 1000).toDateString(); | |||
scoreString = value.score + "%"; | |||
} else { | |||
timeEnd = "Unfinished"; | |||
scoreString = "N/A"; | |||
} | |||
if($(value.questions).length > 0){ | |||
outstring += "<div id='"+value.id+"'><span class='cell'>"+value.id+"</span><span class='cell'>"+timeBegin+"</span><span class='cell'>"+scoreString+"</span><span class='cell'>"+timeEnd+"</span><span class='cell'>"+value.type+"</span>"; | |||
outstring += "<div class='mw-collapsible-content'>"; | |||
$.each(value.questions, function(ind, val){ | |||
outstring += "<span class='question'>"+val.title+"</span>"; | |||
if(val.timestam != null){ | |||
var timestam = new Date (val.timestam * 1000).toDateString(); | |||
outstring += "<span class='question'>"+timestam+"</span>"; | |||
} | |||
outstring += "<span class='question'>"+val.submitted+"</span><br />"; | |||
}); | |||
outstring += "</div>" | |||
outstring += "</div>"; | |||
$("#metrics").append(outstring); | |||
$("#"+value.id).makeCollapsible(); | |||
} | |||
}); | |||
}); | |||
} | |||
$(document).ready(ensureLoggedIn); | |||
</script> | |||
<div id="metrics"> | |||
<div id="header"> | |||
<span class="headerCell">Exam ID</span><span class="headerCell">Date started</span><span class="headerCell">Performance</span><span class="headerCell">Date Finished</span><span class="headerCell">Exam Type</span> | |||
</div> | |||
</div> | |||
</includeonly> | </includeonly> |