Module: Thredded::UrlsHelper

Extended by:
UrlsHelper
Included in:
ApplicationController, ApplicationHelper, UrlsHelper
Defined in:
app/helpers/thredded/urls_helper.rb

Overview

rubocop:disable Metrics/ModuleLength

Instance Method Summary collapse

Instance Method Details

#delete_post_path(post) ⇒ String



72
73
74
75
76
77
78
# File 'app/helpers/thredded/urls_helper.rb', line 72

def delete_post_path(post)
  if post.private_topic_post?
    private_topic_private_post_path(post.postable, post)
  else
    messageboard_topic_post_path(post.messageboard, post.postable, post)
  end
end

#edit_post_path(post) ⇒ String



62
63
64
65
66
67
68
# File 'app/helpers/thredded/urls_helper.rb', line 62

def edit_post_path(post)
  if post.private_topic_post?
    edit_private_topic_private_post_path(post.postable, post)
  else
    edit_messageboard_topic_post_path(post.messageboard, post.postable, post)
  end
end

#edit_preferences_path(messageboard = nil, params = {}) ⇒ String



94
95
96
# File 'app/helpers/thredded/urls_helper.rb', line 94

def edit_preferences_path(messageboard = nil, params = {})
  edit_preferences_url(messageboard, params.merge(only_path: true))
end

#edit_preferences_url(messageboard = nil, params = {}) ⇒ String



83
84
85
86
87
88
89
# File 'app/helpers/thredded/urls_helper.rb', line 83

def edit_preferences_url(messageboard = nil, params = {})
  if messageboard.try(:persisted?)
    edit_messageboard_preferences_url(messageboard, params)
  else
    edit_global_preferences_url(params)
  end
end

#mark_unread_path(post, _params = {}) ⇒ Object



127
128
129
130
131
132
133
# File 'app/helpers/thredded/urls_helper.rb', line 127

def mark_unread_path(post, _params = {})
  if post.private_topic_post?
    mark_as_unread_private_post_path(post)
  else
    mark_as_unread_post_path(post)
  end
end


137
138
139
140
141
142
143
# File 'app/helpers/thredded/urls_helper.rb', line 137

def permalink_path(post)
  if post.private_topic_post?
    private_post_permalink_path(post)
  else
    post_permalink_path(post)
  end
end

#post_path(post, user:, **params) ⇒ String



56
57
58
# File 'app/helpers/thredded/urls_helper.rb', line 56

def post_path(post, user:, **params)
  post_url(post, **params.merge(user: user, only_path: true))
end

#post_url(post, user:, **params) ⇒ String



46
47
48
49
50
51
# File 'app/helpers/thredded/urls_helper.rb', line 46

def post_url(post, user:, **params)
  params = params.dup
  params[:anchor] ||= ActionView::RecordIdentifier.dom_id(post)
  params[:page] ||= post.private_topic_post? ? post.page : post.page(user: user)
  topic_url(post.postable, params)
end

#quote_post_path(post) ⇒ Object



119
120
121
122
123
124
125
# File 'app/helpers/thredded/urls_helper.rb', line 119

def quote_post_path(post)
  if post.private_topic_post?
    quote_private_topic_private_post_path(post.postable, post)
  else
    quote_messageboard_topic_post_path(post.messageboard, post.postable, post)
  end
end

#search_path(messageboard = nil) ⇒ String



111
112
113
114
115
116
117
# File 'app/helpers/thredded/urls_helper.rb', line 111

def search_path(messageboard = nil)
  if messageboard.try(:persisted?)
    messageboard_search_path(messageboard)
  else
    messageboards_search_path
  end
end

#send_private_message_path(current_user:, to:, use_existing: true) ⇒ String



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'app/helpers/thredded/urls_helper.rb', line 149

def send_private_message_path(current_user:, to:, use_existing: true)
  existing_topic = use_existing &&
                   Thredded::PrivateTopic.has_exact_participants([current_user, to])
                     .order_recently_posted_first.first
  if existing_topic
    page = 1 + (existing_topic.posts_count - 1) / Thredded::PrivatePost.default_per_page
    Thredded::UrlsHelper.private_topic_path(
      existing_topic,
      page: (page if page > 1),
      autofocus_new_post_content: true,
      anchor: 'post_content'
    )
  else
    Thredded::UrlsHelper.new_private_topic_path(
      private_topic: {
        user_names: to.send(Thredded.user_name_column),
        title: [current_user, to].map(&Thredded.user_display_name_method).join(' • ')
      },
      autofocus_new_post_content: true,
    )
  end
end

#topic_path(topic, params = {}) ⇒ String



39
40
41
# File 'app/helpers/thredded/urls_helper.rb', line 39

def topic_path(topic, params = {})
  topic_url(topic, params.merge(only_path: true))
end

#topic_url(topic, params = {}) ⇒ String



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/helpers/thredded/urls_helper.rb', line 18

def topic_url(topic, params = {})
  if params[:page] == 1
    params = params.dup
    params.delete(:page)
  end
  if topic.private?
    private_topic_url(
      topic.slug,
      params
    )
  else
    messageboard_topic_url(
      topic.messageboard.slug,
      topic.slug,
      params
    )
  end
end

#unread_topics_path(messageboard: nil, **params) ⇒ Object



100
101
102
103
104
105
106
107
# File 'app/helpers/thredded/urls_helper.rb', line 100

def unread_topics_path(messageboard: nil, **params)
  params[:only_path] = true
  if messageboard
    unread_messageboard_topics_url(messageboard, params)
  else
    unread_topics_url(params)
  end
end

#user_path(user) ⇒ String



12
13
14
# File 'app/helpers/thredded/urls_helper.rb', line 12

def user_path(user)
  Thredded.user_path(self, user)
end