uploading pics when not found in the file yard (same as for files)

instiki-madeleine
Alexey Verkhovsky 2005-01-23 13:42:56 +00:00
parent 8263e4bfcd
commit 44eea43940
5 changed files with 36 additions and 6 deletions

View File

@ -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

View File

@ -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

View File

@ -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
else
"<img alt=\"#{text}\" src=\"../pic/#{link}\" />"
when :publish
if has_file?(name) then "<img alt=\"#{text}\" src=\"#{link}\" />"
else "<span class=\"newWikiWord\">#{text}</span>" end
else
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

View File

@ -56,5 +56,12 @@ class FileControllerTest < Test::Unit::TestCase
assert_success
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

View File

@ -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