minor refactoring of flash messages
This commit is contained in:
@ -17,8 +17,7 @@ class ApplicationController < ActionController::Base
|
||||
end
|
||||
|
||||
def render_not_authorized
|
||||
flash[:danger] = t('application.not_authorized')
|
||||
redirect_to(:root)
|
||||
redirect_to(:root, alert: t('application.not_authorized'))
|
||||
end
|
||||
private :render_not_authorized
|
||||
|
||||
|
@ -39,8 +39,7 @@ class InternalUsersController < ApplicationController
|
||||
def deliver_reset_password_instructions
|
||||
if params[:email].present?
|
||||
InternalUser.find_by(email: params[:email]).try(:deliver_reset_password_instructions!)
|
||||
flash[:notice] = t('.success')
|
||||
redirect_to(:root)
|
||||
redirect_to(:root, notice: t('.success'))
|
||||
end
|
||||
end
|
||||
private :deliver_reset_password_instructions
|
||||
@ -77,10 +76,7 @@ class InternalUsersController < ApplicationController
|
||||
end
|
||||
|
||||
def render_forgot_password_form
|
||||
if current_user
|
||||
flash[:warning] = t('shared.already_signed_in')
|
||||
redirect_to(:root)
|
||||
end
|
||||
redirect_to(:root, alert: t('shared.already_signed_in')) if current_user
|
||||
end
|
||||
private :render_forgot_password_form
|
||||
|
||||
|
@ -21,8 +21,7 @@ class SessionsController < ApplicationController
|
||||
set_current_user
|
||||
store_lti_session_data(consumer: @consumer, parameters: params)
|
||||
store_nonce(params[:oauth_nonce])
|
||||
flash[:notice] = I18n.t("sessions.create_through_lti.session_#{lti_outcome_service? ? 'with' : 'without'}_outcome", consumer: @consumer)
|
||||
redirect_to(implement_exercise_path(@exercise))
|
||||
redirect_to(implement_exercise_path(@exercise), notice: t("sessions.create_through_lti.session_#{lti_outcome_service? ? 'with' : 'without'}_outcome", consumer: @consumer))
|
||||
end
|
||||
|
||||
def destroy
|
||||
@ -41,9 +40,6 @@ class SessionsController < ApplicationController
|
||||
end
|
||||
|
||||
def new
|
||||
if current_user
|
||||
flash[:warning] = t('shared.already_signed_in')
|
||||
redirect_to(:root)
|
||||
end
|
||||
redirect_to(:root, alert: t('shared.already_signed_in')) if current_user
|
||||
end
|
||||
end
|
||||
|
@ -22,7 +22,7 @@ module ApplicationHelper
|
||||
def label_column(label)
|
||||
content_tag(:div, class: 'col-sm-3') do
|
||||
content_tag(:strong) do
|
||||
translation_present?("activerecord.attributes.#{label}") ? t("activerecord.attributes.#{label}") : t(label)
|
||||
I18n.translation_present?("activerecord.attributes.#{label}") ? t("activerecord.attributes.#{label}") : t(label)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -60,11 +60,6 @@ module ApplicationHelper
|
||||
end
|
||||
end
|
||||
|
||||
def translation_present?(key)
|
||||
I18n.t(key, default: '').present?
|
||||
end
|
||||
private :translation_present?
|
||||
|
||||
def value_column(value)
|
||||
content_tag(:div, class: 'col-sm-9') do
|
||||
block_given? ? yield : symbol_for(value)
|
||||
|
@ -11,7 +11,7 @@
|
||||
- if object
|
||||
li = link_to(object, send(:"#{model.model_name.singular}_path", object))
|
||||
li.active
|
||||
- if translation_present?("shared.#{params[:action]}")
|
||||
- if I18n.translation_present?("shared.#{params[:action]}")
|
||||
= t("shared.#{params[:action]}")
|
||||
- else
|
||||
= t("#{controller_name}.index.#{params[:action]}")
|
||||
|
@ -13,3 +13,9 @@ unless Array.respond_to?(:to_h)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
module I18n
|
||||
def self.translation_present?(key)
|
||||
t(key, default: '').present?
|
||||
end
|
||||
end
|
||||
|
@ -22,18 +22,13 @@ describe ApplicationController do
|
||||
end
|
||||
|
||||
describe '#render_not_authorized' do
|
||||
let(:render_not_authorized) { controller.send(:render_not_authorized) }
|
||||
|
||||
it 'displays a flash message' do
|
||||
expect(controller).to receive(:redirect_to)
|
||||
render_not_authorized
|
||||
expect(flash[:danger]).to eq(I18n.t('application.not_authorized'))
|
||||
before(:each) do
|
||||
expect(controller).to receive(:welcome) { controller.send(:render_not_authorized) }
|
||||
get :welcome
|
||||
end
|
||||
|
||||
it 'redirects to the root URL' do
|
||||
expect(controller).to receive(:redirect_to).with(:root)
|
||||
render_not_authorized
|
||||
end
|
||||
expect_flash_message(:alert, I18n.t('application.not_authorized'))
|
||||
expect_redirect(:root)
|
||||
end
|
||||
|
||||
describe '#set_locale' do
|
||||
|
@ -118,10 +118,7 @@ describe ExecutionEnvironmentsController do
|
||||
end
|
||||
|
||||
expect_assigns(docker_images: Array)
|
||||
|
||||
it 'displays a flash message' do
|
||||
expect(flash[:warning]).to eq(error_message)
|
||||
end
|
||||
expect_flash_message(:warning, :error_message)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -46,8 +46,7 @@ describe ExercisesController do
|
||||
end
|
||||
|
||||
expect_assigns(exercise: Exercise)
|
||||
|
||||
expect_flash_message(:danger)
|
||||
expect_flash_message(:danger, :'shared.message_failure')
|
||||
expect_redirect(:exercise)
|
||||
end
|
||||
end
|
||||
|
@ -180,6 +180,7 @@ describe InternalUsersController do
|
||||
get :forgot_password
|
||||
end
|
||||
|
||||
expect_flash_message(:alert, :'shared.already_signed_in')
|
||||
expect_redirect(:root)
|
||||
end
|
||||
end
|
||||
|
@ -103,25 +103,25 @@ describe SessionsController do
|
||||
end
|
||||
|
||||
context 'when LTI outcomes are supported' do
|
||||
let(:message) { I18n.t('sessions.create_through_lti.session_with_outcome', consumer: consumer) }
|
||||
|
||||
before(:each) do
|
||||
expect(controller).to receive(:lti_outcome_service?).and_return(true)
|
||||
request
|
||||
end
|
||||
|
||||
it 'displays a flash message' do
|
||||
expect(flash[:notice]).to eq(I18n.t('sessions.create_through_lti.session_with_outcome', consumer: consumer))
|
||||
end
|
||||
expect_flash_message(:notice, :message)
|
||||
end
|
||||
|
||||
context 'when LTI outcomes are not supported' do
|
||||
let(:message) { I18n.t('sessions.create_through_lti.session_without_outcome', consumer: consumer) }
|
||||
|
||||
before(:each) do
|
||||
expect(controller).to receive(:lti_outcome_service?).and_return(false)
|
||||
request
|
||||
end
|
||||
|
||||
it 'displays a flash message' do
|
||||
expect(flash[:notice]).to eq(I18n.t('sessions.create_through_lti.session_without_outcome', consumer: consumer))
|
||||
end
|
||||
expect_flash_message(:notice, :message)
|
||||
end
|
||||
|
||||
it 'redirects to the requested exercise' do
|
||||
@ -206,6 +206,7 @@ describe SessionsController do
|
||||
get :new
|
||||
end
|
||||
|
||||
expect_flash_message(:alert, :'shared.already_signed_in')
|
||||
expect_redirect(:root)
|
||||
end
|
||||
end
|
||||
|
@ -24,7 +24,7 @@ end
|
||||
def expect_flash_message(type, message = nil)
|
||||
it 'displays a flash message' do
|
||||
if message
|
||||
expect(flash[type]).to eq(message.is_a?(String) ? message : I18n.t(message))
|
||||
expect(flash[type]).to eq(obtain_message(message))
|
||||
else
|
||||
expect(flash[type]).to be_present
|
||||
end
|
||||
@ -59,13 +59,25 @@ def expect_template(template)
|
||||
end
|
||||
end
|
||||
|
||||
def obtain_object(value)
|
||||
case value
|
||||
def obtain_object(object)
|
||||
case object
|
||||
when Proc
|
||||
value.call
|
||||
object.call
|
||||
when Symbol
|
||||
send(value)
|
||||
send(object)
|
||||
else
|
||||
value
|
||||
object
|
||||
end
|
||||
end
|
||||
private :obtain_object
|
||||
|
||||
def obtain_message(object)
|
||||
if object.is_a?(String)
|
||||
object
|
||||
elsif I18n.translation_present?(object)
|
||||
I18n.t(object)
|
||||
else
|
||||
send(object)
|
||||
end
|
||||
end
|
||||
private :obtain_message
|
||||
|
Reference in New Issue
Block a user