version 1.160.6.87, 2018/09/02 15:22:28
|
version 1.160.6.89, 2018/09/15 15:15:32
|
Line 1521 sub display_color_options {
|
Line 1521 sub display_color_options {
|
if ($fullwidth ne '' && $fullheight ne '') { |
if ($fullwidth ne '' && $fullheight ne '') { |
if ($fullwidth > $width && $fullheight > $height) { |
if ($fullwidth > $width && $fullheight > $height) { |
my $size = $width.'x'.$height; |
my $size = $width.'x'.$height; |
system("convert -sample $size $input $output"); |
my @args = ('convert','-sample',$size,$input,$output); |
|
system({$args[0]} @args); |
$showfile = "/$imgdir/tn-".$filename; |
$showfile = "/$imgdir/tn-".$filename; |
} |
} |
} |
} |
Line 4630 sub loadbalancing_titles {
|
Line 4631 sub loadbalancing_titles {
|
'_LC_ipchange' => &mt('Non-SSO users with IP mismatch'), |
'_LC_ipchange' => &mt('Non-SSO users with IP mismatch'), |
); |
); |
my @alltypes = ('_LC_adv','_LC_author','_LC_internetdom','_LC_external','_LC_ipchangesso','_LC_ipchange'); |
my @alltypes = ('_LC_adv','_LC_author','_LC_internetdom','_LC_external','_LC_ipchangesso','_LC_ipchange'); |
|
my @available; |
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
unshift(@alltypes,@{$types},'default'); |
@available = @{$types}; |
} |
} |
|
unless (grep(/^default$/,@available)) { |
|
push(@available,'default'); |
|
} |
|
unshift(@alltypes,@available); |
my %titles; |
my %titles; |
foreach my $type (@alltypes) { |
foreach my $type (@alltypes) { |
if ($type =~ /^_LC_/) { |
if ($type =~ /^_LC_/) { |
Line 5008 sub print_selfcreation {
|
Line 5014 sub print_selfcreation {
|
my %radiohash; |
my %radiohash; |
my $numinrow = 4; |
my $numinrow = 4; |
map { $radiohash{'cancreate_'.$_} = 1; } @selfcreate; |
map { $radiohash{'cancreate_'.$_} = 1; } @selfcreate; |
|
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
if ($position eq 'top') { |
if ($position eq 'top') { |
my %choices = &Apache::lonlocal::texthash ( |
my %choices = &Apache::lonlocal::texthash ( |
cancreate_login => 'Institutional Login', |
cancreate_login => 'Institutional Login', |
Line 5022 sub print_selfcreation {
|
Line 5029 sub print_selfcreation {
|
($datatable,$itemcount) = &radiobutton_prefs(\%radiohash,\@toggles,\%defaultchecked, |
($datatable,$itemcount) = &radiobutton_prefs(\%radiohash,\@toggles,\%defaultchecked, |
\%choices,$itemcount,$onclick); |
\%choices,$itemcount,$onclick); |
$$rowtotal += $itemcount; |
$$rowtotal += $itemcount; |
|
|
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
|
|
|
if (ref($usertypes) eq 'HASH') { |
if (ref($usertypes) eq 'HASH') { |
if (keys(%{$usertypes}) > 0) { |
if (keys(%{$usertypes}) > 0) { |
$datatable .= &insttypes_row($createsettings,$types,$usertypes, |
$datatable .= &insttypes_row($createsettings,$types,$usertypes, |
$dom,$numinrow,$othertitle, |
$dom,$numinrow,$othertitle, |
'statustocreate',$$rowtotal); |
'statustocreate',$rowtotal); |
$$rowtotal ++; |
$$rowtotal ++; |
} |
} |
} |
} |
Line 5074 sub print_selfcreation {
|
Line 5079 sub print_selfcreation {
|
$$rowtotal ++; |
$$rowtotal ++; |
} elsif ($position eq 'middle') { |
} elsif ($position eq 'middle') { |
my %domconf = &Apache::lonnet::get_dom('configuration',['usermodification'],$dom); |
my %domconf = &Apache::lonnet::get_dom('configuration',['usermodification'],$dom); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my @posstypes; |
$usertypes->{'default'} = $othertitle; |
|
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
push(@{$types},'default'); |
@posstypes = @{$types}; |
$usertypes->{'default'} = $othertitle; |
} |
foreach my $status (@{$types}) { |
unless (grep(/^default$/,@posstypes)) { |
$datatable .= &modifiable_userdata_row('selfcreate',$status,$domconf{'usermodification'}, |
push(@posstypes,'default'); |
$numinrow,$$rowtotal,$usertypes); |
} |
$$rowtotal ++; |
my %usertypeshash; |
} |
if (ref($usertypes) eq 'HASH') { |
|
%usertypeshash = %{$usertypes}; |
|
} |
|
$usertypeshash{'default'} = $othertitle; |
|
foreach my $status (@posstypes) { |
|
$datatable .= &modifiable_userdata_row('selfcreate',$status,$domconf{'usermodification'}, |
|
$numinrow,$$rowtotal,\%usertypeshash); |
|
$$rowtotal ++; |
} |
} |
} else { |
} else { |
my %choices = &Apache::lonlocal::texthash ( |
my %choices = &Apache::lonlocal::texthash ( |
Line 5101 sub print_selfcreation {
|
Line 5112 sub print_selfcreation {
|
my $onclick = "toggleDisplay(this.form,'emailoptions');"; |
my $onclick = "toggleDisplay(this.form,'emailoptions');"; |
my $additional = '<div id="emailoptions" style="display: '.$display.'">'; |
my $additional = '<div id="emailoptions" style="display: '.$display.'">'; |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); |
my $usertypes = {}; |
my (@ordered,%usertypeshash); |
my $order = []; |
if (ref($domdefaults{'inststatusguest'}) eq 'ARRAY') { |
if ((ref($domdefaults{'inststatustypes'}) eq 'HASH') && (ref($domdefaults{'inststatusguest'}) eq 'ARRAY')) { |
@ordered = @{$domdefaults{'inststatusguest'}}; |
$usertypes = $domdefaults{'inststatustypes'}; |
} |
$order = $domdefaults{'inststatusguest'}; |
if (@ordered) { |
} |
unless (grep(/^default$/,@ordered)) { |
if (ref($order) eq 'ARRAY') { |
push(@ordered,'default'); |
push(@{$order},'default'); |
} |
if (@{$order} > 1) { |
if (ref($usertypes) eq 'HASH') { |
$usertypes->{'default'} = &mt('Other users'); |
%usertypeshash = %{$usertypes}; |
$additional .= '<table><tr>'; |
} |
foreach my $status (@{$order}) { |
$usertypeshash{'default'} = $othertitle; |
$additional .= '<th>'.$usertypes->{$status}.'</th>'; |
$additional .= '<table><tr>'; |
} |
foreach my $status (@ordered) { |
$additional .= '</tr><tr>'; |
$additional .= '<th>'.$usertypeshash{$status}.'</th>'; |
foreach my $status (@{$order}) { |
|
$additional .= '<td>'.&email_as_username($rowtotal,$processing,$status).'</td>'; |
|
} |
|
$additional .= '</tr></table>'; |
|
} else { |
|
$usertypes->{'default'} = &mt('All users'); |
|
$additional .= &email_as_username($rowtotal,$processing); |
|
} |
} |
|
$additional .= '</tr><tr>'; |
|
foreach my $status (@ordered) { |
|
$additional .= '<td>'.&email_as_username($rowtotal,$processing,$status).'</td>'; |
|
} |
|
$additional .= '</tr></table>'; |
|
} else { |
|
$usertypeshash{'default'} = $othertitle; |
|
$additional .= &email_as_username($rowtotal,$processing); |
} |
} |
$additional .= '</div>'."\n"; |
$additional .= '</div>'."\n"; |
|
|
Line 5134 sub print_selfcreation {
|
Line 5146 sub print_selfcreation {
|
$$rowtotal ++; |
$$rowtotal ++; |
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
$numinrow = 1; |
$numinrow = 1; |
if (ref($order) eq 'ARRAY') { |
foreach my $status (@ordered) { |
foreach my $status (@{$order}) { |
$datatable .= &modifiable_userdata_row('cancreate','emailusername_'.$status,$settings, |
$datatable .= &modifiable_userdata_row('cancreate','emailusername_'.$status,$settings, |
$numinrow,$$rowtotal,\%usertypeshash,$infofields,$infotitles); |
$numinrow,$$rowtotal,$usertypes,$infofields,$infotitles); |
$$rowtotal ++; |
$$rowtotal ++; |
|
} |
|
} |
} |
my ($emailrules,$emailruleorder) = |
my ($emailrules,$emailruleorder) = |
&Apache::lonnet::inst_userrules($dom,'email'); |
&Apache::lonnet::inst_userrules($dom,'email'); |
Line 7716 sub publishlogo {
|
Line 7726 sub publishlogo {
|
} else { |
} else { |
my $source = $filepath.'/'.$file; |
my $source = $filepath.'/'.$file; |
my $logfile; |
my $logfile; |
if (!open($logfile,">>$source".'.log')) { |
if (!open($logfile,">>",$source.'.log')) { |
return (&mt('No write permission to Authoring Space')); |
return (&mt('No write permission to Authoring Space')); |
} |
} |
print $logfile |
print $logfile |
"\n================= Publish ".localtime()." ================\n". |
"\n================= Publish ".localtime()." ================\n". |
$env{'user.name'}.':'.$env{'user.domain'}."\n"; |
$env{'user.name'}.':'.$env{'user.domain'}."\n"; |
# Save the file |
# Save the file |
if (!open(FH,'>'.$source)) { |
if (!open(FH,">",$source)) { |
&Apache::lonnet::logthis('Failed to create '.$source); |
&Apache::lonnet::logthis('Failed to create '.$source); |
return (&mt('Failed to create file')); |
return (&mt('Failed to create file')); |
} |
} |
Line 7784 $env{'user.name'}.':'.$env{'user.domain'
|
Line 7794 $env{'user.name'}.':'.$env{'user.domain'
|
if ($fullwidth ne '' && $fullheight ne '') { |
if ($fullwidth ne '' && $fullheight ne '') { |
if ($fullwidth > $thumbwidth && $fullheight > $thumbheight) { |
if ($fullwidth > $thumbwidth && $fullheight > $thumbheight) { |
my $thumbsize = $thumbwidth.'x'.$thumbheight; |
my $thumbsize = $thumbwidth.'x'.$thumbheight; |
system("convert -sample $thumbsize $inputfile $outfile"); |
my @args = ('convert','-sample',$thumbsize,$inputfile,$outfile); |
|
system({$args[0]} @args); |
chmod(0660, $filepath.'/tn-'.$file); |
chmod(0660, $filepath.'/tn-'.$file); |
if (-e $outfile) { |
if (-e $outfile) { |
my $copyfile=$targetdir.'/tn-'.$file; |
my $copyfile=$targetdir.'/tn-'.$file; |
Line 7863 sub write_metadata {
|
Line 7874 sub write_metadata {
|
{ |
{ |
print $logfile "\nWrite metadata file for ".$targetdir.'/'.$file; |
print $logfile "\nWrite metadata file for ".$targetdir.'/'.$file; |
my $mfh; |
my $mfh; |
if (open($mfh,'>'.$targetdir.'/'.$file.'.meta')) { |
if (open($mfh,">",$targetdir.'/'.$file.'.meta')) { |
foreach (sort(keys(%metadatafields))) { |
foreach (sort(keys(%metadatafields))) { |
unless ($_=~/\./) { |
unless ($_=~/\./) { |
my $unikey=$_; |
my $unikey=$_; |
Line 7897 sub notifysubscribed {
|
Line 7908 sub notifysubscribed {
|
next unless (ref($targetsource) eq 'ARRAY'); |
next unless (ref($targetsource) eq 'ARRAY'); |
my ($target,$source)=@{$targetsource}; |
my ($target,$source)=@{$targetsource}; |
if ($source ne '') { |
if ($source ne '') { |
if (open(my $logfh,'>>'.$source.'.log')) { |
if (open(my $logfh,">>",$source.'.log')) { |
print $logfh "\nCleanup phase: Notifications\n"; |
print $logfh "\nCleanup phase: Notifications\n"; |
my @subscribed=&subscribed_hosts($target); |
my @subscribed=&subscribed_hosts($target); |
foreach my $subhost (@subscribed) { |
foreach my $subhost (@subscribed) { |
Line 7923 sub notifysubscribed {
|
Line 7934 sub notifysubscribed {
|
sub subscribed_hosts { |
sub subscribed_hosts { |
my ($target) = @_; |
my ($target) = @_; |
my @subscribed; |
my @subscribed; |
if (open(my $fh,"<$target.subscription")) { |
if (open(my $fh,"<","$target.subscription")) { |
while (my $subline=<$fh>) { |
while (my $subline=<$fh>) { |
if ($subline =~ /^($match_lonid):/) { |
if ($subline =~ /^($match_lonid):/) { |
my $host = $1; |
my $host = $1; |
Line 8122 sub modify_quotas {
|
Line 8133 sub modify_quotas {
|
#FIXME need to obsolete item in RES space |
#FIXME need to obsolete item in RES space |
} elsif ($env{'form.'.$type.'_image_'.$i.'.filename'}) { |
} elsif ($env{'form.'.$type.'_image_'.$i.'.filename'}) { |
my ($cdom,$cnum) = split(/_/,$key); |
my ($cdom,$cnum) = split(/_/,$key); |
my ($imgurl,$error) = &process_textbook_image($r,$dom,$confname,$type.'_image_'.$i, |
if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') { |
$cdom,$cnum,$type,$configuserok, |
$errors .= '<li><span class="LC_error">'.&mt('Image not saved: could not find textbook course').'</li>'; |
$switchserver,$author_ok); |
} else { |
if ($imgurl) { |
my ($imgurl,$error) = &process_textbook_image($r,$dom,$confname,$type.'_image_'.$i, |
$confhash{$type}{$key}{'image'} = $imgurl; |
$cdom,$cnum,$type,$configuserok, |
$changes{$type}{$key} = 1; |
$switchserver,$author_ok); |
} |
if ($imgurl) { |
if ($error) { |
$confhash{$type}{$key}{'image'} = $imgurl; |
&Apache::lonnet::logthis($error); |
$changes{$type}{$key} = 1; |
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
} |
|
if ($error) { |
|
&Apache::lonnet::logthis($error); |
|
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
|
} |
} |
} |
} elsif ($domconfig{$action}{$type}{$key}{'image'}) { |
} elsif ($domconfig{$action}{$type}{$key}{'image'}) { |
$confhash{$type}{$key}{'image'} = |
$confhash{$type}{$key}{'image'} = |
Line 8165 sub modify_quotas {
|
Line 8180 sub modify_quotas {
|
if ($type eq 'textbooks') { |
if ($type eq 'textbooks') { |
if ($env{'form.'.$type.'_addbook_image.filename'} ne '') { |
if ($env{'form.'.$type.'_addbook_image.filename'} ne '') { |
my ($cdom,$cnum) = split(/_/,$newbook{$type}); |
my ($cdom,$cnum) = split(/_/,$newbook{$type}); |
my ($imageurl,$error) = |
if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') { |
&process_textbook_image($r,$dom,$confname,$type.'_addbook_image',$cdom,$cnum,$type, |
$errors .= '<li><span class="LC_error">'.&mt('Image not saved: could not find textbook course').'</li>'; |
$configuserok,$switchserver,$author_ok); |
} else { |
if ($imageurl) { |
my ($imageurl,$error) = |
$confhash{$type}{$newbook{$type}}{'image'} = $imageurl; |
&process_textbook_image($r,$dom,$confname,$type.'_addbook_image',$cdom,$cnum,$type, |
} |
$configuserok,$switchserver,$author_ok); |
if ($error) { |
if ($imageurl) { |
&Apache::lonnet::logthis($error); |
$confhash{$type}{$newbook{$type}}{'image'} = $imageurl; |
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
} |
|
if ($error) { |
|
&Apache::lonnet::logthis($error); |
|
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
|
} |
} |
} |
} |
} |
} |
} |
Line 8665 sub process_textbook_image {
|
Line 8684 sub process_textbook_image {
|
} elsif ($author_ok eq 'ok') { |
} elsif ($author_ok eq 'ok') { |
my ($result,$imageurl) = |
my ($result,$imageurl) = |
&publishlogo($r,'upload',$caller,$dom,$confname, |
&publishlogo($r,'upload',$caller,$dom,$confname, |
"$type/$dom/$cnum/cover",$width,$height); |
"$type/$cdom/$cnum/cover",$width,$height); |
if ($result eq 'ok') { |
if ($result eq 'ok') { |
$url = $imageurl; |
$url = $imageurl; |
} else { |
} else { |