--- rat/lonratedt.pm 2009/04/23 17:31:25 1.94 +++ rat/lonratedt.pm 2014/02/26 18:52:37 1.105.2.6 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps # -# $Id: lonratedt.pm,v 1.94 2009/04/23 17:31:25 bisitz Exp $ +# $Id: lonratedt.pm,v 1.105.2.6 2014/02/26 18:52:37 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= - '<span class="LC_warning">'.&mt('You are working with an unsaved version of your map.').'</span><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,21 +550,37 @@ 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 -<span class="LC_error">$errtext</span> -<form name="simpleedit" method="post"> +$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="" /> @@ -558,39 +588,39 @@ $buttons <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 /> +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'}" /> +<input type="button" onclick="javascript:viewimport()" value="$lt{'vi'}" /> </td><td> </td><td bgcolor="#FFFFCC"> -<input type="button" onClick= +<input type="button" onclick= "javascript:impfortarget.value=1;groupsearch()" value="$lt{'se'}" /> -<input type="button" onClick= +<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;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="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'}" /> +<input type="button" onclick="javascript:viewtarget()" value="$lt{'vi'}" /> </td></tr> <tr><td bgcolor="#FFFFCC"><select name="importsel" size="10" multiple="multiple"> @@ -599,17 +629,18 @@ $importwindow </td> <td bgcolor="#FFFFAA" align="center"> $lt{'cs'}<br /> -<input type="submit" name="cut" value="<<<" /><p> +<input type="submit" name="cut" value="<<<" /><p> <hr /> $lt{'ps'}<br /> -<input type="submit" name="copy" value="<--" /><p> +<input type="submit" name="copy" value="<--" /><p> <h /r> $lt{'pas'}<br /> -<input type="submit" name="paste" value="-->" /> +<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" /> @@ -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(' '); }