version 1.577, 2023/07/12 17:43:24
|
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 445 sub page_start {
|
Line 430 sub page_start {
|
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
my %textarea_args; |
my %textarea_args; |
if (($env{'request.state'} ne 'construct') || |
if (($env{'request.state'} ne 'construct') || |
($env{'environment.nocodemirror'})) { |
(&Apache::loncommon::nocodemirror())) { |
%textarea_args = ( |
%textarea_args = ( |
dragmath => 'math', |
dragmath => 'math', |
); |
); |
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 ($env{'environment.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; |
} |
} |
Line 2373 ENDJS
|
Line 2392 ENDJS
|
# computation: |
# computation: |
# |
# |
if ($target eq 'web') { |
if ($target eq 'web') { |
$result .= &Apache::lonhtmlcommon::set_compute_end_time(); |
$result .= &Apache::lonhtmlcommon::dash_to_minus_js(). |
|
&Apache::lonhtmlcommon::set_compute_end_time(); |
# |
# |
# Closing tags delayed so any <script></script> tags |
# Closing tags delayed so any <script></script> tags |
# not in head can appear inside body, for valid xhtml. |
# not in head can appear inside body, for valid xhtml. |
Line 3374 sub end_startouttext {
|
Line 3394 sub end_startouttext {
|
.&Apache::edit::deletelist($target,$token) |
.&Apache::edit::deletelist($target,$token) |
.'</span></td>' |
.'</span></td>' |
.'<td><span id="math_'.$areaid.'">'; |
.'<td><span id="math_'.$areaid.'">'; |
if ($env{'environment.nocodemirror'}) { |
if (&Apache::loncommon::nocodemirror()) { |
$result.=&Apache::lonhtmlcommon::dragmath_button($areaid,1); |
$result.=&Apache::lonhtmlcommon::dragmath_button($areaid,1); |
} else { |
} else { |
$result.=' '; |
$result.=' '; |