Copyright/Distribution |
-$content{'copyright'}
+sub prettyinput {
+ my ($type,$value,$fieldname,$formname,
+ $relatedsearchflag,$relatedsep,$relatedvalue,$size,$course_key)=@_;
+ if (! defined($size)) {
+ $size = 80;
+ }
+ my $output;
+ if (defined($course_key)) {
+ my $stu_add;
+ my $only_one;
+ my %meta_options;
+ my @cur_values_inst;
+ my $cur_values_stu;
+ my $values = $env{$course_key.'.metadata.'.$type.'.values'};
+ if ($env{$course_key.'.metadata.'.$type.'.options'} =~ m/stuadd/) {
+ $stu_add = 'true';
+ }
+ if ($env{$course_key.'.metadata.'.$type.'.options'} =~ m/onlyone/) {
+ $only_one = 'true';
+ }
+ # need to take instructor values out of list where instructor and student
+ # values may be mixed.
+ if ($values && $stu_add) {
+ foreach my $item (split(/,/,$values)) {
+ $item =~ s/^\s+//;
+ $meta_options{$item} = $type;
+ }
+ foreach my $item (split(/,/,$value)) {
+ $item =~ s/^\s+//;
+ if ($meta_options{$item}) {
+ push(@cur_values_inst,$item);
+ } else {
+ $cur_values_stu .= $item.',';
+ }
+ }
+ } else {
+ $cur_values_stu = $value;
+ }
+ if ($type eq 'courserestricted') {
+ return ('');
+ }
+ if (($type eq 'keywords') || ($type eq 'subject')
+ || ($type eq 'author')||($type eq 'notes')
+ || ($type eq 'abstract')|| ($type eq 'title')) {
+ if ($values) {
+ if ($only_one) {
+ $output .= (&Apache::loncommon::select_form($value,'new_'.$type,%meta_options));
+ } else {
+ $output .= (&Apache::loncommon::multiple_select_form('new_'.$type,\@cur_values_inst,undef,\%meta_options));
+ }
+ }
+ if ($stu_add) {
+ $output .= ''.
+ &relatedfield(1,$relatedsearchflag,$relatedsep,$fieldname,
+ $relatedvalue);
+ }
+ return ($output);
+ }
+ if (($type eq 'lowestgradelevel') ||
+ ($type eq 'highestgradelevel')) {
+ return &Apache::loncommon::select_level_form($value,$fieldname).
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ return();
+ }
+ # Language
+ if ($type eq 'language') {
+ return &selectbox($fieldname,
+ $value,
+ \&Apache::loncommon::languagedescription,
+ (&Apache::loncommon::languageids)).
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ # Copyright
+ if ($type eq 'copyright') {
+ return &selectbox($fieldname,
+ $value,
+ \&Apache::loncommon::copyrightdescription,
+ (&Apache::loncommon::copyrightids)).
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ # Source Copyright
+ if ($type eq 'sourceavail') {
+ return &selectbox($fieldname,
+ $value,
+ \&Apache::loncommon::source_copyrightdescription,
+ (&Apache::loncommon::source_copyrightids)).
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ # Gradelevels
+ if (($type eq 'lowestgradelevel') ||
+ ($type eq 'highestgradelevel')) {
+ return &Apache::loncommon::select_level_form($value,$fieldname).
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ # Obsolete
+ if ($type eq 'obsolete') {
+ return ''.
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ # Obsolete replacement file
+ if ($type eq 'obsoletereplacement') {
+ return '".&mt('Select').''.
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ # Customdistribution file
+ if ($type eq 'customdistributionfile') {
+ return '".&mt('Select').''.
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ # Source Customdistribution file
+ if ($type eq 'sourcerights') {
+ return '".&mt('Select').''.
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ # Dates
+ if (($type eq 'creationdate') ||
+ ($type eq 'lastrevisiondate')) {
+ return
+ &Apache::lonhtmlcommon::date_setter($formname,$fieldname,$value).
+ &relatedfield(0,$relatedsearchflag,$relatedsep);
+ }
+ # No pretty input found
+ $value=~s/^\s+//gs;
+ $value=~s/\s+$//gs;
+ $value=~s/\s+/ /gs;
+ $value=~s/\"/\"\;/gs;
+ return
+ ''.
+ &relatedfield(1,$relatedsearchflag,$relatedsep,$fieldname,
+ $relatedvalue);
+}
+
+# Main Handler
+sub handler {
+ my $r=shift;
+ #
+ my $uri=$r->uri;
+ #
+ # Set document type
+ &Apache::loncommon::content_type($r,'text/html');
+ $r->send_http_header;
+ return OK if $r->header_only;
+ #
+ my ($resdomain,$resuser)=
+ (&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//);
+ my $html=&Apache::lonxml::xmlbegin();
+ $r->print($html.''.
+ 'Catalog Information'.
+ '');
+ if ($uri=~m:/adm/bombs/(.*)$:) {
+ $r->print(&Apache::loncommon::bodytag('Error Messages'));
+ # Looking for all bombs?
+ &report_bombs($r,$uri);
+ } elsif ($uri=~/\/portfolio\//) {
+ ($resdomain,$resuser)=
+ (&Apache::lonnet::declutter($uri)=~m|^(\w+)/(\w+)/portfolio|);
+ $r->print(&Apache::loncommon::bodytag
+ ('Edit Portfolio File Information','','','',$resdomain));
+ &present_editable_metadata($r,$uri,'portfolio');
+ &select_course($r);
+ } elsif ($uri=~/^\/\~/) {
+ # Construction space
+ $r->print(&Apache::loncommon::bodytag
+ ('Edit Catalog Information','','','',$resdomain));
+ &present_editable_metadata($r,$uri);
+ } else {
+ $r->print(&Apache::loncommon::bodytag
+ ('Catalog Information','','','',$resdomain));
+ &present_uneditable_metadata($r,$uri);
+ }
+ $r->print(' |