';
foreach my $id (@idlist) {
- $selout.=''.&{$functionref}($id).' ';
} else {
@@ -578,11 +585,11 @@ sub relatedfield {
return $relatedsep.' ';
}
return $relatedsep.' ';
+ ($relatedvalue?' checked="checked"':'').' id="'.$fieldname.'_related" />';
}
sub prettyinput {
- my ($type,$value,$fieldname,$formname,
+ my ($type,$value,$readonly,$fieldname,$formname,
$relatedsearchflag,$relatedsep,$relatedvalue,$size,$course_key)=@_;
if (! defined($size)) {
$size = 80;
@@ -653,7 +660,7 @@ sub prettyinput {
}
if (($type eq 'lowestgradelevel') ||
($type eq 'highestgradelevel')) {
- return &Apache::loncommon::select_level_form($value,$fieldname).
+ return &Apache::loncommon::select_level_form($value,$fieldname,$fieldname).
&relatedfield(0,$relatedsearchflag,$relatedsep);
}
return();
@@ -661,7 +668,7 @@ sub prettyinput {
# Language
if ($type eq 'language') {
return &selectbox($fieldname,
- $value,
+ $value,'',$fieldname,
\&Apache::loncommon::languagedescription,
(&Apache::loncommon::languageids)).
&relatedfield(0,$relatedsearchflag,$relatedsep);
@@ -669,7 +676,7 @@ sub prettyinput {
# Copyright
if ($type eq 'copyright') {
return &selectbox($fieldname,
- $value,
+ $value,$readonly,$fieldname,
\&Apache::loncommon::copyrightdescription,
(&Apache::loncommon::copyrightids)).
&relatedfield(0,$relatedsearchflag,$relatedsep);
@@ -677,7 +684,7 @@ sub prettyinput {
# Source Copyright
if ($type eq 'sourceavail') {
return &selectbox($fieldname,
- $value,
+ $value,'',$fieldname,
\&Apache::loncommon::source_copyrightdescription,
(&Apache::loncommon::source_copyrightids)).
&relatedfield(0,$relatedsearchflag,$relatedsep);
@@ -685,35 +692,44 @@ sub prettyinput {
# Gradelevels
if (($type eq 'lowestgradelevel') ||
($type eq 'highestgradelevel')) {
- return &Apache::loncommon::select_level_form($value,$fieldname).
+ return &Apache::loncommon::select_level_form($value,$fieldname,$fieldname).
&relatedfield(0,$relatedsearchflag,$relatedsep);
}
# Obsolete
if ($type eq 'obsolete') {
return ' '.
+ ($value?' checked="checked"':'').' id="'.$fieldname.'" />'.
&relatedfield(0,$relatedsearchflag,$relatedsep);
}
# Obsolete replacement file
if ($type eq 'obsoletereplacement') {
return '".&mt('Select').' '.
- &relatedfield(0,$relatedsearchflag,$relatedsep);
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
}
# Customdistribution file
if ($type eq 'customdistributionfile') {
- return '".&mt('Select').' '.
- &relatedfield(0,$relatedsearchflag,$relatedsep);
+ my $disabled;
+ if ($readonly) {
+ $disabled = ' disabled="disabled"';
+ }
+ my $output;
+ $output = ' ';
+ unless ($readonly) {
+ $output .= '".&mt('Select').' ';
+ }
+ $output .= &relatedfield(0,$relatedsearchflag,$relatedsep);
+ return $output;
}
# Source Customdistribution file
if ($type eq 'sourcerights') {
return '".&mt('Select').' '.
&relatedfield(0,$relatedsearchflag,$relatedsep);
@@ -737,9 +753,9 @@ sub prettyinput {
$value=~s/\"/\"\;/gs;
return
' '.
+ 'value="'.$value.'" id="'.$fieldname.'" />'.
&relatedfield(1,$relatedsearchflag,$relatedsep,$fieldname,
- $relatedvalue);
+ $relatedvalue);
}
# Create pageheader
@@ -763,7 +779,7 @@ sub pageheader {
sub handler {
my $r=shift;
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['currentpath','changecourse']);
+ ['currentpath','changecourse','modal']);
my $uri=$r->uri;
#
# Set document type
@@ -777,9 +793,18 @@ sub handler {
&Apache::lonhtmlcommon::clear_breadcrumbs();
if ($env{'request.state'} eq 'construct') {
+ my $text = 'Authoring Space';
+ my $href = &Apache::loncommon::authorspace($uri);
+ if ($env{'request.course.id'}) {
+ my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ if ($href eq "/priv/$cdom/$cnum/") {
+ $text = 'Course Authoring Space';
+ }
+ }
&Apache::lonhtmlcommon::add_breadcrumb({
- 'text' => 'Construction Space',
- 'href' => &Apache::loncommon::authorspace($uri),
+ 'text' => $text,
+ 'href' => $href,
});
}
@@ -829,7 +854,7 @@ sub handler {
$r->print(&pageheader());
&present_editable_metadata($r,$uri,'groups');
} elsif ($uri=~m|^/priv|) {
- # Construction space
+ # Authoring space
&Apache::lonhtmlcommon::add_breadcrumb({
'text' => 'Edit Metadata',
'href' => '',
@@ -854,7 +879,21 @@ sub handler {
'only_body' => 1,})
.''.&mt('Metadata').' '
);
+ if ($env{'form.modal'}) {
+ my $width = 500;
+ my $height = 400;
+ my $machine = &Apache::lonnet::absolute_url();
+ $r->print(&Apache::loncommon::nicescroll_javascript('metadatawrapper',
+ {cursorcolor => '#00F',
+ railalign => 'right',
+ railoffset => '{top:5,left:40}'},
+ undef,1,$machine.$uri));
+ $r->print('');
+ }
&present_uneditable_metadata($r,$uri);
+ if ($env{'form.modal'}) {
+ $r->print('
');
+ }
}
$r->print(&Apache::loncommon::end_page());
return OK;
@@ -872,7 +911,11 @@ sub report_bombs {
# Set document type
$uri =~ s:/adm/bombs/::;
$uri = &Apache::lonnet::declutter($uri);
- $r->print(''.&Apache::lonnet::clutter($uri).' ');
+ $r->print(
+ ''.&mt('Folder: [_1]',
+ ''.&Apache::lonnet::clutter($uri).' ')
+ .'
'
+ );
my ($domain,$author)=($uri=~/^($match_domain)\/($match_username)\//);
if (!&Apache::lonnet::constructaccess('/priv/'.$domain.'/'.$author.'/')) {
$r->print(''.&mt('Not authorized').'
');
@@ -965,7 +1008,7 @@ sub present_uneditable_metadata {
$currentversion :
&mt('information not available')).')';
} else {
- $versiondisplay='Version: '.$currentversion;
+ $versiondisplay=&mt('Version: [_1]',$currentversion);
}
}
# crumbify displayed URL uri target prefix form
@@ -983,7 +1026,7 @@ sub present_uneditable_metadata {
my $table='';
my $title = $content{'title'};
if (! defined($title)) {
- $title = 'Untitled Resource';
+ $title = &mt('Untitled Resource');
}
my @fields;
if ($uploaded) {
@@ -1118,6 +1161,7 @@ sub print_dynamic_metadata {
if (exists($dynmeta{'stats'})) {
my $table=&Apache::loncommon::start_data_table()
.&Apache::loncommon::start_data_table_header_row()
+ .''.&mt('Domain').' '
.''.&mt('Course').' '
.''.&mt('Section(s)').' '
.''.&mt('Num Students').' '
@@ -1138,6 +1182,8 @@ sub print_dynamic_metadata {
next;
}
$table .= &Apache::loncommon::start_data_table_row();
+ $table .=
+ ''.$courseinfo{'domain'}.' ';
$table .=
''.$courseinfo{'description'}.' ';
$table .=
@@ -1174,7 +1220,6 @@ sub print_dynamic_metadata {
&mt('No Assessment Statistical Data is available for this resource').
'');
}
-
#
# Evaluation Data
$r->print(''.&mt('Evaluation Data').' ');
@@ -1289,9 +1334,19 @@ sub print_dynamic_metadata {
#####################################################
sub present_editable_metadata {
my ($r,$uri,$file_type) = @_;
- # Construction Space Call
+ # Authoring Space Call
# Header
my $disuri=$uri;
+ my ($courseauthor,$crsaurights,$readonly);
+ if ($env{'request.course.id'}) {
+ my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ if ($uri =~ m{^\Q/priv/$cdom/$cnum/\E}) {
+ $courseauthor = $cnum.':'.$cdom;
+ $crsaurights = "/res/$cdom/$cnum/default.rights";
+ $readonly = 1;
+ }
+ }
my $fn=&Apache::lonnet::filelocation('',$uri);
$disuri=~s{^/\~}{/priv/};
$disuri=~s/\.meta$//;
@@ -1306,7 +1361,12 @@ sub present_editable_metadata {
my $bombs=&Apache::lonmsg::retrieve_author_res_msg($target);
if ($bombs) {
# Display Bombs, not Metadata
- $r->print("$disuri ");
+ $r->print(
+ ''.&mt('Error Messages').' '
+ .''.&mt('Folder: [_1]',
+ ''.$disuri.' ')
+ .'
'
+ );
my $showbuttons=1;
my $message='';
my $rc='';
@@ -1367,7 +1427,7 @@ sub present_editable_metadata {
# Display Metadata, not Bombs
my $displayfile =
&mt('Metadata for [_1]'
- ,'');
+ ,''.$disuri.' ');
if ($disuri=~/\/default$/) {
my $dir=$disuri;
$dir=~s/default$//;
@@ -1403,7 +1463,7 @@ sub present_editable_metadata {
}
}
$r->print(<$displayfile
+$displayfile