fix design index bug when start start from blank DB.
add delay impressionist. add several i18n vars
This commit is contained in:
parent
37aa950028
commit
54a35b30be
|
@ -14,7 +14,7 @@ class PagesController < ApplicationController
|
||||||
@item = Page.find_by_name('home')
|
@item = Page.find_by_name('home')
|
||||||
|
|
||||||
if @item
|
if @item
|
||||||
impressionist(@item)
|
delayed_impressionist(@item)
|
||||||
render_page
|
render_page
|
||||||
else
|
else
|
||||||
redirect_to '/admin/dashboards',:notice=>t(:need_home)
|
redirect_to '/admin/dashboards',:notice=>t(:need_home)
|
||||||
|
@ -26,7 +26,7 @@ class PagesController < ApplicationController
|
||||||
#begin
|
#begin
|
||||||
@item = Item.first(:conditions => {:path => params[:page_name]})
|
@item = Item.first(:conditions => {:path => params[:page_name]})
|
||||||
if @item && @item.is_published && (@item.enabled_for.nil? ? true : @item.enabled_for.include?(I18n.locale.to_s))
|
if @item && @item.is_published && (@item.enabled_for.nil? ? true : @item.enabled_for.include?(I18n.locale.to_s))
|
||||||
impressionist(@item)
|
delayed_impressionist(@item)
|
||||||
case @item.class.to_s
|
case @item.class.to_s
|
||||||
when 'Page'
|
when 'Page'
|
||||||
if params[:clicked_field_name]
|
if params[:clicked_field_name]
|
||||||
|
|
|
@ -1,9 +1,15 @@
|
||||||
module ApplicationHelper
|
module ApplicationHelper
|
||||||
|
|
||||||
FLASH_NOTICE_KEYS = [:error, :notice, :warning]
|
FLASH_NOTICE_KEYS = [:error, :notice, :warning]
|
||||||
|
|
||||||
|
def delayed_impressionist(object)
|
||||||
|
Resque.enqueue_at(1.minute.from_now,DelayedImpressionist,object)
|
||||||
|
end
|
||||||
|
|
||||||
def check_user_role_enable(attribute_fields)
|
def check_user_role_enable(attribute_fields)
|
||||||
@user.attribute_values.collect{|t| attribute_fields.include?(t.attribute_field) }.include?(true) rescue false
|
@user.attribute_values.collect{|t| attribute_fields.include?(t.attribute_field) }.include?(true) rescue false
|
||||||
end
|
end
|
||||||
|
|
||||||
def show_attribute_value(value)
|
def show_attribute_value(value)
|
||||||
if value.kind_of? Hash
|
if value.kind_of? Hash
|
||||||
result = []
|
result = []
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
class DelayedImpressionist
|
||||||
|
@queue = :low
|
||||||
|
def self.perform(object)
|
||||||
|
impressionist(object)
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
|
@ -26,7 +26,7 @@ class Item
|
||||||
after_save :rebuild_children_path, :if => "path_changed?"
|
after_save :rebuild_children_path, :if => "path_changed?"
|
||||||
|
|
||||||
def enabled_for_lang(lang)
|
def enabled_for_lang(lang)
|
||||||
enabled_for.include?(lang)
|
enabled_for.include?(lang) rescue false
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.find_by_name(item_name)
|
def self.find_by_name(item_name)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<tr>
|
<tr>
|
||||||
<th>時間</th>
|
<th><%= I18n.t 'user_action.time' %></th>
|
||||||
<th>使用帳號</th>
|
<th><%= I18n.t 'user_action.name' %></th>
|
||||||
<th>頁面</th>
|
<th><%= I18n.t 'user_action.page' %></th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<% @user_actions.each do |user_action| %>
|
<% @user_actions.each do |user_action| %>
|
||||||
|
|
|
@ -465,6 +465,10 @@ en:
|
||||||
url: URL
|
url: URL
|
||||||
use_status: Use Statue
|
use_status: Use Statue
|
||||||
user: User
|
user: User
|
||||||
|
user_action:
|
||||||
|
time: Time
|
||||||
|
name: Account
|
||||||
|
page: Access Page and Action
|
||||||
users:
|
users:
|
||||||
admin_change_password: You cannot change your own password here!
|
admin_change_password: You cannot change your own password here!
|
||||||
avatar: Profile Picture
|
avatar: Profile Picture
|
||||||
|
|
|
@ -466,6 +466,10 @@ zh_tw:
|
||||||
url: 網址
|
url: 網址
|
||||||
use_status: 使用狀態
|
use_status: 使用狀態
|
||||||
user: 使用者
|
user: 使用者
|
||||||
|
user_action:
|
||||||
|
time: 時間
|
||||||
|
name: 使用帳號
|
||||||
|
page: 頁面
|
||||||
users:
|
users:
|
||||||
admin_change_password: 您不能在此處修改自己的密碼!
|
admin_change_password: 您不能在此處修改自己的密碼!
|
||||||
avatar: 大頭貼照
|
avatar: 大頭貼照
|
||||||
|
|
|
@ -25,7 +25,7 @@ num_workers.times do |num|
|
||||||
end
|
end
|
||||||
|
|
||||||
w.env = {"QUEUE"=>queue, "RAILS_ENV"=>rails_env}
|
w.env = {"QUEUE"=>queue, "RAILS_ENV"=>rails_env}
|
||||||
w.start = "HOME=#{user_home} QUEUE=* RAILS_ENV=#{rails_env}" rake -f #{rails_root}/Rakefile resque:work
|
w.start = "HOME=#{user_home} QUEUE=* RAILS_ENV=#{rails_env} rake -f #{rails_root}/Rakefile resque:work"
|
||||||
|
|
||||||
w.uid = (rails_env == 'production' )? "root" : development_uid
|
w.uid = (rails_env == 'production' )? "root" : development_uid
|
||||||
w.gid = (rails_env == 'production' )? "root" : development_gid
|
w.gid = (rails_env == 'production' )? "root" : development_gid
|
||||||
|
|
|
@ -10,7 +10,7 @@ development_gid = ''
|
||||||
w.group = 'resque'
|
w.group = 'resque'
|
||||||
w.interval = 30.seconds
|
w.interval = 30.seconds
|
||||||
w.env = {"QUEUE"=>"critical,high,low", "RAILS_ENV"=>rails_env}
|
w.env = {"QUEUE"=>"critical,high,low", "RAILS_ENV"=>rails_env}
|
||||||
w.start = "HOME= #{user_home} QUEUE=* RAILS_ENV=#{rails_env}" rake -f #{rails_root}/Rakefile resque:scheduler
|
w.start = "HOME= #{user_home} QUEUE=* RAILS_ENV=#{rails_env} rake -f #{rails_root}/Rakefile resque:scheduler"
|
||||||
|
|
||||||
w.uid = (rails_env == 'production' )? "root" : development_uid
|
w.uid = (rails_env == 'production' )? "root" : development_uid
|
||||||
w.gid = (rails_env == 'production' )? "root" : development_gid
|
w.gid = (rails_env == 'production' )? "root" : development_gid
|
||||||
|
|
|
@ -23,6 +23,9 @@ namespace :site do
|
||||||
|
|
||||||
# home_trans = I18nVariable.create!( :document_class => 'Home', :key => 'home', :en => 'Homepage', :zh_tw => '首頁')
|
# home_trans = I18nVariable.create!( :document_class => 'Home', :key => 'home', :en => 'Homepage', :zh_tw => '首頁')
|
||||||
design = Design.first
|
design = Design.first
|
||||||
|
site = Site.first
|
||||||
|
site.design = design
|
||||||
|
site.save
|
||||||
theme = design.themes.first
|
theme = design.themes.first
|
||||||
home = Page.new( :design_id => design.id, :name => 'home', :is_published => true, :theme_id => theme.id )
|
home = Page.new( :design_id => design.id, :name => 'home', :is_published => true, :theme_id => theme.id )
|
||||||
|
|
||||||
|
|
|
@ -1,83 +0,0 @@
|
||||||
diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb
|
|
||||||
index a6535c5..a89f60e 100644
|
|
||||||
--- a/app/controllers/pages_controller.rb
|
|
||||||
+++ b/app/controllers/pages_controller.rb
|
|
||||||
@@ -7,7 +7,7 @@ class PagesController < ApplicationController
|
|
||||||
@item = Page.find_by_name('home')
|
|
||||||
|
|
||||||
if @item
|
|
||||||
- impressionist(@item)
|
|
||||||
+ delayed_impressionist(@item)
|
|
||||||
render_page
|
|
||||||
else
|
|
||||||
render :text => t(:need_home)
|
|
||||||
@@ -18,7 +18,7 @@ class PagesController < ApplicationController
|
|
||||||
#begin
|
|
||||||
@item = Item.first(:conditions => {:path => params[:page_name]})
|
|
||||||
if @item && @item.is_published && (@item.enabled_for.nil? ? true : @item.enabled_for.include?(I18n.locale.to_s))
|
|
||||||
- impressionist(@item)
|
|
||||||
+ delayed_impressionist(@item)
|
|
||||||
case @item.class.to_s
|
|
||||||
when 'Page'
|
|
||||||
render_page unless save_from_no_lang_for_page
|
|
||||||
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
|
|
||||||
index e20a0c2..b4aa12b 100644
|
|
||||||
--- a/app/helpers/application_helper.rb
|
|
||||||
+++ b/app/helpers/application_helper.rb
|
|
||||||
@@ -278,4 +278,8 @@ module ApplicationHelper
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
+ def delayed_impressionist(object)
|
|
||||||
+ Resque.enqueue_at(1.minute.from_now,DelayedImpressionist,object)
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
end
|
|
||||||
diff --git a/app/jobs/delayed_impressionist.rb b/app/jobs/delayed_impressionist.rb
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..65a4a6d
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/app/jobs/delayed_impressionist.rb
|
|
||||||
@@ -0,0 +1,7 @@
|
|
||||||
+class DelayedImpressionist
|
|
||||||
+ @queue = :low
|
|
||||||
+ def self.perform(object)
|
|
||||||
+ impressionist(object)
|
|
||||||
+ true
|
|
||||||
+ end
|
|
||||||
+end
|
|
||||||
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
|
|
||||||
index 2fe0f71..72fe43b 100644
|
|
||||||
--- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
|
|
||||||
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
|
|
||||||
@@ -53,7 +53,7 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
|
|
||||||
else
|
|
||||||
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num)
|
|
||||||
end
|
|
||||||
- impressionist(@tag) if @tag
|
|
||||||
+ delayed_impressionist(@tag) if @tag
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -66,7 +66,7 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
|
|
||||||
@bulletin = Bulletin.all.can_display.where(_id: params[:id]).first
|
|
||||||
if @bulletin and !@bulletin.disable? and !@bulletin.is_rejected
|
|
||||||
if @bulletin.enabled_for_lang(I18n.locale.to_s)
|
|
||||||
- impressionist(@bulletin)
|
|
||||||
+ delayed_impressionist(@bulletin)
|
|
||||||
get_categorys
|
|
||||||
else
|
|
||||||
render :text => "<div class='alert alert-error'>#{t('sys.can_not_display_due_to_no_context')}</div>".html_safe
|
|
||||||
diff --git a/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb b/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb
|
|
||||||
index e1e98c7..90a079e 100644
|
|
||||||
--- a/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb
|
|
||||||
+++ b/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb
|
|
||||||
@@ -8,7 +8,7 @@ class Panel::PageContent::FrontEnd::PageContextsController < OrbitWidgetControll
|
|
||||||
def index
|
|
||||||
# @page_context = PageContext.where("page_id" => params[:page_id], :archived => false)
|
|
||||||
@page_context = PageContext.first(conditions: { page_id: params[:page_id], :archived => false })
|
|
||||||
- impressionist(@page_context)
|
|
||||||
+ delayed_impressionist(@page_context)
|
|
||||||
|
|
||||||
respond_to do |format|
|
|
||||||
format.html # index.html.erb
|
|
|
@ -19,10 +19,10 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
|
||||||
with(:frontend_search,true)
|
with(:frontend_search,true)
|
||||||
with(:available_lang).any_of([I18n.locale.to_s])
|
with(:available_lang).any_of([I18n.locale.to_s])
|
||||||
end
|
end
|
||||||
|
|
||||||
search_result = @search.results.collect{|result| result.id}
|
search_result = @search.results.collect{|result| result.id}
|
||||||
|
|
||||||
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_in(_id:search_result).page( params[:page_main]).per(@page_num)
|
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_in(_id:search_result).page( params[:page_main]).per(@page_num)
|
||||||
render 'index'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def index
|
def index
|
||||||
|
@ -61,7 +61,7 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
|
||||||
else
|
else
|
||||||
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num)
|
@bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num)
|
||||||
end
|
end
|
||||||
impressionist(@tag) if @tag
|
delayed_impressionist(@tag) if @tag
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -74,7 +74,7 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
|
||||||
@bulletin = Bulletin.all.can_display.where(_id: params[:id]).first
|
@bulletin = Bulletin.all.can_display.where(_id: params[:id]).first
|
||||||
if @bulletin and !@bulletin.disable? and !@bulletin.is_rejected
|
if @bulletin and !@bulletin.disable? and !@bulletin.is_rejected
|
||||||
if @bulletin.enabled_for_lang(I18n.locale.to_s)
|
if @bulletin.enabled_for_lang(I18n.locale.to_s)
|
||||||
impressionist(@bulletin)
|
delayed_impressionist(@bulletin)
|
||||||
get_categorys
|
get_categorys
|
||||||
else
|
else
|
||||||
render :text => "<div class='alert alert-error'>#{t('sys.can_not_display_due_to_no_context')}</div>".html_safe
|
render :text => "<div class='alert alert-error'>#{t('sys.can_not_display_due_to_no_context')}</div>".html_safe
|
||||||
|
|
|
@ -108,7 +108,7 @@ class Bulletin
|
||||||
end
|
end
|
||||||
|
|
||||||
def enabled_for_lang(lang)
|
def enabled_for_lang(lang)
|
||||||
eval("self.available_for_#{lang}")
|
eval("self.available_for_#{lang}") rescue false
|
||||||
end
|
end
|
||||||
|
|
||||||
def publish_month
|
def publish_month
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
<% # encoding: utf-8 %>
|
||||||
|
|
||||||
|
<%= flash_messages %>
|
||||||
|
|
||||||
|
<h1 class="h1"><%= @page.title rescue nil %></h1>
|
||||||
|
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tr>
|
||||||
|
<%= content_tag (:th) do %>
|
||||||
|
<%= t('announcement.bulletin.category') %>
|
||||||
|
<% end if (!params[:search_query].blank? or params[:category_id].blank?)-%>
|
||||||
|
<th><%= t('announcement.bulletin.title') %></th>
|
||||||
|
<th><%= t('announcement.bulletin.postdate') %></th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<% if !params[:name].blank?%>
|
||||||
|
<%= t("search.unit_get",:unit_name => params[:name],:item_num=>@bulletins.count) %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% if @bulletins.blank? and !params[:search_query].blank? %>
|
||||||
|
<%=render :partial => 'shared/search_not_found' %>
|
||||||
|
<% elsif !params[:search_query].blank? %>
|
||||||
|
<%= t("search.result_get",:search_word => params[:search_query],:item_num=>@bulletins.count) unless (@bulletins.count == 30) %>
|
||||||
|
<%= t("search.too_many",:search_word => params[:search_query],:exceed_num=>@bulletins.count) if (@bulletins.count ==30) %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% @bulletins.each do |post| %>
|
||||||
|
<tr>
|
||||||
|
<td><%= post.bulletin_category.title rescue nil %></td>
|
||||||
|
<td><%= link_to post.title, panel_announcement_front_end_bulletin_path(post, :category_id => post.bulletin_category_id) %>
|
||||||
|
<%#= link_to post.title, panel_announcement_back_end_bulletin_path(post) %>
|
||||||
|
</td>
|
||||||
|
<td><%= display_date_time(post.postdate) %></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ en:
|
||||||
file_name: File Name
|
file_name: File Name
|
||||||
frontend:
|
frontend:
|
||||||
bulletins: Announcement front-end
|
bulletins: Announcement front-end
|
||||||
|
search_result: Search result
|
||||||
link_name: Link Name
|
link_name: Link Name
|
||||||
new_bulletin_category: New Bulletin Category
|
new_bulletin_category: New Bulletin Category
|
||||||
picture: Cover Picture
|
picture: Cover Picture
|
||||||
|
|
|
@ -25,6 +25,7 @@ zh_tw:
|
||||||
file_name: 檔案名稱
|
file_name: 檔案名稱
|
||||||
frontend:
|
frontend:
|
||||||
bulletins: 公告前台
|
bulletins: 公告前台
|
||||||
|
search_result: 搜尋結果頁
|
||||||
link_name: 連結名稱
|
link_name: 連結名稱
|
||||||
new_bulletin_category: 新增公告類別
|
new_bulletin_category: 新增公告類別
|
||||||
picture: 刊頭圖片
|
picture: 刊頭圖片
|
||||||
|
|
|
@ -12,6 +12,10 @@ module Announcement
|
||||||
update_info 'some update_info'
|
update_info 'some update_info'
|
||||||
|
|
||||||
front_end do
|
front_end do
|
||||||
|
app_page 'search_result' do
|
||||||
|
frontend_i18n "announcement.frontend.search_result"
|
||||||
|
end
|
||||||
|
|
||||||
app_page 'bulletins' do
|
app_page 'bulletins' do
|
||||||
frontend_i18n "announcement.frontend.bulletins"
|
frontend_i18n "announcement.frontend.bulletins"
|
||||||
style ["1","2","3"]
|
style ["1","2","3"]
|
||||||
|
|
|
@ -8,7 +8,7 @@ class Panel::PageContent::FrontEnd::PageContextsController < OrbitWidgetControll
|
||||||
def index
|
def index
|
||||||
# @page_context = PageContext.where("page_id" => params[:page_id], :archived => false)
|
# @page_context = PageContext.where("page_id" => params[:page_id], :archived => false)
|
||||||
@page_context = PageContext.first(conditions: { page_id: params[:page_id], :archived => false })
|
@page_context = PageContext.first(conditions: { page_id: params[:page_id], :archived => false })
|
||||||
impressionist(@page_context)
|
delayed_impressionist(@page_context)
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html # index.html.erb
|
format.html # index.html.erb
|
||||||
|
|
Loading…
Reference in New Issue