Diff for /loncom/homework/structuretags.pm between versions 1.579 and 1.585

version 1.579, 2023/11/07 12:26:00 version 1.585, 2024/02/27 22:09:40
Line 297  sub homework_js { Line 297  sub homework_js {
     }      }
     return &Apache::loncommon::resize_textarea_js().      return &Apache::loncommon::resize_textarea_js().
                 &Apache::loncommon::colorfuleditor_js().                  &Apache::loncommon::colorfuleditor_js().
            &setmode_javascript().             &Apache::lonxml::setmode_javascript().
  <<"JS";   <<"JS";
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  // <![CDATA[
Line 409  var postsubmit = '$postsubmit'; Line 409  var postsubmit = '$postsubmit';
 JS  JS
 }  }
   
 sub setmode_javascript {  
     return <<"ENDSCRIPT";  
 <script type="text/javascript">  
 // <![CDATA[  
 function setmode(form,probmode) {  
     var initial = form.problemmode.value;  
     form.problemmode.value = probmode;  
     form.submit();  
     form.problemmode.value = initial;  
 }  
 // ]]>  
 </script>  
 ENDSCRIPT  
 }  
   
 sub page_start {  sub page_start {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name,      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name,
  $extra_head)=@_;   $extra_head)=@_;
Line 835  sub problem_edit_action_button { Line 820  sub problem_edit_action_button {
   
 sub problem_edit_buttons {  sub problem_edit_buttons {
    my ($mode)=@_;     my ($mode)=@_;
      my %editors = &Apache::loncommon::permitted_editors();
 # Buttons that save  # Buttons that save
    my $result = '<div style="float:right">';     my $result = '<div style="float:right">';
    if ($mode eq 'editxml') {     if ($mode eq 'editxml') {
        $result.=&problem_edit_action_button('subsaveedit','saveeditxml','s','Save and EditXML');         if ($editors{'xml'}) {
              $result.=&problem_edit_action_button('subsaveedit','saveeditxml','s','Save and EditXML');
          }
        $result.=&problem_edit_action_button('subsaveview','saveviewxml','v','Save and View');         $result.=&problem_edit_action_button('subsaveview','saveviewxml','v','Save and View');
    } else {     } else {
        $result.=&problem_edit_action_button('subsaveedit','saveedit','s','Save and Edit');         if ($editors{'edit'}) {
              $result.=&problem_edit_action_button('subsaveedit','saveedit','s','Save and Edit');
          }
        $result.=&problem_edit_action_button('subsaveview','saveview','v','Save and View');         $result.=&problem_edit_action_button('subsaveview','saveview','v','Save and View');
    }     }
    $result.="\n</div>\n";     $result.="\n</div>\n";
Line 849  sub problem_edit_buttons { Line 839  sub problem_edit_buttons {
    $result .= '<div>'.     $result .= '<div>'.
               &problem_edit_action_button('subdiscview','discard','d','Discard Edits and View',1);                &problem_edit_action_button('subdiscview','discard','d','Discard Edits and View',1);
    if ($mode eq 'editxml') {     if ($mode eq 'editxml') {
        $result.=&problem_edit_action_button('subedit','edit','e','Edit',1);         if ($editors{'edit'}) {
              $result.=&problem_edit_action_button('subedit','edit','e','Edit',1);
          }
          if ($editors{'daxe'}) {
              $result.=&problem_edit_action_button('subdaxe','daxe','w','Edit with Daxe',1);
          }
        $result.=&problem_edit_action_button('subundo','undoxml','u','Undo',1);         $result.=&problem_edit_action_button('subundo','undoxml','u','Undo',1);
        if (&Apache::loncommon::nocodemirror()) {         if (&Apache::loncommon::nocodemirror()) {
            $result.=&Apache::lonhtmlcommon::dragmath_button("LC_editxmltext",1);             $result.=&Apache::lonhtmlcommon::dragmath_button("LC_editxmltext",1);
        }         }
    } else {     } else {
        $result.=&problem_edit_action_button('subeditxml','editxml','x','EditXML',1);         if ($editors{'xml'}) {
              $result.=&problem_edit_action_button('subeditxml','editxml','x','EditXML',1);
          }
          if ($editors{'daxe'}) {
              $result.=&problem_edit_action_button('subdaxe','daxe','w','Edit with Daxe',1);
          }
        $result.=&problem_edit_action_button('subundo','undo','u','Undo',1);         $result.=&problem_edit_action_button('subundo','undo','u','Undo',1);
    }     }
    $result.="\n</div>";     $result.="\n</div>";
Line 927  sub option { Line 927  sub option {
   
 sub problem_web_to_edit_header {  sub problem_web_to_edit_header {
     my ($rndseed)=@_;      my ($rndseed)=@_;
       my %editors = &Apache::loncommon::permitted_editors();
     my $result .= '<div class="LC_edit_problem_header">';      my $result .= '<div class="LC_edit_problem_header">';
   
     if (!$Apache::lonhomework::parsing_a_task) {      if (!$Apache::lonhomework::parsing_a_task) {
Line 1056  $show_all Line 1057  $show_all
    <hr />     <hr />
    <div>';     <div>';
     $result.='<input type="hidden" name="problemmode" value="view" />';      $result.='<input type="hidden" name="problemmode" value="view" />';
     $result .= '<input type="button" name="submitmode" accesskey="e" value="'.&mt('Edit').'" '.      if ($editors{'edit'}) {
                'onclick="javascript:setmode(this.form,'."'edit'".')" />';          $result .= '<input type="button" name="submitmode" accesskey="e" value="'.&mt('Edit').'" '.
     $result .= '<input type="button" name="submitmode" accesskey="x" value="'.&mt('EditXML').'" '.                     'onclick="javascript:setmode(this.form,'."'edit'".')" />';
                'onclick="javascript:setmode(this.form,'."'editxml'".')" />';      }
     if ($env{'browser.type'} ne 'explorer' || $env{'browser.version'} > 9) {      if ($editors{'xml'}) {
           $result .= '<input type="button" name="submitmode" accesskey="x" value="'.&mt('EditXML').'" '.
                      'onclick="javascript:setmode(this.form,'."'editxml'".')" />';
       }
       if (($editors{'daxe'}) &&
           ($env{'browser.type'} ne 'explorer' || $env{'browser.version'} > 9)) {
         my $uri = $env{'request.uri'};          my $uri = $env{'request.uri'};
         my $daxeurl = '/daxepage'.$uri;          my $daxeurl = '/daxepage'.$uri;
         $result .= '<input type="button" value="'.&mt('Edit with Daxe').'" '.          $result .= '<input type="button" accesskey="w" value="'.&mt('Edit with Daxe').'" '.
                   'onclick="window.open(\''.$daxeurl.'\',\'_blank\');" />';                     'onclick="javascript:setmode(this.form,'."'daxe'".')" />';
     }      }
     $result.='      $result.='
    </div>     </div>
Line 1433  sub needs_linkprot_passback { Line 1439  sub needs_linkprot_passback {
                             $lti_in_use = $domlti{$itemnum};                              $lti_in_use = $domlti{$itemnum};
                         }                          }
                         my ($state,$others,$listed,$scope,$protect,$display,$target,$exit) = split(/,/,$deeplink);                          my ($state,$others,$listed,$scope,$protect,$display,$target,$exit) = split(/,/,$deeplink);
                         my $passback;                          my ($passback,$pbscope);
                         if ($scope eq 'resource') {                          if ($scope eq 'res') {
                             if ($deeplink_symb eq $symb) {                              if ($deeplink_symb eq $symb) {
                                 $passback = 1;                                  $passback = 1;
                                   $pbscope = 'resource';
                             }                              }
                         } elsif ($scope eq 'map') {                          } elsif ($scope eq 'map') {
                             if (&Apache::lonnet::clutter($deeplink_map) eq $map) {                              if (&Apache::lonnet::clutter($deeplink_map) eq $map) {
                                 $passback = 1;                                  $passback = 1;
                                   $pbscope = 'nonrec';
                               }
                           } elsif ($scope eq 'rec') {
                               if (&Apache::lonnet::clutter($deeplink_map) eq $map) {
                                   $passback = 1;
                                   $pbscope = 'map';
                               } else {
                                   my @recurseup = &Apache::lonnet::get_map_hierarchy($map,$env{'request.course.id'});
                                   if (grep(/^\Q$deeplink_map\E$/,@recurseup)) {
                                       $passback = 1;
                                       $pbscope = 'map';
                                   }
                             }                              }
                         } elsif ($scope eq 'recurse') {  
 #FIXME check if $deeplink_map contains $map  
                             $passback = 1;  
                         }                          }
                         return ($passback,$scope,$deeplink_map,$deeplink_symb,$crsdef,$itemnum,$lti_in_use);                          return ($passback,$pbscope,$deeplink_map,$deeplink_symb,$crsdef,$itemnum,$lti_in_use);
                     }                      }
                 }                  }
             }              }
Line 1636  sub access_status_msg { Line 1652  sub access_status_msg {
         $msg ='\noindent \vskip 1 mm '.          $msg ='\noindent \vskip 1 mm '.
               $startminipage.'\vskip 0 mm';                $startminipage.'\vskip 0 mm';
         if ($status eq 'UNAVAILABLE') {          if ($status eq 'UNAVAILABLE') {
             $msg.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm ';              $msg.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.');
           } elsif ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') {
               $msg.=&mt('Problem is not open to be viewed. It')." $accessmsg";
         } else {          } else {
             $msg.=&mt('Problem is not open to be viewed. It')." $accessmsg \\vskip 0 mm ";              $msg.=&mt('Problem is not open to be viewed.');
         }          }
           $msg .= " \\vskip 0 mm ";
     }      }
     return $msg;      return $msg;
 }  }

Removed from v.1.579  
changed lines
  Added in v.1.585


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