version 1.47, 2011/10/19 21:15:53
|
version 1.53, 2012/12/31 14:49:37
|
Line 399 sub handler {
|
Line 399 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 408 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 469 sub handler {
|
Line 471 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 549 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 628 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 665 sub process_changes {
|
Line 671 sub process_changes {
|
} |
} |
} |
} |
} elsif (ref($item->{'ordered'}) eq 'ARRAY') { |
} elsif (ref($item->{'ordered'}) eq 'ARRAY') { |
@ordered = @{$item->{'ordered'}}; |
if ($action eq 'courseinfo') { |
|
my ($can_toggle_cat,$can_categorize) = |
|
&can_modify_catsettings($cdom,$crstype); |
|
foreach my $entry (@{$item->{'ordered'}}) { |
|
next if (($entry eq 'hidefromcat') && |
|
(!$can_toggle_cat)); |
|
next if (($entry eq 'categories') && |
|
(!$can_categorize)); |
|
next if (($entry eq 'loncaparev') || |
|
($entry eq 'owner')); |
|
push(@ordered,$entry); |
|
} |
|
} else { |
|
@ordered = @{$item->{'ordered'}}; |
|
} |
} |
} |
if (@ordered > 0) { |
if (@ordered > 0) { |
if ($action eq 'feedback') { |
if ($action eq 'feedback') { |
Line 707 sub process_changes {
|
Line 727 sub process_changes {
|
} |
} |
} else { |
} else { |
foreach my $entry (@ordered) { |
foreach my $entry (@ordered) { |
next if (($entry eq 'loncaparev') || ($entry eq 'owner')); |
|
if ($entry eq 'cloners') { |
if ($entry eq 'cloners') { |
if ($env{'form.cloners_all'}) { |
if ($env{'form.cloners_all'}) { |
$newvalues{$entry} = '*'; |
$newvalues{$entry} = '*'; |
Line 974 sub process_changes {
|
Line 993 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 1077 sub process_changes {
|
Line 1125 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 1204 sub store_changes {
|
Line 1252 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 1240 sub store_changes {
|
Line 1288 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 1339 sub store_changes {
|
Line 1417 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 2392 sub show_contents_view {
|
Line 2472 sub show_contents_view {
|
} |
} |
$r->print(&Apache::loncommon::start_data_table_row(). |
$r->print(&Apache::loncommon::start_data_table_row(). |
'<td rowspan="'.$rowspan.'">'.$indent.$icon.' '.$title.'</td>'); |
'<td rowspan="'.$rowspan.'">'.$indent.$icon.' '.$title.'</td>'); |
&releases_by_map($r,$bymap,$url,$scopeorder); |
&releases_by_map($r,$bymap,$url,$scopeorder,$lt); |
$r->print(&Apache::loncommon::end_data_table_row()); |
$r->print(&Apache::loncommon::end_data_table_row()); |
} else { |
} else { |
my $rowspan; |
my $rowspan; |
Line 2957 sub print_discussion {
|
Line 3037 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 2996 sub print_discussion {
|
Line 3081 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 3117 sub role_checkboxes {
|
Line 3213 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; |
Line 3459 sub get_other_items {
|
Line 3624 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); |
} |
} |
} |
} |