enable/disable plugins by config option

This commit is contained in:
wvengen 2014-04-05 18:47:16 +02:00
parent 6d98be6d22
commit 64bb8e043d
21 changed files with 65 additions and 15 deletions

View file

@ -11,5 +11,8 @@ add the following to foodsoft's Gemfile:
gem 'foodsoft_messages', path: 'lib/foodsoft_messages'
```
This plugin introduces the foodcoop config option `use_messages`, which can be
set to `false` to disable messages. May be useful in multicoop deployments.
This plugin is part of the foodsoft package and uses the GPL-3 license (see
foodsoft's LICENSE for the full license text).

View file

@ -1,5 +1,7 @@
class MessagesController < ApplicationController
before_filter -> { require_plugin_enabled FoodsoftMessages }
# Renders the "inbox" action.
def index
@messages = Message.public.page(params[:page]).per(@per_page).order('created_at DESC').includes(:sender)

View file

@ -1,2 +1,3 @@
/ insert_after 'erb:contains("delete")'
= link_to t('.send_message'), new_message_path(:message => {:group_id => @ordergroup.id}), class: 'btn'
- if FoodsoftMessages.enabled?
= link_to t('.send_message'), new_message_path(:message => {:group_id => @ordergroup.id}), class: 'btn'

View file

@ -1,2 +1,3 @@
/ insert_after 'erb:contains("delete")'
= link_to t('.send_message'), new_message_path(:message => {:mail_to => @user.id}), class: 'btn'
- if FoodsoftMessages.enabled?
= link_to t('.send_message'), new_message_path(:message => {:mail_to => @user.id}), class: 'btn'

View file

@ -1,2 +1,3 @@
/ insert_after 'erb:contains("delete")'
= link_to_new_message(message_params: {group_id: @workgroup.id})
- if FoodsoftMessages.enabled?
= link_to_new_message(message_params: {group_id: @workgroup.id})

View file

@ -1,2 +1,3 @@
/ insert_bottom 'tbody tr'
%td= link_to_new_message(message_params: {group_id: ordergroup.id})
- if FoodsoftMessages.enabled?
%td= link_to_new_message(message_params: {group_id: ordergroup.id})

View file

@ -1,2 +1,3 @@
/ insert_bottom 'tbody tr'
%td= link_to_new_message(message_params: {mail_to: user.id})
- if FoodsoftMessages.enabled?
%td= link_to_new_message(message_params: {mail_to: user.id})

View file

@ -1,2 +1,3 @@
/ insert_after 'erb:contains("tasks")'
= link_to_new_message message_params: {group_id: workgroup.id}
- if FoodsoftMessages.enabled?
= link_to_new_message message_params: {group_id: workgroup.id}

View file

@ -1,2 +1,3 @@
/ insert_after 'erb:contains("tasks")'
%li= link_to t('.write_message'), new_message_path
- if FoodsoftMessages.enabled?
%li= link_to t('.write_message'), new_message_path

View file

@ -1,6 +1,7 @@
/ insert_after 'erb[silent]:contains("<dashboard_middle_mark>")'
- unless Message.public.empty?
%section#messages
%h2= t '.messages.title'
= render 'messages/messages', messages: Message.public.order('created_at DESC').limit(5), pagination: false
%p= link_to t('.messages.view_all'), messages_path
- if FoodsoftMessages.enabled?
- unless Message.public.empty?
%section#messages
%h2= t '.messages.title'
= render 'messages/messages', messages: Message.public.order('created_at DESC').limit(5), pagination: false
%p= link_to t('.messages.view_all'), messages_path

View file

@ -3,4 +3,9 @@ require "foodsoft_messages/user_link"
require "deface"
module FoodsoftMessages
# Return whether messages are used or not.
# Enabled by default since it used to be part of the foodsoft core.
def self.enabled?
FoodsoftConfig[:use_messages] != false
end
end

View file

@ -1,6 +1,7 @@
module FoodsoftMessages
class Engine < ::Rails::Engine
def navigation(primary, context)
return unless FoodsoftMessages.enabled?
return if primary[:foodcoop].nil?
sub_nav = primary[:foodcoop].sub_navigation
sub_nav.items <<

View file

@ -6,7 +6,7 @@ module FoodsoftMessages
# modify user presentation link to writing a message for the user
def show_user_link(user=@current_user)
if user.nil?
if user.nil? or not FoodsoftMessages.enabled?
show_user user
else
link_to show_user(user), new_message_path('message[mail_to]' => user.id),

View file

@ -14,5 +14,8 @@ gem 'acts_as_versioned', git: 'git://github.com/technoweenie/acts_as_versioned.g
gem 'foodsoft_wiki', path: 'lib/foodsoft_wiki'
```
This plugin introduces the foodcoop config option `use_wiki`, which can be set
to `false` to disable the wiki. May be useful in multicoop deployments.
This plugin is part of the foodsoft package and uses the GPL-3 license (see
foodsoft's LICENSE for the full license text).

View file

@ -1,5 +1,6 @@
# encoding: utf-8
class PagesController < ApplicationController
before_filter -> { require_plugin_enabled FoodsoftWiki }
skip_before_filter :authenticate, :only => :all
before_filter :only => :all do

View file

@ -5,4 +5,9 @@ require 'content_for_in_controllers'
require 'foodsoft_wiki/engine'
module FoodsoftWiki
# Return whether the wiki is used or not.
# Enabled by default since it used to be part of the foodsoft core.
def self.enabled?
FoodsoftConfig[:use_wiki] != false
end
end

View file

@ -1,6 +1,7 @@
module FoodsoftWiki
class Engine < ::Rails::Engine
def navigation(primary, ctx)
return unless FoodsoftWiki.enabled?
primary.item :wiki, I18n.t('navigation.wiki.title'), '#', id: nil do |subnav|
subnav.item :wiki_home, I18n.t('navigation.wiki.home'), ctx.wiki_path, id: nil
subnav.item :all_pages, I18n.t('navigation.wiki.all_pages'), ctx.all_pages_path, id: nil