thredded-workgroup 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/.rubocop +1 -0
- data/.rubocop.yml +65 -0
- data/.travis.yml +45 -0
- data/CHANGELOG.md +9 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +6 -0
- data/Guardfile +77 -0
- data/LICENSE.txt +21 -0
- data/README.md +125 -0
- data/RELEASE_CHECKLIST.md +19 -0
- data/Rakefile +161 -0
- data/app/assets/images/thredded/workgroup/.keep +0 -0
- data/app/assets/javascripts/thredded-workgroup.js +13 -0
- data/app/assets/javascripts/thredded/workgroup/follow.js +36 -0
- data/app/assets/javascripts/thredded/workgroup/topics.js +18 -0
- data/app/assets/stylesheets/thredded-workgroup.scss +3 -0
- data/app/assets/stylesheets/thredded/workgroup/_navs.scss +35 -0
- data/app/assets/stylesheets/thredded/workgroup/_topics.scss +52 -0
- data/app/controllers/thredded/posts_controller.rb +50 -0
- data/app/controllers/thredded/workgroup/application_controller.rb +7 -0
- data/app/controllers/thredded/workgroup/navs_controller.rb +41 -0
- data/app/helpers/thredded/application_helper.rb +9 -0
- data/app/helpers/thredded/workgroup/application_helper.rb +7 -0
- data/app/view_models/thredded/topic_view.rb +15 -0
- data/app/view_models/thredded/topics_page_view.rb +15 -0
- data/app/views/layouts/thredded/workgroup/application.html.erb +14 -0
- data/app/views/thredded/posts_common/form/_after_content.html.erb +1 -0
- data/app/views/thredded/shared/_header.html.erb +4 -0
- data/app/views/thredded/topics/_topic.html.erb +51 -0
- data/app/views/thredded/topics/_topics_with_last_post.html.erb +14 -0
- data/app/views/thredded/topics/topic/_body.html.erb +27 -0
- data/app/views/thredded/workgroup/navs/_personal_nav.html.erb +23 -0
- data/app/views/thredded/workgroup/navs/all_topics.html.erb +9 -0
- data/app/views/thredded/workgroup/navs/awaiting.html.erb +9 -0
- data/app/views/thredded/workgroup/navs/following.html.erb +9 -0
- data/app/views/thredded/workgroup/navs/unread.html.erb +9 -0
- data/bin/console +15 -0
- data/bin/dummy-rails +4 -0
- data/bin/rails.rb +14 -0
- data/bin/rspec +17 -0
- data/bin/setup +8 -0
- data/bin/update_from_thredded +40 -0
- data/config/locales/en.yml +20 -0
- data/config/routes.rb +11 -0
- data/lib/thredded/workgroup.rb +19 -0
- data/lib/thredded/workgroup/engine.rb +26 -0
- data/lib/thredded/workgroup/route_delegator.rb +25 -0
- data/lib/thredded/workgroup/thredded_route_delegator.rb +19 -0
- data/lib/thredded/workgroup/version.rb +6 -0
- data/script/create-db-users +42 -0
- data/script/dummy-console +3 -0
- data/shared.gemfile +27 -0
- data/thredded-workgroup.gemspec +65 -0
- metadata +520 -0
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_dependency File.expand_path("../../app/view_models/thredded/topic_view", Thredded::Engine.called_from)
|
3
|
+
module Thredded
|
4
|
+
class TopicView < Thredded::BaseTopicView
|
5
|
+
def path
|
6
|
+
anchor = if @read_state.first_unread_post_page
|
7
|
+
"unread"
|
8
|
+
elsif @topic.last_post
|
9
|
+
"post_#{@topic.last_post.id}"
|
10
|
+
end
|
11
|
+
page = @read_state.first_unread_post_page || @read_state.last_read_post_page
|
12
|
+
Thredded::UrlsHelper.topic_path(@topic, page: page, anchor: anchor)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_dependency File.expand_path("../../app/view_models/thredded/topics_page_view", Thredded::Engine.called_from)
|
3
|
+
module Thredded
|
4
|
+
module TopicsPageViewWithLastPost
|
5
|
+
protected
|
6
|
+
|
7
|
+
def refine_scope(topics_page_scope)
|
8
|
+
super.includes(:last_post)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class TopicsPageView
|
13
|
+
prepend ::Thredded::TopicsPageViewWithLastPost
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Thredded | <%= yield :thredded_page_title %></title>
|
5
|
+
<%= stylesheet_link_tag "thredded-workgroup", media: "all" %>
|
6
|
+
<%= csrf_meta_tag %>
|
7
|
+
<%= javascript_include_tag 'thredded' %>
|
8
|
+
<%== Gravatar.prefetch_dns %>
|
9
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<%= yield %>
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= hidden_field_tag 'post_referer', request.referer %>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<%= content_tag :article,
|
2
|
+
id: dom_id(topic),
|
3
|
+
class: ['thredded--topics--topic', topic_css_classes(topic)],
|
4
|
+
data: {topic: topic.id, messageboard: topic.messageboard_id} do %>
|
5
|
+
<div class="thredded--topics--posts-count"><%= topic.posts_count %></div>
|
6
|
+
|
7
|
+
<h1 class="thredded--topics--title">
|
8
|
+
<span class="thredded--topic-title"><%= link_to topic.title, topic.path %></span>
|
9
|
+
<% unless messageboard_or_nil #don't show if being viewed in the context of a messageboard%>
|
10
|
+
<cite class="thredded--messageboard-name">
|
11
|
+
<%= link_to topic.messageboard_name, topic.messageboard_path %>
|
12
|
+
</cite>
|
13
|
+
<% end %>
|
14
|
+
<svg viewBox="0 0 116 121" class="thredded--topics--follow-icon">
|
15
|
+
<% if topic.followed? %>
|
16
|
+
<use xlink:href="#thredded-follow-icon"/>
|
17
|
+
<% else %>
|
18
|
+
<use xlink:href="#thredded-unfollow-icon"/>
|
19
|
+
<% end %>
|
20
|
+
</svg>
|
21
|
+
</h1>
|
22
|
+
|
23
|
+
<% if topic.categories.any? %>
|
24
|
+
<ul class="thredded--topics--categories">
|
25
|
+
<%= render topic.categories %>
|
26
|
+
</ul>
|
27
|
+
<% end %>
|
28
|
+
|
29
|
+
|
30
|
+
<% if topic.blocked? && topic.can_moderate? %>
|
31
|
+
<span class="thredded--topics--moderation-state thredded--alert thredded--alert-danger">
|
32
|
+
<%= render 'thredded/shared/content_moderation_blocked_state', moderation_record: topic.last_moderation_record %>
|
33
|
+
</span>
|
34
|
+
<% end %>
|
35
|
+
|
36
|
+
<%= render partial: 'thredded/topics/followers', locals: {topic: topic} %>
|
37
|
+
|
38
|
+
<div class='thredded--topic-post-and-last-user thredded--condensed'>
|
39
|
+
<div class="thredded--topic-source">
|
40
|
+
<cite class="thredded--topics--updated-by">
|
41
|
+
<%= topic.last_user.thredded_display_name %>
|
42
|
+
<%= time_ago topic.last_post_at %>
|
43
|
+
</cite>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div class="thredded--last-post">
|
47
|
+
<%= render 'thredded/posts_common/content', post: topic.last_post if topic.last_post %>
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<% end %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="thredded--svg-definitions">
|
2
|
+
<%= inline_svg 'thredded/follow.svg', id:"thredded-follow-icon" %>
|
3
|
+
<%= inline_svg 'thredded/unfollow.svg', id:"thredded-unfollow-icon" %>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<%= thredded_page do %>
|
7
|
+
<%= content_tag :section, class: 'thredded--main-section thredded--topics', 'data-thredded-topics' => true do %>
|
8
|
+
<%= render @topics %>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<footer>
|
12
|
+
<%= paginate @topics %>
|
13
|
+
</footer>
|
14
|
+
<% end %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<div class="thredded--topics--posts-count"><%= topic.posts_count %></div>
|
2
|
+
|
3
|
+
<h1 class="thredded--topics--title">
|
4
|
+
<%= link_to topic.title, topic.path %>
|
5
|
+
</h1>
|
6
|
+
|
7
|
+
<% if topic.categories.any? %>
|
8
|
+
<ul class="thredded--topics--categories">
|
9
|
+
<%= render topic.categories %>
|
10
|
+
</ul>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<cite class="thredded--topics--updated-by">
|
14
|
+
<%= time_ago topic.updated_at %>
|
15
|
+
<%= user_link topic.last_user %>
|
16
|
+
</cite>
|
17
|
+
|
18
|
+
<cite class="thredded--topics--started-by">
|
19
|
+
<%= time_ago topic.created_at %>
|
20
|
+
<%= user_link topic.user %>
|
21
|
+
</cite>
|
22
|
+
|
23
|
+
<% if topic.blocked? && topic.can_moderate? %>
|
24
|
+
<span class="thredded--topics--moderation-state thredded--alert thredded--alert-danger">
|
25
|
+
<%= render 'thredded/shared/content_moderation_blocked_state', moderation_record: topic.last_moderation_record %>
|
26
|
+
</span>
|
27
|
+
<% end %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<ul class="thredded--workgroup">
|
2
|
+
<li class="<%= Thredded::Workgroup.navbar_class(params, :unread) %>">
|
3
|
+
<%= link_to t('thredded.workgroup.unread.link'), thredded_workgroup.unread_nav_path%>
|
4
|
+
</li>
|
5
|
+
<li class="<%= Thredded::Workgroup.navbar_class(params, :awaiting) %>">
|
6
|
+
<%= link_to thredded_workgroup.awaiting_nav_path do %>
|
7
|
+
<span class="expanded"><%= t('thredded.workgroup.awaiting_reply.link') %></span>
|
8
|
+
<span class="condensed"><%= t('thredded.workgroup.awaiting_reply.condensed-link') %></span>
|
9
|
+
<% end %>
|
10
|
+
</li>
|
11
|
+
<li class="<%= Thredded::Workgroup.navbar_class(params, :following) %>">
|
12
|
+
<%= link_to t('thredded.workgroup.following.link'), thredded_workgroup.following_nav_path %>
|
13
|
+
</li>
|
14
|
+
<li class="<%= Thredded::Workgroup.navbar_class(params, :all_topics) %>">
|
15
|
+
<%= link_to t('thredded.workgroup.all_topics.link'), thredded_workgroup.all_topics_nav_path %>
|
16
|
+
</li>
|
17
|
+
<li class="<%= Thredded::Workgroup.navbar_class(params, :messageboards) %>">
|
18
|
+
<%= link_to thredded.root_path do %>
|
19
|
+
<span class="expanded"><%= t('thredded.workgroup.messageboards.link') %></span>
|
20
|
+
<span class="condensed"><%= t('thredded.workgroup.messageboards.condensed-link') %></span>
|
21
|
+
<% end %>
|
22
|
+
</li>
|
23
|
+
</ul>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<% content_for :thredded_page_title, t('thredded.workgroup.all_topics.title') %>
|
2
|
+
<% content_for :thredded_page_id, 'thredded--all_topics' %>
|
3
|
+
<% content_for :thredded_breadcrumbs do %>
|
4
|
+
<ul class="thredded--navigation-breadcrumbs">
|
5
|
+
<li><a><%= t('thredded.workgroup.all_topics.title')%></a></li>
|
6
|
+
</ul>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<%= render partial: 'thredded/topics/topics_with_last_post'%>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<% content_for :thredded_page_title, "Topics awaiting reply" %>
|
2
|
+
<% content_for :thredded_page_id, 'thredded--awaiting_reply' %>
|
3
|
+
<% content_for :thredded_breadcrumbs do %>
|
4
|
+
<ul class="thredded--navigation-breadcrumbs">
|
5
|
+
<li><a><%= t('thredded.workgroup.awaiting_reply.title')%></a></li>
|
6
|
+
</ul>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<%= render partial: 'thredded/topics/topics_with_last_post'%>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<% content_for :thredded_page_title, t('thredded.workgroup.following.title') %>
|
2
|
+
<% content_for :thredded_page_id, 'thredded--following' %>
|
3
|
+
<% content_for :thredded_breadcrumbs do %>
|
4
|
+
<ul class="thredded--navigation-breadcrumbs">
|
5
|
+
<li><a><%= t('thredded.workgroup.following.title')%></a></li>
|
6
|
+
</ul>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<%= render partial: 'thredded/topics/topics_with_last_post'%>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<% content_for :thredded_page_title, t('thredded.workgroup.unread.title') %>
|
2
|
+
<% content_for :thredded_page_id, 'thredded--unread' %>
|
3
|
+
<% content_for :thredded_breadcrumbs do %>
|
4
|
+
<ul class="thredded--navigation-breadcrumbs">
|
5
|
+
<li><a><%= t('thredded.workgroup.unread.title')%></a></li>
|
6
|
+
</ul>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<%= render partial: 'thredded/topics/topics_with_last_post'%>
|
data/bin/console
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "bundler/setup"
|
5
|
+
require "thredded/workgroup"
|
6
|
+
|
7
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
+
# with your gem easier. You can also use a different console, if you like.
|
9
|
+
|
10
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
11
|
+
# require "pry"
|
12
|
+
# Pry.start
|
13
|
+
|
14
|
+
require "irb"
|
15
|
+
IRB.start
|
data/bin/dummy-rails
ADDED
data/bin/rails.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
# This command will automatically be run when you run "rails"
|
4
|
+
# with Rails 4 gems installed from the root of your application.
|
5
|
+
|
6
|
+
ENGINE_ROOT = File.expand_path("../..", __FILE__)
|
7
|
+
ENGINE_PATH = File.expand_path("../../lib/thredded/workgroup/engine", __FILE__)
|
8
|
+
|
9
|
+
# Set up gems listed in the Gemfile.
|
10
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__)
|
11
|
+
require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
|
12
|
+
|
13
|
+
require "rails/all"
|
14
|
+
require "rails/engine/commands"
|
data/bin/rspec
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'rspec' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
12
|
+
Pathname.new(__FILE__).realpath)
|
13
|
+
|
14
|
+
require "rubygems"
|
15
|
+
require "bundler/setup"
|
16
|
+
|
17
|
+
load Gem.bin_path("rspec-core", "rspec")
|
data/bin/setup
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
# quick relatively hacky script that assumes you've just done a bundle update thredded using a github (e.g branch, tag) rather
|
5
|
+
# than a normal gem version reference for thredded (so you have access to spec/ directory)
|
6
|
+
# and updates the relevant parts of this plugin that need it from the thredded gem
|
7
|
+
# not 100% sure what the less hacky version might be
|
8
|
+
#
|
9
|
+
# at very least should make this a more structured file
|
10
|
+
# and then also add a notice to the top of the copied files that they have been copied from thredded
|
11
|
+
|
12
|
+
# store thredded-workgroup config, emoji
|
13
|
+
rm -fR tmp/upgradecache
|
14
|
+
mkdir -p tmp/upgradecache
|
15
|
+
cp ./spec/dummy/config/initializers/thredded_workgroup.rb ./tmp/upgradecache
|
16
|
+
mv ./spec/dummy/public/emoji ./tmp/upgradecache/
|
17
|
+
|
18
|
+
# update spec/dummy from thredded
|
19
|
+
rm -fR ./spec/dummy/
|
20
|
+
cp -pR $(bundle show thredded)/spec/dummy ./spec/dummy
|
21
|
+
|
22
|
+
# update some standard helpful files
|
23
|
+
cp $(bundle show thredded)/spec/support/features/fake_content.rb spec/support/features/fake_content.rb
|
24
|
+
|
25
|
+
# restore thredded-workgroup config, emoji
|
26
|
+
mv ./tmp/upgradecache/thredded_workgroup.rb ./spec/dummy/config/initializers/
|
27
|
+
mkdir -p ./spec/dummy/public/emoji
|
28
|
+
cp -R ./tmp/upgradecache/emoji/* ./spec/dummy/public/emoji
|
29
|
+
|
30
|
+
# update factories from thredded
|
31
|
+
cp $(bundle show thredded)/spec/factories.rb ./spec/factories/thredded.rb
|
32
|
+
rubocop -o /dev/null -a ./spec
|
33
|
+
|
34
|
+
git add ./spec/factories/thredded.rb
|
35
|
+
git add ./spec/dummy
|
36
|
+
echo have a look at some of these...
|
37
|
+
git reset spec/dummy/config/application.rb spec/dummy/config/routes.rb spec/dummy/app/assets/stylesheets/_dummy_app.scss spec/dummy/app/assets/javascripts/application.js
|
38
|
+
|
39
|
+
echo remember to drop and recreate db
|
40
|
+
echo rake db:drop db:create db:migrate db:seed
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
en:
|
3
|
+
thredded:
|
4
|
+
workgroup:
|
5
|
+
unread:
|
6
|
+
title: Unread topics you are following
|
7
|
+
link: Unread
|
8
|
+
awaiting_reply:
|
9
|
+
title: Topics you are following where you made the last post
|
10
|
+
link: Awaiting reply
|
11
|
+
condensed-link: Await
|
12
|
+
following:
|
13
|
+
title: Topics you are following
|
14
|
+
link: Follow
|
15
|
+
messageboards:
|
16
|
+
link: Messageboards
|
17
|
+
condensed-link: M'boards
|
18
|
+
all_topics:
|
19
|
+
title: All topics
|
20
|
+
link: All
|
data/config/routes.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
Thredded::Workgroup::Engine.routes.draw do
|
3
|
+
controller "navs" do
|
4
|
+
get "unread", action: :unread, as: :unread_nav
|
5
|
+
get "following", action: :following, as: :following_nav
|
6
|
+
get "all_topics", action: :all_topics, as: :all_topics_nav
|
7
|
+
get "awaiting", action: :awaiting, as: :awaiting_nav
|
8
|
+
end
|
9
|
+
|
10
|
+
mount Thredded::Engine => "/"
|
11
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "thredded/workgroup/engine"
|
3
|
+
require "thredded/workgroup/version"
|
4
|
+
|
5
|
+
module Thredded
|
6
|
+
module Workgroup
|
7
|
+
def self.navbar_class(params, target)
|
8
|
+
"active" if current_for(params) == target
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.current_for(params)
|
12
|
+
if params[:controller].include?("workgroup") # TODO: make this better
|
13
|
+
params[:action].to_sym
|
14
|
+
else
|
15
|
+
:messageboards
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "thredded/engine"
|
3
|
+
require "thredded/workgroup/thredded_route_delegator"
|
4
|
+
require "thredded/workgroup/route_delegator"
|
5
|
+
module Thredded
|
6
|
+
module Workgroup
|
7
|
+
class Engine < ::Rails::Engine
|
8
|
+
isolate_namespace Thredded::Workgroup
|
9
|
+
|
10
|
+
%w(app/controllers app/jobs app/view_models lib).each do |path|
|
11
|
+
config.autoload_paths << File.expand_path("../../#{path}", File.dirname(__FILE__))
|
12
|
+
end
|
13
|
+
|
14
|
+
config.to_prepare do
|
15
|
+
Rails.application.reload_routes!
|
16
|
+
::Thredded::Workgroup::ThreddedRouteDelegator.add_thredded_proxies
|
17
|
+
::Thredded::Workgroup::RouteDelegator.add_my_proxies_to_thredded
|
18
|
+
end
|
19
|
+
initializer "thredded.setup_assets" do
|
20
|
+
Thredded::Workgroup::Engine.config.assets.precompile += %w(
|
21
|
+
thredded-workgroup.css
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This includes this module into Thredded Application Controller so we can use
|
4
|
+
# url helpers from Thredded PN like unread_nav_path in controllers.
|
5
|
+
module Thredded
|
6
|
+
module Workgroup
|
7
|
+
module RouteDelegator
|
8
|
+
def self.add_my_proxies_to_thredded
|
9
|
+
thredded_methods = Thredded::Engine.routes.url_helpers.methods
|
10
|
+
my_route_helpers = Thredded::Workgroup::Engine.routes.url_helpers
|
11
|
+
path_methods = my_route_helpers.methods.select { |s| s.to_s.ends_with?("_path", "_url") }
|
12
|
+
.reject { |s| thredded_methods.include?(s) }
|
13
|
+
path_methods.each do |method_name|
|
14
|
+
send(:define_method, method_name) do |*args|
|
15
|
+
my_route_helpers.send(method_name, *args)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
::Thredded::ApplicationController.send(:include,
|
19
|
+
::Thredded::Workgroup::RouteDelegator)
|
20
|
+
# if we need to use in views, then we add
|
21
|
+
# ::Thredded::ApplicationController.helper(::Thredded::Workgroup::RouteDelegator)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|