version 1.607, 2022/04/28 15:30:34
|
version 1.615, 2022/07/03 04:31:07
|
Line 1252 function validateParms() {
|
Line 1252 function validateParms() {
|
var dlKeyRegExp = /^deeplink_key_/; |
var dlKeyRegExp = /^deeplink_key_/; |
var dlMenusRegExp = /^deeplink_menus_/; |
var dlMenusRegExp = /^deeplink_menus_/; |
var dlCollsRegExp = /^deeplink_colls_/; |
var dlCollsRegExp = /^deeplink_colls_/; |
|
var dlTargetRegExp = /^deeplink_target_/; |
var patternIP = /[\[\]\*\.a-zA-Z\d\-]+/; |
var patternIP = /[\[\]\*\.a-zA-Z\d\-]+/; |
if ((document.parmform.elements.length != 'undefined') && (document.parmform.elements.length) != 'null') { |
if ((document.parmform.elements.length != 'undefined') && (document.parmform.elements.length) != 'null') { |
if (document.parmform.elements.length) { |
if (document.parmform.elements.length) { |
Line 1406 function validateParms() {
|
Line 1407 function validateParms() {
|
} |
} |
document.parmform.elements['set_'+identifier].value += posslinkmenu; |
document.parmform.elements['set_'+identifier].value += posslinkmenu; |
} |
} |
|
} else if (dlTargetRegExp.test(name)) { |
|
var identifier = name.replace(dlTargetRegExp,''); |
|
var idx = document.parmform.elements[i].selectedIndex; |
|
if (idx > 0) { |
|
var possdeeplink = document.parmform.elements[i].options[idx].value |
|
possdeeplink = possdeeplink.replace(/^\s+|\s+$/g,''); |
|
if (document.parmform.elements['set_'+identifier].value) { |
|
possdeeplink = ','+possdeeplink; |
|
} |
|
document.parmform.elements['set_'+identifier].value += possdeeplink; |
|
} |
} |
} |
} |
} |
} |
} |
Line 1461 END
|
Line 1473 END
|
|
|
# Javascript function toggleSecret, for overview mode. |
# Javascript function toggleSecret, for overview mode. |
sub done_proctor_js { |
sub done_proctor_js { |
|
my $defaultdone = &mt('Done'); |
|
&js_escape(\$defaultdone); |
return <<"END"; |
return <<"END"; |
function toggleSecret(form,radio,key) { |
function toggleSecret(form,radio,key) { |
var radios = form[radio+key]; |
var radios = form[radio+key]; |
Line 1477 function toggleSecret(form,radio,key) {
|
Line 1491 function toggleSecret(form,radio,key) {
|
document.getElementById('done_'+key+'_proctorkey').value=''; |
document.getElementById('done_'+key+'_proctorkey').value=''; |
} |
} |
} |
} |
|
if (document.getElementById('done_'+key+'_buttontext')) { |
|
if (radios[i].value == '') { |
|
document.getElementById('done_'+key+'_buttontext').value = ''; |
|
} else { |
|
if (document.getElementById('done_'+key+'_buttontext').value == '') { |
|
document.getElementById('done_'+key+'_buttontext').value = '$defaultdone'; |
|
} |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
Line 2074 sub parm_control_group {
|
Line 2097 sub parm_control_group {
|
# @param {hash reference} $uris - hash resource/map id -> resource src |
# @param {hash reference} $uris - hash resource/map id -> resource src |
# @param {hash reference} $keyorder - hash parameter key -> appearance rank for this parameter when looking through every resource and every parameter, starting at 100 (integer) |
# @param {hash reference} $keyorder - hash parameter key -> appearance rank for this parameter when looking through every resource and every parameter, starting at 100 (integer) |
# @param {hash reference} $defkeytype - hash parameter name -> parameter type |
# @param {hash reference} $defkeytype - hash parameter name -> parameter type |
|
# @param {string} $pssymb - resource symb (when a single resource is selected) |
sub extractResourceInformation { |
sub extractResourceInformation { |
my $ids = shift; |
my $ids = shift; |
my $typep = shift; |
my $typep = shift; |
Line 2742 sub displaymenu {
|
Line 2766 sub displaymenu {
|
# @param {string} $pschp - selected map pc, or 'all' |
# @param {string} $pschp - selected map pc, or 'all' |
# @param {hash reference} $maptitles - hash map id or src -> map title |
# @param {hash reference} $maptitles - hash map id or src -> map title |
# @param {hash reference} $symbp - hash map pc or resource/map id -> map src.'___(all)' or resource symb |
# @param {hash reference} $symbp - hash map pc or resource/map id -> map src.'___(all)' or resource symb |
|
# @param {string} $parmlev - parameter level (Resource:'full', Map:'map', Course:'general') |
sub mapmenu { |
sub mapmenu { |
my ($r,$allmaps,$pschp,$maptitles,$symbp)=@_; |
my ($r,$allmaps,$pschp,$maptitles,$symbp,$parmlev)=@_; |
my %allmaps_inverted = reverse %$allmaps; |
my %allmaps_inverted = reverse %$allmaps; |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $tree=[]; |
my $tree=[]; |
Line 2791 sub mapmenu {
|
Line 2816 sub mapmenu {
|
} |
} |
} |
} |
# Show it ... |
# Show it ... |
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Enclosing Map or Folder'),'','',' id="mapmenu"')); |
my $rowattr = ' id="mapmenu"'; |
|
if ($parmlev eq 'general') { |
|
$rowattr .= ' style="display:none"'; |
|
} |
|
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Enclosing Map or Folder'),'','',$rowattr)); |
if ((ref($tree) eq 'ARRAY') && (ref($treeinfo) eq 'HASH')) { |
if ((ref($tree) eq 'ARRAY') && (ref($treeinfo) eq 'HASH')) { |
my $icon = '<img src="/adm/lonIcons/navmap.folder.open.gif" alt="" />'; |
my $icon = '<img src="/adm/lonIcons/navmap.folder.open.gif" alt="" />'; |
my $whitespace = |
my $whitespace = |
Line 3033 sub keysindisplayorder {
|
Line 3062 sub keysindisplayorder {
|
# |
# |
# @param {Apache2::RequestRec} $r - the Apache request |
# @param {Apache2::RequestRec} $r - the Apache request |
# @param {string} $sortorder - realmstudent|studentrealm |
# @param {string} $sortorder - realmstudent|studentrealm |
|
# @param {string} $context - newoverview|overview |
sub sortmenu { |
sub sortmenu { |
my ($r,$sortorder)=@_; |
my ($r,$sortorder,$context)=@_; |
$r->print('<br /><label><input type="radio" name="sortorder" value="realmstudent"'); |
my %text; |
if ($sortorder eq 'realmstudent') { |
if ($context eq 'newoverview') { |
$r->print(' checked="checked"'); |
%text = &Apache::lonlocal::texthash ( |
|
realmstudent => 'Sort by location in course first, then student (group/section)', |
|
studentrealm => 'Sort by student (group/section) first, then location in course', |
|
); |
|
} else { |
|
%text = &Apache::lonlocal::texthash ( |
|
realmstudent => 'Sort by realm first, then student (group/section)', |
|
studentrealm => 'Sort by student (group/section) first, then realm', |
|
); |
} |
} |
$r->print(' />'.&mt('Sort by realm first, then student (group/section)')); |
my %sortchecked = ( |
$r->print('</label><br /><label><input type="radio" name="sortorder" value="studentrealm"'); |
realmstudent => ' checked="checked"', |
|
studentrealm => '', |
|
); |
if ($sortorder eq 'studentrealm') { |
if ($sortorder eq 'studentrealm') { |
$r->print(' checked="checked"'); |
$sortchecked{'studentrealm'} = $sortchecked{'realmstudent'}; |
|
$sortchecked{'realmstudent'} = ''; |
|
} |
|
foreach my $sorttype ('realmstudent','studentrealm') { |
|
$r->print('<br /><label><input type="radio" name="sortorder" value="'.$sorttype.'"'.$sortchecked{$sorttype}.' />'. |
|
$text{$sorttype}.'</label>'); |
} |
} |
$r->print(' />'.&mt('Sort by student (group/section) first, then realm'). |
|
'</label>'); |
|
} |
} |
|
|
# Returns a hash parameter key -> order (integer) giving the order for some parameters. |
# Returns a hash parameter key -> order (integer) giving the order for some parameters. |
Line 3635 ENDPARMSELSCRIPT
|
Line 3678 ENDPARMSELSCRIPT
|
$r->print(&Apache::lonhtmlcommon::start_pick_box(undef,'parmlevel')); |
$r->print(&Apache::lonhtmlcommon::start_pick_box(undef,'parmlevel')); |
&levelmenu($r,\%alllevs,$parmlev); |
&levelmenu($r,\%alllevs,$parmlev); |
$r->print(&Apache::lonhtmlcommon::row_closure()); |
$r->print(&Apache::lonhtmlcommon::row_closure()); |
&mapmenu($r,\%allmaps,$pschp,\%maptitles, \%symbp); |
&mapmenu($r,\%allmaps,$pschp,\%maptitles,\%symbp,$parmlev); |
$r->print(&Apache::lonhtmlcommon::row_closure()); |
$r->print(&Apache::lonhtmlcommon::row_closure()); |
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Parts to View'))); |
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Parts to View'))); |
&partmenu($r,\%allparts,\@psprt); |
&partmenu($r,\%allparts,\@psprt); |
Line 4687 sub parse_listdata_key {
|
Line 4730 sub parse_listdata_key {
|
# @param {string} $caller - name of the calling sub (overview|newoverview) |
# @param {string} $caller - name of the calling sub (overview|newoverview) |
# @param {hash reference} $classlist - from loncoursedata::get_classlist |
# @param {hash reference} $classlist - from loncoursedata::get_classlist |
# @param {boolean} $readonly - true if editing not allowed |
# @param {boolean} $readonly - true if editing not allowed |
|
# @param {string} $parmlev - full|map |
|
# @param {hash reference} $hash_for_realm - keys: realm, values: numeric order |
|
# @param {string} $pschp - selected map pc, or 'all' |
# @returns{integer} - number of $listdata parameters processed |
# @returns{integer} - number of $listdata parameters processed |
sub listdata { |
sub listdata { |
my ($r,$resourcedata,$listdata,$sortorder,$caller,$classlist,$readonly)=@_; |
my ($r,$resourcedata,$listdata,$sortorder,$caller,$classlist,$readonly,$parmlev,$hash_for_realm,$pschp)=@_; |
|
|
# Start list output |
# Start list output |
|
|
Line 4715 sub listdata {
|
Line 4761 sub listdata {
|
foreach my $key (sort { |
foreach my $key (sort { |
my ($astudent,$ares,$apart,$aparm) = &parse_listdata_key($a,$listdata); |
my ($astudent,$ares,$apart,$aparm) = &parse_listdata_key($a,$listdata); |
my ($bstudent,$bres,$bpart,$bparm) = &parse_listdata_key($b,$listdata); |
my ($bstudent,$bres,$bpart,$bparm) = &parse_listdata_key($b,$listdata); |
|
my ($aid,$bid); |
|
if ($caller eq 'newoverview') { |
|
if (ref($hash_for_realm) eq 'HASH') { |
|
if (($parmlev eq 'map') && ($pschp eq 'all')) { |
|
my ($aurl) = ($ares =~ /^(.+\.(?:sequence|page))___\(all\)$/); |
|
my ($burl) = ($bres =~ /^(.+\.(?:sequence|page))___\(all\)$/); |
|
$aid = $hash_for_realm->{$aurl}; |
|
$bid = $hash_for_realm->{$burl}; |
|
} elsif ($parmlev eq 'full') { |
|
$aid = $hash_for_realm->{$ares}; |
|
$bid = $hash_for_realm->{$bres}; |
|
} |
|
} |
|
} |
|
|
# get the numerical order for the param |
# get the numerical order for the param |
$aparm=$keyorder{'parameter_0_'.$aparm}; |
$aparm=$keyorder{'parameter_0_'.$aparm}; |
Line 4724 sub listdata {
|
Line 4784 sub listdata {
|
|
|
if ($sortorder eq 'realmstudent') { |
if ($sortorder eq 'realmstudent') { |
if ($ares ne $bres ) { |
if ($ares ne $bres ) { |
$result = ($ares cmp $bres); |
if ($caller eq 'newoverview') { |
|
if (ref($hash_for_realm) eq 'HASH') { |
|
if (($parmlev eq 'map') && ($pschp eq 'all')) { |
|
$result = ($aid <=> $bid); |
|
} elsif ($parmlev eq 'full') { |
|
$result = ($aid <=> $bid); |
|
} else { |
|
$result = ($ares cmp $bres); |
|
} |
|
} else { |
|
$result = ($ares cmp $bres); |
|
} |
|
} else { |
|
$result = ($ares cmp $bres); |
|
} |
} elsif ($astudent ne $bstudent) { |
} elsif ($astudent ne $bstudent) { |
$result = ($astudent cmp $bstudent); |
$result = ($astudent cmp $bstudent); |
} elsif ($apart ne $bpart ) { |
} elsif ($apart ne $bpart ) { |
Line 4734 sub listdata {
|
Line 4808 sub listdata {
|
if ($astudent ne $bstudent) { |
if ($astudent ne $bstudent) { |
$result = ($astudent cmp $bstudent); |
$result = ($astudent cmp $bstudent); |
} elsif ($ares ne $bres ) { |
} elsif ($ares ne $bres ) { |
$result = ($ares cmp $bres); |
if ($caller eq 'newoverview') { |
|
if (ref($hash_for_realm) eq 'HASH') { |
|
if (($parmlev eq 'map') && ($pschp eq 'all')) { |
|
$result = ($aid <=> $bid); |
|
} elsif ($parmlev eq 'full') { |
|
$result = ($aid <=> $bid); |
|
} else { |
|
$result = ($ares cmp $bres); |
|
} |
|
} else { |
|
$result = ($ares cmp $bres); |
|
} |
|
} else { |
|
$result = ($ares cmp $bres); |
|
} |
} elsif ($apart ne $bpart ) { |
} elsif ($apart ne $bpart ) { |
$result = ($apart cmp $bpart); |
$result = ($apart cmp $bpart); |
} |
} |
Line 4814 sub listdata {
|
Line 4902 sub listdata {
|
} |
} |
if ($is_map) { |
if ($is_map) { |
my $leveltitle = &mt('Folder/Map'); |
my $leveltitle = &mt('Folder/Map'); |
|
my $title = &Apache::lonnet::gettitle($mapurl); |
|
if (ref($hash_for_realm) eq 'HASH') { |
|
if ($hash_for_realm->{$mapurl} eq '1') { |
|
$title = &mt('Main Content'); |
|
} |
|
} |
unless (($name eq 'hiddenresource') || ($name eq 'encrypturl')) { |
unless (($name eq 'hiddenresource') || ($name eq 'encrypturl')) { |
if ($caller eq 'newoverview') { |
if ($caller eq 'newoverview') { |
my $altkey = $thiskey; |
my $altkey = $thiskey; |
Line 4830 sub listdata {
|
Line 4924 sub listdata {
|
$is_recursive = 1; |
$is_recursive = 1; |
} |
} |
} |
} |
$realm='<span class="LC_parm_scope_folder">'.$leveltitle.': '.&Apache::lonnet::gettitle($mapurl).' <br /><span class="LC_parm_folder">('.$mapurl.')</span></span>'; |
$realm='<span class="LC_parm_scope_folder">'.$leveltitle.': '.$title.' <br /><span class="LC_parm_folder">('.$mapurl.')</span></span>'; |
} elsif ($middle) { |
} elsif ($middle) { |
my ($map,$id,$url)=&Apache::lonnet::decode_symb($middle); |
my ($map,$id,$url)=&Apache::lonnet::decode_symb($middle); |
|
next if (($url =~ /\.(page|sequence)$/) && ($parmlev eq 'full') && ($caller eq 'newoverview')); |
$realm='<span class="LC_parm_scope_resource">'.&mt('Resource'). |
$realm='<span class="LC_parm_scope_resource">'.&mt('Resource'). |
': '.&Apache::lonnet::gettitle($middle). |
': '.&Apache::lonnet::gettitle($middle). |
' <br /><span class="LC_parm_symb">('.$url.' in '.$map.' id: '. |
' <br /><span class="LC_parm_symb">('.$url.' in '.$map.' id: '. |
Line 4954 sub listdata {
|
Line 5049 sub listdata {
|
sub get_date_interval_from_form { |
sub get_date_interval_from_form { |
my ($key) = @_; |
my ($key) = @_; |
my $seconds = 0; |
my $seconds = 0; |
|
my $numnotnull = 0; |
foreach my $which (['days', 86400], |
foreach my $which (['days', 86400], |
['hours', 3600], |
['hours', 3600], |
['minutes', 60], |
['minutes', 60], |
['seconds', 1]) { |
['seconds', 1]) { |
my ($name, $factor) = @{ $which }; |
my ($name, $factor) = @{ $which }; |
if (defined($env{'form.'.$name.'_'.$key})) { |
if (defined($env{'form.'.$name.'_'.$key})) { |
$seconds += $env{'form.'.$name.'_'.$key} * $factor; |
unless ($env{'form.'.$name.'_'.$key} eq '') { |
|
$numnotnull ++; |
|
$seconds += $env{'form.'.$name.'_'.$key} * $factor; |
|
} |
} |
} |
} |
} |
if (($key =~ /\.interval$/) && |
if (($key =~ /\.interval$/) && |
Line 4979 sub get_date_interval_from_form {
|
Line 5078 sub get_date_interval_from_form {
|
$seconds .= '_'.$env{'form.done_'.$key.'_proctorkey'}; |
$seconds .= '_'.$env{'form.done_'.$key.'_proctorkey'}; |
} |
} |
} |
} |
|
return if (!$numnotnull); |
return $seconds; |
return $seconds; |
} |
} |
|
|
Line 5068 sub string_deeplink_selector {
|
Line 5168 sub string_deeplink_selector {
|
my ($thiskey, $showval, $readonly) = @_; |
my ($thiskey, $showval, $readonly) = @_; |
my (@components,%values,@current,%titles,%options,%optiontext,%defaults, |
my (@components,%values,@current,%titles,%options,%optiontext,%defaults, |
%selectnull,%domlti,%crslti,@possmenus); |
%selectnull,%domlti,%crslti,@possmenus); |
@components = ('state','others','listing','scope','protect','menus'); |
@components = ('state','others','listing','scope','protect','menus','target'); |
%titles = &Apache::lonlocal::texthash ( |
%titles = &Apache::lonlocal::texthash ( |
state => 'Access status', |
state => 'Access status', |
others => 'Hide other resources', |
others => 'Hide other resources', |
Line 5076 sub string_deeplink_selector {
|
Line 5176 sub string_deeplink_selector {
|
scope => 'Access scope for link', |
scope => 'Access scope for link', |
protect => 'Link protection', |
protect => 'Link protection', |
menus => 'Menu Items Displayed', |
menus => 'Menu Items Displayed', |
|
target => 'Embedded?', |
); |
); |
%options = ( |
%options = ( |
state => ['only','off','both'], |
state => ['only','off','both'], |
Line 5084 sub string_deeplink_selector {
|
Line 5185 sub string_deeplink_selector {
|
scope => ['res','map','rec'], |
scope => ['res','map','rec'], |
protect => ['none','key','ltid','ltic'], |
protect => ['none','key','ltid','ltic'], |
menus => ['std','colls'], |
menus => ['std','colls'], |
|
target => ['_self','_top'], |
); |
); |
%optiontext = &Apache::lonlocal::texthash ( |
%optiontext = &Apache::lonlocal::texthash ( |
only => 'deep only', |
only => 'deep only', |
Line 5105 sub string_deeplink_selector {
|
Line 5207 sub string_deeplink_selector {
|
ltid => 'LTI access (domain)' , |
ltid => 'LTI access (domain)' , |
std => 'Standard (all menus)', |
std => 'Standard (all menus)', |
colls => 'Numbered collection', |
colls => 'Numbered collection', |
|
_self => 'Embedded', |
|
_top => 'Not embedded', |
); |
); |
%selectnull = &Apache::lonlocal::texthash ( |
%selectnull = &Apache::lonlocal::texthash ( |
ltic => 'Select Launcher', |
ltic => 'Select Launcher', |
Line 5120 sub string_deeplink_selector {
|
Line 5224 sub string_deeplink_selector {
|
($values{'scope'}) = ($current[3] =~ /^(res|map|rec)$/); |
($values{'scope'}) = ($current[3] =~ /^(res|map|rec)$/); |
($values{'protect'}) = ($current[4] =~ /^(key:[a-zA-Z\d_.!\@#\$%^&*()+=-]+|ltic:\d+|ltid:\d+)$/); |
($values{'protect'}) = ($current[4] =~ /^(key:[a-zA-Z\d_.!\@#\$%^&*()+=-]+|ltic:\d+|ltid:\d+)$/); |
($values{'menus'}) = ($current[5] =~ /^(\d+)$/); |
($values{'menus'}) = ($current[5] =~ /^(\d+)$/); |
|
($values{'target'}) = ($current[6] =~ /^(_self|_top)$/); |
} else { |
} else { |
$defaults{'state'} = 'off', |
$defaults{'state'} = 'off', |
$defaults{'others'} = 'unhide', |
$defaults{'others'} = 'unhide', |
Line 5127 sub string_deeplink_selector {
|
Line 5232 sub string_deeplink_selector {
|
$defaults{'scope'} = 'res'; |
$defaults{'scope'} = 'res'; |
$defaults{'protect'} = 'none'; |
$defaults{'protect'} = 'none'; |
$defaults{'menus'} = '0'; |
$defaults{'menus'} = '0'; |
|
$defaults{'target'} = '_top'; |
} |
} |
my $disabled; |
my $disabled; |
if ($readonly) { |
if ($readonly) { |
Line 5308 my %strings =
|
Line 5414 my %strings =
|
=> [['_allowfrom_','Hostname(s), or IP(s) from which access is allowed'], |
=> [['_allowfrom_','Hostname(s), or IP(s) from which access is allowed'], |
['_denyfrom_','Hostname(s) or IP(s) from which access is disallowed']], |
['_denyfrom_','Hostname(s) or IP(s) from which access is disallowed']], |
'string_deeplink' |
'string_deeplink' |
=> [['on','Set choices for link protection, resource listing, access scope, and shown menu items']], |
=> [['on','Set choices for link protection, resource listing, access scope, shown menu items, and embedding']], |
); |
); |
|
|
|
|
Line 5319 my %stringmatches = (
|
Line 5425 my %stringmatches = (
|
=> [['_allowfrom_','[^\!]+'], |
=> [['_allowfrom_','[^\!]+'], |
['_denyfrom_','\!']], |
['_denyfrom_','\!']], |
'string_deeplink' |
'string_deeplink' |
=> [['on','^(only|off|both)\,(hide|unhide)\,(full|absent|grades|details|datestatus)\,(res|map|rec)\,(none|key\:\w+|ltic\:\d+|ltid\:\d+)\,(\d+|)$']], |
=> [['on','^(only|off|both)\,(hide|unhide)\,(full|absent|grades|details|datestatus)\,(res|map|rec)\,(none|key\:\w+|ltic\:\d+|ltid\:\d+)\,(\d+|)\,_(self|top)$']], |
); |
); |
|
|
my %stringtypes = ( |
my %stringtypes = ( |
Line 5639 sub date_interval_selector {
|
Line 5745 sub date_interval_selector {
|
$showval %= $factor; |
$showval %= $factor; |
my %select = ((map {$_ => $_} (0..$max)), |
my %select = ((map {$_ => $_} (0..$max)), |
'select_form_order' => [0..$max]); |
'select_form_order' => [0..$max]); |
|
if ($currval eq '') { |
|
unshift(@{$select{'select_form_order'}},''); |
|
$select{''} = ''; |
|
$amount = ''; |
|
} |
$result .= &Apache::loncommon::select_form($amount,$name.'_'.$thiskey, |
$result .= &Apache::loncommon::select_form($amount,$name.'_'.$thiskey, |
\%select,'',$readonly); |
\%select,'',$readonly); |
$result .= ' '.&mt($name); |
$result .= ' '.&mt($name); |
Line 5646 sub date_interval_selector {
|
Line 5757 sub date_interval_selector {
|
if ($name eq 'interval') { |
if ($name eq 'interval') { |
unless ($skipval{'done'}) { |
unless ($skipval{'done'}) { |
my $checkedon = ''; |
my $checkedon = ''; |
|
my $checkedoff = ''; |
my $checkedproc = ''; |
my $checkedproc = ''; |
my $currproctorkey = ''; |
my $currproctorkey = ''; |
my $currprocdisplay = 'hidden'; |
my $currprocdisplay = 'hidden'; |
my $currdonetext = &mt('Done'); |
my $currdonetext = &mt('Done'); |
my $checkedoff = ' checked="checked"'; |
|
if ($currval =~ /^(?:\d+)_done$/) { |
if ($currval =~ /^(?:\d+)_done$/) { |
$checkedon = ' checked="checked"'; |
$checkedon = ' checked="checked"'; |
$checkedoff = ''; |
|
} elsif ($currval =~ /^(?:\d+)_done\:([^\:]+)\:$/) { |
} elsif ($currval =~ /^(?:\d+)_done\:([^\:]+)\:$/) { |
$currdonetext = $1; |
$currdonetext = $1; |
$checkedon = ' checked="checked"'; |
$checkedon = ' checked="checked"'; |
$checkedoff = ''; |
|
} elsif ($currval =~ /^(?:\d+)_done_proctor_(.+)$/) { |
} elsif ($currval =~ /^(?:\d+)_done_proctor_(.+)$/) { |
$currproctorkey = $1; |
$currproctorkey = $1; |
$checkedproc = ' checked="checked"'; |
$checkedproc = ' checked="checked"'; |
$checkedoff = ''; |
|
$currprocdisplay = 'text'; |
$currprocdisplay = 'text'; |
} elsif ($currval =~ /^(?:\d+)_done\:([^\:]+)\:_proctor_(.+)$/) { |
} elsif ($currval =~ /^(?:\d+)_done\:([^\:]+)\:_proctor_(.+)$/) { |
$currdonetext = $1; |
$currdonetext = $1; |
$currproctorkey = $2; |
$currproctorkey = $2; |
$checkedproc = ' checked="checked"'; |
$checkedproc = ' checked="checked"'; |
$checkedoff = ''; |
|
$currprocdisplay = 'text'; |
$currprocdisplay = 'text'; |
|
} elsif ($currval ne '') { |
|
$checkedoff = ' checked="checked"'; |
|
} else { |
|
$currdonetext = ''; |
} |
} |
my $onclick = ' onclick="toggleSecret(this.form,'."'done_','$thiskey'".');"'; |
my $onclick = ' onclick="toggleSecret(this.form,'."'done_','$thiskey'".');"'; |
my $disabled; |
my $disabled; |
Line 5685 sub date_interval_selector {
|
Line 5796 sub date_interval_selector {
|
'<input type="'.$currprocdisplay.'" id="done_'.$thiskey.'_proctorkey" '. |
'<input type="'.$currprocdisplay.'" id="done_'.$thiskey.'_proctorkey" '. |
'name="done_'.$thiskey.'_proctorkey" value="'.&HTML::Entities::encode($currproctorkey,'"<>&').'"'.$disabled.' /></span><br />'. |
'name="done_'.$thiskey.'_proctorkey" value="'.&HTML::Entities::encode($currproctorkey,'"<>&').'"'.$disabled.' /></span><br />'. |
'<span class="LC_nobreak">'.&mt('Button text').': '. |
'<span class="LC_nobreak">'.&mt('Button text').': '. |
'<input type="text" name="done_'.$thiskey.'_buttontext" value="'.&HTML::Entities::encode($currdonetext,'"<>&').'"'.$disabled.' /></span>'; |
'<input type="text" name="done_'.$thiskey.'_buttontext" id="done_'.$thiskey.'_buttontext" value="'. |
|
&HTML::Entities::encode($currdonetext,'"<>&').'"'.$disabled.' /></span>'; |
} |
} |
} |
} |
unless ($readonly) { |
unless ($readonly) { |
Line 5938 ENDOVER
|
Line 6050 ENDOVER
|
$r->print('<div>'); |
$r->print('<div>'); |
$r->print(&Apache::lonhtmlcommon::start_pick_box(undef,'parmlevel')); |
$r->print(&Apache::lonhtmlcommon::start_pick_box(undef,'parmlevel')); |
&levelmenu($r,\%alllevs,$parmlev); |
&levelmenu($r,\%alllevs,$parmlev); |
if ($parmlev ne 'general') { |
$r->print(&Apache::lonhtmlcommon::row_closure()); |
$r->print(&Apache::lonhtmlcommon::row_closure()); |
&mapmenu($r,\%allmaps,$pschp,\%maptitles,\%symbp,$parmlev); |
&mapmenu($r,\%allmaps,$pschp,\%maptitles,\%symbp); |
|
} |
|
$r->print(&Apache::lonhtmlcommon::row_closure(1)); |
$r->print(&Apache::lonhtmlcommon::row_closure(1)); |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
$r->print('</div></div>'); |
$r->print('</div></div>'); |
Line 5979 ENDOVER
|
Line 6089 ENDOVER
|
$r->print('<div>'); |
$r->print('<div>'); |
my $sortorder=$env{'form.sortorder'}; |
my $sortorder=$env{'form.sortorder'}; |
unless ($sortorder) { $sortorder='realmstudent'; } |
unless ($sortorder) { $sortorder='realmstudent'; } |
&sortmenu($r,$sortorder); |
&sortmenu($r,$sortorder,'newoverview'); |
$r->print('</div></div>'); |
$r->print('</div></div>'); |
|
|
$r->print('<p><input type="submit" name="dis" value="'.&mt('Display').'" /></p>'); |
$r->print('<p><input type="submit" name="dis" value="'.&mt('Display').'" /></p>'); |
Line 6004 ENDOVER
|
Line 6114 ENDOVER
|
|
|
# List data |
# List data |
|
|
&listdata($r,$resourcedata,$listdata,$sortorder,'newoverview',undef,$readonly); |
my $hash_for_realm; |
|
if (($parmlev eq 'map') && (keys(%allmaps))) { |
|
%{$hash_for_realm} = reverse(%allmaps); |
|
} elsif (($parmlev eq 'full') && (keys(%symbp))) { |
|
for (my $i=0; $i<@ids; $i++) { |
|
$hash_for_realm->{$symbp{$ids[$i]}} = $i; |
|
} |
|
} |
|
&listdata($r,$resourcedata,$listdata,$sortorder,'newoverview',undef,$readonly,$parmlev,$hash_for_realm,$pschp); |
} |
} |
$r->print(&tableend()); |
$r->print(&tableend()); |
unless ($readonly) { |
unless ($readonly) { |
Line 6111 sub overview {
|
Line 6229 sub overview {
|
|
|
my $sortorder=$env{'form.sortorder'}; |
my $sortorder=$env{'form.sortorder'}; |
unless ($sortorder) { $sortorder='realmstudent'; } |
unless ($sortorder) { $sortorder='realmstudent'; } |
&sortmenu($r,$sortorder); |
&sortmenu($r,$sortorder,'overview'); |
|
|
my $submitbutton = '<input type="submit" value="'.&mt('Save').'" />'; |
my $submitbutton = '<input type="submit" value="'.&mt('Save').'" />'; |
|
|