From 3b6cd309ffe9b46013b4658b9e8089851a79e060 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Fri, 11 May 2007 11:47:38 -0500 Subject: [PATCH] Sync with Instiki Trunk Sync with Revision 519 of Instiki trunk (2007/5/7). --- app/controllers/admin_controller.rb | 48 +++++++------- app/controllers/application.rb | 32 ++++----- app/controllers/file_controller.rb | 12 ++-- app/controllers/wiki_controller.rb | 26 ++++---- app/models/web.rb | 2 +- app/views/admin/create_system.rhtml | 6 +- app/views/admin/create_web.rhtml | 6 +- app/views/admin/edit_web.rhtml | 12 ++-- app/views/file/file.rhtml | 6 +- app/views/layouts/default.rhtml | 8 +-- app/views/navigation.rhtml | 6 +- app/views/wiki/edit.rhtml | 6 +- app/views/wiki/login.rhtml | 6 +- app/views/wiki/new.rhtml | 6 +- app/views/wiki/rollback.rhtml | 8 +-- app/views/wiki/search.rhtml | 4 +- test/functional/admin_controller_test.rb | 4 +- test/functional/file_controller_test.rb | 26 ++++---- test/functional/routes_test.rb | 6 +- test/functional/wiki_controller_test.rb | 84 ++++++++++++------------ test/unit/page_renderer_test.rb | 17 +++-- 21 files changed, 173 insertions(+), 158 deletions(-) diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 4390359d..836a9b4f 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -13,12 +13,12 @@ class AdminController < ApplicationController "\n\n" + "(WARNING: this will destroy content of your current wiki)." redirect_home(@wiki.webs.keys.first) - elsif @params['web_name'] + elsif params['web_name'] # form submitted -> create a wiki - @wiki.setup(@params['password'], @params['web_name'], @params['web_address']) - flash[:info] = "Your new wiki '#{@params['web_name']}' is created!\n" + + @wiki.setup(params['password'], params['web_name'], params['web_address']) + flash[:info] = "Your new wiki '#{params['web_name']}' is created!\n" + "Please edit its home page and press Submit when finished." - redirect_to :web => @params['web_address'], :controller => 'wiki', :action => 'new', + redirect_to :web => params['web_address'], :controller => 'wiki', :action => 'new', :id => 'HomePage' else # no form submitted -> go to template @@ -26,13 +26,13 @@ class AdminController < ApplicationController end def create_web - if @params['address'] + if params['address'] # form submitted - if @wiki.authenticate(@params['system_password']) + if @wiki.authenticate(params['system_password']) begin - @wiki.create_web(@params['name'], @params['address']) - flash[:info] = "New web '#{@params['name']}' successfully created." - redirect_to :web => @params['address'], :controller => 'wiki', :action => 'new', + @wiki.create_web(params['name'], params['address']) + flash[:info] = "New web '#{params['name']}' successfully created." + redirect_to :web => params['address'], :controller => 'wiki', :action => 'new', :id => 'HomePage' rescue Instiki::ValidationError => e @error = e.message @@ -47,25 +47,25 @@ class AdminController < ApplicationController end def edit_web - system_password = @params['system_password'] + system_password = params['system_password'] if system_password # form submitted if wiki.authenticate(system_password) begin wiki.edit_web( - @web.address, @params['address'], @params['name'], - @params['markup'].intern, - @params['color'], @params['additional_style'], - @params['safe_mode'] ? true : false, - @params['password'].empty? ? nil : @params['password'], - @params['published'] ? true : false, - @params['brackets_only'] ? true : false, - @params['count_pages'] ? true : false, - @params['allow_uploads'] ? true : false, - @params['max_upload_size'] + @web.address, params['address'], params['name'], + params['markup'].intern, + params['color'], params['additional_style'], + params['safe_mode'] ? true : false, + params['password'].empty? ? nil : params['password'], + params['published'] ? true : false, + params['brackets_only'] ? true : false, + params['count_pages'] ? true : false, + params['allow_uploads'] ? true : false, + params['max_upload_size'] ) - flash[:info] = "Web '#{@params['address']}' was successfully updated" - redirect_home(@params['address']) + flash[:info] = "Web '#{params['address']}' was successfully updated" + redirect_home(params['address']) rescue Instiki::ValidationError => e logger.warn e.message @error = e.message @@ -81,12 +81,12 @@ class AdminController < ApplicationController end def remove_orphaned_pages - if wiki.authenticate(@params['system_password_orphaned']) + if wiki.authenticate(params['system_password_orphaned']) wiki.remove_orphaned_pages(@web_name) flash[:info] = 'Orphaned pages removed' redirect_to :controller => 'wiki', :web => @web_name, :action => 'list' else - flash[:error] = password_error(@params['system_password_orphaned']) + flash[:error] = password_error(params['system_password_orphaned']) redirect_to :controller => 'admin', :web => @web_name, :action => 'edit_web' end end diff --git a/app/controllers/application.rb b/app/controllers/application.rb index 23dd05c2..a44505a1 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -29,8 +29,8 @@ class ApplicationController < ActionController::Base end def connect_to_model - @action_name = @params['action'] || 'index' - @web_name = @params['web'] + @action_name = params['action'] || 'index' + @web_name = params['web'] @wiki = wiki @author = cookies['author'] || 'AnonymousCoward' if @web_name @@ -106,11 +106,11 @@ class ApplicationController < ActionController::Base end def remember_location - if @request.method == :get and - @response.headers['Status'] == '200 OK' and not + if request.method == :get and + response.headers['Status'] == '200 OK' and not %w(locked save back file pic import).include?(action_name) - @session[:return_to] = @request.request_uri - logger.debug "Session ##{session.object_id}: remembered URL '#{@session[:return_to]}'" + session[:return_to] = request.request_uri + logger.debug "Session ##{session.object_id}: remembered URL '#{session[:return_to]}'" end end @@ -126,8 +126,8 @@ class ApplicationController < ActionController::Base def return_to_last_remembered # Forget the redirect location - redirect_target, @session[:return_to] = @session[:return_to], nil - tried_home, @session[:tried_home] = @session[:tried_home], false + redirect_target, session[:return_to] = session[:return_to], nil + tried_home, session[:tried_home] = session[:tried_home], false # then try to redirect to it if redirect_target.nil? @@ -146,15 +146,15 @@ class ApplicationController < ActionController::Base def set_content_type_header if %w(atom_with_content atom_with_headlines).include?(action_name) - @response.headers['Content-Type'] = 'application/atom+xml; charset=UTF-8' + response.headers['Content-Type'] = 'application/atom+xml; charset=UTF-8' elsif %w(tex).include?(action_name) - @response.headers['Content-Type'] = 'text/plain; charset=UTF-8' - elsif @request.env['HTTP_USER_AGENT'] =~ /MathPlayer|Validator/ or @request.env.include?('HTTP_ACCEPT') && - Mime::Type.parse(@request.env["HTTP_ACCEPT"]).include?(Mime::XHTML) && - !(@request.env['HTTP_USER_AGENT'] =~ /Safari/ and %w(s5).include?(action_name)) - @response.headers['Content-Type'] = 'application/xhtml+xml; charset=UTF-8' + response.headers['Content-Type'] = 'text/plain; charset=UTF-8' + elsif request.env['HTTP_USER_AGENT'] =~ /MathPlayer|Validator/ or request.env.include?('HTTP_ACCEPT') && + Mime::Type.parse(request.env["HTTP_ACCEPT"]).include?(Mime::XHTML) && + !(request.env['HTTP_USER_AGENT'] =~ /Safari/ and %w(s5).include?(action_name)) + response.headers['Content-Type'] = 'application/xhtml+xml; charset=UTF-8' else - @response.headers['Content-Type'] = 'text/html; charset=UTF-8' + response.headers['Content-Type'] = 'text/html; charset=UTF-8' end end @@ -192,7 +192,7 @@ class ApplicationController < ActionController::Base @web.nil? or @web.password.nil? or cookies[CGI.escape(@web_name)] == @web.password or - password_check(@params['password']) or + password_check(params['password']) or (@web.published? and action_name == 's5') end diff --git a/app/controllers/file_controller.rb b/app/controllers/file_controller.rb index 8dc9b5b6..499c0a2d 100644 --- a/app/controllers/file_controller.rb +++ b/app/controllers/file_controller.rb @@ -10,10 +10,10 @@ class FileController < ApplicationController before_filter :check_allow_uploads def file - @file_name = @params['id'] - if @params['file'] + @file_name = params['id'] + if params['file'] # form supplied - new_file = @web.wiki_files.create(@params['file']) + new_file = @web.wiki_files.create(params['file']) if new_file.valid? flash[:info] = "File '#{@file_name}' successfully uploaded" return_to_last_remembered @@ -39,10 +39,10 @@ class FileController < ApplicationController end def import - if @params['file'] + if params['file'] @problems = [] import_file_name = "#{@web.address}-import-#{Time.now.strftime('%Y-%m-%d-%H-%M-%S')}.zip" - import_from_archive(@params['file'].path) + import_from_archive(params['file'].path) if @problems.empty? flash[:info] = 'Import successfully finished' else @@ -58,7 +58,7 @@ class FileController < ApplicationController protected def check_allow_uploads - render(:status => 404, :text => "Web #{@params['web'].inspect} not found") and return false unless @web + render(:status => 404, :text => "Web #{params['web'].inspect} not found") and return false unless @web if @web.allow_uploads? return true else diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 81e711d0..35cb5531 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -30,10 +30,10 @@ class WikiController < ApplicationController # Outside a single web -------------------------------------------------------- def authenticate - if password_check(@params['password']) + if password_check(params['password']) redirect_home else - flash[:info] = password_error(@params['password']) + flash[:info] = password_error(params['password']) redirect_to :action => 'login', :web => @web_name end end @@ -146,7 +146,7 @@ class WikiController < ApplicationController end def search - @query = @params['query'] + @query = params['query'] @title_results = @web.select { |page| page.name =~ /#{@query}/i }.sort @results = @web.select { |page| page.content =~ /#{@query}/i }.sort all_pages_found = (@results + @title_results).uniq @@ -165,7 +165,7 @@ class WikiController < ApplicationController def edit if @page.nil? redirect_home - elsif @page.locked?(Time.now) and not @params['break_lock'] + elsif @page.locked?(Time.now) and not params['break_lock'] redirect_to :web => @web_name, :action => 'locked', :id => @page_name else @page.lock(Time.now, @author) @@ -216,7 +216,7 @@ class WikiController < ApplicationController def revision get_page_and_revision - @show_diff = (@params[:mode] == 'diff') + @show_diff = (params[:mode] == 'diff') @renderer = PageRenderer.new(@revision) end @@ -227,13 +227,13 @@ class WikiController < ApplicationController def save render(:status => 404, :text => 'Undefined page name') and return if @page_name.nil? - author_name = @params['author'].delete("\x01-\x08\x0B\x0C\x0E-\x1F") + author_name = params['author'].delete("\x01-\x08\x0B\x0C\x0E-\x1F") author_name = 'AnonymousCoward' if author_name =~ /^\s*$/ raise "Your name was not valid utf-8" if !author_name.is_utf8? cookies['author'] = { :value => author_name, :expires => Time.utc(2030) } begin - the_content = @params['content'].delete("\x01-\x08\x0B\x0C\x0E-\x1F") + the_content = params['content'].delete("\x01-\x08\x0B\x0C\x0E-\x1F") raise "Your content was not valid utf-8" if !the_content.is_utf8? filter_spam(the_content) if @page @@ -262,7 +262,7 @@ class WikiController < ApplicationController if @page begin @renderer = PageRenderer.new(@page.revisions.last) - @show_diff = (@params[:mode] == 'diff') + @show_diff = (params[:mode] == 'diff') render_action 'page' # TODO this rescue should differentiate between errors due to rendering and errors in # the application itself (for application errors, it's better not to rescue the error at all) @@ -309,7 +309,7 @@ class WikiController < ApplicationController protected def load_page - @page_name = @params['id'] + @page_name = params['id'] @page = @wiki.read_page(@web_name, @page_name) if @page_name end @@ -371,8 +371,8 @@ class WikiController < ApplicationController end def get_page_and_revision - if @params['rev'] - @revision_number = @params['rev'].to_i + if params['rev'] + @revision_number = params['rev'].to_i else @revision_number = @page.revisions.length end @@ -381,7 +381,7 @@ class WikiController < ApplicationController def parse_category @categories = WikiReference.list_categories(@web).sort - @category = @params['category'] + @category = params['category'] if @category @set_name = "category '#{@category}'" pages = WikiReference.pages_in_category(@web, @category).sort.map { |page_name| @web.page(page_name) } @@ -394,7 +394,7 @@ class WikiController < ApplicationController end def remote_ip - ip = @request.remote_ip + ip = request.remote_ip logger.info(ip) ip end diff --git a/app/models/web.rb b/app/models/web.rb index 2c72896d..59129120 100644 --- a/app/models/web.rb +++ b/app/models/web.rb @@ -40,7 +40,7 @@ class Web < ActiveRecord::Base end def has_page?(name) - Page.count(['web_id = ? AND name = ?', id, name]) > 0 + Page.count(:conditions => ['web_id = ? AND name = ?', id, name]) > 0 end def has_file?(file_name) diff --git a/app/views/admin/create_system.rhtml b/app/views/admin/create_system.rhtml index 9196b181..40743c83 100644 --- a/app/views/admin/create_system.rhtml +++ b/app/views/admin/create_system.rhtml @@ -6,9 +6,9 @@ you'll need to do a brief one-time setup.

-<%= form_tag({ :controller => 'admin', :action => 'create_system' }, +<% form_tag({ :controller => 'admin', :action => 'create_system' }, { 'id' => 'setup', 'method' => 'post', 'onsubmit' => 'return validateSetup()', - 'accept-charset' => 'utf-8' }) + 'accept-charset' => 'utf-8' }) do %>
  1. @@ -46,7 +46,7 @@

    -<%= end_form_tag %> +<% end %>