decidim-core 0.26.8 → 0.26.10
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/cells/decidim/version_cell.rb +1 -1
- data/app/cells/decidim/versions_list_cell.rb +1 -1
- data/app/commands/decidim/endorse_resource.rb +2 -0
- data/app/commands/decidim/unendorse_resource.rb +1 -1
- data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
- data/app/controllers/decidim/links_controller.rb +1 -1
- data/app/controllers/decidim/user_timeline_controller.rb +1 -1
- data/app/forms/decidim/account_form.rb +1 -1
- data/app/forms/decidim/notifications_settings_form.rb +0 -8
- data/app/forms/decidim/registration_form.rb +1 -1
- data/app/helpers/decidim/resource_helper.rb +2 -0
- data/app/jobs/decidim/data_portability_export_job.rb +3 -0
- data/app/jobs/decidim/open_data_job.rb +2 -0
- data/app/models/decidim/user.rb +9 -1
- data/app/packs/src/decidim/geocoding/attach_input.js +4 -1
- data/app/packs/src/decidim/geocoding/provider/here.js +17 -21
- data/app/packs/src/decidim/geocoding/provider/photon.js +1 -1
- data/app/views/decidim/notifications_settings/show.html.erb +1 -1
- data/config/environment.rb +3 -0
- data/config/locales/ar.yml +8 -13
- data/config/locales/bg.yml +0 -16
- data/config/locales/ca.yml +8 -5
- data/config/locales/cs.yml +15 -12
- data/config/locales/de.yml +37 -34
- data/config/locales/el.yml +6 -12
- data/config/locales/en.yml +3 -0
- data/config/locales/eo.yml +2 -3
- data/config/locales/es-MX.yml +11 -8
- data/config/locales/es-PY.yml +11 -8
- data/config/locales/es.yml +7 -4
- data/config/locales/eu.yml +379 -339
- data/config/locales/fi-plain.yml +5 -2
- data/config/locales/fi.yml +16 -13
- data/config/locales/fr-CA.yml +12 -9
- data/config/locales/fr.yml +7 -4
- data/config/locales/ga-IE.yml +0 -5
- data/config/locales/gl.yml +2 -17
- data/config/locales/hu.yml +9 -13
- data/config/locales/id-ID.yml +0 -19
- data/config/locales/is-IS.yml +1 -2
- data/config/locales/it.yml +8 -13
- data/config/locales/ja.yml +20 -18
- data/config/locales/lb.yml +8 -13
- data/config/locales/lt.yml +52 -7
- data/config/locales/lv.yml +0 -16
- data/config/locales/nl.yml +6 -11
- data/config/locales/no.yml +1 -6
- data/config/locales/pl.yml +14 -5
- data/config/locales/pt-BR.yml +49 -6
- data/config/locales/pt.yml +1 -6
- data/config/locales/ro-RO.yml +1 -6
- data/config/locales/ru.yml +0 -17
- data/config/locales/sk.yml +1 -17
- data/config/locales/sl.yml +0 -5
- data/config/locales/sq-AL.yml +1 -0
- data/config/locales/sv.yml +22 -12
- data/config/locales/th-TH.yml +1 -0
- data/config/locales/tr-TR.yml +9 -11
- data/config/locales/uk.yml +0 -14
- data/config/locales/zh-CN.yml +0 -6
- data/config/locales/zh-TW.yml +0 -5
- data/db/migrate/20231027142329_change_default_value_for_decidim_endorsements.rb +11 -0
- data/db/seeds.rb +1 -0
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +24 -0
- data/lib/decidim/core/test/shared_examples/errors.rb +2 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/core.rb +1 -1
- data/lib/decidim/dependency_resolver.rb +14 -8
- data/lib/decidim/endorsable.rb +1 -1
- data/lib/decidim/exporters.rb +10 -1
- data/lib/tasks/upgrade/decidim_deduplicate_endorsements.rake +53 -0
- metadata +10 -9
- data/app/helpers/decidim/layout_helper.rb.orig +0 -225
- data/app/packs/stylesheets/decidim/modules/_dropdown_menu.scss +0 -9
- data/app/views/decidim/devise/registrations/new.html.erb.orig +0 -231
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
namespace :decidim do
|
4
|
+
namespace :upgrade do
|
5
|
+
desc "Remove duplicated endorsements"
|
6
|
+
task fix_duplicate_endorsements: :environment do
|
7
|
+
logger = Logger.new($stdout)
|
8
|
+
logger.info("Removing duplicate endorsements...")
|
9
|
+
has_count = 0
|
10
|
+
|
11
|
+
columns = [:resource_type, :resource_id, :decidim_author_type, :decidim_author_id, :decidim_user_group_id]
|
12
|
+
|
13
|
+
get_duplicates(columns).each do |issue|
|
14
|
+
while row_count(issue) > 1
|
15
|
+
find_next(issue)&.destroy
|
16
|
+
has_count += 1
|
17
|
+
logger.info("Removed duplicate endorsement for #{issue.resource_type} #{issue.resource_id}")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
logger.info("Patch remaining endorsements.")
|
22
|
+
Decidim::Endorsement.where(decidim_user_group_id: nil).update(decidim_user_group_id: 0)
|
23
|
+
logger.info("Process terminated, #{has_count} endorsements have been removed.")
|
24
|
+
logger.info("Done")
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def get_duplicates(*columns)
|
30
|
+
Decidim::Endorsement.select("#{columns.join(",")}, COUNT(*)").group(columns).having("COUNT(*) > 1")
|
31
|
+
end
|
32
|
+
|
33
|
+
def row_count(issue)
|
34
|
+
Decidim::Endorsement.where(
|
35
|
+
resource_type: issue.resource_type,
|
36
|
+
resource_id: issue.resource_id,
|
37
|
+
decidim_author_type: issue.decidim_author_type,
|
38
|
+
decidim_author_id: issue.decidim_author_id,
|
39
|
+
decidim_user_group_id: issue.decidim_user_group_id
|
40
|
+
).count
|
41
|
+
end
|
42
|
+
|
43
|
+
def find_next(issue)
|
44
|
+
Decidim::Endorsement.find_by(
|
45
|
+
resource_type: issue.resource_type,
|
46
|
+
resource_id: issue.resource_id,
|
47
|
+
decidim_author_type: issue.decidim_author_type,
|
48
|
+
decidim_author_id: issue.decidim_author_id,
|
49
|
+
decidim_user_group_id: issue.decidim_user_group_id
|
50
|
+
)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
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.10
|
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: 2024-04-30 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.10
|
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.10
|
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.10
|
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.10
|
779
779
|
description: Adds core features so other engines can hook into the framework.
|
780
780
|
email:
|
781
781
|
- josepjaume@gmail.com
|
@@ -1195,7 +1195,6 @@ files:
|
|
1195
1195
|
- app/helpers/decidim/icon_helper.rb
|
1196
1196
|
- app/helpers/decidim/language_chooser_helper.rb
|
1197
1197
|
- app/helpers/decidim/layout_helper.rb
|
1198
|
-
- app/helpers/decidim/layout_helper.rb.orig
|
1199
1198
|
- app/helpers/decidim/localized_locales_helper.rb
|
1200
1199
|
- app/helpers/decidim/map_helper.rb
|
1201
1200
|
- app/helpers/decidim/markup_helper.rb
|
@@ -1531,7 +1530,6 @@ files:
|
|
1531
1530
|
- app/packs/stylesheets/decidim/modules/_datepicker.scss
|
1532
1531
|
- app/packs/stylesheets/decidim/modules/_definition-data.scss
|
1533
1532
|
- app/packs/stylesheets/decidim/modules/_docs-manager.scss
|
1534
|
-
- app/packs/stylesheets/decidim/modules/_dropdown_menu.scss
|
1535
1533
|
- app/packs/stylesheets/decidim/modules/_extra.scss
|
1536
1534
|
- app/packs/stylesheets/decidim/modules/_filter-tags.scss
|
1537
1535
|
- app/packs/stylesheets/decidim/modules/_filters.scss
|
@@ -1778,7 +1776,6 @@ files:
|
|
1778
1776
|
- app/views/decidim/devise/passwords/edit.html.erb
|
1779
1777
|
- app/views/decidim/devise/passwords/new.html.erb
|
1780
1778
|
- app/views/decidim/devise/registrations/new.html.erb
|
1781
|
-
- app/views/decidim/devise/registrations/new.html.erb.orig
|
1782
1779
|
- app/views/decidim/devise/sessions/new.html.erb
|
1783
1780
|
- app/views/decidim/devise/shared/_links.html.erb
|
1784
1781
|
- app/views/decidim/devise/shared/_newsletter_modal.html.erb
|
@@ -2018,9 +2015,11 @@ files:
|
|
2018
2015
|
- config/locales/sk.yml
|
2019
2016
|
- config/locales/sl.yml
|
2020
2017
|
- config/locales/so-SO.yml
|
2018
|
+
- config/locales/sq-AL.yml
|
2021
2019
|
- config/locales/sr-CS.yml
|
2022
2020
|
- config/locales/sv.yml
|
2023
2021
|
- config/locales/sw-KE.yml
|
2022
|
+
- config/locales/th-TH.yml
|
2024
2023
|
- config/locales/ti-ER.yml
|
2025
2024
|
- config/locales/tr-TR.yml
|
2026
2025
|
- config/locales/uk.yml
|
@@ -2225,6 +2224,7 @@ files:
|
|
2225
2224
|
- db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
|
2226
2225
|
- db/migrate/20210730112319_create_decidim_editor_images.rb
|
2227
2226
|
- db/migrate/20211126183540_add_timestamps_to_content_blocks.rb
|
2227
|
+
- db/migrate/20231027142329_change_default_value_for_decidim_endorsements.rb
|
2228
2228
|
- db/seeds.rb
|
2229
2229
|
- db/seeds/homepage_image.jpg
|
2230
2230
|
- lib/decidim/action_authorization.rb
|
@@ -2582,6 +2582,7 @@ files:
|
|
2582
2582
|
- lib/tasks/decidim_open_data_tasks.rake
|
2583
2583
|
- lib/tasks/decidim_tasks.rake
|
2584
2584
|
- lib/tasks/decidim_webpacker_tasks.rake
|
2585
|
+
- lib/tasks/upgrade/decidim_deduplicate_endorsements.rake
|
2585
2586
|
- lib/tasks/upgrade/decidim_moderation_tasks.rake
|
2586
2587
|
- lib/tasks/upgrade/decidim_user_moderation.rake
|
2587
2588
|
homepage: https://github.com/decidim/decidim
|
@@ -1,225 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
# View helpers related to the layout.
|
5
|
-
module LayoutHelper
|
6
|
-
include Decidim::ModalHelper
|
7
|
-
include Decidim::TooltipHelper
|
8
|
-
|
9
|
-
# Public: Generates a set of meta tags that generate the different favicon
|
10
|
-
# versions for an organization.
|
11
|
-
#
|
12
|
-
# Returns a safe String with the versions.
|
13
|
-
def favicon
|
14
|
-
return if current_organization.favicon.blank?
|
15
|
-
|
16
|
-
safe_join(Decidim::OrganizationFaviconUploader::SIZES.map do |version, size|
|
17
|
-
favicon_link_tag(current_organization.attached_uploader(:favicon).variant_url(version, host: current_organization.host), sizes: "#{size}x#{size}")
|
18
|
-
end)
|
19
|
-
end
|
20
|
-
|
21
|
-
def apple_favicon
|
22
|
-
icon_image = current_organization.attached_uploader(:favicon).variant_url(:medium, host: current_organization.host)
|
23
|
-
return unless icon_image
|
24
|
-
|
25
|
-
favicon_link_tag(icon_image, rel: "apple-touch-icon", type: "image/png")
|
26
|
-
end
|
27
|
-
|
28
|
-
def legacy_favicon
|
29
|
-
variant = :favicon if current_organization.favicon.content_type != "image/vnd.microsoft.icon"
|
30
|
-
icon_image = current_organization.attached_uploader(:favicon).variant_url(variant, host: current_organization.host)
|
31
|
-
return unless icon_image
|
32
|
-
|
33
|
-
favicon_link_tag(icon_image, rel: "icon", sizes: "any", type: nil)
|
34
|
-
end
|
35
|
-
|
36
|
-
# Outputs an SVG-based icon.
|
37
|
-
#
|
38
|
-
# name - The String with the icon name.
|
39
|
-
# options - The Hash options used to customize the icon (default {}):
|
40
|
-
# :width - The Number of width in pixels (optional).
|
41
|
-
# :height - The Number of height in pixels (optional).
|
42
|
-
# :title - The title for the SVG element (optional, similar to alt for img)
|
43
|
-
# :aria_label - The String to set as aria label (optional).
|
44
|
-
# :aria_hidden - The Truthy value to enable aria_hidden (optional).
|
45
|
-
# :role - The String to set as the role (optional).
|
46
|
-
# :class - The String to add as a CSS class (optional).
|
47
|
-
#
|
48
|
-
# Returns a String.
|
49
|
-
def redesigned_icon(name, options = {})
|
50
|
-
default_html_properties = {
|
51
|
-
"width" => "1em",
|
52
|
-
"height" => "1em",
|
53
|
-
"role" => "img",
|
54
|
-
"aria-hidden" => "true"
|
55
|
-
}
|
56
|
-
|
57
|
-
html_properties = options.with_indifferent_access.transform_keys(&:dasherize).slice("width", "height", "aria-label", "role", "aria-hidden", "class", "style")
|
58
|
-
html_properties = default_html_properties.merge(html_properties)
|
59
|
-
|
60
|
-
href = Decidim.cors_enabled ? "" : asset_pack_path("media/images/remixicon.symbol.svg")
|
61
|
-
|
62
|
-
content_tag :svg, html_properties do
|
63
|
-
content_tag :use, nil, "href" => "#{href}#ri-#{name}", tabindex: -1
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def legacy_icon(name, options = {})
|
68
|
-
options = options.with_indifferent_access
|
69
|
-
html_properties = {}
|
70
|
-
|
71
|
-
html_properties["width"] = options[:width]
|
72
|
-
html_properties["height"] = options[:height]
|
73
|
-
html_properties["aria-label"] = options[:aria_label] || options[:"aria-label"]
|
74
|
-
html_properties["role"] = options[:role] || "img"
|
75
|
-
html_properties["aria-hidden"] = options[:aria_hidden] || options[:"aria-hidden"]
|
76
|
-
|
77
|
-
html_properties["class"] = (["icon--#{name}"] + _icon_classes(options)).join(" ")
|
78
|
-
|
79
|
-
title = options["title"] || html_properties["aria-label"]
|
80
|
-
if title.blank? && html_properties["role"] == "img"
|
81
|
-
# This will make the accessibility audit tools happy as with the "img"
|
82
|
-
# role, the alternative text (aria-label) and title are required for the
|
83
|
-
# element. This will also force the SVG to be hidden because otherwise
|
84
|
-
# the screen reader would announce the icon name which can be in
|
85
|
-
# different language (English) than the page language which is not
|
86
|
-
# allowed.
|
87
|
-
title = name
|
88
|
-
html_properties["aria-label"] = title
|
89
|
-
html_properties["aria-hidden"] = true
|
90
|
-
end
|
91
|
-
|
92
|
-
href = Decidim.cors_enabled ? "" : asset_pack_path("media/images/icons.svg")
|
93
|
-
|
94
|
-
content_tag :svg, html_properties do
|
95
|
-
inner = content_tag :title, title
|
96
|
-
inner += content_tag :use, nil, "href" => "#{href}#icon-#{name}"
|
97
|
-
|
98
|
-
inner
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
def icon(*args)
|
103
|
-
redesign_enabled? ? redesigned_icon(*args) : legacy_icon(*args)
|
104
|
-
end
|
105
|
-
|
106
|
-
# Outputs a SVG icon from an external file. It apparently renders an image
|
107
|
-
# tag, but then a JS script kicks in and replaces it with an inlined SVG
|
108
|
-
# version.
|
109
|
-
#
|
110
|
-
# path - The asset's path
|
111
|
-
#
|
112
|
-
# Returns an <img /> tag with the SVG icon.
|
113
|
-
def external_icon(path, options = {})
|
114
|
-
classes = _icon_classes(options) + ["external-icon"]
|
115
|
-
|
116
|
-
if path.split(".").last == "svg"
|
117
|
-
icon_path = application_path(path)
|
118
|
-
return unless icon_path
|
119
|
-
|
120
|
-
attributes = { class: classes.join(" ") }.merge(options)
|
121
|
-
asset = File.read(icon_path)
|
122
|
-
asset.gsub("<svg ", "<svg#{tag_builder.tag_options(attributes)} ").html_safe
|
123
|
-
else
|
124
|
-
image_pack_tag(path, class: classes.join(" "), style: "display: none")
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
def application_path(path)
|
129
|
-
# Force the path to be returned without the protocol and host even when a
|
130
|
-
# custom asset host has been defined. The host parameter needs to be a
|
131
|
-
# non-nil because otherwise it will be set to the asset host at
|
132
|
-
# ActionView::Helpers::AssetUrlHelper#compute_asset_host.
|
133
|
-
img_path = asset_pack_path(path, host: "", protocol: :relative)
|
134
|
-
path = Rails.public_path.join(img_path.sub(%r{^/}, ""))
|
135
|
-
return unless File.exist?(path)
|
136
|
-
|
137
|
-
path
|
138
|
-
rescue ::Webpacker::Manifest::MissingEntryError
|
139
|
-
nil
|
140
|
-
end
|
141
|
-
|
142
|
-
# Allows to create role attribute according to accessibility rules
|
143
|
-
#
|
144
|
-
# Returns role attribute string if role option is specified
|
145
|
-
def role(options = {})
|
146
|
-
"role=\"#{options[:role]}\" " if options[:role]
|
147
|
-
end
|
148
|
-
|
149
|
-
def _icon_classes(options = {})
|
150
|
-
classes = options[:remove_icon_class] ? [] : ["icon"]
|
151
|
-
classes += [options[:class]]
|
152
|
-
classes.compact
|
153
|
-
end
|
154
|
-
|
155
|
-
def extended_navigation_bar(items, max_items: 5)
|
156
|
-
return unless items.any?
|
157
|
-
|
158
|
-
extra_items = items.slice((max_items + 1)..-1) || []
|
159
|
-
active_item = items.find { |item| item[:active] }
|
160
|
-
|
161
|
-
controller.view_context.render partial: "decidim/shared/extended_navigation_bar", locals: {
|
162
|
-
items:,
|
163
|
-
extra_items:,
|
164
|
-
active_item:,
|
165
|
-
max_items:
|
166
|
-
}
|
167
|
-
end
|
168
|
-
|
169
|
-
# Renders a view with the customizable CSS variables in two flavours:
|
170
|
-
# 1. as a hexadecimal valid CSS color (ie: #ff0000)
|
171
|
-
# 2. as a disassembled RGB components (ie: 255 0 0)
|
172
|
-
#
|
173
|
-
# Example:
|
174
|
-
#
|
175
|
-
# --primary: #ff0000;
|
176
|
-
# --primary-rgb: 255,0,0
|
177
|
-
#
|
178
|
-
# Hexadecimal variables can be used as a normal CSS color:
|
179
|
-
#
|
180
|
-
# color: var(--primary)
|
181
|
-
#
|
182
|
-
# While the disassembled variant can be used where you need to manipulate
|
183
|
-
# the color somehow (ie: adding a background transparency):
|
184
|
-
#
|
185
|
-
# background-color: rgba(var(--primary-rgb), 0.5)
|
186
|
-
def organization_colors
|
187
|
-
css = current_organization.colors.each.map { |k, v| "--#{k}: #{v};--#{k}-rgb: #{v[1..2].hex} #{v[3..4].hex} #{v[5..6].hex};" }.join
|
188
|
-
render partial: "layouts/decidim/organization_colors", locals: { css: }
|
189
|
-
end
|
190
|
-
|
191
|
-
<<<<<<< HEAD
|
192
|
-
def current_user_unread_data
|
193
|
-
return {} if current_user.blank?
|
194
|
-
|
195
|
-
{}.tap do |d|
|
196
|
-
d.merge!(unread_notifications: true) if current_user.notifications.any?
|
197
|
-
d.merge!(unread_conversations: true) if current_user.unread_conversations.any?
|
198
|
-
d.merge!(unread_items: d.present?)
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
||||||| parent of 53b6893e5c (Use local emojibase data instead of CDN)
|
203
|
-
=======
|
204
|
-
# Public: Gets the name of the webpacker entrypoint that will be used
|
205
|
-
# for the locale of the Emojibase NPM package, used with @picmo/popup-picker
|
206
|
-
#
|
207
|
-
# Returns a string with the entrypoint name
|
208
|
-
def emojibase_entrypoint_locale
|
209
|
-
entrypoint = Decidim::Webpacker.configuration.entrypoints.keys.select do |entry|
|
210
|
-
entry == "decidim_emojibase_#{I18n.locale}"
|
211
|
-
end
|
212
|
-
|
213
|
-
return "decidim_emojibase_en" if entrypoint.empty?
|
214
|
-
|
215
|
-
entrypoint.first
|
216
|
-
end
|
217
|
-
|
218
|
-
>>>>>>> 53b6893e5c (Use local emojibase data instead of CDN)
|
219
|
-
private
|
220
|
-
|
221
|
-
def tag_builder
|
222
|
-
@tag_builder ||= ActionView::Helpers::TagHelper::TagBuilder.new(self)
|
223
|
-
end
|
224
|
-
end
|
225
|
-
end
|
@@ -1,231 +0,0 @@
|
|
1
|
-
<% add_decidim_page_title(t(".sign_up")) %>
|
2
|
-
|
3
|
-
<% content_for :devise_links do %>
|
4
|
-
<%= render "decidim/devise/shared/links" %>
|
5
|
-
<% end %>
|
6
|
-
|
7
|
-
<%= render layout: "layouts/decidim/shared/layout_center" do %>
|
8
|
-
<div class="flex justify-center">
|
9
|
-
<h1 class="h3 md:h1 decorator my-12"><%= t("decidim.devise.registrations.new.sign_up") %></h1>
|
10
|
-
</div>
|
11
|
-
|
12
|
-
<div class="login__info">
|
13
|
-
<p>
|
14
|
-
<%= t("decidim.devise.registrations.new.subtitle") %>
|
15
|
-
</p>
|
16
|
-
<p class="font-semibold">
|
17
|
-
<%= t("decidim.devise.registrations.new.already_have_an_account?") %>
|
18
|
-
<%= link_to t("decidim.devise.registrations.new.sign_in"), new_user_session_path %>
|
19
|
-
</p>
|
20
|
-
</div>
|
21
|
-
|
22
|
-
<div class="login__info-required">
|
23
|
-
<%= form_required_explanation %>
|
24
|
-
</div>
|
25
|
-
|
26
|
-
<div class="login__omniauth-container">
|
27
|
-
<% cache current_organization do %>
|
28
|
-
<%= render "decidim/devise/shared/omniauth_buttons" %>
|
29
|
-
<% end %>
|
30
|
-
</div>
|
31
|
-
|
32
|
-
<%= decidim_form_for(@form, namespace: "registration", as: resource_name, url: registration_path(resource_name), html: { id: "register-form" }) do |f| %>
|
33
|
-
<%= invisible_captcha %>
|
34
|
-
|
35
|
-
<div class="form__wrapper">
|
36
|
-
<%= f.text_field :name, help_text: t("decidim.devise.registrations.new.username_help"), autocomplete: "name", placeholder: "John Doe" %>
|
37
|
-
|
38
|
-
<%= f.text_field :nickname, help_text: t("decidim.devise.registrations.new.nickname_help", organization: current_organization.name), autocomplete: "nickname", placeholder: "johndoe" %>
|
39
|
-
|
40
|
-
<%= f.email_field :email, autocomplete: "email", placeholder: "hi@email.com" %>
|
41
|
-
|
42
|
-
<%= f.password_field :password, password_field_options_for(:user) %>
|
43
|
-
|
44
|
-
<%= f.password_field :password_confirmation, password_field_options_for(:user).except(:help_text) %>
|
45
|
-
</div>
|
46
|
-
|
47
|
-
<div id="card__tos" class="form__wrapper-block">
|
48
|
-
<h4 class="h4"><%= t("decidim.devise.registrations.new.tos_title") %></h4>
|
49
|
-
|
50
|
-
<div class="tos-text">
|
51
|
-
<% terms_of_service_summary_content_blocks.each do |content_block| %>
|
52
|
-
<%= cell content_block.manifest.cell, content_block %>
|
53
|
-
<% end %>
|
54
|
-
</div>
|
55
|
-
|
56
|
-
<%= f.check_box :tos_agreement, label: t("decidim.devise.registrations.new.tos_agreement", link: link_to(t("decidim.devise.registrations.new.terms"), page_path("terms-of-service"))), label_options: { class: "form__wrapper-checkbox-label" } %>
|
57
|
-
</div>
|
58
|
-
|
59
|
-
<div id="card__newsletter" class="form__wrapper-block">
|
60
|
-
<h4 class="h4"><%= t("decidim.devise.registrations.new.newsletter_title") %></h4>
|
61
|
-
<%= f.check_box :newsletter, label: t("decidim.devise.registrations.new.newsletter"), checked: @form.newsletter, label_options: { class: "form__wrapper-checkbox-label" } %>
|
62
|
-
</div>
|
63
|
-
|
64
|
-
<div class="form__wrapper-block">
|
65
|
-
<button type="submit" class="button button__lg button__secondary">
|
66
|
-
<%= t("decidim.devise.registrations.new.sign_up") %>
|
67
|
-
<%= icon "arrow-right-line", class: "fill-current" %>
|
68
|
-
</button>
|
69
|
-
</div>
|
70
|
-
|
71
|
-
<div class="login__links">
|
72
|
-
<%= render "decidim/devise/shared/redesigned_links" %>
|
73
|
-
</div>
|
74
|
-
<% end %>
|
75
|
-
<% end %>
|
76
|
-
|
77
|
-
<<<<<<< HEAD
|
78
|
-
||||||| parent of 4e14afa36c (add password toggle via unobstructive javascript)
|
79
|
-
<div class="row">
|
80
|
-
<div class="columns large-6 medium-10 medium-centered">
|
81
|
-
|
82
|
-
<%= decidim_form_for(@form, namespace: "registration", as: resource_name, url: registration_path(resource_name), html: { class: "register-form new_user", id: "register-form" }) do |f| %>
|
83
|
-
<%= invisible_captcha %>
|
84
|
-
<div class="card">
|
85
|
-
<div class="card__content">
|
86
|
-
<%= form_required_explanation %>
|
87
|
-
|
88
|
-
<div class="user-person">
|
89
|
-
<div class="field">
|
90
|
-
<%= f.text_field :name, help_text: t(".username_help"), autocomplete: "name" %>
|
91
|
-
</div>
|
92
|
-
</div>
|
93
|
-
|
94
|
-
<div class="user-nickname">
|
95
|
-
<div class="field">
|
96
|
-
<%= f.text_field :nickname, help_text: t(".nickname_help", organization: current_organization.name), prefix: { value: "@", small: 1, large: 1 }, autocomplete: "nickname" %>
|
97
|
-
</div>
|
98
|
-
</div>
|
99
|
-
|
100
|
-
<div class="field">
|
101
|
-
<%= f.email_field :email, autocomplete: "email" %>
|
102
|
-
</div>
|
103
|
-
|
104
|
-
<div class="field">
|
105
|
-
<%= f.password_field :password, password_field_options_for(:user) %>
|
106
|
-
</div>
|
107
|
-
|
108
|
-
<div class="field">
|
109
|
-
<%= f.password_field :password_confirmation, password_field_options_for(:user).except(:help_text) %>
|
110
|
-
</div>
|
111
|
-
</div>
|
112
|
-
</div>
|
113
|
-
|
114
|
-
<div class="card" id="card__tos">
|
115
|
-
<div class="card__content">
|
116
|
-
<h3><%= t(".tos_title") %></h3>
|
117
|
-
|
118
|
-
<p class="tos-text">
|
119
|
-
<%= strip_tags(translated_attribute(terms_and_conditions_page.content)) %>
|
120
|
-
</p>
|
121
|
-
|
122
|
-
<div class="field">
|
123
|
-
<%= f.check_box :tos_agreement, label: t(".tos_agreement", link: link_to(t(".terms"), page_path("terms-and-conditions"))) %>
|
124
|
-
</div>
|
125
|
-
</div>
|
126
|
-
</div>
|
127
|
-
|
128
|
-
<div class="card" id="card__newsletter">
|
129
|
-
<div class="card__content">
|
130
|
-
<h3><%= t(".newsletter_title") %></h3>
|
131
|
-
<div class="field">
|
132
|
-
<%= f.check_box :newsletter, label: t(".newsletter"), checked: @form.newsletter %>
|
133
|
-
</div>
|
134
|
-
</div>
|
135
|
-
</div>
|
136
|
-
|
137
|
-
<div class="card">
|
138
|
-
<div class="card__content">
|
139
|
-
<div class="actions">
|
140
|
-
<%= f.submit t("devise.registrations.new.sign_up"), class: "button expanded" %>
|
141
|
-
</div>
|
142
|
-
<%= yield :devise_links %>
|
143
|
-
</div>
|
144
|
-
</div>
|
145
|
-
<% end %>
|
146
|
-
</div>
|
147
|
-
</div>
|
148
|
-
</div>
|
149
|
-
</div>
|
150
|
-
=======
|
151
|
-
<div class="row">
|
152
|
-
<div class="columns large-6 medium-10 medium-centered">
|
153
|
-
|
154
|
-
<%= decidim_form_for(@form, namespace: "registration", as: resource_name, url: registration_path(resource_name), html: { class: "register-form new_user", id: "register-form" }) do |f| %>
|
155
|
-
<%= invisible_captcha %>
|
156
|
-
<div class="card">
|
157
|
-
<div class="card__content">
|
158
|
-
<%= form_required_explanation %>
|
159
|
-
|
160
|
-
<div class="user-person">
|
161
|
-
<div class="field">
|
162
|
-
<%= f.text_field :name, help_text: t(".username_help"), autocomplete: "off" %>
|
163
|
-
</div>
|
164
|
-
</div>
|
165
|
-
|
166
|
-
<div class="user-nickname">
|
167
|
-
<div class="field">
|
168
|
-
<%= f.text_field :nickname, help_text: t(".nickname_help", organization: current_organization.name), prefix: { value: "@", small: 1, large: 1 }, autocomplete: "off" %>
|
169
|
-
</div>
|
170
|
-
</div>
|
171
|
-
|
172
|
-
<div class="field">
|
173
|
-
<%= f.email_field :email, autocomplete: "email" %>
|
174
|
-
</div>
|
175
|
-
|
176
|
-
<div class="user-password">
|
177
|
-
<div class="field">
|
178
|
-
<%= f.password_field :password, password_field_options_for(:user) %>
|
179
|
-
</div>
|
180
|
-
</div>
|
181
|
-
|
182
|
-
<div class="user-password-confirmation">
|
183
|
-
<div class="field">
|
184
|
-
<%= f.password_field :password_confirmation, password_field_options_for(:user).except(:help_text) %>
|
185
|
-
</div>
|
186
|
-
</div>
|
187
|
-
</div>
|
188
|
-
</div>
|
189
|
-
|
190
|
-
<div class="card" id="card__tos">
|
191
|
-
<div class="card__content">
|
192
|
-
<h3><%= t(".tos_title") %></h3>
|
193
|
-
|
194
|
-
<p class="tos-text">
|
195
|
-
<%= strip_tags(translated_attribute(terms_and_conditions_page.content)) %>
|
196
|
-
</p>
|
197
|
-
|
198
|
-
<div class="field">
|
199
|
-
<%= f.check_box :tos_agreement, label: t(".tos_agreement", link: link_to(t(".terms"), page_path("terms-and-conditions"))) %>
|
200
|
-
</div>
|
201
|
-
</div>
|
202
|
-
</div>
|
203
|
-
|
204
|
-
<div class="card" id="card__newsletter">
|
205
|
-
<div class="card__content">
|
206
|
-
<h3><%= t(".newsletter_title") %></h3>
|
207
|
-
<div class="field">
|
208
|
-
<%= f.check_box :newsletter, label: t(".newsletter"), checked: @form.newsletter %>
|
209
|
-
</div>
|
210
|
-
</div>
|
211
|
-
</div>
|
212
|
-
|
213
|
-
<div class="card">
|
214
|
-
<div class="card__content">
|
215
|
-
<div class="actions">
|
216
|
-
<%= f.submit t("devise.registrations.new.sign_up"), class: "button expanded" %>
|
217
|
-
</div>
|
218
|
-
<%= yield :devise_links %>
|
219
|
-
</div>
|
220
|
-
</div>
|
221
|
-
<% end %>
|
222
|
-
</div>
|
223
|
-
</div>
|
224
|
-
</div>
|
225
|
-
</div>
|
226
|
-
>>>>>>> 4e14afa36c (add password toggle via unobstructive javascript)
|
227
|
-
<%= render "decidim/devise/shared/newsletter_modal" %>
|
228
|
-
|
229
|
-
<% content_for :js_content do %>
|
230
|
-
<%= javascript_pack_tag "decidim_registrations" %>
|
231
|
-
<% end %>
|