Fix site_locale_default_head and active for current locale
This commit is contained in:
		
							parent
							
								
									51f87e7212
								
							
						
					
					
						commit
						48f8fbde7f
					
				|  | @ -128,8 +128,8 @@ class ApplicationController < ActionController::Base | ||||||
|     # set site if exist or create site |     # set site if exist or create site | ||||||
|     @site = Site.first || Site.create({:valid_locales => [], :in_use_locales => []}) |     @site = Site.first || Site.create({:valid_locales => [], :in_use_locales => []}) | ||||||
|     session[:site] = @site.id |     session[:site] = @site.id | ||||||
|     @site_in_use_locales = @site.in_use_locales |     @site_in_use_locales = site_locales_default_head(@site.in_use_locales) | ||||||
|     @site_valid_locales = @site.valid_locales |     @site_valid_locales = site_locales_default_head(@site.valid_locales) | ||||||
|   end |   end | ||||||
|    |    | ||||||
|   def set_current_item |   def set_current_item | ||||||
|  | @ -164,4 +164,14 @@ class ApplicationController < ActionController::Base | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def site_locales_default_head(locales) | ||||||
|  |     if locales[0].eql? I18n.locale.to_s | ||||||
|  |       locales | ||||||
|  |     else | ||||||
|  |       a = Array.new(locales) | ||||||
|  |       shift_out = a.delete(I18n.locale.to_s) | ||||||
|  |       [shift_out] + a | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -1,7 +1,3 @@ | ||||||
| module Admin::AdImagesHelper | module Admin::AdImagesHelper | ||||||
| 
 | 
 | ||||||
|   def active_when_default_locale_eq locale |  | ||||||
|     locale.to_sym == I18n.default_locale ? 'active': '' |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -2,12 +2,6 @@ module ApplicationHelper | ||||||
| 
 | 
 | ||||||
|   FLASH_NOTICE_KEYS = [:error, :notice, :warning] |   FLASH_NOTICE_KEYS = [:error, :notice, :warning] | ||||||
|    |    | ||||||
|   def site_valid_locales_default_head |  | ||||||
|     index = @site_valid_locales.rindex I18n.default_locale.to_s |  | ||||||
|     shift_out = @site_valid_locales.shift(index) |  | ||||||
|     @site_valid_locales += shift_out |  | ||||||
|   end |  | ||||||
|    |  | ||||||
|   def colorize_in_use_locale(locale) |   def colorize_in_use_locale(locale) | ||||||
|     @site_in_use_locales.include?(locale)? 'green' : 'red' |     @site_in_use_locales.include?(locale)? 'green' : 'red' | ||||||
|   end |   end | ||||||
|  | @ -147,4 +141,8 @@ module ApplicationHelper | ||||||
|     javascripts |     javascripts | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def active_when_current_locale_eq(locale) | ||||||
|  |     locale.to_sym == I18n.locale ? 'active': '' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -130,14 +130,14 @@ | ||||||
| 			<div id="post-body"> | 			<div id="post-body"> | ||||||
| 				<div id="post-body-content" class="clear"> | 				<div id="post-body-content" class="clear"> | ||||||
| 					<ul class="nav nav-tabs"> | 					<ul class="nav nav-tabs"> | ||||||
| 						<% site_valid_locales_default_head.each do |locale|%> | 						<% @site_valid_locales.each do |locale|%> | ||||||
| 							<%= content_tag :li,link_to(I18nVariable.from_locale(locale),"##{locale}",:data=>{:toggle => "tab"}),:class=> (active_when_default_locale_eq locale)  %> | 							<%= content_tag :li,link_to(I18nVariable.from_locale(locale),"##{locale}",:data=>{:toggle => "tab"}),:class=> (active_when_current_locale_eq locale)  %> | ||||||
| 						<% end %> | 						<% end %> | ||||||
| 					</ul> | 					</ul> | ||||||
| 					<div class="tab-content"> | 					<div class="tab-content"> | ||||||
| 						<%= select_tag 'ad_banner[id]',options_from_collection_for_select(AdBanner.all, "id", "title",params[:ad_banner_id]) , :class=>"input-medium",   %> | 						<%= select_tag 'ad_banner[id]',options_from_collection_for_select(AdBanner.all, "id", "title",params[:ad_banner_id]) , :class=>"input-medium",   %> | ||||||
| 						<% site_valid_locales_default_head.each do |locale|%> | 						<% @site_valid_locales.each do |locale|%> | ||||||
| 							<%= content_tag :div,:class	=> "tab-pane #{active_when_default_locale_eq locale}",:id=>"#{locale}" do%> | 							<%= content_tag :div,:class	=> "tab-pane #{active_when_current_locale_eq locale}",:id=>"#{locale}" do%> | ||||||
| 								<div class="title"> | 								<div class="title"> | ||||||
| 									<%= f.fields_for :title,@ad_image.title do |f| %> | 									<%= f.fields_for :title,@ad_image.title do |f| %> | ||||||
| 										<%= f.text_field locale,:class=>"ad_image-title post-title",:placeholder => "輸入標題"%> | 										<%= f.text_field locale,:class=>"ad_image-title post-title",:placeholder => "輸入標題"%> | ||||||
|  |  | ||||||
|  | @ -126,7 +126,7 @@ | ||||||
| 			 | 			 | ||||||
| 			<ul class="nav nav-tabs"> | 			<ul class="nav nav-tabs"> | ||||||
| 				<%# @site_valid_locales.each_with_index do |locale, i| %> | 				<%# @site_valid_locales.each_with_index do |locale, i| %> | ||||||
| 				<% site_valid_locales_default_head.each_with_index do |locale, i| %> | 				<% @site_valid_locales.each_with_index do |locale, i| %> | ||||||
| 			    <li <%= ( i == 0 ) ? " class='active'" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li> | 			    <li <%= ( i == 0 ) ? " class='active'" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li> | ||||||
| 				<% end %> | 				<% end %> | ||||||
| 			</ul> | 			</ul> | ||||||
|  | @ -134,7 +134,7 @@ | ||||||
| 			<div class="tab-content"> | 			<div class="tab-content"> | ||||||
| 			 | 			 | ||||||
| 				<%# @site_valid_locales.each_with_index do |locale, i| %> | 				<%# @site_valid_locales.each_with_index do |locale, i| %> | ||||||
| 				<% site_valid_locales_default_head.each_with_index do |locale, i| %> | 				<% @site_valid_locales.each_with_index do |locale, i| %> | ||||||
| 				 | 				 | ||||||
| 				<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>"> | 				<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>"> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -126,7 +126,7 @@ | ||||||
| 			 | 			 | ||||||
| 			<ul class="nav nav-tabs"> | 			<ul class="nav nav-tabs"> | ||||||
| 				<%# @site_valid_locales.each_with_index do |locale, i| %> | 				<%# @site_valid_locales.each_with_index do |locale, i| %> | ||||||
| 				<% site_valid_locales_default_head.each_with_index do |locale, i| %> | 				<% @site_valid_locales.each_with_index do |locale, i| %> | ||||||
| 			    <li <%= ( i == 0 ) ? " class='active'" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li> | 			    <li <%= ( i == 0 ) ? " class='active'" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li> | ||||||
| 				<% end %> | 				<% end %> | ||||||
| 			</ul> | 			</ul> | ||||||
|  | @ -134,7 +134,7 @@ | ||||||
| 			<div class="tab-content"> | 			<div class="tab-content"> | ||||||
| 			 | 			 | ||||||
| 				<%# @site_valid_locales.each_with_index do |locale, i| %> | 				<%# @site_valid_locales.each_with_index do |locale, i| %> | ||||||
| 				<% site_valid_locales_default_head.each_with_index do |locale, i| %> | 				<% @site_valid_locales.each_with_index do |locale, i| %> | ||||||
| 				 | 				 | ||||||
| 				<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>"> | 				<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>"> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Reference in New Issue