decidim-decidim_awesome 0.7.0 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +32 -9
  3. data/app/assets/config/decidim_admin_decidim_awesome_manifest.css +2 -2
  4. data/app/assets/config/decidim_admin_decidim_awesome_manifest.js +1 -2
  5. data/app/assets/config/decidim_decidim_awesome_manifest.css +2 -2
  6. data/app/assets/config/decidim_decidim_awesome_manifest.js +3 -2
  7. data/app/assets/config/legacy_decidim_admin_decidim_awesome_manifest.js +2 -0
  8. data/app/assets/config/legacy_decidim_decidim_awesome_manifest.js +4 -0
  9. data/app/assets/javascripts/decidim/decidim_awesome/admin/auto_edit.js.es6 +77 -0
  10. data/app/assets/javascripts/decidim/decidim_awesome/admin/codemirror.js.es6 +2 -3
  11. data/app/assets/javascripts/decidim/decidim_awesome/admin/form_builder.js.es6 +80 -0
  12. data/app/assets/javascripts/decidim/decidim_awesome/admin/legacy_form_builder.js.es6 +80 -0
  13. data/app/assets/javascripts/decidim/decidim_awesome/admin/user_picker.js.es6 +24 -0
  14. data/app/assets/javascripts/decidim/decidim_awesome/awesome_admin.js +7 -0
  15. data/app/assets/javascripts/decidim/decidim_awesome/{application.js → awesome_application.js} +1 -2
  16. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/layers.js.es6 +3 -2
  17. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/load_map.js.es6 +15 -0
  18. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/map.js.es6 +52 -56
  19. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/meetings.js.es6 +2 -2
  20. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/proposals.js.es6 +1 -1
  21. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/utilities.js.es6 +33 -24
  22. data/app/assets/javascripts/decidim/decidim_awesome/editors/legacy_quill_editor.js.es6 +14 -2
  23. data/app/assets/javascripts/decidim/decidim_awesome/editors/quill_editor.js.es6 +18 -4
  24. data/app/assets/javascripts/decidim/decidim_awesome/editors/tabs_focus.js.es6 +24 -0
  25. data/app/assets/javascripts/decidim/decidim_awesome/forms/custom_fields_builder.js.es6 +211 -0
  26. data/app/assets/javascripts/decidim/decidim_awesome/forms/rich_text_plugin.js.es6 +106 -0
  27. data/app/assets/javascripts/decidim/decidim_awesome/legacy_admin.js +5 -1
  28. data/app/assets/javascripts/decidim/decidim_awesome/legacy_application.js +0 -1
  29. data/app/assets/javascripts/decidim/decidim_awesome/proposals/custom_fields.js.es6 +21 -0
  30. data/app/assets/stylesheets/decidim/decidim_awesome/admin/auto_edits.scss +15 -0
  31. data/app/assets/stylesheets/decidim/decidim_awesome/admin/codemirror.scss +15 -4
  32. data/app/assets/stylesheets/decidim/decidim_awesome/admin/constraints.scss +12 -0
  33. data/app/assets/stylesheets/decidim/decidim_awesome/admin/custom_fields.scss +66 -0
  34. data/app/assets/stylesheets/decidim/decidim_awesome/admin/user_picker.scss +35 -0
  35. data/app/assets/stylesheets/decidim/decidim_awesome/{admin.scss → awesome_admin.scss} +12 -0
  36. data/app/assets/stylesheets/decidim/decidim_awesome/awesome_application.scss +22 -0
  37. data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/map.scss +0 -1
  38. data/app/assets/stylesheets/decidim/decidim_awesome/editors/quill_editor.scss +16 -1
  39. data/app/awesome_overrides/forms/decidim/proposals/proposal_wizard_create_step_form_override.rb +28 -0
  40. data/app/cells/decidim/decidim_awesome/content_blocks/map/show.erb +74 -0
  41. data/app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb +54 -0
  42. data/app/cells/decidim/decidim_awesome/content_blocks/map_form/show.erb +61 -0
  43. data/app/cells/decidim/decidim_awesome/content_blocks/map_form_cell.rb +19 -0
  44. data/app/commands/concerns/decidim/decidim_awesome/admin/needs_constraint_helpers.rb +32 -0
  45. data/app/commands/decidim/decidim_awesome/admin/create_proposal_custom_field.rb +45 -0
  46. data/app/commands/decidim/decidim_awesome/admin/create_scoped_admin.rb +38 -0
  47. data/app/commands/decidim/decidim_awesome/admin/destroy_constraint.rb +4 -0
  48. data/app/commands/decidim/decidim_awesome/admin/destroy_proposal_custom_field.rb +40 -0
  49. data/app/commands/decidim/decidim_awesome/admin/destroy_scoped_admin.rb +40 -0
  50. data/app/commands/decidim/decidim_awesome/admin/destroy_scoped_style.rb +1 -1
  51. data/app/commands/decidim/decidim_awesome/admin/rename_scope_label.rb +58 -0
  52. data/app/commands/decidim/decidim_awesome/admin/update_config.rb +1 -0
  53. data/app/controllers/concerns/decidim/decidim_awesome/admin_not_found_redirect.rb +39 -0
  54. data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +31 -18
  55. data/app/controllers/decidim/decidim_awesome/admin/constraints_controller.rb +4 -0
  56. data/app/controllers/decidim/decidim_awesome/admin/proposal_custom_fields_controller.rb +38 -0
  57. data/app/controllers/decidim/decidim_awesome/admin/scoped_admins_controller.rb +38 -0
  58. data/app/controllers/decidim/decidim_awesome/admin/scoped_styles_controller.rb +38 -0
  59. data/app/forms/decidim/decidim_awesome/admin/config_form.rb +39 -0
  60. data/app/forms/decidim/decidim_awesome/admin/constraint_form.rb +3 -1
  61. data/app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb +11 -7
  62. data/app/helpers/decidim/decidim_awesome/amendments_helper_override.rb +48 -0
  63. data/app/helpers/decidim/decidim_awesome/map_helper.rb +67 -16
  64. data/app/helpers/decidim/decidim_awesome/proposals/application_helper_override.rb +78 -0
  65. data/app/middleware/decidim/decidim_awesome/current_config.rb +182 -0
  66. data/app/models/decidim/decidim_awesome/awesome_config.rb +15 -0
  67. data/app/models/decidim/decidim_awesome/user_override.rb +25 -0
  68. data/app/permissions/decidim/decidim_awesome/admin/permissions.rb +2 -0
  69. data/app/views/decidim/decidim_awesome/admin/checks/index.html.erb +1 -1
  70. data/app/views/decidim/decidim_awesome/admin/config/_autoedit_box_label.html.erb +7 -0
  71. data/app/views/decidim/decidim_awesome/admin/config/_constraints.html.erb +2 -2
  72. data/app/views/decidim/decidim_awesome/admin/config/_form_admins.html.erb +21 -0
  73. data/app/views/decidim/decidim_awesome/admin/config/_form_editors.html.erb +0 -3
  74. data/app/views/decidim/decidim_awesome/admin/config/_form_proposal_custom_fields.html.erb +25 -0
  75. data/app/views/decidim/decidim_awesome/admin/config/_form_proposals.html.erb +0 -2
  76. data/app/views/decidim/decidim_awesome/admin/config/_form_styles.html.erb +4 -7
  77. data/app/views/decidim/decidim_awesome/admin/proposals/_editor.html.erb +4 -0
  78. data/app/views/decidim/decidim_awesome/custom_fields/_form_render.html.erb +6 -0
  79. data/app/views/decidim/decidim_awesome/map_component/map/show.html.erb +0 -2
  80. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +101 -0
  81. data/app/views/decidim/proposals/collaborative_drafts/_edit_form_fields.html.erb +83 -0
  82. data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +1 -0
  83. data/app/views/layouts/decidim/admin/decidim_awesome.html.erb +25 -11
  84. data/app/views/layouts/decidim/decidim_awesome/_awesome_config.html.erb +4 -0
  85. data/app/views/layouts/decidim/decidim_awesome/_custom_styles.html.erb +1 -1
  86. data/app/views/v0.23/decidim/proposals/collaborative_drafts/_show.html.erb +134 -0
  87. data/app/views/v0.23/layouts/decidim/_head.html.erb +1 -1
  88. data/app/views/v0.23/layouts/decidim/admin/_header.html.erb +1 -1
  89. data/app/views/v0.24/decidim/proposals/collaborative_drafts/_show.html.erb +128 -0
  90. data/app/views/v0.24/layouts/decidim/_head.html.erb +2 -2
  91. data/app/views/v0.24/layouts/decidim/admin/_header.html.erb +2 -2
  92. data/config/locales/ca.yml +62 -3
  93. data/config/locales/cs.yml +62 -3
  94. data/config/locales/en.yml +90 -11
  95. data/config/locales/es.yml +61 -2
  96. data/config/locales/eu.yml +63 -4
  97. data/config/locales/fr.yml +62 -3
  98. data/config/locales/it.yml +284 -0
  99. data/config/locales/ja.yml +284 -0
  100. data/config/locales/nl.yml +62 -3
  101. data/config/locales/sv.yml +62 -3
  102. data/db/migrate/20210628150825_change_awesome_config_var_type.rb +12 -0
  103. data/lib/decidim/decidim_awesome/admin_engine.rb +16 -4
  104. data/lib/decidim/decidim_awesome/awesome_helpers.rb +17 -10
  105. data/lib/decidim/decidim_awesome/checksums.yml +17 -4
  106. data/lib/decidim/decidim_awesome/config.rb +53 -6
  107. data/lib/decidim/decidim_awesome/context_analyzers/request_analyzer.rb +27 -21
  108. data/lib/decidim/decidim_awesome/custom_fields.rb +94 -0
  109. data/lib/decidim/decidim_awesome/engine.rb +62 -6
  110. data/lib/decidim/decidim_awesome/test/shared_examples/box_label_editor.rb +116 -0
  111. data/lib/decidim/decidim_awesome/test/shared_examples/current_config_examples.rb +143 -0
  112. data/lib/decidim/decidim_awesome/test/shared_examples/editor_examples.rb +4 -0
  113. data/lib/decidim/decidim_awesome/test/shared_examples/scoped_admins_examples.rb +428 -0
  114. data/lib/decidim/decidim_awesome/version.rb +1 -1
  115. data/lib/decidim/decidim_awesome.rb +41 -8
  116. data/vendor/assets/javascripts/delta.min.js +405 -0
  117. data/vendor/assets/javascripts/delta.min.js.map +1 -0
  118. data/vendor/assets/javascripts/europa.min.js +4 -0
  119. data/vendor/assets/javascripts/form-builder.min.js +19 -0
  120. data/vendor/assets/javascripts/form-render.min.js +19 -0
  121. data/vendor/assets/javascripts/inscrybmde.min.js +1 -1
  122. data/vendor/assets/javascripts/jquery-ui.min.js +13 -0
  123. data/vendor/assets/javascripts/select2.js +6147 -0
  124. data/vendor/assets/langs/en-US.lang +110 -0
  125. data/vendor/assets/stylesheets/inscrybmde.min.scss +14 -0
  126. data/vendor/assets/stylesheets/jquery-ui.min.css +7 -0
  127. data/vendor/assets/stylesheets/select2-foundation-theme.css +249 -0
  128. data/vendor/assets/stylesheets/select2.css +515 -0
  129. metadata +68 -27
  130. data/app/assets/images/decidim/decidim_awesome/loading.gif +0 -0
  131. data/app/assets/javascripts/decidim/decidim_awesome/admin.js +0 -3
  132. data/app/assets/javascripts/decidim/decidim_awesome/editors/markdown_view.js.es6 +0 -12
  133. data/app/assets/stylesheets/decidim/decidim_awesome/application.scss +0 -8
  134. data/app/assets/stylesheets/decidim/decidim_awesome/editors/markdown_view.scss +0 -27
  135. data/app/awesome_overrides/presenters/decidim/proposals/proposal_presenter_override.rb +0 -58
  136. data/lib/decidim/decidim_awesome/content_renderers/markdown_renderer.rb +0 -18
  137. data/lib/decidim/decidim_awesome/content_renderers.rb +0 -9
@@ -0,0 +1,83 @@
1
+ <%= form_required_explanation %>
2
+
3
+ <div class="field hashtags__container">
4
+ <%= form.text_field :title, class: "js-hashtags", value: form_presenter.title %>
5
+ </div>
6
+
7
+ <div class="field hashtags__container">
8
+ <%= text_editor_for_proposal_body(form) %>
9
+ </div>
10
+
11
+ <% if @form.component_automatic_hashtags.any? %>
12
+ <div class="field">
13
+ <%= form.label :automatic_hashtags %>
14
+ <div class="checkboxes hashtags">
15
+ <% @form.component_automatic_hashtags.each do |hashtag| %>
16
+ <label>
17
+ <%= check_box_tag "", "", { checked: true }, { disabled: true } %>#<%= hashtag %>
18
+ </label>
19
+ <% end %>
20
+ </div>
21
+ </div>
22
+ <% end %>
23
+
24
+ <% if @form.component_suggested_hashtags.any? %>
25
+ <div class="field">
26
+ <%= form.label :suggested_hashtags, nil, for: nil %>
27
+ <div class="checkboxes hashtags">
28
+ <%= form.collection_check_boxes :suggested_hashtags, @form.component_suggested_hashtags.map {|hashtag| [hashtag.downcase, "##{hashtag}"]}, :first, :last do |option|
29
+ option.label { option.check_box(checked: @form.suggested_hashtag_checked?(option.value)) + option.text }
30
+ end %>
31
+ </div>
32
+ </div>
33
+ <% end %>
34
+
35
+ <% if @form.geocoding_enabled? %>
36
+ <div class="field">
37
+ <%= form.check_box :has_address, checked: form_has_address? %>
38
+ </div>
39
+
40
+ <div class="field" id="address_input">
41
+ <%= form.geocoding_field :address %>
42
+ </div>
43
+ <% end %>
44
+
45
+ <% if @form.categories&.any? %>
46
+ <div class="field">
47
+ <%= form.categories_select :category_id, @form.categories, include_blank: t("decidim.proposals.collaborative_drafts.edit.select_a_category") %>
48
+ </div>
49
+ <% end %>
50
+
51
+ <% if current_component.has_subscopes? %>
52
+ <div class="field">
53
+ <%= scopes_picker_field form, :scope_id, root: current_component.scope %>
54
+ </div>
55
+ <% end %>
56
+
57
+ <% if current_organization.user_groups_enabled? && Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.any? %>
58
+ <div class="field">
59
+ <%= user_group_select_field form, :user_group_id %>
60
+ </div>
61
+ <% end %>
62
+
63
+ <% if component_settings.attachments_allowed? %>
64
+ <fieldset>
65
+ <legend><%= t("attachment_legend", scope: "decidim.proposals.collaborative_drafts.edit") %></legend>
66
+ <%= form.fields_for :attachment, @form.attachment do |nested_form| %>
67
+ <div class="field">
68
+ <%= nested_form.text_field :title %>
69
+ </div>
70
+
71
+ <div class="field">
72
+ <%= nested_form.upload :file, optional: false %>
73
+ <% if @form.errors[:attachment].present? %>
74
+ <% @form.errors[:attachment].each do |message| %>
75
+ <small class="form-error is-visible">
76
+ <%= message %>
77
+ </small>
78
+ <% end %>
79
+ <% end %>
80
+ </div>
81
+ <% end %>
82
+ </fieldset>
83
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= render partial: "#{version_prefix}/decidim/proposals/collaborative_drafts/show" %>
@@ -1,3 +1,7 @@
1
+ <% def icon_aria_selected_link_to(text, link, icon_name, options = {})
2
+ aria_selected_link_to(safe_join([icon(icon_name), text]), link, options)
3
+ end %>
4
+
1
5
  <% content_for :secondary_nav do %>
2
6
  <div class="secondary-nav">
3
7
  <div class="secondary-nav__title">
@@ -8,36 +12,46 @@
8
12
  <% if config_enabled?([:allow_images_in_full_editor, :allow_images_in_small_editor, :use_markdown_editor,
9
13
  :allow_images_in_markdown_editor]) %>
10
14
  <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:editors)) %> class="is-active" <% end %>>
11
- <%= aria_selected_link_to I18n.t("menu.editors", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:editors) %>
15
+ <%= icon_aria_selected_link_to I18n.t("menu.editors", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:editors), "text" %>
16
+ </li>
17
+ <% end %>
18
+ <% if config_enabled? :allow_images_in_proposals %>
19
+ <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:proposals)) %> class="is-active" <% end %>>
20
+ <%= icon_aria_selected_link_to I18n.t("menu.proposals", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:proposals), "document" %>
12
21
  </li>
13
22
  <% end %>
14
23
  <% if config_enabled? :auto_save_forms %>
15
24
  <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:surveys)) %> class="is-active" <% end %>>
16
- <%= aria_selected_link_to I18n.t("menu.surveys", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:surveys) %>
25
+ <%= icon_aria_selected_link_to I18n.t("menu.surveys", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:surveys), "spreadsheet" %>
17
26
  </li>
18
27
  <% end %>
19
28
  <% if config_enabled? :scoped_styles %>
20
29
  <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:styles)) %> class="is-active" <% end %>>
21
- <%= aria_selected_link_to I18n.t("menu.styles", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:styles) %>
30
+ <%= icon_aria_selected_link_to I18n.t("menu.styles", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:styles), "brush" %>
22
31
  </li>
23
32
  <% end %>
24
- <% if config_enabled? :allow_images_in_proposals %>
25
- <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:proposals)) %> class="is-active" <% end %>>
26
- <%= aria_selected_link_to I18n.t("menu.proposals", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:proposals) %>
33
+ <% if config_enabled? :proposal_custom_fields %>
34
+ <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:proposal_custom_fields)) %> class="is-active" <% end %>>
35
+ <%= icon_aria_selected_link_to I18n.t("menu.proposal_custom_fields", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:proposal_custom_fields), "layers" %>
27
36
  </li>
28
37
  <% end %>
29
- <% if config_enabled?([:intergram_for_admins, :intergram_for_public]) %>
30
- <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:livechat)) %> class="is-active" <% end %>>
31
- <%= aria_selected_link_to I18n.t("menu.livechat", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:livechat) %>
38
+ <% if config_enabled? :scoped_admins %>
39
+ <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:admins)) %> class="is-active" <% end %>>
40
+ <%= icon_aria_selected_link_to I18n.t("menu.admins", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:admins), "people" %>
32
41
  </li>
33
42
  <% end %>
34
43
  <% if config_enabled? :menu %>
35
44
  <li <% if is_active_link?(decidim_admin_decidim_awesome.menu_hacks_path) %> class="is-active" <% end %>>
36
- <%= aria_selected_link_to I18n.t("menu.menu_hacks", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.menu_hacks_path %>
45
+ <%= icon_aria_selected_link_to I18n.t("menu.menu_hacks", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.menu_hacks_path, "menu" %>
46
+ </li>
47
+ <% end %>
48
+ <% if config_enabled?([:intergram_for_admins, :intergram_for_public]) %>
49
+ <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:livechat)) %> class="is-active" <% end %>>
50
+ <%= icon_aria_selected_link_to I18n.t("menu.livechat", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:livechat), "chat" %>
37
51
  </li>
38
52
  <% end %>
39
53
  <li <% if is_active_link?(decidim_admin_decidim_awesome.checks_path) %> class="is-active" <% end %>>
40
- <%= aria_selected_link_to I18n.t("menu.checks", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.checks_path %>
54
+ <%= icon_aria_selected_link_to I18n.t("menu.checks", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.checks_path, "pulse" %>
41
55
  </li>
42
56
  </ul>
43
57
  </div>
@@ -1,6 +1,8 @@
1
1
  <script>
2
2
  window.DecidimAwesome = <%= javascript_config_vars %>;
3
+ window.DecidimAwesome.version = "<%= Decidim::DecidimAwesome::VERSION %>";
3
4
  window.DecidimAwesome.editor_uploader_path = "<%= decidim_decidim_awesome.editor_images_path %>";
5
+ window.DecidimAwesome.rename_scope_label_path = "<%= decidim_admin_decidim_awesome.rename_scope_label_path %>";
4
6
  window.DecidimAwesome.texts = {
5
7
  "drag_and_drop_image": "<%= j t(".drag_and_drop_image") %>",
6
8
  "autosaved_success": "<%= j t(".autosaved_success") %>",
@@ -21,3 +23,5 @@ window.DecidimAwesome.texts = {
21
23
  <% end %>
22
24
  <% end %>
23
25
  </script>
26
+
27
+ <%= javascript_include_tag "decidim/decidim_awesome/proposals/custom_fields" if awesome_proposal_custom_fields %>
@@ -1,3 +1,3 @@
1
1
  <style media="all">
2
- <%= awesome_custom_styles %>
2
+ <%== awesome_custom_styles.join("\n").html_safe %>
3
3
  </style>
@@ -0,0 +1,134 @@
1
+ <% add_decidim_page_title(Decidim::Proposals::CollaborativeDraft.model_name.human(count: 2)) %>
2
+ <% add_decidim_meta_tags({
3
+ description: present(@collaborative_draft).body,
4
+ title: present(@collaborative_draft).title,
5
+ url: collaborative_draft_url(@collaborative_draft.id)
6
+ }) %>
7
+
8
+ <% if current_user.nil? || allowed_to?(:request_access, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
9
+ <div class="row">
10
+ <div class="columns">
11
+ <div class="callout secondary"><%= t("info-message", scope:"decidim.proposals.collaborative_drafts.show").html_safe %></div>
12
+ </div>
13
+ </div>
14
+ <% end %>
15
+
16
+ <div class="row column view-header">
17
+ <div class="m-bottom">
18
+ <%= link_to collaborative_drafts_path do %>
19
+ <%= icon "chevron-left", class: "icon--small", role: "img", "aria-hidden": true %>
20
+ <%= t("back", scope:"decidim.proposals.collaborative_drafts.show") %>
21
+ <% end %>
22
+ </div>
23
+
24
+ <h2 class="heading2">
25
+ <%= present(@collaborative_draft).title(links: true, html_escape: true) %>
26
+ </h2>
27
+
28
+ <%= cell("decidim/coauthorships", @collaborative_draft, has_actions: true, size: 3, context: { current_user: current_user }) %>
29
+ </div>
30
+
31
+ <div class="row">
32
+ <div class="columns mediumlarge-8 large-9">
33
+ <div class="section">
34
+ <%== cell("decidim/proposals/collaborative_draft_m", @collaborative_draft, full_badge: true).badge %>
35
+
36
+ <%= render_proposal_body(@collaborative_draft) %>
37
+
38
+ <% if component_settings.geocoding_enabled? %>
39
+ <%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @collaborative_draft } %>
40
+ <% end %>
41
+
42
+ <%= cell "decidim/tags", @collaborative_draft, context: { extra_classes: ["tags--collaborative-draft"] } %>
43
+ </div>
44
+ </div>
45
+
46
+ <div class="columns section view-side mediumlarge-4 large-3">
47
+ <% if allowed_to?(:publish, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
48
+ <div class="card text-center" id="collaborative_draft_publish">
49
+ <div class="card__content">
50
+ <%= cell "decidim/proposals/irreversible_action_modal", @collaborative_draft, action: :publish %>
51
+ <div class="text-small">
52
+ <%= t("publish_info", scope:"decidim.proposals.collaborative_drafts.show") %>
53
+ <%= cell "decidim/proposals/irreversible_action_modal", @collaborative_draft, action: :withdraw %>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ <% end %>
58
+
59
+ <div class="card text-center">
60
+ <div class="card__content">
61
+ <% if @collaborative_draft.published? %>
62
+ <%= cell "decidim/proposals/collaborative_draft_link_to_proposal", @collaborative_draft %>
63
+ <% else %>
64
+ <div>
65
+ <%= resource_version_number(@collaborative_draft.versions_count, "text-large") %>
66
+ <div class="text-medium">
67
+ <%= resource_version_of(@collaborative_draft.versions_count) %>
68
+ </div>
69
+ </div>
70
+
71
+ <div>
72
+ <span class="text-medium">
73
+ <%= link_to_other_resource_versions(collaborative_draft_versions_path(@collaborative_draft)) %>
74
+ </span>
75
+ </div>
76
+ <% end %>
77
+
78
+ <% if allowed_to?(:edit, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
79
+ <%= link_to t("edit", scope:"decidim.proposals.collaborative_drafts.show"), edit_collaborative_draft_path(@collaborative_draft), class: "button hollow expanded button--sc mt-s", id: "collaborative_draft_edit" %>
80
+ <% end %>
81
+
82
+ <%= render "request_access_form" %>
83
+
84
+ <% if @collaborative_draft.requesters.include? current_user %>
85
+ <button type="button" class="button expanded button--sc mt-s">
86
+ <%= t("requested_access", scope:"decidim.proposals.collaborative_drafts.show") %>
87
+ </button>
88
+ <% end %>
89
+ </div>
90
+
91
+ <div class="card__status">
92
+ <ul class="card-data">
93
+ <li class="card-data__item authors_status">
94
+ <%= with_tooltip t("decidim.proposals.models.collaborative_draft.fields.authors") do %>
95
+ <%= icon("people", class: "icon--small", role: "img", "aria-hidden": true) + " " + "#{@collaborative_draft.versions.group_by(&:whodunnit).size}" %>
96
+ <% end %>
97
+ </li>
98
+
99
+ <li class="card-data__item versions_status">
100
+ <%= link_to collaborative_draft_versions_path(@collaborative_draft) do %>
101
+ <%= with_tooltip t("decidim.proposals.models.collaborative_draft.fields.contributions") do %>
102
+ <%= icon("pencil", class: "icon--small", role: "img", "aria-hidden": true) + " " + "#{@collaborative_draft.versions.count}" %>
103
+ <% end %>
104
+ <% end %>
105
+ </li>
106
+ <li class="card-data__item">
107
+ <%= link_to "#comments" do %>
108
+ <%= with_tooltip t("decidim.proposals.models.collaborative_draft.fields.comments") do %>
109
+ <%= icon("comment-square", class: "icon--small", role: "img", "aria-hidden": true) + " " + "#{@collaborative_draft.comments_count}" %>
110
+ <% end %>
111
+ <% end %>
112
+ </li>
113
+ </ul>
114
+ </div>
115
+ </div>
116
+
117
+ <%= render partial: "collaborator_requests" %>
118
+
119
+ <%= resource_reference(@collaborative_draft) %>
120
+
121
+ <%= render partial: "decidim/shared/share_modal" %>
122
+ </div>
123
+ </div>
124
+
125
+ <%= attachments_for @collaborative_draft %>
126
+ <%= comments_for @collaborative_draft %>
127
+
128
+ <%=
129
+ render partial: "decidim/shared/flag_modal", locals: {
130
+ reportable: @collaborative_draft,
131
+ form: @report_form,
132
+ url: decidim.report_path(sgid: @collaborative_draft.to_sgid.to_s)
133
+ }
134
+ %>
@@ -21,7 +21,7 @@
21
21
  <%= stylesheet_link_tag "application", media: "all" %>
22
22
  <%= invisible_captcha_styles %>
23
23
 
24
- <%= stylesheet_link_tag "decidim/decidim_awesome/application", media: "all" %>
24
+ <%= stylesheet_link_tag "decidim/decidim_awesome/awesome_application", media: "all" %>
25
25
  <%= stylesheet_link_tag(tenant_stylesheets, media: "all") if tenant_stylesheets %>
26
26
  <%= render(partial: "layouts/decidim/decidim_awesome/custom_styles") if awesome_custom_styles %>
27
27
 
@@ -8,5 +8,5 @@
8
8
 
9
9
  <%= render partial: "layouts/decidim/decidim_awesome/awesome_config" %>
10
10
 
11
- <%= stylesheet_link_tag "decidim/decidim_awesome/admin", media: "all" %>
11
+ <%= stylesheet_link_tag "decidim/decidim_awesome/awesome_admin", media: "all" %>
12
12
  <%= javascript_include_tag "decidim/decidim_awesome/legacy_admin" %>
@@ -0,0 +1,128 @@
1
+ <% add_decidim_page_title(Decidim::Proposals::CollaborativeDraft.model_name.human(count: 2)) %>
2
+ <% add_decidim_meta_tags({
3
+ description: present(@collaborative_draft).body,
4
+ title: present(@collaborative_draft).title,
5
+ url: collaborative_draft_url(@collaborative_draft.id)
6
+ }) %>
7
+
8
+ <% if current_user.nil? || allowed_to?(:request_access, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
9
+ <div class="row">
10
+ <div class="columns">
11
+ <div class="callout secondary"><%= t("info-message", scope:"decidim.proposals.collaborative_drafts.show").html_safe %></div>
12
+ </div>
13
+ </div>
14
+ <% end %>
15
+
16
+ <div class="row column view-header">
17
+ <div class="m-bottom">
18
+ <%= link_to collaborative_drafts_path do %>
19
+ <%= icon "chevron-left", class: "icon--small", role: "img", "aria-hidden": true %>
20
+ <%= t("back", scope:"decidim.proposals.collaborative_drafts.show") %>
21
+ <% end %>
22
+ </div>
23
+
24
+ <h2 class="heading2">
25
+ <%= present(@collaborative_draft).title(links: true, html_escape: true) %>
26
+ </h2>
27
+
28
+ <%= cell("decidim/coauthorships", @collaborative_draft, has_actions: true, size: 3, context: { current_user: current_user }) %>
29
+ </div>
30
+
31
+ <div class="row">
32
+ <div class="columns mediumlarge-8 large-9">
33
+ <div class="section">
34
+ <%== cell("decidim/proposals/collaborative_draft_m", @collaborative_draft, full_badge: true).badge %>
35
+
36
+ <%= render_proposal_body(@collaborative_draft) %>
37
+
38
+ <% if component_settings.geocoding_enabled? %>
39
+ <%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @collaborative_draft } %>
40
+ <% end %>
41
+
42
+ <%= cell "decidim/tags", @collaborative_draft, context: { extra_classes: ["tags--collaborative-draft"] } %>
43
+ </div>
44
+ </div>
45
+
46
+ <div class="columns section view-side mediumlarge-4 large-3">
47
+ <% if allowed_to?(:publish, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
48
+ <div class="card text-center" id="collaborative_draft_publish">
49
+ <div class="card__content">
50
+ <%= cell "decidim/proposals/irreversible_action_modal", @collaborative_draft, action: :publish %>
51
+ <div class="text-small">
52
+ <%= t("publish_info", scope:"decidim.proposals.collaborative_drafts.show") %>
53
+ <%= cell "decidim/proposals/irreversible_action_modal", @collaborative_draft, action: :withdraw %>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ <% end %>
58
+
59
+ <div class="card text-center">
60
+ <div class="card__content">
61
+ <% if @collaborative_draft.published? %>
62
+ <%= cell "decidim/proposals/collaborative_draft_link_to_proposal", @collaborative_draft %>
63
+ <% else %>
64
+ <div>
65
+ <%= resource_version_number(@collaborative_draft.versions_count, "text-large") %>
66
+ <div class="text-medium">
67
+ <%= resource_version_of(@collaborative_draft.versions_count) %>
68
+ </div>
69
+ </div>
70
+
71
+ <div>
72
+ <span class="text-medium">
73
+ <%= link_to_other_resource_versions(collaborative_draft_versions_path(@collaborative_draft)) %>
74
+ </span>
75
+ </div>
76
+ <% end %>
77
+
78
+ <% if allowed_to?(:edit, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
79
+ <%= link_to t("edit", scope:"decidim.proposals.collaborative_drafts.show"), edit_collaborative_draft_path(@collaborative_draft), class: "button hollow expanded button--sc mt-s", id: "collaborative_draft_edit" %>
80
+ <% end %>
81
+
82
+ <%= render "request_access_form" %>
83
+
84
+ <% if @collaborative_draft.requesters.include? current_user %>
85
+ <button type="button" class="button expanded button--sc mt-s">
86
+ <%= t("requested_access", scope:"decidim.proposals.collaborative_drafts.show") %>
87
+ </button>
88
+ <% end %>
89
+ </div>
90
+
91
+ <div class="card__status">
92
+ <ul class="card-data">
93
+ <li class="card-data__item authors_status">
94
+ <%= with_tooltip t("decidim.proposals.models.collaborative_draft.fields.authors") do %>
95
+ <%= icon("people", class: "icon--small", role: "img", "aria-hidden": true) + " " + "#{@collaborative_draft.versions.group_by(&:whodunnit).size}" %>
96
+ <% end %>
97
+ </li>
98
+
99
+ <li class="card-data__item versions_status">
100
+ <%= link_to collaborative_draft_versions_path(@collaborative_draft) do %>
101
+ <%= with_tooltip t("decidim.proposals.models.collaborative_draft.fields.contributions") do %>
102
+ <%= icon("pencil", class: "icon--small", role: "img", "aria-hidden": true) + " " + "#{@collaborative_draft.versions.count}" %>
103
+ <% end %>
104
+ <% end %>
105
+ </li>
106
+ <li class="card-data__item">
107
+ <%= link_to "#comments" do %>
108
+ <%= with_tooltip t("decidim.proposals.models.collaborative_draft.fields.comments") do %>
109
+ <%= icon("comment-square", class: "icon--small", role: "img", "aria-hidden": true) + " " + "#{@collaborative_draft.comments_count}" %>
110
+ <% end %>
111
+ <% end %>
112
+ </li>
113
+ </ul>
114
+ </div>
115
+ </div>
116
+
117
+ <%= render partial: "collaborator_requests" %>
118
+
119
+ <%= resource_reference(@collaborative_draft) %>
120
+
121
+ <%= render partial: "decidim/shared/share_modal" %>
122
+ </div>
123
+ </div>
124
+
125
+ <%= attachments_for @collaborative_draft %>
126
+ <%= comments_for @collaborative_draft %>
127
+
128
+ <%= cell("decidim/flag_modal", @collaborative_draft) %>
@@ -21,7 +21,7 @@
21
21
  <%= stylesheet_link_tag "application", media: "all" %>
22
22
  <%= invisible_captcha_styles %>
23
23
 
24
- <%= stylesheet_link_tag "decidim/decidim_awesome/application", media: "all" %>
24
+ <%= stylesheet_link_tag "decidim/decidim_awesome/awesome_application", media: "all" %>
25
25
  <%= stylesheet_link_tag(tenant_stylesheets, media: "all") if tenant_stylesheets %>
26
26
  <%= render(partial: "layouts/decidim/decidim_awesome/custom_styles") if awesome_custom_styles %>
27
27
 
@@ -36,4 +36,4 @@
36
36
  <%= content_for :header_snippets %>
37
37
 
38
38
  <%= render partial: "layouts/decidim/decidim_awesome/awesome_config" %>
39
- <%= javascript_include_tag "decidim/decidim_awesome/application" %>
39
+ <%= javascript_include_tag "decidim/decidim_awesome/awesome_application" %>
@@ -8,5 +8,5 @@
8
8
 
9
9
  <%= render partial: "layouts/decidim/decidim_awesome/awesome_config" %>
10
10
 
11
- <%= stylesheet_link_tag "decidim/decidim_awesome/admin", media: "all" %>
12
- <%= javascript_include_tag "decidim/decidim_awesome/admin" %>
11
+ <%= stylesheet_link_tag "decidim/decidim_awesome/awesome_admin", media: "all" %>
12
+ <%= javascript_include_tag "decidim/decidim_awesome/awesome_admin" %>
@@ -17,7 +17,9 @@ ca:
17
17
  intergram_title_closed: Títol del xat tancat
18
18
  intergram_title_open: Títol del xat obert
19
19
  intergram_use_floating_button: Si està marcat, el xat tancat és sempre un botó en lloc d'un text
20
- scoped_styles: 'Estils personalitzats #%{id}'
20
+ proposal_custom_fields: 'Camps personalitzats #%{id}'
21
+ scoped_admins: 'Grup d''administradores acotades #%{id}'
22
+ scoped_styles: 'Personalització d''estils #%{id}'
21
23
  use_markdown_editor: Fes servir l'editor Markdown en comptes de l'editor HTML
22
24
  constraint:
23
25
  component_id: o específicament a
@@ -30,6 +32,8 @@ ca:
30
32
  target: Obre a
31
33
  url: URL
32
34
  visibility: Visibilitat
35
+ proposal:
36
+ proposal_custom_fields: Camps personalitzats
33
37
  decidim:
34
38
  admin:
35
39
  menu:
@@ -84,22 +88,37 @@ ca:
84
88
  head_tags: Etiquetes Awesome incloses a la capçalera de l'aplicació
85
89
  title: Anàlisi de compatibilitat amb el sistema
86
90
  config:
91
+ caution: 'NOTA: Aquesta funció modifica en gran mesura alguns comportaments predeterminats que podrien provocar resultats inesperats. Utilitzeu-lo amb precaució!'
87
92
  constraints:
88
93
  add_condition: Afegeix una restricció
89
94
  always: Sempre
95
+ cannot_be_destroyed: Disculpa, però això no es pot eliminar. Aquesta configuració necessita almenys una restricció.
90
96
  delete: Esborra
91
97
  edit: Edita
92
98
  title: 'S''aplica només en aquests casos:'
99
+ create_proposal_custom_field:
100
+ error: Error en crear una nova caixa de "camps personalitzats"! %{error}
101
+ success: 'Caixa de "camps personalitzats" %{key} creada correctament'
102
+ create_scoped_admin:
103
+ error: Error en crear una nou grup d'administradores! %{error}
104
+ success: Grup d'administradores %{key} creat correctament
93
105
  create_scoped_style:
94
106
  error: Error en crear una nova caixa CSS! %{error}
95
107
  success: Caixa CSS %{key} creada correctament
108
+ destroy_proposal_custom_field:
109
+ error: Error en eliminar la caixa de "camps personalitzats"! %{error}
110
+ success: 'Caixa de "camps personalitzats" %{key} eliminada correctament'
111
+ destroy_scoped_admin:
112
+ error: Error en eliminar el grup d'administradores! %{error}
113
+ success: Grup d'administradores %{key} eliminat correctament
96
114
  destroy_scoped_style:
97
115
  error: Error en eliminar una caixa CSS! %{error}
98
116
  success: Caixa CSS %{key} eliminada correctament
99
- experimental: Opcions experimentals
100
117
  form:
118
+ edit_label: Canviar el nom de l'etiqueta
101
119
  errors:
102
120
  incorrect_css: 'El CSS de la caixa #%{key} no és vàlid'
121
+ incorrect_json: 'La sintaxi JSON de la caixa #%{key} és invàlida'
103
122
  help:
104
123
  allow_images_in_full_editor: Això afegirà un botó per pujar imatges a l'editor HTML complet.
105
124
  allow_images_in_markdown_editor: Això permetrà a l'editor markdown pujar imatges amb "copiar i enganxar" o "arrastrant i deixant anar".
@@ -109,13 +128,27 @@ ca:
109
128
  drag_and_drop_supported: Quan es pugin imatges, es pot fer a través del mètode de "arrossegar i deixar anar". Les imatges seran pujades al servidor i inserides com recursos externs (no es fa servir codificació en línia base64).
110
129
  intergram_about: Intergram utilitza el Telegram Messenger per gestionar un widget de xat en viu de suport incrustat a la part inferior de la pàgina.
111
130
  intergram_config: 'Convida a la <a href="https://web.telegram.org/#/im?p=@IntergramBot">@Intergram bot</a> al teu grup o comença un xat amb ella directament. <a href="https://github.com/idoco/intergram#embed-intergram-in-your-website-with-these-2-simple-steps">+ info</a>'
131
+ proposal_custom_fields: Crea camps personalitzats per a propostes que només s'apliquin a determinades parts de la web pública (per fer-ho, utilitza l'editor de restriccions)
132
+ proposal_custom_fields_example: Les dades son desades en un objecte XML fent servir atributs compatibles amb HTML (elements DL, DT, DD) que reemplacen el "cos" de la proposat normal.
133
+ proposal_custom_fields_translations: "Les etiquetes, el text d’ajuda, placeholders i els valors predeterminats poden utilitzar les traduccions personalitzades de la vostra aplicació.\nPer a això, en lloc d'utilitzar un text literal, utilitzeu la clau i18n (ha de contenir almenys un punt).\nPer exemple:\n- \"activemodel.attributes.proposal.title\" en lloc de \"Títol\"\n- \"activemodel.attributes.proposal.address\" en lloc de \"Adreça\"\nO bé utilitzeu les vostres pròpies tecles en combinació amb altres eines per definir traduccions (per exemple, mitjançant el mòdul Personalitzador de termes):\n- \"myapp.custom_fields.bio\" en lloc de \"Biografia\""
134
+ scoped_admins: Promou usuaries normals a administradores amb accés limitat a certes parts de la web pública (feu servir l'editor de restriccions per això). Noteu que afegir usuaries que ja tenen permisos d'administració no té cap efecte.
112
135
  scoped_styles: Crea CSS personalitzats que només s'apliquin a determinades parts de la web pública (per fer-ho, utilitza l'editor de restriccions)
113
136
  scoped_styles_variables: 'Pots fer servir les següents variables CSS pels colors personalitzats de l''organització:'
114
137
  use_markdown_editor: Això substituirà l'editor HTML (Quill), en el seu lloc s'utilitzarà un editor Markdown tant a l'admin com a la pàgina pública per processar el text (a la base de dades el text es desarà com a markdown)
115
- form_styles:
138
+ form_proposal_custom_fields:
139
+ new: Afegeix una nova caixa de "camps personalitzats"
140
+ remove: Elimina aquesta caixa de "camps personalitzats"
141
+ sure_to_remove: Estàs segura que vols eliminar aquesta caixa de camps personalitzats?
142
+ form_scoped_admins:
143
+ new: Afegir un nou grup "d'Administradores acotades"
144
+ remove: Elimineu aquest grup "d'Administradores acotades"
145
+ sure_to_remove: Estàs segura que vols eliminar aquest grup "d'Administradores acotades"?
146
+ form_scoped_styles:
116
147
  new: Afegeix una nova caixa CSS
117
148
  remove: Elimina aquesta caixa CSS
118
149
  sure_to_remove: Estàs segura que vols eliminar aquesta caixa CSS?
150
+ none: "⛔ Mai! - Desactiva qualsevol altra restricció"
151
+ process_groups: Grup de processos
119
152
  rich_text_editor_in_public_views: 'NOTA: "Editor de text enriquit per participants" està habilitat a la configuració general, aquesta opció no aplicarà. Feu servir les modificacions d''editor general per afegir imatges a les propostes.'
120
153
  show:
121
154
  title: Modificacions per %{setting}
@@ -145,10 +178,12 @@ ca:
145
178
  error: Error actualitzant la restricció
146
179
  success: Restricció actualitzada correctament
147
180
  menu:
181
+ admins: Administradores acotades
148
182
  checks: Compatibilitat de sistema
149
183
  editors: Modificacions als editors
150
184
  livechat: Xat en directe
151
185
  menu_hacks: Retocs al menú
186
+ proposal_custom_fields: Camps personalitzats per propostes
152
187
  proposals: Modificacions a propostes
153
188
  styles: Estils personalitzats
154
189
  surveys: Formularis i enquestes
@@ -193,7 +228,31 @@ ca:
193
228
  intro_message: Hola! En què et puc ajudar?
194
229
  title_closed: Fes clic per xatejar!
195
230
  title_open: Parlem!
231
+ content_blocks:
232
+ map:
233
+ collapse: Inicia amb el menú col·lapsat
234
+ map_center: Centre del mapa (Latitud, Longitud)
235
+ map_center_help: 'Utilitza un punt per marcar els decimals (pe: 41.38879, 2.15899). Deixa aquest camp buit per incloure automàticament tots els marcadors'
236
+ map_height: Alçada del mapa (px)
237
+ map_settings: Configuració del mapa
238
+ map_zoom: Zoom (qualsevol nombre entre 0 i 18)
239
+ map_zoom_help: Només s’aplica si es defineix el punt central del mapa
240
+ menu_amendments: Mostrar esmenes
241
+ menu_meetings: Mostrar trobades
242
+ name: Mapa global
243
+ show_accepted: Mostra les propostes acceptades
244
+ show_evaluating: Mostra les propostes en avaluació
245
+ show_not_answered: Mostra les propostes pendents de contestar
246
+ show_rejected: Mostra les propostes rebutjades
247
+ show_withdrawn: Mostra les propostes retirades
248
+ text_settings: Configuració del text
249
+ title: Títol
250
+ truncate: Nombre màxim de caràcters per les descripcions emergents
196
251
  credits: Decidim Awesome %{version} · Made with ♥ by Platoniq
252
+ custom_fields:
253
+ errors:
254
+ invalid_fields: No s'ha pogut analitzar el contingut però s'ha assignat al camp '%{field}'
255
+ invalid_xml: 'No s''ha pogut analitzar el contingut: no s''han trobat els elements DL/DD a l''XML'
197
256
  editor_images:
198
257
  create:
199
258
  error: Error en pujar la imatge!