Class: ClWiki::PageController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- ClWiki::PageController
- Defined in:
- app/controllers/cl_wiki/page_controller.rb
Instance Method Summary collapse
- #assign_page_name ⇒ Object
- #edit ⇒ Object
- #find ⇒ Object
- #front_page_name ⇒ Object
- #initialize_formatter ⇒ Object
- #recent ⇒ Object
- #redirect_legacy_cgi_urls ⇒ Object
- #redirect_to_front_page_if_bad_name ⇒ Object
- #search(text) ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Instance Method Details
#assign_page_name ⇒ Object
89 90 91 92 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 89 def assign_page_name @page_name = params[:page_name] @page_name = @page_name.ensure_slash_prefix if @page_name end |
#edit ⇒ Object
16 17 18 19 20 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 16 def edit @page = ClWiki::Page.new(@page_name) @page.read_raw_content @page end |
#find ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 28 def find @formatter = ClWiki::PageFormatter.new @search_text = params[:search_text] @results = [] if @search_text hits = search(@search_text) hits.each do |full_name| @formatter.fullName = full_name @results << "#{@formatter.convertToLink(full_name)}" end end end |
#front_page_name ⇒ Object
73 74 75 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 73 def front_page_name 'FrontPage' end |
#initialize_formatter ⇒ Object
102 103 104 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 102 def initialize_formatter @formatter = ClWiki::PageFormatter.new end |
#recent ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 55 def recent finder = FindInFile.new($wiki_path) finder.find($wiki_conf.publishTag || '.') @pages = finder.files.collect do |filename| p = ClWiki::Page.new(filename.sub($wikiPageExt, '')) p.read_page_attributes p end @pages = @pages.sort { |a, b| b.mtime <=> a.mtime }[0..9] = false @pages.each { |p| p.read_content() } respond_to do |format| format.html format.rss { render :layout => false } end end |
#redirect_legacy_cgi_urls ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 77 def redirect_legacy_cgi_urls if request.fullpath.start_with?(legacy_path) page_name = (params[:page] || front_page_name).split('/')[-1] case when request.query_parameters.include?('edit') redirect_to page_edit_url(:page_name => page_name), status: '301' else redirect_to page_show_url(:page_name => page_name), status: '301' end end end |
#redirect_to_front_page_if_bad_name ⇒ Object
94 95 96 97 98 99 100 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 94 def redirect_to_front_page_if_bad_name if ((@page_name.blank?) || (!@formatter.is_wiki_name?(@page_name))) || (!$wiki_conf.editable && !ClWiki::Page.page_exists?(@page_name.ensure_slash_prefix)) redirect_to page_show_url(:page_name => front_page_name) return end end |
#search(text) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 42 def search(text) case $wiki_conf.useIndex when ClWiki::Configuration::USE_INDEX_NO finder = FindInFile.new($wiki_path) finder.find(text) finder.files.collect do |filename| filename.sub($wikiPageExt, '') end else ClWiki::IndexClient.new.search(text) end end |
#show ⇒ Object
10 11 12 13 14 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 10 def show @page = ClWiki::Page.new(@page_name) @page.read_content @page end |
#update ⇒ Object
22 23 24 25 26 |
# File 'app/controllers/cl_wiki/page_controller.rb', line 22 def update @page = ClWiki::Page.new(@page_name) @page.update_content(params[:page_content], Time.at(params[:client_mod_time].to_s.to_i)) redirect_to params[:save_and_edit] ? page_edit_url(:page_name => @page.full_name.strip_slash_prefix) : page_show_url(:page_name => @page.full_name.strip_slash_prefix) end |