--- loncom/interface/londocs.pm 2009/07/10 15:05:28 1.376 +++ loncom/interface/londocs.pm 2009/10/04 10:27:55 1.388 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.376 2009/07/10 15:05:28 bisitz Exp $ +# $Id: londocs.pm,v 1.388 2009/10/04 10:27:55 tempelho Exp $ # # Copyright Michigan State University Board of Trustees # @@ -35,6 +35,7 @@ use Apache::Constants qw(:common :http); use Apache::imsexport; use Apache::lonnet; use Apache::loncommon; +use Apache::lonhtmlcommon; use LONCAPA::map(); use Apache::lonratedt(); use Apache::lonxml; @@ -119,8 +120,8 @@ sub dumpbutton { my $type = &Apache::loncommon::course_type(); if ($home+$other==0) { return ''; } if ($home) { - return ''. + my $link = "".&mt('Dump '.$type.' DOCS to Construction Space').""; + return $link.' '. &Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs').'
'; } else { return '
'. @@ -262,8 +263,7 @@ sub dumpcourse { sub exportbutton { my $type = &Apache::loncommon::course_type(); - return ''. + return "".&mt('IMS Export')."". &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs').'
'; } @@ -277,7 +277,7 @@ sub exportcourse { my $numdisc = keys(%discussiontime); my $navmap = Apache::lonnavmaps::navmap->new(); if (!defined($navmap)) { - $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package'). + $r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package'). '

'.&mt('IMS Export Failed').'

'. '
'. &mt('Unable to retrieve information about course contents'). @@ -298,7 +298,17 @@ sub exportcourse { my @exportitems = &Apache::loncommon::get_env_multiple('form.archive'); my @discussions = &Apache::loncommon::get_env_multiple('form.discussion'); if (@exportitems == 0 && @discussions == 0) { - $outcome = '
As you did not select any content items or discussions for export, an IMS package has not been created. Please go back to select either content items or discussions for export'; + $outcome = + '

' + .&mt('As you did not select any content items or discussions' + .' for export, an IMS package has not been created.') + .'

' + .'

' + .&mt('Please [_1]go back[_2] to select either content items' + .' or discussions for export.' + ,'' + ,'') + .'

'; } else { my $now = time; my %symbs; @@ -321,22 +331,30 @@ sub exportcourse { open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); close(OUTPUT); chdir $cwd; - $outcome .= '

' - .&mt('Download the zip file from [_1]IMS '.lc($type).' archive[_2]' - ,'','') - .'

'; if ($copyresult) { $outcome .= '

' .&mt('The following errors occurred during export - [_1]' ,$copyresult) .'

'; } + $outcome .= '

' + .&mt('[_1]Your IMS package[_2] is ready for download.' + ,'','') + .'

'; } else { - $outcome = '
'.&mt('Unfortunately you will not be able to retrieve an IMS archive of this posts at this time, because there was a problem creating a manifest file.').'
'; + $outcome = '

' + .&mt('Unfortunately you will not be able to retrieve' + .' an IMS archive of this posts at this time,' + .' because there was a problem creating a' + .' manifest file.') + .'

' + .'

' + .&mt('Go Back') + .'

'; } } - $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package')); - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package')); + $r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export')); $r->print($outcome); $r->print(&Apache::loncommon::end_page()); } else { @@ -489,13 +507,13 @@ function containerCheck(item) { // ]]> |; - $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package', + $r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package', $scripttag)); - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export')); $r->print($display. '

'. '

'); + &mt('Export').'" />

'); } } @@ -1030,7 +1048,7 @@ sub breadcrumbs { } $plain=~s/\>\;\s*$//; return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', - 'LC_docs_path', undef, 1 ),$randompick,$ishidden,$isencrypted,$plain,$is_random_order); + undef, undef, 1 ),$randompick,$ishidden,$isencrypted,$plain,$is_random_order); } sub log_docs { @@ -1254,10 +1272,11 @@ sub print_paste_buffer { my ($r,$container) = @_; return if (!defined($env{'docs.markedcopy_url'})); - $r->print(<

-ENDPASTE - $r->print(' '); + $r->print('

' + .''.&mt('Clipboard').'' + .'
' + .' ' + ); my $type; if ($env{'docs.markedcopy_url'} =~ m{^(?:/adm/wrapper/ext|(?:http|https)(?::|:))//} ) { @@ -1271,7 +1290,7 @@ ENDPASTE if ($extension eq 'sequence' && $env{'docs.markedcopy_url'} =~ m{/default_\d+\.sequence$ }x) { $icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL')); - $icon .= '/folder_closed.gif'; + $icon .= '/navmap.folder.closed.gif'; } $icon = ''; $r->print($icon.$type.': '. &parse_supplemental_title(&LONCAPA::map::qtescape($env{'docs.markedcopy_title'}))); @@ -1286,7 +1305,7 @@ ENDPASTE '); } - $r->print('

'); + $r->print('
'); } sub do_paste_from_buffer { @@ -1569,34 +1588,67 @@ sub editor { my $idx=0; my $shown=0; if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) { - $r->print('

'.&mt('Parameters').':

    '. - ($randompick>=0?'
  • '.&mt('randomly pick [_1] resources',$randompick).'
  • ':''). + $r->print('
    '. + '

    '.&mt('Parameters:'). + '

      '. + ($randompick>=0?'
    • '.&mt('randomly pick [quant,_1,resource]',$randompick).'
    • ':''). ($ishidden?'
    • '.&mt('contents hidden').'
    • ':''). ($isencrypted?'
    • '.&mt('URLs hidden').'
    • ':''). + ($is_random_order?'
    • '.&mt('random order').'
    • ':''). '

    '); + if ($randompick>=0) { + $r->print('

    ' + .&mt('Caution: this folder is set to randomly pick a subset' + .' of resources. Adding or removing resources from this' + .' folder will change the set of resources that the' + .' students see, resulting in spurious or missing credit' + .' for completed problems, not limited to ones you' + .' modify. Do not modify the contents of this folder if' + .' it is in active student use.') + .'

    ' + ); + } + if ($is_random_order) { + $r->print('

    ' + .&mt('Caution: this folder is set to randomly order its' + .' contents. Adding or removing resources from this folder' + .' will change the order of resources shown.') + .'

    ' + ); + } + $r->print('
    '); } - if ($randompick>=0) { - $r->print('

    '.&mt('Caution: this folder is set to randomly pick a subset of resources. Adding or removing resources from this folder will change the set of resources that the students see, resulting in spurious or missing credit for completed problems, not limited to ones you modify. Do not modify the contents of this folder if it is in active student use.').'

    '); - } - if ($is_random_order) { - $r->print('

    '.&mt('Caution: this folder is set to randomly order its contents. Adding or removing resources from this folder will change the order of resources shown.').'

    '); - } - $r->print(''); + + my $output; foreach my $res (@LONCAPA::map::order) { - my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]); - $name=&LONCAPA::map::qtescape($name); - $url=&LONCAPA::map::qtescape($url); - unless ($name) { $name=(split(/\//,$url))[-1]; } - unless ($name) { $idx++; next; } - $r->print(&entryline($idx,$name,$url,$folder,$allowed,$res, - $coursenum)); - $idx++; - $shown++; + my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]); + $name=&LONCAPA::map::qtescape($name); + $url=&LONCAPA::map::qtescape($url); + unless ($name) { $name=(split(/\//,$url))[-1]; } + unless ($name) { $idx++; next; } + $output .= &entryline($idx,$name,$url,$folder,$allowed,$res, + $coursenum); + $idx++; + $shown++; } - unless ($shown) { - $r->print(''); + if ($shown) { + $r->print(&Apache::loncommon::start_data_table() + .&Apache::loncommon::start_data_table_header_row() + .'' + .'' + .'' + .'' + .&Apache::loncommon::end_data_table_header_row() + .$output + .&Apache::loncommon::end_data_table() + ) + } + unless($shown) { + $r->print('

    ' + .&mt('Currently no documents.') + .'

    ' + ); } - $r->print("\n
    '.&mt('Currently no documents.').'
    '.&mt('Move').''.&mt('Actions').''.&mt('Document').''.&mt('Settings').'
    \n"); if ($allowed) { &print_paste_buffer($r,$container); } @@ -1667,7 +1719,7 @@ sub process_file_upload { return 'failed'; } else { if ($parseaction eq 'parse') { - my $total_embedded = keys(%{$allfiles}); + my $total_embedded = scalar(keys(%{$allfiles})); if ($total_embedded > 0) { my $num = 0; my $state = ' @@ -1759,7 +1811,7 @@ sub entryline { $renametitle=~s/\\/\\\\/g; $renametitle=~s/\"\;/\\\"/g; $renametitle=~s/ /%20/g; - my $line=''; + my $line=&Apache::loncommon::start_data_table_row(); my ($form_start,$form_end); # Edit commands my ($container, $type, $esc_path, $path, $symb); @@ -1862,18 +1914,16 @@ END $form_end = ''; $line.=(< - - - - - - - -
    - $lt{ -
    - $lt{ -
    +
    + + $lt{ + +
    +
    + + $lt{ + +
    $form_start @@ -1900,7 +1950,7 @@ END my $pagefile; if ($uploaded) { if ($extension eq 'sequence') { - $icon=$iconpath.'/folder_closed.gif'; + $icon=$iconpath.'/navmap.folder.closed.gif'; $url=~/\Q$coursenum\E\/([\/\w]+)\.sequence$/; $url='/adm/coursedocs?'; $folderarg=$1; @@ -2007,10 +2057,10 @@ END undef($external); } $line.=' - + '.($url?'':'').''.($url?'':'').' - + '.($url?"":'').$title.($url?'':' '.&mt('(re-initialize course to access)').'').$external." "; if (($allowed) && ($folder!~/^supplemental/)) { @@ -2036,7 +2086,7 @@ END $form_start $parameterset $form_end ENDPARMS } - $line.=""; + $line.=&Apache::loncommon::end_data_table_row(); return $line; } @@ -2583,7 +2633,7 @@ sub handler { &init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space'); &dumpcourse($r); } elsif ($allowed && $env{'form.exportcourse'}) { - &init_breadcrumbs('exportcourse','Export '.&Apache::loncommon::course_type().' to IMS'); + &init_breadcrumbs('exportcourse','IMS Export'); &exportcourse($r); } else { # is this a standard course? @@ -2652,6 +2702,26 @@ sub handler { $allowed=0; } +# subroutine to list form elements +sub create_list_elements { + my @formarr = @_; + my $list = ''; + for my $button (@formarr){ + for my $picture(keys %$button) { + #my $link = Apache::lonhtmlcommon::htmltag('a' ,$button->{$picture}, {href => "test"}); + $list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'}); + } + } + return $list; +} + +# subroutine to create ul from list elements +sub create_form_ul { + my $list = shift; + my $ul = Apache::lonhtmlcommon::htmltag('ul',$list, {class => 'LC_ListStyleNormal'}); + return $ul; +} + # get course data my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'}; my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'}; @@ -2674,11 +2744,19 @@ sub handler { .$script."\n" .'// ]]>'."\n" .''."\n"; - my $brcrum = [{href=>"/adm/createuser",text=>"$type Documents"}]; + + # Breadcrumbs + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb({ + href=>"/adm/createuser",text=>"$type Documents"}); + $r->print(&Apache::loncommon::start_page("$type Documents", $script, - {'force_register' => $showdoc, - 'bread_crumbs' => $brcrum}). - &Apache::loncommon::help_open_menu('','',273,'RAT')); + {'force_register' => $showdoc,}) + .&Apache::loncommon::help_open_menu('','',273,'RAT') + .&Apache::lonhtmlcommon::breadcrumbs( + 'Editing the Table of Contents for your '.$type, + 'Docs_Adding_Course_Doc') + ); my %allfiles = (); my %codebase = (); @@ -2773,7 +2851,6 @@ sub handler { 'uplm' => 'Upload a new main '.lc($type).' document', 'upls' => 'Upload a new supplemental '.lc($type).' document', 'impp' => 'Import a document', - 'pubd' => 'Published Documents', 'copm' => 'All documents out of a published map into this folder', 'upld' => 'Upload Document', 'srch' => 'Search', @@ -2796,7 +2873,8 @@ sub handler { 'grpo' => 'Group Portfolio', 'rost' => 'Course Roster', 'abou' => 'Personal Information Page for a User', - 'imsf' => 'Import IMS package', + 'imsf' => 'IMS Import', + 'imsl' => 'Import IMS package', 'file' => 'File', 'title' => 'Title', 'comment' => 'Comment', @@ -2805,7 +2883,6 @@ sub handler { 'pm' => 'Published Map', 'sd' => 'Special Document', 'mo' => 'More Options', - 'hao' => 'Hide all Options' ); # ----------------------------------------------------------------------------- my $fileupload=(< CHBO + my @fileuploada = ( + { 'pic01' => " $help{'Uploading_From_Harddrive'}" }, + ); my $fileuploadform=(< @@ -2835,28 +2915,23 @@ CHBO $checkbox -
    -
    - - - $help{'Uploading_From_Harddrive'} - +FUFORM + $fileuploadform .= create_form_ul(create_list_elements(@fileuploada)); + $fileuploadform .= (< FUFORM my $simpleeditdefaultform=(< - $lt{'pubd'}
    - $uploadtag - -
    - - - $help{'Importing_LON-CAPA_Resource'} - -
    - +SEDFFORM + my @simpleeditdefaultforma = ( + { 'pic03' => "$uploadtag$lt{'srch'}" }, + { 'pic04' => "$lt{'impo'}$help{'Importing_LON-CAPA_Resource'}" }, + { 'pic05' => "$lt{'book'}" }, + ); + $simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma)); + $simpleeditdefaultform .=(<

    $lt{'copm'}
    @@ -2873,10 +2948,7 @@ SEDFFORM

    $uploadtag - - $help{'Adding_External_Resource'} - + $lt{'extr'}$help{'Adding_External_Resource'}
    ERFORM @@ -2916,23 +2988,27 @@ ERFORM HIDDENFORM } # --------------------------------------------------------- Main tab structure + my $activeClass = 1; my $active = ''; + $r->print('' .'
    ' .'
    '); @@ -2942,6 +3018,7 @@ HIDDENFORM if($activeClass == 0){ $active = 'style="display: block;"'; } + if($env{'request.role'}=~/^cc/){ $r->print('
    '); my $folder=$env{'form.folder'}; if ($folder eq '' || $folder=~/^supplemental/) { @@ -2976,14 +3053,14 @@ HIDDENFORM my $recoverform=(< - + $lt{'reco'} RFORM my $imspform=(< - + $lt{'imsf'} IMSPFORM @@ -2993,10 +3070,8 @@ IMSPFORM $uploadtag - - + $lt{'navc'} $help{'Navigate_Content'} - NNFORM my $newsmppageform=(< $uploadtag - - $help{'Simple Page'} - + $lt{'sipa'} + $help{'Simple Page'} NSPFORM @@ -3016,10 +3089,8 @@ NSPFORM $uploadtag - - $help{'Simple Problem'} - + $lt{'sipr'} + $help{'Simple Problem'} NSPROBFORM @@ -3029,10 +3100,7 @@ NSPROBFORM $uploadtag - - - + $lt{'drbx'} NDBFORM @@ -3041,11 +3109,8 @@ NDBFORM $uploadtag - - + $lt{'scuf'} $help{'Score_Upload_Form'} - NEXUFORM @@ -3054,11 +3119,8 @@ NEXUFORM $uploadtag - - + $lt{'bull'} $help{'Bulletin Board'} - NBFORM @@ -3068,10 +3130,8 @@ NBFORM $uploadtag - - + $lt{'mypi'} $help{'My Personal Information Page'} - NAMFORM @@ -3080,10 +3140,7 @@ NAMFORM $uploadtag - - - + $lt{'abou'} NASOFORM @@ -3094,44 +3151,42 @@ NASOFORM $uploadtag - - + $lt{'rost'} $help{'Course Roster'} - NROSTFORM my $specialdocumentsform; +my @specialdocumentsforma; my $newfolderform; unless ($env{'form.pagepath'}) { my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); - + my $newpageform=(< - - $help{'Adding_Pages'} - + $lt{'newp'} + $help{'Adding_Pages'} NPFORM - + $newfolderform=(< - - $help{'Adding_Folders'} - + $lt{'newf'}$help{'Adding_Folders'} NFFORM + my @newfolderforma= ( + { 'pic02' => "$newfolderform" } + ); + + + $newfolderform = create_form_ul(create_list_elements(@newfolderforma)); my $newsylform=(< @@ -3139,10 +3194,9 @@ NFFORM $uploadtag - - + $lt{'syll'} $help{'Syllabus'} - + NSYLFORM @@ -3152,30 +3206,50 @@ NSYLFORM $uploadtag - - + $lt{'grpo'} $help{'Group Portfolio'} - NGFFORM - - $specialdocumentsform="
    $newpageform
    $newsylform
    $newgroupfileform"; + @specialdocumentsforma=( + {'pic06'=>$newpageform}, + {'pic07'=>$newsylform}, + {'pic08'=>$newgroupfileform}, + ); + } - $specialdocumentsform.="
    $newnavform
    $newsmppageform -
    $newsmpproblemform
    $newdropboxform -
    $newexuploadform
    $newbulform -
    $newaboutmeform
    $newaboutsomeoneform -
    $newrosterform"; + push @specialdocumentsforma, ({'pic09'=>$newnavform}, + {'pic10'=>$newsmppageform}, + {'pic11'=>$newsmpproblemform}, + {'pic12'=>$newdropboxform}, + {'pic13'=>$newexuploadform}, + {'pic14'=>$newbulform}, + {'pic15'=>$newaboutmeform}, + {'pic16'=>$newaboutsomeoneform}, + {'pic17'=>$newrosterform},); + + $specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma)); + if($env{'form.pagepath'}) { - $specialdocumentsform="
    $newsmpproblemform
    $newexuploadform"; + + @specialdocumentsforma=( + {'pic32'=>$newsmpproblemform}, + {'pic33'=>$newexuploadform} + ); + $specialdocumentsform= create_form_ul(create_list_elements(@specialdocumentsforma)); } +my @tools = ( + {'pic18'=>$extresourcesform}, + {'pic19'=>$imspform}, + {'pic20'=>$recoverform}, + ); + my %orderhash = ( - 'aa' => ['Upload Document',$fileuploadform.'
    '.$newfolderform], - 'bb' => ['Published Documents',$simpleeditdefaultform], + 'aa' => ['Upload Document',$fileuploadform.''.$newfolderform], + 'bb' => ['Published Resources',$simpleeditdefaultform], 'cc' => ['Special Documents',$specialdocumentsform], - 'dd' => ['Tools',$extresourcesform.'
    '.$imspform.'
    '.$recoverform.'
    '.&generate_admin_options($containertag,$uploadtag,\%help,\%env)], - 'zz' => ['Hide all Options'], + 'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options($containertag,$uploadtag,\%help,\%env)], + 'zz' => ['Hide'], ); my $tid='1'; my $varcd = 'Main Course Documents'; @@ -3190,9 +3264,8 @@ $r->print(&generate_edit_table($tid,$var } &changewarning($r,''); - $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc', - &mt('Editing the Table of Contents for your '.$type))); $r->print('
    '); + } if ($env{'form.pagepath'}) { } # ----------------------------------------------------- Supplemental documents @@ -3220,8 +3293,11 @@ $r->print('
    '); my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"'); + my @supupdocform = ( + {'pic27'=>"$help{'Uploading_From_Harddrive'}"}, + ); my $supupdocform=(< +
    $fileupload
    @@ -3231,30 +3307,25 @@ $r->print('
    ');

    $lt{'comment'}:
    - +
    - - - $help{'Uploading_From_Harddrive'} - - SUPDOCFORM + $supupdocform .= create_form_ul(create_list_elements(@supupdocform)).""; my $supnewfolderform=(< - - $help{'Adding_Folders'} - + $lt{'newf'} + $help{'Adding_Folders'} SNFFORM + + my @supnewfolderforma = ({'pic28'=>$supnewfolderform}); + $supnewfolderform = create_form_ul(create_list_elements(@supnewfolderforma)); my $supnewextform=(< - - $help{'Adding_External_Resource'} - + $lt{'extr'} $help{'Adding_External_Resource'} SNEFORM @@ -3276,45 +3343,48 @@ SNEFORM - - + $lt{'syll'} $help{'Syllabus'} - SNSFORM my $supnewaboutmeform=(< +
    - - + $lt{'mypi'} $help{'My Personal Information Page'} -
    SNAMFORM - +my @specialdocs = ( + {'pic29'=>$supnewextform}, + {'pic30'=>$supnewsylform}, + {'pic31'=>$supnewaboutmeform}, + ); my %suporderhash = ( - 'ee' => ['Upload Document',$supupdocform.'
    '.$supnewfolderform], - 'ff' => ['Special Documents',$supnewextform.'
    '.$supnewsylform.'
    '.$supnewaboutmeform], - 'zz' => ['Hide all Options'], + 'ee' => ['Upload Document',$supupdocform.' '.$supnewfolderform], + 'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))], + 'zz' => ['Hide'], ); my $tid='2'; my $varscd = 'Supplemental Course Documents'; $r->print(&generate_edit_table($tid,$varscd,\%suporderhash)); +} + my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type); if ($error) { $r->print('

    '.$error.'

    '); - } -$r->print('
'); - } + } $r->print('
'); +$r->print(''); + + if ($allowed) { $r->print('
@@ -3350,17 +3420,18 @@ sub generate_admin_options { my %env = %{$env_ref}; my $dumpbut=&dumpbutton(); my $exportbut=&exportbutton(); - return (< - $help{'Verify_Content'}
- $help{'Check_Resource_Versions'}
- $dumpbut - $exportbut - -
- - -ENDOPTIONFORM + my @list = ( + {'pic21'=>"$lt{'vc'}$help{'Verify_Content'}"}, + {'pic22'=>"$lt{'cv'}$help{'Check_Resource_Versions'}"}, + ); + if($dumpbut ne ''){ + push @list, {'pic23'=>$dumpbut}; + } + push @list, ({'pic24'=>$exportbut}, + {'pic25'=>"$lt{'ls'}"}, + {'pic26'=>"$lt{'sl'}"}, + ); + return '
'.create_form_ul(create_list_elements(@list)).'
'; } @@ -3374,17 +3445,10 @@ sub generate_edit_table { if($env{'form.active'} ne ''){ $activetab = $env{'form.active'}; } - $form = '

'.&mt($varcd).'

'; + $form = '
'; $form .= '