Change the design for the whole site form designs index
This commit is contained in:
		
							parent
							
								
									c74ead8318
								
							
						
					
					
						commit
						ff435a4af4
					
				|  | @ -57,6 +57,24 @@ class Admin::SitesController < ApplicationController | ||||||
|      |      | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def change_design | ||||||
|  |     design = Design.find(params[:site_id]) rescue nil | ||||||
|  |     update_design(design) if design | ||||||
|  |     render :nothing => true | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   protected | ||||||
|  | 
 | ||||||
|  |   def update_design(design) | ||||||
|  |     @site.design = design | ||||||
|  |     if @site.save | ||||||
|  |       theme_id = design.themes.first.id | ||||||
|  |       Page.all.each do |page| | ||||||
|  |         page.update_attributes({design_id: design.id, theme_id: (theme_id unless page.root?)}) | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   private |   private | ||||||
| 
 | 
 | ||||||
|   def get_site |   def get_site | ||||||
|  |  | ||||||
|  | @ -10,6 +10,7 @@ class Design | ||||||
| 
 | 
 | ||||||
|   mount_uploader :zip_file, AssetUploader |   mount_uploader :zip_file, AssetUploader | ||||||
| 
 | 
 | ||||||
|  |   has_one :site | ||||||
|   has_one :css_default, as: :css, :autosave => true, :dependent => :destroy |   has_one :css_default, as: :css, :autosave => true, :dependent => :destroy | ||||||
|   has_one :layout, :autosave => true, :dependent => :destroy |   has_one :layout, :autosave => true, :dependent => :destroy | ||||||
|   has_one :css_reset, :autosave => true, :dependent => :destroy |   has_one :css_reset, :autosave => true, :dependent => :destroy | ||||||
|  |  | ||||||
|  | @ -26,6 +26,7 @@ class Site | ||||||
|   field :footer, localize: true |   field :footer, localize: true | ||||||
|   field :sub_menu, localize: true |   field :sub_menu, localize: true | ||||||
|    |    | ||||||
|  |   belongs_to :design | ||||||
|   has_many :site_metas, :autosave => true, :dependent => :destroy |   has_many :site_metas, :autosave => true, :dependent => :destroy | ||||||
| 
 | 
 | ||||||
|   def generate_keys |   def generate_keys | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ | ||||||
| 			</ul> | 			</ul> | ||||||
| 		</div> | 		</div> | ||||||
| 	</td> | 	</td> | ||||||
|  | 	<td class="span1"><%= radio_button_tag 'design_default', design.id, (@site.design.id.to_s.eql?(design.id.to_s) ? true : false), :class => 'design_default', :rel => admin_sites_path %> <%=@site.design.id.to_s.eql?(design.id.to_s)%></td> | ||||||
|   <td class="span7"><%= design.intro %></td> |   <td class="span7"><%= design.intro %></td> | ||||||
|   <td class="span2"><%= design.author %></td> |   <td class="span2"><%= design.author %></td> | ||||||
| </tr> | </tr> | ||||||
|  | @ -2,6 +2,7 @@ | ||||||
| 	<tr> | 	<tr> | ||||||
| 		<th class="span1 strong"></th> | 		<th class="span1 strong"></th> | ||||||
| 		<th class="span2"></th> | 		<th class="span2"></th> | ||||||
|  |     <th class="span1"></th> | ||||||
| 		<th class="span7"></th> | 		<th class="span7"></th> | ||||||
| 		<th class="span2"></th> | 		<th class="span2"></th> | ||||||
| 	</tr> | 	</tr> | ||||||
|  | @ -10,3 +11,14 @@ | ||||||
| <tbody id="tbody_designs" class="sort-holder"> | <tbody id="tbody_designs" class="sort-holder"> | ||||||
| 	<%= render :partial => 'design', :collection => @designs %> | 	<%= render :partial => 'design', :collection => @designs %> | ||||||
| </tbody> | </tbody> | ||||||
|  | 
 | ||||||
|  | <% content_for :page_specific_javascript do %> | ||||||
|  |   <script> | ||||||
|  |     $(document).ready(function(){ | ||||||
|  |       $(document).on('change', '.design_default', function(){ | ||||||
|  |         $(this).attr('value'); | ||||||
|  |         $.getScript($(this).attr('rel') + '/' + $(this).val() + '/change_design'); | ||||||
|  |       });  | ||||||
|  |     });  | ||||||
|  |   </script> | ||||||
|  | <% end %> | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| <%= render_sort_bar(true, delete_admin_designs_path(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]), | <%= render_sort_bar(true, delete_admin_designs_path(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]), | ||||||
|  ['title', 'title','span2', :title], |  ['title', 'title','span2', :title], | ||||||
|  |                           ['', '', 'span1', :default], | ||||||
|                           ['intro', 'intro', 'span7', :intro], |                           ['intro', 'intro', 'span7', :intro], | ||||||
| 													['author', 'author', 'span2', :author]).html_safe %> | 													['author', 'author', 'span2', :author]).html_safe %> | ||||||
|  |  | ||||||
|  | @ -148,6 +148,7 @@ en: | ||||||
|     web_link: Link |     web_link: Link | ||||||
|   dashboard_: Dashboard |   dashboard_: Dashboard | ||||||
|   deadline: Deadline |   deadline: Deadline | ||||||
|  |   default: Default | ||||||
|   default_css: Default CSS |   default_css: Default CSS | ||||||
|   delete: |   delete: | ||||||
|     file: Delete file |     file: Delete file | ||||||
|  |  | ||||||
|  | @ -148,6 +148,7 @@ zh_tw: | ||||||
|     web_link: 鏈接 |     web_link: 鏈接 | ||||||
|   dashboard_: 儀表版 |   dashboard_: 儀表版 | ||||||
|   deadline: 最後期限 |   deadline: 最後期限 | ||||||
|  |   default: Default | ||||||
|   default_css: 預設樣式表 |   default_css: 預設樣式表 | ||||||
|   delete: |   delete: | ||||||
|     file: 刪除檔案 |     file: 刪除檔案 | ||||||
|  |  | ||||||
|  | @ -128,6 +128,7 @@ Orbit::Application.routes.draw do | ||||||
|       get 'sitemap_toggle', :on => :member |       get 'sitemap_toggle', :on => :member | ||||||
|       get 'system_info' |       get 'system_info' | ||||||
|       get 'ui_theme' |       get 'ui_theme' | ||||||
|  |       get 'change_design' | ||||||
|     end |     end | ||||||
|     resources :tags |     resources :tags | ||||||
|     resources :users |     resources :users | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue