decidim-decidim_awesome 0.6.4 → 0.6.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -6
- data/app/assets/stylesheets/decidim/decidim_awesome/admin.scss +4 -0
- data/app/awesome_overrides/presenters/decidim/menu_presenter_override.rb +31 -0
- data/app/commands/decidim/decidim_awesome/admin/create_menu_hack.rb +51 -0
- data/app/commands/decidim/decidim_awesome/admin/destroy_menu_hack.rb +47 -0
- data/app/commands/decidim/decidim_awesome/admin/update_config.rb +1 -1
- data/app/commands/decidim/decidim_awesome/admin/update_menu_hack.rb +47 -0
- data/app/controllers/decidim/decidim_awesome/admin/application_controller.rb +4 -3
- data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +9 -0
- data/app/controllers/decidim/decidim_awesome/admin/constraints_controller.rb +13 -0
- data/app/controllers/decidim/decidim_awesome/admin/menu_hacks_controller.rb +116 -0
- data/app/forms/decidim/decidim_awesome/admin/config_form.rb +5 -7
- data/app/forms/decidim/decidim_awesome/admin/constraint_form.rb +0 -2
- data/app/forms/decidim/decidim_awesome/admin/intergram_form.rb +0 -2
- data/app/forms/decidim/decidim_awesome/admin/menu_form.rb +39 -0
- data/app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb +5 -1
- data/app/permissions/decidim/decidim_awesome/admin/permissions.rb +19 -0
- data/app/permissions/decidim/decidim_awesome/permissions.rb +2 -0
- data/app/views/decidim/decidim_awesome/admin/config/_form_styles.html.erb +0 -1
- data/app/views/decidim/decidim_awesome/admin/menu_hacks/_form.html.erb +7 -0
- data/app/views/decidim/decidim_awesome/admin/menu_hacks/edit.html.erb +13 -0
- data/app/views/decidim/decidim_awesome/admin/menu_hacks/index.html.erb +44 -0
- data/app/views/decidim/decidim_awesome/admin/menu_hacks/new.html.erb +13 -0
- data/app/views/layouts/decidim/admin/decidim_awesome.html.erb +5 -0
- data/config/locales/ca.yml +45 -4
- data/config/locales/cs.yml +46 -5
- data/config/locales/en.yml +47 -4
- data/config/locales/es.yml +45 -4
- data/config/locales/eu.yml +45 -4
- data/config/locales/fr.yml +45 -4
- data/config/locales/nl.yml +212 -0
- data/config/locales/sv.yml +45 -4
- data/lib/decidim/decidim_awesome.rb +15 -0
- data/lib/decidim/decidim_awesome/admin_engine.rb +1 -0
- data/lib/decidim/decidim_awesome/checksums.yml +6 -0
- data/lib/decidim/decidim_awesome/engine.rb +1 -1
- data/lib/decidim/decidim_awesome/menu_hacker.rb +88 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/config_examples.rb +4 -2
- data/lib/decidim/decidim_awesome/test/shared_examples/menu_hack_contexts.rb +71 -0
- data/lib/decidim/decidim_awesome/version.rb +1 -1
- metadata +16 -2
@@ -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 ConfigForm < Decidim::Form
|
9
7
|
attribute :allow_images_in_full_editor, Boolean
|
10
8
|
attribute :allow_images_in_small_editor, Boolean
|
@@ -13,18 +11,18 @@ module Decidim
|
|
13
11
|
attribute :allow_images_in_markdown_editor, Boolean
|
14
12
|
attribute :auto_save_forms, Boolean
|
15
13
|
attribute :scoped_styles, Hash
|
14
|
+
attribute :menu, Array[MenuForm]
|
16
15
|
attribute :intergram_for_admins, Boolean
|
17
16
|
attribute :intergram_for_admins_settings, IntergramForm
|
18
17
|
attribute :intergram_for_public, Boolean
|
19
18
|
attribute :intergram_for_public_settings, IntergramForm
|
20
19
|
|
21
|
-
#
|
20
|
+
# collect all keys anything not specified in the params (UpdateConfig command ignores it)
|
21
|
+
attr_accessor :valid_keys
|
22
|
+
|
22
23
|
def self.from_params(params, additional_params = {})
|
23
24
|
instance = super(params, additional_params)
|
24
|
-
|
25
|
-
nillable_keys.each do |key|
|
26
|
-
instance.send("#{key}=", nil)
|
27
|
-
end
|
25
|
+
instance.valid_keys = params.keys.map(&:to_sym) || []
|
28
26
|
instance
|
29
27
|
end
|
30
28
|
end
|
@@ -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
|
-
|
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
|
@@ -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
|
@@ -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 %>
|
@@ -31,6 +31,11 @@
|
|
31
31
|
<%= aria_selected_link_to I18n.t("menu.livechat", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.config_path(:livechat) %>
|
32
32
|
</li>
|
33
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 %>
|
34
39
|
<li <% if is_active_link?(decidim_admin_decidim_awesome.checks_path) %> class="is-active" <% end %>>
|
35
40
|
<%= aria_selected_link_to I18n.t("menu.checks", scope: "decidim.decidim_awesome.admin"), decidim_admin_decidim_awesome.checks_path %>
|
36
41
|
</li>
|
data/config/locales/ca.yml
CHANGED
@@ -24,6 +24,12 @@ ca:
|
|
24
24
|
component_manifest: Només en components de tipus
|
25
25
|
participatory_space_manifest: Aplica-ho a espais participatius de tipus
|
26
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
|
27
33
|
decidim:
|
28
34
|
admin:
|
29
35
|
menu:
|
@@ -78,10 +84,10 @@ ca:
|
|
78
84
|
title: 'S''aplica només en aquests casos:'
|
79
85
|
create_scoped_style:
|
80
86
|
error: Error en crear una nova caixa CSS! %{error}
|
81
|
-
success: Caixa CSS %{key} creada correctament
|
87
|
+
success: Caixa CSS %{key} creada correctament
|
82
88
|
destroy_scoped_style:
|
83
89
|
error: Error en eliminar una caixa CSS! %{error}
|
84
|
-
success: Caixa CSS %{key} eliminada correctament
|
90
|
+
success: Caixa CSS %{key} eliminada correctament
|
85
91
|
experimental: Opcions experimentals
|
86
92
|
form:
|
87
93
|
help:
|
@@ -107,7 +113,7 @@ ca:
|
|
107
113
|
system: A tot arreu excepte espais participatius
|
108
114
|
update:
|
109
115
|
error: Error actualitzant la configuració! %{error}
|
110
|
-
success: Configuració actualitzada correctament
|
116
|
+
success: Configuració actualitzada correctament
|
111
117
|
constraints:
|
112
118
|
create:
|
113
119
|
error: Error creant una nova restricció
|
@@ -132,9 +138,44 @@ ca:
|
|
132
138
|
checks: Compatibilitat de sistema
|
133
139
|
editors: Modificacions als editors
|
134
140
|
livechat: Xat en directe
|
141
|
+
menu_hacks: Retocs al menú
|
135
142
|
proposals: Modificacions a propostes
|
136
143
|
styles: Estils personalitzats
|
137
144
|
surveys: Formularis i enquestes
|
145
|
+
menu_hacks:
|
146
|
+
create:
|
147
|
+
error: 'Error en crear un nou ítem de menú: %{error}'
|
148
|
+
success: Ítem de menú creat correctament
|
149
|
+
destroy:
|
150
|
+
error: 'Error en eliminar l''ítem de menú: %{error}'
|
151
|
+
success: Ítem de menú eliminat correctament
|
152
|
+
edit:
|
153
|
+
save: Desar
|
154
|
+
title: Editar ítem de menú
|
155
|
+
form:
|
156
|
+
label_help: Les traduccions no es detecten automàticament, asegura't de completar tots els camps!
|
157
|
+
target:
|
158
|
+
blank: Nova finestra
|
159
|
+
self: La mateixa finestra
|
160
|
+
visibility:
|
161
|
+
default: Visible
|
162
|
+
hidden: Sempre ocult
|
163
|
+
logged: Només visible per usuàries loguejades
|
164
|
+
non_logged: Només visible per usuàries no loguejades
|
165
|
+
index:
|
166
|
+
confirm_destroy: Estàs segura que vols eliminar aquest retoc?
|
167
|
+
edit: Editar
|
168
|
+
new: Nou ítem
|
169
|
+
remove: Eliminar addició
|
170
|
+
remove_hack: Eliminar retoc
|
171
|
+
title: Menú principal
|
172
|
+
new:
|
173
|
+
save: Desar
|
174
|
+
title: Nou ítem de menú
|
175
|
+
update:
|
176
|
+
error: 'Error en actualitzar l''ítem de menú: %{error}'
|
177
|
+
success: Ítem de menú actualitzat correctament
|
178
|
+
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.
|
138
179
|
config:
|
139
180
|
intergram:
|
140
181
|
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.
|
@@ -146,7 +187,7 @@ ca:
|
|
146
187
|
editor_images:
|
147
188
|
create:
|
148
189
|
error: Error en pujar la imatge!
|
149
|
-
success:
|
190
|
+
success: Imatge pujada correctament
|
150
191
|
map_component:
|
151
192
|
map:
|
152
193
|
error:
|
data/config/locales/cs.yml
CHANGED
@@ -24,6 +24,12 @@ cs:
|
|
24
24
|
component_manifest: Pouze v komponentách typu
|
25
25
|
participatory_space_manifest: Použít na participační prostory typu
|
26
26
|
participatory_space_slug: Pouze v
|
27
|
+
menu:
|
28
|
+
position: Pozice
|
29
|
+
raw_label: Popisek
|
30
|
+
target: Otevře se v
|
31
|
+
url: URL
|
32
|
+
visibility: Viditelnost
|
27
33
|
decidim:
|
28
34
|
admin:
|
29
35
|
menu:
|
@@ -35,7 +41,7 @@ cs:
|
|
35
41
|
global:
|
36
42
|
announcement: Oznámení
|
37
43
|
iframe: Kód Iframe
|
38
|
-
iframe_help: 'Zadejte kód jako html: <iframe width="100%" height="700" frameBorder="0" allowFullscreen src="..."></iframe>. Obsah bude
|
44
|
+
iframe_help: 'Zadejte kód jako html: <iframe width="100%" height="700" frameBorder="0" allowFullscreen src="..."></iframe>. Obsah bude vylepšen z jiných HTML tagů. Pro vyplnění obrazovky použijte 100% šířku.'
|
39
45
|
no_margins: Mezi iframe a zbytkem stránky nejsou žádné okraje
|
40
46
|
viewport_width: Omezit maximální šířku na zobrazení aplikace
|
41
47
|
step:
|
@@ -78,10 +84,10 @@ cs:
|
|
78
84
|
title: 'Platí pouze v těchto případech:'
|
79
85
|
create_scoped_style:
|
80
86
|
error: Chyba při vytváření nového CSS boxu! %{error}
|
81
|
-
success: CSS box %{key}
|
87
|
+
success: CSS box %{key} úspěšně vytvořen
|
82
88
|
destroy_scoped_style:
|
83
89
|
error: Chyba při odstraňování CSS boxu! %{error}
|
84
|
-
success: CSS box %{key} byl úspěšně odstraněn
|
90
|
+
success: CSS box %{key} byl úspěšně odstraněn
|
85
91
|
experimental: Experimentální možnosti
|
86
92
|
form:
|
87
93
|
help:
|
@@ -107,7 +113,7 @@ cs:
|
|
107
113
|
system: Všude kromě participačních prostor
|
108
114
|
update:
|
109
115
|
error: Chyba při aktualizaci konfigurace! %{error}
|
110
|
-
success: Konfigurace byla úspěšně aktualizována
|
116
|
+
success: Konfigurace byla úspěšně aktualizována
|
111
117
|
constraints:
|
112
118
|
create:
|
113
119
|
error: Chyba při vytváření případu stavu
|
@@ -132,9 +138,44 @@ cs:
|
|
132
138
|
checks: Systémová kompatibilita
|
133
139
|
editors: Hack editoru
|
134
140
|
livechat: Live Chat
|
141
|
+
menu_hacks: Vylepšení menu
|
135
142
|
proposals: Návrhy hacků
|
136
143
|
styles: Vlastní styly
|
137
144
|
surveys: Průzkumy a formuláře
|
145
|
+
menu_hacks:
|
146
|
+
create:
|
147
|
+
error: Chyba při vytváření položky menu! %{error}
|
148
|
+
success: Položka menu byla úspěšně vytvořena
|
149
|
+
destroy:
|
150
|
+
error: Chyba při odstraňování položky menu! %{error}
|
151
|
+
success: Položka menu byla úspěšně smazána
|
152
|
+
edit:
|
153
|
+
save: Uložit
|
154
|
+
title: Upravit položku menu
|
155
|
+
form:
|
156
|
+
label_help: Překlady nejsou automaticky rozpoznány, nezapomeňte vyplnit všechna pole!
|
157
|
+
target:
|
158
|
+
blank: Nové okno
|
159
|
+
self: Stejné okno
|
160
|
+
visibility:
|
161
|
+
default: Viditelný
|
162
|
+
hidden: Vždy skryto
|
163
|
+
logged: Viditelné pouze pro přihlášené uživatele
|
164
|
+
non_logged: Viditelné pouze pro nepřihlášené uživatele
|
165
|
+
index:
|
166
|
+
confirm_destroy: Opravdu chcete odstranit toto přizpůsobení?
|
167
|
+
edit: Upravit
|
168
|
+
new: Nová položka
|
169
|
+
remove: Odstranit přidání
|
170
|
+
remove_hack: Odstranit přizpůsobení
|
171
|
+
title: Hlavní menu
|
172
|
+
new:
|
173
|
+
save: Uložit
|
174
|
+
title: Nová položka menu
|
175
|
+
update:
|
176
|
+
error: Chyba při aktualizaci položky menu! %{error}
|
177
|
+
success: Položka menu byla úspěšne aktualizována
|
178
|
+
url_exists: Stejná adresa URL je již nakonfigurována, prosím upravte ji místo jejího vytvoření.
|
138
179
|
config:
|
139
180
|
intergram:
|
140
181
|
auto_no_response: Zdá se, že právě teď nikdo není k dispozici odpovědět. Řekněte nám, jak vás můžeme kontaktovat, a co nejdříve se k vám vrátíme.
|
@@ -146,7 +187,7 @@ cs:
|
|
146
187
|
editor_images:
|
147
188
|
create:
|
148
189
|
error: Chyba při nahrávání obrázku!
|
149
|
-
success: Obrázek byl úspěšně nahrán
|
190
|
+
success: Obrázek byl úspěšně nahrán
|
150
191
|
map_component:
|
151
192
|
map:
|
152
193
|
error:
|
data/config/locales/en.yml
CHANGED
@@ -29,6 +29,12 @@ en:
|
|
29
29
|
component_manifest: Only in components of type
|
30
30
|
participatory_space_manifest: Apply to participatory spaces of type
|
31
31
|
participatory_space_slug: Only in
|
32
|
+
menu:
|
33
|
+
position: Position
|
34
|
+
raw_label: Label
|
35
|
+
target: Opens in
|
36
|
+
url: URL
|
37
|
+
visibility: Visibility
|
32
38
|
decidim:
|
33
39
|
admin:
|
34
40
|
menu:
|
@@ -88,10 +94,10 @@ en:
|
|
88
94
|
title: 'Applicable only in these cases:'
|
89
95
|
create_scoped_style:
|
90
96
|
error: Error creating a new CSS box! %{error}
|
91
|
-
success: CSS box %{key} created successfully
|
97
|
+
success: CSS box %{key} created successfully
|
92
98
|
destroy_scoped_style:
|
93
99
|
error: Error removing CSS box! %{error}
|
94
|
-
success: CSS box %{key} removed successfully
|
100
|
+
success: CSS box %{key} removed successfully
|
95
101
|
experimental: Experimental options
|
96
102
|
form:
|
97
103
|
help:
|
@@ -137,7 +143,7 @@ en:
|
|
137
143
|
system: Everywhere except participatory spaces
|
138
144
|
update:
|
139
145
|
error: Error updating configuration! %{error}
|
140
|
-
success: Configuration updated successfully
|
146
|
+
success: Configuration updated successfully
|
141
147
|
constraints:
|
142
148
|
create:
|
143
149
|
error: Error creating condition case
|
@@ -162,9 +168,46 @@ en:
|
|
162
168
|
checks: System compatibility
|
163
169
|
editors: Editor hacks
|
164
170
|
livechat: Live Chat
|
171
|
+
menu_hacks: Menu tweaks
|
165
172
|
proposals: Proposals hacks
|
166
173
|
styles: Custom styles
|
167
174
|
surveys: Surveys & forms
|
175
|
+
menu_hacks:
|
176
|
+
create:
|
177
|
+
error: Error creating menu item! %{error}
|
178
|
+
success: Menu item created successfully
|
179
|
+
destroy:
|
180
|
+
error: Error removing menu item! %{error}
|
181
|
+
success: Menu item removed successfully
|
182
|
+
edit:
|
183
|
+
save: Save
|
184
|
+
title: Edit menu item
|
185
|
+
form:
|
186
|
+
label_help: Translations aren't automatically detected, be sure to fill
|
187
|
+
in all the fields!
|
188
|
+
target:
|
189
|
+
blank: New window
|
190
|
+
self: Same window
|
191
|
+
visibility:
|
192
|
+
default: Visible
|
193
|
+
hidden: Always hidden
|
194
|
+
logged: Only visible for logged users
|
195
|
+
non_logged: Only visible for non-logged users
|
196
|
+
index:
|
197
|
+
confirm_destroy: Are you sure to remove this customization?
|
198
|
+
edit: Edit
|
199
|
+
new: New item
|
200
|
+
remove: Remove addition
|
201
|
+
remove_hack: Remove customization
|
202
|
+
title: Main menu
|
203
|
+
new:
|
204
|
+
save: Save
|
205
|
+
title: New menu item
|
206
|
+
update:
|
207
|
+
error: Error updating menu item! %{error}
|
208
|
+
success: Menu item updated successfully
|
209
|
+
url_exists: The same URL is already configured, please edit that instead
|
210
|
+
of creating it again.
|
168
211
|
config:
|
169
212
|
intergram:
|
170
213
|
auto_no_response: It seems that no one is available to answer right now.
|
@@ -178,7 +221,7 @@ en:
|
|
178
221
|
editor_images:
|
179
222
|
create:
|
180
223
|
error: Error uploading image!
|
181
|
-
success: Image uploaded successfully
|
224
|
+
success: Image uploaded successfully
|
182
225
|
map_component:
|
183
226
|
map:
|
184
227
|
error:
|