decidim-comments 0.19.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/decidim/comments/bundle.js +41 -41
- data/app/assets/javascripts/decidim/comments/bundle.js.map +1 -1
- data/app/cells/decidim/comments/comment_activity_cell.rb +1 -1
- data/app/commands/decidim/comments/create_comment.rb +7 -7
- data/app/events/decidim/comments/comment_by_followed_user_group_event.rb +9 -0
- data/app/events/decidim/comments/comment_event.rb +15 -2
- data/app/events/decidim/comments/user_group_mentioned_event.rb +10 -0
- data/app/forms/decidim/comments/comment_form.rb +9 -0
- data/app/frontend/application/icon.component.tsx +16 -4
- data/app/frontend/comments/add_comment_form.component.test.tsx +4 -1
- data/app/frontend/comments/add_comment_form.component.tsx +16 -3
- data/app/frontend/comments/comment.component.test.tsx +1 -1
- data/app/frontend/comments/comment.component.tsx +287 -74
- data/app/frontend/comments/comment_order_selector.component.tsx +26 -7
- data/app/frontend/comments/comments.component.tsx +65 -8
- data/app/frontend/comments/down_vote_button.component.tsx +3 -0
- data/app/frontend/comments/up_vote_button.component.tsx +3 -0
- data/app/frontend/comments/vote_button.component.tsx +4 -0
- data/app/frontend/comments/vote_button_component.test.tsx +14 -8
- data/app/frontend/entry.ts +19 -0
- data/app/frontend/entry_test.ts +2 -0
- data/app/frontend/queries/comments.query.graphql +2 -2
- data/app/frontend/support/schema.ts +745 -744
- data/app/models/decidim/comments/comment.rb +30 -5
- data/app/queries/decidim/comments/metrics/comments_metric_manage.rb +1 -6
- data/app/queries/decidim/comments/sorted_comments.rb +8 -2
- data/app/scrubbers/decidim/comments/user_input_scrubber.rb +20 -0
- data/app/services/decidim/comments/new_comment_notification_creator.rb +28 -3
- data/app/types/decidim/comments/commentable_interface.rb +2 -1
- data/app/types/decidim/comments/commentable_mutation_type.rb +2 -2
- data/config/locales/ar.yml +10 -1
- data/config/locales/bg-BG.yml +6 -0
- data/config/locales/ca.yml +23 -1
- data/config/locales/cs.yml +35 -13
- data/config/locales/da-DK.yml +1 -0
- data/config/locales/de.yml +23 -1
- data/config/locales/el-GR.yml +1 -0
- data/config/locales/el.yml +122 -0
- data/config/locales/en.yml +23 -1
- data/config/locales/es-MX.yml +23 -1
- data/config/locales/es-PY.yml +23 -1
- data/config/locales/es.yml +23 -1
- data/config/locales/et-EE.yml +1 -0
- data/config/locales/eu.yml +4 -1
- data/config/locales/fi-plain.yml +23 -1
- data/config/locales/fi.yml +29 -7
- data/config/locales/fr-CA.yml +122 -0
- data/config/locales/fr.yml +23 -1
- data/config/locales/ga-IE.yml +1 -0
- data/config/locales/gl.yml +4 -1
- data/config/locales/hr-HR.yml +1 -0
- data/config/locales/hu.yml +17 -1
- data/config/locales/id-ID.yml +4 -1
- data/config/locales/is-IS.yml +76 -0
- data/config/locales/it.yml +23 -1
- data/config/locales/ja-JP.yml +120 -0
- data/config/locales/lt-LT.yml +1 -0
- data/config/locales/lv-LV.yml +118 -0
- data/config/locales/mt-MT.yml +1 -0
- data/config/locales/nl.yml +35 -13
- data/config/locales/no.yml +118 -0
- data/config/locales/pl.yml +57 -35
- data/config/locales/pt-BR.yml +5 -2
- data/config/locales/pt.yml +47 -25
- data/config/locales/ro-RO.yml +124 -0
- data/config/locales/ru.yml +12 -1
- data/config/locales/sk-SK.yml +116 -0
- data/config/locales/sk.yml +120 -0
- data/config/locales/sl.yml +4 -0
- data/config/locales/sr-CS.yml +20 -0
- data/config/locales/sv.yml +25 -3
- data/config/locales/tr-TR.yml +4 -1
- data/config/locales/uk.yml +4 -1
- data/db/migrate/20200320105911_index_foreign_keys_in_decidim_comments_comments.rb +7 -0
- data/lib/decidim/comments.rb +1 -0
- data/lib/decidim/comments/markdown.rb +55 -0
- data/lib/decidim/comments/test/shared_examples/comment_event.rb +11 -1
- data/lib/decidim/comments/test/shared_examples/create_comment_context.rb +3 -2
- data/lib/decidim/comments/version.rb +1 -1
- metadata +46 -9
    
        data/lib/decidim/comments.rb
    CHANGED
    
    | @@ -17,6 +17,7 @@ module Decidim | |
| 17 17 | 
             
                autoload :CommentSerializer, "decidim/comments/comment_serializer"
         | 
| 18 18 | 
             
                autoload :CommentVoteSerializer, "decidim/comments/comment_vote_serializer"
         | 
| 19 19 | 
             
                autoload :Export, "decidim/comments/export"
         | 
| 20 | 
            +
                autoload :Markdown, "decidim/comments/markdown"
         | 
| 20 21 |  | 
| 21 22 | 
             
                def self.data_portable_entities
         | 
| 22 23 | 
             
                  ["Decidim::Comments::Comment", "Decidim::Comments::CommentVote"]
         | 
| @@ -0,0 +1,55 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "redcarpet"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Decidim
         | 
| 6 | 
            +
              module Comments
         | 
| 7 | 
            +
                # This class parses a string from plain text (markdown) and
         | 
| 8 | 
            +
                # renders it as HTML.
         | 
| 9 | 
            +
                class Markdown < ::Redcarpet::Render::Base
         | 
| 10 | 
            +
                  delegate :render, to: :markdown
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  private
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  def markdown
         | 
| 15 | 
            +
                    @markdown ||= ::Redcarpet::Markdown.new(renderer)
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  def renderer
         | 
| 19 | 
            +
                    @renderer ||= Decidim::Comments::MarkdownRender.new
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                # Custom markdown renderer for Comments
         | 
| 24 | 
            +
                class MarkdownRender < ::Redcarpet::Render::Safe
         | 
| 25 | 
            +
                  def initialize(extensions = {})
         | 
| 26 | 
            +
                    super({
         | 
| 27 | 
            +
                      autolink: true,
         | 
| 28 | 
            +
                      escape_html: false,
         | 
| 29 | 
            +
                      filter_html: true,
         | 
| 30 | 
            +
                      hard_wrap: true,
         | 
| 31 | 
            +
                      lax_spacing: false,
         | 
| 32 | 
            +
                      no_images: true,
         | 
| 33 | 
            +
                      no_styles: true
         | 
| 34 | 
            +
                    }.merge(extensions))
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  # renders quotes with a custom css class
         | 
| 38 | 
            +
                  def block_quote(quote)
         | 
| 39 | 
            +
                    %(<blockquote class="comment__quote">#{quote}</blockquote>)
         | 
| 40 | 
            +
                  end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                  # removes header tags in comments
         | 
| 43 | 
            +
                  def header(title, _level)
         | 
| 44 | 
            +
                    title
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  # prevents empty <p/> in comments
         | 
| 48 | 
            +
                  def paragraph(text)
         | 
| 49 | 
            +
                    return if text.blank?
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                    "<p>#{text}</p>"
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
              end
         | 
| 55 | 
            +
            end
         | 
| @@ -12,10 +12,16 @@ shared_context "when it's a comment event" do | |
| 12 12 |  | 
| 13 13 | 
             
              let(:comment) { create :comment }
         | 
| 14 14 | 
             
              let(:comment_author) { comment.author }
         | 
| 15 | 
            +
              let(:normalized_comment_author) { comment.author }
         | 
| 15 16 | 
             
              let(:comment_author_name) { decidim_html_escape comment.author.name }
         | 
| 16 17 |  | 
| 17 18 | 
             
              let(:extra) { { comment_id: comment.id } }
         | 
| 18 19 | 
             
              let(:resource_title) { decidim_html_escape resource.title }
         | 
| 20 | 
            +
              let(:user_group) do
         | 
| 21 | 
            +
                user_group = create(:user_group, :verified, organization: organization, users: [comment_author])
         | 
| 22 | 
            +
                comment.update!(user_group: user_group)
         | 
| 23 | 
            +
                user_group
         | 
| 24 | 
            +
              end
         | 
| 19 25 | 
             
            end
         | 
| 20 26 |  | 
| 21 27 | 
             
            shared_examples_for "a comment event" do
         | 
| @@ -23,7 +29,11 @@ shared_examples_for "a comment event" do | |
| 23 29 |  | 
| 24 30 | 
             
              describe "author" do
         | 
| 25 31 | 
             
                it "returns the comment author" do
         | 
| 26 | 
            -
                   | 
| 32 | 
            +
                  if defined? user_group_author
         | 
| 33 | 
            +
                    expect(subject.author).to eq(user_group_author)
         | 
| 34 | 
            +
                  else
         | 
| 35 | 
            +
                    expect(subject.author).to eq(comment_author)
         | 
| 36 | 
            +
                  end
         | 
| 27 37 | 
             
                end
         | 
| 28 38 | 
             
              end
         | 
| 29 39 |  | 
| @@ -16,7 +16,8 @@ RSpec.shared_context "when creating a comment" do | |
| 16 16 | 
             
                  "comment" => {
         | 
| 17 17 | 
             
                    "body" => body,
         | 
| 18 18 | 
             
                    "alignment" => alignment,
         | 
| 19 | 
            -
                    "user_group_id" => user_group_id
         | 
| 19 | 
            +
                    "user_group_id" => user_group_id,
         | 
| 20 | 
            +
                    "commentable" => commentable
         | 
| 20 21 | 
             
                  }
         | 
| 21 22 | 
             
                }
         | 
| 22 23 | 
             
              end
         | 
| @@ -27,5 +28,5 @@ RSpec.shared_context "when creating a comment" do | |
| 27 28 | 
             
                  current_organization: organization
         | 
| 28 29 | 
             
                )
         | 
| 29 30 | 
             
              end
         | 
| 30 | 
            -
              let(:command) { described_class.new(form, author | 
| 31 | 
            +
              let(:command) { described_class.new(form, author) }
         | 
| 31 32 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: decidim-comments
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.22.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Josep Jaume Rey Peroy
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date:  | 
| 13 | 
            +
            date: 2020-09-01 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: decidim-core
         | 
| @@ -18,14 +18,14 @@ dependencies: | |
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - '='
         | 
| 20 20 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                    version: 0. | 
| 21 | 
            +
                    version: 0.22.0
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 24 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 25 | 
             
                requirements:
         | 
| 26 26 | 
             
                - - '='
         | 
| 27 27 | 
             
                  - !ruby/object:Gem::Version
         | 
| 28 | 
            -
                    version: 0. | 
| 28 | 
            +
                    version: 0.22.0
         | 
| 29 29 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 30 30 | 
             
              name: jquery-rails
         | 
| 31 31 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -40,34 +40,48 @@ dependencies: | |
| 40 40 | 
             
                - - "~>"
         | 
| 41 41 | 
             
                  - !ruby/object:Gem::Version
         | 
| 42 42 | 
             
                    version: '4.3'
         | 
| 43 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 44 | 
            +
              name: redcarpet
         | 
| 45 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 46 | 
            +
                requirements:
         | 
| 47 | 
            +
                - - "~>"
         | 
| 48 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 49 | 
            +
                    version: '3.4'
         | 
| 50 | 
            +
              type: :runtime
         | 
| 51 | 
            +
              prerelease: false
         | 
| 52 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 53 | 
            +
                requirements:
         | 
| 54 | 
            +
                - - "~>"
         | 
| 55 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 56 | 
            +
                    version: '3.4'
         | 
| 43 57 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 44 58 | 
             
              name: decidim-admin
         | 
| 45 59 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 46 60 | 
             
                requirements:
         | 
| 47 61 | 
             
                - - '='
         | 
| 48 62 | 
             
                  - !ruby/object:Gem::Version
         | 
| 49 | 
            -
                    version: 0. | 
| 63 | 
            +
                    version: 0.22.0
         | 
| 50 64 | 
             
              type: :development
         | 
| 51 65 | 
             
              prerelease: false
         | 
| 52 66 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 53 67 | 
             
                requirements:
         | 
| 54 68 | 
             
                - - '='
         | 
| 55 69 | 
             
                  - !ruby/object:Gem::Version
         | 
| 56 | 
            -
                    version: 0. | 
| 70 | 
            +
                    version: 0.22.0
         | 
| 57 71 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 58 72 | 
             
              name: decidim-dev
         | 
| 59 73 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 60 74 | 
             
                requirements:
         | 
| 61 75 | 
             
                - - '='
         | 
| 62 76 | 
             
                  - !ruby/object:Gem::Version
         | 
| 63 | 
            -
                    version: 0. | 
| 77 | 
            +
                    version: 0.22.0
         | 
| 64 78 | 
             
              type: :development
         | 
| 65 79 | 
             
              prerelease: false
         | 
| 66 80 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 67 81 | 
             
                requirements:
         | 
| 68 82 | 
             
                - - '='
         | 
| 69 83 | 
             
                  - !ruby/object:Gem::Version
         | 
| 70 | 
            -
                    version: 0. | 
| 84 | 
            +
                    version: 0.22.0
         | 
| 71 85 | 
             
            description: Pluggable comments system for some components.
         | 
| 72 86 | 
             
            email:
         | 
| 73 87 | 
             
            - josepjaume@gmail.com
         | 
| @@ -87,9 +101,11 @@ files: | |
| 87 101 | 
             
            - app/commands/decidim/comments/create_comment.rb
         | 
| 88 102 | 
             
            - app/commands/decidim/comments/vote_comment.rb
         | 
| 89 103 | 
             
            - app/events/decidim/comments/comment_by_followed_user_event.rb
         | 
| 104 | 
            +
            - app/events/decidim/comments/comment_by_followed_user_group_event.rb
         | 
| 90 105 | 
             
            - app/events/decidim/comments/comment_created_event.rb
         | 
| 91 106 | 
             
            - app/events/decidim/comments/comment_event.rb
         | 
| 92 107 | 
             
            - app/events/decidim/comments/reply_created_event.rb
         | 
| 108 | 
            +
            - app/events/decidim/comments/user_group_mentioned_event.rb
         | 
| 93 109 | 
             
            - app/events/decidim/comments/user_mentioned_event.rb
         | 
| 94 110 | 
             
            - app/forms/decidim/comments/comment_form.rb
         | 
| 95 111 | 
             
            - app/frontend/application/apollo_client.ts
         | 
| @@ -143,6 +159,7 @@ files: | |
| 143 159 | 
             
            - app/queries/decidim/comments/metrics/comments_metric_manage.rb
         | 
| 144 160 | 
             
            - app/queries/decidim/comments/sorted_comments.rb
         | 
| 145 161 | 
             
            - app/resolvers/decidim/comments/vote_comment_resolver.rb
         | 
| 162 | 
            +
            - app/scrubbers/decidim/comments/user_input_scrubber.rb
         | 
| 146 163 | 
             
            - app/services/decidim/comments/comment_creation.rb
         | 
| 147 164 | 
             
            - app/services/decidim/comments/new_comment_notification_creator.rb
         | 
| 148 165 | 
             
            - app/types/decidim/comments/commentable_interface.rb
         | 
| @@ -150,30 +167,48 @@ files: | |
| 150 167 | 
             
            - app/types/decidim/comments/commentable_type.rb
         | 
| 151 168 | 
             
            - config/locales/ar-SA.yml
         | 
| 152 169 | 
             
            - config/locales/ar.yml
         | 
| 170 | 
            +
            - config/locales/bg-BG.yml
         | 
| 153 171 | 
             
            - config/locales/ca.yml
         | 
| 154 172 | 
             
            - config/locales/cs-CZ.yml
         | 
| 155 173 | 
             
            - config/locales/cs.yml
         | 
| 174 | 
            +
            - config/locales/da-DK.yml
         | 
| 156 175 | 
             
            - config/locales/de.yml
         | 
| 176 | 
            +
            - config/locales/el-GR.yml
         | 
| 177 | 
            +
            - config/locales/el.yml
         | 
| 157 178 | 
             
            - config/locales/en.yml
         | 
| 158 179 | 
             
            - config/locales/eo-UY.yml
         | 
| 159 180 | 
             
            - config/locales/es-MX.yml
         | 
| 160 181 | 
             
            - config/locales/es-PY.yml
         | 
| 161 182 | 
             
            - config/locales/es.yml
         | 
| 183 | 
            +
            - config/locales/et-EE.yml
         | 
| 162 184 | 
             
            - config/locales/eu.yml
         | 
| 163 185 | 
             
            - config/locales/fi-pl.yml
         | 
| 164 186 | 
             
            - config/locales/fi-plain.yml
         | 
| 165 187 | 
             
            - config/locales/fi.yml
         | 
| 188 | 
            +
            - config/locales/fr-CA.yml
         | 
| 166 189 | 
             
            - config/locales/fr.yml
         | 
| 190 | 
            +
            - config/locales/ga-IE.yml
         | 
| 167 191 | 
             
            - config/locales/gl.yml
         | 
| 192 | 
            +
            - config/locales/hr-HR.yml
         | 
| 168 193 | 
             
            - config/locales/hu.yml
         | 
| 169 194 | 
             
            - config/locales/id-ID.yml
         | 
| 195 | 
            +
            - config/locales/is-IS.yml
         | 
| 170 196 | 
             
            - config/locales/it.yml
         | 
| 197 | 
            +
            - config/locales/ja-JP.yml
         | 
| 198 | 
            +
            - config/locales/lt-LT.yml
         | 
| 199 | 
            +
            - config/locales/lv-LV.yml
         | 
| 200 | 
            +
            - config/locales/mt-MT.yml
         | 
| 171 201 | 
             
            - config/locales/nl.yml
         | 
| 172 202 | 
             
            - config/locales/no.yml
         | 
| 173 203 | 
             
            - config/locales/pl.yml
         | 
| 174 204 | 
             
            - config/locales/pt-BR.yml
         | 
| 175 205 | 
             
            - config/locales/pt.yml
         | 
| 206 | 
            +
            - config/locales/ro-RO.yml
         | 
| 176 207 | 
             
            - config/locales/ru.yml
         | 
| 208 | 
            +
            - config/locales/sk-SK.yml
         | 
| 209 | 
            +
            - config/locales/sk.yml
         | 
| 210 | 
            +
            - config/locales/sl.yml
         | 
| 211 | 
            +
            - config/locales/sr-CS.yml
         | 
| 177 212 | 
             
            - config/locales/sv.yml
         | 
| 178 213 | 
             
            - config/locales/tr-TR.yml
         | 
| 179 214 | 
             
            - config/locales/uk.yml
         | 
| @@ -188,6 +223,7 @@ files: | |
| 188 223 | 
             
            - db/migrate/20181003080320_fix_user_groups_ids_in_comments.rb
         | 
| 189 224 | 
             
            - db/migrate/20181016142511_make_authors_polymorphic_for_comments.rb
         | 
| 190 225 | 
             
            - db/migrate/20181019092928_make_author_polymorphic_for_comment_votes.rb
         | 
| 226 | 
            +
            - db/migrate/20200320105911_index_foreign_keys_in_decidim_comments_comments.rb
         | 
| 191 227 | 
             
            - db/seeds.rb
         | 
| 192 228 | 
             
            - lib/decidim/comments.rb
         | 
| 193 229 | 
             
            - lib/decidim/comments/admin.rb
         | 
| @@ -201,6 +237,7 @@ files: | |
| 201 237 | 
             
            - lib/decidim/comments/comments_helper.rb
         | 
| 202 238 | 
             
            - lib/decidim/comments/engine.rb
         | 
| 203 239 | 
             
            - lib/decidim/comments/export.rb
         | 
| 240 | 
            +
            - lib/decidim/comments/markdown.rb
         | 
| 204 241 | 
             
            - lib/decidim/comments/mutation_extensions.rb
         | 
| 205 242 | 
             
            - lib/decidim/comments/query_extensions.rb
         | 
| 206 243 | 
             
            - lib/decidim/comments/test.rb
         | 
| @@ -227,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 227 264 | 
             
                - !ruby/object:Gem::Version
         | 
| 228 265 | 
             
                  version: '0'
         | 
| 229 266 | 
             
            requirements: []
         | 
| 230 | 
            -
            rubygems_version: 3. | 
| 267 | 
            +
            rubygems_version: 3.1.2
         | 
| 231 268 | 
             
            signing_key: 
         | 
| 232 269 | 
             
            specification_version: 4
         | 
| 233 270 | 
             
            summary: Decidim comments module
         |