--- loncom/interface/loncommon.pm 2003/12/26 16:27:20 1.163
+++ loncom/interface/loncommon.pm 2004/01/02 19:23:47 1.169
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.163 2003/12/26 16:27:20 www Exp $
+# $Id: loncommon.pm,v 1.169 2004/01/02 19:23:47 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -726,11 +726,40 @@ sub get_domains {
my @domains;
my %seen;
foreach (sort values(%Apache::lonnet::hostdom)) {
- push (@domains,$_) unless $seen{$_}++;
+ push (@domains,$_) unless $seen{$_}++;
}
return @domains;
}
+# ------------------------------------------
+
+sub domain_select {
+ my ($name,$value,$multiple)=@_;
+ my %domains=map {
+ $_ => $_.' '.$Apache::lonnet::domaindescription{$_}
+ } &get_domains;
+ if ($multiple) {
+ $domains{''}=&mt('Any domain');
+ return &multiple_select_form($name,$value,%domains);
+ } else {
+ return &select_form($name,$value,%domains);
+ }
+}
+
+sub multiple_select_form {
+ my ($name,$value,%hash)=@_;
+ my %selected = map { $_ => 1 } ref($value)?@{$value}:($value);
+ my $output='';
+ my $size =(scalar keys %hash<4?scalar keys %hash:4);
+ $output.="\n\n";
+ return $output;
+}
+
#-------------------------------------------
=pod
@@ -762,30 +791,43 @@ sub select_form {
return $selectform;
}
+sub gradeleveldescription {
+ my $gradelevel=shift;
+ my %gradelevels=(0 => 'Not specified',
+ 1 => 'Grade 1',
+ 2 => 'Grade 2',
+ 3 => 'Grade 3',
+ 4 => 'Grade 4',
+ 5 => 'Grade 5',
+ 6 => 'Grade 6',
+ 7 => 'Grade 7',
+ 8 => 'Grade 8',
+ 9 => 'Grade 9',
+ 10 => 'Grade 10',
+ 11 => 'Grade 11',
+ 12 => 'Grade 12',
+ 13 => 'Grade 13',
+ 14 => '100 Level',
+ 15 => '200 Level',
+ 16 => '300 Level',
+ 17 => '400 Level',
+ 18 => 'Graduate Level');
+ return &mt($gradelevels{$gradelevel});
+}
+
sub select_level_form {
my ($deflevel,$name)=@_;
unless ($deflevel) { $deflevel=0; }
- return &select_form($deflevel,$name,(
- 0 => 'Not specified',
- 1 => 'Grade 1',
- 2 => 'Grade 2',
- 3 => 'Grade 3',
- 4 => 'Grade 4',
- 5 => 'Grade 5',
- 6 => 'Grade 6',
- 7 => 'Grade 7',
- 8 => 'Grade 8',
- 9 => 'Grade 9',
- 10 => 'Grade 10',
- 11 => 'Grade 11',
- 12 => 'Grade 12',
- 13 => 'Grade 13',
- 14 => '100 Level',
- 15 => '200 Level',
- 16 => '300 Level',
- 17 => '400 Level',
- 18 => 'Graduate Level'));
+ my $selectform = "";
+ return $selectform;
}
+
#-------------------------------------------
=pod
@@ -1010,10 +1052,25 @@ END
$Javascript_toUpperCase = "";
}
+ my $radioval = "'nochange'";
+ my $argfield = 'null';
+ if ( grep/^mode$/,(keys %in) ) {
+ if ($in{'mode'} eq 'modifycourse') {
+ if ( grep/^curr_authtype$/,(keys %in) ) {
+ $radioval = "'$in{'curr_authtype'}'";
+ }
+ if ( grep/^curr_autharg$/,(keys %in) ) {
+ unless ($in{'curr_autharg'} eq '') {
+ $argfield = "'$in{'curr_autharg'}'";
+ }
+ }
+ }
+ }
+
$result.=<<"END";
var current = new Object();
-current.radiovalue = 'nochange';
-current.argfield = null;
+current.radiovalue = $radioval;
+current.argfield = $argfield;
function changed_radio(choice,currentform) {
var choicearg = choice + 'arg';
@@ -1100,20 +1157,32 @@ sub authform_kerberos{
kerb_def_auth => 'krb4',
@_,
);
- my ($check4,$check5);
+ my ($check4,$check5,$krbarg);
if ($in{'kerb_def_auth'} eq 'krb5') {
$check5 = " checked=\"on\"";
} else {
$check4 = " checked=\"on\"";
}
+ $krbarg = $in{'kerb_def_dom'};
+
+ my $krbcheck = "";
+ if ( grep/^curr_authtype$/,(keys %in) ) {
+ if ($in{'curr_authtype'} =~ m/^krb/) {
+ $krbcheck = " checked=\"on\"";
+ if ( grep/^curr_autharg$/,(keys %in) ) {
+ $krbarg = $in{'curr_autharg'};
+ }
+ }
+ }
+
my $jscall = "javascript:changed_radio('krb',$in{'formname'});";
my $result .= &mt
('[_1] Kerberos authenticated with domain [_2] '.
'[_3] Version 4 [_4] Version 5',
'',
+ 'onclick="'.$jscall.'" onchange="'.$jscall.'"'.$krbcheck.' />',
'',
'',
'');
@@ -1126,13 +1195,25 @@ sub authform_internal{
kerb_def_dom => 'MSU.EDU',
@_,
);
+
+ my $intcheck = "";
+ my $intarg = 'value=""';
+ if ( grep/^curr_authtype$/,(keys %args) ) {
+ if ($args{'curr_authtype'} eq 'int') {
+ $intcheck = " checked=\"on\"";
+ if ( grep/^curr_autharg$/,(keys %args) ) {
+ $intarg = "value=\"$args{'curr_autharg'}\"";
+ }
+ }
+ }
+
my $jscall = "javascript:changed_radio('int',$args{'formname'});";
my $result.=&mt
('[_1] Internally authenticated (with initial password [_2])',
- '',
- '');
+ '',
+ '');
return $result;
}
@@ -1142,12 +1223,24 @@ sub authform_local{
kerb_def_dom => 'MSU.EDU',
@_,
);
+
+ my $loccheck = "";
+ my $locarg = 'value=""';
+ if ( grep/^curr_authtype$/,(keys %in) ) {
+ if ($in{'curr_authtype'} eq 'loc') {
+ $loccheck = " checked=\"on\"";
+ if ( grep/^curr_autharg$/,(keys %in) ) {
+ $locarg = "value=\"$in{'curr_autharg'}\"";
+ }
+ }
+ }
+
my $jscall = "javascript:changed_radio('loc',$in{'formname'});";
my $result.=&mt('[_1] Local Authentication with argument [_2]',
- '',
- '');
+ '',
+ '');
return $result;
}
@@ -1457,8 +1550,9 @@ sub noteswrapper {
# ------------------------------------------------------------- Aboutme Wrapper
sub aboutmewrapper {
- my ($link,$username,$domain)=@_;
- return "$link";
+ my ($link,$username,$domain,$target)=@_;
+ return "$link";
}
# ------------------------------------------------------------ Syllabus Wrapper
@@ -1536,7 +1630,7 @@ returns description of a specified copyr
=cut
sub copyrightdescription {
- return $cprtag{shift(@_)};
+ return &mt($cprtag{shift(@_)});
}
=pod
@@ -1576,6 +1670,14 @@ sub fileembstyle {
return $fe{lc(shift(@_))};
}
+
+sub filecategoryselect {
+ my ($name,$value)=@_;
+ return &select_form($name,$value,
+ '' => &mt('Any category'),
+ map { $_,$_ } sort(keys(%category_extensions)));
+}
+
=pod
=item * filedescription()
@@ -1585,7 +1687,7 @@ returns description for a specified file
=cut
sub filedescription {
- return $fd{lc(shift(@_))};
+ return &mt($fd{lc(shift(@_))});
}
=pod
@@ -1599,7 +1701,7 @@ extra formatting
sub filedescriptionex {
my $ex=shift;
- return '.'.$ex.' '.$fd{lc($ex)};
+ return '.'.$ex.' '.&mt($fd{lc($ex)});
}
# End of .tab access
@@ -1927,21 +2029,6 @@ sub maketime {
$th{'day'},$th{'month'}-1,$th{'year'}-1900,0,0,$th{'dlsav'}));
}
-
-#########################################
-#
-# Retro-fixing of un-backward-compatible time format
-
-sub unsqltime {
- my $timestamp=shift;
- if ($timestamp=~/^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/) {
- $timestamp=&maketime(
- 'year'=>$1,'month'=>$2,'day'=>$3,
- 'hours'=>$4,'minutes'=>$5,'seconds'=>$6);
- }
- return $timestamp;
-}
-
#########################################
sub findallcourses {
@@ -3234,14 +3321,18 @@ sub propath {
sub icon {
my ($file)=@_;
- my @file_ext = split(/\./,$file);
- my $curfext = $file_ext[-1];
- my $iconname="unknown.gif";
+ my $curfext = (split(/\./,$file))[-1];
+ my $iconname=$Apache::lonnet::perlvar{'lonIconsURL'}.'/unknown.gif';
my $embstyle = &Apache::loncommon::fileembstyle($curfext);
- # The unless conditional that follows is a bit of overkill
- $iconname = $curfext.".gif" unless
- (!defined($embstyle) || $embstyle eq 'unk' || $embstyle eq 'hdn');
- return $Apache::lonnet::perlvar{'lonIconsURL'}."/$iconname";
+ if (!(!defined($embstyle) || $embstyle eq 'unk' || $embstyle eq 'hdn')) {
+ if (-e $Apache::lonnet::perlvar{'lonDocRoot'}.'/'.
+ $Apache::lonnet::perlvar{'lonIconsURL'}.'/'.
+ $curfext.".gif") {
+ $iconname=$Apache::lonnet::perlvar{'lonIconsURL'}.'/'.
+ $curfext.".gif";
+ }
+ }
+ return $iconname;
}
=pod