diff options
author | hardythe1 | 2012-03-22 16:56:22 +0530 |
---|---|---|
committer | hardythe1 | 2012-03-22 16:56:22 +0530 |
commit | b1ba290f249d84989cb3cc38d018482794582a46 (patch) | |
tree | a0503ec456315e035c515b7dfb881e714a1d4599 /testapp/static/exam | |
parent | 4884af693bfb0b9bb70ed6b3d8489267a86d90f9 (diff) | |
download | online_test-b1ba290f249d84989cb3cc38d018482794582a46.tar.gz online_test-b1ba290f249d84989cb3cc38d018482794582a46.tar.bz2 online_test-b1ba290f249d84989cb3cc38d018482794582a46.zip |
Autocomplete tagging functionality
Diffstat (limited to 'testapp/static/exam')
-rw-r--r-- | testapp/static/exam/css/autotaggit.css | 48 | ||||
-rw-r--r-- | testapp/static/exam/js/add_question.js | 109 | ||||
-rw-r--r-- | testapp/static/exam/js/edit_question.js | 172 | ||||
-rw-r--r-- | testapp/static/exam/js/min.js (renamed from testapp/static/exam/css/min.js) | 0 | ||||
-rw-r--r-- | testapp/static/exam/js/question.js | 37 | ||||
-rw-r--r-- | testapp/static/exam/js/show_question.js | 23 | ||||
-rw-r--r-- | testapp/static/exam/js/show_quiz.js | 23 |
7 files changed, 412 insertions, 0 deletions
diff --git a/testapp/static/exam/css/autotaggit.css b/testapp/static/exam/css/autotaggit.css new file mode 100644 index 0000000..ed856ce --- /dev/null +++ b/testapp/static/exam/css/autotaggit.css @@ -0,0 +1,48 @@ +.ac_results { + padding: 0px; + border: 1px solid #efefef; + background-color: white; + overflow: hidden; + z-index: 99999; +} + +.ac_results ul { + width: 100%; + list-style-position: outside; + list-style: none; + padding: 0; + margin: 0; +} + +.ac_results li { + margin: 0px; + padding: 2px 5px; + cursor: default; + display: block; + /* + if width will be 100% horizontal scrollbar will apear + when scroll mode will be used + */ + /*width: 100%;*/ + font: menu; + font-size: 12px; + /* + it is very important, if line-height not setted or setted + in relative units scroll will be broken in firefox + */ + line-height: 16px; + overflow: hidden; +} + +.ac_loading { + background: white url('indicator.gif') right center no-repeat; +} + +.ac_odd { + background-color: #CACACA; +} + +.ac_over { + background-color: #f5f5f5; + color: black; +} diff --git a/testapp/static/exam/js/add_question.js b/testapp/static/exam/js/add_question.js new file mode 100644 index 0000000..1f08c79 --- /dev/null +++ b/testapp/static/exam/js/add_question.js @@ -0,0 +1,109 @@ +function increase(frm) +{ + if(frm.points.value == "") + { + frm.points.value = "0.5"; + return; + } + frm.points.value = parseFloat(frm.points.value) + 0.5; +} + +function decrease(frm) +{ + if(frm.points.value > 0) + { + frm.points.value = parseFloat(frm.points.value) - 0.5; + } + else + { + frm.points.value=0; + } + + +} + +function textareaformat() +{ + + document.getElementById('id_type').setAttribute('class','select-type'); + + document.getElementById('id_points').setAttribute('class','mini-text'); + document.getElementById('id_tags').setAttribute('class','tag-text'); + + $('#id_description').bind('focus', function( event ){ + document.getElementById("id_description").rows=5; + document.getElementById("id_description").cols=40; + }); + + $('#id_description').bind('blur', function( event ){ + document.getElementById("id_description").rows=1; + document.getElementById("id_description").cols=40; + }); + + $('#id_description').bind('keypress', function (event){ + document.getElementById('my').innerHTML = document.getElementById('id_description').value ; + }); + + $('#id_test').bind('focus', function( event ){ + document.getElementById("id_test").rows=5; + document.getElementById("id_test").cols=40; + }); + + $('#id_test').bind('blur', function( event ){ + document.getElementById("id_test").rows=1; + document.getElementById("id_test").cols=40; + }); + $('#id_options').bind('focus', function( event ){ + document.getElementById("id_options").rows=5; + document.getElementById("id_options").cols=40; + }); + + $('#id_options').bind('blur', function( event ){ + document.getElementById("id_options").rows=1; + document.getElementById("id_options").cols=40; + }); + + $('#id_type').bind('change',function(event){ + var value = document.getElementById('id_type').value; + if(value == 'mcq') + { + document.getElementById('id_options').style.visibility='visible'; + document.getElementById('label_option').innerHTML="Options :" + + } + else + { + document.getElementById('id_options').style.visibility='hidden'; + document.getElementById('label_option').innerHTML = ""; + } + }); + + document.getElementById('my').innerHTML = document.getElementById('id_description').value ; + var value = document.getElementById('id_type').value; + if(value == 'mcq') + { + document.getElementById('id_options').style.visibility='visible'; + document.getElementById('label_option').innerHTML="Options :" + + } + else + { + document.getElementById('id_options').style.visibility='hidden'; + document.getElementById('label_option').innerHTML = ""; + } +} + +function autosubmit() +{ + if (document.getElementById('id_type').value == 'mcq') + { + var value = document.getElementById('id_options').value; + if(value.split('\n').length != 4) + { + alert("Enter 4 options. One option per line."); + return false; + } + return true; + } + +} diff --git a/testapp/static/exam/js/edit_question.js b/testapp/static/exam/js/edit_question.js new file mode 100644 index 0000000..69e0d97 --- /dev/null +++ b/testapp/static/exam/js/edit_question.js @@ -0,0 +1,172 @@ +function render_question(frm) +{ + for(var i=1;i<=frm.description.length;i++) + { + document.getElementById('my'+i).innerHTML = frm.description[i-1].value; + } + +} + +function increase(frm,n) +{ + var newValue = document.getElementById('id_points'+ (n-1)).value ; + + if( newValue == "") + { + document.getElementById('id_points'+(n-1)).value = "0.5"; + return; + } + document.getElementById('id_points' + (n-1)).value = parseFloat(newValue) + 0.5; +} + +function decrease(frm,n) +{ + var newValue = document.getElementById('id_points'+ (n-1)).value ; + + if( newValue > 0) + { + document.getElementById('id_points' + (n-1)).value = parseFloat(newValue) - 0.5; + } + else + { + document.getElementById('id_points' + (n-1)).value = 0; + } +} + + +function data(showContent,showHideDiv,a,summary) +{ + var con = document.getElementById(showContent); + var ele=document.getElementById(showHideDiv); + var atag=document.getElementById(a); + if (ele.style.display=="block") + { + con.style.display = "none" + ele.style.display = "none"; + atag.text = summary; + } + else + { + con.style.display = "block"; + ele.style.display = "block"; + } +} + +function textareaformat() +{ + var point = document.getElementsByName('points'); + var test = document.getElementsByName('test'); + var option = document.getElementsByName('options'); + var descriptions = document.getElementsByName('description'); + var type = document.getElementsByName('type'); + var tags = document.getElementsByName('tags'); + + for (var i=0;i<point.length;i++) + { + point[i].id = point[i].id + i; + descriptions[i+1].id=descriptions[i+1].id + i; + test[i].id=test[i].id + i; + option[i].id=option[i].id + i; + type[i].id = type[i].id + i; + tags[i].id = tags[i].id + i; + } + + for(var i=0;i<point.length;i++) + { + var point_id = document.getElementById('id_points'+i); + point_id.setAttribute('class','mini-text'); + + var tags_id = document.getElementById('id_tags'+i); + tags_id.setAttribute('class','ac_input'); + tags_id.setAttribute('autocomplete','off'); + + jQuery().ready(function() + { + jQuery("#id_tags" + i).autocomplete("/taggit_autocomplete_modified/json", { multiple: true }); + }); + + var type_id = document.getElementById('id_type'+i); + type_id.setAttribute('class','select-type'); + type_id.onchange = showOptions; + var value = type_id.value; + + var desc_id = document.getElementById('id_description'+i); + desc_id.onfocus = gainfocus; + desc_id.onblur = lostfocus; + + var test_id = document.getElementById('id_test' + i); + test_id.onfocus = gainfocus; + test_id.onblur = lostfocus; + + var option_id = document.getElementById('id_options' + i); + option_id.onfocus = gainfocus; + option_id.onblur = lostfocus; + + if(value != 'mcq') + { + document.getElementById('id_options'+i).style.visibility='hidden'; + document.getElementById('label_option'+(i+1)).innerHTML = ""; + + } + + document.getElementById('my'+ (i+1)).innerHTML = desc_id.value; + } +} + +function showOptions(e) +{ + var value = this.value; + var no = parseInt(this.id.substring(this.id.length-1)); + if( value == 'mcq') + { + document.getElementById('id_options'+no).style.visibility = 'visible'; + document.getElementById('label_option'+ (no+1)).innerHTML = "Options : " + } + else + { + document.getElementById('id_options'+no).value = ""; + document.getElementById('id_options'+no).style.visibility = 'hidden'; + document.getElementById('label_option'+ (no+1)).innerHTML = ""; + } + + + +} + +function gainfocus(e) +{ + this.rows = 5; +} +function lostfocus(e) +{ + this.rows = 1; +} + +function autosubmit() +{ + var total_form = document.getElementsByName('summary').length; + var empty_options = 0 ; + var count_mcq = 0; + + for (var i=0;i<total_form;i++) + { + if (document.getElementById('id_type' + i).value != 'mcq') + { + continue; + } + else + { + count_mcq = count_mcq + 1; + var options = document.getElementById('id_options' + i).value; + var total_words = options.split("\n").length ; + if ( total_words < 4) + empty_options = empty_options + 1 ; + } + } + if (empty_options > 0) + { + alert('Enter 4 options. One option per line.'); + return false; + } + return true; +} diff --git a/testapp/static/exam/css/min.js b/testapp/static/exam/js/min.js index b1ae21d..b1ae21d 100644 --- a/testapp/static/exam/css/min.js +++ b/testapp/static/exam/js/min.js diff --git a/testapp/static/exam/js/question.js b/testapp/static/exam/js/question.js new file mode 100644 index 0000000..554a948 --- /dev/null +++ b/testapp/static/exam/js/question.js @@ -0,0 +1,37 @@ + var time_left = {{ time_left }}; + function submitCode() + { + document.forms["code"].submit(); + var x = document.getElementById("status"); + x.innerHTML = "<strong>Checking answer ...</strong>"; + x = document.getElementById("check"); + x.disabled = true; + x.value = "Checking Answer ..."; + document.getElementById("skip").disabled = true; + } + + function secs_to_time(secs) + { + var h = Math.floor(secs/3600); + var h_s = (h > 0) ? h+'h:' : ''; + var m = Math.floor((secs%3600)/60); + var m_s = (m > 0) ? m+'m:' : ''; + var s_s = Math.floor(secs%60) + 's'; + return h_s + m_s + s_s; + } + + function update_time() + { + time_left -= 1; + if (time_left) + { + var elem = document.getElementById("time_left"); + var t_str = secs_to_time(time_left); + elem.innerHTML = "<strong>" + t_str + "</strong>"; + setTimeout("update_time()", 1000); + } + else + { + document.forms["code"].submit(); + } + } diff --git a/testapp/static/exam/js/show_question.js b/testapp/static/exam/js/show_question.js new file mode 100644 index 0000000..ccacbdd --- /dev/null +++ b/testapp/static/exam/js/show_question.js @@ -0,0 +1,23 @@ +function confirm_delete(frm) + { + var r = confirm("Are you Sure ?"); + if(r==false) + { + for(i=0;i<frm.question.length;i++) + { + frm.question[i].checked=false; + } + location.replace("{{URL_ROOT}}/exam/manage/showquestion"); + } + } + function confirm_edit(frm) + { + var n = 0; + for(i=0;i<frm.question.length;i++) + { + if(frm.question[i].checked==true) + n = n+1; + } + if(n==0) + location.replace("{{URL_ROOT}}/exam/manage/showquestion"); + } diff --git a/testapp/static/exam/js/show_quiz.js b/testapp/static/exam/js/show_quiz.js new file mode 100644 index 0000000..db48a37 --- /dev/null +++ b/testapp/static/exam/js/show_quiz.js @@ -0,0 +1,23 @@ + function my_confirm(frm) + { + var r = confirm("Are you Sure ?"); + if(r==false) + { + for(i=0;i<frm.quiz.length;i++) + { + frm.quiz[i].checked=false; + } + location.replace("{{URL_ROOT}}/exam/manage/showquiz"); + } + } + function confirm_edit(frm) + { + var n = 0; + for (var i =0;i<frm.quiz.length;i++) + { + if (frm.quiz[i].checked == false) + n = n + 1 ; + } + if(n == frm.quiz.length) + location.replace("{{URL_ROOT}}/exam/manage/showquiz"); + } |