--- loncom/interface/loncommon.pm 2008/07/06 05:01:52 1.664
+++ loncom/interface/loncommon.pm 2008/07/23 10:07:25 1.672
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.664 2008/07/06 05:01:52 raeburn Exp $
+# $Id: loncommon.pm,v 1.672 2008/07/23 10:07:25 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -878,7 +878,7 @@ sub help_open_topic {
# Add the graphic
my $title = &mt('Online Help');
- my $helpicon=&lonhttpdurl("/res/adm/pages/help.png");
+ my $helpicon=&lonhttpdurl("/adm/help/help.png");
$template .= <<"ENDTEMPLATE";
ENDTEMPLATE
@@ -913,6 +913,8 @@ sub general_help {
$helptopic='Authoring_Intro';
} elsif ($env{'request.role'}=~/^cc/) {
$helptopic='Course_Coordination_Intro';
+ } elsif ($env{'request.role'}=~/^dc/) {
+ $helptopic='Domain_Coordination_Intro';
}
return $helptopic;
}
@@ -4569,6 +4571,10 @@ td.LC_menubuttons_img {
text-align: right;
}
+.LC_roleslog_note {
+ font-size: smaller;
+}
+
table.LC_aboutme_port {
border: 0px;
border-collapse: collapse;
@@ -6806,6 +6812,10 @@ sub instrule_disallow_msg {
} elsif ($checkitem eq 'id') {
$response .= &mt("Either upload a file which includes $text{'action'} with a different format -- $text{'one'} that will not conflict with 'official' institutional $text{'items'}, or when associating fields with data columns, omit an association for the ID/Student Number field.");
}
+ } elsif ($mode eq 'selfcreate') {
+ if ($checkitem eq 'id') {
+ $response .= &mt("You must either choose $text{'action'} with a different format -- $text{'one'} that will not conflict with 'official' institutional $text{'items'}, or leave the ID field blank.");
+ }
} else {
if ($checkitem eq 'username') {
$response .= &mt("You must choose $text{'action'} with a different format -- $text{'one'} that will not conflict with 'official' institutional $text{'items'}.");
@@ -6834,7 +6844,7 @@ sub sorted_inst_types {
my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);
my $othertitle = &mt('All users');
if ($env{'request.course.id'}) {
- $othertitle = 'any';
+ $othertitle = &mt('Any users');
}
my @types;
if (ref($order) eq 'ARRAY') {
@@ -6847,9 +6857,6 @@ sub sorted_inst_types {
}
if (keys(%{$usertypes}) > 0) {
$othertitle = &mt('Other users');
- if ($env{'request.course.id'}) {
- $othertitle = 'other';
- }
}
return ($othertitle,$usertypes,\@types);
}
@@ -7238,7 +7245,6 @@ sub check_for_upload {
}
}
}
- my $getpropath = 1;
if (($current_disk_usage + $filesize) > $disk_quota){
my $msg = ''.
&mt('Unable to upload [_1]. (size = [_2] kilobytes). Disk quota will be exceeded.',''.$fname.'',$filesize).''.
@@ -8340,6 +8346,9 @@ idx (reference to hash of counters used
jsarray (reference to array of categories used to create Javascript arrays for
Domain Coordinator interface for editing Course Categories).
+subcats (reference to hash of arrays containing all subcategories within each
+ category, -recursive)
+
Returns: nothing
Side effects: populates trails and allitems hash references.
@@ -8347,7 +8356,7 @@ Side effects: populates trails and allit
=cut
sub extract_categories {
- my ($categories,$cats,$trails,$allitems,$idx,$jsarray) = @_;
+ my ($categories,$cats,$trails,$allitems,$idx,$jsarray,$subcats) = @_;
if (ref($categories) eq 'HASH') {
&gather_categories($categories,$cats,$idx,$jsarray);
if (ref($cats->[0]) eq 'ARRAY') {
@@ -8368,7 +8377,14 @@ sub extract_categories {
if (ref($cats->[1]{$name}) eq 'ARRAY') {
for (my $j=0; $j<@{$cats->[1]{$name}}; $j++) {
my $category = $cats->[1]{$name}[$j];
- &recurse_categories($cats,2,$category,$trails,$allitems,\@parents);
+ if (ref($subcats) eq 'HASH') {
+ push(@{$subcats->{$item}},&escape($category).':'.&escape($name).':1');
+ }
+ &recurse_categories($cats,2,$category,$trails,$allitems,\@parents,$subcats);
+ }
+ } else {
+ if (ref($subcats) eq 'HASH') {
+ $subcats->{$item} = [];
}
}
}
@@ -8407,7 +8423,7 @@ Side effects: populates trails and allit
=cut
sub recurse_categories {
- my ($cats,$depth,$category,$trails,$allitems,$parents) = @_;
+ my ($cats,$depth,$category,$trails,$allitems,$parents,$subcats) = @_;
my $shallower = $depth - 1;
if (ref($cats->[$depth]{$category}) eq 'ARRAY') {
for (my $k=0; $k<@{$cats->[$depth]{$category}}; $k++) {
@@ -8420,7 +8436,21 @@ sub recurse_categories {
}
my $deeper = $depth+1;
push(@{$parents},$category);
- &recurse_categories($cats,$deeper,$name,$trails,$allitems,$parents);
+ if (ref($subcats) eq 'HASH') {
+ my $subcat = &escape($name).':'.$category.':'.$depth;
+ for (my $j=@{$parents}; $j>=0; $j--) {
+ my $higher;
+ if ($j > 0) {
+ $higher = &escape($parents->[$j]).':'.
+ &escape($parents->[$j-1]).':'.$j;
+ } else {
+ $higher = &escape($parents->[$j]).'::'.$j;
+ }
+ push(@{$subcats->{$higher}},$subcat);
+ }
+ }
+ &recurse_categories($cats,$deeper,$name,$trails,$allitems,$parents,
+ $subcats);
pop(@{$parents});
}
} else {
@@ -8480,7 +8510,7 @@ sub assign_categories_table {
}
$output .= '