diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 7b60eef6..78c65144 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -96,7 +96,21 @@ class PagesController < ApplicationController end def all - @pages = Page.non_redirected.all :order => 'updated_at DESC' + @recent_pages = Page.non_redirected.all :order => 'updated_at DESC' + @pages = Page.non_redirected.all :order => 'title' + @top_pages = Page.no_parent.non_redirected.all :order => 'created_at' + + view = params[:view] + params[:view] = nil + + case view + when 'recentChanges' + render :partial => 'recent_changes' and return + when 'siteMap' + render :partial => 'site_map' and return + when 'titleList' + render :partial => 'title_list' and return + end end def version diff --git a/app/models/page.rb b/app/models/page.rb index ab153204..08d4c21c 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -31,6 +31,7 @@ class Page < ActiveRecord::Base after_update :create_redirect named_scope :non_redirected, :conditions => {:redirect => nil} + named_scope :no_parent, :conditions => {:parent_id => nil} def self.permalink(title) title.gsub(/[\/\.,;@\s]/, "_").gsub(/[\"\']/, "") diff --git a/app/views/pages/_page_list_item.html.haml b/app/views/pages/_page_list_item.html.haml new file mode 100644 index 00000000..1e7f3c89 --- /dev/null +++ b/app/views/pages/_page_list_item.html.haml @@ -0,0 +1,8 @@ +-ident = 20 * level +%tr + %td{:style => "padding-left: #{ident}px"} + = link_to page.title, wiki_page_path(page.permalink) + %td= "#{User.find(page.updated_by).nick} (#{format_datetime_timespec(page.updated_at, '%a, %d. %B %Y %H:%M:%S')})" +-if siteMap == 1 + -for child in page.children.all + = render :partial => 'page_list_item', :locals => {:page => child, :level => level+1, :siteMap => 1} \ No newline at end of file diff --git a/app/views/pages/_recent_changes.html.haml b/app/views/pages/_recent_changes.html.haml new file mode 100644 index 00000000..213ca5f8 --- /dev/null +++ b/app/views/pages/_recent_changes.html.haml @@ -0,0 +1,7 @@ +.column_content + %table + %tr + %th Titel + %th Zuletzt aktualisiert + - for page in @recent_pages + = render :partial => "page_list_item", :locals => {:page => page, :level => 0, :siteMap => 0} diff --git a/app/views/pages/_site_map.html.haml b/app/views/pages/_site_map.html.haml new file mode 100644 index 00000000..ba787638 --- /dev/null +++ b/app/views/pages/_site_map.html.haml @@ -0,0 +1,10 @@ +.column_content + %table + %tr + %th Titel + %th Zuletzt aktualisiert + - homepage = Page.find_by_permalink('Home') + = render :partial => 'page_list_item', :locals => {:page => homepage, :level => 0, :siteMap => 1} + - for page in @top_pages + - if page.id != homepage.id + = render :partial => 'page_list_item', :locals => {:page => page, :level => 0, :siteMap => 1} diff --git a/app/views/pages/_title_list.html.haml b/app/views/pages/_title_list.html.haml new file mode 100644 index 00000000..855a37bf --- /dev/null +++ b/app/views/pages/_title_list.html.haml @@ -0,0 +1,7 @@ +.column_content + %table + %tr + %th Titel + %th Zuletzt aktualisiert + - for page in @pages + = render :partial => "page_list_item", :locals => {:page => page, :level => 0, :siteMap => 0} \ No newline at end of file diff --git a/app/views/pages/all.html.haml b/app/views/pages/all.html.haml index 1150eba1..49f3fd74 100644 --- a/app/views/pages/all.html.haml +++ b/app/views/pages/all.html.haml @@ -8,13 +8,14 @@ #sidebar - #sidebar-links= link_to "Neue Seite anlegen", new_page_path + #sidebar-links + = link_to "Neue Seite anlegen", new_page_path - %table - %tr - %th Titel - %th Zuletzt aktualisiert - - for page in @pages - %tr - %td= link_to page.title, wiki_page_path(page.permalink) - %td= format_datetime page.updated_at + .left_column{:style => "width:100%"} + .box_title + #editOrderNav + = remote_link_to 'Letzte Ă„nderungen', :update => 'left_column', :url => {:action => 'all', :view => 'recentChanges'} + = remote_link_to 'Seiten-Liste', :update => 'left_column', :url => {:action => 'all', :view => 'titleList'} + = remote_link_to 'Site Map', :update => 'left_column', :url => {:action => 'all', :view => 'siteMap'} + #left_column + = render :partial => 'recent_changes' \ No newline at end of file