uploading pics when not found in the file yard (same as for files)
This commit is contained in:
parent
8263e4bfcd
commit
44eea43940
5 changed files with 36 additions and 6 deletions
|
@ -71,7 +71,7 @@ class ApplicationController < ActionController::Base
|
|||
not @web_name.nil?
|
||||
end
|
||||
|
||||
@@REMEMBER_NOT = ['locked', 'save', 'back', 'file']
|
||||
@@REMEMBER_NOT = ['locked', 'save', 'back', 'file', 'pic']
|
||||
def remember_location
|
||||
if @response.headers['Status'] == '200 OK'
|
||||
unless @@REMEMBER_NOT.include? action_name or @request.method != :get
|
||||
|
|
|
@ -11,7 +11,7 @@ class FileController < ApplicationController
|
|||
|
||||
if @params['file']
|
||||
# form supplied
|
||||
file_yard.upload(@file_name, @params['file'])
|
||||
file_yard.upload_file(@file_name, @params['file'])
|
||||
flash[:info] = "File '#{@file_name}' successfully uploaded"
|
||||
return_to_last_remembered
|
||||
elsif file_yard.has_file?(@file_name)
|
||||
|
@ -28,10 +28,16 @@ class FileController < ApplicationController
|
|||
|
||||
def pic
|
||||
check_path
|
||||
if file_yard.has_file?(@file_name)
|
||||
if @params['file']
|
||||
# form supplied
|
||||
file_yard.upload_file(@file_name, @params['file'])
|
||||
flash[:info] = "Image '#{@file_name}' successfully uploaded"
|
||||
return_to_last_remembered
|
||||
elsif file_yard.has_file?(@file_name)
|
||||
send_file(file_yard.file_path(@file_name))
|
||||
else
|
||||
render_text "Image not found: #{@file_name}", '404 Not Found'
|
||||
logger.debug("Image not found: #{file_yard.files_path}/#{@file_name}")
|
||||
render_action 'file'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -103,8 +103,12 @@ class Web
|
|||
when :export
|
||||
if has_file?(name) then "<img alt=\"#{text}\" src=\"#{link}\" />"
|
||||
else "<img alt=\"#{text}\" src=\"no image\" />" end
|
||||
when :publish
|
||||
if has_file?(name) then "<img alt=\"#{text}\" src=\"#{link}\" />"
|
||||
else "<span class=\"newWikiWord\">#{text}</span>" end
|
||||
else
|
||||
"<img alt=\"#{text}\" src=\"../pic/#{link}\" />"
|
||||
if has_file?(name) then "<img alt=\"#{text}\" src=\"../pic/#{link}\" />"
|
||||
else "<span class=\"newWikiWord\">#{text}<a href=\"../pic/#{link}\">?</a></span>" end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -57,4 +57,11 @@ class FileControllerTest < Test::Unit::TestCase
|
|||
assert_equal File.size("#{FILE_AREA}/rails.gif"), r.binary_content.size
|
||||
end
|
||||
|
||||
def test_pic_unknown_pic
|
||||
r = process 'pic', 'web' => 'wiki1', 'id' => 'non-existant.gif'
|
||||
|
||||
assert_success
|
||||
assert_rendered_file 'file/file'
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
require File.dirname(__FILE__) + '/../test_helper'
|
||||
require 'web'
|
||||
require 'revision'
|
||||
require 'fileutils'
|
||||
|
||||
class RevisionTest < Test::Unit::TestCase
|
||||
|
||||
|
@ -210,6 +211,7 @@ class RevisionTest < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def test_link_to_pic
|
||||
@wiki.file_yard(@web).upload_file('square.jpg', StringIO.new(''))
|
||||
assert_markup_parsed_as(
|
||||
'<p><img alt="Square" src="../pic/square.jpg" /></p>',
|
||||
'[[square.jpg|Square:pic]]')
|
||||
|
@ -218,6 +220,17 @@ class RevisionTest < Test::Unit::TestCase
|
|||
'[[square.jpg:pic]]')
|
||||
end
|
||||
|
||||
def test_link_to_non_existant_pic
|
||||
assert_markup_parsed_as(
|
||||
'<p><span class="newWikiWord">NonExistant<a href="../pic/NonExistant.jpg">?</a>' +
|
||||
'</span></p>',
|
||||
'[[NonExistant.jpg|NonExistant:pic]]')
|
||||
assert_markup_parsed_as(
|
||||
'<p><span class="newWikiWord">NonExistant.jpg<a href="../pic/NonExistant.jpg">?</a>' +
|
||||
'</span></p>',
|
||||
'[[NonExistant.jpg:pic]]')
|
||||
end
|
||||
|
||||
# TODO Remove the leading underscores from this test when upgrading to RedCloth 3.0.1;
|
||||
# also add a test for the "Unhappy Face" problem (another interesting RedCloth bug)
|
||||
def __test_list_with_tildas
|
||||
|
|
Loading…
Reference in a new issue