c79fef9c01
Previously, if the user tried to submit content which was malformed utf-8, Instiki would complain loudly to him. A slightly more user-friendly approach was suggested by the latest Rails 2.3.4, and a conversation with Sam Ruby (who suggested some improvements). Now, instead of complaining, we remove the offending bytes, leaving a well-formed utf-8 string, which we pretend is what the user meant to submit.
72 lines
2.7 KiB
Text
72 lines
2.7 KiB
Text
<%-
|
|
@title = "Editing #{@page.name.escapeHTML}"
|
|
@content_width = 720
|
|
@hide_navigation = true
|
|
-%>
|
|
|
|
<div id="MarkupHelp">
|
|
<%= render(:file => "#{@web.markup}_help") %>
|
|
<%= render(:file => 'wiki_words_help') %>
|
|
</div>
|
|
|
|
<% form_tag({ :action => 'save', :web => @web.address, :id => @page.name },
|
|
{ 'id' => 'editForm', 'method' => 'post', 'onsubmit' => 'cleanAuthorName()',
|
|
'accept-charset' => 'utf-8' }) do %>
|
|
<div>
|
|
<textarea name="content" id="content" rows="24" cols="60"><%= h(flash[:content] ||
|
|
(params['content'] ? params['content'] : @page.content).purify) %></textarea>
|
|
<% if @page_name != 'HomePage' -%>
|
|
<p>
|
|
<%= check_box_tag :alter_title, value = "1", checked=false,
|
|
'onchange' => "toggleVisibility();" %> <label for="alter_title">Change page name.</label><br/>
|
|
<span id="title_change" style="display:none"><label for="new_name">New name:</label> <%= text_field_tag :new_name, h(@page.name.purify),
|
|
:onblur => "addRedirect();" %></span>
|
|
</p>
|
|
<% else -%>
|
|
<%= hidden_field_tag 'new_name', @page_name %>
|
|
<% end%>
|
|
<div id="editFormButtons">
|
|
<input type="submit" value="Submit" accesskey="s"/> as
|
|
<%= text_field_tag :author, h(@author.purify),
|
|
:onfocus => "this.value == 'AnonymousCoward' ? this.value = '' : true;",
|
|
:onblur => "this.value == '' ? this.value = 'AnonymousCoward' : true" %>
|
|
|
|
|
<span>
|
|
<%= link_to('Cancel', {:web => @web.address, :action => 'cancel_edit', :id => @page.name},
|
|
{:accesskey => 'c'}) %>
|
|
<span class="unlock">(unlocks page)</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<%- end -%>
|
|
|
|
<script type="text/javascript">
|
|
<!--//--><![CDATA[//><!--
|
|
function toggleVisibility() {
|
|
var span = document.getElementById('title_change');
|
|
if (span.style.display =='inline') {
|
|
span.style.display ='none';
|
|
document.getElementById('new_name').value = "<%= escape_javascript(@page.name) %>";
|
|
var content = document.getElementById('content').value
|
|
document.getElementById('content').value = content.replace(/\[\[!redirects <%= Regexp.escape(@page.name).gsub('/', '\\/') %>\]\]\n/, '')
|
|
}
|
|
else
|
|
span.style.display ='inline'
|
|
}
|
|
|
|
function addRedirect(){
|
|
if (document.getElementById('new_name').value != "<%= escape_javascript(@page.name) %>" ) {
|
|
var content = document.getElementById('content');
|
|
content.value = '[[!redirects <%= escape_javascript(@page.name) %>]]\n' + content.value
|
|
}
|
|
}
|
|
|
|
function cleanAuthorName() {
|
|
if (document.getElementById('authorName').value == "") {
|
|
document.getElementById('authorName').value = 'AnonymousCoward';
|
|
}
|
|
}
|
|
|
|
document.forms["editForm"].elements["content"].focus();
|
|
//--><!]]>
|
|
</script>
|