--- loncom/interface/londocs.pm 2006/11/12 02:13:05 1.247 +++ loncom/interface/londocs.pm 2006/11/22 14:07:13 1.256 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.247 2006/11/12 02:13:05 www Exp $ +# $Id: londocs.pm,v 1.256 2006/11/22 14:07:13 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -954,6 +954,7 @@ sub breadcrumbs { } my $folderpath; my $cpinfo=''; + my $plain=''; if ($env{'form.markedcopy_url'}) { $cpinfo='&markedcopy_url='. &escape($env{'form.markedcopy_url'}). @@ -986,9 +987,11 @@ sub breadcrumbs { 'text'=>''. $name.'' }); + $plain.=$name.' > '; } + $plain=~s/\>\;\s*$//; return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp', - 'LC_docs_path'),$randompick,$ishidden,$isencrypted); + 'LC_docs_path'),$randompick,$ishidden,$isencrypted,$plain); } sub log_docs { @@ -1001,13 +1004,15 @@ sub log_docs { my $parmidx; my %parmaction=(); my %parmvalue=(); + my $changedflag; sub snapshotbefore { - @oldresources=@Apache::lonratedt::resources; - @oldorder=@Apache::lonratedt::order; + @oldresources=@LONCAPA::map::resources; + @oldorder=@LONCAPA::map::order; $parmidx=undef; %parmaction=(); %parmvalue=(); + $changedflag=0; } sub remember_parms { @@ -1015,13 +1020,13 @@ sub log_docs { $parmidx=$idx; $parmaction{$parameter}=$action; $parmvalue{$parameter}=$value; + $changedflag=1; } sub log_differences { - my $r=shift; - my %storehash=('folder' => $env{'form.folder'}); + my ($plain)=@_; + my %storehash=('folder' => $plain); if ($parmidx) { - $storehash{'parameter_idx'}=$parmidx; $storehash{'parameter_res'}=$oldresources[$parmidx]; foreach my $parm (keys %parmaction) { $storehash{'parameter_action_'.$parm}=$parmaction{$parm}; @@ -1029,22 +1034,23 @@ sub log_docs { } } my $maxidx=$#oldresources; - if ($#Apache::lonratedt::resources>$#oldresources) { - $maxidx=$#Apache::lonratedt::resources; + if ($#LONCAPA::map::resources>$#oldresources) { + $maxidx=$#LONCAPA::map::resources; } for (my $idx=0; $idx<=$maxidx; $idx++) { if ($LONCAPA::map::resources[$idx] ne $oldresources[$idx]) { $storehash{'before_resources_'.$idx}=$oldresources[$idx]; $storehash{'after_resources_'.$idx}=$LONCAPA::map::resources[$idx]; + $changedflag=1; } if ($LONCAPA::map::order[$idx] ne $oldorder[$idx]) { - $storehash{'before_order_'.$idx}=$oldorder[$idx]; - $storehash{'after_order_'.$idx}=$LONCAPA::map::order[$idx]; - $storehash{'before_order_res_'.$idx}=$oldresources[$idx]; - $storehash{'after_order_res_'.$idx}=$LONCAPA::map::resources[$idx]; + $storehash{'before_order_res_'.$idx}=$oldresources[$oldorder[$idx]]; + $storehash{'after_order_res_'.$idx}=$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]; + $changedflag=1; } } - &log_docs(\%storehash); + $storehash{'maxidx'}=$maxidx; + if ($changedflag) { &log_docs(\%storehash); } } } @@ -1056,32 +1062,37 @@ sub docs_change_log { my ($r)=@_; $r->print(&Apache::loncommon::start_page('Course Document Change Log')); $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Document Change Log')); - + my %docslog=&Apache::lonnet::dump('nohist_docslog', $env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'}); - + if ((keys(%docslog))[0]=~/^error\:/) { undef(%docslog); } - + $r->print('
'. ''); - + my %saveable_parameters = ('show' => 'scalar',); &Apache::loncommon::store_course_settings('docs_log', \%saveable_parameters); &Apache::loncommon::restore_course_settings('docs_log', \%saveable_parameters); if (!$env{'form.show'}) { $env{'form.show'}=10; } - + my %lt=('hiddenresource' => 'Resources hidden', + 'encrypturl' => 'URL hidden', + 'randompick' => 'Randomly pick', + 'set' => 'set to', + 'del' => 'deleted'); + my $countselect = &Apache::lonmeta::selectbox('show',$env{'form.show'},undef, (&mt('all'),10,20,50,100,1000,10000)); - + $r->print(''.&mt('[_1] Records',$countselect).''. '
'); $r->print(&Apache::loncommon::start_data_table().&Apache::loncommon::start_data_table_header_row(). - ''.&mt('Time').''.&mt('User').''.&mt('Extent').''.&mt('Users').''. - &mt('Parameter').''.&mt('Part').''.&mt('New Value').''.&mt('Announce').''. + ''.&mt('Time').''.&mt('User').''.&mt('Folder').''.&mt('Before').''. + &mt('After').''. &Apache::loncommon::end_data_table_header_row()); my $shown=0; foreach my $id (sort { $docslog{$b}{'exe_time'}<=>$docslog{$a}{'exe_time'} } (keys(%docslog))) { @@ -1109,9 +1120,54 @@ sub docs_change_log { '.$about_me_link. '
'.$docslog{$id}{'exe_uname'}. ':'.$docslog{$id}{'exe_udom'}.''. - $send_msg_link.''); - - $r->print(&Apache::loncommon::end_data_table_row()); + $send_msg_link.''. + $docslog{$id}{'logentry'}{'folder'}.''); +# Before + for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { + my $oldname=(split(/\:/,$docslog{$id}{'logentry'}{'before_resources_'.$idx}))[0]; + my $newname=(split(/\:/,$docslog{$id}{'logentry'}{'after_resources_'.$idx}))[0]; + if ($oldname ne $newname) { + $r->print(&LONCAPA::map::qtescape($oldname)); + } + } + $r->print(''); +# After + $r->print(''); + + for (my $idx=0;$idx<=$docslog{$id}{'logentry'}{'maxidx'};$idx++) { + my $oldname=(split(/\:/,$docslog{$id}{'logentry'}{'before_resources_'.$idx}))[0]; + my $newname=(split(/\:/,$docslog{$id}{'logentry'}{'after_resources_'.$idx}))[0]; + if ($oldname ne $newname) { + $r->print(&LONCAPA::map::qtescape($newname)); + } + } + $r->print(''); + if ($docslog{$id}{'logentry'}{'parameter_res'}) { + $r->print(&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'parameter_res'}))[0]).':'); + } +# End + $r->print(''.&Apache::loncommon::end_data_table_row()); $shown++; if (!($env{'form.show'} eq &mt('all') || $shown<=$env{'form.show'})) { last; } @@ -1142,7 +1198,7 @@ sub editor { $env{'form.markedcopy_title'}=$title; $env{'form.markedcopy_url'}=$url; } - my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted)=&breadcrumbs($folder); + my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain)=&breadcrumbs($folder); $r->print($breadcrumbtrail); if ($fatal) { $r->print('

'.$errtext.'

'); @@ -1177,6 +1233,12 @@ sub editor { &LONCAPA::map::delparameter($idx,'parameter_encrypturl'); &remember_parms($idx,'encrypturl','del'); } +# store the changed version + ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); + if ($fatal) { + $r->print('

'.$errtext.'

'); + return; + } } if ($env{'form.newpos'}) { @@ -1329,7 +1391,7 @@ sub editor { } } # Store the changed version - ($errtext,$fatal)=group_import($coursenum, $coursedom, $folder, + ($errtext,$fatal)=&group_import($coursenum, $coursedom, $folder, $container,'londocs',@imports); if ($fatal) { $r->print('

'.$errtext.'

'); @@ -1356,7 +1418,7 @@ sub editor { $r->print('

'.&mt('No map selected.').'

'); } } - &log_differences($r); + &log_differences($plain); } # ---------------------------------------------------------------- End commands # ---------------------------------------------------------------- Print screen @@ -2297,6 +2359,7 @@ sub handler { 'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages'); $help{'My Personal Info'} = &Apache::loncommon::help_open_topic( 'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages'); + $help{'Group Files'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files'); $help{'Caching'} = &Apache::loncommon::help_open_topic('Caching'); # does this user have privileges to modify docs @@ -2491,6 +2554,7 @@ sub handler { 'scuf' => 'Score Upload Form', 'bull' => 'Bulletin Board', 'mypi' => 'My Personal Info', + 'grpo' => 'Group Files', 'abou' => 'About User', 'imsf' => 'Import IMS package', 'file' => 'File', @@ -2530,7 +2594,7 @@ sub handler { $containertag
- + $uploadtag
@@ -2644,7 +2708,7 @@ ENDFORM
$uploadtag - + $help{'Adding_External_Resource'} @@ -2662,7 +2726,7 @@ ENDFORM $r->print(< - + $help{'Adding_Fold
- + $help{'Adding_Page
$uploadtag - + $help{'Syllabus'} @@ -2689,8 +2753,8 @@ value="Syllabus=/public/$coursedom/$cour
$uploadtag - + $help{'Navigate_Content'} @@ -2698,7 +2762,7 @@ $help{'Navigate_Content'}
$uploadtag - + $help{'Simple Page'} @@ -2706,7 +2770,7 @@ onClick="javascript:makesmppage();" /> $
$uploadtag - + $help{'Simple Problem'} @@ -2714,7 +2778,7 @@ onClick="javascript:makesmpproblem();" /
$uploadtag - + @@ -2722,7 +2786,7 @@ onClick="javascript:makedropbox();" />
$uploadtag - + @@ -2731,7 +2795,7 @@ $help{'Score_Upload_Form'}
$uploadtag - + @@ -2740,8 +2804,8 @@ $help{'Bulletin Board'}
$uploadtag - + $help{'My Personal Info'} @@ -2749,19 +2813,28 @@ $help{'My Personal Info'}
$uploadtag - +
+
+$uploadtag + + + +$help{'Group Files'} + +
ENDFORM } if ($env{'form.pagepath'}) { $r->print(< $uploadtag - + $help{'Simple Problem'} @@ -2769,7 +2842,7 @@ onClick="javascript:makesmpproblem();" /
$uploadtag - + @@ -2833,7 +2906,7 @@ $lt{'comment'}:
- +
$help{'Adding_Fol
- + $help{'Adding_Ext
- + $help{'Syllabus'} @@ -2860,8 +2933,8 @@ $help{'Syllabus'}
- + $help{'My Personal Info'}