Diff for /loncom/interface/lonmeta.pm between versions 1.96 and 1.107

version 1.96, 2005/04/07 06:56:23 version 1.107, 2005/08/25 20:46:32
Line 17 Line 17
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.  # GNU General Public License for more details.
 #  #
 # You should have received a copy of the GNU General Public License  # You should have received a copy of the GNU General Public License 
 # along with LON-CAPA; if not, write to the Free Software  # along with LON-CAPA; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 #  #
Line 33  use LONCAPA::lonmetadata(); Line 33  use LONCAPA::lonmetadata();
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon(); 
 use Apache::lonmsg;  use Apache::lonmsg;
 use Apache::lonpublisher;  use Apache::lonpublisher;
 use Apache::lonlocal;  use Apache::lonlocal;
Line 288  sub fieldnames { Line 288  sub fieldnames {
     return &Apache::lonlocal::texthash(%fields);      return &Apache::lonlocal::texthash(%fields);
 }  }
   
   sub select_course {
       my ($r)=@_;
       $r->print('<h3>Instructor Selected Meta-Data</h3><br />');
       $r->print('<form action="" method="post">');
       $r->print('Select your course<br />');
       $r->print('<select name="metacourse" >');
       my $meta_not_found = 1;
       foreach my $key (keys %env) {        
           if ($key =~ /\.metadata\./) {
               if ($meta_not_found) {
                   undef($meta_not_found);
                   $r->print('<h3>Instructor Selected Meta-Data</h3><br />');
                   $r->print('<form action="" method="post">');
                   $r->print('Select your course<br />');
                   $r->print('<select name="metacourse" >');
               }
               my $course_key = $key;
               $course_key =~ s/\.metadata\..*//;
               $r->print('<option value="'.$course_key.'">');
               $r->print($env{$course_key.'.description'});
               $r->print('</option>');
           }
       }
       unless ($meta_not_found) {
           $r->print('</select><br />');
           $r->print('<input type="submit" value="Assign Instructor Metadata" />');
           $r->print('</form>');
       }
       return 'ok';
   }
 # Pretty printing of metadata field  # Pretty printing of metadata field
   
 sub prettyprint {  sub prettyprint {
Line 548  sub handler { Line 578  sub handler {
         $r->print(&Apache::loncommon::bodytag          $r->print(&Apache::loncommon::bodytag
           ('Edit Portfolio File Information','','','',$resdomain));            ('Edit Portfolio File Information','','','',$resdomain));
         &present_editable_metadata($r,$uri,'portfolio');          &present_editable_metadata($r,$uri,'portfolio');
                   &select_course($r);
     } elsif ($uri=~/^\/\~/) {       } elsif ($uri=~/^\/\~/) { 
         # Construction space          # Construction space
         $r->print(&Apache::loncommon::bodytag          $r->print(&Apache::loncommon::bodytag
Line 578  sub report_bombs { Line 608  sub report_bombs {
     $r->print('<h1>'.&Apache::lonnet::clutter($uri).'</h1>');      $r->print('<h1>'.&Apache::lonnet::clutter($uri).'</h1>');
     my ($domain,$author)=($uri=~/^(\w+)\/(\w+)\//);      my ($domain,$author)=($uri=~/^(\w+)\/(\w+)\//);
     if (&Apache::loncacc::constructaccess('/~'.$author.'/',$domain)) {      if (&Apache::loncacc::constructaccess('/~'.$author.'/',$domain)) {
    if ($env{'form.clearbombs'}) {
       &Apache::lonmsg::clear_author_res_msg($uri);
    }
           my $clear=&mt('Clear all Messages in Subdirectory');
    $r->print(<<ENDCLEAR);
   <form method="post">
   <input type="submit" name="clearbombs" value="$clear" />
   </form>
   ENDCLEAR
         my %brokenurls =           my %brokenurls = 
             &Apache::lonmsg::all_url_author_res_msg($author,$domain);              &Apache::lonmsg::all_url_author_res_msg($author,$domain);
         foreach (sort(keys(%brokenurls))) {          foreach (sort(keys(%brokenurls))) {
Line 874  sub print_dynamic_metadata { Line 913  sub print_dynamic_metadata {
     return;      return;
 }  }
   
   
   
 #####################################################  #####################################################
 #####################################################  #####################################################
 ###                                               ###  ###                                               ###
Line 894  sub present_editable_metadata { Line 935  sub present_editable_metadata {
     $target=~s/\.meta$//;      $target=~s/\.meta$//;
     my $bombs=&Apache::lonmsg::retrieve_author_res_msg($target);      my $bombs=&Apache::lonmsg::retrieve_author_res_msg($target);
     if ($bombs) {      if ($bombs) {
           my $showdel=1;
         if ($env{'form.delmsg'}) {          if ($env{'form.delmsg'}) {
             if (&Apache::lonmsg::del_url_author_res_msg($target) eq 'ok') {              if (&Apache::lonmsg::del_url_author_res_msg($target) eq 'ok') {
                 $bombs=&mt('Messages deleted.');                  $bombs=&mt('Messages deleted.');
    $showdel=0;
             } else {              } else {
                 $bombs=&mt('Error deleting messages');                  $bombs=&mt('Error deleting messages');
             }              }
         }          }
         my $del=&mt('Delete Messages');          if ($env{'form.clearmsg'}) {
       my $cleardir=$target;
       $cleardir=~s/\/[^\/]+$/\//;
               if (&Apache::lonmsg::clear_author_res_msg($cleardir) eq 'ok') {
                   $bombs=&mt('Messages cleared.');
    $showdel=0;
               } else {
                   $bombs=&mt('Error clearing messages');
               }
           }
           my $del=&mt('Delete Messages for this Resource');
    my $clear=&mt('Clear all Messages in Subdirectory');
    my $goback=&mt('Back to Source File');
         $r->print(<<ENDBOMBS);          $r->print(<<ENDBOMBS);
 <h1>$disuri</h1>  <h1>$disuri</h1>
 <form method="post" name="defaultmeta">  <form method="post" name="defaultmeta">
 <input type="submit" name="delmsg" value="$del" />  
 <br />$bombs  
 ENDBOMBS  ENDBOMBS
           if ($showdel) {
       $r->print(<<ENDDEL);
   <input type="submit" name="delmsg" value="$del" />
   <input type="submit" name="clearmsg" value="$clear" />
   ENDDEL
           } else {
               $r->print('<a href="'.$disuri.'" />'.$goback.'</a>');
    }
    $r->print('<br />'.$bombs);
     } else {      } else {
         my $displayfile='Catalog Information for '.$disuri;          my $displayfile='Catalog Information for '.$disuri;
         if ($disuri=~/\/default$/) {          if ($disuri=~/\/default$/) {
Line 921  ENDBOMBS Line 983  ENDBOMBS
         %Apache::lonpublisher::metadatakeys=();          %Apache::lonpublisher::metadatakeys=();
         my $result=&Apache::lonnet::getfile($fn);          my $result=&Apache::lonnet::getfile($fn);
         if ($result == -1){          if ($result == -1){
             $r->print('Unable to get '.$fn);              $r->print('Creating new '.$fn);
             return ;  
         } else {          } else {
             &Apache::lonpublisher::metaeval($result);              &Apache::lonpublisher::metaeval($result);
         }          }
Line 959  ENDEDIT Line 1020  ENDEDIT
                       &prettyinput($_,                        &prettyinput($_,
    $Apache::lonpublisher::metadatafields{$_},     $Apache::lonpublisher::metadatafields{$_},
    'new_'.$_,'defaultmeta').'</p>');     'new_'.$_,'defaultmeta').'</p>');
               if ($env{'form.metacourse'}) {
      
       $r->print('This is the instructor metadata area<br />');
       my @keywords = sort(split /, /,$env{$env{'form.metacourse'}.'.metadata.keywords'});
       $r->print($env{'form.metacourse'}.'<br />');
       $r->print('<form method="post" action="" size="3" >');
       foreach my $word (@keywords) {
           my $checked;
           if ($Apache::lonpublisher::metadatafields{'coursekeyword'}=~ m/$word/) {
               $checked = 1;
           } else {
               undef($checked);
           }
           $r->print(&Apache::lonhtmlcommon::checkbox('keywords',$checked,$word).$word.'<br />');
       }
       $r->print('<br /><input type="submit" name="store" value="Assign Meta-data" />');
       $r->print('</form>');
       return 'ok';
               }
         }          }
         if ($env{'form.store'}) {          if ($env{'form.store'}) {
             my $mfh;              my $mfh;
             my $formname='store';              my $formname='store'; 
             my $file_content;              my $file_content;
               if (&Apache::loncommon::get_env_multiple('form.keywords')) {
               $Apache::lonpublisher::metadatafields{'coursekeyword'} = 
                           join (', ', &Apache::loncommon::get_env_multiple('form.keywords'));
               }
             foreach (sort keys %Apache::lonpublisher::metadatafields) {              foreach (sort keys %Apache::lonpublisher::metadatafields) {
                 next if ($_ =~ /\./);                  next if ($_ =~ /\./);
                 my $unikey=$_;                  my $unikey=$_;
Line 1025  ENDEDIT Line 1109  ENDEDIT
   
 1;  1;
 __END__  __END__
   
        

Removed from v.1.96  
changed lines
  Added in v.1.107


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>