--- loncom/interface/londocs.pm 2010/11/08 19:47:04 1.411.2.6 +++ loncom/interface/londocs.pm 2010/03/18 16:33:44 1.423 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.411.2.6 2010/11/08 19:47:04 raeburn Exp $ +# $Id: londocs.pm,v 1.423 2010/03/18 16:33:44 onken Exp $ # # Copyright Michigan State University Board of Trustees # @@ -41,7 +41,6 @@ use Apache::lonratedt(); use Apache::lonxml; use Apache::lonclonecourse; use Apache::lonnavmaps; -use Apache::londocsgci; use HTML::Entities; use GDBM_File; use Apache::lonlocal; @@ -121,14 +120,19 @@ sub dumpbutton { my $crstype = &Apache::loncommon::course_type(); if ($home+$other==0) { return ''; } if ($home) { - my $link = "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"dumpcourse\", \"".&mt('Dump '.$crstype.' DOCS to Construction Space')."\")'>".&mt('Dump '.$crstype.' DOCS to Construction Space')."</a>"; - return $link.' '. - &Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs').'<br />'; - } else { - return '<div>'. - &mt('Dump '.$crstype. - ' DOCS to Construction Space: available on other servers'). - '</div>'; + my $link = + "<a class='LC_menubuttons_link' href='javascript:injectData(document.courseverify, \"dummy\", \"dumpcourse\", \"" + .&mt('Dump '.$crstype.' Documents to Construction Space') + ."\")'>" + .&mt('Dump '.$crstype.' Documents to Construction Space') + .'</a>'; + return + $link.' ' + .&Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs') + .'<br />'; + } else { + return + &mt('Dump '.$crstype.' Documents to Construction Space: available on other servers'); } } @@ -143,9 +147,9 @@ sub clean { sub dumpcourse { my ($r) = @_; my $crstype = &Apache::loncommon::course_type(); - $r->print(&Apache::loncommon::start_page('Dump '.$crstype.' DOCS to Construction Space'). + $r->print(&Apache::loncommon::start_page('Dump '.$crstype.' Documents to Construction Space'). '<form name="dumpdoc" action="" method="post">'); - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$crstype.' DOCS to Construction Space')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$crstype.' Documents to Construction Space')); my ($home,$other,%outhash)=&authorhosts(); unless ($home) { return ''; } my $origcrsid=$env{'request.course.id'}; @@ -256,7 +260,7 @@ sub dumpcourse { $r->print(&Apache::loncommon::end_data_table()); &untiehash(); $r->print( - '<p><input type="submit" name="dumpcourse" value="'.&mt("Dump $crstype DOCS").'" /></p></form>'); + '<p><input type="submit" name="dumpcourse" value="'.&mt("Dump $crstype Documents").'" /></p></form>'); } } @@ -264,7 +268,7 @@ sub dumpcourse { sub exportbutton { my $crstype = &Apache::loncommon::course_type(); - return "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"exportcourse\", \"".&mt('IMS Export')."\")'>".&mt('IMS Export')."</a>". + return "<a class='LC_menubuttons_link' href='javascript:injectData(document.courseverify, \"dummy\", \"exportcourse\", \"".&mt('IMS Export')."\")'>".&mt('IMS Export')."</a>". &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs').'<br />'; } @@ -342,20 +346,20 @@ sub exportcourse { open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); close(OUTPUT); chdir $cwd; + $outcome .= '<p>' + .&mt('[_1]Your IMS package[_2] is ready for download.' + ,'<a href="'.$imszipfile.'">','</a>') + .'</p>'; if ($copyresult) { $outcome .= '<p class="LC_error">' .&mt('The following errors occurred during export - [_1]' ,$copyresult) .'</p>'; } - $outcome .= '<p>' - .&mt('[_1]Your IMS package[_2] is ready for download.' - ,'<a href="'.$imszipfile.'">','</a>') - .'</p>'; } else { $outcome = '<p class="LC_error">' .&mt('Unfortunately you will not be able to retrieve' - .' an IMS archive of this posts at this time,' + .' an IMS archive of your course at this time,' .' because there was a problem creating a' .' manifest file.') .'</p>' @@ -369,24 +373,26 @@ sub exportcourse { $r->print($outcome); $r->print(&Apache::loncommon::end_page()); } else { - my $display; - $display = '<form name="exportdoc" action="" method="post">'."\n"; - $display .= '<p>' - .&mt('Choose which items you wish to export from your '.$crstype.'.') - .'</p>'; - $display .= '<div class="LC_columnSection"><fieldset>'. + my $display='<form name="exportdoc" action="" method="post">'."\n". + '<p>'. + &mt('Choose which items you wish to export from your '.$crstype.'.'). + '</p>'. + '<div class="LC_columnSection"><fieldset>'. '<legend>'.&mt('Content items').'</legend>'. '<input type="button" value="'.&mt('check all').'" '. 'onclick="javascript:checkAll(document.exportdoc.archive)" />'. ' <input type="button" value="'.&mt('uncheck all').'"'. - ' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset>'. - '<fieldset>'. - '<legend>'.&mt('Discussion posts').'</legend>'. - '<input type="button" value="'.&mt('check all').'"'. - ' onclick="javascript:checkAll(document.exportdoc.discussion)" />'. - ' <input type="button" value="'.&mt('uncheck all').'"'. - ' onclick="javascript:uncheckAll(document.exportdoc.discussion)" />'. - '</fieldset></div>'; + ' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset>'; + if ($numdisc > 0) { + $display .= '<fieldset>'. + '<legend>'.&mt('Discussion posts').'</legend>'. + '<input type="button" value="'.&mt('check all').'"'. + ' onclick="javascript:checkAll(document.exportdoc.discussion)" />'. + ' <input type="button" value="'.&mt('uncheck all').'"'. + ' onclick="javascript:uncheckAll(document.exportdoc.discussion)" />'. + '</fieldset>'; + } + $display .= '</div>'; my $curRes; my $depth = 0; my $count = 0; @@ -397,15 +403,11 @@ sub exportcourse { my $lastcontainer = $startcount; $display .= &Apache::loncommon::start_data_table() .&Apache::loncommon::start_data_table_header_row() - .'<th>'.&mt('Export content item?').'</th>' - .'<th>'; + .'<th>'.&mt('Export content item?').'</th>'; if ($numdisc > 0) { - $display .= &mt('Export discussion posts?'); - } else { - $display .= ' '; + $display .= '<th>'.&mt('Export discussion posts?').'</th>'; } - $display .= '</th>' - .&Apache::loncommon::end_data_table_header_row(); + $display .= &Apache::loncommon::end_data_table_header_row(); while ($curRes = $it->next()) { if (ref($curRes)) { $count ++; @@ -426,37 +428,33 @@ sub exportcourse { $ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; } } + my $currelem = $count+$boards+$startcount; $display .= &Apache::loncommon::start_data_table_row() .'<td>'."\n" .'<input type="checkbox" name="archive" value="'.$count.'" '; if (($curRes->is_sequence()) || ($curRes->is_page())) { - my $checkitem = $count + $boards + $startcount; - $display .= 'onclick="javascript:propagateCheck('."'$checkitem'".')"'; + $lastcontainer = $currelem; + $display .= 'onclick="javascript:propagateCheck('."'$currelem'".')"'; } $display .= ' />'."\n"; for (my $i=0; $i<$depth; $i++) { - $display .= '<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />' - .'<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />'."\n"; + $display .= ('<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />' x2)."\n"; } if ($curRes->is_sequence()) { $display .= '<img src="/adm/lonIcons/navmap.folder.open.gif" alt="" /> '."\n"; - $lastcontainer = $count + $startcount + $boards; } elsif ($curRes->is_page()) { $display .= '<img src="/adm/lonIcons/navmap.page.open.gif" alt="" /> '."\n"; - $lastcontainer = $count + $startcount + $boards; } - my $currelem = $count+$boards+$startcount; $children{$parent{$depth}} .= $currelem.':'; $display .= ' '.$curRes->title().'</td>'."\n"; # Existing discussion posts? if ($discussiontime{$ressymb} > 0) { $boards ++; - $currelem = $count+$boards+$startcount; $display .= '<td align="right">' .'<input type="checkbox" name="discussion" value="'.$count.'" />' .'</td>'."\n"; - } else { + } elsif ($numdisc > 0) { $display .= '<td> </td>'."\n"; } $display .= &Apache::loncommon::end_data_table_row(); @@ -1803,6 +1801,7 @@ sub parse_supplemental_title { $foldertitle=&Apache::lontexconvert::msgtexconverted($4); my $name = &Apache::loncommon::plainname($uname,$udom); $name = &HTML::Entities::encode($name,'"<>&\''); + $renametitle = &HTML::Entities::encode($renametitle,'"<>&\''); $title='<i>'.&Apache::lonlocal::locallocaltime($time).'</i> '. $name.': <br />'.$foldertitle; } @@ -2250,11 +2249,11 @@ sub list_symbs { } else { $r->print("<pre>\n"); foreach my $res ($navmap->retrieveResources()) { - $r->print($res->compTitle()."\t".$res->symb()."\n"); + $r->print($res->compTitle()."\t".$res->symb()."\n"); } $r->print("\n</pre>\n"); } - $r->print('<a href="/adm/coursedocs">'.&mt('Return to DOCS').'</a>'); + $r->print('<hr /><a href="/adm/coursedocs">'.&mt('Back to Course Editor').'</a>'); } @@ -2273,9 +2272,9 @@ sub verifycontent { if ($hash{$key}=~/\.(page|sequence)$/) { if (($key=~/^src_/) && ($alreadyseen{&unescape($hash{$key})})) { $r->print('<hr /><span class="LC_error">'. - &mt('The following sequence or page is included more than once in your '.$crstype.': '). + &mt('The following sequence or page is included more than once in your '.$crstype.':').' '. &unescape($hash{$key}).'</span><br />'. - &mt('Note that grading records for problems included in this sequence or folder will overlap.<hr />')); + &mt('Note that grading records for problems included in this sequence or folder will overlap.').'<hr />'); } } if (($key=~/^src\_(.+)$/) && (!$alreadyseen{&unescape($hash{$key})})) { @@ -2283,8 +2282,13 @@ sub verifycontent { } } &untiehash(); - $r->print('<h1>'.&mt('Done').'.</h1>'.'<a href="/adm/coursedocs">'. - &mt('Return to DOCS').'</a>'); + $r->print( + '<p class="LC_success">'.&mt('Done').'</p>' + .'<hr />' + .'<p><a href="/adm/coursedocs">' + .&mt('Back to Course Editor') + .'</a></p>' + ); } @@ -2534,7 +2538,7 @@ ENDHEADERS } } $r->print('</table></form>'); - $r->print('<h1>'.&mt('Done').'.</h1>'); + $r->print('<p class="LC_success">'.&mt('Done').'</p>'); &untiehash(); } @@ -2619,15 +2623,6 @@ sub handler { return OK if $r->header_only; my $crstype = &Apache::loncommon::course_type(); - my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'}; - if ($coursedom eq 'gcitest') { - my $coursenum = $env{'course.'.$env{'request.course.id'}.'.num'}; - my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); - if ($allowed) { - &concept_test_builder($r,$coursedom,$coursenum); - return OK; - } - } # --------------------------------------------- Initialize help topics for this foreach my $topic ('Adding_Course_Doc','Main_Course_Documents', @@ -2667,7 +2662,7 @@ sub handler { &init_breadcrumbs('versions','Check/Set Resource Versions'); &checkversions($r); } elsif ($allowed && $env{'form.dumpcourse'}) { - &init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space'); + &init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' Documents to Construction Space'); &dumpcourse($r); } elsif ($allowed && $env{'form.exportcourse'}) { &init_breadcrumbs('exportcourse','IMS Export'); @@ -2908,13 +2903,13 @@ sub create_form_ul { 'upls' => 'Upload a new supplemental '.lc($crstype).' document', 'impp' => 'Import a document', 'copm' => 'All documents out of a published map into this folder', - 'upld' => 'Upload Document', + 'upld' => 'Import Document', 'srch' => 'Search', 'impo' => 'Import', 'book' => 'Import Bookmarks', 'selm' => 'Select Map', 'load' => 'Load Map', - 'reco' => 'Recover Deleted Resources', + 'reco' => 'Recover Deleted Documents', 'newf' => 'New Folder', 'newp' => 'New Composite Page', 'extr' => 'External Resource', @@ -2982,9 +2977,9 @@ FUFORM <input type="hidden" name="active" value="bb" /> SEDFFORM my @simpleeditdefaultforma = ( - { '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/src.png" alt="'.&mt('Search').'" />' => "$uploadtag<a onclick='javascript:groupsearch()'>$lt{'srch'}</a>" }, - { '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/res.png" alt="'.&mt('Import').'" />' => "<a onclick='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" }, - { '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/vbkm.png" alt="'.&mt('Import Bookmarks').'" />' => "<a onclick='javascript:groupopen(0,1,1);'>$lt{'book'}</a>" }, + { '<img class="LC_noBorder LC_middle" src="/res/adm/pages/src.png" alt="'.$lt{srch}.'" onclick="javascript:groupsearch()" />' => "$uploadtag<a class='LC_menubuttons_link' href='javascript:groupsearch()'>$lt{'srch'}</a>" }, + { '<img class="LC_noBorder LC_middle" src="/res/adm/pages/res.png" alt="'.$lt{impo}.'" onclick="javascript:groupimport();"/>' => "<a class='LC_menubuttons_link' href='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" }, + { '<img class="LC_noBorder LC_middle" src="/res/adm/pages/vbkm.png" alt="'.$lt{book}.'" onclick="javascript:groupopen(0,1,1);" />' => "<a class='LC_menubuttons_link' href='javascript:groupopen(0,1,1);'>$lt{'book'}</a>" }, ); $simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma)); $simpleeditdefaultform .=(<<SEDFFORM); @@ -3004,7 +2999,7 @@ SEDFFORM <form action="/adm/coursedocs" method="post" name="newext"> $uploadtag <input type="hidden" name="importdetail" value="" /> - <a onclick="javascript:makenewext('newext');">$lt{'extr'}</a>$help{'Adding_External_Resource'} + <a class="LC_menubuttons_link" href="javascript:makenewext('newext');">$lt{'extr'}</a>$help{'Adding_External_Resource'} </form> ERFORM @@ -3120,14 +3115,14 @@ HIDDENFORM my $recoverform=(<<RFORM); <form action="/adm/groupsort" method="post" name="recover"> - <a onclick="javascript:groupopen('$readfile',1,0)">$lt{'reco'}</a> + <a class="LC_menubuttons_link" href="javascript:groupopen('$readfile',1,0)">$lt{'reco'}</a> </form> RFORM my $imspform=(<<IMSPFORM); <form action="/adm/imsimportdocs" method="post" name="ims"> <input type="hidden" name="folder" value="$folder" /> - <a onclick="javascript:makeims();">$lt{'imsf'}</a> + <a class="LC_menubuttons_link" href="javascript:makeims();">$lt{'imsf'}</a> </form> IMSPFORM @@ -3137,7 +3132,7 @@ IMSPFORM $uploadtag <input type="hidden" name="importdetail" value="$lt{'navc'}=/adm/navmaps" /> - <a onclick="document.newnav.submit()">$lt{'navc'}</a> + <a class="LC_menubuttons_link" href="javascript:document.newnav.submit()">$lt{'navc'}</a> $help{'Navigate_Content'} </form> NNFORM @@ -3146,7 +3141,7 @@ NNFORM <input type="hidden" name="active" value="cc" /> $uploadtag <input type="hidden" name="importdetail" value="" /> - <a onclick="javascript:makesmppage();"> $lt{'sipa'}</a> + <a class="LC_menubuttons_link" href="javascript:makesmppage();"> $lt{'sipa'}</a> $help{'Simple Page'} </form> NSPFORM @@ -3156,7 +3151,7 @@ NSPFORM <input type="hidden" name="active" value="cc" /> $uploadtag <input type="hidden" name="importdetail" value="" /> - <a onclick="javascript:makesmpproblem();">$lt{'sipr'}</a> + <a class="LC_menubuttons_link" href="javascript:makesmpproblem();">$lt{'sipr'}</a> $help{'Simple Problem'} </form> @@ -3167,7 +3162,7 @@ NSPROBFORM <input type="hidden" name="active" value="cc" /> $uploadtag <input type="hidden" name="importdetail" value="" /> - <a onclick="javascript:makedropbox();">$lt{'drbx'}</a> + <a class="LC_menubuttons_link" href="javascript:makedropbox();">$lt{'drbx'}</a> </form> NDBFORM @@ -3176,7 +3171,7 @@ NDBFORM <input type="hidden" name="active" value="cc" /> $uploadtag <input type="hidden" name="importdetail" value="" /> - <a onclick="javascript:makeexamupload();">$lt{'scuf'}</a> + <a class="LC_menubuttons_link" href="javascript:makeexamupload();">$lt{'scuf'}</a> $help{'Score_Upload_Form'} </form> NEXUFORM @@ -3186,7 +3181,7 @@ NEXUFORM <input type="hidden" name="active" value="cc" /> $uploadtag <input type="hidden" name="importdetail" value="" /> - <a onclick="javascript:makebulboard();" >$lt{'bull'}</a> + <a class="LC_menubuttons_link" href="javascript:makebulboard();" >$lt{'bull'}</a> $help{'Bulletin Board'} </form> NBFORM @@ -3197,7 +3192,7 @@ NBFORM $uploadtag <input type="hidden" name="importdetail" value="$plainname=/adm/$udom/$uname/aboutme" /> - <a onclick="document.newaboutme.submit()">$lt{'mypi'}</a> + <a class="LC_menubuttons_link" href="javascript:document.newaboutme.submit()">$lt{'mypi'}</a> $help{'My Personal Information Page'} </form> NAMFORM @@ -3207,7 +3202,7 @@ NAMFORM <input type="hidden" name="active" value="cc" /> $uploadtag <input type="hidden" name="importdetail" value="" /> - <a onclick="javascript:makeabout();">$lt{'abou'}</a> + <a class="LC_menubuttons_link" href="javascript:makeabout();">$lt{'abou'}</a> </form> NASOFORM @@ -3218,7 +3213,7 @@ NASOFORM $uploadtag <input type="hidden" name="importdetail" value="$lt{'rost'}=/adm/viewclasslist" /> - <a onclick="document.newroster.submit()">$lt{'rost'}</a> + <a class="LC_menubuttons_link" href="javascript:document.newroster.submit()">$lt{'rost'}</a> $help{'Course Roster'} </form> NROSTFORM @@ -3236,7 +3231,7 @@ my $newfolderb; <input type="hidden" name="folderpath" value="$path" /> <input type="hidden" name="importdetail" value="" /> <input type="hidden" name="active" value="cc" /> - <a onclick="javascript:makenewpage(document.newpage,'$pageseq');">$lt{'newp'}</a> + <a class="LC_menubuttons_link" href="javascript:makenewpage(document.newpage,'$pageseq');">$lt{'newp'}</a> $help{'Adding_Pages'} </form> NPFORM @@ -3247,7 +3242,7 @@ NPFORM <input type="hidden" name="folderpath" value="$path" /> <input type="hidden" name="importdetail" value="" /> <input type="hidden" name="active" value="aa" /> - <a onclick="javascript:makenewfolder(document.newfolder,'$folderseq');">$lt{'newf'}</a>$help{'Adding_Folders'} + <a href="javascript:makenewfolder(document.newfolder,'$folderseq');">$lt{'newf'}</a>$help{'Adding_Folders'} </form> NFFORM @@ -3257,7 +3252,7 @@ NFFORM $uploadtag <input type="hidden" name="importdetail" value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" /> - <a onclick="document.newsyl.submit()">$lt{'syll'}</a> + <a class="LC_menubuttons_link" href="javascript:document.newsyl.submit()">$lt{'syll'}</a> $help{'Syllabus'} </form> @@ -3269,47 +3264,52 @@ NSYLFORM $uploadtag <input type="hidden" name="importdetail" value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" /> - <a onclick="document.newgroupfiles.submit()">$lt{'grpo'}</a> + <a class="LC_menubuttons_link" href="javascript:document.newgroupfiles.submit()">$lt{'grpo'}</a> $help{'Group Portfolio'} </form> NGFFORM @specialdocumentsforma=( - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/page.png" alt="'.&mt('New Composite Page').'" />'=>$newpageform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/syllabus.png" alt="'.&mt('Syllabus').'" />'=>$newsylform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/groupportfolio.png" alt="'.&mt('Group Portfolio').'" />'=>$newgroupfileform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/page.png" alt="'.$lt{newp}.'" onclick="javascript:makenewpage(document.newpage,\''.$pageseq.'\');" />'=>$newpageform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="document.newsyl.submit()" />'=>$newsylform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/groupportfolio.png" alt="'.$lt{grpo}.'" onclick="document.newgroupfiles.submit()" />'=>$newgroupfileform}, ); } - push @specialdocumentsforma, ({'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/navigation.png" alt="'.&mt('Navigate Contents').'" />'=>$newnavform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/simple.png" alt="'.&mt('Simple Course Page').'" />'=>$newsmppageform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/simpprob.png" alt="'.&mt('Simple Problem').'" />'=>$newsmpproblemform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/dropbox.png" alt="'.&mt('Drop Box').'" />'=>$newdropboxform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/scoreupfrm.png" alt="'.&mt('Score Upload Form').'" />'=>$newexuploadform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/bchat.png" alt="'.&mt('Discussion Board').'" />'=>$newbulform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/myaboutme.png" alt="'.&mt('My Personal Information Page').'" />'=>$newaboutmeform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/aboutme.png" alt="'.&mt('Personal Information Page for a User').'" />'=>$newaboutsomeoneform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/chrt.png" alt="'.&mt('Course Roster').'" />'=>$newrosterform},); + push @specialdocumentsforma, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/navigation.png" alt="'.$lt{navc}.'" onclick="document.newnav.submit()" />'=>$newnavform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simple.png" alt="'.$lt{sipa}.'" onclick="javascript:makesmppage();" />'=>$newsmppageform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.$lt{sipr}.'" onclick="javascript:makesmpproblem();" />'=>$newsmpproblemform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/dropbox.png" alt="'.$lt{drbx}.'" onclick="javascript:makedropbox();" />'=>$newdropboxform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/scoreupfrm.png" alt="'.$lt{scuf}.'" onclick="javascript:makeexamupload();" />'=>$newexuploadform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/bchat.png" alt="'.$lt{bull}.'" onclick="javascript:makebulboard();" />'=>$newbulform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/myaboutme.png" alt="'.$lt{mypi}.'" onclick="javascript:makebulboard();" />'=>$newaboutmeform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/aboutme.png" alt="'.$lt{abou}.'" onclick="javascript:makeabout();" />'=>$newaboutsomeoneform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/chrt.png" alt="'.$lt{rost}.'" onclick="document.newroster.submit()" />'=>$newrosterform},); $specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma)); if($env{'form.pagepath'}) { @specialdocumentsforma=( - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/simpprob.png" alt="'.&mt('Simple Problem').'" />'=>$newsmpproblemform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/scoreupfrm.png" alt="'.&mt('Score Upload Form').'" />'=>$newexuploadform} + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.&mt('Simple Problem').'" onclick="javascript:makesmpproblem();" />'=>$newsmpproblemform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/scoreupfrm.png" alt="'.&mt('Score Upload Form').'" onclick="javascript:makeexamupload();" />'=>$newexuploadform} ); $specialdocumentsform= create_form_ul(create_list_elements(@specialdocumentsforma)); } my @tools = ( - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/extres.png" alt="'.&mt('External Resource').'" />'=>$extresourcesform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/ims.png" alt="'.&mt('IMS Import').'" />'=>$imspform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/recover.png" alt="'.&mt('Recover Deleted Resources').'" />'=>$recoverform}, +# {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" />'=>$extresourcesform}, +# {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" />'=>$imspform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/recover.png" alt="'.$lt{reco}.'" onclick="javascript:groupopen(\''.$readfile.'\',1,0)" />'=>$recoverform}, ); +my @importdoc = ( + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:makenewext(\'newext\');" />'=>$extresourcesform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" onclick="javascript:makeims();" />'=>$imspform}, +); +$fileuploadform = create_form_ul(create_list_elements(@importdoc)) . '<hr/>' . $fileuploadform; my %orderhash = ( '00' => ['Newfolder',$newfolderform], - 'aa' => ['Upload Document',$fileuploadform], + 'aa' => ['Import Documents',$fileuploadform], 'bb' => ['Published Resources',$simpleeditdefaultform], 'cc' => ['Special Documents',$specialdocumentsform], 'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options($containertag,$uploadtag,\%help,\%env)], @@ -3380,7 +3380,7 @@ SUPDOCFORM <input type="hidden" name="active" value="ee" /> <input type="hidden" name="folderpath" value="$path" /> <input type="hidden" name="importdetail" value="" /> - <a onclick="javascript:makenewfolder(document.supnewfolder,'$folderseq');">$lt{'newf'}</a> + <a class="LC_menubuttons_link" href="javascript:makenewfolder(document.supnewfolder,'$folderseq');">$lt{'newf'}</a> $help{'Adding_Folders'} </form> SNFFORM @@ -3391,7 +3391,7 @@ SNFFORM <input type="hidden" name="active" value="ff" /> <input type="hidden" name="folderpath" value="$path" /> <input type="hidden" name="importdetail" value="" /> - <a onclick="javascript:makenewext('supnewext');">$lt{'extr'}</a> $help{'Adding_External_Resource'} + <a class="LC_menubuttons_link" href="javascript:makenewext('supnewext');">$lt{'extr'}</a> $help{'Adding_External_Resource'} </form> SNEFORM @@ -3401,7 +3401,7 @@ SNEFORM <input type="hidden" name="folderpath" value="$path" /> <input type="hidden" name="importdetail" value="Syllabus=/public/$coursedom/$coursenum/syllabus" /> - <a onclick="document.supnewsyl.submit()">$lt{'syll'}</a> + <a class="LC_menubuttons_link" href="javascript:document.supnewsyl.submit()">$lt{'syll'}</a> $help{'Syllabus'} </form> SNSFORM @@ -3412,20 +3412,26 @@ SNSFORM <input type="hidden" name="folderpath" value="$path" /> <input type="hidden" name="importdetail" value="$plainname=/adm/$udom/$uname/aboutme" /> - <a onclick="document.supnewaboutme.submit()">$lt{'mypi'}</a> + <a class="LC_menubuttons_link" href="javascript:document.supnewaboutme.submit()">$lt{'mypi'}</a> $help{'My Personal Information Page'} </form> SNAMFORM my @specialdocs = ( - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/extres.png" alt="'.&mt('External Resource').'" />'=>$supnewextform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/syllabus.png" alt="'.&mt('Syllabus').'" />'=>$supnewsylform}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/myaboutme.png" alt="'.&mt('My Personal Information Page').'" />'=>$supnewaboutmeform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="document.supnewsyl.submit()" />' + =>$supnewsylform}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/myaboutme.png" alt="'.$lt{mypi}.'" onclick="document.supnewaboutme.submit()" />' + =>$supnewaboutmeform}, ); +my @supimportdoc = ( + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:makenewext(\'supnewext\');" />' + =>$supnewextform}, + ); +$supupdocform = create_form_ul(create_list_elements(@supimportdoc)) . '<hr/>' . $supupdocform; my %suporderhash = ( '00' => ['Supnewfolder', $supnewfolderform], - 'ee' => ['Upload Document',$supupdocform], + 'ee' => ['Import Documents',$supupdocform], 'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))] ); @@ -3476,22 +3482,29 @@ sub generate_admin_options { 'vc' => 'Verify Content', 'cv' => 'Check/Set Resource Versions', 'ls' => 'List Symbs', - 'sl' => 'Show Log' + 'sl' => 'Show Log', + 'imse' => 'IMS Export', + 'dcd' => 'Dump Course Documents to Construction Space: available on other servers' ); my %help = %{$help_ref}; my %env = %{$env_ref}; my $dumpbut=&dumpbutton(); my $exportbut=&exportbutton(); my @list = ( - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/verify.png" alt="'.&mt('Verify Content').'" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"verify\", \"$lt{'vc'}\")'>$lt{'vc'}</a>$help{'Verify_Content'}"}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/resversion.png" alt="'.&mt('Check/Set Resource Versions').'" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"versions\", \"$lt{'cv'}\")'>$lt{'cv'}</a>$help{'Check_Resource_Versions'}"}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/verify.png" alt="'.$lt{vc}.'" onclick=\'javascript:injectData(document.courseverify, "dummy", "verify", "'.$lt{'vc'}.'")\' />' + => "<a class='LC_menubuttons_link' href='javascript:injectData(document.courseverify, \"dummy\", \"verify\", \"$lt{'vc'}\")'>$lt{'vc'}</a>$help{'Verify_Content'}"}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/resversion.png" alt="'.$lt{cv}.'" onclick=\'javascript:injectData(document.courseverify, "dummy", "versions", "'.$lt{'cv'}.'")\' />' + =>"<a class='LC_menubuttons_link' href='javascript:injectData(document.courseverify, \"dummy\", \"versions\", \"$lt{'cv'}\")'>$lt{'cv'}</a>$help{'Check_Resource_Versions'}"}, ); if($dumpbut ne ''){ - push @list, {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/dump.png" alt="'.&mt('Dump Course DOCS to Construction Space: available on other servers').'" />'=>$dumpbut}; + push @list, {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/dump.png" alt="'.$lt{dcd}.'" />'=>$dumpbut}; } - push @list, ({'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/imsexport.png" alt="'.&mt('IMS Export').'" />'=>$exportbut}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/symbs.png" alt="'.&mt('List Symbs').'" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"listsymbs\", \"$lt{'ls'}\")'>$lt{'ls'}</a><input type='hidden' name='folder' value='$env{'form.folder'}' />"}, - {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/log.png" alt="'.&mt('Show Log').'" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"docslog\", \"$lt{'sl'}\")'>$lt{'sl'}</a>"}, + push @list, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/imsexport.png" alt="'.$lt{imse}.'" class="LC_menubuttons_link" href=\'javascript:injectData(document.courseverify, "dummy", "exportcourse", "'.&mt('IMS Export').'")\' />' + =>$exportbut}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/symbs.png" alt="'.$lt{ls}.'" onclick=\'javascript:injectData(document.courseverify, "dummy", "listsymbs", "'.$lt{'ls'}.'")\' />' + =>"<a class='LC_menubuttons_link' href='javascript:injectData(document.courseverify, \"dummy\", \"listsymbs\", \"$lt{'ls'}\")'>$lt{'ls'}</a><input type='hidden' name='folder' value='$env{'form.folder'}' />"}, + {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/log.png" alt="'.$lt{sl}.'" onclick=\'javascript:injectData(document.courseverify, "dummy", "docslog", "'.$lt{'sl'}.'")\' />' + =>"<a class='LC_menubuttons_link' href='javascript:injectData(document.courseverify, \"dummy\", \"docslog\", \"$lt{'sl'}\")'>$lt{'sl'}</a>"}, ); return '<form action="/adm/coursedocs" method="post" name="courseverify"><input type="hidden" id="dummy" />'.create_form_ul(create_list_elements(@list)).'</form>'; @@ -3508,7 +3521,7 @@ sub generate_edit_table { if($env{'form.active'} ne ''){ $activetab = $env{'form.active'}; } - $form = '<div class="LC_Box">'; + $form = '<div class="LC_Box" style="margin-right:0">'; $form .= '<ul id="navigation'.$tid.'" class="LC_TabContent">'; foreach my $name (sort(keys(%orderhash))){ if($name ne '00'){ @@ -3517,7 +3530,7 @@ sub generate_edit_table { }elsif($activetab eq $name){ $active = 'class="active"'; } - $form .= '<li '.$active.' onclick="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');">'.&mt(${$orderhash{$name}}[0]).'</li>'; + $form .= '<li '.$active.' onclick="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');"><a href="javascript:;"><b>'.&mt(${$orderhash{$name}}[0]).'</b></a></li>'; } else { $form .= '<li '.$active.'>'.${$orderhash{$name}}[1].'</li>'; @@ -3527,14 +3540,14 @@ sub generate_edit_table { $form .= '<div id="content'.$tid.'" style="padding: 0 0; margin: 0 0; clear: both;">'; foreach my $field (keys(%orderhash)){ if($field ne '00'){ - if($activetab eq '' || $activetab ne $field){ + if($activetab eq '' || $activetab ne $field){ $active = 'style="display: none;"'; - }elsif($activetab eq $field){ + }elsif($activetab eq $field){ $active = 'style="display:block;"'; - } - $form .= '<div id="'.$field.$tid.'"' - .' class="LC_ContentBox" '.$active.'>'.${$orderhash{$field}}[1] - .'</div>'; + } + $form .= '<div id="'.$field.$tid.'"' + .' class="LC_ContentBox" '.$active.'>'.${$orderhash{$field}}[1] + .'</div>'; } } $form .= '</div></div>'; @@ -3542,74 +3555,6 @@ sub generate_edit_table { return $form; } -sub concept_test_builder { - my ($r,$cdom,$cnum) = @_; - &Apache::londocsgci::setdefaults(); - if ($env{'form.context'} eq 'requestcrs') { - if ($env{'form.phase'} eq 'storemap') { - &Apache::londocsgci::evaluate(); - my $error = &Apache::londocsgci::store('requestcrs',$cdom,$cnum); - my $output = '<p>'; - if ($error) { - $output .= '<span class="LC_error">'. - &mt('An error occurred saving your concept test: [_1].',$error). - '</span>'; - } else { - &Apache::lonuserstate::readmap($cdom.'/'.$cnum); - $output .= &mt('Your concept test has been saved.'); - } - $output .= '</p>'; - if (&Apache::lonrequestcourse::generate_page($r,'new','chooseitems')) { - my $formname = 'requestcrs'; - $r->print('<br /><form name="'.$formname.'" method="post" action="/adm/requestcourse">'); - my $title = &mt('Concept Test Created'); - &Apache::lonrequestcourse::roster_upload_form($r,$output,$formname,$title); - } - $r->print(&Apache::loncommon::end_page()); - return; - } - } - my $js = ' -<script type="text/javascript"> -// <![CDATA[ -'. -&Apache::londocsgci::builder_javascript(). -' -// ]]> -</script> -'; - $r->print(&Apache::loncommon::start_page('Assemble Test',$js)); - &Apache::lonhtmlcommon::clear_breadcrumbs(); - &Apache::lonhtmlcommon::add_breadcrumb - ({href=>'/adm/coursedocs', - text=>"Assemble Test"}); - if ($env{'form.phase'} eq 'storemap') { - &Apache::lonhtmlcommon::add_breadcrumb - ({href=>'/adm/coursedocs?phase=storemap', - text=>"Validate Test"}); - &Apache::londocsgci::evaluate(); - $r->print(&Apache::lonhtmlcommon::breadcrumbs - ('Build Concept Test','Concept_Test_Assembly')); - $r->print(&Apache::londocsgci::store('edit',$cdom,$cnum)); - } elsif ($env{'form.phase'} eq 'storeparms') { - &Apache::lonhtmlcommon::add_breadcrumb - ({href=>'/adm/coursedocs?phase=storeparms', - text=>"Set Availability"}); - $r->print(&Apache::lonhtmlcommon::breadcrumbs - ('Build Concept Test','Concept_Test_Assembly')); - $r->print(&Apache::londocsgci::store_dates_parms($cdom,$cnum)); - $r->print(&Apache::loncommon::end_page()); - return; - } else { - $r->print(&Apache::lonhtmlcommon::breadcrumbs - ('Build Concept Test','Concept_Test_Assembly')); - } - &Apache::londocsgci::load(); - &Apache::londocsgci::listresources($r,'edit',$cdom,$cnum); - $r->print(&Apache::loncommon::end_page()); - return; -} - sub editing_js { my ($udom,$uname) = @_; my $now = time(); @@ -3848,6 +3793,9 @@ function openTabs(pageId) { if(currentLis[i].className == 'active') { funcString = currentLis[i].onclick.toString(); tab = funcString.split('"'); + if(tab.length < 2) { + tab = funcString.split("'"); + } currentData = document.getElementById(tab[1]); currentData.style.display = 'block'; }