--- rat/lonratedt.pm 2009/01/20 16:38:49 1.92 +++ rat/lonratedt.pm 2015/03/11 21:09:04 1.105.2.7 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps # -# $Id: lonratedt.pm,v 1.92 2009/01/20 16:38:49 bisitz Exp $ +# $Id: lonratedt.pm,v 1.105.2.7 2015/03/11 21:09:04 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -44,7 +44,7 @@ use HTML::Entities(); sub ratedt { my ($r,$url)=@_; my %layout = ('border' => "0"); - if ($env{'environment.remote'} eq 'off') { + if ($env{'environment.remote'} eq 'off') { $layout{'rows'} = "1,250,*"; } else { $layout{'rows'} = "1,70,*"; @@ -58,6 +58,7 @@ sub ratedt { &Apache::loncommon::start_page('Edit Sequence',$js, {'frameset' => 1, 'add_entries' => \%layout}); + my $end_page = &Apache::loncommon::end_page({'frameset' => 1}); @@ -75,19 +76,29 @@ ENDDOCUMENT sub buttons { my $adv=shift; - my $output='<form method=post>'; + my $output='<form method="post" action="">'; if ($adv==1) { - $output.='<input type=submit name=forceadv value="'.&mt('Edit').'">'. - &Apache::loncommon::help_open_topic('Sequence_Advanced_Editor_Creation');; + $output.= + '<input type="submit" name="forceadv"' + .' value="'.&mt('Edit').'" />' + .&Apache::loncommon::help_open_topic( + 'Sequence_Advanced_Editor_Creation'); } else { unless ($adv==2) { - $output.='<input type=submit name=forcesmp value="'.&mt('Simple Edit').'">'. - &Apache::loncommon::help_open_topic('Sequence_Simple_Editor_Creation'); + $output.= + '<input type="submit" name="forcesmp"' + .' value="'.&mt('Simple Edit').'" />' + .&Apache::loncommon::help_open_topic( + 'Sequence_Simple_Editor_Creation') + .' '; } - $output.='<input type=submit name=forceadv value="'.&mt('Advanced Edit').'">'. - &Apache::loncommon::help_open_topic('Sequence_Advanced_Editor_Creation'); + $output.= + '<input type="submit" name="forceadv"' + .' value="'.&mt('Advanced Edit').'" />' + .&Apache::loncommon::help_open_topic( + 'Sequence_Advanced_Editor_Creation'); } - return $output.'</form><hr>'; + return $output.'</form>'; } # ----------------------------------------------------------------- Edit script @@ -144,10 +155,10 @@ function idxopen(mode) { } // ------------------------------------------------------ Open groupsort window -function groupopen(url,recover,bookmarks) { +function groupopen(url,recover) { var options="scrollbars=1,resizable=1,menubar=0"; idxflag=1; - idx=open("/adm/groupsort?inhibitmenu=yes&mode=$mode&recover="+recover+"&readfile="+url+"&bookmarks="+bookmarks,"idxout",options); + idx=open("/adm/groupsort?inhibitmenu=yes&mode=$mode&recover="+recover+"&readfile="+url,"idxout",options); idx.focus(); } @@ -214,7 +225,6 @@ ENDSCRIPT sub smpedt { my ($r,$url,$errtext)=@_; - my $buttons=&buttons(2); my $tmpfn=&Apache::lonnet::filelocation('',$url).'.tmp'; my $targetmsg=''; if ($env{'form.save'}) { @@ -223,22 +233,27 @@ sub smpedt { my ($errtext,$fatal)= &LONCAPA::map::mapread(&Apache::lonnet::filelocation('',$url),''); unless ($fatal) { - $targetmsg='<b>'.&mt('Saved.').'</b><br />'; + $targetmsg=&Apache::lonhtmlcommon::confirm_success(&mt('Saved')); } else { - $targetmsg='<b>'.&mt('An error occurred while saving.').'</b><br />'; + $targetmsg=&Apache::lonhtmlcommon::confirm_success( + &mt('An error occurred while saving.'),1); } } if ($env{'form.revert'}) { - $targetmsg='<b>'.&mt('Reverted.').'</b><br />'; + $targetmsg=&Apache::lonhtmlcommon::confirm_success(&mt('Reverted')); unlink($tmpfn); my ($errtext,$fatal)= &LONCAPA::map::mapread(&Apache::lonnet::filelocation('',$url),''); } + $targetmsg = &Apache::loncommon::confirmwrapper($targetmsg) if ($targetmsg); if (-e $tmpfn) { - $targetmsg= - '<b><font color="red">'.&mt('You are working with an unsaved version of your map.').'</font></b><br>'; - my ($errtext,$fatal)=&LONCAPA::map::mapread($tmpfn,''); + $targetmsg= + '<p class="LC_warning">' + .&mt('You are working with an unsaved version of your map.') + .'</p>'; + my ($errtext,$fatal)=&LONCAPA::map::mapread($tmpfn,''); } + $errtext = '<p class="LC_error">'.$errtext.'</p>' if ($errtext); # ---------------------------------------------------------- Process form input my @importselect=&Apache::loncommon::get_env_multiple('form.importsel'); @@ -481,11 +496,12 @@ sub smpedt { my $editscript=&editscript('simple'); my %lt=&Apache::lonlocal::texthash( + 'sm' => 'Select Map', 'sa' => 'Save', 'nt' => 'New Title', 'se' => 'Search', 'im' => 'Import', - 'bk' => 'Import Bookmarks', + 'wl' => 'Import from Stored Links', 'vi' => 'View', 'lm' => 'Load Map', 'ds' => 'Discard Selected', @@ -502,9 +518,7 @@ sub smpedt { 'pas' => 'Paste after selected', 'reco' => 'Recover Deleted' ); - my $js=<<ENDJS; -<script type="text/javascript"> - + my $js=&Apache::lonhtmlcommon::scripttag(" $editscript function openview(entry) { @@ -536,61 +550,77 @@ sub smpedt { document.forms.simpleedit.submit(); } } +"); -</script> -ENDJS - - my $start_page = &Apache::loncommon::start_page(undef,$js). - &Apache::loncommon::help_open_menu('Sequence_Simple_Editor_Creation', - 'Sequence_Simple_Editor_Creation', - 6,'RAT'); + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'Authoring Space', + href => &Apache::loncommon::authorspace($url), + faq => 6, + bug => 'RAT', + help => 'Sequence_Simple_Editor_Creation',}); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'RAT', + title => 'Resource Assembly Tool', + href => '',}); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'Editor', + title => 'Simple Editor', + href => '',}); + + # Breadcrumbs are included by &start_page + my $start_page = &Apache::loncommon::start_page('Authoring Space',$js) + .&Apache::loncommon::head_subbox( + &Apache::loncommon::CSTR_pageheader() + .&buttons(2)); my $end_page = &Apache::loncommon::end_page(); + my $filetext = &mt('File: [_1]','<span class="LC_filename">'.$url.'</span>'); $r->print(<<ENDSMPHEAD); $start_page -$buttons -<font color=red>$errtext</font> -<form name=simpleedit method=post> -<input type=hidden name=forcesmp value=1> -<input type=hidden name=renameres value=0> -<input type=hidden name=renametitle value=''> -<input type=hidden name=renameidx value=0> +$targetmsg +$errtext +<form name="simpleedit" method="post" action=""> +<input type="hidden" name="forcesmp" value="1" /> +<input type="hidden" name="renameres" value="0" /> +<input type="hidden" name="renametitle" value="" /> +<input type="hidden" name="renameidx" value="0" /> <table> <tr><th width="40%">$lt{'ta'}</th> <th> </th> -<th width="40%">File: $url</th></tr> +<th width="40%">$filetext</th></tr> <tr><td bgcolor="#FFFFCC"> -<input type=button onClick="javascript:groupsearch()" value="$lt{'se'}"> -<input type=button onClick="javascript:groupimport();" value="$lt{'im'}"> +<input type="button" onclick="javascript:groupsearch()" value="$lt{'se'}" /> +<input type="button" onclick="javascript:groupimport();" value="$lt{'im'}" /> $lt{'as'} -<hr> -<input type=text size=20 name=importmap> -<input type=button -onClick="javascript:openbrowser('simpleedit','importmap','sequence,page','')" -value="Select Map"><input type=submit name=loadmap value="$lt{'lm'}"><hr> -<input type=submit name="discard" value="$lt{'ds'}"> -<input type=submit name="clear" value="$lt{'ca'}"> -<input type=button onClick="javascript:viewimport()" value="$lt{'vi'}"> +<hr /> +<input type="text" size="20" name="importmap" /> +<input type="button" +onclick="javascript:openbrowser('simpleedit','importmap','sequence,page','')" +value="$lt{'sm'}" /><input type="submit" name="loadmap" value="$lt{'lm'}" /><hr /> +<input type="submit" name="discard" value="$lt{'ds'}" /> +<input type="submit" name="clear" value="$lt{'ca'}" /> +<input type="button" onclick="javascript:viewimport()" value="$lt{'vi'}" /> </td><td> </td><td bgcolor="#FFFFCC"> -<input type=button onClick= -"javascript:impfortarget.value=1;groupsearch()" value="$lt{'se'}"> -<input type=button onClick= -"javascript:impfortarget.value=1;groupimport();" value="$lt{'im'}"> -<input type=button onClick= -"javascript:impfortarget.value=1;groupopen(0,1,1);" value="$lt{'bk'}"> -<input type=button onClick= -"javascript:impfortarget.value=1;groupopen('$url',1,0);" value="$lt{'reco'}"> +<input type="button" onclick= +"javascript:impfortarget.value=1;groupsearch()" value="$lt{'se'}" /> +<input type="button" onclick= +"javascript:impfortarget.value=1;groupimport();" value="$lt{'im'}" /> +<input type="button" onclick= +"javascript:impfortarget.value=1;open_StoredLinks_Import('simple');" value="$lt{'wl'}" /> +<input type="button" onclick= +"javascript:impfortarget.value=1;groupopen('$url',1);" value="$lt{'reco'}" /> $lt{'as'} -<hr> -<input type=submit name="moveup" value="$lt{'mu'}"> -<input type=submit name="movedown" value="$lt{'md'}"> -<input type=button onClick="javascript:renametarget()" value="$lt{'re'}"> -<hr>$targetmsg -<input type=submit name="revert" value="$lt{'rv'}"> -<input type=submit name="save" value="$lt{'sa'}"> -<input type=button onClick="javascript:viewtarget()" value="$lt{'vi'}"> +<hr /> +<input type="submit" name="moveup" value="$lt{'mu'}" /> +<input type="submit" name="movedown" value="$lt{'md'}" /> +<input type="button" onclick="javascript:renametarget()" value="$lt{'re'}" /> +<hr /> +<input type="submit" name="revert" value="$lt{'rv'}" /> +<input type="submit" name="save" value="$lt{'sa'}" /> +<input type="button" onclick="javascript:viewtarget()" value="$lt{'vi'}" /> </td></tr> <tr><td bgcolor="#FFFFCC"><select name="importsel" size="10" multiple="multiple"> @@ -598,23 +628,24 @@ $importwindow </select> </td> <td bgcolor="#FFFFAA" align="center"> -$lt{'cs'}<br> -<input type=submit name=cut value='<<<'><p> -<hr> -$lt{'ps'}<br> -<input type=submit name=copy value='<--'><p> -<hr> -$lt{'pas'}<br> -<input type=submit name=paste value='-->'> +$lt{'cs'}<br /> +<input type="submit" name="cut" value="<<<" /><p> +<hr /> +$lt{'ps'}<br /> +<input type="submit" name="copy" value="<--" /><p> +<h /r> +$lt{'pas'}<br /> +<input type="submit" name="paste" value="-->" /> </td> <td bgcolor="#FFFFCC"><select name="target" size="10" multiple="multiple"> $targetwindow </select> +</td></tr> </table> -<input type=hidden name=importdetail value=""> -<input type=hidden name=curimpdetail value="$importdetail"> -<input type=hidden name=targetdetail value="$targetdetail"> -<input type=hidden name=impfortarget value="0"> +<input type="hidden" name="importdetail" value="" /> +<input type="hidden" name="curimpdetail" value="$importdetail" /> +<input type="hidden" name="targetdetail" value="$targetdetail" /> +<input type="hidden" name="impfortarget" value="0" /> </form> $end_page ENDSMPHEAD @@ -623,22 +654,48 @@ ENDSMPHEAD # ----------------------------------------------------------------- No such dir sub nodir { my ($r,$dir)=@_; - $dir=~s{^/home/$LONCAPA::username_re/public_html}{}; - $r->print(&Apache::loncommon::start_page(undef,undef, - {'only_body' => 1, - 'bgcolor' => '#FFFFFF',}). - "<h1>No such directory: $dir</h1>". - &Apache::loncommon::end_page()); + my $londocroot = $r->dir_config('lonDocRoot'); + my ($path) = ($dir =~ m{^\Q$londocroot\E?(/priv/[^/]+/[^/]+/)}); + $dir=~s{^\Q$londocroot/priv/\E[^/]+/[^/]+}{}; + my $brcrum = [{'href' => &Apache::loncommon::authorspace($path), + 'text' => 'Authoring Space'}]; +# {'href' => '', +# 'text' => 'No such directory'}]; + $r->print(&Apache::loncommon::start_page('Authoring Space', + undef, + {'bread_crumbs' => $brcrum,}) + .&Apache::loncommon::head_subbox( + &Apache::loncommon::CSTR_pageheader()) + .'<p class="LC_error">' + .&mt('No such directory: [_1]','<span class="LC_filename">'.$dir.'</span>' + .'</p>' + .&Apache::loncommon::end_page()) + ); } # ---------------------------------------------------------------- View Handler sub viewmap { my ($r,$url,$adv,$errtext)=@_; - $r->print( - &Apache::loncommon::start_page('Edit Content of a Map'). - &Apache::loncommon::help_open_menu('','',6,'RAT'). - &buttons($adv)); + + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'Authoring Space', + href => &Apache::loncommon::authorspace($url), + faq => 6, + bug => 'RAT', + help => 'Sequence_Simple_Editor_Creation',}); + &Apache::lonhtmlcommon::add_breadcrumb({ + text => 'RAT', + title => 'Resource Assembly Tool', + href => '',}); + + # Breadcrumbs are included by &start_page + $r->print(&Apache::loncommon::start_page('Edit Content of a Map') + .&Apache::loncommon::head_subbox( + &Apache::loncommon::CSTR_pageheader() + .&buttons($adv)) + ); if ($errtext) { $r->print('<div class="LC_error">' .$errtext @@ -647,7 +704,7 @@ sub viewmap { ); } my $idx=0; - $r->print('<h1>'.$url.'</h1>'); + $r->print('<p><span class="LC_filename">'.$url.'</span></p>'); if ($adv) { $r->print('<p class="LC_warning">' .&mt('Map contents are not shown in order.') @@ -660,7 +717,7 @@ sub viewmap { .'<th>'.&mt('Title in map').'</th>' .'<th>'.&mt('Filename of resource').'</th>' .'<th>'.&mt('Link to published resource').'</th>' - .'<th>'.&mt('Link to resource in Construction Space').'</th>' + .'<th>'.&mt('Link to resource in Authoring Space').'</th>' .&Apache::loncommon::end_data_table_header_row() ); foreach (&LONCAPA::map::attemptread(&Apache::lonnet::filelocation('',$url))) { @@ -679,10 +736,10 @@ sub viewmap { $filename = $1; } my $cstrurl = $resurl; - $cstrurl =~ s#^/res/[^/]+/([^/]+)/#/priv/$1/#; + $cstrurl =~ s{^/res/}{/priv/}; $r->print(&Apache::loncommon::start_data_table_row() .'<td>' - .'<img src="'.&Apache::loncommon::icon($resfilepath).'" />' + .'<img src="'.&Apache::loncommon::icon($resfilepath).'" alt="" />' .'</td>' .'<td>' .&HTML::Entities::encode(&LONCAPA::map::qtescape($title)) @@ -698,7 +755,7 @@ sub viewmap { $r->print('</td><td>'); if ($url) { $r->print('<a href="'.$cstrurl.'">'. - &mt('Construction space').'</a>'); + &mt('Authoring Space').'</a>'); } else { $r->print(' '); }