decidim-decidim_awesome 0.6.2 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +25 -6
  3. data/app/assets/config/decidim_admin_decidim_awesome_manifest.js +1 -0
  4. data/app/assets/javascripts/decidim/decidim_awesome/admin.js +1 -0
  5. data/app/assets/javascripts/decidim/decidim_awesome/admin/codemirror.js.es6 +15 -0
  6. data/app/assets/javascripts/decidim/decidim_awesome/admin/form_exit_warn.js.es6 +30 -0
  7. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/hashtags.js.es6 +48 -0
  8. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/layers.js.es6 +106 -0
  9. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/legacy_map.js.es6 +12 -19
  10. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/legacy_proposals.js.es6 +3 -2
  11. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/map.js.es6 +166 -170
  12. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/markers.js.es6 +56 -0
  13. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/meetings.js.es6 +4 -3
  14. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/proposals.js.es6 +17 -4
  15. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/utilities.js.es6 +48 -0
  16. data/app/assets/stylesheets/decidim/decidim_awesome/admin.scss +10 -3
  17. data/app/assets/stylesheets/decidim/decidim_awesome/admin/codemirror.scss +16 -0
  18. data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/leaflet.scss.erb +9 -0
  19. data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/map.scss +95 -0
  20. data/app/assets/stylesheets/decidim/decidim_awesome/editors/markdown_editor.scss +1 -1
  21. data/app/awesome_overrides/presenters/decidim/menu_presenter_override.rb +39 -0
  22. data/app/commands/decidim/decidim_awesome/admin/create_menu_hack.rb +51 -0
  23. data/app/commands/decidim/decidim_awesome/admin/create_scoped_style.rb +34 -0
  24. data/app/commands/decidim/decidim_awesome/admin/destroy_menu_hack.rb +47 -0
  25. data/app/commands/decidim/decidim_awesome/admin/destroy_scoped_style.rb +40 -0
  26. data/app/commands/decidim/decidim_awesome/admin/update_config.rb +5 -2
  27. data/app/commands/decidim/decidim_awesome/admin/update_menu_hack.rb +47 -0
  28. data/app/controllers/decidim/decidim_awesome/admin/application_controller.rb +4 -3
  29. data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +40 -4
  30. data/app/controllers/decidim/decidim_awesome/admin/constraints_controller.rb +13 -0
  31. data/app/controllers/decidim/decidim_awesome/admin/menu_hacks_controller.rb +116 -0
  32. data/app/forms/decidim/decidim_awesome/admin/config_form.rb +22 -2
  33. data/app/forms/decidim/decidim_awesome/admin/constraint_form.rb +0 -2
  34. data/app/forms/decidim/decidim_awesome/admin/intergram_form.rb +0 -2
  35. data/app/forms/decidim/decidim_awesome/admin/menu_form.rb +39 -0
  36. data/app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb +5 -1
  37. data/app/helpers/decidim/decidim_awesome/map_helper.rb +9 -3
  38. data/app/permissions/decidim/decidim_awesome/admin/permissions.rb +19 -0
  39. data/app/permissions/decidim/decidim_awesome/permissions.rb +2 -0
  40. data/app/views/decidim/decidim_awesome/admin/config/_form_styles.html.erb +28 -0
  41. data/app/views/decidim/decidim_awesome/admin/config/show.html.erb +2 -3
  42. data/app/views/decidim/decidim_awesome/admin/menu_hacks/_form.html.erb +7 -0
  43. data/app/views/decidim/decidim_awesome/admin/menu_hacks/edit.html.erb +13 -0
  44. data/app/views/decidim/decidim_awesome/admin/menu_hacks/index.html.erb +44 -0
  45. data/app/views/decidim/decidim_awesome/admin/menu_hacks/new.html.erb +13 -0
  46. data/app/views/decidim/decidim_awesome/map_component/map/show.html.erb +9 -6
  47. data/app/views/layouts/decidim/admin/decidim_awesome.html.erb +10 -0
  48. data/app/views/layouts/decidim/decidim_awesome/_awesome_config.html.erb +5 -2
  49. data/app/views/layouts/decidim/decidim_awesome/_custom_styles.html.erb +3 -0
  50. data/app/views/v0.22/layouts/decidim/_head.html.erb +1 -0
  51. data/app/views/v0.23/layouts/decidim/_head.html.erb +1 -0
  52. data/config/locales/ca.yml +70 -2
  53. data/config/locales/cs.yml +71 -3
  54. data/config/locales/en.yml +75 -2
  55. data/config/locales/es.yml +70 -2
  56. data/config/locales/eu.yml +225 -0
  57. data/config/locales/fr.yml +172 -104
  58. data/config/locales/nl.yml +225 -0
  59. data/config/locales/sv.yml +93 -25
  60. data/lib/decidim/decidim_awesome.rb +27 -0
  61. data/lib/decidim/decidim_awesome/admin_engine.rb +3 -0
  62. data/lib/decidim/decidim_awesome/awesome_helpers.rb +16 -0
  63. data/lib/decidim/decidim_awesome/checksums.yml +6 -0
  64. data/lib/decidim/decidim_awesome/config.rb +13 -12
  65. data/lib/decidim/decidim_awesome/engine.rb +1 -1
  66. data/lib/decidim/decidim_awesome/map_component/component.rb +7 -1
  67. data/lib/decidim/decidim_awesome/menu_hacker.rb +90 -0
  68. data/lib/decidim/decidim_awesome/test/shared_examples/config_examples.rb +4 -2
  69. data/lib/decidim/decidim_awesome/test/shared_examples/menu_hack_contexts.rb +71 -0
  70. data/lib/decidim/decidim_awesome/version.rb +1 -1
  71. data/vendor/assets/javascripts/codemirror.js +9801 -0
  72. data/vendor/assets/javascripts/jquery.truncate.js +105 -0
  73. data/vendor/assets/javascripts/keymap/sublime.js +720 -0
  74. data/vendor/assets/javascripts/mode/css/css.js +864 -0
  75. data/vendor/assets/stylesheets/codemirror.css +350 -0
  76. data/vendor/assets/stylesheets/inscrybmde.min.scss +180 -0
  77. metadata +48 -3
  78. data/vendor/assets/stylesheets/inscrybmde.min.css +0 -8
@@ -3,8 +3,6 @@
3
3
  module Decidim
4
4
  module DecidimAwesome
5
5
  module Admin
6
- # A form object used to configure the endpoint.
7
- #
8
6
  class ConstraintForm < Decidim::Form
9
7
  attribute :id, Integer
10
8
  attribute :participatory_space_manifest, String
@@ -3,8 +3,6 @@
3
3
  module Decidim
4
4
  module DecidimAwesome
5
5
  module Admin
6
- # A form object used to configure the endpoint.
7
- #
8
6
  class IntergramForm < Decidim::Form
9
7
  attribute :chat_id, String
10
8
  attribute :require_login, Boolean
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module DecidimAwesome
5
+ module Admin
6
+ class MenuForm < Decidim::Form
7
+ include Decidim::TranslatableAttributes
8
+ VISIBILITY_STATES = %w(default hidden logged non_logged).freeze
9
+
10
+ translatable_attribute :raw_label, String
11
+ attribute :url, String
12
+ attribute :position, Integer
13
+ attribute :target, String
14
+ attribute :visibility, String
15
+
16
+ validates :raw_label, translatable_presence: true
17
+ validates :url, presence: true
18
+ validates :position, numericality: { greater_than: 0 }
19
+ validates :visibility, inclusion: { in: VISIBILITY_STATES }
20
+ validates :target, inclusion: { in: ["", "_blank"] }
21
+
22
+ # remove query string from native menu element (to avoid interactions with the locale in the generated url)
23
+ def map_model(model)
24
+ self.url = Addressable::URI.parse(model.url).path if model.native?
25
+ end
26
+
27
+ def to_params
28
+ {
29
+ label: raw_label,
30
+ position: position,
31
+ url: url,
32
+ target: target,
33
+ visibility: visibility
34
+ }
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -18,7 +18,11 @@ module Decidim
18
18
  end
19
19
 
20
20
  def config_enabled?(var)
21
- return DecidimAwesome.config.send(var) != :disabled unless var.is_a? Array
21
+ unless var.is_a?(Array)
22
+ return false unless DecidimAwesome.config.has_key?(var.to_sym)
23
+
24
+ return DecidimAwesome.config.send(var) != :disabled
25
+ end
22
26
 
23
27
  var.detect { |v| DecidimAwesome.config.send(v) != :disabled }
24
28
  end
@@ -24,11 +24,17 @@ module Decidim
24
24
  }
25
25
  end.to_json,
26
26
  "data-collapsed" => current_component.settings.collapse,
27
+ "data-truncate" => current_component.settings.truncate,
28
+ "data-map-center" => current_component.settings.map_center,
29
+ "data-map-zoom" => current_component.settings.map_zoom,
30
+ "data-menu-amendments" => current_component.settings.menu_amendments,
31
+ "data-menu-meetings" => current_component.settings.menu_meetings,
32
+ "data-menu-hashtags" => current_component.settings.menu_hashtags,
27
33
  "data-show-not-answered" => current_component.current_settings.show_not_answered,
28
34
  "data-show-accepted" => current_component.current_settings.show_accepted,
29
35
  "data-show-withdrawn" => current_component.current_settings.show_withdrawn,
30
- "data-show-evaluating" => current_component.current_settings.show_evaluating
31
- # "data-show-rejected" => current_component.current_settings.show_rejected
36
+ "data-show-evaluating" => current_component.current_settings.show_evaluating,
37
+ "data-show-rejected" => current_component.current_settings.show_rejected
32
38
  }
33
39
  content_tag(:div, map, map_html_options)
34
40
  end
@@ -54,7 +60,7 @@ module Decidim
54
60
  "data-show-accepted" => current_component.current_settings.show_accepted,
55
61
  "data-show-withdrawn" => current_component.current_settings.show_withdrawn,
56
62
  "data-show-evaluating" => current_component.current_settings.show_evaluating,
57
- # "data-show-rejected" => current_component.current_settings.show_rejected,
63
+ "data-show-rejected" => current_component.current_settings.show_rejected,
58
64
  "data-markers-data" => [].to_json
59
65
  }
60
66
 
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module DecidimAwesome
5
+ module Admin
6
+ class Permissions < Decidim::DefaultPermissions
7
+ include ConfigConstraintsHelpers
8
+
9
+ def permissions
10
+ return permission_action if permission_action.scope != :admin
11
+
12
+ toggle_allow(config_enabled?(permission_action.subject)) if permission_action.action == :edit_config
13
+
14
+ permission_action
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -6,6 +6,8 @@ module Decidim
6
6
  def permissions
7
7
  return permission_action unless user
8
8
 
9
+ return Decidim::DecidimAwesome::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
10
+
9
11
  editor_image_action?
10
12
 
11
13
  permission_action
@@ -0,0 +1,28 @@
1
+ <div class="row column decidim_awesome-form">
2
+ <% if config_enabled? :scoped_styles %>
3
+ <p class="help-text"><%= t("help.scoped_styles", scope: "decidim.decidim_awesome.admin.config.form") %></p>
4
+ <p class="help-text">
5
+ <%= t("help.scoped_styles_variables", scope: "decidim.decidim_awesome.admin.config.form") %><br>
6
+ <% [:primary, :secondary, :success, :warning, :alert, :highlight, :highlight_alternative].each do |color| %>
7
+ var(--<%= color %>),
8
+ <% end %>
9
+ </p>
10
+
11
+ <% form.object.scoped_styles&.each do |key, value| %>
12
+ <div class="scoped-style" data-key="<%= key %>">
13
+ <%= label_tag :scoped_styles do %>
14
+ <%= t("config.scoped_styles", scope: "activemodel.attributes", id: key) %>
15
+ <%= link_to t(".remove"), decidim_admin_decidim_awesome.destroy_scoped_style_path(key: key), method: :post, class: "float-right", data: { confirm: t(".sure_to_remove") } %>
16
+ <% end %>
17
+ <p class="form-error is-visible" id="custom-style-error-<%= $key %>"><%= errors[key.to_sym].join("<br>") if errors %></p>
18
+ <%= text_area_tag key, value, name: "config[scoped_styles][#{key}]", rows: 5 %>
19
+ <%= render(partial: "decidim/decidim_awesome/admin/config/constraints", locals: { key: "scoped_style_#{key}", constraints: constraints_for("scoped_style_#{key}") }) %>
20
+ </div>
21
+ <% end %>
22
+
23
+ <%= link_to t(".new"), decidim_admin_decidim_awesome.new_scoped_style_path, method: :post %>
24
+
25
+ <% end %>
26
+ </div>
27
+
28
+ <%= javascript_include_tag "decidim/decidim_awesome/admin/form_exit_warn" %>
@@ -1,15 +1,14 @@
1
- <%= decidim_form_for(@form, method: :patch, url: decidim_admin_decidim_awesome.config_path(params[:var])) do |f| %>
1
+ <%= decidim_form_for(@form, method: :patch, url: decidim_admin_decidim_awesome.config_path(params[:var]), html: { class: "awesome-edit-config" }, data: { "safe-path" => decidim_admin_decidim_awesome.config_path(params[:var]) }) do |f| %>
2
2
  <div class="card">
3
3
  <div class="card-divider">
4
4
  <h2 class="card-title"><%= t(".title", setting: params[:var]) %></h2>
5
5
  </div>
6
6
  <div class="card-section">
7
- <%= render partial: "form_#{params[:var]}", locals: { form: f } %>
7
+ <%= render partial: "form_#{params[:var]}", locals: { form: f, errors: defined?(errors) ? errors : nil } %>
8
8
  </div>
9
9
  </div>
10
10
  <div class="button--double form-general-submit">
11
11
  <%= f.submit t(".update") %>
12
12
  </div>
13
13
  <% end %>
14
-
15
14
  <%= render partial: "modal" %>
@@ -0,0 +1,7 @@
1
+ <div>
2
+ <%= form.translated :text_field, :raw_label, help_text: t(".label_help") %>
3
+ <%= form.text_field :url , readonly: form.object.url.present? %>
4
+ <%= form.text_field :position %>
5
+ <%= form.select :target, target_options %>
6
+ <%= form.select :visibility, visibility_options %>
7
+ </div>
@@ -0,0 +1,13 @@
1
+ <%= decidim_form_for(@form, url: menu_hack_path, method: :patch) do |f| %>
2
+ <div class="card">
3
+ <div class="card-divider">
4
+ <h2 class="card-title"><%= t ".title" %></h2>
5
+ </div>
6
+ <div class="card-section">
7
+ <%= render partial: "form", object: f %>
8
+ </div>
9
+ </div>
10
+ <div class="button--double form-general-submit">
11
+ <%= f.submit t(".save") %>
12
+ </div>
13
+ <% end %>
@@ -0,0 +1,44 @@
1
+ <div class="card">
2
+ <div class="card-divider">
3
+ <h2 class="card-title">
4
+ <%= t(".title") %>
5
+ <%= link_to t(".new"), decidim_admin_decidim_awesome.new_menu_hack_path, class: "button tiny button--title" %>
6
+ </h2>
7
+ </div>
8
+ <div class="card-section">
9
+ <div class="row column decidim_awesome-form">
10
+ <table class="table-list">
11
+ <thead>
12
+ <tr>
13
+ <th><%= t("menu.raw_label", scope: "activemodel.attributes") %></th>
14
+ <th><%= t("menu.url", scope: "activemodel.attributes") %></th>
15
+ <th><%= t("menu.position", scope: "activemodel.attributes") %></th>
16
+ <th><%= t("menu.target", scope: "activemodel.attributes") %></th>
17
+ <th><%= t("menu.visibility", scope: "activemodel.attributes") %></th>
18
+ <th class="actions"></th>
19
+ </tr>
20
+ </thead>
21
+ <tbody>
22
+ <% current_items.each do |item| %>
23
+ <tr<%= " class=menu_hack-addition" if item.try(:overrided?) == false %>>
24
+ <td><%= item.label %></td>
25
+ <td><%= item.url %></td>
26
+ <td><%= item.position %></td>
27
+ <td><%= target_options.invert[item.try(:target)||""] %></td>
28
+ <td><%= visibility_options.invert[item.try(:visibility)] %></td>
29
+ <td class="table-list__actions">
30
+ <%= icon_link_to "pencil", decidim_admin_decidim_awesome.edit_menu_hack_path(md5(item.url)), t(".edit"), class: "action-icon--edit" %>
31
+ <% if item.respond_to?(:overrided?) %>
32
+ <%= icon_link_to "circle-x", decidim_admin_decidim_awesome.menu_hack_path(md5(item.url)), t(".remove#{'_hack' if item.overrided?}"), method: :delete, class: "action-icon--remove", data: { confirm: t(".confirm_destroy") } %>
33
+ <% else %>
34
+ <span class="action-icon">
35
+ <%= icon "circle-x", class: "action-icon action-icon--disabled", role: "img" %>
36
+ </span>
37
+ <% end %>
38
+ </td>
39
+ </tr>
40
+ <% end %>
41
+ </tbody>
42
+ </table>
43
+ </div>
44
+ </div>
@@ -0,0 +1,13 @@
1
+ <%= decidim_form_for(@form, url: menu_hacks_path) do |f| %>
2
+ <div class="card">
3
+ <div class="card-divider">
4
+ <h2 class="card-title"><%= t ".title" %></h2>
5
+ </div>
6
+ <div class="card-section">
7
+ <%= render partial: "form", object: f %>
8
+ </div>
9
+ </div>
10
+ <div class="button--double form-general-submit">
11
+ <%= f.submit t(".save") %>
12
+ </div>
13
+ <% end %>
@@ -6,7 +6,7 @@
6
6
  <div class="map-info__content">
7
7
  <h3>{{>title}}</h3>
8
8
  <div id="bodyContent">
9
- <p>{{:body}}</p>
9
+ <div class="description">{{:body}}</div>
10
10
  <div class="map__date-adress">
11
11
  <div class="address card__extra">
12
12
  <div class="address__icon">{{:icon}}</div>
@@ -28,7 +28,7 @@
28
28
  <div class="map-info__content">
29
29
  <h3>{{>title.translation}}</h3>
30
30
  <div id="bodyContent">
31
- <p>{{:body.translation}}</p>
31
+ <div class="description">{{:body.translation}}</div>
32
32
  <div class="map__date-adress">
33
33
  <div class="address card__extra">
34
34
  <div class="address__icon">{{:icon}}</div>
@@ -50,7 +50,7 @@
50
50
  <div class="map-info__content">
51
51
  <h3>{{>title.translation}}</h3>
52
52
  <div id="bodyContent">
53
- <p>{{:description.translation}}</p>
53
+ <div class="description">{{:description.translation}}</div>
54
54
  <div class="map__date-adress">
55
55
  <div class="card__datetime">
56
56
  <div class="card__datetime__date">
@@ -78,14 +78,17 @@
78
78
 
79
79
  <%= stylesheet_link_tag "decidim/decidim_awesome/awesome_map/map" %>
80
80
  <style type="text/css">
81
- #map {
81
+ #map, .wrapper #map {
82
82
  height: <%= current_component.settings.map_height %>px;
83
83
  }
84
84
  <% current_categories.each do |category| %>
85
- .awesome_map-category_<%= category[:id] %> {
86
- background-color: <%= category[:color] %> !important;
85
+ /* TODO: remove when diching 0.22 */
86
+ i.awesome_map-category_<%= category[:id] %> {
87
87
  margin-left: <%= category[:parent] ? "1" : "0" %>em;
88
88
  }
89
+ .awesome_map-category-<%= category[:id] %> i {
90
+ background-color: <%= category[:color] %> !important;
91
+ }
89
92
  <% end %>
90
93
  </style>
91
94
  <script>
@@ -16,6 +16,11 @@
16
16
  <%= aria_selected_link_to I18n.t("menu.surveys", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:surveys) %>
17
17
  </li>
18
18
  <% end %>
19
+ <% if config_enabled? :scoped_styles %>
20
+ <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) %>
22
+ </li>
23
+ <% end %>
19
24
  <% if config_enabled? :allow_images_in_proposals %>
20
25
  <li <% if is_active_link?(decidim_admin_decidim_awesome.config_path(:proposals)) %> class="is-active" <% end %>>
21
26
  <%= aria_selected_link_to I18n.t("menu.proposals", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:proposals) %>
@@ -26,6 +31,11 @@
26
31
  <%= aria_selected_link_to I18n.t("menu.livechat", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:livechat) %>
27
32
  </li>
28
33
  <% end %>
34
+ <% if config_enabled? :menu %>
35
+ <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 %>
37
+ </li>
38
+ <% end %>
29
39
  <li <% if is_active_link?(decidim_admin_decidim_awesome.checks_path) %> class="is-active" <% end %>>
30
40
  <%= aria_selected_link_to I18n.t("menu.checks", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.checks_path %>
31
41
  </li>
@@ -1,5 +1,5 @@
1
1
  <script>
2
- window.DecidimAwesome = <%= awesome_config.to_json.html_safe %>;
2
+ window.DecidimAwesome = <%= javascript_config_vars %>;
3
3
  window.DecidimAwesome.editor_uploader_path = "<%= decidim_decidim_awesome.editor_images_path %>";
4
4
  window.DecidimAwesome.texts = {
5
5
  "drag_and_drop_image": "<%= j t(".drag_and_drop_image") %>",
@@ -7,9 +7,12 @@ window.DecidimAwesome.texts = {
7
7
  "autosaved_error": "<%= j t(".autosaved_error") %>",
8
8
  "autosaved_retrieved": "<%= j t(".autosaved_retrieved") %>",
9
9
  "categories": "<%= j t(".categories") %>",
10
+ "hashtags": "<%= j t(".hashtags") %>",
10
11
  "proposals": "<%= j t(".proposals") %>",
11
12
  "meetings": "<%= j t(".meetings") %>",
12
- "amendments": "<%= j t(".amendments") %>"
13
+ "amendments": "<%= j t(".amendments") %>",
14
+ "items": "<%= j t(".items") %>",
15
+ "select_deselect_all": "<%= j t(".select_deselect_all") %>"
13
16
  }
14
17
  <% if defined? questionnaire %>
15
18
  window.DecidimAwesome.current_questionnaire = "edit_questionnaire_<%= questionnaire.id %>";
@@ -0,0 +1,3 @@
1
+ <style media="all">
2
+ <%= awesome_custom_styles %>
3
+ </style>
@@ -23,6 +23,7 @@
23
23
 
24
24
  <%= stylesheet_link_tag "decidim/decidim_awesome/application", media: "all" %>
25
25
  <%= stylesheet_link_tag(tenant_stylesheets, media: "all") if tenant_stylesheets %>
26
+ <%= render(partial: "layouts/decidim/decidim_awesome/custom_styles") if awesome_custom_styles %>
26
27
 
27
28
  <%= organization_colors %>
28
29
  <%= javascript_include_tag "decidim/confirm" %>
@@ -23,6 +23,7 @@
23
23
 
24
24
  <%= stylesheet_link_tag "decidim/decidim_awesome/application", media: "all" %>
25
25
  <%= stylesheet_link_tag(tenant_stylesheets, media: "all") if tenant_stylesheets %>
26
+ <%= render(partial: "layouts/decidim/decidim_awesome/custom_styles") if awesome_custom_styles %>
26
27
 
27
28
  <%= organization_colors %>
28
29
  <%= javascript_include_tag "decidim/confirm" %>
@@ -17,12 +17,19 @@ 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
21
  use_markdown_editor: Fes servir l'editor Markdown en comptes de l'editor HTML
21
22
  constraint:
22
23
  component_id: o específicament a
23
24
  component_manifest: Només en components de tipus
24
25
  participatory_space_manifest: Aplica-ho a espais participatius de tipus
25
26
  participatory_space_slug: Només a
27
+ menu:
28
+ position: Posició
29
+ raw_label: Etiqueta
30
+ target: Obre a
31
+ url: URL
32
+ visibility: Visibilitat
26
33
  decidim:
27
34
  admin:
28
35
  menu:
@@ -46,7 +53,15 @@ ca:
46
53
  global:
47
54
  announcement: Anunci
48
55
  collapse: Inicia amb el menú col·lapsat
56
+ map_center: Centre del mapa (Latitud, Longitud)
57
+ 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'
49
58
  map_height: Alçada del mapa (px)
59
+ map_zoom: Zoom (qualsevol nombre entre 0 i 18)
60
+ map_zoom_help: Només s’aplica si es defineix el punt central del mapa
61
+ menu_amendments: Mostrar esmenes
62
+ menu_hashtags: Mostrar el menú de cerca per hashtag
63
+ menu_meetings: Mostrar trobades
64
+ truncate: Nombre màxim de caràcters per les descripcions emergents
50
65
  step:
51
66
  announcement: Anunci
52
67
  show_accepted: Mostra les propostes acceptades
@@ -75,8 +90,16 @@ ca:
75
90
  delete: Esborra
76
91
  edit: Edita
77
92
  title: 'S''aplica només en aquests casos:'
93
+ create_scoped_style:
94
+ error: Error en crear una nova caixa CSS! %{error}
95
+ success: Caixa CSS %{key} creada correctament
96
+ destroy_scoped_style:
97
+ error: Error en eliminar una caixa CSS! %{error}
98
+ success: Caixa CSS %{key} eliminada correctament
78
99
  experimental: Opcions experimentals
79
100
  form:
101
+ errors:
102
+ incorrect_css: 'El CSS de la caixa #%{key} no és vàlid'
80
103
  help:
81
104
  allow_images_in_full_editor: Això afegirà un botó per pujar imatges a l'editor HTML complet.
82
105
  allow_images_in_markdown_editor: Això permetrà a l'editor markdown pujar imatges amb "copiar i enganxar" o "arrastrant i deixant anar".
@@ -86,7 +109,13 @@ ca:
86
109
  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).
87
110
  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.
88
111
  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>'
112
+ 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
+ scoped_styles_variables: 'Pots fer servir les següents variables CSS pels colors personalitzats de l''organització:'
89
114
  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:
116
+ new: Afegeix una nova caixa CSS
117
+ remove: Elimina aquesta caixa CSS
118
+ sure_to_remove: Estàs segura que vols eliminar aquesta caixa CSS?
90
119
  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.'
91
120
  show:
92
121
  title: Modificacions per %{setting}
@@ -94,7 +123,7 @@ ca:
94
123
  system: A tot arreu excepte espais participatius
95
124
  update:
96
125
  error: Error actualitzant la configuració! %{error}
97
- success: Configuració actualitzada correctament!
126
+ success: Configuració actualitzada correctament
98
127
  constraints:
99
128
  create:
100
129
  error: Error creant una nova restricció
@@ -119,8 +148,44 @@ ca:
119
148
  checks: Compatibilitat de sistema
120
149
  editors: Modificacions als editors
121
150
  livechat: Xat en directe
151
+ menu_hacks: Retocs al menú
122
152
  proposals: Modificacions a propostes
153
+ styles: Estils personalitzats
123
154
  surveys: Formularis i enquestes
155
+ menu_hacks:
156
+ create:
157
+ error: 'Error en crear un nou ítem de menú: %{error}'
158
+ success: Ítem de menú creat correctament
159
+ destroy:
160
+ error: 'Error en eliminar l''ítem de menú: %{error}'
161
+ success: Ítem de menú eliminat correctament
162
+ edit:
163
+ save: Desar
164
+ title: Editar ítem de menú
165
+ form:
166
+ label_help: Les traduccions no es detecten automàticament, asegura't de completar tots els camps!
167
+ target:
168
+ blank: Nova finestra
169
+ self: La mateixa finestra
170
+ visibility:
171
+ default: Visible
172
+ hidden: Sempre ocult
173
+ logged: Només visible per usuàries loguejades
174
+ non_logged: Només visible per usuàries no loguejades
175
+ index:
176
+ confirm_destroy: Estàs segura que vols eliminar aquest retoc?
177
+ edit: Editar
178
+ new: Nou ítem
179
+ remove: Eliminar addició
180
+ remove_hack: Eliminar retoc
181
+ title: Menú principal
182
+ new:
183
+ save: Desar
184
+ title: Nou ítem de menú
185
+ update:
186
+ error: 'Error en actualitzar l''ítem de menú: %{error}'
187
+ success: Ítem de menú actualitzat correctament
188
+ url_exists: Aquesta URL ha estat configurada en un altre ítem de menú, si us plau edita'l en comptes de crear-ne un de nou.
124
189
  config:
125
190
  intergram:
126
191
  auto_no_response: Sembla que no hi ha ningú disponible per a respondre en aquest moment. Si us plau, indica'ns com et podem contactar i ens comunicarem amb tu tan aviat com ens sigui possible.
@@ -132,7 +197,7 @@ ca:
132
197
  editor_images:
133
198
  create:
134
199
  error: Error en pujar la imatge!
135
- success: La imatge s'ha pujat correctament!
200
+ success: Imatge pujada correctament
136
201
  map_component:
137
202
  map:
138
203
  error:
@@ -153,5 +218,8 @@ ca:
153
218
  autosaved_success: Dades desades a l'emmagatzematge local
154
219
  categories: Categories
155
220
  drag_and_drop_image: Afegeix imatges "arrastrant i deixant anar" o bé enganxant-les.
221
+ hashtags: Hashtags
222
+ items: elements
156
223
  meetings: Trobades
157
224
  proposals: Propostes
225
+ select_deselect_all: Seleccionar/desseleccionar tot