thredded 0.13.2 → 0.13.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7416385c145b5e7eeba5d467af646575c446bb36
4
- data.tar.gz: d38d5a6a62ac0a7c6c55bd447d3017212bd56497
3
+ metadata.gz: 446cac9b09b4d4bf92db6feaa8fdf3ed2b3708fc
4
+ data.tar.gz: f2c7b6e776222e744532f53dc5ae04ed475353a7
5
5
  SHA512:
6
- metadata.gz: f01171d77c219e0b99d9fbbfcbe3952d4608538dba57e0ae24fed859592be1393f80d22bda591dc4ab08c9b59e588589599029d11318a407dc3fe65130e8f9bd
7
- data.tar.gz: 1553e44d9c615400ff486999cca6dfade9532531f66b268995bb1537d0c5d4faf54a1ba432852a8ee1b2ec52ff11fff933d202317987b18f5c4e58d15a6b5fe1
6
+ metadata.gz: 9872e5d357a029ea8ca930b1c600ebd6687d26d7b2d6c8c710734cba6c5ec3e84795811b9ed905f3754d2baad27fa66bad7ab182674024695a3cf7be06495861
7
+ data.tar.gz: b90d6d78537a2f1060aaf78f121fd15862bbab0d6c71e23403f22fee080fe1d9fdf54fd13073b121e1a465d200e1ff941bbb46ef3bb0ec8a5ffd128b9d278b3f
data/README.md CHANGED
@@ -98,7 +98,7 @@ Then, see the rest of this Readme for more information about using and customizi
98
98
  Add the gem to your Gemfile:
99
99
 
100
100
  ```ruby
101
- gem 'thredded', '~> 0.13.2'
101
+ gem 'thredded', '~> 0.13.3'
102
102
  ```
103
103
 
104
104
  Add the Thredded [initializer] to your parent app by running the install generator.
@@ -229,7 +229,9 @@ Include thredded JavaScripts in your `application.js`:
229
229
 
230
230
  Thredded is fully compatible with deferred and async script loading.
231
231
 
232
- ##### Rails UJS version
232
+ ##### Alternative JavaScript dependencies
233
+
234
+ <details><summary><b>Rails UJS version</b></summary>
233
235
 
234
236
  By default, thredded loads `rails-ujs`. If you're using Rails before v5.1, you need to add `rails-ujs` to
235
237
  your Gemfile.
@@ -240,8 +242,9 @@ If you'd like it to use `jquery_ujs` instead, run this command from your app dir
240
242
  mkdir -p app/assets/javascripts/thredded/dependencies/
241
243
  printf '//= require jquery3\n//= require jquery_ujs\n' > app/assets/javascripts/thredded/dependencies/ujs.js
242
244
  ```
245
+ </details>
243
246
 
244
- ##### Timeago version
247
+ <details><summary><b>Timeago version</b></summary>
245
248
 
246
249
  By default, thredded loads `timeago.js`.
247
250
 
@@ -261,6 +264,7 @@ E.g. for Brazilian Portuguese with jquery.timeago:
261
264
  //= require locales/jquery.timeago.pt-br
262
265
  //= require thredded/thredded
263
266
  ```
267
+ </details>
264
268
 
265
269
  #### Thredded page title and ID
266
270
 
@@ -377,7 +381,7 @@ change_column_default :thredded_user_preferences, :auto_follow_topics, 1
377
381
  ## I18n
378
382
 
379
383
  Thredded is mostly internationalized. It is currently available in English, Brazilian Portuguese, Polish, Russian,
380
- and Spanish.
384
+ French, and Spanish.
381
385
  We welcome PRs adding support for new languages.
382
386
 
383
387
  Here are the steps to ensure the best support for your language if it isn't English:
@@ -387,9 +391,13 @@ Here are the steps to ensure the best support for your language if it isn't Engl
387
391
  2. Require the translations for timeago.js in your JavaScript. E.g. for Brazilian Portuguese:
388
392
 
389
393
  ```js
394
+ //= require thredded/dependencies/timeago
390
395
  //= require timeago/locales/pt_BR
396
+ //= require thredded
391
397
  ```
392
398
 
399
+ Note that it is important that timeago and its locales are required *before* `//= require thredded`.
400
+
393
401
  3. To generate URL slugs for messageboards, categories, and topics with support for more language than English,
394
402
  you can use a gem like [babosa](https://github.com/norman/babosa).
395
403
  Add babosa to your Gemfile and uncomment the `Thredded.slugifier` proc for babosa in the initializer.
@@ -603,9 +611,20 @@ run tasks that maintain the test database.
603
611
  By default, SQLite is used in development and test. On Travis, the tests will run using SQLite, PostgreSQL, MySQL,
604
612
  and all the supported Rails versions.
605
613
 
606
- The test suite requires [PhantomJS](http://phantomjs.org) to be present in the path.
607
- To install it, run `sudo apt-get install phantomjs` on Ubuntu or Debian, or `brew install phantomjs` on Mac.
608
- For other operating systems, refer to the [PhantomJS documentation](http://phantomjs.org/download.html).
614
+ The test suite requires Chromium v59+ and its WebDriver installed:
615
+
616
+ On Ubuntu, run:
617
+
618
+ ```bash
619
+ sudo apt-get install chromium-chromedriver
620
+ ```
621
+
622
+ On Mac, run:
623
+
624
+ ```bash
625
+ brew cask install chromium
626
+ brew install chromedriver
627
+ ```
609
628
 
610
629
  ### Ruby
611
630
 
@@ -49,13 +49,19 @@
49
49
  vertical-align: baseline;
50
50
  width: 1.75rem; // 28px
51
51
 
52
- @include thredded-media-content-breakout {
52
+ @media (min-width: $thredded-grid-container-max-width + $thredded-content-breakout-min-width + 0.00001rem) {
53
53
  height: 2.25rem; // 36px
54
54
  left: -3rem;
55
55
  position: absolute;
56
56
  top: -0.5rem;
57
57
  width: 2.25rem; // 36px
58
58
  }
59
+
60
+ @media (min-width: $thredded-grid-container-max-width + $thredded-content-breakout-min-width + 9.5rem + 0.00001rem) {
61
+ height: 3.25rem;
62
+ left: -4.125rem;
63
+ width: 3.25rem;
64
+ }
59
65
  }
60
66
 
61
67
  .thredded--post--topic {
@@ -4,12 +4,8 @@ module Thredded
4
4
  # Previews for the PrivateTopicMailer
5
5
  class PrivateTopicMailerPreview < BaseMailerPreview
6
6
  def message_notification
7
- post = mock_private_post(content: mock_content(mention_users: ['glebm']))
8
7
  PrivateTopicMailer.message_notification(
9
- mock_private_topic(posts: [
10
- post
11
- ]),
12
- post,
8
+ mock_private_post(content: mock_content(mention_users: ['glebm'])),
13
9
  %w[glebm@test.com joel@test.com]
14
10
  )
15
11
  end
@@ -3,14 +3,19 @@
3
3
  module Thredded
4
4
  class PostMailer < Thredded::BaseMailer
5
5
  def post_notification(post_id, emails)
6
- @post = find_record Thredded::Post, post_id
7
- email_details = Thredded::TopicEmailView.new(@post.postable)
6
+ @post = find_record Thredded::Post, post_id
7
+ email_details = Thredded::TopicEmailView.new(@post.postable)
8
8
  headers['X-SMTPAPI'] = email_details.smtp_api_tag('post_notification')
9
9
 
10
- mail from: email_details.no_reply,
11
- to: email_details.no_reply,
12
- bcc: emails,
13
- subject: email_details.subject
10
+ mail from: email_details.no_reply,
11
+ to: email_details.no_reply,
12
+ bcc: emails,
13
+ subject: [
14
+ Thredded.email_outgoing_prefix,
15
+ t('thredded.emails.post_notification.subject',
16
+ user: @post.user.thredded_display_name,
17
+ topic_title: @post.postable.title)
18
+ ].compact.join
14
19
  end
15
20
  end
16
21
  end
@@ -2,16 +2,20 @@
2
2
 
3
3
  module Thredded
4
4
  class PrivateTopicMailer < Thredded::BaseMailer
5
- def message_notification(private_topic_id, post_id, emails)
6
- @topic = find_record Thredded::PrivateTopic, private_topic_id
7
- @post = find_record Thredded::PrivatePost, post_id
8
- email_details = Thredded::TopicEmailView.new(@topic)
5
+ def message_notification(post_id, emails)
6
+ @post = find_record Thredded::PrivatePost, post_id
7
+ email_details = Thredded::TopicEmailView.new(@post.postable)
9
8
  headers['X-SMTPAPI'] = email_details.smtp_api_tag('private_topic_mailer')
10
9
 
11
- mail from: email_details.no_reply,
12
- to: email_details.no_reply,
13
- bcc: emails,
14
- subject: email_details.subject
10
+ mail from: email_details.no_reply,
11
+ to: email_details.no_reply,
12
+ bcc: emails,
13
+ subject: [
14
+ Thredded.email_outgoing_prefix,
15
+ t('thredded.emails.message_notification.subject',
16
+ user: @post.user.thredded_display_name,
17
+ topic_title: @post.postable.title)
18
+ ].compact.join
15
19
  end
16
20
  end
17
21
  end
@@ -21,8 +21,10 @@ module Thredded
21
21
  #
22
22
  # @return [Thredded::UserTopicFollow]
23
23
  def self.create_unless_exists(user_id, topic_id, reason = :manual)
24
- transaction(requires_new: true) do
25
- create_with(reason: reason).find_or_create_by(user_id: user_id, topic_id: topic_id)
24
+ uncached do
25
+ transaction(requires_new: true) do
26
+ create_with(reason: reason).find_or_create_by(user_id: user_id, topic_id: topic_id)
27
+ end
26
28
  end
27
29
  rescue ActiveRecord::RecordNotUnique
28
30
  # The record has been created from another connection, retry to find it.
@@ -15,7 +15,7 @@ module Thredded
15
15
  end
16
16
 
17
17
  def new_private_post(post, users)
18
- PrivateTopicMailer.message_notification(post.postable.id, post.id, users.map(&:email)).deliver_now
18
+ PrivateTopicMailer.message_notification(post.id, users.map(&:email)).deliver_now
19
19
  end
20
20
  end
21
21
  end
@@ -11,10 +11,6 @@ module Thredded
11
11
  %({"category": ["thredded_#{@topic.private? ? 'private_topic' : @topic.messageboard.name}","#{tag}"]})
12
12
  end
13
13
 
14
- def subject
15
- "#{Thredded.email_outgoing_prefix} #{@topic.title}"
16
- end
17
-
18
14
  def no_reply
19
15
  Thredded.email_from
20
16
  end
@@ -1,7 +1,10 @@
1
1
  <div class="thredded--email">
2
2
  <figure class="thredded--email-post">
3
3
  <figcaption class="thredded--email-post--author">
4
- <%= @post.user.thredded_display_name %> <%= link_to 'said', post_permalink_url(@post) %>:
4
+ <%= t 'thredded.emails.post_notification.html.post_lead_html',
5
+ user: @post.user.thredded_display_name,
6
+ post_url: post_permalink_url(@post.id),
7
+ topic_title: @post.postable.title %>
5
8
  </figcaption>
6
9
  <% cache [@post, 'content-onebox-placeholders'] do %>
7
10
  <%= render partial: 'thredded/posts/content',
@@ -11,13 +14,13 @@
11
14
  <hr/>
12
15
 
13
16
  <p>
14
- This email was sent to you because you are following this topic
15
- "<%= link_to @post.postable.title, post_permalink_url(@post.id) %>".
16
- <%= link_to 'View the conversation here', topic_url(@post.postable) %>.
17
+ <%= t 'thredded.emails.post_notification.html.email_sent_reason_html',
18
+ post_url: post_permalink_url(@post.id),
19
+ topic_title: @post.postable.title %>
17
20
  </p>
18
21
 
19
22
  <p>
20
- To unsubscribe from these emails, update your
21
- <%= link_to 'preferences', edit_messageboard_preferences_url(@post.messageboard) %>.
23
+ <%= t 'thredded.emails.post_notification.html.unsubscribe_instructions_html',
24
+ preferences_url: edit_messageboard_preferences_url(@post.messageboard) %>
22
25
  </p>
23
26
  </div>
@@ -1,10 +1,14 @@
1
+ <%= t 'thredded.emails.post_notification.text.post_lead',
2
+ user: @post.user.thredded_display_name,
3
+ topic_title: @post.postable.title %>
4
+
1
5
  <%= @post.content %>
2
6
 
3
7
  ---
4
8
 
5
- This email was sent to you because you are following this topic
6
- "<%= @post.postable.title %>". Go here to view the conversation:
7
- <%= post_permalink_url @post %>
9
+ <%= t 'thredded.emails.post_notification.text.email_sent_reason',
10
+ topic_title: @post.postable.title,
11
+ post_url: post_permalink_url(@post.id) %>
8
12
 
9
- To unsubscribe from these emails, update your preferences here:
10
- <%= edit_messageboard_preferences_url @post.messageboard %>
13
+ <%= t 'thredded.emails.post_notification.text.unsubscribe_instructions',
14
+ unsubscribe_url: edit_messageboard_preferences_url(@post.messageboard) %>
@@ -1,7 +1,10 @@
1
1
  <div class="thredded--email">
2
2
  <figure class="thredded--email-post">
3
3
  <figcaption class="thredded--email-post--author">
4
- <%= @post.user.thredded_display_name %> <%= link_to 'said', private_post_permalink_url(@post) %>:
4
+ <%= t 'thredded.emails.message_notification.html.post_lead_html',
5
+ user: @post.user.thredded_display_name,
6
+ post_url: private_post_permalink_url(@post.id),
7
+ topic_title: @post.postable.title %>
5
8
  </figcaption>
6
9
  <% cache [@post, 'content-onebox-placeholders'] do %>
7
10
  <%= render partial: 'thredded/private_posts/content',
@@ -10,11 +13,14 @@
10
13
  </figure>
11
14
  <hr/>
12
15
  <p>
13
- This email was sent to you because <%= @topic.user.thredded_display_name %> included you in a
14
- private topic, "<%= link_to @topic.title, private_topic_url(@topic) %>".
16
+ <%= t 'thredded.emails.message_notification.html.email_sent_reason_html',
17
+ user: @post.postable.user.thredded_display_name,
18
+ post_url: private_post_permalink_url(@post.id),
19
+ topic_title: @post.postable.title %>
15
20
  </p>
16
21
 
17
22
  <p>
18
- To unsubscribe from these emails, update your <%= link_to 'preferences', edit_preferences_url %>.
23
+ <%= t 'thredded.emails.message_notification.html.unsubscribe_instructions_html',
24
+ preferences_url: edit_preferences_url %>
19
25
  </p>
20
26
  </div>
@@ -1,12 +1,15 @@
1
- <%= @post.user.thredded_display_name %> said:
1
+ <%= t 'thredded.emails.message_notification.text.post_lead',
2
+ user: @post.user.thredded_display_name,
3
+ topic_title: @post.postable.title %>
4
+
2
5
  <%= @post.content %>
3
- ---
4
6
 
5
- This email was sent to you because <%= @topic.user.thredded_display_name %>
6
- included you in the private topic "<%= @topic.title %>".
7
+ ---
7
8
 
8
- Go here to view the conversation:
9
- <%= private_post_permalink_url(@post) %>
9
+ <%= t 'thredded.emails.message_notification.text.email_sent_reason',
10
+ user: @post.postable.user.thredded_display_name,
11
+ topic_title: @post.postable.title,
12
+ post_url: private_post_permalink_url(@post.id) %>
10
13
 
11
- To unsubscribe from these emails, update your preferences here:
12
- <%= edit_preferences_url %>
14
+ <%= t 'thredded.emails.message_notification.text.unsubscribe_instructions',
15
+ unsubscribe_url: edit_preferences_url %>
@@ -6,6 +6,40 @@ en:
6
6
  content_blocked_notice_with_record_html: Blocked by %{moderator} %{time_ago}
7
7
  email_notifier:
8
8
  by_email: by email
9
+ emails:
10
+ message_notification:
11
+ html:
12
+ email_sent_reason_html: >-
13
+ This email was sent to you because %{user} included you in a private topic, “<a href="%{post_url}">%{topic_title}</a>”.
14
+ post_lead_html: 'A new message from %{user} in <a href="%{post_url}">“%{topic_title}”</a>:'
15
+ unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
16
+ subject: A new message from %{user} in “%{topic_title}”
17
+ text:
18
+ email_sent_reason: |-
19
+ This email was sent to you because %{user} included you in
20
+ the private topic “%{topic_title}”.
21
+
22
+ Go here to view the conversation:
23
+ %{post_url}
24
+ post_lead: 'A new message from %{user} in “%{topic_title}”:'
25
+ unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
26
+ post_notification:
27
+ html:
28
+ email_sent_reason_html: 'This email was sent to you because you are following this topic: “<a href="%{post_url}">%{topic_title}</a>”.'
29
+ post_lead_html: '%{user} <a href="%{post_url}">said in “%{topic_title}”</a>:'
30
+ unsubscribe_instructions_html: To unsubscribe from these emails, update your <a href="%{preferences_url}">preferences</a>.
31
+ subject: A new post in “%{topic_title}” by %{user}
32
+ text:
33
+ email_sent_reason: |-
34
+ This email was sent to you because you are following
35
+ the topic “%{topic_title}”.
36
+
37
+ Go here to view the conversation:
38
+ %{post_url}
39
+ post_lead: "%{user} said in “%{topic_title}”:"
40
+ unsubscribe_instructions: |-
41
+ To unsubscribe from these emails, update your preferences here:
42
+ %{unsubscribe_url}
9
43
  errors:
10
44
  login_required: Please sign in first.
11
45
  not_authorized: You are not authorized to access this page.
@@ -6,6 +6,42 @@ es:
6
6
  content_blocked_notice_with_record_html: Censurado por %{moderator} hace %{time_ago}
7
7
  email_notifier:
8
8
  by_email: vía email
9
+ emails:
10
+ message_notification:
11
+ html:
12
+ email_sent_reason_html: >-
13
+ Este correo electrónico se te envió porque %{user} te incluyó en un tema privado, "<a href="%{post_url}">%{topic_title}</a>".
14
+ post_lead_html: 'Un nuevo mensaje de %{user} en <a href="%{post_url}">"%{topic_title}"</a>:'
15
+ unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
16
+ subject: Un nuevo mensaje de %{user} en "%{topic_title}"
17
+ text:
18
+ email_sent_reason: |-
19
+ Este correo electrónico se te envió porque %{user} te incluyó en
20
+ el tema privado "%{topic_title}".
21
+
22
+ Ve aquí para ver la conversación:
23
+ %{post_url}
24
+ post_lead: 'Un nuevo mensaje de %{user} en "%{topic_title}":'
25
+ unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
26
+ post_notification:
27
+ html:
28
+ email_sent_reason_html: >-
29
+ Este correo electrónico se le envió porque está siguiendo este tema: "<a href="%{post_url}">%{topic_title}</a>".
30
+ post_lead_html: '%{user} <a href="%{post_url}">dijo en "%{topic_title}"</a>:'
31
+ unsubscribe_instructions_html: >-
32
+ Para cancelar la suscripción a estos correos electrónicos, actualice sus <a href="%{preferences_url}">preferencias</a>.
33
+ subject: Un nuevo mensaje en "%{topic_title}" de %{user}
34
+ text:
35
+ email_sent_reason: |-
36
+ Este correo electrónico se te envió porque estás siguiendo
37
+ el tema "%{topic_title}".
38
+
39
+ Ve aquí para ver la conversación:
40
+ %{post_url}
41
+ post_lead: '%{user} dijo en "%{topic_title}":'
42
+ unsubscribe_instructions: |-
43
+ Para anular la suscripción de estos correos electrónicos, actualice sus preferencias aquí:
44
+ %{unsubscribe_url}
9
45
  errors:
10
46
  login_required: Por favor, inicia sesión.
11
47
  not_authorized: No estás autorizado para ver esta página.
@@ -0,0 +1,238 @@
1
+ ---
2
+ fr:
3
+ thredded:
4
+ content_moderation_states:
5
+ content_blocked_notice: Bloqué
6
+ content_blocked_notice_with_record_html: Bloqué par %{moderator} %{time_ago}
7
+ email_notifier:
8
+ by_email: via email
9
+ emails:
10
+ message_notification:
11
+ html:
12
+ email_sent_reason_html: >-
13
+ Ce courriel vous a été envoyé parce que %{user} vous a inclus dans un sujet privé, "<a href="%{post_url}">%{topic_title}</a>".
14
+ post_lead_html: 'Un nouveau message de %{user} dans <a href="%{post_url}">"%{topic_title}"</a>:'
15
+ unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
16
+ subject: Un nouveau message de %{user} dans "%{topic_title}"
17
+ text:
18
+ email_sent_reason: |-
19
+ Ce courriel vous a été envoyé parce que %{user} vous a inclus
20
+ le sujet privé "%{topic_title}".
21
+
22
+ Allez ici pour voir la conversation:
23
+ %{post_url}
24
+ post_lead: 'Un nouveau message de %{user} dans "%{topic_title}":'
25
+ unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
26
+ post_notification:
27
+ html:
28
+ email_sent_reason_html: 'Ce courriel vous a été envoyé car vous suivez ce sujet: "<a href="%{post_url}">%{topic_title}</a>".'
29
+ post_lead_html: '%{user} a <a href="%{post_url}">déclaré dans "%{topic_title}"</a>:'
30
+ unsubscribe_instructions_html: Pour vous désabonner de ces courriels, mettez à jour vos <a href="%{preferences_url}">préférences</a>.
31
+ subject: Une nouvelle publication dans "%{topic_title}" par %{user}
32
+ text:
33
+ email_sent_reason: |-
34
+ Ce courriel vous a été envoyé parce que vous suivez
35
+ le sujet "%{topic_title}".
36
+
37
+ Allez ici pour voir la conversation:
38
+ %{post_url}
39
+ post_lead: '%{user} a déclaré dans "%{topic_title}":'
40
+ unsubscribe_instructions: |-
41
+ Pour vous désabonner de ces courriels, mettez à jour vos préférences ici:
42
+ %{unsubscribe_url}
43
+ errors:
44
+ login_required: Connectez vous s'il vous plait
45
+ not_authorized: Vous n'êtes pas authorisé à accéder à cette page.
46
+ private_topic_create_denied: Vous n'êtes pas authorisé à créer des sujets.
47
+ private_topic_not_found: Ce sujet privé n'existe pas.
48
+ form:
49
+ create_btn_submitting: Création en cours...
50
+ preview: Aperçu
51
+ update: Mise à jour
52
+ update_btn_submitting: Mise à jour en cours...
53
+ messageboard:
54
+ create: Créer une Nouvelle Catégorie
55
+ form:
56
+ create_btn_submitting: :thredded.form.create_btn_submitting
57
+ description_label: Description
58
+ messageboard_group_id_label: Groupe de la catégorie
59
+ no_group: Pas de groupe
60
+ title_label: Nom
61
+ update_btn_submitting: :thredded.form.update_btn_submitting
62
+ index:
63
+ page_title: Catégories
64
+ last_updated_by_html: Mise à jour %{time_ago} <cite>par %{user}</cite>
65
+ topics_and_posts_counts: "%{topics_count} sujets / %{posts_count} commentaires"
66
+ update: :thredded.form.update
67
+ updated_notice: La catégorie a été mise à jour
68
+ messageboard_group:
69
+ create: Créer un nouveau groupe de catégorie
70
+ form:
71
+ create_btn_submitting: :thredded.form.create_btn_submitting
72
+ saved: Le Groupe %{name} a été créé
73
+ moderation:
74
+ approve_btn: Approuver
75
+ block_btn: Bloqué
76
+ pending:
77
+ empty:
78
+ content: Tous les commentaires ont été modérés.
79
+ title: Bien joué!
80
+ post_approved_html: Commentaire approuvé par %{moderator} %{time_ago}.
81
+ post_blocked_html: Commentaire bloqué par %{moderator} %{time_ago}.
82
+ post_deleted_notice: Ce commentaire a été effacé.
83
+ posts_content_changed_since_moderation_html: >-
84
+ Le <a href="%{post_url}">commentaire</a> a changé depuis qu'il a été modéré. La date de modération est affiché
85
+ en dessous.
86
+ search_users:
87
+ form_label: Rechercher des utilisateurs
88
+ form_placeholder: :thredded.moderation.search_users.form_label
89
+ no_results_message: Aucun utilisateur avec un nom commençant par %{query}
90
+ results_message: Utilisateurs avec le nom commençant par %{query}
91
+ nav:
92
+ all_messageboards: Toutes les catégories
93
+ edit_messageboard: Éditer la catégorie
94
+ edit_post: Éditer le commentaire
95
+ edit_private_topic: :thredded.nav.edit_topic
96
+ edit_topic: Éditer
97
+ mark_all_read: Marquer comme lu
98
+ moderation: Modération
99
+ moderation_activity: Activité
100
+ moderation_history: Historique
101
+ moderation_pending: En attente
102
+ moderation_users: Utilisateurs
103
+ private_topics: Messages Privés
104
+ settings: Paramètres de Notifications
105
+ null_user_name: Utilisateur effacé
106
+ posts:
107
+ delete: Supprimer le commentaire
108
+ delete_confirm: Êtes-vous sure de vouloir effacé ce commentaire ?
109
+ deleted_notice: Votre commentaire a été effacé.
110
+ edit: :thredded.nav.edit_post
111
+ form:
112
+ content_label: Contenu
113
+ create_btn: Soumettre la réponse
114
+ create_btn_submitting: Soumission en cours...
115
+ title_label: Écrire un commentaire
116
+ update_btn: Mettre à jour le commentaire
117
+ update_btn_submitting: :thredded.form.update_btn_submitting
118
+ pending_moderation_notice: Votre commentaire sera publié dès lors qu'il aura été validé par un modérateur.
119
+ quote_btn: Citer
120
+ preferences:
121
+ edit:
122
+ page_title: :thredded.nav.settings
123
+ form:
124
+ auto_follow_topics:
125
+ hint: Suivre automatiquement les nouveaux sujets. Changer ce paramètre affectera aussi toutes les catégories.
126
+ label: Suivre tout les nouveaux sujets
127
+ follow_topics_on_mention:
128
+ hint: 'Suivre un sujet lorsqu''on est mentionné par son nom (exemple: @marc)'
129
+ label: Suivre un sujet dans lequel vous êtes mentionné
130
+ messageboard_auto_follow_topics:
131
+ hint: >-
132
+ Suivre automatiquement tout les nouveaux sujets dans cette catégorie. Ce paramètre outrepasse le paramètre
133
+ relatif au dessus.
134
+ label: Suivre tout les nouveaux sujets
135
+ messageboard_follow_topics_on_mention:
136
+ hint: 'Quand quelqu''un mentionnera votre nom (exemple: @marc) dans cette catégorie, vous serez abonné
137
+ au sujet.'
138
+ label: :thredded.preferences.form.follow_topics_on_mention.label
139
+ messageboard_notifications_for_followed_topics:
140
+ label: :thredded.preferences.form.notifications_for_followed_topics.label
141
+ notifications_for_followed_topics:
142
+ label: Notifications pour les sujets suivis
143
+ notifications_for_private_topics:
144
+ label: Notifications pour les messages privés
145
+ submit_btn: Mettre à jour les paramètres
146
+ update_btn_submitting: :thredded.form.update_btn_submitting
147
+ global_preferences_title: Paramètres Globaux
148
+ messageboard_preferences_nav_title: Paramètre de la Catégorie
149
+ messageboard_preferences_title_html: Paramètre pour <em>%{messageboard}</em>
150
+ updated_notice: Vos paramètres ont été mise à jour.
151
+ private_posts:
152
+ form:
153
+ content_label: Message
154
+ create_btn: Envoyer le Message
155
+ create_btn_submitting: Message en cours d'envoi...
156
+ update_btn_submitting: :thredded.form.update_btn_submitting
157
+ private_topics:
158
+ edit: Éditer
159
+ errors:
160
+ user_ids_length: Spécifier au moins un autre utilisateur.
161
+ form:
162
+ content_label: :thredded.private_posts.form.content_label
163
+ create_btn: :thredded.private_posts.form.create_btn
164
+ create_btn_submitting: :thredded.private_posts.form.create_btn_submitting
165
+ title_label: :thredded.topics.form.title_label
166
+ title_placeholder_new: Écrire le sujet de cette conversation
167
+ title_placeholder_start: Commencer une nouvelle conversation
168
+ update_btn: Mettre à jour
169
+ update_btn_submitting: :thredded.private_posts.form.update_btn_submitting
170
+ users_label: Participants
171
+ users_placeholder: Sélectionner les utilisateurs qui participeront à cette conversation
172
+ no_private_topics:
173
+ create_btn: Commencer votre première conversation
174
+ title: Vous n'avez pas de messages privés.
175
+ updated_notice: Titre mise à jour
176
+ recent_activity: Activité récente
177
+ search:
178
+ form:
179
+ btn_submit: :thredded.search.form.label
180
+ label: Recherche
181
+ placeholder: Rechercher un Sujet ou un Commentaire
182
+ time_ago: il y a %{time}
183
+ topics:
184
+ delete_confirm: Êtes-vous sur de vouloir supprimer ce sujet ? Cette action est irréversible.
185
+ delete_topic: Supprimer le Sujet
186
+ deleted_notice: Sujet supprimé
187
+ edit: Éditer le Sujet
188
+ follow: Suivre le sujet
189
+ followed_by: 'Suivi par :'
190
+ followed_by_noone: Personne ne suit ce sujet
191
+ followed_notice: Vous suivez ce sujet
192
+ following:
193
+ auto: vous suivez ce sujet car la fonction de suivi automatique est activée.
194
+ manual: Vous suivez ce sujet.
195
+ mentioned: Vous suivez ce sujet car vous y avait été mentionné.
196
+ posted: Vous suivez ce sujet car vous y avait écris un commentaire.
197
+ form:
198
+ categories_placeholder: Catégories
199
+ content_label: :thredded.posts.form.content_label
200
+ create_btn: Créer un Nouveau Sujet
201
+ messageboard_label: Catégorie
202
+ title_label: Titre
203
+ title_placeholder: :thredded.topics.form.title_label
204
+ title_placeholder_start: Commencer un Nouveau Sujet
205
+ update_btn: Mettre à jour le Sujet
206
+ locked:
207
+ label: Verrouillé
208
+ mark_as_unread: Marquer comme non lu à partir d'ici
209
+ not_following: Vous ne suivez pas ce sujet.
210
+ search:
211
+ no_results_in_messageboard_message_html: Il n'y a aucun résultat pour votre recherche <q>%{query}</q> dans
212
+ %{messageboard}
213
+ no_results_message_html: Il n'y a aucun résultat pour votre recherche <q>%{query}</q>
214
+ page_title: Résultat de la Recherche de Sujet
215
+ results_in_messageboard_message_html: Recherche pour <q>%{query}</q> dans %{messageboard}
216
+ results_message_html: Recherche pour <q>%{query}</q>
217
+ search_in_all_messageboards_btn: Chercher partout
218
+ started_by_html: Démarré %{time_ago} par %{user}
219
+ sticky:
220
+ label: Collant
221
+ unfollow: Arrêter de Suivre
222
+ unfollowed_notice: Vous ne suivez dorénavant plus ce sujet
223
+ updated_notice: Sujet mis à jour
224
+ users:
225
+ currently_online: En ce moment connecté
226
+ last_active_html: 'Actif pour la dernière fois : %{time_ago}'
227
+ posted_in_topic_html: Commenté dans %{topic_link}
228
+ posts_count:
229
+ one: Commenté une seule fois
230
+ other: Commenté %{count} fois
231
+ recent_activity: :thredded.recent_activity
232
+ started_topic_html: Démarré %{topic_link}
233
+ started_topics_count:
234
+ one: Démarré un sujet
235
+ other: Démarré %{count} sujets
236
+ user_posted_in_topic_html: "%{user_link} a commenté dans %{topic_link}"
237
+ user_since_html: Utilisateur depuis %{time_ago}
238
+ user_started_topic_html: "%{user_link} démarré %{topic_link}"
@@ -6,6 +6,41 @@ pl:
6
6
  content_blocked_notice_with_record_html: Zablokowany przez %{moderator} %{time_ago}
7
7
  email_notifier:
8
8
  by_email: przez e-mail
9
+ emails:
10
+ message_notification:
11
+ html:
12
+ email_sent_reason_html: >-
13
+ Ten e-mail został wysłany do Ciebie, ponieważ %{user} włącza Cię do prywatnego tematu "<a href="%{post_url}">%{topic_title}</a>".
14
+ post_lead_html: 'Nowa wiadomość z %{user} w <a href="%{post_url}">"%{topic_title}"</a>:'
15
+ unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
16
+ subject: Nowa wiadomość z %{user} w "%{topic_title}"
17
+ text:
18
+ email_sent_reason: |-
19
+ Ten e-mail został wysłany do Ciebie, ponieważ %{user} Cię włączyło
20
+ Prywatny temat "%{topic_title}".
21
+
22
+ Przejdź tutaj, aby wyświetlić rozmowę:
23
+ %{post_url}
24
+ post_lead: 'Nowa wiadomość z %{user} w "%{topic_title}":'
25
+ unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
26
+ post_notification:
27
+ html:
28
+ email_sent_reason_html: >-
29
+ Ten e-mail został wysłany do Ciebie, ponieważ śledzisz ten temat: "<a href="%{post_url}">%{topic_title}</a>".
30
+ post_lead_html: '%{user} <a href="%{post_url}">powiedział w "%{topic_title}"</a>:'
31
+ unsubscribe_instructions_html: Aby wypisać się z tych e-maili, zaktualizuj swoje <a href="%{preferences_url}">preferencje</a>.
32
+ subject: Nowy post w "%{topic_title}" przez %{user}
33
+ text:
34
+ email_sent_reason: |-
35
+ Ten e-mail został wysłany do Ciebie, ponieważ śledzisz
36
+ Temat "%{topic_title}".
37
+
38
+ Przejdź tutaj, aby wyświetlić rozmowę:
39
+ %{post_url}
40
+ post_lead: '%{user} powiedział w "%{topic_title}":'
41
+ unsubscribe_instructions: |-
42
+ Aby wypisać się z tych e-maili, zaktualizuj swoje preferencje:
43
+ %{unsubscribe_url}
9
44
  errors:
10
45
  login_required: Proszę się najpierw zalogować.
11
46
  not_authorized: Nie masz uprawnień aby zobaczyć tę stronę.
@@ -6,6 +6,41 @@ pt-BR:
6
6
  content_blocked_notice_with_record_html: Bloqueados por %{moderator} %{time_ago}
7
7
  email_notifier:
8
8
  by_email: de e-mail
9
+ emails:
10
+ message_notification:
11
+ html:
12
+ email_sent_reason_html: >-
13
+ Este e-mail foi enviado para você porque %{user} incluiu você em um tópico privado, "<a href="%{post_url}">%{topic_title}</a>".
14
+ post_lead_html: 'Uma nova mensagem de %{user} em <a href="%{post_url}">"%{topic_title}"</a>:'
15
+ unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
16
+ subject: Uma nova mensagem de %{user} em "%{topic_title}"
17
+ text:
18
+ email_sent_reason: |-
19
+ Este e-mail foi enviado para você porque %{user} incluiu você em
20
+ o tópico privado "%{topic_title}".
21
+
22
+ Vá aqui para ver a conversa:
23
+ %{post_url}
24
+ post_lead: 'Uma nova mensagem de %{user} em "%{topic_title}":'
25
+ unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
26
+ post_notification:
27
+ html:
28
+ email_sent_reason_html: >-
29
+ Este e-mail foi enviado para você porque você está seguindo este tópico: "<a href="%{post_url}">%{topic_title}</a>".
30
+ post_lead_html: '%{user} <a href="%{post_url}">disse em "%{topic_title}"</a>:'
31
+ unsubscribe_instructions_html: Para cancelar a inscrição desses e-mails, atualize suas <a href="%{preferences_url}">preferências</a>.
32
+ subject: Uma nova postagem em "%{topic_title}" por %{user}
33
+ text:
34
+ email_sent_reason: |-
35
+ Este e-mail foi enviado para você porque você está seguindo
36
+ o tópico "%{topic_title}".
37
+
38
+ Vá aqui para ver a conversa:
39
+ %{post_url}
40
+ post_lead: '%{user} disse em "%{topic_title}":'
41
+ unsubscribe_instructions: |-
42
+ Para cancelar a inscrição desses e-mails, atualize suas preferências aqui:
43
+ %{unsubscribe_url}
9
44
  errors:
10
45
  login_required: Por favor, autentique-se primeiro.
11
46
  not_authorized: Você não está autorizado a acessar esta página.
@@ -6,6 +6,40 @@ ru:
6
6
  content_blocked_notice_with_record_html: Блокировано %{moderator} %{time_ago}
7
7
  email_notifier:
8
8
  by_email: email
9
+ emails:
10
+ message_notification:
11
+ html:
12
+ email_sent_reason_html: >-
13
+ Это письмо было отправлено вам, потому что %{user} добавил вас в приватную тему «<a href="%{post_url}">%{topic_title}</a>».
14
+ post_lead_html: 'Новое сообщение от %{user} в <a href="%{post_url}">«%{topic_title}»</a>:'
15
+ unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
16
+ subject: Новое сообщение от %{user} в «%{topic_title}»
17
+ text:
18
+ email_sent_reason: |-
19
+ Это письмо было отправлено вам, потому что %{user} добавил вас в
20
+ приватную тему «%{topic_title}».
21
+
22
+ Перейдите сюда, чтобы просмотреть разговор:
23
+ %{post_url}
24
+ post_lead: 'Новое сообщение от %{user} в «%{topic_title}»:'
25
+ unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
26
+ post_notification:
27
+ html:
28
+ email_sent_reason_html: >-
29
+ Это письмо было отправлено вам, потому что вы подписаны на тему: «<a href="%{post_url}">%{topic_title}</a>».
30
+ post_lead_html: '%{user} в <a href="%{post_url}">«%{topic_title}»</a>:'
31
+ unsubscribe_instructions_html: Чтобы отписаться от этих писем, обновите свои <a href="%{preferences_url}">настройки</a>.
32
+ subject: Новое сообщение в «%{topic_title}» от %{user}
33
+ text:
34
+ email_sent_reason: |-
35
+ Это письмо было отправлено вам, потому что вы подписаны на тему «%{topic_title}».
36
+
37
+ Перейдите сюда, чтобы просмотреть разговор:
38
+ %{post_url}
39
+ post_lead: "%{user} указан в «%{topic_title}»:"
40
+ unsubscribe_instructions: |-
41
+ Чтобы отписаться от этих писем, обновите свои настройки здесь:
42
+ %{unsubscribe_url}
9
43
  errors:
10
44
  login_required: Необходимо зайти на форум.
11
45
  not_authorized: Вы не авторизованы.
@@ -28,7 +28,7 @@ end
28
28
  Thredded.current_user_method = :"current_#{Thredded.user_class_name.underscore}"
29
29
 
30
30
  # User avatar URL. rb-gravatar gem is used by default:
31
- Thredded.avatar_url = ->(user) { Gravatar.src(user.email, 128, 'mm') }
31
+ Thredded.avatar_url = ->(user) { Gravatar.src(user.email, 156, 'mm') }
32
32
 
33
33
  # ==> Database Configuration
34
34
  # By default, thredded uses integers for record ID route constraints.
@@ -96,7 +96,7 @@ module Thredded
96
96
 
97
97
  self.active_user_threshold = 5.minutes
98
98
  self.admin_column = :admin
99
- self.avatar_url = ->(user) { Gravatar.src(user.email, 128, 'mm') }
99
+ self.avatar_url = ->(user) { Gravatar.src(user.email, 156, 'mm') }
100
100
  self.layout = 'thredded/application'
101
101
  self.moderator_column = :admin
102
102
  self.user_name_column = :name
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Thredded
4
- VERSION = '0.13.2'
4
+ VERSION = '0.13.3'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thredded
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.2
4
+ version: 0.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Oliveira
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-07-17 00:00:00.000000000 Z
12
+ date: 2017-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pundit
@@ -312,19 +312,19 @@ dependencies:
312
312
  - !ruby/object:Gem::Version
313
313
  version: '2.4'
314
314
  - !ruby/object:Gem::Dependency
315
- name: poltergeist
315
+ name: selenium-webdriver
316
316
  requirement: !ruby/object:Gem::Requirement
317
317
  requirements:
318
318
  - - ">="
319
319
  - !ruby/object:Gem::Version
320
- version: '0'
320
+ version: 3.5.0
321
321
  type: :development
322
322
  prerelease: false
323
323
  version_requirements: !ruby/object:Gem::Requirement
324
324
  requirements:
325
325
  - - ">="
326
326
  - !ruby/object:Gem::Version
327
- version: '0'
327
+ version: 3.5.0
328
328
  - !ruby/object:Gem::Dependency
329
329
  name: webmock
330
330
  requirement: !ruby/object:Gem::Requirement
@@ -974,6 +974,7 @@ files:
974
974
  - config/i18n-tasks.yml
975
975
  - config/locales/en.yml
976
976
  - config/locales/es.yml
977
+ - config/locales/fr.yml
977
978
  - config/locales/pl.yml
978
979
  - config/locales/pt-BR.yml
979
980
  - config/locales/ru.yml