Diff for /loncom/imspackages/imsimportdocs.pm between versions 1.24 and 1.26

version 1.24, 2009/11/06 17:16:53 version 1.26, 2009/11/20 14:39:32
Line 165  sub handler { Line 165  sub handler {
     my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});      my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
     unless ($allowed) {      unless ($allowed) {
         $r->print(&Apache::loncommon::start_page('Import IMS package',undef,          $r->print(&Apache::loncommon::start_page('Import IMS package',undef,
  {'only_body' => 1,}));                                                     {'only_body' => 1,}));  
         $r->print('<h3>'.&mt('Modification of Course Contents Disallowed').'</h3>'.&mt('Your current role does not grant you the right to modify course content in this course.').          $r->print(
   &Apache::loncommon::end_page());              '<p class="LC_error">'
              .&mt('Modification of Course Contents Disallowed')
              .'</p><p>'
              .&mt('Your current role does not grant you the right to modify course content in this course.')
              .'</p>'
              .&Apache::loncommon::end_page()
           );
         return OK;          return OK;
     }      }
   
Line 183  sub handler { Line 189  sub handler {
     }      }
   
     $javascript =       $javascript = 
  "<script type=\"text/javascript\">\n".          "<script type=\"text/javascript\">\n".
  "//<!--\n$javascript\n// --></script>\n";          "//<!--\n$javascript\n// --></script>\n";
     my $start_page = &Apache::loncommon::start_page('Import IMS package',      my $headline = 'Import IMS package';
     $javascript,      my $start_page = &Apache::loncommon::start_page($headline,
     {'only_body' => 1,});                                                      $javascript,
                                                       {'only_body' => 1,})
                       .'<h1>'.&mt($headline).'</h1>';
 # print screen  # print screen
     $r->print($start_page);      $r->print($start_page);
   
Line 261  sub display_two { Line 269  sub display_two {
     my %hrefs = ();      my %hrefs = ();
     my %resinfo = ();      my %resinfo = ();
     my %count = ();      my %count = ();
     my @bgcolors = ("#eeeeee","#dddddd");  
   
     my $counter = 0;      my $counter = 0;
     my $iter = 0;  
     my %count = (      my %count = (
                 announce => 0,                  announce => 0,
                 board => 0,                  board => 0,
Line 278  sub display_two { Line 283  sub display_two {
                 users => 0,                  users => 0,
                 );                  );
   
     if ($unzip_result eq 'ok') {      if ($unzip_result ne 'ok') {
         $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo,'choose',\%includedres,\%includeditems);          $r->print(
         if ($manifest_result eq 'ok') {              '<p class="LC_warning">'
             foreach my $res (sort keys %resources) {             .&mt('Processing of your IMS package failed because the file you'
                 if ($cms eq 'bb5' || $cms eq 'bb6' || $cms eq 'webctce4') {                 .' uploaded could not be unzipped.')
                     foreach my $area (keys %{$cmsmap{$cms}}) {             .'</p>'
                         if ($resources{$res}{type} eq $cmsmap{$cms}{$area}) {          );
                             $count{$area} ++;          return();
                         }      }
                     }  
                 } elsif ($cms eq 'angel5') {      # Get manifest file from package
                     foreach my $area (keys %{$cmsmap{$cms}}) {      $manifest_result = &Apache::imsprocessor::process_manifest(
                         if ($area eq 'doc') {                             $cms,$tempdir,\%resources,\%items,\%hrefs,
                             if (grep/^$resources{$res}{type}$/,@{$cmsmap{$cms}{doc}}) {                             \%resinfo,'choose',\%includedres,\%includeditems);
                                 $count{$area} ++;      if ($manifest_result ne 'ok') {
                             }          $r->print(
                         } elsif ($resources{$res}{type} eq $cmsmap{$cms}{$area}) {             '<p class="LC_warning">'
                             $count{$area} ++;            .&mt('Unpacking of your IMS package failed because an IMS manifest file was not located in the package.')
                         }            .'</p>'
                     }          );
           return();
       }
   
       # Count areas depending on cms version
       foreach my $res (sort keys %resources) {
           if ($cms eq 'bb5' || $cms eq 'bb6' || $cms eq 'webctce4') {
               foreach my $area (keys %{$cmsmap{$cms}}) {
                   if ($resources{$res}{type} eq $cmsmap{$cms}{$area}) {
                       $count{$area} ++;
                 }                  }
             }              }
             $r->print(<<ENDBLOCK);          } elsif ($cms eq 'angel5') {
 <form name="pickoptions" method="post">              foreach my $area (keys %{$cmsmap{$cms}}) {
   <table border='0' bgcolor='#F6F6F6'' cellspacing='0' cellpadding ='0' width='100%'>                  if ($area eq 'doc') {
    <tr>                      if (grep/^$resources{$res}{type}$/,@{$cmsmap{$cms}{doc}}) {
     <td colspan='2'>                          $count{$area} ++;
      <table border='0' cellspacing='0' cellpadding='0'>  
       <tr>  
        <td colspan='2'  align='left'>&nbsp;  
        </td>  
       </tr>  
       <tr bgcolor='#CCCCFF'>  
        <td valign="middle"><img src="/res/adm/pages/bl_step3.gif" alt="3" />  
        </td>  
        <td width='100%' align='left'>&nbsp;&nbsp;  
         <font face='arial,helvetica,sans-serif'><b>Choose which content types you wish to import</b></font>  
        </td>  
       </tr>  
       <tr>  
        <td colspan='2'>&nbsp;</td>  
       </tr>  
       <tr>  
        <td>&nbsp;</td>  
        <td>  
         <table border='0' cellspacing='0' cellpadding='1' bgcolor='#000000'>  
          <tr>  
           <td>  
            <table border='0' cellspacing='0' cellpadding='0' bgcolor='#ffffff' width='100%'>  
             <tr>  
              <td>  
               <table border='0' cellspacing='1' cellpadding='1' bgcolor='#ffffff' width='100%'>  
                <tr bgcolor='#CCCCFF'>  
                 <td align='center'><font face='arial,helvetica,sans-serif'><b>Import?</b></font></td>             
                 <td align='center'><font face='arial,helvetica,sans-serif'><b>Content type</b></font></td>  
                 <td align='center'><font face='arial,helvetica,sans-serif'><b>Additional options</b></font></td>  
                </tr>  
 ENDBLOCK  
             foreach my $area (@{$areasref}) {  
                 if ($count{$area} > 0) {  
                     my $count_tag = 'flag_'.$counter;  
                     $r->print("               <tr bgcolor='@bgcolors[$iter]'>  
                 <td align='left'><font face='arial,helvetica,sans-serif'><input name='$area' type='checkbox' ");  
                     if ($area eq 'board' || $area eq 'users') {  
                         $r->print(qq|onClick='javascript:setOptions("$area","$counter")'|);  
                     }                      }
                     $r->print("/></font></td>                  } elsif ($resources{$res}{type} eq $cmsmap{$cms}{$area}) {
                 <td align='left'><font face='arial,helvetica,sans-serif'>&nbsp;&nbsp;$$areaname{$area}&nbsp;&nbsp; - $count{$area} item(s)</font></td>");                      $count{$area} ++;
                     if ($area eq 'board') {  
                         $r->print("            <td align='left'><font face='arial,helvetica,sans-serif'>&nbsp;&nbsp;  
                  <select name='db_handling'>  
                   <option value='-2'>&lt;-- Check Import first</option>  
                  </select></font>  
                 </td>");  
                     } elsif ($area eq 'users') {  
                         $r->print("            <td align='left'><font face='arial,helvetica,sans-serif'>&nbsp;&nbsp;  
                  <select name='user_handling'>  
                   <option value='-2'>&lt;-- Check Import first</option>  
                  </select>  
                  </font>          
                 </td>");  
                     } else {  
                         $r->print("            <td align='left'><font face='arial,helvetica,sans-serif'>&nbsp;&nbsp;None<input type='hidden' name='$count_tag' /></font></td>");  
                     }  
                     $counter ++;  
                     $iter = $counter%2;  
                 }                  }
             }              }
             $r->print(<<ENDDOCUMENT);          } else { # Unknown cms format
                </tr>  
               </table>  
              </td>  
             </tr>  
            </table>  
           </td>  
          </tr>  
         </table>  
        </td>  
       </tr>  
       <tr>  
        <td colspan='2'>&nbsp;<br /><br /></td>  
       </tr>  
       <tr bgcolor='#CCCCFF'>  
        <td valign="middle"><img src="/res/adm/pages/bl_step4.gif" alt="4" />  
        </td>  
        <td width='100%' align='left'>&nbsp;&nbsp;  
         <font face='arial,helvetica,sans-serif'><b>Choose display options for listing of contents of top level of package</b></font>  
        </td>  
       </tr>  
       <tr>  
        <td colspan='2'>&nbsp;</td>  
       </tr>  
       <tr>  
        <td>&nbsp;</td>  
        <td>  
         <table border='0'>  
          <tr>  
           <td><font face='arial,helvetica,sans-serif'><label><input type="radio" name="toplevel" value="newfolder" />Display listing of contents in a new folder, with folder name:</label>&nbsp;&nbsp;&nbsp;<input type="text" name="foldername" size="15" value="Type Name Here" /></font></td>  
          </tr>  
          <tr>  
           <td><font face='arial,helvetica,sans-serif'><label><input type="radio" name="toplevel" value="oldfolder" />Append listing of contents of top level of package to contents list for the current folder.</label></font></td>  
          </tr>  
         </table>  
        </td>  
       </tr>  
       <tr>  
        <td colspan='2'>&nbsp;</td>  
       </tr>  
       <tr>  
        <td>&nbsp;</td>  
        <td><font face='arial,helvetica,sans-serif'>Once you have checked the checkboxes for all areas you wish to import from the IMS package, selected options (if available), and selected a display option for the package contents you should click the 'Complete Import' button.</font></td>  
       </tr>  
       <tr>  
        <td colspan='2'>&nbsp;  
           <input type="hidden" name="folder" value="$env{'form.folder'}" />  
           <input type="hidden" name="source" value="$cms" />  
           <input type="hidden" name="tempdir" value="$tempdir" />  
           <input type="hidden" name="phase" value="three" />  
        </td>  
       </tr>  
       <tr>  
        <td colspan='2'>  
         <table border='0' cellspacing='0' cellpadding='0' width="100%">  
          <tr>  
           <td align='left'>  
            <input type='button' name='exitpage' value='Cancel' onClick="javascript:self.close()" />  
           </td>  
           <td align='right'>  
            <input type="button" name="nextpage" value="Complete Import" onClick="javascript:nextPage($counter)" />  
           </td>  
          </tr>  
         </table>  
        </td>  
       </tr>  
      </table>  
     </td>  
    </tr>  
   </table>  
 ENDDOCUMENT  
         } else {  
             $r->print(              $r->print(
                '<p class="LC_warning">'                  '<span class="LC_warning">'
                .&mt('Unpacking of your IMS package failed because an IMS manifest file was not located in the package.')                 .&mt('Unsupported IMS format: [_1]',$cms)
                .'</p>'                 .'</span><br />'
             );              );
               # return();
           }
       }
   
   
       # Start output: Step 3 and step 4
   
       $r->print(
           '<form name="pickoptions" method="post">'
          .&Apache::lonhtmlcommon::topic_bar(
               3,&mt('Choose which content types you wish to import'))
          .'<p>'
          .&mt('Check the checkboxes for all areas you wish to import from the IMS package:')
          .'</p>'
       );
   
       $r->print(
           &Apache::loncommon::start_data_table()
          .&Apache::loncommon::start_data_table_header_row()
          .'<th>'.&mt('Import?').'</th>'
          .'<th>'.&mt('Content type').'</th>'
          .'<th>'.&mt('Additional options').'</th>'
          .&Apache::loncommon::end_data_table_header_row()
       );
   
       # Display import row for each area/content type
       foreach my $area (@{$areasref}) {
           unless ($count{$area} > 0) { next };
   
           my $count_tag = 'flag_'.$counter;
   
           # Checkbox: Import?
           $r->print(
               &Apache::loncommon::start_data_table_row()
              .'<td><input name="'.$area.'" type="checkbox"'
           );
           if ($area eq 'board' || $area eq 'users') {
               $r->print(qq| onclick='javascript:setOptions("$area","$counter")'|);
         }          }
     } else {  
           $r->print(' /></td>');
   
           # Content Type
         $r->print(          $r->print(
             '<p class="LC_warning">'              '<td>'
            .&mt('Processing of your IMS package failed because the file you'             .$$areaname{$area}.'&nbsp;&nbsp; - '
                .' uploaded could not be unzipped.')             .&mt('[quant,_1,item]',$count{$area})
            .'</p>'             .'</td>'
         );          );
   
           # Additional Options
           $r->print('<td>');
           if ($area eq 'board') {
               $r->print(
                   '<select name="db_handling">'
                  .'<option value="-2">&lt;-- '.&mt('Check Import first').'</option>'
                  .'</select>'
               );
           } elsif ($area eq 'users') {
               $r->print(
                   '<select name="user_handling">'
                  .'<option value="-2">&lt;-- '.&mt('Check Import first').'</option>'
                  .'</select>'
               );
           } else {
               $r->print(
                   &mt('None')
                  .'<input type="hidden" name="'.$count_tag.'" />'
               );
           }
           $r->print('</td>');
   
           $r->print(&Apache::loncommon::end_data_table_row());
           $counter ++;
     }      }
   
       $r->print(&Apache::loncommon::end_data_table());
   
       $r->print(
           &Apache::lonhtmlcommon::topic_bar(
               4,&mt('Choose display options for listing of contents of top level of package'))
          .'<p>'
          .&mt('Select a display option for the package content:')
          .'</p>'
       );
       $r->print(
           '<label>'
          .'<input type="radio" name="toplevel" value="newfolder" />'
          .&mt('Display listing of contents in a new folder, with folder name:')
          .'</label>'
          .' <input type="text" name="foldername" size="15" value="'.&mt('Type Name Here').'" />'
          .'<br />'
          .'<label>'
          .'<input type="radio" name="toplevel" value="oldfolder" />'
          .&mt('Append listing of contents of top level of package to contents list for the current folder.')
          .'</label>'
       );
   
       # Buttons
       $r->print(
           '<input type="hidden" name="folder" value="'.$env{'form.folder'}.'" />'
          .'<input type="hidden" name="source" value="'.$cms.'" />'
          .'<input type="hidden" name="tempdir" value="'.$tempdir.'" />'
          .'<input type="hidden" name="phase" value="three" />'
       );
       $r->print(
           '<hr />'
          .'<p>'
          .'<input type="button" name="exitpage" value="'.&mt('Cancel').'"'
          .' onclick="javascript:self.close()" />'
          .' '
          .'<input type="button" name="nextpage" value="'.&mt('Finish Import').'"'
          .' onclick="javascript:nextPage('.$counter.')" />'
          .'</p>'
       );
   
      $r->print('</form>');
 }  }
   
   

Removed from v.1.24  
changed lines
  Added in v.1.26


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>