decidim-comments 0.25.0.rc2 → 0.25.1

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
  SHA256:
3
- metadata.gz: a0e368d7c967fbbadf3d8b8b1ccb568c0d013f67167eef0007772758f9e1b1a4
4
- data.tar.gz: 8235ff94668c55ec576442a620851e70a60753e3475fa904b3f91e1394f40c02
3
+ metadata.gz: 4a5b6c36fa330c80091a3962638dc00b8053bfc94a9eccfbb8ed11074ddb1f63
4
+ data.tar.gz: ad533cc203a79d10f506f7181ef65a59eda8a8a666640d5cc54d3ea5d691964f
5
5
  SHA512:
6
- metadata.gz: fd688c1e740ef402ed0013475369601f19dc7242856315ac4993829300ded40df137a85ff307467171cc389974b0103f3167204d4c0c2abd7fce41e8ecd17001
7
- data.tar.gz: bd0be8a17ad9d33682d4896eab5a4bc961871b59b4e7886b09a678e04f1e692f1900a77d9e1041c4310588f4ab376eb3e5a0b018eb0d17c69d86fbc0819ad923
6
+ metadata.gz: 817873be527ccc087a0ba059fcee7c47a73607dd8366ec2c10f22ff4fe2df01bb727badfa149c8541056680f0d3284441f6d73f092371f92aa8f60f03e564c64
7
+ data.tar.gz: 8be9c7a62a9da1b868a65aa8f38cd0a361ae1bf7095faac98fd9103450e5581498efa77b8ade6d93813279cc5d45a50a1cd4fc5485d841d6856f482ce1edc45e
@@ -37,12 +37,7 @@ export default class CommentsComponent {
37
37
  this.mounted = true;
38
38
  this._initializeComments(this.$element);
39
39
 
40
- $(".order-by__dropdown .is-submenu-item a", this.$element).on(
41
- "click.decidim-comments",
42
- () => {
43
- this._onInitOrder();
44
- }
45
- );
40
+ $(".order-by__dropdown .is-submenu-item a", this.$element).on("click.decidim-comments", () => this._onInitOrder());
46
41
  }
47
42
  }
48
43
 
@@ -68,14 +63,16 @@ export default class CommentsComponent {
68
63
  * Adds a new thread to the comments section.
69
64
  * @public
70
65
  * @param {String} threadHtml - The HTML content for the thread.
66
+ * @param {Boolean} fromCurrentUser - A boolean indicating whether the user
67
+ * herself was the author of the new thread. Defaults to false.
71
68
  * @returns {Void} - Returns nothing
72
69
  */
73
- addThread(threadHtml) {
70
+ addThread(threadHtml, fromCurrentUser = false) {
74
71
  const $parent = $(".comments:first", this.$element);
75
72
  const $comment = $(threadHtml);
76
73
  const $threads = $(".comment-threads", this.$element);
77
74
  this._addComment($threads, $comment);
78
- this._finalizeCommentCreation($parent);
75
+ this._finalizeCommentCreation($parent, fromCurrentUser);
79
76
  }
80
77
 
81
78
  /**
@@ -84,15 +81,17 @@ export default class CommentsComponent {
84
81
  * @param {Number} commentId - The ID of the comment for which to add the
85
82
  * reply to.
86
83
  * @param {String} replyHtml - The HTML content for the reply.
84
+ * @param {Boolean} fromCurrentUser - A boolean indicating whether the user
85
+ * herself was the author of the new reply. Defaults to false.
87
86
  * @returns {Void} - Returns nothing
88
87
  */
89
- addReply(commentId, replyHtml) {
88
+ addReply(commentId, replyHtml, fromCurrentUser = false) {
90
89
  const $parent = $(`#comment_${commentId}`);
91
90
  const $comment = $(replyHtml);
92
91
  const $replies = $(`#comment-${commentId}-replies`);
93
92
  this._addComment($replies, $comment);
94
93
  $replies.siblings(".comment__additionalreply").removeClass("hide");
95
- this._finalizeCommentCreation($parent);
94
+ this._finalizeCommentCreation($parent, fromCurrentUser);
96
95
  }
97
96
 
98
97
  /**
@@ -170,18 +169,22 @@ export default class CommentsComponent {
170
169
  * successfully.
171
170
  * @private
172
171
  * @param {jQuery} $parent - The parent comment element to finalize.
172
+ * @param {Boolean} fromCurrentUser - A boolean indicating whether the user
173
+ * herself was the author of the new comment.
173
174
  * @returns {Void} - Returns nothing
174
175
  */
175
- _finalizeCommentCreation($parent) {
176
- const $add = $("> .add-comment", $parent);
177
- const $text = $("textarea", $add);
178
- const characterCounter = $text.data("remaining-characters-counter");
179
- $text.val("");
180
- if (characterCounter) {
181
- characterCounter.updateStatus();
182
- }
183
- if (!$add.parent().is(".comments")) {
184
- $add.addClass("hide");
176
+ _finalizeCommentCreation($parent, fromCurrentUser) {
177
+ if (fromCurrentUser) {
178
+ const $add = $("> .add-comment", $parent);
179
+ const $text = $("textarea", $add);
180
+ const characterCounter = $text.data("remaining-characters-counter");
181
+ $text.val("");
182
+ if (characterCounter) {
183
+ characterCounter.updateStatus();
184
+ }
185
+ if (!$add.parent().is(".comments")) {
186
+ $add.addClass("hide");
187
+ }
185
188
  }
186
189
 
187
190
  // Restart the polling
@@ -207,9 +210,7 @@ export default class CommentsComponent {
207
210
  order: this.order,
208
211
  after: this.lastCommentId
209
212
  }
210
- }).done(() => {
211
- this._pollComments();
212
- });
213
+ }).done(() => this._pollComments());
213
214
  }, this.pollingInterval);
214
215
  }
215
216
 
@@ -558,17 +558,82 @@ describe("CommentsComponent", () => {
558
558
  "This is a dynamically added comment"
559
559
  ));
560
560
  });
561
+
562
+ it("does not clear the comment form text area", () => {
563
+ const commentSection = addComment[addComment.length - 1];
564
+ const textArea = $("textarea", commentSection);
565
+ textArea.val("I am writing a new comment...");
566
+
567
+ const newThread = generateCommentThread(999, "This is a dynamically added comment");
568
+ subject.addThread(newThread);
569
+
570
+ expect(textArea.val()).toEqual("I am writing a new comment...");
571
+ });
572
+
573
+ describe("as the current user", () => {
574
+ it("clears the comment form text area", () => {
575
+ const commentSection = addComment[addComment.length - 1];
576
+ const textArea = $("textarea", commentSection);
577
+ textArea.val("I am writing a new comment...");
578
+
579
+ const newThread = generateCommentThread(999, "This is a dynamically added comment");
580
+ subject.addThread(newThread, true);
581
+
582
+ expect(textArea.val()).toEqual("");
583
+ });
584
+ });
561
585
  });
562
586
 
563
587
  describe("addReply", () => {
588
+ const newReply = generateSingleComment(999, "This is a dynamically added reply");
589
+
564
590
  it("adds a new reply to an existing thread", () => {
565
- const newThread = generateSingleComment(999, "This is a dynamically added reply");
566
- subject.addReply(450, newThread);
591
+ subject.addReply(450, newReply);
567
592
 
568
593
  expect(subject.$element.html()).toEqual(expect.stringContaining(
569
594
  "This is a dynamically added reply"
570
595
  ));
571
596
  });
597
+
598
+ it("does not clear the reply comment form text area", () => {
599
+ const commentSection = $("#comment450-reply", subject.$element);
600
+ const textArea = $("textarea", commentSection);
601
+ textArea.val("I am writing a new comment...");
602
+
603
+ subject.addReply(450, newReply);
604
+
605
+ expect(textArea.val()).toEqual("I am writing a new comment...");
606
+ });
607
+
608
+ it("does not hide the reply form", () => {
609
+ const commentSection = $("#comment450-reply", subject.$element);
610
+ commentSection.removeClass("hide");
611
+
612
+ subject.addReply(450, newReply);
613
+
614
+ expect(commentSection.hasClass("hide")).toBeFalsy();
615
+ });
616
+
617
+ describe("as the current user", () => {
618
+ it("clears the comment form text area", () => {
619
+ const commentSection = $("#comment450-reply", subject.$element);
620
+ const textArea = $("textarea", commentSection);
621
+ textArea.val("I am writing a new comment...");
622
+
623
+ subject.addReply(450, newReply, true);
624
+
625
+ expect(textArea.val()).toEqual("");
626
+ });
627
+
628
+ it("hides the reply form", () => {
629
+ const commentSection = $("#comment450-reply", subject.$element);
630
+ commentSection.removeClass("hide");
631
+
632
+ subject.addReply(450, newReply, true);
633
+
634
+ expect(commentSection.hasClass("hide")).toBeTruthy();
635
+ });
636
+ });
572
637
  });
573
638
  });
574
639
 
@@ -33,12 +33,6 @@ module Decidim
33
33
  scope = base_scope
34
34
  .not_hidden
35
35
  .includes(:author, :user_group, :up_votes, :down_votes)
36
- if @options[:after]
37
- scope = scope.where(
38
- "decidim_comments_comments.id > ?",
39
- @options[:after]
40
- )
41
- end
42
36
 
43
37
  case @options[:order_by]
44
38
  when "older"
@@ -60,6 +54,14 @@ module Decidim
60
54
  id = @options[:id]
61
55
  return Comment.where(root_commentable: commentable, id: id) if id.present?
62
56
 
57
+ after = @options[:after]
58
+ if after.present?
59
+ return Comment.where(root_commentable: commentable).where(
60
+ "decidim_comments_comments.id > ?",
61
+ after
62
+ )
63
+ end
64
+
63
65
  Comment.where(commentable: commentable)
64
66
  end
65
67
 
@@ -6,9 +6,9 @@
6
6
  var $comments = $("#" + rootCommentableId);
7
7
  var component = $comments.data("comments");
8
8
  if (inReplyTo) {
9
- component.addReply(inReplyTo, commentHtml);
9
+ component.addReply(inReplyTo, commentHtml, true);
10
10
  } else {
11
- component.addThread(commentHtml);
11
+ component.addThread(commentHtml, true);
12
12
  }
13
13
 
14
14
  // Update the comments count
@@ -1,8 +1,22 @@
1
1
  $(() => {
2
- const commentHtml = '<%== j(render partial: "edited_comment", locals: { comment: @comment }).strip %>';
3
- const commentId = <%= @comment.id.to_json %>;
4
- const $comment = $("#comment_<%= @comment.id %>");
5
- const $editCommentModal = $("#editCommentModal<%= @comment.id %>");
2
+ var rootCommentableId = <%== "comments-for-#{@comment.commentable.commentable_type.demodulize}-#{@comment.commentable.id}".to_json %>;
3
+ var $comments = $("#" + rootCommentableId);
4
+ var config = $comments.data("decidim-comments");
5
+
6
+ component = new Decidim.CommentsComponent($comments, config);
7
+ component.unmountComponent();
8
+
9
+ var commentHtml = '<%== j(render partial: "edited_comment", locals: { comment: @comment }).strip %>';
10
+ var commentId = <%= @comment.id.to_json %>;
11
+ var $comment = $("#comment_<%= @comment.id %>");
6
12
 
7
13
  $comment.replaceWith(commentHtml);
14
+
15
+ $comments = $("#" + rootCommentableId);
16
+ $comments.foundation();
17
+
18
+ // Re-create the component
19
+ component = new Decidim.CommentsComponent($comments, $comments.data("decidim-comments"));
20
+ component.mountComponent();
21
+ $comments.data("comments", component);
8
22
  });
@@ -19,6 +19,10 @@ ca:
19
19
  comments:
20
20
  create:
21
21
  error: S'ha produït un error en crear el comentari.
22
+ delete:
23
+ error: El comentari no s'ha pogut eliminar.
24
+ update:
25
+ error: S'ha produït un error en actualitzar el comentari.
22
26
  comments_count: Número de comentaris
23
27
  comments_title: Comentaris
24
28
  last_activity:
@@ -53,7 +57,12 @@ ca:
53
57
  alignment:
54
58
  against: En contra
55
59
  in_favor: A favor
60
+ confirm_destroy: Segur que vols esborrar aquest comentari?
61
+ delete: Esborrar
62
+ deleted_at: Comentari esborrat el %{date}
56
63
  deleted_user: Participant eliminada
64
+ edit: Editar
65
+ edited: Editat
57
66
  hide_replies: Oculta les respostes
58
67
  reply: Respondre
59
68
  report:
@@ -68,6 +77,7 @@ ca:
68
77
  spam: Conté "clickbait", publicitat o estafes.
69
78
  title: Notificar contingut inapropiat
70
79
  show_replies: Mostra %{replies_count} respostes
80
+ single_comment_link_title: Obtenir enllaç
71
81
  comment_order_selector:
72
82
  order:
73
83
  best_rated: Més ben valorats
@@ -90,6 +100,14 @@ ca:
90
100
  other: "%{count} comentaris"
91
101
  down_vote_button:
92
102
  text: No estic d'acord amb aquest comentari
103
+ edit_comment_modal_form:
104
+ close: Tancar
105
+ form:
106
+ body:
107
+ label: Comentar
108
+ placeholder: Què opines sobre això?
109
+ submit: Enviar
110
+ title: Edita el teu comentari
93
111
  up_vote_button:
94
112
  text: Estic d'acord amb aquest comentari
95
113
  events:
@@ -19,6 +19,10 @@ de:
19
19
  comments:
20
20
  create:
21
21
  error: Beim Erstellen des Kommentars ist ein Fehler aufgetreten.
22
+ delete:
23
+ error: Die Sendung konnte nicht gelöscht werden.
24
+ update:
25
+ error: Beim Erstellen des Kommentars ist ein Fehler aufgetreten.
22
26
  comments_count: Kommentaranzahl
23
27
  comments_title: Kommentare
24
28
  last_activity:
@@ -53,7 +57,12 @@ de:
53
57
  alignment:
54
58
  against: Gegen
55
59
  in_favor: Zugunsten
60
+ confirm_destroy: Bist du sicher, dass du diesen Kommentar löschen willst?
61
+ delete: Löschen
62
+ deleted_at: Kommentar gelöscht am %{date}
56
63
  deleted_user: Gelöschter Benutzer
64
+ edit: Bearbeiten
65
+ edited: Bearbeitet
57
66
  hide_replies: Antworten verbergen
58
67
  reply: Antworten
59
68
  report:
@@ -68,6 +77,7 @@ de:
68
77
  spam: Enthält Clickbait, Werbung, Scams oder Script Bots.
69
78
  title: Ungeeigneten Inhalt melden
70
79
  show_replies: '%{replies_count} Antworten anzeigen'
80
+ single_comment_link_title: Link erhalten
71
81
  comment_order_selector:
72
82
  order:
73
83
  best_rated: Am besten bewertet
@@ -90,6 +100,14 @@ de:
90
100
  other: "%{count} Kommentare"
91
101
  down_vote_button:
92
102
  text: Ich bin mit diesem Kommentar nicht einverstanden
103
+ edit_comment_modal_form:
104
+ close: Schliessen
105
+ form:
106
+ body:
107
+ label: Kommentar
108
+ placeholder: Was denken Sie darüber?
109
+ submit: Senden
110
+ title: Kommentar bearbeiten
93
111
  up_vote_button:
94
112
  text: Ich stimme diesem Kommentar zu
95
113
  events:
@@ -16,9 +16,18 @@ el:
16
16
  other: Ψήφοι
17
17
  decidim:
18
18
  comments:
19
+ comments:
20
+ create:
21
+ error: Υπήρξε ένα πρόβλημα στη δημιουργία του σχολίου.
22
+ delete:
23
+ error: Το σχόλιο δεν μπορούσε να διαγραφεί.
24
+ update:
25
+ error: Υπήρξε ένα πρόβλημα στην ενημέρωση του σχολίου.
19
26
  comments_count: Αριθμός σχολίων
27
+ comments_title: Σχόλια
20
28
  last_activity:
21
29
  new_comment_at_html: "<span>Νέο σχόλιο στο %{link}</span>"
30
+ view: Προβολή
22
31
  votes:
23
32
  create:
24
33
  error: Υπήρξε ένα πρόβλημα κατά την ψηφοφορία του σχολίου.
@@ -34,7 +43,13 @@ el:
34
43
  user_group_id:
35
44
  label: Σχόλιο ως
36
45
  opinion:
37
- neutral: Ούτε ικανοποιημένος/η ούτε δυσαρεστημένος/η
46
+ label: Η γνώμη σας για το θέμα αυτό
47
+ negative: Αρνητική
48
+ negative_selected: Η γνώμη σας για το θέμα αυτό είναι αρνητική
49
+ neutral: Ουδέτερη
50
+ neutral_selected: Η γνώμη σας για το θέμα αυτό είναι ουδέτερη
51
+ positive: Θετική
52
+ positive_selected: Η γνώμη σας για το θέμα αυτό είναι θετική
38
53
  remaining_characters: "%{count} χαρακτήρες απομένουν"
39
54
  remaining_characters_1: "%{count} χαρακτήρας απομένει"
40
55
  title: Προσθέστε το σχόλιό σας
@@ -42,7 +57,12 @@ el:
42
57
  alignment:
43
58
  against: Κατά
44
59
  in_favor: Υπέρ
60
+ confirm_destroy: Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το σχόλιο;
61
+ delete: Διαγραφή
62
+ deleted_at: Σχόλιο διεγράφη στις %{date}
45
63
  deleted_user: Διαγραμμένος συμμετέχων
64
+ edit: Επεξεργασία
65
+ edited: Επεξεργασμένο
46
66
  hide_replies: Απόκρυψη απαντήσεων
47
67
  reply: Απάντηση
48
68
  report:
@@ -57,6 +77,7 @@ el:
57
77
  spam: Περιέχει clickbait, διαφημίσεις, απάτες ή script bot.
58
78
  title: Αναφορά ακατάλληλου περιεχομένου
59
79
  show_replies: Εμφάνιση %{replies_count} απαντήσεων
80
+ single_comment_link_title: Αποκτήστε σύνδεσμο
60
81
  comment_order_selector:
61
82
  order:
62
83
  best_rated: Με την καλύτερη βαθμολογία
@@ -67,14 +88,26 @@ el:
67
88
  comment_thread:
68
89
  title: Συζήτηση με τον συντάκτη %{authorName}
69
90
  comments:
91
+ blocked_comments_for_unauthorized_user_warning: Πρέπει να επαληθευτείτε για να σχολιάσετε αυτή τη στιγμή, αλλά μπορείτε να διαβάσετε τα προηγούμενα.
70
92
  blocked_comments_for_user_warning: Δεν μπορείτε να σχολιάσετε αυτήν τη στιγμή, αλλά μπορείτε να διαβάσετε τα προηγούμενα σχόλια.
71
93
  blocked_comments_warning: Τα σχόλια είναι απενεργοποιημένα αυτήν τη στιγμή, αλλά μπορείτε να διαβάσετε τα προηγούμενα σχόλια.
72
94
  comment_details_title: Λεπτομέρειες σχολίων
73
95
  loading: Φόρτωση σχολίων...
74
96
  single_comment_warning: Μπορείτε να δείτε τα υπόλοιπα σχόλια <a href="%{url}">εδώ</a>.
75
97
  single_comment_warning_title: Βλέπετε ένα μόνο σχόλιο
98
+ title:
99
+ one: "%{count} σχόλιο"
100
+ other: "%{count} σχόλια"
76
101
  down_vote_button:
77
102
  text: Δεν συμφωνώ με αυτό το σχόλιο
103
+ edit_comment_modal_form:
104
+ close: Κλείσιμο
105
+ form:
106
+ body:
107
+ label: Σχόλιο
108
+ placeholder: Τι πιστεύετε γι' αυτό;
109
+ submit: Αποστολή
110
+ title: Επεξεργαστείτε το σχόλιό σας
78
111
  up_vote_button:
79
112
  text: Συμφωνώ με αυτό το σχόλιο
80
113
  events:
@@ -94,6 +127,16 @@ el:
94
127
  email_outro: Λάβατε αυτήν την ειδοποίηση επειδή ακολουθείτε το στοιχείο «%{resource_title}» ή τον συντάκτη του. Μπορείτε να σταματήσετε να την ακολουθείτε από τον προηγούμενο σύνδεσμο.
95
128
  email_subject: Υπάρχει ένα νέο σχόλιο από τον συντάκτη %{author_name} στο στοιχείο %{resource_title}
96
129
  notification_title: Υπάρχει ένα νέο σχόλιο από τον συντάκτη<a href="%{author_path}">%{author_name} %{author_nickname}</a> στο στοιχείο <a href="%{resource_path}">%{resource_title}</a>
130
+ comment_downvoted:
131
+ email_intro: Το σχόλιό σας στο "%{resource_title}" έχει καταψηφιστεί. Τώρα έχει συνολικές ψήφους %{upvotes} υπέρ και %{downvotes} κατά.
132
+ email_outro: Λάβατε αυτή την ειδοποίηση επειδή είστε ο συγγραφέας αυτού του σχολίου.
133
+ email_subject: Το σχόλιό σας στο "%{resource_title}" έχει καταψηφιστεί.
134
+ notification_title: Το <a href="%{resource_path}">σχόλιό</a> σας στο "%{resource_title}" έχει καταψηφιστεί. Τώρα έχει συνολικές ψήφους %{upvotes} υπέρ και %{downvotes} κατά.
135
+ comment_upvoted:
136
+ email_intro: Το σχόλιό σας στο "%{resource_title}" έχει υπερψηφιστεί. Τώρα έχει συνολικές ψήφους %{upvotes} υπέρ και %{downvotes} κατά.
137
+ email_outro: Λάβατε αυτή την ειδοποίηση επειδή είστε ο συγγραφέας αυτού του σχολίου.
138
+ email_subject: Το σχόλιό σας στο "%{resource_title}" έχει υπςρψηφιστεί.
139
+ notification_title: Το <a href="%{resource_path}">σχόλιό</a> σας στο "%{resource_title}" έχει υπερψηφιστεί. Τώρα έχει συνολικές ψήφους %{upvotes} υπέρ και %{downvotes} κατά.
97
140
  reply_created:
98
141
  email_intro: "Ο συντάκτης %{author_name} απάντησε στο σχόλιό σας στο στοιχείο %{resource_title}. Μπορείτε να το διαβάσετε σε αυτήν τη σελίδα:"
99
142
  email_outro: Λάβατε αυτήν την ειδοποίηση, επειδή το σχόλιό σας απαντήθηκε.
@@ -19,6 +19,10 @@ es-MX:
19
19
  comments:
20
20
  create:
21
21
  error: Se ha producido un error al crear el comentario.
22
+ delete:
23
+ error: El comentario no pudo ser eliminado.
24
+ update:
25
+ error: Se ha producido un error al actualizar el comentario.
22
26
  comments_count: Número de comentarios
23
27
  comments_title: Comentarios
24
28
  last_activity:
@@ -53,7 +57,12 @@ es-MX:
53
57
  alignment:
54
58
  against: En contra
55
59
  in_favor: A favor
60
+ confirm_destroy: '¿Seguro que quieres eliminar este comentario?'
61
+ delete: Eliminar
62
+ deleted_at: Comentario eliminado el %{date}
56
63
  deleted_user: Usuario eliminado
64
+ edit: Editar
65
+ edited: Editado
57
66
  hide_replies: Ocultar respuestas
58
67
  reply: Respuesta
59
68
  report:
@@ -68,6 +77,7 @@ es-MX:
68
77
  spam: Contiene clickbait, publicidad o estafas.
69
78
  title: Notificar contenido inapropiado
70
79
  show_replies: Mostrar %{replies_count} respuestas
80
+ single_comment_link_title: Obtener enlace
71
81
  comment_order_selector:
72
82
  order:
73
83
  best_rated: Mejor valoración
@@ -90,6 +100,14 @@ es-MX:
90
100
  other: "%{count} comentarios"
91
101
  down_vote_button:
92
102
  text: No estoy de acuerdo con este comentario
103
+ edit_comment_modal_form:
104
+ close: Cerrar
105
+ form:
106
+ body:
107
+ label: Comentario
108
+ placeholder: '¿Qué opinas sobre esto?'
109
+ submit: Enviar
110
+ title: Edita tu comentario
93
111
  up_vote_button:
94
112
  text: Estoy de acuerdo con este comentario
95
113
  events:
@@ -19,6 +19,10 @@ es-PY:
19
19
  comments:
20
20
  create:
21
21
  error: Se ha producido un error al crear el comentario.
22
+ delete:
23
+ error: El comentario no pudo ser eliminado.
24
+ update:
25
+ error: Se ha producido un error al actualizar el comentario.
22
26
  comments_count: Número de comentarios
23
27
  comments_title: Comentarios
24
28
  last_activity:
@@ -53,7 +57,12 @@ es-PY:
53
57
  alignment:
54
58
  against: En contra
55
59
  in_favor: A favor
60
+ confirm_destroy: '¿Seguro que quieres eliminar este comentario?'
61
+ delete: Eliminar
62
+ deleted_at: Comentario eliminado el %{date}
56
63
  deleted_user: Usuario eliminado
64
+ edit: Editar
65
+ edited: Editado
57
66
  hide_replies: Ocultar respuestas
58
67
  reply: Respuesta
59
68
  report:
@@ -68,6 +77,7 @@ es-PY:
68
77
  spam: Contiene clickbait, publicidad o estafas.
69
78
  title: Notificar contenido inapropiado
70
79
  show_replies: Mostrar %{replies_count} respuestas
80
+ single_comment_link_title: Obtener enlace
71
81
  comment_order_selector:
72
82
  order:
73
83
  best_rated: Mejor valoración
@@ -90,6 +100,14 @@ es-PY:
90
100
  other: "%{count} comentarios"
91
101
  down_vote_button:
92
102
  text: No estoy de acuerdo con este comentario
103
+ edit_comment_modal_form:
104
+ close: Cerrar
105
+ form:
106
+ body:
107
+ label: Comentario
108
+ placeholder: '¿Qué opinas sobre esto?'
109
+ submit: Enviar
110
+ title: Edita tu comentario
93
111
  up_vote_button:
94
112
  text: Estoy de acuerdo con este comentario
95
113
  events:
@@ -19,6 +19,10 @@ es:
19
19
  comments:
20
20
  create:
21
21
  error: Se ha producido un error al crear el comentario.
22
+ delete:
23
+ error: El comentario no pudo ser eliminado.
24
+ update:
25
+ error: Se ha producido un error al actualizar el comentario.
22
26
  comments_count: Número de comentarios
23
27
  comments_title: Comentarios
24
28
  last_activity:
@@ -53,7 +57,12 @@ es:
53
57
  alignment:
54
58
  against: En contra
55
59
  in_favor: A favor
60
+ confirm_destroy: '¿Seguro que quieres eliminar este comentario?'
61
+ delete: Eliminar
62
+ deleted_at: Comentario eliminado el %{date}
56
63
  deleted_user: Participante eliminada
64
+ edit: Editar
65
+ edited: Editado
57
66
  hide_replies: Ocultar respuestas
58
67
  reply: Respuesta
59
68
  report:
@@ -68,6 +77,7 @@ es:
68
77
  spam: Contiene clickbait, publicidad o estafas.
69
78
  title: Notificar contenido inapropiado
70
79
  show_replies: Mostrar %{replies_count} respuestas
80
+ single_comment_link_title: Obtener enlace
71
81
  comment_order_selector:
72
82
  order:
73
83
  best_rated: Mejor valoración
@@ -90,6 +100,14 @@ es:
90
100
  other: "%{count} comentarios"
91
101
  down_vote_button:
92
102
  text: No estoy de acuerdo con este comentario
103
+ edit_comment_modal_form:
104
+ close: Cerrar
105
+ form:
106
+ body:
107
+ label: Comentario
108
+ placeholder: '¿Qué opinas sobre esto?'
109
+ submit: Enviar
110
+ title: Edita tu comentario
93
111
  up_vote_button:
94
112
  text: Estoy de acuerdo con este comentario
95
113
  events: