From: Taro Matsuzawa Date: Wed, 6 Oct 2010 09:38:24 +0000 (+0900) Subject: プラグイン画面の遷移を修正 X-Git-Tag: 2.1~19 X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=8f9991a79f4687ed75cededad59447147700abaa;p=elecoma%2Felecoma.git プラグイン画面の遷移を修正 --- diff --git a/app/controllers/admin/plugins_controller.rb b/app/controllers/admin/plugins_controller.rb index 41293c3..bef987b 100644 --- a/app/controllers/admin/plugins_controller.rb +++ b/app/controllers/admin/plugins_controller.rb @@ -68,11 +68,12 @@ class Admin::PluginsController < Admin::BaseController def payment_plugin_data_management unless get_plugin_instance(params[:id]) + flash[:notice] = "このプラグインのインスタンスが取得できません。無効になっているか確認してください。" redirect_to(:action => :index) return end unless @payment_plugin_instance.has_data_management? - flash[:notice] = "データ管理はありません" + flash[:notice] = "このプラグインにデータ管理はありません" redirect_to(:action => :index) return end @@ -82,11 +83,12 @@ class Admin::PluginsController < Admin::BaseController def payment_plugin_config unless get_plugin_instance(params[:id]) + flash.now[:notice] = "このプラグインのインスタンスが取得できません。無効になっているか確認してください。" redirect_to(:action => :index) return end unless @payment_plugin_instance.has_config? - flash[:notice] = "データ管理はありません" + flash.now[:notice] = "このプラグインに設定ページはありません" redirect_to(:action => :index) return end @@ -95,12 +97,13 @@ class Admin::PluginsController < Admin::BaseController end def payment_plugin_info - unless get_plugin_instance(params[:id]) + unless get_plugin_instance(params[:id], true) + flash.now[:notice] = "このプラグインのインスタンスが取得できません。クラスが正しく設定されているか確認してください。" redirect_to(:action => :index) return end unless @payment_plugin_instance.has_info? - flash[:notice] = "データ管理はありません" + flash.now[:notice] = "このプラグインに詳細ページはありません" redirect_to(:action => :index) return end @@ -109,12 +112,12 @@ class Admin::PluginsController < Admin::BaseController end private - def get_plugin_instance(id) + def get_plugin_instance(id, disable_flg = false) @payment_plugin = PaymentPlugin.find_by_id(id) if @payment_plugin.nil? return false end - @payment_plugin_instance = @payment_plugin.get_plugin_instance + @payment_plugin_instance = @payment_plugin.get_plugin_instance(disable_flg) if @payment_plugin_instance.nil? return false end diff --git a/app/models/normal_payment_plugin.rb b/app/models/normal_payment_plugin.rb index 9c18840..05ac303 100644 --- a/app/models/normal_payment_plugin.rb +++ b/app/models/normal_payment_plugin.rb @@ -15,10 +15,16 @@ class NormalPaymentPlugin < ActiveForm false end + def has_info? + false + end + + def has_data_management? + false + end + def payment_validate(payment) - return false, "は共通の発送は選べません" if payment.common_delivery? return true, "" end - end diff --git a/app/models/payment_plugin.rb b/app/models/payment_plugin.rb index 8d94027..194df63 100644 --- a/app/models/payment_plugin.rb +++ b/app/models/payment_plugin.rb @@ -5,8 +5,8 @@ class PaymentPlugin < ActiveRecord::Base validates_presence_of :name, :model_name, :detail - def get_plugin_instance - return nil unless self.enable + def get_plugin_instance(disable = false) + return nil unless self.enable || disable ret = nil class_name = self.model_name.classify if Object.const_defined?(class_name)