version 1.41, 2013/07/02 19:04:49
|
version 1.44, 2014/02/11 19:11:18
|
Line 89 function createWin() {
|
Line 89 function createWin() {
|
newWindow.document.write("<input type='hidden' name='callingmode' value='testbank' />") |
newWindow.document.write("<input type='hidden' name='callingmode' value='testbank' />") |
newWindow.document.write("<input type='hidden' name='inhibitmenu' value='yes' />") |
newWindow.document.write("<input type='hidden' name='inhibitmenu' value='yes' />") |
newWindow.document.write("$webpath<input type='text' name='newfilename' value='' />") |
newWindow.document.write("$webpath<input type='text' name='newfilename' value='' />") |
newWindow.document.write("<input type='button' value='$lt{'go'}' onClick='document.fileaction.submit();' /></form>") |
newWindow.document.write("<input type='button' value='$lt{'go'}' onclick='document.fileaction.submit();' /></form>") |
newWindow.document.write('$end_page') |
newWindow.document.write('$end_page') |
newWindow.document.close() |
newWindow.document.close() |
newWindow.focus() |
newWindow.focus() |
Line 289 function colSet(caller) {
|
Line 289 function colSet(caller) {
|
else { |
else { |
if ((poolForm.elements[caller*5+3].options[poolForm.elements[caller*5+3].selectedIndex].value == "MC") || (poolForm.elements[caller*5+3].options[poolForm.elements[caller*5+3].selectedIndex].value == "MA") || (poolForm.elements[caller*5+3].options[poolForm.elements[caller*5+3].selectedIndex].value == "Ord")) { |
if ((poolForm.elements[caller*5+3].options[poolForm.elements[caller*5+3].selectedIndex].value == "MC") || (poolForm.elements[caller*5+3].options[poolForm.elements[caller*5+3].selectedIndex].value == "MA") || (poolForm.elements[caller*5+3].options[poolForm.elements[caller*5+3].selectedIndex].value == "Ord")) { |
poolForm.elements[caller*5+4].options[0] = new Option("Select","-1",true,true) |
poolForm.elements[caller*5+4].options[0] = new Option("Select","-1",true,true) |
poolForm.elements[caller*5+4].options[1] = new Option("a.","lcperiod",false,false) |
poolForm.elements[caller*5+4].options[1] = new Option("a ","lcspace",false,false) |
poolForm.elements[caller*5+4].options[2] = new Option("A.","ucperiod",false,false) |
poolForm.elements[caller*5+4].options[2] = new Option("A ","ucspace",false,false) |
poolForm.elements[caller*5+4].options[3] = new Option("(a)","lcparen",false,false) |
poolForm.elements[caller*5+4].options[3] = new Option("a.","lcperiod",false,false) |
poolForm.elements[caller*5+4].options[4] = new Option("(A)","ucparen",false,false) |
poolForm.elements[caller*5+4].options[4] = new Option("A.","ucperiod",false,false) |
poolForm.elements[caller*5+4].options[5] = new Option("a)","lconeparen",false,false) |
poolForm.elements[caller*5+4].options[5] = new Option("(a)","lcparen",false,false) |
poolForm.elements[caller*5+4].options[6] = new Option("A)","uconeparen",false,false) |
poolForm.elements[caller*5+4].options[6] = new Option("(A)","ucparen",false,false) |
poolForm.elements[caller*5+4].options[7] = new Option("a.)","lcdotparen",false,false) |
poolForm.elements[caller*5+4].options[7] = new Option("a)","lconeparen",false,false) |
poolForm.elements[caller*5+4].options[8] = new Option("A.)","ucdotparen",false,false) |
poolForm.elements[caller*5+4].options[8] = new Option("A)","uconeparen",false,false) |
poolForm.elements[caller*5+4].options[9] = new Option("(i)","romparen",false,false) |
poolForm.elements[caller*5+4].options[9] = new Option("a.)","lcdotparen",false,false) |
poolForm.elements[caller*5+4].options[10] = new Option("i)","romoneparen",false,false) |
poolForm.elements[caller*5+4].options[10] = new Option("A.)","ucdotparen",false,false) |
poolForm.elements[caller*5+4].options[11] = new Option("i.)","romdotparen",false,false) |
poolForm.elements[caller*5+4].options[11] = new Option("(i)","romparen",false,false) |
poolForm.elements[caller*5+4].options[12] = new Option("i.","romperiod",false,false) |
poolForm.elements[caller*5+4].options[12] = new Option("i)","romoneparen",false,false) |
|
poolForm.elements[caller*5+4].options[13] = new Option("i.)","romdotparen",false,false) |
|
poolForm.elements[caller*5+4].options[14] = new Option("i.","romperiod",false,false) |
poolForm.elements[caller*5+4].selectedIndex = 0 |
poolForm.elements[caller*5+4].selectedIndex = 0 |
} |
} |
else { |
else { |
Line 510 sub display_zero {
|
Line 512 sub display_zero {
|
</ol><form name="info" method="post" action="/adm/testbank">'. |
</ol><form name="info" method="post" action="/adm/testbank">'. |
&Apache::lonhtmlcommon::topic_bar(1,&mt('Optional: create a sub-directory in which the testbank questions will be saved')). |
&Apache::lonhtmlcommon::topic_bar(1,&mt('Optional: create a sub-directory in which the testbank questions will be saved')). |
&mt('By default, LON-CAPA problems generated from the testbank file will be stored in the current directory.').' '.&mt('To store them in a new sub-directory:'). |
&mt('By default, LON-CAPA problems generated from the testbank file will be stored in the current directory.').' '.&mt('To store them in a new sub-directory:'). |
' <input type="button" name="createdir" value="'.&mt('Create sub-directory').'" onClick="javascript:createWin()" />'. |
' <input type="button" name="createdir" value="'.&mt('Create sub-directory').'" onclick="javascript:createWin()" />'. |
&page_footer($env{'form.newdir'},$fn,$page,$webpath).' |
&page_footer($env{'form.newdir'},$fn,$page,$webpath).' |
</form>'); |
</form>'); |
} |
} |
Line 577 sub display_two {
|
Line 579 sub display_two {
|
my $blocks = $env{'form.blocks'}; |
my $blocks = $env{'form.blocks'}; |
my $qnumformat = $env{'form.qnumformat'}; |
my $qnumformat = $env{'form.qnumformat'}; |
my @types = ("MC","MA","TF","Ess","FIB","Ord"); |
my @types = ("MC","MA","TF","Ess","FIB","Ord"); |
my %typenames = ( |
my %typenames = &Apache::lonlocal::texthash( |
MC => "Multiple Choice", |
MC => "Multiple Choice", |
TF => "True/False", |
TF => "True/False", |
MA => "Multiple Answer", |
MA => "Multiple Answer", |
Line 627 sub display_two {
|
Line 629 sub display_two {
|
'<td valign="top"> <input type="text" name="start_'.$i.'" value="'.$bl1st.'" size="5" /> </td>'."\n". |
'<td valign="top"> <input type="text" name="start_'.$i.'" value="'.$bl1st.'" size="5" /> </td>'."\n". |
'<td valign="top"> <input type="text" name="end_'.$i.'" value="'.$bl1end.'" size="5" /> </td>'."\n". |
'<td valign="top"> <input type="text" name="end_'.$i.'" value="'.$bl1end.'" size="5" /> </td>'."\n". |
'<td valign="top"> |
'<td valign="top"> |
<select name="qtype_'.$i.'" onChange="colSet('.$i.')"> |
<select name="qtype_'.$i.'" onchange="colSet('.$i.')"> |
<option value="-1" selected="selected">'.&mt('Select').'</option>'."\n"); |
<option value="-1" selected="selected">'.&mt('Select').'</option>'."\n"); |
foreach my $qtype (@types) { |
foreach my $qtype (@types) { |
$r->print('<option value="'.$qtype.'">'.$typenames{$qtype}.'</option>'."\n"); |
$r->print('<option value="'.$qtype.'">'.$typenames{$qtype}.'</option>'."\n"); |
Line 774 sub display_three {
|
Line 776 sub display_three {
|
'<td valign="top">'.$showqn.'<br /><br />'."\n"); |
'<td valign="top">'.$showqn.'<br /><br />'."\n"); |
} else { |
} else { |
my $foiltag = ''; |
my $foiltag = ''; |
if ($foilformats[$i] eq "lcperiod") { |
if ($foilformats[$i] eq "lcspace") { |
|
$foiltag = $alphabet->[$k-1].' '; |
|
} elsif ($foilformats[$i] eq "ucspace") { |
|
$foiltag = $alphabet->[$k-1].' '; |
|
$foiltag =~ tr/a-z/A-Z/; |
|
} elsif ($foilformats[$i] eq "lcperiod") { |
$foiltag = $alphabet->[$k-1].'.'; |
$foiltag = $alphabet->[$k-1].'.'; |
} elsif ($foilformats[$i] eq "lcparen") { |
} elsif ($foilformats[$i] eq "lcparen") { |
$foiltag = '('.$alphabet->[$k-1].')'; |
$foiltag = '('.$alphabet->[$k-1].')'; |
Line 924 sub final_display {
|
Line 931 sub final_display {
|
$items->[$k] =~ tr/A-Z/a-z/; |
$items->[$k] =~ tr/A-Z/a-z/; |
$items->[$k] =~ s/<\/?[^>]+>//g; |
$items->[$k] =~ s/<\/?[^>]+>//g; |
$items->[$k] =~ s/\W//g; |
$items->[$k] =~ s/\W//g; |
if ($foilformats[$i] eq "lcperiod" || $foilformats[$i] eq "lcparen" || $foilformats[$i] eq "lconeparen" || $foilformats[$i] eq "lcdotparen" || $foilformats[$i] eq "ucparen" || $foilformats[$i] eq "ucperiod" || $foilformats[$i] eq "uconeparen" || $foilformats[$i] eq "ucdotparen") { |
if ($foilformats[$i] eq "lcspace" || $foilformats[$i] eq "ucspace" || $foilformats[$i] eq "lcperiod" || $foilformats[$i] eq "lcparen" || $foilformats[$i] eq "lconeparen" || $foilformats[$i] eq "lcdotparen" || $foilformats[$i] eq "ucparen" || $foilformats[$i] eq "ucperiod" || $foilformats[$i] eq "uconeparen" || $foilformats[$i] eq "ucdotparen") { |
for (my $j=0; $j<@{$alphabet}; $j++) { |
for (my $j=0; $j<@{$alphabet}; $j++) { |
if ($alphabet->[$j] eq $items->[$k]) { |
if ($alphabet->[$j] eq $items->[$k]) { |
push @{$answers{$qnum}}, $j; |
push @{$answers{$qnum}}, $j; |
Line 957 sub final_display {
|
Line 964 sub final_display {
|
} else { |
} else { |
$correct =~s/\W//g; |
$correct =~s/\W//g; |
} |
} |
if ($foilformats[$i] eq "lcperiod" || $foilformats[$i] eq "lcparen" || $foilformats[$i] eq "ucparen" || $foilformats[$i] eq "ucperiod") { |
if ($foilformats[$i] eq "lcspace" || $foilformats[$i] eq "ucspace" || $foilformats[$i] eq "lcperiod" || $foilformats[$i] eq "lcparen" || $foilformats[$i] eq "ucparen" || $foilformats[$i] eq "ucperiod") { |
if (($qtype[$i] eq "Ord") && (@tied > 0)) { |
if (($qtype[$i] eq "Ord") && (@tied > 0)) { |
my @ties; |
my @ties; |
foreach my $tie (@tied) { |
foreach my $tie (@tied) { |
Line 1275 sub file_split {
|
Line 1282 sub file_split {
|
if (${$numsref}[$i] > 0) { |
if (${$numsref}[$i] > 0) { |
if ((${$qtyperef}[$i] eq "MC") || (${$qtyperef}[$i] eq "MA") || (${$qtyperef}[$i] eq "Ord")) { |
if ((${$qtyperef}[$i] eq "MC") || (${$qtyperef}[$i] eq "MA") || (${$qtyperef}[$i] eq "Ord")) { |
my $splitstr = ''; |
my $splitstr = ''; |
if (${$foilsref}[$i] eq "lcperiod") { |
if (${$foilsref}[$i] eq "lcspace") { |
|
$splitstr = '[a-z]\s'; |
|
} elsif (${$foilsref}[$i] eq "ucspace") { |
|
$splitstr = '[A-Z]\s'; |
|
} elsif (${$foilsref}[$i] eq "lcperiod") { |
$splitstr = '[a-z]\.'; |
$splitstr = '[a-z]\.'; |
} elsif (${$foilsref}[$i] eq "lcparen") { |
} elsif (${$foilsref}[$i] eq "lcparen") { |
$splitstr = '\([a-z]\)'; |
$splitstr = '\([a-z]\)'; |
Line 1606 sub file_error {
|
Line 1617 sub file_error {
|
my ($r,$fn,$current_page,$webpath,$res) = @_; |
my ($r,$fn,$current_page,$webpath,$res) = @_; |
$r->print('<p><form name="display" method="post" action="/adm/testbank">'.&mt('The file you uploaded does not appear to be in the correct format.'). |
$r->print('<p><form name="display" method="post" action="/adm/testbank">'.&mt('The file you uploaded does not appear to be in the correct format.'). |
'</p><p>'.&mt('Extraction of questions is only possible for the following file types:'). |
'</p><p>'.&mt('Extraction of questions is only possible for the following file types:'). |
'<ul><li>'.&mt('plain text').'</li><li>RTF</li><li>HTML</li></ul>'. |
'<ul>'. |
|
'<li>'.&mt('plain text').'</li>'. |
|
'<li>'.&mt('RTF').'</li>'. |
|
'<li>'.&mt('HTML').'</li></ul>'. |
&mt('The file type identified for the file you uploaded is [_1].','<b>'.$res.'</b>').'</p>'); |
&mt('The file type identified for the file you uploaded is [_1].','<b>'.$res.'</b>').'</p>'); |
$r->print(&page_footer($env{'form.newdir'},$fn,$current_page,$webpath,undef,'badfile'). |
$r->print(&page_footer($env{'form.newdir'},$fn,$current_page,$webpath,undef,'badfile'). |
'</form>'); |
'</form>'); |
Line 1851 sub handler {
|
Line 1865 sub handler {
|
if ($env{'form.phase'} eq 'three') { |
if ($env{'form.phase'} eq 'three') { |
$current_page = &display_control(); |
$current_page = &display_control(); |
@pages = ('Welcome','Blocks','Format','Target','Confirmation'); |
@pages = ('Welcome','Blocks','Format','Target','Confirmation'); |
%names = ( |
%names = &Apache::lonlocal::texthash( |
Welcome => 'Testbank Format', |
Welcome => 'Testbank Format', |
Blocks => 'Classification', |
Blocks => 'Classification', |
Format => 'Selection', |
Format => 'Selection', |