spec/dummy/app/controllers/application_controller.rb in enju_flower-0.1.0.pre9 vs spec/dummy/app/controllers/application_controller.rb in enju_flower-0.1.0.pre10
- old
+ new
@@ -1,180 +1,7 @@
class ApplicationController < ActionController::Base
protect_from_forgery
- rescue_from CanCan::AccessDenied, :with => :render_403
- rescue_from ActiveRecord::RecordNotFound, :with => :render_404
-
- before_filter :get_library_group, :set_locale, :set_available_languages
-
+ enju_leaf
enju_biblio
enju_library
-
- private
- def render_403
- return if performed?
- if user_signed_in?
- respond_to do |format|
- format.html {render :template => 'page/403', :status => 403}
- format.xml {render :template => 'page/403', :status => 403}
- format.json
- end
- else
- respond_to do |format|
- format.html {redirect_to new_user_session_url}
- format.xml {render :template => 'page/403', :status => 403}
- format.json
- end
- end
- end
-
- def render_404
- return if performed?
- respond_to do |format|
- format.html {render :template => 'page/404', :status => 404}
- format.mobile {render :template => 'page/404', :status => 404}
- format.xml {render :template => 'page/404', :status => 404}
- format.json
- end
- end
-
- def access_denied
- raise CanCan::AccessDenied
- end
-
- def store_location
- if request.get? and request.format.try(:html?) and !request.xhr?
- session[:user_return_to] = request.fullpath
- end
- end
-
- def solr_commit
- Sunspot.commit
- end
-
- def move_position(resource, direction, redirect = true)
- if ['higher', 'lower'].include?(direction)
- resource.send("move_#{direction}")
- if redirect
- redirect_to url_for(:controller => resource.class.to_s.pluralize.underscore)
- return
- end
- end
- end
-
- def set_role_query(user, search)
- role = user.try(:role) || Role.default_role
- search.build do
- with(:required_role_id).less_than_or_equal_to role.id
- end
- end
-
- def get_version
- @version = params[:version_id].to_i if params[:version_id]
- @version = nil if @version == 0
- end
-
- def convert_charset
- case params[:format]
- when 'csv'
- return unless Setting.csv_charset_conversion
- # TODO: 他の言語
- if @locale.to_sym == :ja
- headers["Content-Type"] = "text/csv; charset=Shift_JIS"
- response.body = NKF::nkf('-Ws', response.body)
- end
- when 'xml'
- if @locale.to_sym == :ja
- headers["Content-Type"] = "application/xml; charset=Shift_JIS"
- response.body = NKF::nkf('-Ws', response.body)
- end
- end
- end
-
- def make_internal_query(search)
- # 内部的なクエリ
- set_role_query(current_user, search)
-
- unless params[:mode] == "add"
- expression = @expression
- patron = @patron
- manifestation = @manifestation
- reservable = @reservable
- carrier_type = params[:carrier_type]
- library = params[:library]
- language = params[:language]
- if defined?(EnjuSubject)
- subject = params[:subject]
- subject_by_term = Subject.where(:term => params[:subject]).first
- @subject_by_term = subject_by_term
- end
-
- search.build do
- with(:publisher_ids).equal_to patron.id if patron
- with(:original_manifestation_ids).equal_to manifestation.id if manifestation
- with(:reservable).equal_to reservable unless reservable.nil?
- unless carrier_type.blank?
- with(:carrier_type).equal_to carrier_type
- end
- unless library.blank?
- library_list = library.split.uniq
- library_list.each do |library|
- with(:library).equal_to library
- end
- end
- unless language.blank?
- language_list = language.split.uniq
- language_list.each do |language|
- with(:language).equal_to language
- end
- end
- if defined?(EnjuSubject)
- unless subject.blank?
- with(:subject).equal_to subject_by_term.term
- end
- end
- end
- end
- return search
- end
-
- def solr_commit
- Sunspot.commit
- end
-
- def clear_search_sessions
- session[:query] = nil
- session[:params] = nil
- session[:search_params] = nil
- session[:manifestation_ids] = nil
- end
-
- def set_locale
- if params[:locale]
- unless I18n.available_locales.include?(params[:locale].to_s.intern)
- raise InvalidLocaleError
- end
- end
- if user_signed_in?
- locale = params[:locale] || session[:locale] || current_user.locale.try(:to_sym)
- else
- locale = params[:locale] || session[:locale]
- end
- if locale
- I18n.locale = @locale = session[:locale] = locale.to_sym
- else
- I18n.locale = @locale = session[:locale] = I18n.default_locale
- end
- rescue InvalidLocaleError
- @locale = I18n.default_locale
- end
-
- def set_available_languages
- if Rails.env == 'production'
- @available_languages = Rails.cache.fetch('available_languages'){
- Language.where(:iso_639_1 => I18n.available_locales.map{|l| l.to_s}).select([:id, :iso_639_1, :name, :native_name, :display_name, :position]).all
- }
- else
- @available_languages = Language.where(:iso_639_1 => I18n.available_locales.map{|l| l.to_s})
- end
- end
end