decidim-core 0.26.0 → 0.26.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/cells/decidim/card_m_cell.rb +1 -1
- data/app/cells/decidim/diff/diff_mode_dropdown.erb +13 -8
- data/app/cells/decidim/diff/diff_mode_html.erb +13 -8
- data/app/cells/decidim/diff/show.erb +5 -3
- data/app/cells/decidim/endorsement_buttons_cell.rb.2 +211 -0
- data/app/cells/decidim/endorsers_list/show.erb +1 -1
- data/app/cells/decidim/fingerprint/show.erb +1 -1
- data/app/cells/decidim/followers/show.erb +1 -1
- data/app/cells/decidim/following/show.erb +2 -2
- data/app/cells/decidim/groups/show.erb +1 -1
- data/app/cells/decidim/members/show.erb +1 -1
- data/app/cells/decidim/profile_sidebar/show.erb +1 -1
- data/app/cells/decidim/user_conversation/messages.erb +1 -1
- data/app/cells/decidim/user_conversation_cell.rb +4 -0
- data/app/cells/decidim/user_conversations/add_conversation_users.erb +1 -1
- data/app/cells/decidim/version_cell.rb +1 -1
- data/app/cells/decidim/versions_list_cell.rb +1 -1
- data/app/cells/decidim/versions_list_item/show.erb +2 -2
- data/app/commands/decidim/messaging/reply_to_conversation.rb +4 -1
- data/app/commands/decidim/unendorse_resource.rb +5 -4
- data/app/controllers/decidim/application_controller.rb +1 -0
- data/app/controllers/decidim/components/base_controller.rb +0 -1
- data/app/events/decidim/amendable/amendment_base_event.rb +1 -1
- data/app/forms/decidim/messaging/message_form.rb +1 -1
- data/app/helpers/decidim/endorsable_helper.rb +7 -6
- data/app/helpers/decidim/social_share_button_helper.rb +26 -0
- data/app/helpers/decidim/twitter_search_helper.rb +14 -0
- data/app/packs/entrypoints/decidim_core.js +3 -0
- data/app/packs/src/decidim/back_to_list.js +26 -0
- data/app/packs/src/decidim/dialog_mode.js +11 -99
- data/app/packs/src/decidim/dialog_mode.test.js +17 -4
- data/app/packs/src/decidim/diff_mode_dropdown.js +3 -3
- data/app/packs/src/decidim/dropdowns_menus.js +1 -0
- data/app/packs/src/decidim/focus_guard.js +142 -0
- data/app/packs/src/decidim/form_filter.js +17 -1
- data/app/packs/src/decidim/form_remote.js +38 -0
- data/app/packs/src/decidim/index.js +15 -0
- data/app/packs/src/decidim/input_character_counter.js +4 -1
- data/app/packs/src/decidim/input_emoji.js +28 -5
- data/app/packs/src/decidim/input_multiple_mentions.js +19 -0
- data/app/packs/src/decidim/vendor/social-share-button.js +174 -0
- data/app/packs/stylesheets/decidim/modules/_buttons.scss +2 -1
- data/app/packs/stylesheets/decidim/modules/_forms.scss +6 -1
- data/app/packs/stylesheets/decidim/modules/_typography.scss +2 -0
- data/app/packs/stylesheets/decidim/utils/_settings.scss +1 -0
- data/app/packs/stylesheets/decidim/vendor/_social_share_button.scss +7 -1
- data/app/presenters/decidim/menu_item_presenter.rb +9 -1
- data/app/views/decidim/account/show.html.erb +1 -1
- data/app/views/decidim/application/_collection.html.erb +2 -2
- data/app/views/decidim/endorsements/identities.html.erb +1 -1
- data/app/views/decidim/groups/new.html.erb +2 -0
- data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +1 -1
- data/app/views/decidim/messaging/conversations/_reply.html.erb +1 -1
- data/app/views/decidim/messaging/conversations/_start.html.erb +1 -1
- data/app/views/decidim/messaging/conversations/create.js.erb +1 -0
- data/app/views/layouts/decidim/_language_chooser.html.erb +9 -2
- data/app/views/layouts/decidim/_logo.html.erb +1 -1
- data/config/initializers/devise.rb +7 -19
- data/config/locales/ar.yml +55 -0
- data/config/locales/cs.yml +8 -0
- data/config/locales/de.yml +12 -1
- data/config/locales/en.yml +8 -0
- data/config/locales/fi-plain.yml +7 -0
- data/config/locales/fi.yml +8 -0
- data/config/locales/fr-CA.yml +8 -0
- data/config/locales/fr.yml +8 -0
- data/config/locales/gl.yml +10 -0
- data/config/locales/hu.yml +10 -0
- data/config/locales/it.yml +1 -0
- data/config/locales/ja.yml +13 -5
- data/db/seeds.rb +2 -2
- data/lib/decidim/content_renderers/link_renderer.rb +1 -1
- data/lib/decidim/core/engine.rb +43 -0
- data/lib/decidim/core/test/shared_examples/amendable/amendment_accepted_event_examples.rb +0 -1
- data/lib/decidim/core/test/shared_examples/amendable/amendment_created_event_examples.rb +0 -1
- data/lib/decidim/core/test/shared_examples/amendable/amendment_promoted_event_examples.rb +0 -1
- data/lib/decidim/core/test/shared_examples/amendable/amendment_rejected_event_examples.rb +0 -1
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +27 -0
- data/lib/decidim/core/test/shared_examples/conversations_examples.rb +19 -0
- data/lib/decidim/core/test/shared_examples/endorsable.rb +69 -0
- data/lib/decidim/core/test.rb +2 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/endorsable.rb +5 -1
- data/lib/decidim/middleware/rails_cookies.rb +23 -0
- data/lib/decidim/social_share/service.rb +33 -0
- data/lib/decidim/social_share/service_registry.rb +63 -0
- data/lib/decidim/social_share.rb +45 -0
- data/lib/decidim/view_model.rb +0 -1
- metadata +19 -8
- data/app/helpers/decidim/filter_params_helper.rb +0 -30
- data/config/initializers/mail_previews.rb +0 -5
data/lib/decidim/core/version.rb
CHANGED
data/lib/decidim/endorsable.rb
CHANGED
@@ -18,7 +18,11 @@ module Decidim
|
|
18
18
|
#
|
19
19
|
# Returns Boolean.
|
20
20
|
def endorsed_by?(user, user_group = nil)
|
21
|
-
|
21
|
+
if user_group
|
22
|
+
endorsements.where(user_group: user_group).any?
|
23
|
+
else
|
24
|
+
endorsements.where(author: user, user_group: nil).any?
|
25
|
+
end
|
22
26
|
end
|
23
27
|
end
|
24
28
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This is a backport for Rails 6.0 for the Same-Site option for the cookies
|
4
|
+
# because this option was added in Rails 6.1.
|
5
|
+
#
|
6
|
+
# See:
|
7
|
+
# https://github.com/decidim/decidim/pull/9051
|
8
|
+
# https://github.com/rails/rails/issues/35822
|
9
|
+
# https://github.com/rails/rails/commit/7ccaa125ba396d418aad1b217b63653d06044680
|
10
|
+
module ActionDispatch
|
11
|
+
class Cookies
|
12
|
+
class CookieJar #:nodoc:
|
13
|
+
alias handle_options_original handle_options
|
14
|
+
|
15
|
+
def handle_options(options)
|
16
|
+
handle_options_original(options)
|
17
|
+
|
18
|
+
options[:same_site] ||= Rails.application.config.action_dispatch.cookies_same_site_protection || :lax
|
19
|
+
options[:same_site] = false if options[:same_site] == :none
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module SocialShare
|
5
|
+
# This class represents an abstract social network.
|
6
|
+
class Service
|
7
|
+
include Decidim::AttributeObject::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
|
10
|
+
# The name of the social networking service.
|
11
|
+
attribute :name, String
|
12
|
+
|
13
|
+
# The icon of the social networking service.
|
14
|
+
attribute :icon, String
|
15
|
+
|
16
|
+
# The share_url of the social networking service.
|
17
|
+
attribute :share_uri, String
|
18
|
+
|
19
|
+
# TODO validate #{url} in share_url
|
20
|
+
|
21
|
+
def formatted_share_uri(title, **args)
|
22
|
+
format(share_uri, title: title, **args)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Public: Returns an image of the icon for this social network.
|
26
|
+
#
|
27
|
+
# Returns a String with the icon.
|
28
|
+
def icon_path
|
29
|
+
ActionController::Base.helpers.asset_pack_path("media/images/#{icon}")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module SocialShare
|
5
|
+
# This class represents a repository of social networking services. New services can be
|
6
|
+
# registered thanks to its DSL and will be validated prior to being
|
7
|
+
# inserted.
|
8
|
+
#
|
9
|
+
class ServiceRegistry
|
10
|
+
# Public: Initializes the social networking service.
|
11
|
+
def initialize
|
12
|
+
@services = {}
|
13
|
+
end
|
14
|
+
|
15
|
+
# Public: Returns all the registered social networking services.
|
16
|
+
#
|
17
|
+
# Returns Array<Service>.
|
18
|
+
def all
|
19
|
+
@services.values
|
20
|
+
end
|
21
|
+
|
22
|
+
# Public: Finds a social networking services given its name.
|
23
|
+
#
|
24
|
+
# name - The name of the service to find.
|
25
|
+
#
|
26
|
+
# Returns a Service if found or nil otherwise.
|
27
|
+
def find(name)
|
28
|
+
@services[name.to_s]
|
29
|
+
end
|
30
|
+
|
31
|
+
# Public: Registers a new social networking service.
|
32
|
+
#
|
33
|
+
# name - The name of the social network to register.
|
34
|
+
# &block - A block that gets the new social network as argument.
|
35
|
+
#
|
36
|
+
# Example:
|
37
|
+
# register(:fake){ |service| service.image = "twitter.svg" }
|
38
|
+
#
|
39
|
+
# Returns a Service when registered successfully, raises an exception
|
40
|
+
# otherwise.
|
41
|
+
def register(name, &block)
|
42
|
+
name = name.to_s
|
43
|
+
|
44
|
+
service = Service.new(name: name).tap do |object|
|
45
|
+
object.instance_eval(&block)
|
46
|
+
end
|
47
|
+
|
48
|
+
service.validate!
|
49
|
+
|
50
|
+
@services[name] = service
|
51
|
+
end
|
52
|
+
|
53
|
+
# Public: Unregisters a previously registered social network.
|
54
|
+
#
|
55
|
+
# name - The name of the social network to unregister.
|
56
|
+
#
|
57
|
+
# Returns the deleted Service if found, nil otherwise.
|
58
|
+
def unregister(name)
|
59
|
+
@services.delete(name.to_s)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module SocialShare
|
5
|
+
autoload :Service, "decidim/social_share/service"
|
6
|
+
autoload :ServiceRegistry, "decidim/social_share/service_registry"
|
7
|
+
|
8
|
+
# Semi-private: The ServiceRegistry to register global services to.
|
9
|
+
def self.service_registry
|
10
|
+
@service_registry ||= Decidim::SocialShare::ServiceRegistry.new
|
11
|
+
end
|
12
|
+
|
13
|
+
# Public: Returns all available services.
|
14
|
+
#
|
15
|
+
# Returns an Array<Service>
|
16
|
+
def self.services
|
17
|
+
service_registry.all
|
18
|
+
end
|
19
|
+
|
20
|
+
# Public: Finds a Service given a name.
|
21
|
+
#
|
22
|
+
# Returns a Service if found, nil otherwise.
|
23
|
+
def self.find_service(name)
|
24
|
+
service_registry.find(name)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Public: Registers a new Service.
|
28
|
+
#
|
29
|
+
# Example:
|
30
|
+
#
|
31
|
+
# Decidim.register_service(:foo) do |service|
|
32
|
+
# service.levels = [1, 10, 50]
|
33
|
+
# end
|
34
|
+
#
|
35
|
+
# Returns nothing if registered successfully, raises an exception
|
36
|
+
# otherwise.
|
37
|
+
def self.register_service(name, &block)
|
38
|
+
service_registry.register(name, &block)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.enabled_services
|
42
|
+
services.select { |s| Decidim.config.social_share_services.include?(s.name) }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/decidim/view_model.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.26.
|
4
|
+
version: 0.26.1
|
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: 2022-
|
13
|
+
date: 2022-03-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: active_link_to
|
@@ -754,28 +754,28 @@ dependencies:
|
|
754
754
|
requirements:
|
755
755
|
- - '='
|
756
756
|
- !ruby/object:Gem::Version
|
757
|
-
version: 0.26.
|
757
|
+
version: 0.26.1
|
758
758
|
type: :runtime
|
759
759
|
prerelease: false
|
760
760
|
version_requirements: !ruby/object:Gem::Requirement
|
761
761
|
requirements:
|
762
762
|
- - '='
|
763
763
|
- !ruby/object:Gem::Version
|
764
|
-
version: 0.26.
|
764
|
+
version: 0.26.1
|
765
765
|
- !ruby/object:Gem::Dependency
|
766
766
|
name: decidim-dev
|
767
767
|
requirement: !ruby/object:Gem::Requirement
|
768
768
|
requirements:
|
769
769
|
- - '='
|
770
770
|
- !ruby/object:Gem::Version
|
771
|
-
version: 0.26.
|
771
|
+
version: 0.26.1
|
772
772
|
type: :development
|
773
773
|
prerelease: false
|
774
774
|
version_requirements: !ruby/object:Gem::Requirement
|
775
775
|
requirements:
|
776
776
|
- - '='
|
777
777
|
- !ruby/object:Gem::Version
|
778
|
-
version: 0.26.
|
778
|
+
version: 0.26.1
|
779
779
|
description: Adds core features so other engines can hook into the framework.
|
780
780
|
email:
|
781
781
|
- josepjaume@gmail.com
|
@@ -886,6 +886,7 @@ files:
|
|
886
886
|
- app/cells/decidim/endorsement_buttons/select_identity_button.erb
|
887
887
|
- app/cells/decidim/endorsement_buttons/show.erb
|
888
888
|
- app/cells/decidim/endorsement_buttons_cell.rb
|
889
|
+
- app/cells/decidim/endorsement_buttons_cell.rb.2
|
889
890
|
- app/cells/decidim/endorsers_list/show.erb
|
890
891
|
- app/cells/decidim/endorsers_list_cell.rb
|
891
892
|
- app/cells/decidim/fingerprint/show.erb
|
@@ -1188,7 +1189,6 @@ files:
|
|
1188
1189
|
- app/helpers/decidim/decidim_form_helper.rb
|
1189
1190
|
- app/helpers/decidim/endorsable_helper.rb
|
1190
1191
|
- app/helpers/decidim/external_domain_helper.rb
|
1191
|
-
- app/helpers/decidim/filter_params_helper.rb
|
1192
1192
|
- app/helpers/decidim/filters_helper.rb
|
1193
1193
|
- app/helpers/decidim/followable_helper.rb
|
1194
1194
|
- app/helpers/decidim/humanize_booleans_helper.rb
|
@@ -1215,9 +1215,11 @@ files:
|
|
1215
1215
|
- app/helpers/decidim/sanitize_helper.rb
|
1216
1216
|
- app/helpers/decidim/scopes_helper.rb
|
1217
1217
|
- app/helpers/decidim/searches_helper.rb
|
1218
|
+
- app/helpers/decidim/social_share_button_helper.rb
|
1218
1219
|
- app/helpers/decidim/tooltip_helper.rb
|
1219
1220
|
- app/helpers/decidim/traceability_helper.rb
|
1220
1221
|
- app/helpers/decidim/translations_helper.rb
|
1222
|
+
- app/helpers/decidim/twitter_search_helper.rb
|
1221
1223
|
- app/helpers/decidim/user_group_helper.rb
|
1222
1224
|
- app/helpers/decidim/user_profile_helper.rb
|
1223
1225
|
- app/helpers/decidim/view_hooks_helper.rb
|
@@ -1382,6 +1384,7 @@ files:
|
|
1382
1384
|
- app/packs/src/decidim/ajax_modals.js
|
1383
1385
|
- app/packs/src/decidim/append_elements.js
|
1384
1386
|
- app/packs/src/decidim/append_redirect_url_to_modals.js
|
1387
|
+
- app/packs/src/decidim/back_to_list.js
|
1385
1388
|
- app/packs/src/decidim/callout.js
|
1386
1389
|
- app/packs/src/decidim/check_boxes_tree.js
|
1387
1390
|
- app/packs/src/decidim/clipboard.js
|
@@ -1406,11 +1409,13 @@ files:
|
|
1406
1409
|
- app/packs/src/decidim/external_domain_warning.js
|
1407
1410
|
- app/packs/src/decidim/external_link.js
|
1408
1411
|
- app/packs/src/decidim/floating_help.js
|
1412
|
+
- app/packs/src/decidim/focus_guard.js
|
1409
1413
|
- app/packs/src/decidim/form_attachments.js
|
1410
1414
|
- app/packs/src/decidim/form_datepicker.js
|
1411
1415
|
- app/packs/src/decidim/form_filter.component.test.js
|
1412
1416
|
- app/packs/src/decidim/form_filter.component_for_testing.js
|
1413
1417
|
- app/packs/src/decidim/form_filter.js
|
1418
|
+
- app/packs/src/decidim/form_remote.js
|
1414
1419
|
- app/packs/src/decidim/form_validator.js
|
1415
1420
|
- app/packs/src/decidim/foundation-datepicker/js/locales/foundation-datepicker.lb.js
|
1416
1421
|
- app/packs/src/decidim/foundation_datepicker_locales.js
|
@@ -1461,6 +1466,7 @@ files:
|
|
1461
1466
|
- app/packs/src/decidim/vendor/jquery-tmpl.js
|
1462
1467
|
- app/packs/src/decidim/vendor/leaflet-tilelayer-here.js
|
1463
1468
|
- app/packs/src/decidim/vendor/modernizr.js
|
1469
|
+
- app/packs/src/decidim/vendor/social-share-button.js
|
1464
1470
|
- app/packs/src/decidim/vendor/tribute.js
|
1465
1471
|
- app/packs/src/decidim/vizzs.js
|
1466
1472
|
- app/packs/src/decidim/vizzs/areachart.js
|
@@ -1938,7 +1944,6 @@ files:
|
|
1938
1944
|
- config/initializers/devise.rb
|
1939
1945
|
- config/initializers/foundation_rails_helper.rb
|
1940
1946
|
- config/initializers/invisible_captcha.rb
|
1941
|
-
- config/initializers/mail_previews.rb
|
1942
1947
|
- config/initializers/omniauth.rb
|
1943
1948
|
- config/initializers/rack_attack.rb
|
1944
1949
|
- config/locales/am-ET.yml
|
@@ -2350,9 +2355,11 @@ files:
|
|
2350
2355
|
- lib/decidim/core/test/shared_examples/comments_reports_examples.rb
|
2351
2356
|
- lib/decidim/core/test/shared_examples/component_type.rb
|
2352
2357
|
- lib/decidim/core/test/shared_examples/controller_render_views.rb
|
2358
|
+
- lib/decidim/core/test/shared_examples/conversations_examples.rb
|
2353
2359
|
- lib/decidim/core/test/shared_examples/counts_commentators_as_newsletter_participants.rb
|
2354
2360
|
- lib/decidim/core/test/shared_examples/edit_link_shared_examples.rb
|
2355
2361
|
- lib/decidim/core/test/shared_examples/embed_resource_examples.rb
|
2362
|
+
- lib/decidim/core/test/shared_examples/endorsable.rb
|
2356
2363
|
- lib/decidim/core/test/shared_examples/endorsable_interface_examples.rb
|
2357
2364
|
- lib/decidim/core/test/shared_examples/endorsements_controller_shared_context.rb
|
2358
2365
|
- lib/decidim/core/test/shared_examples/errors.rb
|
@@ -2498,6 +2505,7 @@ files:
|
|
2498
2505
|
- lib/decidim/metric_operation_manifest.rb
|
2499
2506
|
- lib/decidim/metric_registry.rb
|
2500
2507
|
- lib/decidim/middleware/current_organization.rb
|
2508
|
+
- lib/decidim/middleware/rails_cookies.rb
|
2501
2509
|
- lib/decidim/middleware/strip_x_forwarded_host.rb
|
2502
2510
|
- lib/decidim/newsletter_encryptor.rb
|
2503
2511
|
- lib/decidim/newsletter_participant.rb
|
@@ -2526,6 +2534,9 @@ files:
|
|
2526
2534
|
- lib/decidim/settings_manifest.rb
|
2527
2535
|
- lib/decidim/shareable_with_token.rb
|
2528
2536
|
- lib/decidim/snippets.rb
|
2537
|
+
- lib/decidim/social_share.rb
|
2538
|
+
- lib/decidim/social_share/service.rb
|
2539
|
+
- lib/decidim/social_share/service_registry.rb
|
2529
2540
|
- lib/decidim/stats_registry.rb
|
2530
2541
|
- lib/decidim/traceable.rb
|
2531
2542
|
- lib/decidim/translatable_attributes.rb
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
# A helper to allow only Decidim params to be added to a link.
|
5
|
-
# This is useful when we want to preserve the params from a search, ordering
|
6
|
-
# or paginating results. Using this, we can link back to where the user was
|
7
|
-
# at the show page.
|
8
|
-
module FilterParamsHelper
|
9
|
-
# Public: Builds a hash to be added to a _path or _url method with only
|
10
|
-
# allowed params.
|
11
|
-
#
|
12
|
-
# params - An optional Hash with the values of the params. It will try to
|
13
|
-
# get them from the controller if none are present.
|
14
|
-
#
|
15
|
-
# Returns a Hash.
|
16
|
-
def filter_link_params(params = nil)
|
17
|
-
return {} if params.blank? && (!respond_to?(:controller) || !controller.respond_to?(:params))
|
18
|
-
|
19
|
-
params = controller.params.to_unsafe_h if params.blank?
|
20
|
-
|
21
|
-
params.stringify_keys.slice(
|
22
|
-
"order",
|
23
|
-
"filter",
|
24
|
-
"page",
|
25
|
-
"per_page",
|
26
|
-
"locale"
|
27
|
-
)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|