version 1.49, 2012/02/15 21:36:30
|
version 1.55, 2013/04/08 23:57:21
|
Line 300 sub handler {
|
Line 300 sub handler {
|
gens => 'General course settings', |
gens => 'General course settings', |
idnu => 'Course ID or number', |
idnu => 'Course ID or number', |
desc => 'Course Description', |
desc => 'Course Description', |
|
cred => 'Student credits', |
ownr => 'Course Owner', |
ownr => 'Course Owner', |
cown => 'Course Co-owners', |
cown => 'Course Co-owners', |
catg => 'Categorize course', |
catg => 'Categorize course', |
Line 399 sub handler {
|
Line 400 sub handler {
|
ordered => ['pch.roles.denied','pch.users.denied', |
ordered => ['pch.roles.denied','pch.users.denied', |
'plc.roles.denied','plc.users.denied', |
'plc.roles.denied','plc.users.denied', |
'allow_limited_html_in_feedback', |
'allow_limited_html_in_feedback', |
'allow_discussion_post_editing'], |
'allow_discussion_post_editing', |
|
'discussion_post_fonts'], |
itemtext => { |
itemtext => { |
'pch.roles.denied' => 'No Resource Discussion', |
'pch.roles.denied' => 'No Resource Discussion', |
'pch.users.denied' => 'No Resource Discussion', |
'pch.users.denied' => 'No Resource Discussion', |
Line 407 sub handler {
|
Line 409 sub handler {
|
'plc.users.denied' => 'No Chat room use', |
'plc.users.denied' => 'No Chat room use', |
allow_limited_html_in_feedback => 'Allow limited HTML in discussion', |
allow_limited_html_in_feedback => 'Allow limited HTML in discussion', |
allow_discussion_post_editing => 'Users can edit/delete own discussion posts', |
allow_discussion_post_editing => 'Users can edit/delete own discussion posts', |
|
discussion_post_fonts => 'Discussion post fonts based on likes/unlikes', |
}, |
}, |
}, |
}, |
'classlists' => |
'classlists' => |
Line 420 sub handler {
|
Line 423 sub handler {
|
col2 => $lt{'stuv'}}], |
col2 => $lt{'stuv'}}], |
ordered => ['default_enrollment_start_date', |
ordered => ['default_enrollment_start_date', |
'default_enrollment_end_date', |
'default_enrollment_end_date', |
|
'defaultcredits', |
'nothideprivileged','student_classlist_view', |
'nothideprivileged','student_classlist_view', |
'student_classlist_opt_in','student_classlist_portfiles'], |
'student_classlist_opt_in','student_classlist_portfiles'], |
itemtext => { |
itemtext => { |
Line 429 sub handler {
|
Line 433 sub handler {
|
student_classlist_view => $lt{'stuv'}, |
student_classlist_view => $lt{'stuv'}, |
student_classlist_opt_in => $lt{'stul'}, |
student_classlist_opt_in => $lt{'stul'}, |
student_classlist_portfiles => 'Include link to accessible portfolio files', |
student_classlist_portfiles => 'Include link to accessible portfolio files', |
|
defaultcredits => $lt{'cred'}, |
}, |
}, |
}, |
}, |
'appearance' => |
'appearance' => |
Line 469 sub handler {
|
Line 474 sub handler {
|
suppress_tries => 'Suppress number of tries in printing', |
suppress_tries => 'Suppress number of tries in printing', |
default_paper_size => 'Default paper type', |
default_paper_size => 'Default paper type', |
print_header_format => 'Print header format', |
print_header_format => 'Print header format', |
disableexampointprint => 'Disable automatically printing point values on exams', |
disableexampointprint => 'Disable automatically printing point values on bubblesheet exams', |
canuse_pdfforms => 'Users can print problems as PDF forms and upload later for grading', |
canuse_pdfforms => 'Users can print problems as PDF forms and upload later for grading', |
}, |
}, |
}, |
}, |
Line 547 sub print_config_box {
|
Line 552 sub print_config_box {
|
'<table class="LC_nested_outer"> |
'<table class="LC_nested_outer"> |
<tr> |
<tr> |
<th align="left" valign="middle"><span class="LC_nobreak" style="font-size: larger;" >'. |
<th align="left" valign="middle"><span class="LC_nobreak" style="font-size: larger;" >'. |
&mt($item->{text}).' '. |
&mt($item->{text}); |
&Apache::loncommon::help_open_topic($item->{'help'}).'</span></th>'."\n". |
if ($item->{'help'}) { |
'</tr>'; |
$output .= ' '. |
|
&Apache::loncommon::help_open_topic($item->{'help'}); |
|
} |
|
$output .= '</span></th>'."\n". |
|
'</tr>'; |
if (($action eq 'feedback') || ($action eq 'classlists')) { |
if (($action eq 'feedback') || ($action eq 'classlists')) { |
$output .= ' |
$output .= ' |
<tr> |
<tr> |
Line 622 sub print_config_box {
|
Line 631 sub print_config_box {
|
$output .= &print_feedback('bottom',$cdom,$settings,$ordered,$itemtext,\$rowtotal); |
$output .= &print_feedback('bottom',$cdom,$settings,$ordered,$itemtext,\$rowtotal); |
} elsif ($action eq 'discussion') { |
} elsif ($action eq 'discussion') { |
$output .= &print_discussion($cdom,$settings,$ordered,$itemtext,\$rowtotal); |
$output .= &print_discussion($cdom,$settings,$ordered,$itemtext,\$rowtotal); |
} elsif ($action eq 'classlists') { |
} elsif (($action eq 'classlists') || ($action eq 'viewableroster')) { |
$output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype); |
$output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype); |
} elsif ($action eq 'appearance') { |
} elsif ($action eq 'appearance') { |
$output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); |
$output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); |
Line 677 sub process_changes {
|
Line 686 sub process_changes {
|
($entry eq 'owner')); |
($entry eq 'owner')); |
push(@ordered,$entry); |
push(@ordered,$entry); |
} |
} |
|
} elsif ($action eq 'classlists') { |
|
foreach my $entry (@{$item->{'ordered'}}) { |
|
next if ($entry eq 'defaultcredits'); |
|
push(@ordered,$entry); |
|
} |
} else { |
} else { |
@ordered = @{$item->{'ordered'}}; |
@ordered = @{$item->{'ordered'}}; |
} |
} |
Line 987 sub process_changes {
|
Line 1001 sub process_changes {
|
} |
} |
} |
} |
$newvalues{$entry} =~ s/,$//; |
$newvalues{$entry} =~ s/,$//; |
|
} elsif ($entry eq 'discussion_post_fonts') { |
|
my ($classorder,$classtitles) = &discussion_vote_classes(); |
|
my $fontchange = 0; |
|
foreach my $class (@{$classorder}) { |
|
my $ext_entry = $entry.'_'.$class; |
|
my $size = $env{'form.'.$ext_entry.'_size'}; |
|
my $unit = $env{'form.'.$ext_entry.'_unit'}; |
|
my $weight = $env{'form.'.$ext_entry.'_weight'}; |
|
my $style = $env{'form.'.$ext_entry.'_style'}; |
|
my $other = $env{'form.'.$ext_entry.'_other'}; |
|
$size =~ s/,//g; |
|
$unit =~ s/,//g; |
|
$weight =~ s/,//g; |
|
$style =~ s/,//g; |
|
$other =~ s/[^\w;:\s\-\%.]//g; |
|
$other =~ s/(^\s+|\s+$)//g; |
|
$newvalues{$ext_entry} = join(',',($size.$unit,$weight,$style,$other)); |
|
my $current = $values->{$ext_entry}; |
|
if ($values->{$ext_entry} eq '') { |
|
$current = ',,,'; |
|
} |
|
if ($newvalues{$ext_entry} ne $current) { |
|
$changes->{$ext_entry} = $newvalues{$ext_entry}; |
|
$fontchange ++; |
|
} |
|
} |
|
if ($fontchange) { |
|
$changes->{$entry} = 1; |
|
} |
} elsif ($entry eq 'nothideprivileged') { |
} elsif ($entry eq 'nothideprivileged') { |
my @curr_nothide; |
my @curr_nothide; |
my @new_nothide; |
my @new_nothide; |
Line 1090 sub process_changes {
|
Line 1133 sub process_changes {
|
} else { |
} else { |
$newvalues{$entry} = $env{'form.'.$entry}; |
$newvalues{$entry} = $env{'form.'.$entry}; |
} |
} |
unless ($entry eq 'co-owners') { |
unless (($entry eq 'co-owners') || ($entry eq 'discussion_post_fonts')) { |
if ($newvalues{$entry} ne $values->{$entry}) { |
if ($newvalues{$entry} ne $values->{$entry}) { |
$changes->{$entry} = $newvalues{$entry}; |
$changes->{$entry} = $newvalues{$entry}; |
} |
} |
Line 1217 sub store_changes {
|
Line 1260 sub store_changes {
|
my ($displayname,$text); |
my ($displayname,$text); |
$text = $prefs->{$item}->{'itemtext'}{$key}; |
$text = $prefs->{$item}->{'itemtext'}{$key}; |
my $displayval; |
my $displayval; |
unless ($key eq 'co-owners') { |
unless (($key eq 'co-owners') || ($key eq 'discussion_post_fonts')) { |
$displayval = $changes->{$item}{$key}; |
$displayval = $changes->{$item}{$key}; |
} |
} |
if ($item eq 'feedback') { |
if ($item eq 'feedback') { |
Line 1253 sub store_changes {
|
Line 1296 sub store_changes {
|
} |
} |
$displayval = join(', ',@longroles); |
$displayval = join(', ',@longroles); |
} |
} |
|
} elsif ($key eq 'discussion_post_fonts') { |
|
my ($classorder,$classtitles)=&discussion_vote_classes(); |
|
my ($styleorder,$styleitems)=&discussion_vote_styles(); |
|
my $count = 1; |
|
my $total = scalar(keys(%{$changes->{$item}})); |
|
foreach my $class (@{$classorder}) { |
|
$count ++; |
|
next unless ($changes->{$item}{$key.'_'.$class}); |
|
my @vals = split(/,/,$changes->{$item}{$key.'_'.$class}); |
|
my $showval = ''; |
|
for (my $i=0; $i<@{$styleorder}; $i++) { |
|
if ($vals[$i] ne '') { |
|
$showval .= 'font-'.$styleorder->[$i].': '.$vals[$i].'; '; |
|
} |
|
} |
|
if ($vals[3] ne '') { |
|
$showval .= $vals[3]; |
|
} |
|
if ($showval ne '') { |
|
$displayval .= $classtitles->{$class}.':{ '. |
|
$showval.'}'; |
|
$storehash{$key.'_'.$class} = $changes->{$item}{$key.'_'.$class}; |
|
} else { |
|
$displayval .= $classtitles->{$class}.': '.&mt('None'); |
|
push(@delkeys,$key.'_'.$class); |
|
} |
|
unless ($count == $total) { |
|
$displayval .= (' 'x2); |
|
} |
|
} |
} |
} |
$displayname = &mt($text); |
$displayname = &mt($text); |
} |
} |
Line 1352 sub store_changes {
|
Line 1425 sub store_changes {
|
} |
} |
} |
} |
} else { |
} else { |
$storehash{$key} = $changes->{$item}{$key}; |
unless ($key eq 'discussion_post_fonts') { |
|
$storehash{$key} = $changes->{$item}{$key}; |
|
} |
} |
} |
} |
} |
if ($key eq 'cloners') { |
if ($key eq 'cloners') { |
Line 1714 sub print_courseinfo {
|
Line 1789 sub print_courseinfo {
|
&mt('Modification may make assessment data inaccessible!'). |
&mt('Modification may make assessment data inaccessible!'). |
'</span>', |
'</span>', |
input => 'textbox', |
input => 'textbox', |
size => '40', |
size => '55', |
advanced => 1 |
advanced => 1 |
}, |
}, |
'description' => { |
'description' => { |
text => '<b>'.&mt($itemtext->{'description'}).'</b>', |
text => '<b>'.&mt($itemtext->{'description'}).'</b>', |
input => 'textbox', |
input => 'textbox', |
size => '25', |
size => '55', |
}, |
}, |
'owner' => { |
'owner' => { |
text => '<b>'.&mt($itemtext->{'owner'}).'</b>', |
text => '<b>'.&mt($itemtext->{'owner'}).'</b>', |
Line 1767 sub print_courseinfo {
|
Line 1842 sub print_courseinfo {
|
'loncaparev' => { |
'loncaparev' => { |
text => '<b>'.&mt($itemtext->{'loncaparev'}).'</b>', |
text => '<b>'.&mt($itemtext->{'loncaparev'}).'</b>', |
}, |
}, |
|
'defaultcredits' => { |
|
text => '<b>'.&mt($itemtext->{'defaultcredits'}).'</b>', |
|
}, |
); |
); |
my $datatable; |
my $datatable; |
my $count = 0; |
my $count = 0; |
Line 2970 sub print_discussion {
|
Line 3048 sub print_discussion {
|
text => '<b>'.&mt($itemtext->{'allow_discussion_post_editing'}).'</b>', |
text => '<b>'.&mt($itemtext->{'allow_discussion_post_editing'}).'</b>', |
input => 'checkbox', |
input => 'checkbox', |
}, |
}, |
|
'discussion_post_fonts' => { |
|
text => '<b>'.&mt($itemtext->{'discussion_post_fonts'}).'</b>', |
|
input => 'textbox', |
|
size => '20', |
|
}, |
); |
); |
my $datatable; |
my $datatable; |
my $count; |
my $count; |
Line 3009 sub print_discussion {
|
Line 3092 sub print_discussion {
|
&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table_row(). |
&role_checkboxes($cdom,$cnum,$item,$settings,1). |
&role_checkboxes($cdom,$cnum,$item,$settings,1). |
&Apache::loncommon::end_data_table(); |
&Apache::loncommon::end_data_table(); |
|
} elsif ($item eq 'discussion_post_fonts') { |
|
$datatable .= &Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_row(). |
|
'<th align="center">'.&mt('Sum of likes/dislikes').'</th>'. |
|
'<th align="center">'.&mt('font-size').'</th>'. |
|
'<th align="center">'.&mt('font-weight').'</th>'. |
|
'<th align="center">'.&mt('font-style').'</th>'. |
|
'<th align="center">'.&mt('Other css').'</th>'. |
|
&Apache::loncommon::end_data_table_row(). |
|
&set_discussion_fonts($cdom,$cnum,$item,$settings). |
|
&Apache::loncommon::end_data_table(); |
} |
} |
$datatable .= &item_table_row_end(); |
$datatable .= &item_table_row_end(); |
} |
} |
Line 3130 sub role_checkboxes {
|
Line 3224 sub role_checkboxes {
|
return $output; |
return $output; |
} |
} |
|
|
|
sub set_discussion_fonts { |
|
my ($cdom,$cnum,$item,$settings) = @_; |
|
my ($classorder,$classtitles) = &discussion_vote_classes(); |
|
my ($styleorder,$styleitems) = &discussion_vote_styles(); |
|
my $output; |
|
if (ref($classorder) eq 'ARRAY') { |
|
foreach my $cat (@{$classorder}) { |
|
my %curr = (); |
|
($curr{'size'},$curr{'weight'},$curr{'style'},$curr{'other'}) = |
|
split(/,/,$settings->{'discussion_post_fonts_'.$cat}); |
|
$output .= &Apache::loncommon::start_data_table_row(). |
|
'<td>'.$classtitles->{$cat}.'</td>'; |
|
if (ref($styleorder) eq 'ARRAY') { |
|
foreach my $item (@{$styleorder}) { |
|
$output .= '<td><span class="LC_nobreak">'; |
|
my $selitem = $item; |
|
if ($item eq 'size') { |
|
my ($currsize,$currunit); |
|
if ($curr{'size'} =~ /^(\d+)(px|%)$/) { |
|
($currsize,$currunit) = ($1,$2); |
|
$curr{'size'} = $currunit; |
|
} |
|
$output .= '<input type="textbox" name="discussion_post_fonts_'.$cat.'_'.$item.'" value="'.$currsize.'" size="5">'. |
|
' '; |
|
$selitem = 'unit'; |
|
} |
|
if ((ref($styleitems) eq 'HASH') && (ref($styleitems->{$item}) eq 'ARRAY')) { |
|
$output .= '<select name="discussion_post_fonts_'.$cat.'_'.$selitem.'">'; |
|
foreach my $val (@{$styleitems->{$item}}) { |
|
my $sel; |
|
if ($val eq $curr{$item}) { |
|
$sel = ' selected="selected"'; |
|
} |
|
$output .= '<option value="'.$val.'"'.$sel.'>'.$val.'</option>'; |
|
} |
|
} |
|
} |
|
} |
|
$output .= '</span></td><td><input type="textbox" size="10" name="discussion_post_fonts_'.$cat.'_other" value="'.$curr{'other'}.'" /></td>'; |
|
} |
|
$output .= &Apache::loncommon::end_data_table_row(); |
|
} |
|
return $output; |
|
} |
|
|
|
sub discussion_vote_classes { |
|
my $classorder = ['twoplus','oneplus','zero','oneminus','twominus']; |
|
my %classtitles = &Apache::lonlocal::texthash( |
|
'twoplus' => 'Two sigma above mean', |
|
'oneplus' => 'One sigma above mean', |
|
'zero' => 'Within one sigma of mean', |
|
'oneminus' => 'One sigma below mean', |
|
'twominus' => 'Two sigma below mean', |
|
); |
|
return ($classorder,\%classtitles); |
|
} |
|
|
|
sub discussion_vote_styles { |
|
my $styleorder = ['size','weight','style']; |
|
my $styleitems = { |
|
size => ['','px','%','xx-small','x-small','small','medium','large', |
|
'x-large','xx-large','smaller','larger'], |
|
weight => ['','normal','bold','bolder','lighter','100','200','300','400', |
|
'500','600','700','800','900'], |
|
style => ['','normal','italic','oblique'], |
|
}; |
|
return ($styleorder,$styleitems); |
|
} |
|
|
sub print_classlists { |
sub print_classlists { |
my ($position,$cdom,$settings,$itemtext,$rowtotal,$crstype) = @_; |
my ($position,$cdom,$settings,$itemtext,$rowtotal,$crstype) = @_; |
my @ordered; |
my @ordered; |
if ($position eq 'top') { |
if ($position eq 'top') { |
@ordered = ('default_enrollment_start_date', |
@ordered = ('default_enrollment_start_date', |
'default_enrollment_end_date'); |
'default_enrollment_end_date'); |
|
if ($crstype eq 'Course') { |
|
push(@ordered,'defaultcredits'); |
|
} |
} elsif ($position eq 'middle') { |
} elsif ($position eq 'middle') { |
@ordered = ('nothideprivileged'); |
@ordered = ('nothideprivileged'); |
} else { |
} else { |
Line 3168 sub print_classlists {
|
Line 3334 sub print_classlists {
|
text => '<b>'.&mt($itemtext->{'default_enrollment_end_date'}).'</b>', |
text => '<b>'.&mt($itemtext->{'default_enrollment_end_date'}).'</b>', |
input => 'dates', |
input => 'dates', |
}, |
}, |
|
'defaultcredits' => { |
|
text => '<b>'.&mt($itemtext->{'defaultcredits'}).'</b>', |
|
}, |
|
|
'nothideprivileged' => { |
'nothideprivileged' => { |
text => '<b>'.&mt($itemtext->{'nothideprivileged'}).'</b>', |
text => '<b>'.&mt($itemtext->{'nothideprivileged'}).'</b>', |
input => 'checkbox', |
input => 'checkbox', |
Line 3331 sub print_printouts {
|
Line 3500 sub print_printouts {
|
A6 => &mt('A6').' [105x148 mm]', |
A6 => &mt('A6').' [105x148 mm]', |
}, |
}, |
order => ['Letter','Legal','Tabloid','Executive','A2','A3','A4','A5','A6'], |
order => ['Letter','Legal','Tabloid','Executive','A2','A3','A4','A5','A6'], |
nullval => 'None specified', |
nullval => &mt('None specified'), |
}, |
}, |
print_header_format => { |
print_header_format => { |
text => '<b>'.&mt($itemtext->{'print_header_format'}).'</b>', |
text => '<b>'.&mt($itemtext->{'print_header_format'}).'</b>', |
Line 3349 sub print_printouts {
|
Line 3518 sub print_printouts {
|
0 => &mt('No'), |
0 => &mt('No'), |
}, |
}, |
order => ['1','0'], |
order => ['1','0'], |
nullval => 'None specified - use domain default', |
nullval => &mt('None specified - use domain default'), |
} |
} |
); |
); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype); |
Line 3472 sub get_other_items {
|
Line 3641 sub get_other_items {
|
unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) || |
unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) || |
($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/) |
($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/) |
|| ($parameter eq 'type') || |
|| ($parameter eq 'type') || |
($parameter =~ m/^(cc|co|in|ta|ep|ad|st)\.plaintext$/)) { |
($parameter =~ m/^(cc|co|in|ta|ep|ad|st)\.plaintext$/) |
|
|| ($parameter =~ m/^discussion_post_fonts/)) { |
push(@ordered,$parameter); |
push(@ordered,$parameter); |
} |
} |
} |
} |
Line 3569 sub make_item_rows {
|
Line 3739 sub make_item_rows {
|
} else { |
} else { |
$datatable .= &item_table_row_start($items->{$item}{text},$count); |
$datatable .= &item_table_row_start($items->{$item}{text},$count); |
} |
} |
if ($item eq 'nothideprivileged') { |
if ($item eq 'defaultcredits') { |
|
my $defaultcredits = $env{'course.'.$env{'request.course.id'}.'.internal.defaultcredits'}; |
|
my $showcredits; |
|
if ($defaultcredits ne '') { |
|
$showcredits = &mt('Default is [quant,_1,credit]',$defaultcredits); |
|
} else { |
|
$showcredits = &mt('No default set'); |
|
} |
|
$datatable .= $showcredits; |
|
} elsif ($item eq 'nothideprivileged') { |
$datatable .= ¬hidepriv_row($cdom,$item,$settings,$crstype); |
$datatable .= ¬hidepriv_row($cdom,$item,$settings,$crstype); |
} elsif ($item eq 'print_header_format') { |
} elsif ($item eq 'print_header_format') { |
$datatable .= &print_hdrfmt_row($item,$settings); |
$datatable .= &print_hdrfmt_row($item,$settings); |