Skip to content

Instantly share code, notes, and snippets.

Created December 4, 2013 21:49
Show Gist options
  • Save anonymous/7796219 to your computer and use it in GitHub Desktop.
Save anonymous/7796219 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name choose_quiz_questions
// @namespace com.YOUR_NAMESPACE.quiz
// @include http://YOUR_MOODLE_SITE/mod/quiz/*
// @version 1
// @grant none
// ==/UserScript==
var numberOfQuizQuestions = 25;
var numberOfBankQuestions = 200;
window.addButton = function () {
var newDiv = document.createElement('div');
newDiv.setAttribute('id','buttonDiv');
var inputButton = document.createElement('input');
inputButton.type = 'button';
inputButton.value = 'Choose 25 random questions';
inputButton.addEventListener('click', go_go_checkboxes, false);
document.getElementsByTagName("body")[0].appendChild(newDiv);
document.getElementById("buttonDiv").appendChild(inputButton);
}
addButton();
var myButtonDiv = document.getElementById("buttonDiv");
myButtonDiv.style.position = "fixed";
myButtonDiv.style.left = "0px";
myButtonDiv.style.bottom = "0px";
myButtonDiv.style.backgroundColor = "black";
var inputs=document.getElementsByTagName('input');
var checkboxes=[];
for (var i=0; i< inputs.length; i++){
if (inputs[i].type=="checkbox" && inputs[i].title=="Select"){
checkboxes.push(inputs[i]);
}
}
// console.log("checkboxes: "+checkboxes.length);
function go_go_checkboxes() {
randomArray =[];
while (randomArray.length < numberOfQuizQuestions) {
var randomNumber=RandomNumber(0 , numberOfBankQuestions - 1);
var found=false;
for (var i=0; i<randomArray.length; i++){
if(randomArray[i]==randomNumber){
found=true;
break;
}
}
if(!found){
randomArray.push(randomNumber);
}
}
for (var i=0; i<randomArray.length; i++){
console.log(i + ": " +randomArray[i]);
}
// console.log("checkboxes: "+inputs.length);
// console.log("checkboxes: "+checkboxes.length);
for (var i=0; i < checkboxes.length; i++){
checkboxes[i].checked=false;
}
for (var i=0; i< randomArray.length; i++) {
checkboxes[randomArray[i]].checked=true;
}
}
function RandomNumber(min,max) {
if(max<min) {
var i=max;
max=min;
min=i;
}
return Math.round(Math.random()*(max-min)+min);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment