Diff for /rat/lonratedt.pm between versions 1.95 and 1.112

version 1.95, 2009/05/20 13:55:40 version 1.112, 2016/01/15 19:13:04
Line 43  use HTML::Entities(); Line 43  use HTML::Entities();
 # --------------------------------------------------------- Build up RAT screen  # --------------------------------------------------------- Build up RAT screen
 sub ratedt {  sub ratedt {
   my ($r,$url)=@_;    my ($r,$url)=@_;
   my %layout = ('border' => "0");  
     if ($env{'environment.remote'} eq 'off') {  
       $layout{'rows'} = "1,250,*";  
   } else {  
       $layout{'rows'} = "1,70,*";  
   }  
   my $js ='  
 <script type="text/javascript">  
     var flag=0;  
 </script>';  
   
   my $start_page =   
       &Apache::loncommon::start_page('Edit Sequence',$js,  
      {'frameset'    => 1,  
       'add_entries' => \%layout});  
   
   my $end_page =   
       &Apache::loncommon::end_page({'frameset' => 1});  
   
   $r->print(<<ENDDOCUMENT);    $r->print(<<ENDDOCUMENT);
 $start_page  <!DOCTYPE html>
 <frame name="server" src="$url/loadonly/ratserver" noresize="noresize"  <html>
        noscroll="noscroll" />    <head>
 <frame name="code" src="$url/loadonly/adveditmenu" />      <title>Edit Sequence</title>
 <frame name="mapout" src="/adm/rat/map.html" />      
 $end_page      <style>
   html, body {
     margin: 0;
     padding: 0;
   }
   #server {
     display: none;
   }
   #top {
     position: absolute;
     left: 0;
     top: 0;
     width: 100%;
     height: 20%;
     border: 0;
   }
   #bottom {
     position: absolute;
     left: 0;
     bottom: 0;
     width: 100%;
     height: 80%;
     border: 0;
   }
   #code, #mapout {
     position: absolute;
     width: 100%;
     height: 100%;
     border: 0;
   }
   #infout {
     position: absolute;
     z-index: 1;
     right: 16px;
     bottom: 0;
     width: 420px;
     min-width: 200px;
     height: 300px;
     border: 1px solid black;
     overflow: auto;
   }
       </style>
     </head>
     
     <body>
       <iframe id="server" name="server" src="$url/loadonly/ratserver"></iframe>
       <div id="top"><iframe id="code" name="code" src="$url/loadonly/adveditmenu"></iframe></div>
       <div id="bottom"><iframe id="mapout" name="mapout" src="/adm/rat/map.html"></iframe></div>
       <iframe id="infout"></iframe>
       <script>
   var flag=0;
   
   var resize = function(e) {
       // auto-resize top iframe
       var code = document.getElementById('code');
       var codedoc = (code.contentDocument) ? code.contentDocument : code.contentWindow.document;
       var top = document.getElementById('top');
       top.style.height = ''; // reset height in case it needs to be reduced
       codedoc.body.style.overflow = 'hidden'; // to hide scrollbar
       var topHeight = codedoc.body.scrollHeight;
       top.style.height = topHeight + 'px';
       // set remainder to the other iframe
       var bottom = document.getElementById('bottom');
       bottom.style.height = window.innerHeight - topHeight + 'px';
       // fix right position of infout depending on scrollbar width
       var mapout = document.getElementById('mapout');
       var mapoutdoc = (mapout.contentDocument) ? mapout.contentDocument : mapout.contentWindow.document;
       var infout = document.getElementById('infout');
       infout.style.right = (mapout.offsetWidth - mapoutdoc.body.clientWidth) + 'px';
   }
   var iframe = document.getElementById('code');
   iframe.onload = resize;
   window.addEventListener('resize', resize, false);
       </script>
       
     </body>
   </html>
 ENDDOCUMENT  ENDDOCUMENT
 }  }
   
Line 76  ENDDOCUMENT Line 133  ENDDOCUMENT
   
 sub buttons {  sub buttons {
     my $adv=shift;      my $adv=shift;
     my $output='<form method="post">';           my $output='<form method="post" action="">';     
     if ($adv==1) {      if ($adv==1) {
  $output.='<input type="submit" name="forceadv" value="'.&mt('Edit').'" />'.          $output.=
     &Apache::loncommon::help_open_topic('Sequence_Advanced_Editor_Creation');              '<input type="submit" name="forceadv"'
              .' value="'.&mt('Edit').'" />'
              .&Apache::loncommon::help_open_topic(
                   'Sequence_Advanced_Editor_Creation');
     } else {      } else {
         unless ($adv==2) {          unless ($adv==2) {
            $output.='<input type="submit" name="forcesmp" value="'.&mt('Simple Edit').'" />'.             $output.=
     &Apache::loncommon::help_open_topic('Sequence_Simple_Editor_Creation');                 '<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').'" />'.          $output.=
     &Apache::loncommon::help_open_topic('Sequence_Advanced_Editor_Creation');              '<input type="submit" name="forceadv"'
              .' value="'.&mt('Advanced Edit').'" />'
              .&Apache::loncommon::help_open_topic(
                   'Sequence_Advanced_Editor_Creation');
     }      }
     return $output.'</form>';      return $output.'</form>';
 }  }
Line 145  function idxopen(mode) { Line 212  function idxopen(mode) {
 }  }
   
 // ------------------------------------------------------ Open groupsort window  // ------------------------------------------------------ Open groupsort window
 function groupopen(url,recover,bookmarks) {  function groupopen(url,recover) {
    var options="scrollbars=1,resizable=1,menubar=0";     var options="scrollbars=1,resizable=1,menubar=0";
    idxflag=1;     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();     idx.focus();
 }  }
   
Line 223  sub smpedt { Line 290  sub smpedt {
        my ($errtext,$fatal)=         my ($errtext,$fatal)=
    &LONCAPA::map::mapread(&Apache::lonnet::filelocation('',$url),'');     &LONCAPA::map::mapread(&Apache::lonnet::filelocation('',$url),'');
        unless ($fatal) {         unless ($fatal) {
    $targetmsg='<b>'.&mt('Saved.').'</b><br />';     $targetmsg=&Apache::lonhtmlcommon::confirm_success(&mt('Saved'));
        } else {         } 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'}) {     if ($env{'form.revert'}) {
        $targetmsg='<b>'.&mt('Reverted.').'</b><br />';         $targetmsg=&Apache::lonhtmlcommon::confirm_success(&mt('Reverted'));
        unlink($tmpfn);         unlink($tmpfn);
        my ($errtext,$fatal)=         my ($errtext,$fatal)=
    &LONCAPA::map::mapread(&Apache::lonnet::filelocation('',$url),'');     &LONCAPA::map::mapread(&Apache::lonnet::filelocation('',$url),'');
    }     }
      $targetmsg = &Apache::loncommon::confirmwrapper($targetmsg) if ($targetmsg);
    if (-e $tmpfn) {     if (-e $tmpfn) {
       $targetmsg=        $targetmsg=
         '<span class="LC_warning">'.&mt('You are working with an unsaved version of your map.').'</span><br />';          '<p class="LC_warning">'
          .&mt('You are working with an unsaved version of your map.')
          .'</p>';
       my ($errtext,$fatal)=&LONCAPA::map::mapread($tmpfn,'');        my ($errtext,$fatal)=&LONCAPA::map::mapread($tmpfn,'');
    }     }
      $errtext = '<p class="LC_error">'.$errtext.'</p>' if ($errtext);
 # ---------------------------------------------------------- Process form input  # ---------------------------------------------------------- Process form input
   
    my @importselect=&Apache::loncommon::get_env_multiple('form.importsel');     my @importselect=&Apache::loncommon::get_env_multiple('form.importsel');
Line 481  sub smpedt { Line 553  sub smpedt {
    my $editscript=&editscript('simple');     my $editscript=&editscript('simple');
   
    my %lt=&Apache::lonlocal::texthash(     my %lt=&Apache::lonlocal::texthash(
         'sm' => 'Select Map',
       'sa' => 'Save',        'sa' => 'Save',
       'nt' => 'New Title',        'nt' => 'New Title',
       'se' => 'Search',        'se' => 'Search',
       'im' => 'Import',        'im' => 'Import',
                                       'bk' => 'Import Bookmarks',                                        'wl' => 'Import from Stored Links',
       'vi' => 'View',        'vi' => 'View',
       'lm' => 'Load Map',        'lm' => 'Load Map',
       'ds' => 'Discard Selected',        'ds' => 'Discard Selected',
Line 502  sub smpedt { Line 575  sub smpedt {
                                       'pas' => 'Paste after selected',                                        'pas' => 'Paste after selected',
                                       'reco' => 'Recover Deleted'                                        'reco' => 'Recover Deleted'
       );        );
    my $js=<<ENDJS;     my $js=&Apache::lonhtmlcommon::scripttag("
 <script type="text/javascript">  
   
    $editscript     $editscript
   
    function openview(entry) {     function openview(entry) {
Line 536  sub smpedt { Line 607  sub smpedt {
    document.forms.simpleedit.submit();     document.forms.simpleedit.submit();
        }         }
    }     }
   ");
   
 </script>      &Apache::lonhtmlcommon::clear_breadcrumbs();
 ENDJS      &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  => '',});
   
     my $start_page = &Apache::loncommon::start_page('Construction Space',$js)      # Breadcrumbs are included by &start_page
                     .&Apache::lonhtmlcommon::breadcrumbs(# FIXME add breadcrumbs      my $start_page = &Apache::loncommon::start_page('Authoring Space',$js)
                          &Apache::loncommon::help_open_menu('Sequence_Simple_Editor_Creation',  
                              'Sequence_Simple_Editor_Creation',  
                              6,'RAT'))  
                     .&Apache::loncommon::head_subbox(                      .&Apache::loncommon::head_subbox(
                          &Apache::loncommon::CSTR_pageheader()                           &Apache::loncommon::CSTR_pageheader()
                         .&buttons(2));                          .&buttons(2));
     my $end_page = &Apache::loncommon::end_page();      my $end_page = &Apache::loncommon::end_page();
   
       my $filetext = &mt('File: [_1]','<span class="LC_filename">'.$url.'</span>');
     $r->print(<<ENDSMPHEAD);      $r->print(<<ENDSMPHEAD);
 $start_page  $start_page
 <span class="LC_error">$errtext</span>  $targetmsg
 <form name="simpleedit" method="post">  $errtext
   <form name="simpleedit" method="post" action="">
 <input type="hidden" name="forcesmp" value="1" />  <input type="hidden" name="forcesmp" value="1" />
 <input type="hidden" name="renameres" value="0" />  <input type="hidden" name="renameres" value="0" />
 <input type="hidden" name="renametitle" value="" />  <input type="hidden" name="renametitle" value="" />
Line 561  $start_page Line 645  $start_page
 <table>  <table>
     <tr><th width="40%">$lt{'ta'}</th>      <tr><th width="40%">$lt{'ta'}</th>
 <th>&nbsp;</th>  <th>&nbsp;</th>
 <th width="40%">File: $url</th></tr>  <th width="40%">$filetext</th></tr>
 <tr><td bgcolor="#FFFFCC">  <tr><td bgcolor="#FFFFCC">
 <input type="button" onClick="javascript:groupsearch()" value="$lt{'se'}" />  <input type="button" onclick="javascript:groupsearch()" value="$lt{'se'}" />
 <input type="button" onClick="javascript:groupimport();" value="$lt{'im'}" />  <input type="button" onclick="javascript:groupimport();" value="$lt{'im'}" />
 $lt{'as'}  $lt{'as'}
 <hr />  <hr />
 <input type="text" size="20" name="importmap" />  <input type="text" size="20" name="importmap" />
 <input type="button"   <input type="button" 
 onClick="javascript:openbrowser('simpleedit','importmap','sequence,page','')"  onclick="javascript:openbrowser('simpleedit','importmap','sequence,page','')"
 value="Select Map" /><input type="submit" name="loadmap" value="$lt{'lm'}" /><hr />  value="$lt{'sm'}" /><input type="submit" name="loadmap" value="$lt{'lm'}" /><hr />
 <input type="submit" name="discard" value="$lt{'ds'}" />  <input type="submit" name="discard" value="$lt{'ds'}" />
 <input type="submit" name="clear" value="$lt{'ca'}" />  <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>&nbsp;</td><td bgcolor="#FFFFCC">      </td><td>&nbsp;</td><td bgcolor="#FFFFCC">
   
 <input type="button" onClick=  <input type="button" onclick=
 "javascript:impfortarget.value=1;groupsearch()" value="$lt{'se'}" />  "javascript:impfortarget.value=1;groupsearch()" value="$lt{'se'}" />
 <input type="button" onClick=  <input type="button" onclick=
 "javascript:impfortarget.value=1;groupimport();" value="$lt{'im'}" />  "javascript:impfortarget.value=1;groupimport();" value="$lt{'im'}" />
 <input type="button" onClick=  <input type="button" onclick=
 "javascript:impfortarget.value=1;groupopen(0,1,1);" value="$lt{'bk'}" />  "javascript:impfortarget.value=1;open_StoredLinks_Import('simple');" value="$lt{'wl'}" />
 <input type="button" onClick=  <input type="button" onclick=
 "javascript:impfortarget.value=1;groupopen('$url',1,0);" value="$lt{'reco'}" />  "javascript:impfortarget.value=1;groupopen('$url',1);" value="$lt{'reco'}" />
 $lt{'as'}  $lt{'as'}
 <hr />  <hr />
 <input type="submit" name="moveup" value="$lt{'mu'}" />  <input type="submit" name="moveup" value="$lt{'mu'}" />
 <input type="submit" name="movedown" value="$lt{'md'}" />  <input type="submit" name="movedown" value="$lt{'md'}" />
 <input type="button" onClick="javascript:renametarget()" value="$lt{'re'}" />  <input type="button" onclick="javascript:renametarget()" value="$lt{'re'}" />
 <hr />$targetmsg  <hr />
 <input type="submit" name="revert" value="$lt{'rv'}" />  <input type="submit" name="revert" value="$lt{'rv'}" />
 <input type="submit" name="save" value="$lt{'sa'}" />  <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>  </td></tr>
   
 <tr><td bgcolor="#FFFFCC"><select name="importsel" size="10" multiple="multiple">  <tr><td bgcolor="#FFFFCC"><select name="importsel" size="10" multiple="multiple">
Line 602  $importwindow Line 686  $importwindow
 </td>  </td>
 <td bgcolor="#FFFFAA" align="center">  <td bgcolor="#FFFFAA" align="center">
 $lt{'cs'}<br />  $lt{'cs'}<br />
 <input type="submit" name="cut" value="<<<" /><p>  <input type="submit" name="cut" value="&lt;&lt;&lt;" />
 <hr />  <hr />
 $lt{'ps'}<br />  $lt{'ps'}<br />
 <input type="submit" name="copy" value="<--" /><p>  <input type="submit" name="copy" value="&lt;--" />
 <h /r>  <hr />
 $lt{'pas'}<br />  $lt{'pas'}<br />
 <input type="submit" name="paste" value="-->" />  <input type="submit" name="paste" value="--&gt;" />
 </td>  </td>
 <td bgcolor="#FFFFCC"><select name="target" size="10" multiple="multiple">  <td bgcolor="#FFFFCC"><select name="target" size="10" multiple="multiple">
 $targetwindow  $targetwindow
 </select>  </select>
   </td></tr>
 </table>  </table>
 <input type="hidden" name="importdetail" value="" />  <input type="hidden" name="importdetail" value="" />
 <input type="hidden" name="curimpdetail" value="$importdetail" />  <input type="hidden" name="curimpdetail" value="$importdetail" />
Line 626  ENDSMPHEAD Line 711  ENDSMPHEAD
 # ----------------------------------------------------------------- No such dir  # ----------------------------------------------------------------- No such dir
 sub nodir {  sub nodir {
    my ($r,$dir)=@_;     my ($r,$dir)=@_;
    $dir=~s{^/home/$LONCAPA::username_re/public_html}{};     my $londocroot = $r->dir_config('lonDocRoot');
    $r->print(&Apache::loncommon::start_page('Construction Space',undef)     my ($path) = ($dir =~ m{^\Q$londocroot\E?(/priv/[^/]+/[^/]+/)});
             .&Apache::lonhtmlcommon::breadcrumbs() # FIXME add breadcrumbs     $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::head_subbox(
                  &Apache::loncommon::CSTR_pageheader())                   &Apache::loncommon::CSTR_pageheader())
             .'<p class="LC_error">'              .'<p class="LC_error">'
Line 642  sub nodir { Line 734  sub nodir {
   
 sub viewmap {  sub viewmap {
     my ($r,$url,$adv,$errtext)=@_;      my ($r,$url,$adv,$errtext)=@_;
   
       &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')      $r->print(&Apache::loncommon::start_page('Edit Content of a Map')
              .&Apache::lonhtmlcommon::breadcrumbs(# FIXME add breadcrumbs  
                   &Apache::loncommon::help_open_menu('','',6,'RAT')) # FIXME help broken?  
              .&Apache::loncommon::head_subbox(               .&Apache::loncommon::head_subbox(
                   &Apache::loncommon::CSTR_pageheader()                    &Apache::loncommon::CSTR_pageheader()
                  .&buttons($adv))                   .&buttons($adv))
Line 657  sub viewmap { Line 761  sub viewmap {
         );          );
     }      }
     my $idx=0;      my $idx=0;
     $r->print('<h1>'.$url.'</h1>');      $r->print('<p><span class="LC_filename">'.$url.'</span></p>');
     if ($adv) {      if ($adv) {
  $r->print('<p class="LC_warning">'   $r->print('<p class="LC_warning">'
                  .&mt('Map contents are not shown in order.')                   .&mt('Map contents are not shown in order.')
Line 670  sub viewmap { Line 774  sub viewmap {
              .'<th>'.&mt('Title in map').'</th>'               .'<th>'.&mt('Title in map').'</th>'
              .'<th>'.&mt('Filename of resource').'</th>'               .'<th>'.&mt('Filename of resource').'</th>'
              .'<th>'.&mt('Link to published 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()               .&Apache::loncommon::end_data_table_header_row()
     );      );
     foreach (&LONCAPA::map::attemptread(&Apache::lonnet::filelocation('',$url))) {      foreach (&LONCAPA::map::attemptread(&Apache::lonnet::filelocation('',$url))) {
Line 689  sub viewmap { Line 793  sub viewmap {
                 $filename = $1;                  $filename = $1;
             }              }
             my $cstrurl = $resurl;              my $cstrurl = $resurl;
             $cstrurl =~ s#^/res/[^/]+/([^/]+)/#/priv/$1/#;              $cstrurl =~ s{^/res/}{/priv/};
             $r->print(&Apache::loncommon::start_data_table_row()              $r->print(&Apache::loncommon::start_data_table_row()
                      .'<td>'                       .'<td>'
                      .'<img src="'.&Apache::loncommon::icon($resfilepath).'" />'                       .'<img src="'.&Apache::loncommon::icon($resfilepath).'" alt="" />'
                      .'</td>'                       .'</td>'
                      .'<td>'                       .'<td>'
                      .&HTML::Entities::encode(&LONCAPA::map::qtescape($title))                       .&HTML::Entities::encode(&LONCAPA::map::qtescape($title))
Line 708  sub viewmap { Line 812  sub viewmap {
             $r->print('</td><td>');              $r->print('</td><td>');
             if ($url) {              if ($url) {
                $r->print('<a href="'.$cstrurl.'">'.                 $r->print('<a href="'.$cstrurl.'">'.
                          &mt('Construction space').'</a>');                           &mt('Authoring Space').'</a>');
             } else {              } else {
                 $r->print('&nbsp;');                  $r->print('&nbsp;');
             }              }

Removed from v.1.95  
changed lines
  Added in v.1.112


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