decidim-decidim_awesome 0.7.2 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +181 -0
- data/README.md +61 -35
- data/Rakefile +11 -12
- data/app/cells/decidim/decidim_awesome/content_blocks/map/error.erb +11 -0
- data/app/cells/decidim/decidim_awesome/content_blocks/map/show.erb +1 -61
- data/app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb +11 -0
- data/app/cells/decidim/decidim_awesome/content_blocks/map_form/show.erb +8 -4
- data/app/commands/decidim/decidim_awesome/admin/create_custom_redirect.rb +51 -0
- data/app/commands/decidim/decidim_awesome/admin/destroy_custom_redirect.rb +47 -0
- data/app/commands/decidim/decidim_awesome/admin/update_custom_redirect.rb +49 -0
- data/app/commands/decidim/decidim_awesome/create_editor_image.rb +12 -5
- data/app/controllers/concerns/decidim/decidim_awesome/not_found_redirect.rb +58 -0
- data/app/controllers/decidim/decidim_awesome/admin/checks_controller.rb +24 -24
- data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +9 -1
- data/app/controllers/decidim/decidim_awesome/admin/custom_redirects_controller.rb +91 -0
- data/app/controllers/decidim/decidim_awesome/admin/menu_hacks_controller.rb +5 -8
- data/app/controllers/decidim/decidim_awesome/blank_component_controller.rb +19 -0
- data/app/controllers/decidim/decidim_awesome/editor_images_controller.rb +2 -3
- data/app/controllers/decidim/decidim_awesome/iframe_component/iframe_controller.rb +1 -1
- data/app/controllers/decidim/decidim_awesome/map_component/map_controller.rb +2 -6
- data/app/forms/decidim/decidim_awesome/admin/config_form.rb +2 -0
- data/app/forms/decidim/decidim_awesome/admin/custom_redirect_form.rb +45 -0
- data/app/forms/decidim/decidim_awesome/editor_image_form.rb +3 -2
- data/app/forms/decidim/decidim_awesome/proposals/proposal_wizard_create_step_form_override.rb +38 -0
- data/app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb +22 -9
- data/app/helpers/decidim/decidim_awesome/admin/system_checker_helpers.rb +36 -0
- data/app/helpers/decidim/decidim_awesome/map_helper.rb +18 -12
- data/app/helpers/decidim/decidim_awesome/proposals/application_helper_override.rb +2 -2
- data/app/jobs/decidim/decidim_awesome/migrate_legacy_images_job.rb +106 -0
- data/app/models/decidim/decidim_awesome/editor_image.rb +4 -9
- data/app/packs/entrypoints/decidim_admin_decidim_awesome.js +5 -0
- data/app/packs/entrypoints/decidim_admin_decidim_awesome.scss +1 -0
- data/app/packs/entrypoints/decidim_admin_decidim_awesome_custom_fields.js +2 -0
- data/app/packs/entrypoints/decidim_decidim_awesome.js +9 -0
- data/app/packs/entrypoints/decidim_decidim_awesome.scss +1 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_admin_form_exit_warn.js +1 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_custom_fields.js +1 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_iframe.scss +1 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_map.js +5 -0
- data/app/packs/entrypoints/decidim_decidim_awesome_map.scss +1 -0
- data/app/{assets → packs}/images/decidim/decidim_awesome/platoniq-logo.png +0 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/auto_edit.js.es6 → packs/src/decidim/decidim_awesome/admin/auto_edit.js} +39 -34
- data/app/packs/src/decidim/decidim_awesome/admin/check_redirections.js +48 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/codemirror.js.es6 → packs/src/decidim/decidim_awesome/admin/codemirror.js} +4 -4
- data/app/packs/src/decidim/decidim_awesome/admin/constraints.js +55 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/form_builder.js.es6 → packs/src/decidim/decidim_awesome/admin/custom_fields_builder.js} +23 -26
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/form_exit_warn.js.es6 → packs/src/decidim/decidim_awesome/admin/form_exit_warn.js} +0 -2
- data/app/{assets/javascripts/decidim/decidim_awesome/admin/user_picker.js.es6 → packs/src/decidim/decidim_awesome/admin/user_picker.js} +3 -3
- data/app/packs/src/decidim/decidim_awesome/awesome_admin.js +23 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_application.js +17 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/awesome_map/api_fetcher.js.es6 → packs/src/decidim/decidim_awesome/awesome_map/api/api_fetcher.js} +1 -15
- data/app/packs/src/decidim/decidim_awesome/awesome_map/api/fetcher.js +134 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/api/meetings_fetcher.js +59 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/api/proposals_fetcher.js +52 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/awesome_map.js +129 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/controller.js +130 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/meetings_controller.js +31 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/proposals_controller.js +88 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/controls_ui.js +221 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_map/load_map.js +51 -0
- data/app/packs/src/decidim/decidim_awesome/editors/editor.js +191 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/editors/tabs_focus.js.es6 → packs/src/decidim/decidim_awesome/editors/tabs_focus.js} +4 -6
- data/app/{assets/javascripts/decidim/decidim_awesome/forms/autosave.js.es6 → packs/src/decidim/decidim_awesome/forms/autosave.js} +20 -17
- data/app/packs/src/decidim/decidim_awesome/forms/custom_fields_renderer.js +207 -0
- data/app/{assets/javascripts/decidim/decidim_awesome/forms/rich_text_plugin.js.es6 → packs/src/decidim/decidim_awesome/forms/rich_text_plugin.js} +23 -21
- data/app/packs/src/decidim/decidim_awesome/proposals/custom_fields.js +22 -0
- data/app/packs/src/decidim/decidim_awesome/proposals/images.js +25 -0
- data/{vendor/assets/javascripts → app/packs/src/vendor}/image-resize.min.js +0 -0
- data/{vendor/assets/javascripts → app/packs/src/vendor}/image-upload.min.js +0 -0
- data/{vendor/assets/javascripts → app/packs/src/vendor}/jquery.truncate.js +0 -0
- data/app/packs/src/vendor/leaflet.featuregroup.subgroup.js +184 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/admin/auto_edits.scss +2 -1
- data/app/packs/stylesheets/decidim/decidim_awesome/admin/check_redirections.scss +28 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/admin/codemirror.scss +8 -6
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/admin/constraints.scss +13 -13
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/admin/custom_fields.scss +37 -10
- data/app/packs/stylesheets/decidim/decidim_awesome/admin/user_picker.scss +41 -0
- data/app/packs/stylesheets/decidim/decidim_awesome/awesome_admin.scss +71 -0
- data/app/packs/stylesheets/decidim/decidim_awesome/awesome_application.scss +19 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/awesome_iframe/iframe.scss +3 -3
- data/app/packs/stylesheets/decidim/decidim_awesome/awesome_map/map.scss +176 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/editors/markdown_editor.scss +6 -4
- data/app/packs/stylesheets/decidim/decidim_awesome/editors/quill_editor.scss +58 -0
- data/app/{assets → packs}/stylesheets/decidim/decidim_awesome/forms/autosave.scss +2 -2
- data/app/packs/stylesheets/vendor/select2-foundation-theme.scss +348 -0
- data/app/presenters/decidim/decidim_awesome/menu_item_presenter_override.rb +25 -0
- data/app/presenters/decidim/decidim_awesome/menu_presenter_override.rb +23 -0
- data/app/uploaders/decidim/cw/decidim_awesome/image_uploader.rb +26 -0
- data/app/uploaders/decidim/decidim_awesome/image_uploader.rb +4 -16
- data/app/views/decidim/decidim_awesome/admin/checks/index.html.erb +28 -22
- data/app/views/decidim/decidim_awesome/admin/config/_constraints.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/config/_form_admins.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/config/_form_editors.html.erb +1 -0
- data/app/views/decidim/decidim_awesome/admin/config/_form_proposal_custom_fields.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/config/_form_styles.html.erb +7 -6
- data/app/views/decidim/decidim_awesome/admin/config/_modal.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/config/show.html.erb +3 -3
- data/app/views/decidim/decidim_awesome/admin/constraints/new.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/custom_redirects/_form.html.erb +6 -0
- data/app/views/decidim/decidim_awesome/admin/custom_redirects/edit.html.erb +13 -0
- data/app/views/decidim/decidim_awesome/admin/custom_redirects/index.html.erb +37 -0
- data/app/views/decidim/decidim_awesome/admin/custom_redirects/new.html.erb +13 -0
- data/app/views/decidim/decidim_awesome/admin/menu_hacks/edit.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/menu_hacks/new.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/admin/proposals/_editor.html.erb +5 -3
- data/app/views/decidim/decidim_awesome/iframe_component/iframe/show.html.erb +1 -1
- data/app/views/decidim/decidim_awesome/map_component/map/_api_ready.html.erb +3 -0
- data/app/views/decidim/decidim_awesome/map_component/map/_map_template.html.erb +68 -0
- data/app/views/decidim/decidim_awesome/map_component/map/{error.erb → error.html.erb} +2 -0
- data/app/views/decidim/decidim_awesome/map_component/map/show.html.erb +3 -67
- data/app/views/decidim/proposals/admin/proposals/_form.html.erb +1 -1
- data/app/views/layouts/decidim/admin/decidim_awesome.html.erb +13 -9
- data/app/views/layouts/decidim/decidim_awesome/_awesome_config.html.erb +0 -2
- data/app/views/{v0.24 → v0.25}/decidim/proposals/collaborative_drafts/_show.html.erb +0 -0
- data/app/views/{v0.23 → v0.25}/layouts/decidim/_head.html.erb +12 -10
- data/app/views/v0.25/layouts/decidim/admin/_header.html.erb +11 -0
- data/app/views/{v0.23 → v0.26}/decidim/proposals/collaborative_drafts/_show.html.erb +1 -7
- data/app/views/{v0.24 → v0.26}/layouts/decidim/_head.html.erb +16 -10
- data/app/views/v0.26/layouts/decidim/admin/_header.html.erb +11 -0
- data/config/assets.rb +46 -0
- data/config/i18n-tasks.yml +6 -0
- data/config/locales/ca.yml +77 -13
- data/config/locales/cs.yml +65 -1
- data/config/locales/en.yml +69 -1
- data/config/locales/es.yml +65 -1
- data/config/locales/eu.yml +0 -232
- data/config/locales/fr.yml +117 -53
- data/config/locales/it.yml +65 -1
- data/config/locales/ja.yml +66 -3
- data/config/locales/nl.yml +5 -46
- data/config/locales/pt-BR.yml +348 -0
- data/config/locales/pt-PT.yml +7 -0
- data/config/locales/pt.yml +7 -0
- data/config/locales/sv.yml +67 -182
- data/lib/decidim/decidim_awesome/admin_engine.rb +10 -15
- data/lib/decidim/decidim_awesome/awesome.rb +214 -0
- data/lib/decidim/decidim_awesome/awesome_helpers.rb +0 -7
- data/lib/decidim/decidim_awesome/checksums.yml +13 -16
- data/lib/decidim/decidim_awesome/config.rb +1 -0
- data/lib/decidim/decidim_awesome/content_parsers/editor_images_parser.rb +39 -0
- data/lib/decidim/decidim_awesome/engine.rb +27 -55
- data/lib/decidim/decidim_awesome/iframe_component/admin_engine.rb +23 -0
- data/lib/decidim/decidim_awesome/iframe_component/component.rb +6 -6
- data/lib/decidim/decidim_awesome/map_component/admin_engine.rb +23 -0
- data/lib/decidim/decidim_awesome/map_component/component.rb +6 -5
- data/lib/decidim/decidim_awesome/map_component/engine.rb +34 -0
- data/lib/decidim/decidim_awesome/menu_hacker.rb +1 -0
- data/lib/decidim/decidim_awesome/test/factories.rb +2 -2
- data/lib/decidim/decidim_awesome/test/initializer.rb +25 -0
- data/lib/decidim/decidim_awesome/test/layouts/decidim/_head.html.erb +30 -2
- data/lib/decidim/decidim_awesome/test/layouts/decidim/admin/_header.html.erb +7 -2
- data/lib/decidim/decidim_awesome/test/shared_examples/config_examples.rb +18 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/controller_examples.rb +13 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/custom_redirects_contexts.rb +47 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/menu_hack_contexts.rb +0 -17
- data/lib/decidim/decidim_awesome/test/shared_examples/scoped_admins_examples.rb +9 -17
- data/lib/decidim/decidim_awesome/test/shared_examples/summary_examples.rb +202 -0
- data/lib/decidim/decidim_awesome/version.rb +2 -2
- data/lib/decidim/decidim_awesome.rb +4 -152
- data/lib/tasks/decidim_awesome_active_storage_migrations_tasks.rake +37 -0
- data/lib/tasks/decidim_awesome_webpacker_tasks.rake +64 -0
- data/package.json +211 -0
- metadata +113 -113
- data/app/assets/config/decidim_admin_decidim_awesome_manifest.css +0 -3
- data/app/assets/config/decidim_admin_decidim_awesome_manifest.js +0 -2
- data/app/assets/config/decidim_decidim_awesome_manifest.css +0 -5
- data/app/assets/config/decidim_decidim_awesome_manifest.js +0 -4
- data/app/assets/config/legacy_decidim_admin_decidim_awesome_manifest.js +0 -2
- data/app/assets/config/legacy_decidim_decidim_awesome_manifest.js +0 -4
- data/app/assets/javascripts/decidim/decidim_awesome/admin/constraints.js.es6 +0 -54
- data/app/assets/javascripts/decidim/decidim_awesome/admin/legacy_form_builder.js.es6 +0 -80
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_admin.js +0 -7
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_application.js +0 -3
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/categories.js.es6 +0 -25
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/hashtags.js.es6 +0 -48
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/layers.js.es6 +0 -107
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/load_map.js.es6 +0 -15
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/map.js.es6 +0 -207
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/markers.js.es6 +0 -56
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/meetings.js.es6 +0 -132
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/proposals.js.es6 +0 -107
- data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/utilities.js.es6 +0 -57
- data/app/assets/javascripts/decidim/decidim_awesome/editors/legacy_quill_editor.js.es6 +0 -172
- data/app/assets/javascripts/decidim/decidim_awesome/editors/quill_editor.js.es6 +0 -185
- data/app/assets/javascripts/decidim/decidim_awesome/forms/custom_fields_builder.js.es6 +0 -211
- data/app/assets/javascripts/decidim/decidim_awesome/legacy_admin.js +0 -7
- data/app/assets/javascripts/decidim/decidim_awesome/legacy_application.js +0 -3
- data/app/assets/javascripts/decidim/decidim_awesome/proposals/custom_fields.js.es6 +0 -21
- data/app/assets/javascripts/decidim/decidim_awesome/proposals/images.js.es6 +0 -25
- data/app/assets/stylesheets/decidim/decidim_awesome/admin/user_picker.scss +0 -35
- data/app/assets/stylesheets/decidim/decidim_awesome/awesome_admin.scss +0 -64
- data/app/assets/stylesheets/decidim/decidim_awesome/awesome_application.scss +0 -22
- data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/leaflet.scss.erb +0 -18
- data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/map.scss +0 -160
- data/app/assets/stylesheets/decidim/decidim_awesome/editors/quill_editor.scss +0 -22
- data/app/awesome_overrides/forms/decidim/proposals/proposal_wizard_create_step_form_override.rb +0 -28
- data/app/awesome_overrides/presenters/decidim/menu_presenter_override.rb +0 -39
- data/app/controllers/concerns/decidim/decidim_awesome/admin_not_found_redirect.rb +0 -39
- data/app/controllers/decidim/decidim_awesome/iframe_component/application_controller.rb +0 -15
- data/app/controllers/decidim/decidim_awesome/map_component/application_controller.rb +0 -15
- data/app/views/v0.23/layouts/decidim/admin/_header.html.erb +0 -12
- data/app/views/v0.24/layouts/decidim/admin/_header.html.erb +0 -12
- data/lib/decidim/decidim_awesome/test/themes/css.lvh.me.css +0 -3
- data/lib/decidim/decidim_awesome/test/themes/erb.lvh.me.scss.erb +0 -2
- data/lib/decidim/decidim_awesome/test/themes/scss.lvh.me.scss +0 -1
- data/lib/decidim/decidim_awesome/test/themes/test-theme/body.scss +0 -4
- data/vendor/assets/images/layers-2x.png +0 -0
- data/vendor/assets/images/layers.png +0 -0
- data/vendor/assets/images/marker-icon.png +0 -0
- data/vendor/assets/javascripts/codemirror-4.inline-attachment.js +0 -89
- data/vendor/assets/javascripts/codemirror.js +0 -9801
- data/vendor/assets/javascripts/delta.min.js +0 -405
- data/vendor/assets/javascripts/delta.min.js.map +0 -1
- data/vendor/assets/javascripts/europa.min.js +0 -4
- data/vendor/assets/javascripts/form-builder.min.js +0 -19
- data/vendor/assets/javascripts/form-render.min.js +0 -19
- data/vendor/assets/javascripts/form-storage.js +0 -824
- data/vendor/assets/javascripts/highlight.min.js +0 -44
- data/vendor/assets/javascripts/inline-attachment.js +0 -399
- data/vendor/assets/javascripts/inscrybmde.min.js +0 -7
- data/vendor/assets/javascripts/jquery-ui.min.js +0 -13
- data/vendor/assets/javascripts/jquery.inline-attachment.js +0 -66
- data/vendor/assets/javascripts/jsrender.min.js +0 -4
- data/vendor/assets/javascripts/keymap/sublime.js +0 -720
- data/vendor/assets/javascripts/leaflet.featuregroup.subgroup.js +0 -6
- data/vendor/assets/javascripts/mode/css/css.js +0 -864
- data/vendor/assets/javascripts/select2.js +0 -6147
- data/vendor/assets/langs/en-US.lang +0 -110
- data/vendor/assets/stylesheets/codemirror.css +0 -350
- data/vendor/assets/stylesheets/default.min.css +0 -1
- data/vendor/assets/stylesheets/foundation.min.css +0 -1
- data/vendor/assets/stylesheets/github.min.css +0 -2
- data/vendor/assets/stylesheets/inscrybmde.min.scss +0 -194
- data/vendor/assets/stylesheets/jquery-ui.min.css +0 -7
- data/vendor/assets/stylesheets/select2-foundation-theme.css +0 -249
- data/vendor/assets/stylesheets/select2.css +0 -515
@@ -5,12 +5,16 @@ module Decidim
|
|
5
5
|
module MapHelper
|
6
6
|
include Decidim::MapHelper
|
7
7
|
|
8
|
+
def api_ready?
|
9
|
+
Decidim::Api::Schema.max_complexity >= 1300
|
10
|
+
end
|
11
|
+
|
8
12
|
# rubocop:disable Metrics/CyclomaticComplexity
|
9
13
|
# rubocop:disable Metrics/PerceivedComplexity:
|
10
14
|
def awesome_map_for(components, &block)
|
11
15
|
return unless map_utility_dynamic
|
12
16
|
|
13
|
-
map = awesome_builder.map_element({ class: "google-map" }, &block)
|
17
|
+
map = awesome_builder.map_element({ class: "google-map", id: "awesome-map-container" }, &block)
|
14
18
|
help = content_tag(:div, class: "map__help") do
|
15
19
|
sr_content = content_tag(:p, t("screen_reader_explanation", scope: "decidim.map.dynamic"), class: "show-for-sr")
|
16
20
|
|
@@ -34,8 +38,10 @@ module Decidim
|
|
34
38
|
"data-truncate" => global_settings.truncate || 255,
|
35
39
|
"data-map-center" => global_settings.map_center,
|
36
40
|
"data-map-zoom" => global_settings.map_zoom || 8,
|
41
|
+
"data-menu-merge-components" => global_settings.menu_merge_components,
|
37
42
|
"data-menu-amendments" => global_settings.menu_amendments,
|
38
43
|
"data-menu-meetings" => global_settings.menu_meetings,
|
44
|
+
"data-menu-categories" => global_settings.menu_categories,
|
39
45
|
"data-menu-hashtags" => global_settings.menu_hashtags,
|
40
46
|
"data-show-not-answered" => step_settings&.show_not_answered,
|
41
47
|
"data-show-accepted" => step_settings&.show_accepted,
|
@@ -66,14 +72,14 @@ module Decidim
|
|
66
72
|
end
|
67
73
|
|
68
74
|
# rubocop:disable Rails/HelperInstanceVariable
|
69
|
-
def current_categories
|
75
|
+
def current_categories(categories)
|
70
76
|
return @current_categories if @current_categories
|
71
77
|
|
72
78
|
@golden_ratio_conjugate = 0.618033988749895
|
73
79
|
# @h = rand # use random start value
|
74
|
-
@h = 0.
|
80
|
+
@h = 0.41
|
75
81
|
@current_categories = []
|
76
|
-
|
82
|
+
categories.first_class.each do |category|
|
77
83
|
append_category category
|
78
84
|
category.subcategories.each do |subcat|
|
79
85
|
append_category subcat
|
@@ -91,19 +97,19 @@ module Decidim
|
|
91
97
|
}
|
92
98
|
builder = map_utility_dynamic.create_builder(self, options)
|
93
99
|
|
100
|
+
# We need awesome map listeners before initialize the official map
|
101
|
+
unless snippets.any?(:awesome_map)
|
102
|
+
snippets.add(:awesome_map, javascript_pack_tag("decidim_decidim_awesome_map", defer: false))
|
103
|
+
snippets.add(:awesome_map, stylesheet_pack_tag("decidim_decidim_awesome_map"))
|
104
|
+
snippets.add(:head, snippets.for(:awesome_map))
|
105
|
+
end
|
106
|
+
|
94
107
|
unless snippets.any?(:map)
|
95
108
|
snippets.add(:map, builder.stylesheet_snippets)
|
96
109
|
snippets.add(:map, builder.javascript_snippets)
|
97
110
|
snippets.add(:head, snippets.for(:map))
|
98
111
|
end
|
99
112
|
|
100
|
-
unless snippets.any?(:awesome_map)
|
101
|
-
snippets.add(:awesome_map, stylesheet_link_tag("decidim/decidim_awesome/awesome_map/map"))
|
102
|
-
snippets.add(:awesome_map, javascript_include_tag("decidim/decidim_awesome/awesome_map/map"))
|
103
|
-
snippets.add(:awesome_map, javascript_include_tag("decidim/decidim_awesome/awesome_map/load_map"))
|
104
|
-
snippets.add(:head, snippets.for(:awesome_map))
|
105
|
-
end
|
106
|
-
|
107
113
|
builder
|
108
114
|
end
|
109
115
|
|
@@ -112,7 +118,7 @@ module Decidim
|
|
112
118
|
@h += @golden_ratio_conjugate
|
113
119
|
@h %= 1
|
114
120
|
# r,g,b = hsv_to_rgb(@h, 0.5, 0.95)
|
115
|
-
r, g, b = hsv_to_rgb(@h, 0.99, 0.
|
121
|
+
r, g, b = hsv_to_rgb(@h, 0.99, 0.95)
|
116
122
|
@current_categories.append(
|
117
123
|
id: category.id,
|
118
124
|
name: translated_attribute(category.name),
|
@@ -61,8 +61,8 @@ module Decidim
|
|
61
61
|
custom_fields = Decidim::DecidimAwesome::CustomFields.new(fields)
|
62
62
|
custom_fields.translate!
|
63
63
|
|
64
|
-
body = if form_presenter.proposal.body.is_a?(Hash) && locale
|
65
|
-
form_presenter.body(extras: false, all_locales: true)[locale]
|
64
|
+
body = if form_presenter.proposal.body.is_a?(Hash) && locale.present?
|
65
|
+
form_presenter.body(extras: false, all_locales: true).with_indifferent_access[locale]
|
66
66
|
else
|
67
67
|
form_presenter.body(extras: false)
|
68
68
|
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module DecidimAwesome
|
5
|
+
class MigrateLegacyImagesJob < ApplicationJob
|
6
|
+
queue_as :default
|
7
|
+
|
8
|
+
def perform(organization_id, mappings = [], logger = Rails.logger)
|
9
|
+
@organization_id = organization_id
|
10
|
+
@routes_mappings = mappings
|
11
|
+
@logger = logger
|
12
|
+
|
13
|
+
migrate_all!
|
14
|
+
transform_images_urls
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
attr_reader :routes_mappings, :logger
|
20
|
+
|
21
|
+
def migrate_all!
|
22
|
+
Decidim::CarrierWaveMigratorService.migrate_attachment!(
|
23
|
+
klass: Decidim::DecidimAwesome::EditorImage,
|
24
|
+
cw_attribute: "image",
|
25
|
+
cw_uploader: Decidim::Cw::DecidimAwesome::ImageUploader,
|
26
|
+
as_attribute: "file",
|
27
|
+
logger: @logger,
|
28
|
+
routes_mappings: routes_mappings
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
def transform_images_urls
|
33
|
+
mappings = routes_mappings.map do |mapping|
|
34
|
+
klass, id = mapping[:instance].split("#")
|
35
|
+
next unless klass == "Decidim::DecidimAwesome::EditorImage"
|
36
|
+
|
37
|
+
instance = Decidim::DecidimAwesome::EditorImage.find_by(id: id)
|
38
|
+
|
39
|
+
next if instance.blank?
|
40
|
+
|
41
|
+
mapping.merge!(instance: instance)
|
42
|
+
end.compact
|
43
|
+
|
44
|
+
editor_images_available_attributes.each do |model, attributes|
|
45
|
+
model.all.each do |item|
|
46
|
+
attributes.each do |attribute|
|
47
|
+
item.update(attribute => rewrite_value(item.send(attribute), mappings))
|
48
|
+
end
|
49
|
+
end
|
50
|
+
@logger.info "Updated model #{model.name} (attributes: #{attributes.join(", ")})"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def rewrite_value(value, mappings)
|
55
|
+
if value.is_a?(Hash)
|
56
|
+
value.transform_values do |nested_value|
|
57
|
+
rewrite_value(nested_value, mappings)
|
58
|
+
end
|
59
|
+
else
|
60
|
+
parser = Decidim::DecidimAwesome::ContentParsers::EditorImagesParser.new(value, routes_mappings: mappings)
|
61
|
+
parser.rewrite
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def editor_images_available_attributes
|
66
|
+
{
|
67
|
+
"Decidim::Accountability::Result" => %w(description),
|
68
|
+
"Decidim::Proposals::Proposal" => %w(body answer cost_report execution_period),
|
69
|
+
"Decidim::Votings::Voting" => %w(description),
|
70
|
+
"Decidim::Elections::Question" => %w(description),
|
71
|
+
"Decidim::Elections::Answer" => %w(description),
|
72
|
+
"Decidim::Elections::Election" => %w(description),
|
73
|
+
"Decidim::Initiative" => %w(description answer),
|
74
|
+
"Decidim::InitiativesType" => %w(description extra_fields_legal_information),
|
75
|
+
"Decidim::Assembly" => %w(short_description description purpose_of_action composition internal_organisation announcement closing_date_reason special_features),
|
76
|
+
"Decidim::Forms::Questionnaire" => %w(description tos),
|
77
|
+
"Decidim::Forms::Question" => %w(description),
|
78
|
+
"Decidim::Organization" => %w(welcome_notification_body admin_terms_of_use_body description highlighted_content_banner_short_description id_documents_explanation_text),
|
79
|
+
"Decidim::StaticPage" => %w(content),
|
80
|
+
"Decidim::ContextualHelpSection" => %w(content),
|
81
|
+
"Decidim::Category" => %w(description),
|
82
|
+
"Decidim::Blogs::Post" => %w(body),
|
83
|
+
"Decidim::Pages::Page" => %w(body),
|
84
|
+
"Decidim::Sortitions::Sortition" => %w(additional_info witnesses cancel_reason),
|
85
|
+
"Decidim::Consultations::Question" => %w(title question_context what_is_decided instructions),
|
86
|
+
"Decidim::Consultation" => %w(description),
|
87
|
+
"Decidim::Debates::Debate" => %w(description instructions information_updates conclusions),
|
88
|
+
"Decidim::Budgets::Budget" => %w(description),
|
89
|
+
"Decidim::Budgets::Project" => %w(description),
|
90
|
+
"Decidim::ConferenceSpeaker" => %w(short_bio),
|
91
|
+
"Decidim::Conferences::RegistrationType" => %w(description),
|
92
|
+
"Decidim::Conference" => %w(short_description description objectives registration_terms),
|
93
|
+
"Decidim::ParticipatoryProcessGroup" => %w(description),
|
94
|
+
"Decidim::ParticipatoryProcess" => %w(short_description description announcement),
|
95
|
+
"Decidim::ParticipatoryProcessStep" => %w(description),
|
96
|
+
"Decidim::Meetings::AgendaItem" => %w(description),
|
97
|
+
"Decidim::Meetings::Meeting" => %w(registration_terms description registration_email_custom_content closing_report)
|
98
|
+
}.each_with_object({}) do |(main_model, attributes), hash|
|
99
|
+
hash[main_model.constantize] = attributes
|
100
|
+
rescue NameError
|
101
|
+
hash
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Decidim
|
4
4
|
module DecidimAwesome
|
5
5
|
class EditorImage < ApplicationRecord
|
6
|
+
include Decidim::HasUploadValidations
|
7
|
+
|
6
8
|
self.table_name = "decidim_awesome_editor_images"
|
7
9
|
|
8
10
|
belongs_to :author, foreign_key: :decidim_author_id, class_name: "Decidim::User"
|
@@ -11,15 +13,8 @@ module Decidim
|
|
11
13
|
validates :organization, presence: true
|
12
14
|
validates :author, presence: true
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
-
# file_size: { less_than_or_equal_to: ->(_record) { Decidim.maximum_attachment_size } },
|
17
|
-
# file_content_type: { allow: ["image/jpeg", "image/png"] }
|
18
|
-
|
19
|
-
mount_uploader :image, Decidim::DecidimAwesome::ImageUploader
|
20
|
-
|
21
|
-
delegate :url, to: :image
|
22
|
-
delegate :thumbnail, to: :image
|
16
|
+
has_one_attached :file
|
17
|
+
validates_upload :file, uploader: Decidim::DecidimAwesome::ImageUploader
|
23
18
|
end
|
24
19
|
end
|
25
20
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "stylesheets/decidim/decidim_awesome/awesome_admin";
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "stylesheets/decidim/decidim_awesome/awesome_application";
|
@@ -0,0 +1 @@
|
|
1
|
+
import "src/decidim/decidim_awesome/admin/form_exit_warn"
|
@@ -0,0 +1 @@
|
|
1
|
+
import "src/decidim/decidim_awesome/proposals/custom_fields"
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "stylesheets/decidim/decidim_awesome/awesome_iframe/iframe";
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "stylesheets/decidim/decidim_awesome/awesome_map/map"
|
File without changes
|
@@ -1,36 +1,36 @@
|
|
1
|
-
// = require_self
|
2
|
-
|
3
|
-
let formBuilderList = formBuilderList || [];
|
4
|
-
let DecidimAwesome = DecidimAwesome || {};
|
5
1
|
$(() => {
|
2
|
+
let CustomFieldsBuilders = window.CustomFieldsBuilders || [];
|
3
|
+
|
6
4
|
$("body").on("click", "a.awesome-auto-edit", (e) => {
|
7
5
|
e.preventDefault();
|
8
6
|
const $link = $(e.currentTarget);
|
9
7
|
const scope = $link.data("scope");
|
10
8
|
const $target = $(`span.awesome-auto-edit[data-scope="${scope}"]`);
|
11
9
|
const $constraints = $(`.constraints-editor[data-key="${scope}"]`);
|
12
|
-
if($target.length == 0)
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
if ($target.length == 0) {
|
11
|
+
return;
|
12
|
+
}
|
13
|
+
|
14
|
+
const key = $target.data("key");
|
15
|
+
const attribute = $target.data("var");
|
16
16
|
const $hidden = $(`[name="config[${attribute}][${key}]"]`);
|
17
17
|
const $multiple = $(`[name="config[${attribute}][${key}][]"]`);
|
18
18
|
const $container = $(`.${attribute}_container[data-key="${key}"]`);
|
19
|
-
const $delete = $(
|
19
|
+
const $delete = $(".delete-box", $container);
|
20
20
|
|
21
|
-
const rebuildLabel = (text,
|
21
|
+
const rebuildLabel = (text, withScope) => {
|
22
22
|
$target.text(text);
|
23
23
|
$target.attr("data-key", text);
|
24
24
|
$target.data("key", text);
|
25
|
-
if(
|
26
|
-
$target.attr("data-scope",
|
27
|
-
$target.data("scope",
|
28
|
-
$link.attr("data-scope",
|
29
|
-
$link.data("scope",
|
25
|
+
if (withScope) {
|
26
|
+
$target.attr("data-scope", withScope);
|
27
|
+
$target.data("scope", withScope);
|
28
|
+
$link.attr("data-scope", withScope);
|
29
|
+
$link.data("scope", withScope);
|
30
30
|
}
|
31
31
|
$link.show();
|
32
32
|
};
|
33
|
-
|
33
|
+
|
34
34
|
const rebuildHmtl = (result) => {
|
35
35
|
rebuildLabel(result.key, result.scope);
|
36
36
|
$constraints.replaceWith(result.html);
|
@@ -40,8 +40,8 @@ $(() => {
|
|
40
40
|
$container.data("key", result.key);
|
41
41
|
$container.attr("data-key", result.key);
|
42
42
|
$delete.attr("href", $delete.attr("href").replace(`key=${key}`, `key=${result.key}`))
|
43
|
-
|
44
|
-
if(builder.key == key) {
|
43
|
+
CustomFieldsBuilders.forEach((builder) => {
|
44
|
+
if (builder.key == key) {
|
45
45
|
builder.key = result.key;
|
46
46
|
}
|
47
47
|
});
|
@@ -51,27 +51,32 @@ $(() => {
|
|
51
51
|
const $input = $(`input.awesome-auto-edit[data-scope="${scope}"]`);
|
52
52
|
$link.hide();
|
53
53
|
$input.select();
|
54
|
-
$input.on("keypress", (
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
54
|
+
$input.on("keypress", (evt) => {
|
55
|
+
if (evt.code == "Enter" || evt.code == "13" || evt.code == "10") {
|
56
|
+
evt.preventDefault();
|
57
|
+
$.ajax(
|
58
|
+
{
|
59
|
+
type: "POST",
|
60
|
+
url: DecidimAwesome.rename_scope_label_path,
|
61
|
+
dataType: "json",
|
62
|
+
headers: {
|
63
|
+
"X-CSRF-Token": $("meta[name=csrf-token]").attr("content")
|
64
|
+
},
|
65
|
+
data: { key: key,
|
66
|
+
scope: scope,
|
67
|
+
attribute: attribute,
|
68
|
+
text: $input.val()
|
69
|
+
}
|
70
|
+
}).
|
71
|
+
done((result) => rebuildHmtl(result)).
|
72
|
+
fail((err) => {
|
68
73
|
console.error("Error saving key", key, "ERR:", err);
|
69
74
|
rebuildLabel(key);
|
70
|
-
})
|
75
|
+
});
|
71
76
|
}
|
72
77
|
});
|
73
78
|
$input.on("blur", () => {
|
74
79
|
rebuildLabel(key);
|
75
80
|
});
|
76
81
|
});
|
77
|
-
});
|
82
|
+
});
|
@@ -0,0 +1,48 @@
|
|
1
|
+
$(() => {
|
2
|
+
$(".check-custom-redirections").on("click", (evt) => {
|
3
|
+
evt.preventDefault();
|
4
|
+
|
5
|
+
if ($(evt.target).hasClass("disabled")) {
|
6
|
+
return;
|
7
|
+
}
|
8
|
+
|
9
|
+
$(evt.target).addClass("disabled");
|
10
|
+
|
11
|
+
const getReport = (tr, response) => {
|
12
|
+
const item = $(tr).data("item");
|
13
|
+
const $td = $(tr).find(".redirect-status");
|
14
|
+
|
15
|
+
let type = response.type;
|
16
|
+
let status = response.status;
|
17
|
+
if (response.type == "opaqueredirect") {
|
18
|
+
type = "redirect";
|
19
|
+
status = "302";
|
20
|
+
}
|
21
|
+
|
22
|
+
if (item.active) {
|
23
|
+
if (type == "redirect") {
|
24
|
+
$td.addClass("success");
|
25
|
+
} else {
|
26
|
+
$td.addClass("alert");
|
27
|
+
}
|
28
|
+
} else {
|
29
|
+
$td.addClass("muted");
|
30
|
+
}
|
31
|
+
|
32
|
+
return `${type} (${status})`;
|
33
|
+
};
|
34
|
+
|
35
|
+
$("tr.custom-redirection").each((index, tr) => {
|
36
|
+
const $td = $(tr).find(".redirect-status");
|
37
|
+
$td.html('<span class="loading-spinner" />');
|
38
|
+
fetch($(tr).data("origin"), {method: "HEAD", redirect: "manual"}).
|
39
|
+
then((response) => {
|
40
|
+
$td.html(getReport(tr, response))
|
41
|
+
}).
|
42
|
+
catch((error) => {
|
43
|
+
console.error("ERROR", error)
|
44
|
+
$td.removeClass("loading");
|
45
|
+
});
|
46
|
+
});
|
47
|
+
});
|
48
|
+
});
|
@@ -1,7 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
import CodeMirror from "codemirror"
|
2
|
+
import "codemirror/mode/css/css"
|
3
|
+
import "codemirror/keymap/sublime"
|
4
|
+
import "stylesheets/decidim/decidim_awesome/admin/codemirror.scss";
|
5
5
|
|
6
6
|
$(() => {
|
7
7
|
$(".awesome-edit-config .scoped_styles_container textarea").each((_idx, el) => {
|
@@ -0,0 +1,55 @@
|
|
1
|
+
$(() => {
|
2
|
+
const $modal = $("#constraintsModal");
|
3
|
+
if (!$modal.length) {
|
4
|
+
return;
|
5
|
+
}
|
6
|
+
|
7
|
+
$(".decidim_awesome-form").on("click", ".constraints-editor .add-condition,.constraints-editor .edit-condition", (e) => {
|
8
|
+
e.preventDefault();
|
9
|
+
const $this = $(e.target)
|
10
|
+
const url = $this.attr("href");
|
11
|
+
const $callout = $this.closest(".constraints-editor").find(".callout");
|
12
|
+
$callout.hide();
|
13
|
+
$callout.removeClass("alert success");
|
14
|
+
$modal.find(".modal-content").html("");
|
15
|
+
$modal.addClass("loading");
|
16
|
+
$modal.data("url", url);
|
17
|
+
$modal.foundation("open");
|
18
|
+
$modal.find(".modal-content").load(url, () => {
|
19
|
+
$modal.removeClass("loading");
|
20
|
+
});
|
21
|
+
});
|
22
|
+
|
23
|
+
// Custom event listener to reload the modal if needed
|
24
|
+
document.body.addEventListener("constraint:change", (e) => {
|
25
|
+
const vars = e.detail.map((setting) => `${setting.key}=${setting.value}`);
|
26
|
+
const url = `${$modal.data("url")}&${vars.join("&")}`;
|
27
|
+
// console.log("constraint:change vars:", vars, "url:", url)
|
28
|
+
$modal.addClass("loading");
|
29
|
+
$modal.find(".modal-content").load(url, () => {
|
30
|
+
$modal.removeClass("loading");
|
31
|
+
});
|
32
|
+
});
|
33
|
+
|
34
|
+
// Rails AJAX events
|
35
|
+
document.body.addEventListener("ajax:error", (responseText) => {
|
36
|
+
// console.log("ajax:error", responseText)
|
37
|
+
const $container = $(`.constraints-editor[data-key="${responseText.detail[0].key}"]`)
|
38
|
+
const $callout = $container.find(".callout");
|
39
|
+
$callout.show();
|
40
|
+
$callout.contents("p").html(`${responseText.detail[0].message}: <strong>${responseText.detail[0].error}</strong>`);
|
41
|
+
$callout.addClass("alert");
|
42
|
+
});
|
43
|
+
|
44
|
+
document.body.addEventListener("ajax:success", (responseText) => {
|
45
|
+
// console.log("ajax:success", responseText)
|
46
|
+
const $container = $(`.constraints-editor[data-key="${responseText.detail[0].key}"]`)
|
47
|
+
const $callout = $container.find(".callout");
|
48
|
+
$modal.foundation("close");
|
49
|
+
$callout.show();
|
50
|
+
$callout.contents("p").html(responseText.detail[0].message);
|
51
|
+
$callout.addClass("success");
|
52
|
+
// reconstruct list
|
53
|
+
$container.replaceWith(responseText.detail[0].html);
|
54
|
+
});
|
55
|
+
});
|
@@ -1,30 +1,27 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
// = require decidim/decidim_awesome/forms/rich_text_plugin
|
4
|
-
// = require form-builder.min
|
5
|
-
// = require_self
|
1
|
+
require("formBuilder/dist/form-builder.min.js")
|
2
|
+
import "src/decidim/decidim_awesome/forms/rich_text_plugin"
|
6
3
|
|
7
|
-
|
4
|
+
window.CustomFieldsBuilders = window.CustomFieldsBuilders || [];
|
8
5
|
|
9
6
|
$(() => {
|
10
7
|
$(".awesome-edit-config .proposal_custom_fields_editor").each((_idx, el) => {
|
11
8
|
const key = $(el).closest(".proposal_custom_fields_container").data("key");
|
12
9
|
// DOCS: https://formbuilder.online/docs
|
13
|
-
|
10
|
+
window.CustomFieldsBuilders.push({
|
14
11
|
el: el,
|
15
12
|
key: key,
|
16
13
|
config: {
|
17
14
|
i18n: {
|
18
|
-
locale:
|
19
|
-
location:
|
15
|
+
locale: "en-US",
|
16
|
+
location: "https://cdn.jsdelivr.net/npm/formbuilder-languages@1.1.0/"
|
20
17
|
},
|
21
18
|
formData: $(`input[name="config[proposal_custom_fields][${key}]"]`).val(),
|
22
|
-
disableFields: [
|
23
|
-
disabledActionButtons: [
|
19
|
+
disableFields: ["button", "file"],
|
20
|
+
disabledActionButtons: ["save", "data", "clear"],
|
24
21
|
disabledAttrs: [
|
25
|
-
|
26
|
-
|
27
|
-
|
22
|
+
"access",
|
23
|
+
"inline",
|
24
|
+
"className"
|
28
25
|
],
|
29
26
|
controlOrder: [
|
30
27
|
"text",
|
@@ -39,20 +36,21 @@ $(() => {
|
|
39
36
|
"paragraph"
|
40
37
|
],
|
41
38
|
disabledSubtypes: {
|
42
|
-
text: [
|
43
|
-
// disable wysiwyg editors as they present problems
|
44
|
-
|
45
|
-
|
46
|
-
},
|
39
|
+
text: ["color"], // default color as it generate hashtags in decidim (TODO: fix hashtag generator with this)
|
40
|
+
// disable default wysiwyg editors as they present problems
|
41
|
+
textarea: ["tinymce", "quill"]
|
42
|
+
}
|
47
43
|
},
|
48
44
|
instance: null
|
49
45
|
});
|
50
46
|
});
|
51
47
|
|
52
48
|
$(document).on("formBuilder.create", (_event, i, list) => {
|
53
|
-
if(!list[i])
|
49
|
+
if (!list[i]) {
|
50
|
+
return;
|
51
|
+
}
|
54
52
|
|
55
|
-
$(list[i].el).formBuilder(list[i].config).promise.then(function(res){
|
53
|
+
$(list[i].el).formBuilder(list[i].config).promise.then(function(res) {
|
56
54
|
list[i].instance = res;
|
57
55
|
// Attach to DOM
|
58
56
|
list[i].el.FormBuilder = res;
|
@@ -60,19 +58,18 @@ $(() => {
|
|
60
58
|
$(list[i].el).find(".loading-spinner").remove();
|
61
59
|
// for external use
|
62
60
|
$(document).trigger("formBuilder.created", [list[i]]);
|
63
|
-
if(i < list.length) {
|
61
|
+
if (i < list.length) {
|
64
62
|
$(document).trigger("formBuilder.create", [i + 1, list]);
|
65
63
|
}
|
66
64
|
});
|
67
65
|
});
|
68
66
|
|
69
|
-
if(
|
70
|
-
$(document).trigger("formBuilder.create", [0,
|
67
|
+
if (window.CustomFieldsBuilders.length) {
|
68
|
+
$(document).trigger("formBuilder.create", [0, window.CustomFieldsBuilders]);
|
71
69
|
}
|
72
70
|
|
73
71
|
$("form.awesome-edit-config").on("submit", () => {
|
74
|
-
|
75
|
-
formBuilderList.forEach((builder) =>{
|
72
|
+
window.CustomFieldsBuilders.forEach((builder) => {
|
76
73
|
$(`input[name="config[proposal_custom_fields][${builder.key}]"]`).val(builder.instance.actions.getData("json"));
|
77
74
|
});
|
78
75
|
});
|
@@ -1,8 +1,8 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
import "select2"
|
2
|
+
import "stylesheets/decidim/decidim_awesome/admin/user_picker.scss"
|
3
3
|
|
4
4
|
$(() => {
|
5
|
-
|
5
|
+
$("select.multiusers-select").each(function() {
|
6
6
|
const url = $(this).attr("data-url");
|
7
7
|
$(this).select2({
|
8
8
|
ajax: {
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// Webpack seems to "forgget" about certain libraries already being loaded
|
2
|
+
// if javascript_pack_tag is called two times, let's include the whole Decidim admin here instead
|
3
|
+
import "entrypoints/decidim_admin"
|
4
|
+
// Custom scripts for awesome
|
5
|
+
import "src/decidim/decidim_awesome/admin/constraints"
|
6
|
+
import "src/decidim/decidim_awesome/admin/auto_edit"
|
7
|
+
import "src/decidim/decidim_awesome/admin/user_picker"
|
8
|
+
import "src/decidim/decidim_awesome/editors/tabs_focus"
|
9
|
+
import "src/decidim/decidim_awesome/admin/codemirror"
|
10
|
+
import "src/decidim/decidim_awesome/admin/check_redirections"
|
11
|
+
|
12
|
+
import {destroyQuillEditor, createQuillEditor, createMarkdownEditor} from "src/decidim/decidim_awesome/editors/editor"
|
13
|
+
|
14
|
+
$(() => {
|
15
|
+
$(".editor-container").each((_idx, container) => {
|
16
|
+
destroyQuillEditor(container);
|
17
|
+
if (window.DecidimAwesome.use_markdown_editor) {
|
18
|
+
createMarkdownEditor(container);
|
19
|
+
} else {
|
20
|
+
createQuillEditor(container);
|
21
|
+
}
|
22
|
+
});
|
23
|
+
});
|