decidim-plans 0.16.4 → 0.16.5
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/plans/proposal_picker.js.es6 +2 -2
- data/app/cells/decidim/plans/plan_cell.rb +1 -1
- data/app/cells/decidim/plans/plan_m_cell.rb +4 -0
- data/app/commands/decidim/plans/admin/export_plans_to_budgets.rb +12 -11
- data/app/controllers/decidim/plans/plans_controller.rb +0 -16
- data/app/helpers/decidim/plans/application_helper.rb +1 -0
- data/app/helpers/decidim/plans/links_helper.rb +45 -0
- data/app/presenters/concerns/decidim/plans/rich_presenter.rb +14 -0
- data/app/presenters/decidim/plans/content_presenter.rb +3 -2
- data/app/presenters/decidim/plans/plan_presenter.rb +5 -4
- data/app/views/decidim/plans/admin/plans/_form.html.erb +6 -2
- data/app/views/decidim/plans/plans/_contents.html.erb +1 -1
- data/app/views/decidim/plans/plans/_form.html.erb +5 -2
- data/app/views/decidim/plans/plans/show.html.erb +8 -10
- data/app/views/decidim/plans/shared/_attachment_fields.html.erb +6 -0
- data/config/locales/en.yml +23 -21
- data/config/locales/fi.yml +21 -21
- data/config/locales/sv.yml +260 -260
- data/lib/decidim/plans/component.rb +2 -0
- data/lib/decidim/plans/engine.rb +0 -1
- data/lib/decidim/plans/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08d56d238a66eca983dbe996717bb9387525e974336ce65ab9f8943e1e3afe5e'
|
4
|
+
data.tar.gz: fe1204b85350bdea566562b75956c7eed3e989b793669b35b25be08b85cabe07
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8ac917fa65cc0f67ae41541ee8d9af242ecff01ed3b3936bba4f1dfe3b6de3d771dc830a6b9522596ab57a73d378b0ffe2be76454e9b96f530a3eb947144ed4
|
7
|
+
data.tar.gz: 17df9cff118e3dc9be17afb6408a247e600da2018cef3220078bf5885a0ebbc3da04780e14fe074935e4cbfc4966f379f4e37a6c035b65986002b1e5a4428a1a
|
@@ -28,9 +28,9 @@ $(function() {
|
|
28
28
|
renderItem: function (item, search) {
|
29
29
|
let sanitizedSearch = search.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
|
30
30
|
let re = new RegExp(`(${sanitizedSearch.split(" ").join("|")})`, "gi");
|
31
|
-
let title = item[0];
|
31
|
+
let title = item[0].replace(/"/g, """);
|
32
32
|
let modelId = item[1];
|
33
|
-
return `<div class="autocomplete-suggestion" data-model-id="${modelId}" data-val
|
33
|
+
return `<div class="autocomplete-suggestion" data-model-id="${modelId}" data-val="${title}">${title.replace(re, "<b>$1</b>")}</div>`;
|
34
34
|
},
|
35
35
|
onSelect: function(event, term, item) {
|
36
36
|
let choose = $("#proposal-picker-choose");
|
@@ -6,6 +6,8 @@ module Decidim
|
|
6
6
|
# A command with all the business logic when an admin exports plans to a
|
7
7
|
# single budget component.
|
8
8
|
class ExportPlansToBudgets < Rectify::Command
|
9
|
+
include ActionView::Helpers::TextHelper
|
10
|
+
|
9
11
|
# Public: Initializes the command.
|
10
12
|
#
|
11
13
|
# form - A form object with the params.
|
@@ -35,7 +37,7 @@ module Decidim
|
|
35
37
|
next if plan_already_copied?(original_plan, target_component)
|
36
38
|
|
37
39
|
project = Decidim::Budgets::Project.new
|
38
|
-
project.title = original_plan.title
|
40
|
+
project.title = sanitize_localized(original_plan.title)
|
39
41
|
project.description = project_description(original_plan)
|
40
42
|
project.budget = form.default_budget
|
41
43
|
project.category = original_plan.category
|
@@ -83,20 +85,13 @@ module Decidim
|
|
83
85
|
original_plan.sections.each do |section|
|
84
86
|
content = original_plan.contents.find_by(section: section)
|
85
87
|
content.body.each do |locale, body_text|
|
86
|
-
title = section.body[locale]
|
88
|
+
title = sanitize(section.body[locale])
|
87
89
|
pr_desc[locale] ||= ""
|
88
90
|
pr_desc[locale] += "<h3>#{title}</h3>\n"
|
89
91
|
|
90
|
-
# In case the text is already HTML, append as is.
|
91
92
|
# Wrap non-HTML strings within a <p> tag and replace newlines with
|
92
|
-
# <br>.
|
93
|
-
pr_desc[locale] += (
|
94
|
-
if body_text =~ %r{<\/?[^>]*>}
|
95
|
-
"#{body_text}\n"
|
96
|
-
else
|
97
|
-
"<p>#{body_text.gsub(/\n/, "<br>")}</p>\n"
|
98
|
-
end
|
99
|
-
)
|
93
|
+
# <br>. This also takes care of sanitization.
|
94
|
+
pr_desc[locale] += simple_format(body_text)
|
100
95
|
end
|
101
96
|
end
|
102
97
|
|
@@ -105,6 +100,12 @@ module Decidim
|
|
105
100
|
|
106
101
|
pr_desc
|
107
102
|
end
|
103
|
+
|
104
|
+
def sanitize_localized(hash)
|
105
|
+
hash.each do |locale, value|
|
106
|
+
hash[locale] = sanitize(value)
|
107
|
+
end
|
108
|
+
end
|
108
109
|
end
|
109
110
|
end
|
110
111
|
end
|
@@ -160,22 +160,6 @@ module Decidim
|
|
160
160
|
end
|
161
161
|
end
|
162
162
|
|
163
|
-
def reopen
|
164
|
-
enforce_permission_to :close, :plan, plan: @plan
|
165
|
-
|
166
|
-
ReopenPlan.call(@plan, current_user) do
|
167
|
-
on(:ok) do |plan|
|
168
|
-
flash[:notice] = I18n.t("reopen.success", scope: "decidim.plans.plans.plan")
|
169
|
-
redirect_to Decidim::ResourceLocatorPresenter.new(plan).path
|
170
|
-
end
|
171
|
-
|
172
|
-
on(:invalid) do
|
173
|
-
flash.now[:alert] = t("reopen.error", scope: "decidim.plans.plans.plan")
|
174
|
-
redirect_to Decidim::ResourceLocatorPresenter.new(@plan).path
|
175
|
-
end
|
176
|
-
end
|
177
|
-
end
|
178
|
-
|
179
163
|
private
|
180
164
|
|
181
165
|
def check_draft
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Plans
|
5
|
+
module LinksHelper
|
6
|
+
# This is for generating the links so that they maintain the search status
|
7
|
+
def request_params(extra_params={}, exclude_params=[])
|
8
|
+
@request_params ||= request.params.except(
|
9
|
+
*(exclude_params + [
|
10
|
+
:action,
|
11
|
+
:component_id,
|
12
|
+
:controller,
|
13
|
+
:assembly_slug,
|
14
|
+
:participatory_process_slug,
|
15
|
+
:id
|
16
|
+
])
|
17
|
+
).merge(prepare_extra_params(extra_params))
|
18
|
+
end
|
19
|
+
|
20
|
+
def request_params_query(extra_params={}, exclude_params=[])
|
21
|
+
return "" unless request_params(extra_params, exclude_params).any?
|
22
|
+
|
23
|
+
"?#{request_params.to_query}"
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
# Adds the random seed to the extra parameters to maintain the ordering
|
29
|
+
# correctly across the requests.
|
30
|
+
def prepare_extra_params(extra_params)
|
31
|
+
return extra_params unless controller
|
32
|
+
return extra_params unless controller.respond_to?(:order, true)
|
33
|
+
return extra_params unless controller.respond_to?(:random_seed, true)
|
34
|
+
|
35
|
+
order = controller.send(:order)
|
36
|
+
return extra_params unless order == "random"
|
37
|
+
|
38
|
+
seed = controller.send(:random_seed)
|
39
|
+
return extra_params unless seed
|
40
|
+
|
41
|
+
extra_params.merge(random_seed: seed)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Plans
|
5
|
+
module RichPresenter
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
include ActionView::Helpers::TextHelper
|
8
|
+
|
9
|
+
def rich_content(content)
|
10
|
+
simple_format(content, wrapper_tag: nil)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -8,17 +8,18 @@ module Decidim
|
|
8
8
|
class ContentPresenter < SimpleDelegator
|
9
9
|
include Rails.application.routes.mounted_helpers
|
10
10
|
include TranslatableAttributes
|
11
|
+
include Plans::RichPresenter
|
11
12
|
|
12
13
|
def content
|
13
14
|
__getobj__
|
14
15
|
end
|
15
16
|
|
16
17
|
def title
|
17
|
-
translated_attribute(content.title)
|
18
|
+
sanitize(translated_attribute(content.title))
|
18
19
|
end
|
19
20
|
|
20
21
|
def body
|
21
|
-
translated_attribute(content.body)
|
22
|
+
rich_content(translated_attribute(content.body))
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
@@ -9,6 +9,7 @@ module Decidim
|
|
9
9
|
include Rails.application.routes.mounted_helpers
|
10
10
|
include ActionView::Helpers::UrlHelper
|
11
11
|
include TranslatableAttributes
|
12
|
+
include Plans::RichPresenter
|
12
13
|
|
13
14
|
def author
|
14
15
|
coauthorship = coauthorships.first
|
@@ -28,7 +29,7 @@ module Decidim
|
|
28
29
|
end
|
29
30
|
|
30
31
|
def title
|
31
|
-
translated_attribute(plan.title)
|
32
|
+
sanitize(translated_attribute(plan.title))
|
32
33
|
end
|
33
34
|
|
34
35
|
def body
|
@@ -36,9 +37,9 @@ module Decidim
|
|
36
37
|
content = plan.contents.find_by(section: section)
|
37
38
|
next if content.nil?
|
38
39
|
|
39
|
-
|
40
|
-
|
41
|
-
"<dt>#{
|
40
|
+
section_title = sanitize(translated_attribute(content.title))
|
41
|
+
section_body = sanitize(translated_attribute(content.body))
|
42
|
+
"<dt>#{section_title}</dt> <dd>#{section_body}</dd>"
|
42
43
|
end
|
43
44
|
|
44
45
|
"<dl>#{fields.join("\n")}</dl>".html_safe
|
@@ -23,12 +23,16 @@ form.multipart = true
|
|
23
23
|
<div class="row column">
|
24
24
|
<%= remaining_characters("plans_title", component_settings.plan_title_length) do |opts| %>
|
25
25
|
<% if component_settings.multilingual_answers? %>
|
26
|
-
<%= form.translated :text_field, :title, opts.merge(
|
26
|
+
<%= form.translated :text_field, :title, opts.merge(
|
27
|
+
tabs_id: "title-tabs",
|
28
|
+
help_text: translated_attribute(component_settings.title_help)
|
29
|
+
) %>
|
27
30
|
<% else %>
|
28
31
|
<%= form.text_field(
|
29
32
|
"title_#{current_locale}".to_sym,
|
30
33
|
{
|
31
|
-
label: form.label_for(:title)
|
34
|
+
label: form.label_for(:title),
|
35
|
+
help_text: translated_attribute(component_settings.title_help)
|
32
36
|
}.merge(opts)
|
33
37
|
) %>
|
34
38
|
<% end %>
|
@@ -23,12 +23,15 @@ form.multipart = true
|
|
23
23
|
<div class="field">
|
24
24
|
<%= remaining_characters("plans_title", component_settings.plan_title_length) do |opts| %>
|
25
25
|
<% if component_settings.multilingual_answers? %>
|
26
|
-
<%= form.translated :text_field, :title, opts
|
26
|
+
<%= form.translated :text_field, :title, opts.merge(
|
27
|
+
help_text: translated_attribute(component_settings.title_help)
|
28
|
+
) %>
|
27
29
|
<% else %>
|
28
30
|
<%= form.text_field(
|
29
31
|
"title_#{current_locale}".to_sym,
|
30
32
|
{
|
31
|
-
label: form.label_for(:title)
|
33
|
+
label: form.label_for(:title),
|
34
|
+
help_text: translated_attribute(component_settings.title_help)
|
32
35
|
}.merge(opts)
|
33
36
|
) %>
|
34
37
|
<% end %>
|
@@ -12,10 +12,12 @@
|
|
12
12
|
<% end %>
|
13
13
|
|
14
14
|
<div class="row column view-header">
|
15
|
-
|
16
|
-
<%=
|
17
|
-
|
18
|
-
|
15
|
+
<p class="h5">
|
16
|
+
<%= link_to plans_path(request_params) do %>
|
17
|
+
<%= icon "chevron-left", class: "icon--small" %>
|
18
|
+
<%= t(".back") %>
|
19
|
+
<% end %>
|
20
|
+
</p>
|
19
21
|
|
20
22
|
<h2 class="heading2">
|
21
23
|
<%= present(@plan).title %>
|
@@ -45,12 +47,8 @@
|
|
45
47
|
<% if allowed_to?(:edit, :plan, plan: @plan) %>
|
46
48
|
<%= link_to t("edit", scope:"decidim.plans.plans.show"), edit_plan_path(@plan), class: "button secondary hollow expanded button--sc mt-s", id: "plan_edit" %>
|
47
49
|
<% end %>
|
48
|
-
<% if allowed_to?(:close, :plan, plan: @plan) %>
|
49
|
-
|
50
|
-
<%= link_to t("reopen", scope:"decidim.plans.plans.show"), reopen_plan_path(@plan), method: :post, class: "button secondary hollow expanded button--sc mt-s", id: "plan_reopen", data: { confirm: t("reopen_confirm", scope:"decidim.plans.plans.show") } %>
|
51
|
-
<% else %>
|
52
|
-
<%= link_to t("close", scope:"decidim.plans.plans.show"), close_plan_path(@plan), method: :post, class: "button secondary hollow expanded button--sc mt-s", id: "plan_close", data: { confirm: t("close_confirm", scope:"decidim.plans.plans.show") } %>
|
53
|
-
<% end %>
|
50
|
+
<% if allowed_to?(:close, :plan, plan: @plan) && !@plan.closed? %>
|
51
|
+
<%= link_to t("close", scope:"decidim.plans.plans.show"), close_plan_path(@plan), method: :post, class: "button secondary hollow expanded button--sc mt-s", id: "plan_close", data: { confirm: t("close_confirm", scope:"decidim.plans.plans.show") } %>
|
54
52
|
<% end %>
|
55
53
|
|
56
54
|
<%= render "request_access_form" %>
|
@@ -1,3 +1,5 @@
|
|
1
|
+
<% help_text = translated_attribute(component_settings.attachment_help).strip %>
|
2
|
+
|
1
3
|
<div class="card multifield-field" id="<%= id %>-field">
|
2
4
|
<div class="card-divider multifield-field-divider">
|
3
5
|
<h3 class="heading6 card-title">
|
@@ -21,6 +23,10 @@
|
|
21
23
|
|
22
24
|
<div class="card-section">
|
23
25
|
<div class="row column">
|
26
|
+
<% if help_text && help_text.length > 0 %>
|
27
|
+
<p class="help-text"><%= help_text %></p>
|
28
|
+
<% end %>
|
29
|
+
|
24
30
|
<div class="field">
|
25
31
|
<% if form.send(:attribute_required?, :title) %>
|
26
32
|
<%= form.text_field :title %>
|
data/config/locales/en.yml
CHANGED
@@ -34,6 +34,7 @@ en:
|
|
34
34
|
global:
|
35
35
|
announcement: Announcement
|
36
36
|
attachments_allowed: Attachments allowed
|
37
|
+
attachment_help: Attachment help text
|
37
38
|
categories_enabled: Categories enabled
|
38
39
|
comments_enabled: Comments enabled
|
39
40
|
multilingual_answers: Multilingual answers
|
@@ -41,6 +42,7 @@ en:
|
|
41
42
|
plan_title_length: Title length
|
42
43
|
proposal_linking_enabled: Proposal linking enabled
|
43
44
|
scopes_enabled: Scopes enabled
|
45
|
+
title_help: Title help text
|
44
46
|
step:
|
45
47
|
announcement: Announcement
|
46
48
|
comments_blocked: Comments blocked
|
@@ -330,57 +332,57 @@ en:
|
|
330
332
|
events:
|
331
333
|
plans:
|
332
334
|
plan_access_accepted:
|
333
|
-
email_intro: '%{requester_name} has been accepted to access as a contributor of <a href="%{
|
334
|
-
email_outro: You have received this notification because you are a collaborator of <a href="%{
|
335
|
+
email_intro: '%{requester_name} has been accepted to access as a contributor of <a href="%{resource_url}">%{resource_title}</a>.'
|
336
|
+
email_outro: You have received this notification because you are a collaborator of <a href="%{resource_url}">%{resource_title}</a>.
|
335
337
|
email_subject: "%{requester_name} has been accepted to access as a contributor of %{resource_title}."
|
336
|
-
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> has been <strong>accepted to access as a contributor</strong> of <a href="%{
|
338
|
+
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> has been <strong>accepted to access as a contributor</strong> of <a href="%{resource_url}">%{resource_title}</a>.
|
337
339
|
plan_access_rejected:
|
338
|
-
email_intro: '%{requester_name} has been rejected to access as a contributor of <a href="%{
|
339
|
-
email_outro: You have received this notification because you are a collaborator of <a href="%{
|
340
|
+
email_intro: '%{requester_name} has been rejected to access as a contributor of <a href="%{resource_url}">%{resource_title}</a>.'
|
341
|
+
email_outro: You have received this notification because you are a collaborator of <a href="%{resource_url}">%{resource_title}</a>.
|
340
342
|
email_subject: "%{requester_name} has been rejected to access as a contributor of %{resource_title}."
|
341
|
-
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> has been <strong>rejected to access as a contributor</strong> of <a href="%{
|
343
|
+
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> has been <strong>rejected to access as a contributor</strong> of <a href="%{resource_url}">%{resource_title}</a>.
|
342
344
|
plan_access_requested:
|
343
|
-
email_intro: '%{requester_name} requested access as a contributor. You can <strong>accept or reject the request</strong> from the <a href="%{
|
344
|
-
email_outro: You have received this notification because you are a collaborator of <a href="%{
|
345
|
+
email_intro: '%{requester_name} requested access as a contributor. You can <strong>accept or reject the request</strong> from the <a href="%{resource_url}">%{resource_title}</a> page.'
|
346
|
+
email_outro: You have received this notification because you are a collaborator of <a href="%{resource_url}">%{resource_title}</a>.
|
345
347
|
email_subject: "%{requester_name} requested access to contribute to %{resource_title}."
|
346
|
-
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> requested access to contribute to <a href="%{
|
348
|
+
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> requested access to contribute to <a href="%{resource_url}">%{resource_title}</a>. Please <strong>accept or reject the request</strong>.
|
347
349
|
plan_access_requester_accepted:
|
348
|
-
email_intro: You have been accepted to access as a contributor of <a href="%{
|
349
|
-
email_outro: You have received this notification because you requested to become a collaborator of <a href="%{
|
350
|
+
email_intro: You have been accepted to access as a contributor of <a href="%{resource_url}">%{resource_title}</a>.
|
351
|
+
email_outro: You have received this notification because you requested to become a collaborator of <a href="%{resource_url}">%{resource_title}</a>.
|
350
352
|
email_subject: You have been accepted as a contributor of %{resource_title}.
|
351
|
-
notification_title: You have been <strong>accepted to access as a contributor</strong> of <a href="%{
|
353
|
+
notification_title: You have been <strong>accepted to access as a contributor</strong> of <a href="%{resource_url}">%{resource_title}</a>.
|
352
354
|
plan_access_requester_rejected:
|
353
|
-
email_intro: You have been rejected to access as a contributor of <a href="%{
|
354
|
-
email_outro: You have received this notification because you requested to become a collaborator of <a href="%{
|
355
|
+
email_intro: You have been rejected to access as a contributor of <a href="%{resource_url}">%{resource_title}</a>.
|
356
|
+
email_outro: You have received this notification because you requested to become a collaborator of <a href="%{resource_url}">%{resource_title}</a>.
|
355
357
|
email_subject: You have been rejected as a contributor of %{resource_title}.
|
356
|
-
notification_title: You have been <strong>rejected to access as a contributor</strong> of <a href="%{
|
358
|
+
notification_title: You have been <strong>rejected to access as a contributor</strong> of <a href="%{resource_url}">%{resource_title}</a>.
|
357
359
|
plan_accepted:
|
358
360
|
email_intro: '"%{resource_title}" has been accepted. You can read the answer in this page:'
|
359
361
|
email_outro: You have received this notification because you are following "%{resource_title}". You can unfollow it from the previous link.
|
360
362
|
email_subject: A resource you're following has been accepted
|
361
|
-
notification_title: <a href="%{
|
363
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> has been accepted.
|
362
364
|
plan_evaluating:
|
363
365
|
email_intro: '"%{resource_title}" is currently being evaluated. You can check for an answer in this page:'
|
364
366
|
email_outro: You have received this notification because you are following "%{resource_title}". You can unfollow it from the previous link.
|
365
367
|
email_subject: A resource you're following is being evaluated
|
366
|
-
notification_title: <a href="%{
|
368
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> is being evaluated.
|
367
369
|
plan_published:
|
368
370
|
email_intro: '"%{resource_title}" has been published. You can see it here:'
|
369
371
|
email_outro: You have received this notification because you are following the author of "%{resource_title}". You can unfollow it from the previous link.
|
370
372
|
email_subject: A user you're following has published a resource
|
371
|
-
notification_title: <a href="%{
|
373
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> has been published.
|
372
374
|
plan_published_for_proposals:
|
373
375
|
email_intro: 'A proposal you have authored has been linked to "%{resource_title}". You can see it here:'
|
374
376
|
email_outro: You have received this notification because you are following "%{resource_title}" through the authored proposals. You can unfollow it from the previous link.
|
375
377
|
email_subject: A proposal you have authored has been linked to new content
|
376
|
-
notification_title: A proposal you have authored has been linked to <a href="%{
|
378
|
+
notification_title: A proposal you have authored has been linked to <a href="%{resource_url}">%{resource_title}</a>.
|
377
379
|
plan_published_for_space:
|
378
380
|
email_intro: '"%{resource_title}" has been published. You can see it here:'
|
379
381
|
email_outro: You have received this notification because you are following "%{resource_title}". You can unfollow it from the previous link.
|
380
382
|
email_subject: A resource you're following has been published
|
381
|
-
notification_title: <a href="%{
|
383
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> has been published.
|
382
384
|
plan_rejected:
|
383
385
|
email_intro: '"%{resource_title}" has been rejected. You can read the answer in this page:'
|
384
386
|
email_outro: You have received this notification because you are following "%{resource_title}". You can unfollow it from the previous link.
|
385
387
|
email_subject: A resource you're following has been rejected
|
386
|
-
notification_title: <a href="%{
|
388
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> has been rejected.
|
data/config/locales/fi.yml
CHANGED
@@ -323,57 +323,57 @@ fi:
|
|
323
323
|
events:
|
324
324
|
plans:
|
325
325
|
plan_access_accepted:
|
326
|
-
email_intro: '%{requester_name} on annettu oikeus muokata sisältöä <a href="%{
|
327
|
-
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistunut sisällön <a href="%{
|
326
|
+
email_intro: '%{requester_name} on annettu oikeus muokata sisältöä <a href="%{resource_url}">%{resource_title}</a> osallistujana.'
|
327
|
+
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistunut sisällön <a href="%{resource_url}">%{resource_title}</a> muokkaukseen.
|
328
328
|
email_subject: "%{requester_name} on hyväksytty muokkaajaksi sisältöön %{resource_title}."
|
329
|
-
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> on <strong>hyväksytty muokkaajaksi</strong> sisältöön <a href="%{
|
329
|
+
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> on <strong>hyväksytty muokkaajaksi</strong> sisältöön <a href="%{resource_url}">%{resource_title}</a>.
|
330
330
|
plan_access_rejected:
|
331
|
-
email_intro: 'Käyttäjän %{requester_name} muokkausoikeudet sisältöön <a href="%{
|
332
|
-
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistunut sisällön <a href="%{
|
331
|
+
email_intro: 'Käyttäjän %{requester_name} muokkausoikeudet sisältöön <a href="%{resource_url}">%{resource_title} </a> on estetty.'
|
332
|
+
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistunut sisällön <a href="%{resource_url}">%{resource_title}</a> muokkaukseen.
|
333
333
|
email_subject: "%{requester_name} hakemus osallistua kohteen %{resource_title} muokkaukseen on hylätty."
|
334
|
-
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> <strong>pyyntö muokata sisältöä on hylätty</strong> kohteelle <a href="%{
|
334
|
+
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> <strong>pyyntö muokata sisältöä on hylätty</strong> kohteelle <a href="%{resource_url}">%{resource_title}</a>.
|
335
335
|
plan_access_requested:
|
336
|
-
email_intro: '%{requester_name} pyysi pääsyä osallistujaksi. Voit <strong>hyväksyä tai hylätä pyynnön</strong> sivulla <a href="%{
|
337
|
-
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistuja kohteessa <a href="%{
|
336
|
+
email_intro: '%{requester_name} pyysi pääsyä osallistujaksi. Voit <strong>hyväksyä tai hylätä pyynnön</strong> sivulla <a href="%{resource_url}">%{resource_title}</a>.'
|
337
|
+
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet osallistuja kohteessa <a href="%{resource_url}">%{resource_title}</a>.
|
338
338
|
email_subject: "%{requester_name} pyysi osallistumisoikeutta kohteeseen %{resource_title}."
|
339
|
-
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> pyysi saada muokata sisältöä <a href="%{
|
339
|
+
notification_title: <a href="%{requester_path}">%{requester_name} %{requester_nickname}</a> pyysi saada muokata sisältöä <a href="%{resource_url}">%{resource_title}</a>. <strong>Hyväksy tai hylkää pyyntö</strong>.
|
340
340
|
plan_access_requester_accepted:
|
341
|
-
email_intro: Sinut on hyväksytty osallistujaksi sisältöön <a href="%{
|
342
|
-
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet hakenut muokkausoikeuksia sisältöön <a href="%{
|
341
|
+
email_intro: Sinut on hyväksytty osallistujaksi sisältöön <a href="%{resource_url}">%{resource_title}</a>.
|
342
|
+
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet hakenut muokkausoikeuksia sisältöön <a href="%{resource_url}">%{resource_title}</a>.
|
343
343
|
email_subject: Sinut on hyväksytty osallistujaksi sisältöön %{resource_title}.
|
344
|
-
notification_title: Sinut on <strong>hyväksytty osallistujaksi </strong> sisältöön <a href="%{
|
344
|
+
notification_title: Sinut on <strong>hyväksytty osallistujaksi </strong> sisältöön <a href="%{resource_url}">%{resource_title}</a>.
|
345
345
|
plan_access_requester_rejected:
|
346
|
-
email_intro: Sinua ei ole hyväksytty osallistujaksi sisältöön <a href="%{
|
347
|
-
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet pyytänyt pääsyä osallistujaksi sisältöön <a href="%{
|
346
|
+
email_intro: Sinua ei ole hyväksytty osallistujaksi sisältöön <a href="%{resource_url}">%{resource_title}</a>.
|
347
|
+
email_outro: Tämä ilmoitus on lähetetty sinulle, koska olet pyytänyt pääsyä osallistujaksi sisältöön <a href="%{resource_url}">%{resource_title}</a>.
|
348
348
|
email_subject: Sinua ei ole hyväksytty osallistujaksi sisältöön %{resource_title}.
|
349
|
-
notification_title: Sinua <strong>ei ole hyväksytty osallistujaksi</strong> sisältöön <a href="%{
|
349
|
+
notification_title: Sinua <strong>ei ole hyväksytty osallistujaksi</strong> sisältöön <a href="%{resource_url}">%{resource_title}</a>.
|
350
350
|
plan_accepted:
|
351
351
|
email_intro: '"%{resource_title}" on hyväksytty. Voit lukea vastauksen täältä:'
|
352
352
|
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta "%{resource_title}". Voit lopettaa sen seuraamisen edellä esitetyn linkin kautta.
|
353
353
|
email_subject: Seuraamasi kohde on hyväksytty
|
354
|
-
notification_title: <a href="%{
|
354
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> on hyväksytty.
|
355
355
|
plan_evaluating:
|
356
356
|
email_intro: '"%{resource_title}" arvioidaan parhaillaan. Voit tarkistaa vastauksen tältä sivulla:'
|
357
357
|
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta "%{resource_title}". Voit lopettaa seuraamisen edellä esitetyn linkin kautta.
|
358
358
|
email_subject: Seuraamasi kohde on arvioitavana
|
359
|
-
notification_title: <a href="%{
|
359
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> on arvioitavana.
|
360
360
|
plan_published:
|
361
361
|
email_intro: '"%{resource_title}" on julkaistu. Näet sen täältä:'
|
362
362
|
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohteen "%{resource_title}" laatijaa. Voit lopettaa sen seuraamisen edellä esitetyn linkin kautta.
|
363
363
|
email_subject: Seuraamasi käyttäjä on julkaissut uutta sisältöä
|
364
|
-
notification_title: <a href="%{
|
364
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> on julkaistu.
|
365
365
|
plan_published_for_proposals:
|
366
366
|
email_intro: 'Laatimasi ehdotus on linkitetty kohteeseen "%{resource_title}". Näet sen täältä:'
|
367
367
|
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta "%{resource_title}" laatimisesi ehdotusten kautta. Voit lopettaa seuraamisen edellä esitetyn linkin kautta.
|
368
368
|
email_subject: Laatimasi ehdotus on linkitetty uuteen sisältöön
|
369
|
-
notification_title: Laatimasi ehdotus on linkitetty kohteeseen <a href="%{
|
369
|
+
notification_title: Laatimasi ehdotus on linkitetty kohteeseen <a href="%{resource_url}">%{resource_title}</a>.
|
370
370
|
plan_published_for_space:
|
371
371
|
email_intro: '"%{resource_title}" on julkaistu. Näet sen täältä:'
|
372
372
|
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta "%{resource_title}". Voit lopettaa sen seuraamisen edellä esitetyn linkin kautta.
|
373
373
|
email_subject: Seuraamasi kohde on julkaistu
|
374
|
-
notification_title: <a href="%{
|
374
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> on julkaistu.
|
375
375
|
plan_rejected:
|
376
376
|
email_intro: '"%{resource_title}" on hylätty. Voit lukea vastauksen tällä sivulla:'
|
377
377
|
email_outro: Tämä ilmoitus on lähetetty sinulle, koska seuraat kohdetta "%{resource_title}". Voit lopettaa sen seuraamisen edellä esitetyn linkin kautta.
|
378
378
|
email_subject: Seuraamasi kohde on hylätty
|
379
|
-
notification_title: <a href="%{
|
379
|
+
notification_title: <a href="%{resource_url}">%{resource_title}</a> on hylätty.
|