From 0e65e379b0fa9d1e57b5d0a0f51e5294521b002c Mon Sep 17 00:00:00 2001 From: "Matthew K. Fu JuYuan" Date: Thu, 12 Jul 2012 11:47:24 +0800 Subject: [PATCH 1/4] cache first commit --- app/controllers/pages_controller.rb | 5 +++-- config/environments/development.rb | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index ce01c019..a3bdda0e 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -3,10 +3,11 @@ class PagesController < ApplicationController include ApplicationHelper before_filter :get_item, :only => [:index_from_link, :show_from_link] - + def index @item = Page.find_by_name('home') - if @item + + if @item && (stale? etag: @item.updated_at) impressionist(@item) render_page else diff --git a/config/environments/development.rb b/config/environments/development.rb index 2dac58e9..f1390868 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -12,7 +12,7 @@ Orbit::Application.configure do # Show full error reports and disable caching config.consider_all_requests_local = false #config.action_view.debug_rjs = true - config.action_controller.perform_caching = false + config.action_controller.perform_caching = true # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = false From 4daf36908c49097892d7596b665883f30a0c9e0b Mon Sep 17 00:00:00 2001 From: "Matthew K. Fu JuYuan" Date: Fri, 13 Jul 2012 15:36:10 +0800 Subject: [PATCH 2/4] working cache --- Gemfile | 3 +++ Gemfile.lock | 4 ++++ .../admin/module_apps_new_interface_controller.rb | 2 +- app/controllers/admin/page_parts_controller.rb | 6 ++++++ app/controllers/pages_controller.rb | 4 ++-- app/models/i18n_variable.rb | 7 +++++-- app/views/layouts/_users_checkbox_ary.html.erb | 4 +++- config/environments/development.rb | 2 ++ lib/tasks/mid_site_sync.rake | 3 ++- .../panel/announcement/back_end/bulletins_controller.rb | 5 +++++ .../panel/announcement/widget/bulletins_controller.rb | 1 - .../news/back_end/news_bulletin_categorys_controller.rb | 1 + .../panel/news/back_end/news_bulletins_controller.rb | 6 ++++++ .../panel/news/widget/news_bulletins_controller.rb | 1 + 14 files changed, 41 insertions(+), 8 deletions(-) diff --git a/Gemfile b/Gemfile index b3461c3a..d400b8b6 100644 --- a/Gemfile +++ b/Gemfile @@ -15,6 +15,9 @@ gem 'jquery-ui-rails' gem 'kaminari', :git => 'git://github.com/amatsuda/kaminari.git' +gem "memcached", "~> 1.4.3" +gem "memcache-client" + gem 'mini_magick' gem 'mongoid' gem 'mongoid-tree', :require => 'mongoid/tree' diff --git a/Gemfile.lock b/Gemfile.lock index 44c69616..abfe1fe1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -115,6 +115,8 @@ GEM i18n (>= 0.4.0) mime-types (~> 1.16) treetop (~> 1.4.8) + memcache-client (1.8.5) + memcached (1.4.3) mime-types (1.17.2) mini_magick (3.4) subexec (~> 0.2.1) @@ -308,6 +310,8 @@ DEPENDENCIES jquery-rails jquery-ui-rails kaminari! + memcache-client + memcached (~> 1.4.3) mini_magick mongo_session_store-rails3 mongoid diff --git a/app/controllers/admin/module_apps_new_interface_controller.rb b/app/controllers/admin/module_apps_new_interface_controller.rb index 863af560..2f1b0fe6 100644 --- a/app/controllers/admin/module_apps_new_interface_controller.rb +++ b/app/controllers/admin/module_apps_new_interface_controller.rb @@ -6,7 +6,7 @@ class Admin::ModuleAppsNewInterfaceController < OrbitBackendController layout "new_admin" def setting - @sys_users = User.all(conditions: {admin: false}).includes(:avatar) + @sys_users = Rails.cache.read('user_setting') #User.all(conditions: {admin: false}).includes(:avatar) @module_app = ModuleApp.find(params[:module_app_id]) @options_from_collection_for_select_bulletin_categorys = [@module_app].collect{|ma| [ma.title,ma.id] } # if params.has_key? :category diff --git a/app/controllers/admin/page_parts_controller.rb b/app/controllers/admin/page_parts_controller.rb index fd4b85f3..17065bce 100644 --- a/app/controllers/admin/page_parts_controller.rb +++ b/app/controllers/admin/page_parts_controller.rb @@ -48,6 +48,12 @@ class Admin::PagePartsController < ApplicationController if @part.update_attributes(params[:page_part]) set_children_sub_menu(@part) if @part.public_r_tag && @part.public_r_tag.eql?('sub_menu') flash.now[:notice] = t('admin.update_success_content') + + if @part.page.name == 'home' + expire_page '/' + else + expire_page page_path(@part.page.name) + end respond_to do |format| format.html { redirect_to admin_page_url( @part.page ) diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index a3bdda0e..392ffe3d 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -3,11 +3,11 @@ class PagesController < ApplicationController include ApplicationHelper before_filter :get_item, :only => [:index_from_link, :show_from_link] - + caches_page :index def index @item = Page.find_by_name('home') - if @item && (stale? etag: @item.updated_at) + if @item impressionist(@item) render_page else diff --git a/app/models/i18n_variable.rb b/app/models/i18n_variable.rb index 359a00ce..ee0897f8 100644 --- a/app/models/i18n_variable.rb +++ b/app/models/i18n_variable.rb @@ -3,10 +3,13 @@ class I18nVariable include Mongoid::Document include Mongoid::Timestamps - field :key - field :document_class, :type => String + field :key, :index => true + field :document_class, :type => String, :index => true field :parent_id, :type => BSON::ObjectId, :index => true + + + belongs_to :language_value, polymorphic: true def method_missing(*field) diff --git a/app/views/layouts/_users_checkbox_ary.html.erb b/app/views/layouts/_users_checkbox_ary.html.erb index 92cf8242..aa2e1d45 100644 --- a/app/views/layouts/_users_checkbox_ary.html.erb +++ b/app/views/layouts/_users_checkbox_ary.html.erb @@ -1,3 +1,5 @@ <%= content_tag :div ,:id => "users_checkbox_ary",:class => 'clear' do %> - <%= render :partial => "shared/privilege_user",:collection =>@sys_users,:as=>:user ,:locals =>{ :chosen_users=> @users_array } %> + <% cache ["users_checkbox_ary"] do%> + <%= render :partial => "shared/privilege_user",:collection =>@sys_users,:as=>:user ,:locals =>{ :chosen_users=> @users_array } %> + <%end -%> <%end -%> \ No newline at end of file diff --git a/config/environments/development.rb b/config/environments/development.rb index f1390868..048dfff1 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -23,6 +23,8 @@ Orbit::Application.configure do # Only use best-standards-support built into browsers config.action_dispatch.best_standards_support = :builtin + config.cache_store = :mem_cache_store + config.assets.debug = true diff --git a/lib/tasks/mid_site_sync.rake b/lib/tasks/mid_site_sync.rake index 69e93567..dacdb2e5 100644 --- a/lib/tasks/mid_site_sync.rake +++ b/lib/tasks/mid_site_sync.rake @@ -78,7 +78,8 @@ namespace :mid_site do local_user.save! end - + sys_users = User.all(conditions: {admin: false}).includes(:avatar).to_a + Rails.cache.write('user_setting', sys_users) end diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb index b7e824de..7e346fd3 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb @@ -144,6 +144,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController respond_to do |format| if @bulletin.save + format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('bulletin.create_bulletin_success')) } format.xml { render :xml => @bulletin, :status => :created, :location => @bulletin } format.js @@ -222,6 +223,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController @link_url = panel_announcement_back_end_bulletin_path(@bulletin_link) respond_to do |format| + if @bulletin_link.update_attributes(params[:bulletin_link]) # format.html { redirect_to(panel_announcement_back_end_bulletins_url) } format.js { render 'update_bulletin_link' } @@ -235,6 +237,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController @file_url = panel_announcement_back_end_bulletin_path(@bulletin_file) respond_to do |format| + if @bulletin_file.update_attributes(params[:bulletin_file]) # format.html { redirect_to(panel_announcement_back_end_bulletins_url) } format.js { render 'update_bulletin_file' } @@ -255,6 +258,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController delete_out_invalid_date_from_params respond_to do |format| + if @bulletin.update_attributes(params[:bulletin]) # if (@bulletin.deadline < @bulletin.postdate rescue nil) # @bulletin.deadline = nil @@ -284,6 +288,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController @bulletin.destroy respond_to do |format| + format.html { redirect_to(panel_announcement_back_end_bulletins_url) } # format.xml { head :ok } format.js diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb index 8a39862b..32e75df4 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb @@ -1,5 +1,4 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController - def initialize super @app_title = 'announcement' diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_categorys_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_categorys_controller.rb index 1fb743f9..d61c254c 100644 --- a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_categorys_controller.rb +++ b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_categorys_controller.rb @@ -114,6 +114,7 @@ class Panel::News::BackEnd::NewsBulletinCategorysController < OrbitBackendContro @news_bulletin_category.disable = @news_bulletin_category.disable ? false : true if @news_bulletin_category.save! + expire_page(:controller=>'panel/news/widget/news_bulletins' , :action=>'home_banner') respond_to do |format| flash[:notice] = t("bulletin_category.update_success") # flash[:error] += @bulletin_category.disable ? t("bulletin_category.disable_change_to_true") : t("bulletin_category.disable_change_to_false") diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb index 302baf2b..4d7a8ab5 100644 --- a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb +++ b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb @@ -134,6 +134,7 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController respond_to do |format| if @news_bulletin_file.save + expire_page(:controller=>'panel/news/widget/news_bulletins' , :action=>'home_banner') format.js { render 'create_news_bulletin_file' } end end @@ -148,6 +149,7 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController respond_to do |format| if @news_bulletin.save + expire_page(:controller=>'panel/news/widget/news_bulletins' , :action=>'home_banner') format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news_bulletin.create_news_bulletin_success')) } format.xml { render :xml => @news_bulletin, :status => :created, :location => @news_bulletin } format.js @@ -228,6 +230,7 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController respond_to do |format| if @news_bulletin_link.update_attributes(params[:news_bulletin_link]) + expire_page(:controller=>'panel/news/widget/news_bulletins' , :action=>'home_banner') # format.html { redirect_to(panel_news_back_end_news_bulletins_url) } format.js { render 'update_news_bulletin_link' } end @@ -241,6 +244,7 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController respond_to do |format| if @news_bulletin_file.update_attributes(params[:news_bulletin_file]) + expire_page(:controller=>'panel/news/widget/news_bulletins' , :action=>'home_banner') # format.html { redirect_to(panel_news_back_end_news_bulletins_url) } format.js { render 'update_news_bulletin_file' } end @@ -262,6 +266,7 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController respond_to do |format| if @news_bulletin.update_attributes(params[:news_bulletin]) + expire_page(:controller=>'panel/news/widget/news_bulletins' , :action=>'home_banner') # format.html { redirect_to(panel_news_back_end_news_bulletin_url(@news_bulletin), :notice => t('news_bulletin.update_news_bulletin_success')) } format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news_bulletin.update_success')) } format.js { render 'toggle_enable' } @@ -286,6 +291,7 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController @news_bulletin.destroy respond_to do |format| + expire_page(:controller=>'panel/news/widget/news_bulletins' , :action=>'home_banner') format.html { redirect_to(panel_news_back_end_news_bulletins_url) } # format.xml { head :ok } format.js diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb index fdcb0058..29fc0341 100644 --- a/vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb +++ b/vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb @@ -1,4 +1,5 @@ class Panel::News::Widget::NewsBulletinsController < OrbitWidgetController +caches_page :home_banner def initialize super From 2ae6b54a45338fd85fca0664152aa285972b5b39 Mon Sep 17 00:00:00 2001 From: "Matthew K. Fu JuYuan" Date: Fri, 13 Jul 2012 18:32:17 +0800 Subject: [PATCH 3/4] fix for not working cache --- app/controllers/admin/module_apps_new_interface_controller.rb | 2 +- app/views/layouts/_users_checkbox_ary.html.erb | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/controllers/admin/module_apps_new_interface_controller.rb b/app/controllers/admin/module_apps_new_interface_controller.rb index 2f1b0fe6..ab6dceee 100644 --- a/app/controllers/admin/module_apps_new_interface_controller.rb +++ b/app/controllers/admin/module_apps_new_interface_controller.rb @@ -6,7 +6,7 @@ class Admin::ModuleAppsNewInterfaceController < OrbitBackendController layout "new_admin" def setting - @sys_users = Rails.cache.read('user_setting') #User.all(conditions: {admin: false}).includes(:avatar) + @sys_users = User.all(conditions: {admin: false}).includes(:avatar) @module_app = ModuleApp.find(params[:module_app_id]) @options_from_collection_for_select_bulletin_categorys = [@module_app].collect{|ma| [ma.title,ma.id] } # if params.has_key? :category diff --git a/app/views/layouts/_users_checkbox_ary.html.erb b/app/views/layouts/_users_checkbox_ary.html.erb index aa2e1d45..e3baca27 100644 --- a/app/views/layouts/_users_checkbox_ary.html.erb +++ b/app/views/layouts/_users_checkbox_ary.html.erb @@ -1,5 +1,3 @@ <%= content_tag :div ,:id => "users_checkbox_ary",:class => 'clear' do %> - <% cache ["users_checkbox_ary"] do%> <%= render :partial => "shared/privilege_user",:collection =>@sys_users,:as=>:user ,:locals =>{ :chosen_users=> @users_array } %> - <%end -%> <%end -%> \ No newline at end of file From a4b1681d396c0e6dc48ec0227f8fb6bcd280ec14 Mon Sep 17 00:00:00 2001 From: "Matthew K. Fu JuYuan" Date: Tue, 17 Jul 2012 10:21:46 +0800 Subject: [PATCH 4/4] fix rejection for announcement and news. --- .../back_end/approvals_controller.rb | 18 +++++++++-- .../back_end/bulletins_controller.rb | 14 ++++++--- .../announcement/back_end/bulletins_helper.rb | 2 +- .../announcement/app/models/bulletin.rb | 30 +++++++++++-------- .../approvals/_modal_approve.html.erb | 2 +- .../announcement/config/locales/zh_tw.yml | 2 ++ .../back_end/news_approvals_controller.rb | 14 ++++++++- .../news/back_end/news_bulletins_helper.rb | 2 +- .../news/app/models/news_bulletin.rb | 29 +++++++++++------- .../news_approvals/_modal_approve.html.erb | 2 +- .../news/config/locales/zh_tw.yml | 3 +- 11 files changed, 82 insertions(+), 36 deletions(-) diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/approvals_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/approvals_controller.rb index 8944f9bb..0246ab7c 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/approvals_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/approvals_controller.rb @@ -7,9 +7,21 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle @bulletin = Bulletin.find params[:bulletin_id] end - # def approve - # - # end + def approve + notice = "" + @bulletin = Bulletin.find params[:bulletin_id] + + @bulletin.is_checked = params[:bulletin][:is_checked] + @bulletin.not_checked_reason = params[:bulletin][:not_checked_reason] + @bulletin.de_pending + + if @bulletin.save + notice = t('bulletin.approve_bulletin_success') + else + notice = t('bulletin.approve_bulletin_fail') + end + redirect_to(panel_announcement_back_end_bulletins_url,:notice => notice) + end def setting @sys_users = User.all(conditions: {admin: false}).includes(:avatar) diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb index 7e346fd3..c20b24a7 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb @@ -5,7 +5,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController layout 'new_admin' before_filter :authenticate_user! - before_filter :only => [ :new,:edit,:update] do |controller| + before_filter :only => [ :new,:create,:edit,:update] do |controller| controller.get_categorys('BulletinCategory') end # before_filter :for_admin_only,:only => [:] @@ -113,7 +113,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController # POST /bulletins # POST /bulletins.xml def create - + get_tags if params[:bulletin_link] @bulletin_link = BulletinLink.new(params[:bulletin_link]) @@ -216,10 +216,11 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController # PUT /bulletins/1 # PUT /bulletins/1.xml def update + if params[:bulletin_link] @bulletin_link = BulletinLink.find(params[:id]) - + @link_url = panel_announcement_back_end_bulletin_path(@bulletin_link) respond_to do |format| @@ -255,11 +256,16 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController # @bulletin.image_del = nil # params[:bulletin][:image_del] = nil # end - + + delete_out_invalid_date_from_params respond_to do |format| if @bulletin.update_attributes(params[:bulletin]) + # if (params[:bulletin][:is_checked] == "false") + # @bulletin.is_rejected = true + # @bulletin.save! + # end # if (@bulletin.deadline < @bulletin.postdate rescue nil) # @bulletin.deadline = nil # @bulletin.update_user_id = current_user.id diff --git a/vendor/built_in_modules/announcement/app/helpers/panel/announcement/back_end/bulletins_helper.rb b/vendor/built_in_modules/announcement/app/helpers/panel/announcement/back_end/bulletins_helper.rb index 91147c62..3f57fd3a 100644 --- a/vendor/built_in_modules/announcement/app/helpers/panel/announcement/back_end/bulletins_helper.rb +++ b/vendor/built_in_modules/announcement/app/helpers/panel/announcement/back_end/bulletins_helper.rb @@ -1,7 +1,7 @@ module Panel::Announcement::BackEnd::BulletinsHelper def show_approval_link(bulletin) - by_bulletin = (!bulletin.is_expired? and !bulletin.is_checked?) + by_bulletin = (!bulletin.is_expired? and bulletin.is_pending?) by_user = ((bulletin.bulletin_category.authed_users('fact_check').include?(current_user) rescue nil) or is_manager? or is_admin?) by_bulletin and by_user end diff --git a/vendor/built_in_modules/announcement/app/models/bulletin.rb b/vendor/built_in_modules/announcement/app/models/bulletin.rb index dea2fc17..a6b0e55f 100644 --- a/vendor/built_in_modules/announcement/app/models/bulletin.rb +++ b/vendor/built_in_modules/announcement/app/models/bulletin.rb @@ -57,7 +57,7 @@ class Bulletin validates_presence_of :title - before_save :set_key, :update_status,:check_deadline + before_save :set_key,:check_deadline,:update_status after_save :save_bulletin_links after_save :save_bulletin_files @@ -73,6 +73,9 @@ class Bulletin # # :limit => limit # # } # } +def de_pending + self.is_pending = false +end def publish_month published_at.strftime("%B %Y") @@ -125,9 +128,9 @@ end def is_hidden? self.is_hidden end - + def is_checked? - self.is_checked + !self.is_pending && self.is_checked && (self.is_rejected == false) end def is_pending? @@ -135,7 +138,7 @@ end end def is_rejected? - self.is_rejected + !self.is_pending && self.is_rejected && (self.is_rejected == true) end @@ -201,15 +204,18 @@ end end def update_status - if !self.is_pending && !self.is_checked - self.is_pending = false - self.is_rejected = true - self.is_checked = false - elsif self.is_checked - self.is_pending = false - self.is_rejected = false - self.is_checked = true + if !self.is_pending + if !self.is_checked + # self.is_pending = false + self.is_rejected = true + #self.is_checked = false + elsif self.is_checked + # self.is_pending = false + self.is_rejected = false + #self.is_checked = true + end end + return true end diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_approve.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_approve.html.erb index 35049b98..2a400a1f 100644 --- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_approve.html.erb +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_approve.html.erb @@ -18,7 +18,7 @@