[LON-CAPA-cvs] cvs: loncom /interface lonparmset.pm

banghart lon-capa-cvs@mail.lon-capa.org
Wed, 27 Sep 2006 23:30:14 -0000


banghart		Wed Sep 27 19:30:14 2006 EDT

  Modified files:              
    /loncom/interface	lonparmset.pm 
  Log:
  	Allow instructor to mark added metadata fields as deleted.
  
  
Index: loncom/interface/lonparmset.pm
diff -u loncom/interface/lonparmset.pm:1.336 loncom/interface/lonparmset.pm:1.337
--- loncom/interface/lonparmset.pm:1.336	Mon Sep 25 15:29:56 2006
+++ loncom/interface/lonparmset.pm	Wed Sep 27 19:30:12 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler to set parameters for assessments
 #
-# $Id: lonparmset.pm,v 1.336 2006/09/25 19:29:56 albertel Exp $
+# $Id: lonparmset.pm,v 1.337 2006/09/27 23:30:12 banghart Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -3188,25 +3188,30 @@
 }
 ### Set portfolio metadata
 sub output_row {
-    my ($r, $field_name, $field_text) = @_;
+    my ($r, $field_name, $field_text, $added_flag) = @_;
     my $output;
     my $options=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.options'};
     my $values=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.values'};
-    unless (defined($options)) {
+    if (!defined($options)) {
         $options = 'active,stuadd';
         $values = '';
     }
-    $output.='<strong>'.$field_text.':</strong>';
-    $output.='<input name="'.$field_name.'_values" type="text" value="'.$values.'" size="80" /><br />';
+    if (!($options =~ /deleted/)) {
+        $output.='<strong>'.$field_text.':</strong>';
+        $output.='<input name="'.$field_name.'_values" type="text" value="'.$values.'" size="80" /><br />';
 
-    my @options= ( ['active', 'Show to student'],
+        my @options= ( ['active', 'Show to student'],
 		   ['onlyone','Student may select only one choice'],
 		   ['stuadd', 'Student may type choices']);
-    foreach my $opt (@options) {
-	my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ;
-	$output.=('&nbsp;'x5).'<label><input type="checkbox" name="'.
-	    $field_name.'_'.$opt->[0].'" value="yes"'.$checked.' />'.
-	    &mt($opt->[1]).'</label> <br />';
+        if ($added_flag) {
+            push @options,['deleted', 'Delete Metadata Field'];
+        }
+        foreach my $opt (@options) {
+	    my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ;
+	    $output.=('&nbsp;'x5).'<label><input type="checkbox" name="'.
+	        $field_name.'_'.$opt->[0].'" value="yes"'.$checked.' />'.
+	        &mt($opt->[1]).'</label> <br />';
+	}
     }
     return ($output);
 }
@@ -3261,6 +3266,10 @@
             	    if ($env{'form.'.$meta_field.'_active'}) {
             	        $options.='active,';
             	    }
+            	    if ($env{'form.'.$meta_field.'_deleted'}) {
+            	        $options.='deleted,';
+            	    }
+            	    
                     my $name = $save_field;
                      $put_result = &Apache::lonnet::put('environment',
                                                   {'metadata.'.$meta_field.'.options'=>$options,
@@ -3281,8 +3290,9 @@
 	    $output.= &output_row($r, $field, $metadata_fields{$field});
 	}
     }
+    my $added_flag = 1;
     foreach my $field (sort(keys(%$added_metadata_fields))) {
-        $output.= &output_row($r, $field, $$added_metadata_fields{$field});
+        $output.= &output_row($r, $field, $$added_metadata_fields{$field},$added_flag);
     }
     $r->print(<<ENDenv);       
         <form method="post" action="/adm/parmset?action=setrestrictmeta" name="form">