1.fix parent page 2.add page title
This commit is contained in:
		
							parent
							
								
									38e365e4b5
								
							
						
					
					
						commit
						9f1ba2ae66
					
				| 
						 | 
				
			
			@ -3,7 +3,7 @@ class Admin::PagesController < ApplicationController
 | 
			
		|||
  layout "admin"
 | 
			
		||||
  
 | 
			
		||||
  def index
 | 
			
		||||
    @pages = Page.all( :conditions => { :parent_page_id => "root" } )
 | 
			
		||||
    @pages = Page.all( :conditions => { :parent_page_name => params[:parent] || "root" } )
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def show
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +15,7 @@ class Admin::PagesController < ApplicationController
 | 
			
		|||
  def new
 | 
			
		||||
    @page = Page.new
 | 
			
		||||
    @page.is_published = true
 | 
			
		||||
    @page.parent_page_id = params[:parent_page_id]
 | 
			
		||||
    @page.parent_page_name = params[:parent_page_name]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def edit
 | 
			
		||||
| 
						 | 
				
			
			@ -27,7 +27,7 @@ class Admin::PagesController < ApplicationController
 | 
			
		|||
 | 
			
		||||
    if @page.save
 | 
			
		||||
      flash[:notice] = 'Page was successfully created.'
 | 
			
		||||
      redirect_to admin_pages_url
 | 
			
		||||
      redirect_to admin_pages_url( :parent_page_name => @page.parent_page_name )
 | 
			
		||||
    else
 | 
			
		||||
     render :action => "new"
 | 
			
		||||
    end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,19 +2,21 @@ class Page
 | 
			
		|||
   include MongoMapper::Document
 | 
			
		||||
  
 | 
			
		||||
   key :name, String
 | 
			
		||||
   key :parent_page_id, String
 | 
			
		||||
   key :parent_page_name, String
 | 
			
		||||
 
 | 
			
		||||
   key_i18n :title, String
 | 
			
		||||
   key_i18n :content, String
 | 
			
		||||
    
 | 
			
		||||
   key :layout_id, String
 | 
			
		||||
   key :layout_name, String
 | 
			
		||||
   key :use_engine, String
 | 
			
		||||
   key :external_link, String
 | 
			
		||||
   key :position, Integer
 | 
			
		||||
   key :is_published, Boolean
 | 
			
		||||
   
 | 
			
		||||
   key :is_component, Boolean
 | 
			
		||||
   key :component_name, String
 | 
			
		||||
   
 | 
			
		||||
   belongs_to :layout
 | 
			
		||||
   has_many :children, :class_name => 'Page', :foreign_key => 'parent_page_id'
 | 
			
		||||
   
 | 
			
		||||
   validates_presence_of :name
 | 
			
		||||
   validates_presence_of :position
 | 
			
		||||
| 
						 | 
				
			
			@ -42,8 +44,8 @@ class Page
 | 
			
		|||
       self.position = (max_page)? max_page.position.to_i + 1 : 1
 | 
			
		||||
     end
 | 
			
		||||
     
 | 
			
		||||
     if self.parent_page_id.blank?
 | 
			
		||||
       self.parent_page_id = "root"
 | 
			
		||||
     if self.parent_page_name.blank?
 | 
			
		||||
       self.parent_page_name = "root"
 | 
			
		||||
     end
 | 
			
		||||
   end
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,22 @@
 | 
			
		|||
<%= f.text_field :name, :class => 'text' %>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label :title, "Title en" %>
 | 
			
		||||
<%= f.text_field :title_en, :class => 'text' %>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label :title, "Title zh_tw" %>
 | 
			
		||||
<%= f.text_field :title_zh_tw, :class => 'text' %>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label :parent_page_name, "Parent Page Name" %>
 | 
			
		||||
<%= f.text_field :parent_page_name, :class => 'text' %>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label :layout_name, "Layout Name" %>
 | 
			
		||||
<%= f.text_field :layout_name, :class => 'text' %>
 | 
			
		||||
| 
						 | 
				
			
			@ -22,18 +38,18 @@
 | 
			
		|||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label :is_published, "Is Published" %>
 | 
			
		||||
<%= f.radio_button :is_published, 1 %>Yes <%= f.radio_button :is_published, 0 %> No
 | 
			
		||||
<%= f.radio_button :is_published, true %>Yes <%= f.radio_button :is_published, false %> No
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
    <%= f.label :is_component, "Is component" %>
 | 
			
		||||
<%= f.radio_button :is_component, true %>Yes <%= f.radio_button :is_component, false %> No
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label :external_link, "External Link" %>
 | 
			
		||||
<%= f.text_field :external_link %>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label :use_engine, "Use Engine" %>
 | 
			
		||||
<%= f.text_field :use_engine %>
 | 
			
		||||
<p>
 | 
			
		||||
  
 | 
			
		||||
<% content_for :page_specific_javascript do %>
 | 
			
		||||
<script type="text/javascript" charset="utf-8">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +1,18 @@
 | 
			
		|||
<% content_for :secondary do %>
 | 
			
		||||
    <ul>
 | 
			
		||||
    <ul class="list">
 | 
			
		||||
        <li><%= link_to 'New pages', new_admin_page_path, :class => 'button positive' %></li>
 | 
			
		||||
        <li><%= link_to 'New component entry', '#' %>
 | 
			
		||||
        <li><%= link_to 'New root menu snippets', new_admin_snippet_path( :menu => 'root' ), :class => 'button positive' %></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
<% end -%>
 | 
			
		||||
 | 
			
		||||
<h1>Listing pages</h1>
 | 
			
		||||
<h1>Listing pages: <%= params[:parent] || "root" %></h1>
 | 
			
		||||
 | 
			
		||||
<table>
 | 
			
		||||
  <tr>
 | 
			
		||||
    <th>Name</th>
 | 
			
		||||
    <th>Children</th>
 | 
			
		||||
    <th>Title</th>
 | 
			
		||||
    <th>Layout</th>
 | 
			
		||||
    <th>Parent</th>
 | 
			
		||||
    <th>Position</th>
 | 
			
		||||
    <th>Published?</th>
 | 
			
		||||
    <th>Action</th>
 | 
			
		||||
| 
						 | 
				
			
			@ -20,22 +20,16 @@
 | 
			
		|||
 | 
			
		||||
<% @pages.each do |page| %>
 | 
			
		||||
  <tr>
 | 
			
		||||
    <td><%= link_to page.name, admin_page_path(page) %></td>
 | 
			
		||||
    <td>
 | 
			
		||||
      <ul>
 | 
			
		||||
      <% page.children.each do |child| %>
 | 
			
		||||
        <li><%= child.name %></li>
 | 
			
		||||
      <% end -%>
 | 
			
		||||
      </ul>
 | 
			
		||||
    </td>  
 | 
			
		||||
    <td><%= link_to page.name, admin_pages_path(:parent => page.name) %></td>
 | 
			
		||||
    <td><%=h page.title %>
 | 
			
		||||
    <td><%= page.layout_name %></th>
 | 
			
		||||
    <td><%= page.parent_page_id %></td>
 | 
			
		||||
    <td><%= page.position %></td>
 | 
			
		||||
    <td><%= page.is_published.to_s %></td>
 | 
			
		||||
    <td>
 | 
			
		||||
      <%= link_to 'Edit', edit_admin_page_path(page) %> |
 | 
			
		||||
      <%= link_to 'Add Child', new_admin_page_path( :parent_page_id => page.id ) %> |
 | 
			
		||||
      <%= link_to 'Destroy', admin_page_path(page), :confirm => 'Are you sure?', :method => :delete %>
 | 
			
		||||
      <%= link_to t(:show), page_path(page.name) %> | 
 | 
			
		||||
      <%= link_to t(:edit), edit_admin_page_path(page) %> |
 | 
			
		||||
      <%= link_to t(:add_chile_page, :scope => :admin), new_admin_page_path( :parent_page_name => page.name ) %> |
 | 
			
		||||
      <%= link_to t(:delete), admin_page_path(page), :confirm => 'Are you sure?', :method => :delete %>
 | 
			
		||||
    </td>
 | 
			
		||||
  </tr>
 | 
			
		||||
  
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
 | 
			
		||||
<% form_for :page, :url => admin_pages_path do |f| %>
 | 
			
		||||
  <%= f.error_messages %>
 | 
			
		||||
  <%= f.hidden_field :parent_page_id %>
 | 
			
		||||
  <%= f.hidden_field :parent_page_name %>
 | 
			
		||||
  
 | 
			
		||||
  <%= render :partial => "form", :locals => { :f => f } %>
 | 
			
		||||
  
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,12 @@
 | 
			
		|||
zh_tw:
 | 
			
		||||
  show: 顯示
 | 
			
		||||
  edit: 編輯
 | 
			
		||||
  delete: 刪除
 | 
			
		||||
  
 | 
			
		||||
  admin:
 | 
			
		||||
    home: 首頁
 | 
			
		||||
    page: 頁面管理
 | 
			
		||||
    snippet: 片段管理
 | 
			
		||||
    layout: 樣版管理
 | 
			
		||||
    add_chile_page: 新增子頁
 | 
			
		||||
    announcement: 公告管理
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +50,7 @@ ActionController::Routing::Routes.draw do |map|
 | 
			
		|||
  # Note: These default routes make all actions in every controller accessible via GET requests. You should
 | 
			
		||||
  # consider removing the them or commenting them out if you're using named routes and resources.
 | 
			
		||||
  
 | 
			
		||||
  map.connect ':page_name', :controller => 'pages', :action => 'show'
 | 
			
		||||
  map.page ':page_name', :controller => 'pages', :action => 'show'
 | 
			
		||||
  
 | 
			
		||||
  #map.connect ':controller/:action/:id'
 | 
			
		||||
  #map.connect ':controller/:action/:id.:format'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -284,22 +284,6 @@ please read http://easyframework.com/documentation.php
 | 
			
		|||
		}		
 | 
			
		||||
 | 
			
		||||
/* // header */
 | 
			
		||||
	
 | 
			
		||||
/* content */
 | 
			
		||||
 | 
			
		||||
	.content a, .content a:visited{
 | 
			
		||||
		text-decoration:underline;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
/* // content */
 | 
			
		||||
 | 
			
		||||
/* footer */
 | 
			
		||||
	
 | 
			
		||||
	#footer a, #footer a:visited{
 | 
			
		||||
		text-decoration:underline;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
/* // footer */
 | 
			
		||||
 | 
			
		||||
/* clearfix */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
ul.list{
 | 
			
		||||
	margin:1em 0;
 | 
			
		||||
	padding:0;
 | 
			
		||||
	border-top:1px solid #ccc;
 | 
			
		||||
	width:200px;
 | 
			
		||||
	}	
 | 
			
		||||
ul.list li{
 | 
			
		||||
	margin:0;
 | 
			
		||||
	padding:.5em 0;
 | 
			
		||||
	list-style:none;
 | 
			
		||||
	border-bottom:1px solid #ccc;
 | 
			
		||||
	}
 | 
			
		||||
		Reference in New Issue