--- loncom/interface/lonmeta.pm 2005/05/09 01:51:44 1.97
+++ loncom/interface/lonmeta.pm 2005/08/27 23:25:18 1.108
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Metadata display handler
#
-# $Id: lonmeta.pm,v 1.97 2005/05/09 01:51:44 banghart Exp $
+# $Id: lonmeta.pm,v 1.108 2005/08/27 23:25:18 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -17,7 +17,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# 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
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
@@ -33,7 +33,7 @@ use LONCAPA::lonmetadata();
use Apache::Constants qw(:common);
use Apache::lonnet;
use Apache::loncommon();
-use Apache::lonhtmlcommon();
+use Apache::lonhtmlcommon();
use Apache::lonmsg;
use Apache::lonpublisher;
use Apache::lonlocal;
@@ -288,6 +288,36 @@ sub fieldnames {
return &Apache::lonlocal::texthash(%fields);
}
+sub select_course {
+ my ($r)=@_;
+ $r->print('
Instructor Selected Meta-Data
');
+ $r->print('
+ENDCLEAR
my %brokenurls =
&Apache::lonmsg::all_url_author_res_msg($author,$domain);
foreach (sort(keys(%brokenurls))) {
@@ -874,6 +913,8 @@ sub print_dynamic_metadata {
return;
}
+
+
#####################################################
#####################################################
### ###
@@ -894,20 +935,41 @@ sub present_editable_metadata {
$target=~s/\.meta$//;
my $bombs=&Apache::lonmsg::retrieve_author_res_msg($target);
if ($bombs) {
+ my $showdel=1;
if ($env{'form.delmsg'}) {
if (&Apache::lonmsg::del_url_author_res_msg($target) eq 'ok') {
$bombs=&mt('Messages deleted.');
+ $showdel=0;
} else {
$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(<$disuri
-
- $bombs
ENDBOMBS
+ if ($showdel) {
+ $r->print(<
+
+ENDDEL
+ } else {
+ $r->print(''.$goback.'');
+ }
+ $r->print(' '.$bombs);
} else {
my $displayfile='Catalog Information for '.$disuri;
if ($disuri=~/\/default$/) {
@@ -958,11 +1020,51 @@ ENDEDIT
&prettyinput($_,
$Apache::lonpublisher::metadatafields{$_},
'new_'.$_,'defaultmeta').'');
+ if ($env{'form.metacourse'}) {
+ $r->print('This is the instructor metadata area ');
+ # have to find all the metadata items, so we'll loop through and find them
+ $r->print('
');
+ $r->print('The course is: '.$env{'form.metacourse'}.' ');
+ foreach my $key (sort keys %env) {
+ if ($key=~m/^($env{'form.metacourse'}\.metadata\.)(\d+)\.title/) {
+ my $key_base = $1;
+ my $item_num = $2;
+ # found one, so let's display it
+ my $title = $env{$key_base.$item_num.'.title'};
+ my $type = $env{$key_base.$item_num.'.type'};
+ my @choices = sort(split /, /,$env{$key_base.$item_num.'.values'});
+ $r->print($title.' ');
+ $r->print($type.' ');
+
+ foreach my $word (@choices) {
+ my $checked;
+ if ($Apache::lonpublisher::metadatafields{'coursekeyword'}=~ m/$word/) {
+ $checked = 1;
+ } else {
+ undef($checked);
+ }
+ $r->print(&Apache::lonhtmlcommon::checkbox('instmeta_'.$env{'form.metacourse'}.'_'.$item_num,$checked,$word).$word.' ');
+ }
+ }
+ }
+ $r->print(' ');
+ $r->print('
');
+ return 'ok';
+ }
}
if ($env{'form.store'}) {
my $mfh;
- my $formname='store';
+ my $formname='store';
my $file_content;
+ foreach my $meta_field (keys %env) {
+ if ($meta_field=~m/^form.instmeta_(.+)_(\d+)$/) {
+ $r->print('Found a field ');
+ }
+ 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) {
next if ($_ =~ /\./);
my $unikey=$_;
@@ -1025,4 +1127,4 @@ ENDEDIT
1;
__END__
-
\ No newline at end of file
+