version 1.560, 2018/09/12 21:10:57
|
version 1.569, 2024/03/31 01:50:18
|
Line 1613 FULLPAGE
|
Line 1613 FULLPAGE
|
my %lt=&Apache::lonlocal::texthash('st' => 'Save and Edit', |
my %lt=&Apache::lonlocal::texthash('st' => 'Save and Edit', |
'vi' => 'Save and View', |
'vi' => 'Save and View', |
'dv' => 'Discard Edits and View', |
'dv' => 'Discard Edits and View', |
'un' => 'undo', |
'un' => 'Undo', |
'ed' => 'Edit'); |
'ed' => 'Edit', |
|
'ew' => 'Edit with Daxe'); |
my $spelllink = &Apache::lonhtmlcommon::spelllink('xmledit','filecont'); |
my $spelllink = &Apache::lonhtmlcommon::spelllink('xmledit','filecont'); |
my $textarea_events = &Apache::edit::element_change_detection(); |
my $textarea_events = &Apache::edit::element_change_detection(); |
my $form_events = &Apache::edit::form_change_detection(); |
my $form_events = &Apache::edit::form_change_detection(); |
Line 1622 FULLPAGE
|
Line 1623 FULLPAGE
|
if ($filetype eq 'html') { |
if ($filetype eq 'html') { |
$htmlerror=&verify_html($filecontents); |
$htmlerror=&verify_html($filecontents); |
if ($htmlerror) { |
if ($htmlerror) { |
$htmlerror='<span class="LC_error">'.$htmlerror.'</span>'; |
$htmlerror=(' 'x3).' <span class="LC_error">'.$htmlerror.'</span>'; |
} |
} |
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
unless ($textareaclass) { |
unless ($textareaclass) { |
Line 1630 FULLPAGE
|
Line 1631 FULLPAGE
|
} |
} |
} |
} |
} |
} |
my $undo; |
my ($undo,$daxebutton,%onclick); |
|
foreach my $item ('discard','undo','daxe') { |
|
$onclick{$item} = 'onclick="still_ask=true;setmode(this.form,'."'$item'".')"'; |
|
} |
|
foreach my $item ('saveedit','saveview') { |
|
$onclick{$item} = 'onclick="is_submit=true;setmode(this.form,'."'$item'".')"'; |
|
} |
unless ($uri =~ m{^/uploaded/}) { |
unless ($uri =~ m{^/uploaded/}) { |
$undo = '<input type="submit" name="Undo" accesskey="u" value="'.$lt{'un'}.'" />'."\n"; |
$undo = '<input type="button" name="Undo" accesskey="u" value="'.$lt{'un'}.'" '. |
|
$onclick{'undo'}.' />'."\n"; |
|
} |
|
$initialize .= &setmode_javascript(); |
|
if ($filetype eq 'html') { |
|
my %editors = &Apache::loncommon::permitted_editors(); |
|
if ($editors{'daxe'}) { |
|
$daxebutton = '<input type="button" name="editwithdaxe" accesskey="w" value="'.$lt{'ew'}.'" '. |
|
$onclick{'daxe'}.' />'."\n"; |
|
} |
} |
} |
my $editfooter=(<<ENDFOOTER); |
my $editfooter=(<<ENDFOOTER); |
$initialize |
$initialize |
<a name="editsection" /> |
<a name="editsection" /> |
<form $form_events method="post" name="xmledit" action="$action"> |
<form $form_events method="post" name="xmledit" action="$action"> |
|
<input type="hidden" name="problemmode" value="edit" /> |
<div class="LC_edit_problem_editxml_header"> |
<div class="LC_edit_problem_editxml_header"> |
<table class="LC_edit_problem_header_title"><tr><td> |
<table class="LC_edit_problem_header_title"><tr><td> |
$filename |
$filename |
Line 1645 $initialize
|
Line 1662 $initialize
|
$xml_help |
$xml_help |
</td></tr> |
</td></tr> |
</table> |
</table> |
<div> |
|
<input type="submit" name="discardview" accesskey="d" value="$lt{'dv'}" /> |
|
$undo $htmlerror $deps_button $dragmath_button |
|
</div> |
|
<div style="float:right"> |
<div style="float:right"> |
<input type="submit" name="savethisfile" accesskey="s" value="$lt{'st'}" /> |
<input type="button" name="savethisfile" accesskey="s" value="$lt{'st'}" $onclick{'saveedit'} /> |
<input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" /> |
<input type="button" name="viewmode" accesskey="v" value="$lt{'vi'}" $onclick{'saveview'} /> |
|
</div> |
|
<div> |
|
<input type="button" name="discardview" accesskey="d" value="$lt{'dv'}" $onclick{'discard'} /> |
|
$undo $deps_button $daxebutton $dragmath_button $htmlerror |
</div> |
</div> |
</div> |
</div> |
<textarea $textarea_events style="width:100%" cols="80" rows="44" name="filecont" id="filecont" $textareaclass>$filecontents</textarea><br />$spelllink |
<textarea $textarea_events style="width:100%" cols="80" rows="44" name="filecont" id="filecont" $textareaclass>$filecontents</textarea><br />$spelllink |
Line 1661 $initialize
|
Line 1678 $initialize
|
</div> |
</div> |
</form> |
</form> |
ENDFOOTER |
ENDFOOTER |
return ($editfooter,$add_to_onload,$add_to_onresize);; |
return ($editfooter,$add_to_onload,$add_to_onresize); |
|
} |
|
|
|
sub setmode_javascript { |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
function setmode(form,probmode) { |
|
if (probmode == 'daxe') { |
|
var url = new URL(document.location.href); |
|
window.location = url.protocol+'//'+url.hostname+'/daxepage'+url.pathname; |
|
} else { |
|
var initial = form.problemmode.value; |
|
form.problemmode.value = probmode; |
|
form.submit(); |
|
form.problemmode.value = initial; |
|
} |
|
} |
|
// ]]> |
|
</script> |
|
ENDSCRIPT |
|
} |
|
|
|
sub seteditor_javascript { |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
function seteditmode(form,editor) { |
|
if (editor == 'daxe') { |
|
var url = new URL(document.location.href); |
|
window.location = url.protocol+'//'+url.hostname+'/daxepage'+url.pathname; |
|
} else { |
|
if (editor == 'edit') { |
|
form.editmode.value = editor; |
|
} else { |
|
form.editmode.value = ''; |
|
} |
|
form.submit(); |
|
} |
|
} |
|
// ]]> |
|
</script> |
|
ENDSCRIPT |
} |
} |
|
|
sub get_target { |
sub get_target { |
Line 1766 sub handler {
|
Line 1825 sub handler {
|
# Edit action? Save file. |
# Edit action? Save file. |
# |
# |
if (!($env{'request.state'} eq 'published')) { |
if (!($env{'request.state'} eq 'published')) { |
if ($env{'form.savethisfile'} || $env{'form.viewmode'} || $env{'form.Undo'}) { |
if (($env{'form.problemmode'} eq 'saveedit') || |
|
($env{'form.problemmode'} eq 'saveview') || |
|
($env{'form.problemmode'} eq 'undo')) { |
my $html_file=&Apache::lonnet::getfile($file); |
my $html_file=&Apache::lonnet::getfile($file); |
my $error = &Apache::lonhomework::handle_save_or_undo($request, \$html_file, \$env{'form.filecont'}); |
my $error = &Apache::lonhomework::handle_save_or_undo($request, \$html_file, \$env{'form.filecont'}); |
if ($env{'form.savethisfile'}) { |
if ($env{'form.problemmode'} eq 'saveedit') { |
$env{'form.editmode'}='Edit'; #force edit mode |
$env{'form.editmode'}='edit'; #force edit mode |
} |
} |
} |
} |
} |
} |
Line 1799 ENDNOTFOUND
|
Line 1860 ENDNOTFOUND
|
} elsif ($filetype ne 'css' && $filetype ne 'txt' && $filetype ne 'tex') { |
} elsif ($filetype ne 'css' && $filetype ne 'txt' && $filetype ne 'tex') { |
$filecontents=&createnewhtml(); |
$filecontents=&createnewhtml(); |
} |
} |
$env{'form.editmode'}='Edit'; #force edit mode |
$env{'form.editmode'}='edit'; #force edit mode |
} |
} |
} else { |
} else { |
unless ($env{'request.state'} eq 'published') { |
unless ($env{'request.state'} eq 'published') { |
Line 1811 ENDNOTFOUND
|
Line 1872 ENDNOTFOUND
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['editmode']); |
['editmode']); |
} |
} |
if (!$env{'form.editmode'} || $env{'form.viewmode'} || $env{'form.discardview'}) { |
if ((!$env{'form.editmode'}) || |
|
($env{'form.problemmode'} eq 'saveview') || |
|
($env{'form.problemmode'} eq 'discard')) { |
if ($filetype eq 'html' || $filetype eq 'sty') { |
if ($filetype eq 'html' || $filetype eq 'sty') { |
&Apache::structuretags::reset_problem_globals(); |
&Apache::structuretags::reset_problem_globals(); |
$result = &Apache::lonxml::xmlparse($request,$target, |
$result = &Apache::lonxml::xmlparse($request,$target, |
Line 1857 ENDNOTFOUND
|
Line 1920 ENDNOTFOUND
|
} |
} |
my $brcrum; |
my $brcrum; |
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
$brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri), |
my $text = 'Authoring Space'; |
'text' => 'Authoring Space'}, |
my $href = &Apache::loncommon::authorspace($request->uri); |
|
if ($env{'request.course.id'}) { |
|
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
if ($href eq "/priv/$cdom/$cnum/") { |
|
$text = 'Course Authoring Space'; |
|
} |
|
} |
|
$brcrum = [{'href' => $href, |
|
'text' => $text,}, |
{'href' => '', |
{'href' => '', |
'text' => $breadcrumbtext}]; |
'text' => $breadcrumbtext}]; |
} else { |
} else { |
Line 1879 ENDNOTFOUND
|
Line 1951 ENDNOTFOUND
|
# Edit action? Insert editing commands |
# Edit action? Insert editing commands |
# |
# |
unless (($env{'request.state'} eq 'published') || ($inhibit_menu)) { |
unless (($env{'request.state'} eq 'published') || ($inhibit_menu)) { |
if ($env{'form.editmode'} && (!($env{'form.viewmode'})) && (!($env{'form.discardview'}))) |
if (($env{'form.editmode'}) && |
{ |
(!($env{'form.problemmode'} eq 'saveview')) && |
|
(!($env{'form.problemmode'} eq 'discard'))) { |
my ($displayfile,$url,$symb,$itemtitle,$action); |
my ($displayfile,$url,$symb,$itemtitle,$action); |
$displayfile=$request->uri; |
$displayfile=$request->uri; |
if ($request->uri =~ m{^/uploaded/}) { |
if ($request->uri =~ m{^/uploaded/}) { |
Line 1919 ENDNOTFOUND
|
Line 1992 ENDNOTFOUND
|
'onload' => $add_to_onload, }); |
'onload' => $add_to_onload, }); |
my $header; |
my $header; |
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
|
my $text = 'Authoring Space'; |
|
my $href = &Apache::loncommon::authorspace($request->uri); |
|
if ($env{'request.course.id'}) { |
|
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
if ($href eq "/priv/$cdom/$cnum/") { |
|
$text = 'Course Authoring Space'; |
|
} |
|
} |
$options{'bread_crumbs'} = [{ |
$options{'bread_crumbs'} = [{ |
'href' => &Apache::loncommon::authorspace($request->uri), |
'href' => $href, |
'text' => 'Authoring Space'}, |
'text' => $text}, |
{'href' => '', |
{'href' => '', |
'text' => $breadcrumbtext}]; |
'text' => $breadcrumbtext}]; |
$header = &Apache::loncommon::head_subbox( |
$header = &Apache::loncommon::head_subbox( |