Add reroute middleware hack

This commit is contained in:
Wen-Tien Chang committed 2010-01-11 17:09:50 +08:00
1 parent 9f1ba2ae66
commit 314f6d5219
14 files changed
+65 -47

No files matched your search

@@ -1,21 +1,24 @@
class Admin::AnnouncementsController < ApplicationController
before_filter :require_entry_name, :only => [:index, :new]
layout "admin"
def index
@announcements = Announcement.all
@announcements = Announcement.find(:all, :conditions => { :entry_name => params[:entry_name] })
respond_to do |format|
format.html # index.html.erb
format.html
format.xml { render :xml => @announcements }
end
end
def new
@announcement = Announcement.new
@announcement.entry_name = params[:entry_name]
respond_to do |format|
format.html # new.html.erb
format.htm
format.xml { render :xml => @announcement }
end
end
@@ -26,7 +29,7 @@ class Admin::AnnouncementsController < ApplicationController
def create
@announcement = Announcement.new(params[:announcement])
respond_to do |format|
if @announcement.save
flash[:notice] = 'Announcement was successfully created.'
+1 -1
View File
@@ -1,7 +1,7 @@
class AnnouncementsController < ApplicationController
def index
@announcements = Announcement.all
@announcements = Announcement.find(:all, :conditions => { :entry_name => params[:entry_name] })
respond_to do |format|
format.html {
+6 -1
View File
@@ -30,5 +30,10 @@ class ApplicationController < ActionController::Base
# set locale based on session or default
I18n.locale = session[:locale] || I18n.default_locale
end
def require_entry_name
render :text => 'missing entry_name' if params[:entry_name].blank?
return
end
end
+2 -5
View File
@@ -9,14 +9,11 @@ class PagesController < ApplicationController
end
end
def show
def show
@page = Page.find_by_name(params[:page_name])
if @page && !@page.external_link.blank?
# redirect_to @page.external_link
elsif @page && !@page.use_engine.blank?
#model_class = Kernel.const_get( "Announcement" ) # page.use_engine
redirect_to announcements_path
redirect_to @page.external_link
else
render_liquid_page
end
+2 -1
View File
@@ -2,11 +2,12 @@ class Announcement
include MongoMapper::Document
key :entry_name, String, :required => true, :index => true
key_i18n :title, String
key_i18n :content, String
def to_liquid
{ "id" => self.id, "title" => self.title, "content" => self.content }
{ "entry_name" => self.entry_name, "id" => self.id.to_s, "title" => self.title, "content" => self.content }
end
end
+1 -3
View File
@@ -2,9 +2,7 @@ class Layout
include MongoMapper::Document
key :name, String
key :name, String, :required => true, :index => true
key_i18n :content, String
validates_presence_of :name
end
+11 -23
View File
@@ -1,43 +1,31 @@
class Page
include MongoMapper::Document
key :name, String
key :parent_page_name, String
key :name, String, :required => true, :index => true
key :parent_page_name, String, :required => true, :index => true
key_i18n :title, String
key_i18n :title, String, :required => true
key_i18n :content, String
key :layout_id, String
key :layout_name, String
key :layout_name, String, :required => true
key :external_link, String
key :position, Integer
key :is_published, Boolean
key :position, Integer, :required => true
key :is_published, Boolean, :required => true, :default => true, :index => true
key :is_component, Boolean
key :component_name, String
belongs_to :layout
validates_presence_of :name
validates_presence_of :position
before_save :setup_layout_id
before_validation :setup_default_value
def self.find_by_name(page_name)
Page.find(:first, :conditions => { :name => page_name, :is_published => true })
end
protected
def setup_layout_id
if self.layout_name.blank?
self.layout_id = nil
else
self.layout_id = Layout.find_by_name( self.layout_name ).id
end
def layout
Layout.find_by_name(self.layout_name)
end
protected
def setup_default_value
if self.position.blank?
max_page = Page.find(:last, :order => 'position')
+1 -3
View File
@@ -2,9 +2,7 @@ class Snippet
include MongoMapper::Document
key :name, String
key :name, String, :required => true, :index => true
key_i18n :content, String
validates_presence_of :name
end
@@ -1,3 +1,5 @@
<%= f.hidden_field :entry_name %>
<p id="title_zh_tw_block">
<%= f.label "title_zh_tw", "Title (zh_tw)" %>
<%= f.text_field "title_zh_tw" %>
+1 -1
View File
@@ -18,4 +18,4 @@
<br />
<%= link_to 'New announcement', new_admin_announcement_path %>
<%= link_to 'New announcement', new_admin_announcement_path( :entry_name => params[:entry_name] ) %>
+2 -2
View File
@@ -42,8 +42,8 @@
</p>
<p>
<%= f.label :is_component, "Is component" %>
<%= f.radio_button :is_component, true %>Yes <%= f.radio_button :is_component, false %> No
<%= f.label :component_name, "Component Name" %>
<%= f.text_field :component_name %>
</p>
<p>
+1 -1
View File
@@ -23,7 +23,7 @@
<li><%= link_to t(:page, :scope => :admin), admin_pages_path %></li>
<li><%= link_to t(:snippet, :scope => :admin), admin_snippets_path %></li>
<li><%= link_to t(:layout, :scope => :admin), admin_layouts_path %></li>
<li><%= link_to t(:announcement, :scope => :admin), admin_announcements_path %></li>
<li><%= link_to t(:announcement, :scope => :admin), admin_announcements_path( :entry_name => 'news' ) %></li>
</ul>
</div>