decidim-navigation_maps 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +22 -3
  3. data/Rakefile +8 -0
  4. data/app/cells/decidim/navigation_maps/content_blocks/navigation_map/_tabs_content.erb +1 -1
  5. data/app/cells/decidim/navigation_maps/content_blocks/navigation_map/show.erb +2 -2
  6. data/app/cells/decidim/navigation_maps/content_blocks/navigation_map_cell.rb +5 -0
  7. data/app/cells/decidim/navigation_maps/content_blocks/navigation_map_settings_form/_form.erb +4 -4
  8. data/app/cells/decidim/navigation_maps/content_blocks/navigation_map_settings_form/_tabs_content.erb +0 -1
  9. data/app/cells/decidim/navigation_maps/content_blocks/navigation_map_settings_form/show.erb +4 -2
  10. data/app/cells/decidim/navigation_maps/content_blocks/navigation_map_settings_form_cell.rb +9 -0
  11. data/app/controllers/decidim/navigation_maps/admin/blueprints_controller.rb +1 -1
  12. data/app/jobs/decidim/navigation_maps/migrate_legacy_images_job.rb +32 -0
  13. data/app/models/decidim/navigation_maps/blueprint.rb +4 -3
  14. data/app/packs/entrypoints/decidim_admin_navigation_maps.js +4 -0
  15. data/app/packs/entrypoints/decidim_admin_navigation_maps.scss +1 -0
  16. data/app/packs/entrypoints/decidim_navigation_maps.js +7 -0
  17. data/app/packs/entrypoints/decidim_navigation_maps.scss +1 -0
  18. data/app/packs/src/decidim/navigation_maps/admin/map_editor.js +83 -0
  19. data/app/packs/src/decidim/navigation_maps/admin/navigation_maps.js +154 -0
  20. data/app/packs/src/decidim/navigation_maps/map_view.js +125 -0
  21. data/app/packs/src/decidim/navigation_maps/navigation_maps.js +43 -0
  22. data/app/{assets → packs}/stylesheets/decidim/navigation_maps/_variables.scss +0 -0
  23. data/app/{assets → packs}/stylesheets/decidim/navigation_maps/admin/navigation_maps.scss +4 -4
  24. data/app/{assets → packs}/stylesheets/decidim/navigation_maps/navigation_maps.scss +1 -2
  25. data/app/uploaders/decidim/navigation_maps/blueprint_uploader.rb +4 -12
  26. data/app/uploaders/decidim/navigation_maps/cw/blueprint_uploader.rb +24 -0
  27. data/config/assets.rb +41 -0
  28. data/config/locales/cs.yml +1 -1
  29. data/db/seeds.rb +6 -5
  30. data/lib/decidim/navigation_maps/admin_engine.rb +0 -4
  31. data/lib/decidim/navigation_maps/engine.rb +4 -4
  32. data/lib/decidim/navigation_maps/navigation_map_cell_helpers.rb +1 -1
  33. data/lib/decidim/navigation_maps/version.rb +2 -2
  34. data/lib/decidim/navigation_maps.rb +0 -2
  35. data/lib/tasks/decidim_navigation_maps_webpacker_tasks.rake +58 -0
  36. data/lib/tasks/navigation_maps_active_storage_migration_tasks.rake +37 -0
  37. metadata +31 -27
  38. data/app/assets/config/admin/decidim_navigation_maps_manifest.css +0 -3
  39. data/app/assets/config/admin/decidim_navigation_maps_manifest.js +0 -3
  40. data/app/assets/config/decidim_navigation_maps_manifest.css +0 -3
  41. data/app/assets/config/decidim_navigation_maps_manifest.js +0 -1
  42. data/app/assets/images/decidim/navigation_maps/icon.svg +0 -1
  43. data/app/assets/javascripts/decidim/navigation_maps/admin/map_editor.js +0 -88
  44. data/app/assets/javascripts/decidim/navigation_maps/admin/navigation_maps.js +0 -143
  45. data/app/assets/javascripts/decidim/navigation_maps/map_view.js +0 -123
  46. data/app/assets/javascripts/decidim/navigation_maps/navigation_maps.js +0 -44
@@ -0,0 +1,43 @@
1
+ import NavigationMapView from "src/decidim/navigation_maps/map_view.js";
2
+ import "jsviews/jsrender";
3
+
4
+ $(function() {
5
+
6
+ let $maps = $(".navigation_maps .map");
7
+ let $tabs = $("#navigation_maps-tabs");
8
+ let maps = {};
9
+ let tmpl = $.templates("#navigation_maps-popup");
10
+
11
+ $maps.each(function() {
12
+ let id = $(this).data("id");
13
+ maps[id] = new NavigationMapView(this);
14
+ maps[id].onSetLayerProperties(function(layer, props) {
15
+ if (!props.popup) {
16
+ let node = document.createElement("div");
17
+ let html = tmpl.render(props);
18
+ $(node).html(html);
19
+
20
+ layer.bindPopup(node, {
21
+ maxHeight: 400,
22
+ // autoPan: false,
23
+ maxWidth: 640,
24
+ minWidth: 200,
25
+ keepInView: true,
26
+ className: `navigation_map-info map-info-${id}-${layer._leaflet_id}`
27
+ });
28
+ }
29
+ });
30
+ maps[id].onClickArea(function(area) {
31
+ let popup = area.feature.properties && area.feature.properties.link && area.feature.properties.popup;
32
+ if (popup) {
33
+ location = area.feature.properties.link;
34
+ }
35
+ });
36
+ });
37
+
38
+ $tabs.on("change.zf.tabs", function(e, $tab, $content) {
39
+ let id = $content.find(".map").data("id");
40
+ maps[id].reload();
41
+ });
42
+
43
+ });
@@ -2,10 +2,10 @@
2
2
  //= require leaflet-geoman
3
3
  //= require_self
4
4
 
5
- @import "decidim/variables";
6
- @import "decidim/utils/settings";
7
- @import "decidim/utils/mixins";
8
- @import "decidim/navigation_maps/variables";
5
+ @import "stylesheets/decidim/variables";
6
+ @import "stylesheets/decidim/utils/settings";
7
+ @import "stylesheets/decidim/utils/mixins";
8
+ @import "stylesheets/decidim/navigation_maps/variables";
9
9
 
10
10
  .navigation_maps.admin {
11
11
  .accordion-item {
@@ -1,8 +1,7 @@
1
1
  //= require leaflet
2
2
  //= require leaflet-geoman
3
3
  //= require_self
4
-
5
- @import "decidim/navigation_maps/variables";
4
+ @import "stylesheets/decidim/navigation_maps/variables";
6
5
 
7
6
  .home-section {
8
7
  .navigation_maps {
@@ -4,18 +4,10 @@ module Decidim
4
4
  module NavigationMaps
5
5
  # This class deals with uploading images to a Blueprints.
6
6
  class BlueprintUploader < Decidim::ImageUploader
7
- process :validate_size, :validate_dimensions
8
-
9
- version :thumbnail do
10
- process resize_to_fit: [nil, 237]
11
- end
12
-
13
- def extension_white_list
14
- %w(jpg jpeg png svg)
15
- end
16
-
17
- def max_image_height_or_width
18
- 8000
7
+ set_variants do
8
+ {
9
+ thumbnail: { resize_to_fit: [nil, 237] }
10
+ }
19
11
  end
20
12
  end
21
13
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module NavigationMaps
5
+ module Cw
6
+ # This class deals with uploading images to a Blueprints.
7
+ class BlueprintUploader < Decidim::Cw::ImageUploader
8
+ process :validate_size, :validate_dimensions
9
+
10
+ version :thumbnail do
11
+ process resize_to_fit: [nil, 237]
12
+ end
13
+
14
+ def extension_white_list
15
+ %w(jpg jpeg png svg)
16
+ end
17
+
18
+ def max_image_height_or_width
19
+ 8000
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
data/config/assets.rb ADDED
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is located at `config/assets.rb` of your module.
4
+
5
+ # Define the base path of your module. Please note that `Rails.root` may not be
6
+ # used because we are not inside the Rails environment when this file is loaded.
7
+ base_path = File.expand_path("..", __dir__)
8
+
9
+ # Register an additional load path for webpack. All the assets within these
10
+ # directories will be available for inclusion within the Decidim assets. For
11
+ # example, if you have `app/packs/src/decidim/foo.js`, you can include that file
12
+ # in your JavaScript entrypoints (or other JavaScript files within Decidim)
13
+ # using `import "src/decidim/foo"` after you have registered the additional path
14
+ # as follows.
15
+ Decidim::Webpacker.register_path("#{base_path}/app/packs")
16
+
17
+ # Register the entrypoints for your module. These entrypoints can be included
18
+ # within your application using `javascript_pack_tag` and if you include any
19
+ # SCSS files within the entrypoints, they become available for inclusion using
20
+ # `stylesheet_pack_tag`.
21
+ Decidim::Webpacker.register_entrypoints(
22
+ decidim_navigation_maps: "#{base_path}/app/packs/entrypoints/decidim_navigation_maps.js",
23
+ decidim_admin_navigation_maps: "#{base_path}/app/packs/entrypoints/decidim_admin_navigation_maps.js"
24
+ )
25
+
26
+ # If you want to import some extra SCSS files in the Decidim main SCSS file
27
+ # without adding any extra stylesheet inclusion tags, you can use the following
28
+ # method to register the stylesheet import for the main application.
29
+ # Decidim::Webpacker.register_stylesheet_import("stylesheets/decidim/navigation_maps/navigation_maps")
30
+
31
+ # If you want to do the same but include the SCSS file for the admin panel's
32
+ # main SCSS file, you can use the following method.
33
+ # Decidim::Webpacker.register_stylesheet_import("stylesheets/decidim/navigation_maps/admin", group: :admin)
34
+
35
+ # If you want to override some SCSS variables/settings for Foundation from the
36
+ # module, you can add the following registered import.
37
+ # Decidim::Webpacker.register_stylesheet_import("stylesheets/decidim/foo/settings", type: :settings)
38
+
39
+ # If you want to do the same but override the SCSS variables of the admin
40
+ # panel's styles, you can use the following method.
41
+ # Decidim::Webpacker.register_stylesheet_import("stylesheets/decidim/foo/admin_settings", type: :settings, group: :admin)
@@ -29,7 +29,7 @@ cs:
29
29
  view: Zapojte se
30
30
  navigation_map_settings_form:
31
31
  add: Přidat
32
- autohide_tabs: Hide tabs navigation if there's only one map
32
+ autohide_tabs: Skrýt navigaci v záložkách, pokud je pouze jedna mapa
33
33
  blueprint_image: Obrázek plánu
34
34
  description: Popis
35
35
  editor: Editor mapy
data/db/seeds.rb CHANGED
@@ -24,18 +24,19 @@ if !ENV["SKIP_MODULE_SEEDS"] && (!Rails.env.production? || ENV["SEED"])
24
24
  blueprint1 = Decidim::NavigationMaps::Blueprint.create(
25
25
  organization: organization,
26
26
  content_block: content_block,
27
- image: File.new(File.join(seeds_root, "antarctica.png")),
28
27
  title: Decidim::Faker::Localized.sentence(word_count: 2),
29
28
  description: Decidim::Faker::Localized.sentence(word_count: 10)
30
29
  )
31
30
 
32
- Decidim::NavigationMaps::Blueprint.create(
31
+ blueprint2 = Decidim::NavigationMaps::Blueprint.create(
33
32
  organization: organization,
34
- image: File.new(File.join(seeds_root, "penguins.jpg")),
35
33
  title: Decidim::Faker::Localized.sentence(word_count: 2),
36
34
  description: Decidim::Faker::Localized.sentence(word_count: 10)
37
35
  )
38
36
 
37
+ blueprint1.image.attach(io: File.open(File.join(seeds_root, "antarctica.png")), filename: "antarctica.png", content_type: "image/png")
38
+ blueprint2.image.attach(io: File.open(File.join(seeds_root, "penguins.jpg")), filename: "penguins.jpg", content_type: "image/jpeg")
39
+
39
40
  Decidim::NavigationMaps::BlueprintArea.create(
40
41
  blueprint: blueprint1,
41
42
  area_id: "10",
@@ -84,7 +85,7 @@ if !ENV["SKIP_MODULE_SEEDS"] && (!Rails.env.production? || ENV["SEED"])
84
85
  link_type: "link",
85
86
  color: "#ffbb00",
86
87
  title: { en: "Penguins" },
87
- description: { en: "Penguins are beatiful animals" }
88
+ description: { en: "Penguins are beautiful animals" }
88
89
  )
89
90
 
90
91
  Decidim::NavigationMaps::BlueprintArea.create(
@@ -121,10 +122,10 @@ if !ENV["SKIP_MODULE_SEEDS"] && (!Rails.env.production? || ENV["SEED"])
121
122
  blueprint = Decidim::NavigationMaps::Blueprint.create(
122
123
  organization: organization,
123
124
  content_block: content_block,
124
- image: File.new(File.join(seeds_root, "pla-cerda.jpg")),
125
125
  title: Decidim::Faker::Localized.sentence(word_count: 2),
126
126
  description: Decidim::Faker::Localized.sentence(word_count: 10)
127
127
  )
128
+ blueprint1.image.attach(io: File.open(File.join(seeds_root, "pla-cerda.jpg")), filename: "pla-cerda.jpg", content_type: "image/jpeg")
128
129
 
129
130
  Decidim::NavigationMaps::BlueprintArea.create(
130
131
  blueprint: blueprint,
@@ -22,10 +22,6 @@ module Decidim
22
22
  end
23
23
  end
24
24
 
25
- initializer "decidim_navigation_maps.admin_assets" do |app|
26
- app.config.assets.precompile += %w(admin/decidim_navigation_maps_manifest.js admin/decidim_navigation_maps_manifest.css)
27
- end
28
-
29
25
  def load_seed
30
26
  nil
31
27
  end
@@ -9,10 +9,6 @@ module Decidim
9
9
  class Engine < ::Rails::Engine
10
10
  isolate_namespace Decidim::NavigationMaps
11
11
 
12
- initializer "decidim_navigation_maps.assets" do |app|
13
- app.config.assets.precompile += %w(decidim_navigation_maps_manifest.js decidim_navigation_maps_manifest.css)
14
- end
15
-
16
12
  initializer "decidim.navigation_maps.content_blocks" do
17
13
  Decidim.content_blocks.register(:homepage, :navigation_map) do |content_block|
18
14
  content_block.cell = "decidim/navigation_maps/content_blocks/navigation_map"
@@ -41,6 +37,10 @@ module Decidim
41
37
  Cell::ViewModel.view_paths << File.expand_path("#{Decidim::NavigationMaps::Engine.root}/app/cells")
42
38
  Cell::ViewModel.view_paths << File.expand_path("#{Decidim::NavigationMaps::Engine.root}/app/views") # for partials
43
39
  end
40
+
41
+ initializer "decidim_notify.webpacker.assets_path" do
42
+ Decidim.register_assets_path File.expand_path("app/packs", root)
43
+ end
44
44
  end
45
45
  end
46
46
  end
@@ -7,7 +7,7 @@ module Decidim
7
7
  delegate :available_locales, to: :current_organization
8
8
 
9
9
  def valid_blueprints
10
- content_block_blueprints.where.not(image: [nil, ""]).order(:created_at)
10
+ content_block_blueprints.joins(:image_attachment).order(:created_at)
11
11
  end
12
12
 
13
13
  def valid_blueprints?
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  # This holds the decidim-meetings version.
5
5
  module NavigationMaps
6
- VERSION = "1.2.0"
7
- DECIDIM_VERSION = [">= 0.24", "< 0.25"].freeze
6
+ VERSION = "1.3.0"
7
+ DECIDIM_VERSION = [">= 0.25", "< 0.27"].freeze
8
8
  end
9
9
  end
@@ -5,8 +5,6 @@ require "decidim/navigation_maps/engine"
5
5
  require "decidim/navigation_maps/admin_engine"
6
6
 
7
7
  module Decidim
8
- # This namespace holds the logic of the `NavigationMaps` component. This component
9
- # allows users to create navigation_maps in a participatory space.
10
8
  module NavigationMaps
11
9
  autoload :NavigationMapCellHelpers, "decidim/navigation_maps/navigation_map_cell_helpers"
12
10
  end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "decidim/gem_manager"
4
+
5
+ namespace :decidim_navigation_maps do
6
+ namespace :webpacker do
7
+ desc "Installs Decidim Awesome webpacker files in Rails instance application"
8
+ task install: :environment do
9
+ raise "Decidim gem is not installed" if decidim_path.nil?
10
+
11
+ install_navigation_maps_npm
12
+ end
13
+
14
+ desc "Adds Decidim Awesome dependencies in package.json"
15
+ task upgrade: :environment do
16
+ raise "Decidim gem is not installed" if decidim_path.nil?
17
+
18
+ install_navigation_maps_npm
19
+ end
20
+
21
+ def install_navigation_maps_npm
22
+ navigation_maps_npm_dependencies.each do |type, packages|
23
+ system! "npm i --save-#{type} #{packages.join(" ")}"
24
+ end
25
+ end
26
+
27
+ def navigation_maps_npm_dependencies
28
+ @navigation_maps_npm_dependencies ||= begin
29
+ package_json = JSON.parse(File.read(navigation_maps_path.join("package.json")))
30
+
31
+ {
32
+ prod: package_json["dependencies"].map { |package, version| "#{package}@#{version}" },
33
+ dev: package_json["devDependencies"].map { |package, version| "#{package}@#{version}" }
34
+ }.freeze
35
+ end
36
+ end
37
+
38
+ def navigation_maps_path
39
+ @navigation_maps_path ||= Pathname.new(navigation_maps_gemspec.full_gem_path) if Gem.loaded_specs.has_key?(gem_name)
40
+ end
41
+
42
+ def navigation_maps_gemspec
43
+ @navigation_maps_gemspec ||= Gem.loaded_specs[gem_name]
44
+ end
45
+
46
+ def rails_app_path
47
+ @rails_app_path ||= Rails.root
48
+ end
49
+
50
+ def system!(command)
51
+ system("cd #{rails_app_path} && #{command}") || abort("\n== Command #{command} failed ==")
52
+ end
53
+
54
+ def gem_name
55
+ "decidim-navigation_maps"
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :navigation_maps do
4
+ namespace :active_storage_migrations do
5
+ desc "Migrates editor images from Carrierwave to ActiveStorage"
6
+ task migrate_from_carrierwave: :environment do
7
+ stdout = Logger.new($stdout)
8
+ stdout.level = Logger::INFO
9
+ Rails.logger.extend(ActiveSupport::Logger.broadcast(stdout))
10
+ Decidim::Organization.find_each do |organization|
11
+ puts "Migrating Organization #{organization.id} (#{organization.host})..."
12
+ routes_mappings = []
13
+ Decidim::NavigationMaps::MigrateLegacyImagesJob.perform_now(organization.id, routes_mappings)
14
+
15
+ path = Rails.root.join("tmp/navigation_maps_editor_images_mappings.csv")
16
+ dirname = File.dirname(path)
17
+ FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
18
+ File.open(path, "wb") do |file|
19
+ file.write(Decidim::Exporters::CSV.new(routes_mappings).export.read)
20
+ end
21
+ end
22
+ end
23
+
24
+ desc "Checks editor images migrated from Carrierwave to ActiveStorage"
25
+ task check_migration_from_carrierwave: :environment do
26
+ logger = ActiveSupport::TaggedLogging.new(Logger.new($stdout))
27
+
28
+ Decidim::CarrierWaveMigratorService.check_migration(
29
+ klass: Decidim::NavigationMaps::Blueprint,
30
+ cw_attribute: "image",
31
+ cw_uploader: Decidim::NavigationMaps::Cw::BlueprintUploader,
32
+ as_attribute: "image",
33
+ logger: logger
34
+ )
35
+ end
36
+ end
37
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-navigation_maps
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Vergés
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-08 00:00:00.000000000 Z
11
+ date: 2022-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: decidim-admin
@@ -16,60 +16,60 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.24'
19
+ version: '0.25'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '0.25'
22
+ version: '0.27'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '0.24'
29
+ version: '0.25'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '0.25'
32
+ version: '0.27'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: decidim-core
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '0.24'
39
+ version: '0.25'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '0.25'
42
+ version: '0.27'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '0.24'
49
+ version: '0.25'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '0.25'
52
+ version: '0.27'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: decidim-dev
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: '0.24'
59
+ version: '0.25'
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '0.25'
62
+ version: '0.27'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: '0.24'
69
+ version: '0.25'
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: '0.25'
72
+ version: '0.27'
73
73
  description: Allows to create visual guiding maps in content blocks for Decidim.
74
74
  email:
75
75
  - ivan@platoniq.net
@@ -80,18 +80,6 @@ files:
80
80
  - LICENSE-AGPLv3.txt
81
81
  - README.md
82
82
  - Rakefile
83
- - app/assets/config/admin/decidim_navigation_maps_manifest.css
84
- - app/assets/config/admin/decidim_navigation_maps_manifest.js
85
- - app/assets/config/decidim_navigation_maps_manifest.css
86
- - app/assets/config/decidim_navigation_maps_manifest.js
87
- - app/assets/images/decidim/navigation_maps/icon.svg
88
- - app/assets/javascripts/decidim/navigation_maps/admin/map_editor.js
89
- - app/assets/javascripts/decidim/navigation_maps/admin/navigation_maps.js
90
- - app/assets/javascripts/decidim/navigation_maps/map_view.js
91
- - app/assets/javascripts/decidim/navigation_maps/navigation_maps.js
92
- - app/assets/stylesheets/decidim/navigation_maps/_variables.scss
93
- - app/assets/stylesheets/decidim/navigation_maps/admin/navigation_maps.scss
94
- - app/assets/stylesheets/decidim/navigation_maps/navigation_maps.scss
95
83
  - app/cells/decidim/navigation_maps/content_blocks/groups_navigation_map_cell.rb
96
84
  - app/cells/decidim/navigation_maps/content_blocks/navigation_map/_styles.erb
97
85
  - app/cells/decidim/navigation_maps/content_blocks/navigation_map/_tabs.erb
@@ -113,15 +101,29 @@ files:
113
101
  - app/forms/decidim/navigation_maps/area_form.rb
114
102
  - app/forms/decidim/navigation_maps/blueprint_form.rb
115
103
  - app/forms/decidim/navigation_maps/blueprint_forms.rb
104
+ - app/jobs/decidim/navigation_maps/migrate_legacy_images_job.rb
116
105
  - app/models/decidim/navigation_maps/application_record.rb
117
106
  - app/models/decidim/navigation_maps/blueprint.rb
118
107
  - app/models/decidim/navigation_maps/blueprint_area.rb
108
+ - app/packs/entrypoints/decidim_admin_navigation_maps.js
109
+ - app/packs/entrypoints/decidim_admin_navigation_maps.scss
110
+ - app/packs/entrypoints/decidim_navigation_maps.js
111
+ - app/packs/entrypoints/decidim_navigation_maps.scss
112
+ - app/packs/src/decidim/navigation_maps/admin/map_editor.js
113
+ - app/packs/src/decidim/navigation_maps/admin/navigation_maps.js
114
+ - app/packs/src/decidim/navigation_maps/map_view.js
115
+ - app/packs/src/decidim/navigation_maps/navigation_maps.js
116
+ - app/packs/stylesheets/decidim/navigation_maps/_variables.scss
117
+ - app/packs/stylesheets/decidim/navigation_maps/admin/navigation_maps.scss
118
+ - app/packs/stylesheets/decidim/navigation_maps/navigation_maps.scss
119
119
  - app/queries/decidim/navigation_maps/content_block_blueprints.rb
120
120
  - app/queries/decidim/navigation_maps/organization_blueprints.rb
121
121
  - app/uploaders/decidim/navigation_maps/blueprint_uploader.rb
122
+ - app/uploaders/decidim/navigation_maps/cw/blueprint_uploader.rb
122
123
  - app/views/decidim/navigation_maps/admin/areas/_form.html.erb
123
124
  - app/views/decidim/navigation_maps/admin/areas/new.html.erb
124
125
  - app/views/decidim/navigation_maps/admin/areas/show.html.erb
126
+ - config/assets.rb
125
127
  - config/i18n-tasks.yml
126
128
  - config/locales/ca.yml
127
129
  - config/locales/cs.yml
@@ -147,6 +149,8 @@ files:
147
149
  - lib/decidim/navigation_maps/test/factories.rb
148
150
  - lib/decidim/navigation_maps/version.rb
149
151
  - lib/tasks/custom_seeds.rake
152
+ - lib/tasks/decidim_navigation_maps_webpacker_tasks.rake
153
+ - lib/tasks/navigation_maps_active_storage_migration_tasks.rake
150
154
  - vendor/assets/images/draw/layers-2x.png
151
155
  - vendor/assets/images/draw/layers.png
152
156
  - vendor/assets/images/draw/marker-icon-2x.png
@@ -185,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
189
  - !ruby/object:Gem::Version
186
190
  version: '0'
187
191
  requirements: []
188
- rubygems_version: 3.1.4
192
+ rubygems_version: 3.1.6
189
193
  signing_key:
190
194
  specification_version: 4
191
195
  summary: A decidim navigation_maps module
@@ -1,3 +0,0 @@
1
- /*
2
- *= link decidim/navigation_maps/admin/navigation_maps.css
3
- */
@@ -1,3 +0,0 @@
1
- //= link decidim/navigation_maps/admin/navigation_maps.js
2
- //= require jquery.form
3
- //= require leaflet
@@ -1,3 +0,0 @@
1
- /*
2
- *= link decidim/navigation_maps/navigation_maps.css
3
- */
@@ -1 +0,0 @@
1
- //= link decidim/navigation_maps/navigation_maps.js
@@ -1 +0,0 @@
1
- <svg height="35px" width="35px" fill="#000000" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="0 1 511 511" style="enable-background:new 0 1 511 511;" xml:space="preserve"><g><path d="M205.6,146.9c-22.2,0-40.2,18-40.2,40.2c0,22.2,18,40.2,40.2,40.2c22.2,0,40.2-18,40.2-40.2 C245.9,165,227.8,146.9,205.6,146.9z M205.6,206.6c-10.7,0-19.3-8.7-19.3-19.3c0-10.7,8.7-19.3,19.3-19.3 c10.6,0,19.3,8.7,19.3,19.3C225,197.9,216.3,206.6,205.6,206.6z"/><path d="M406.6,178V70.3c0-5.8-4.2-10.1-10-10.1H10.6C4.8,60.3,0,64.6,0,70.3v304.9c0,5.8,4.8,10.9,10.6,10.9h242 c24.5,39.8,68.7,66.7,119.1,66.7c77,0,139.4-62.8,139.4-139.7C511,248.4,467.4,193.7,406.6,178z M21,365.2v-284h364.7v92.9 c-4.2-0.5-9.1-0.7-14-0.7c-0.3,0-0.6,0-0.6,0v-66.4c0-5.8-5-10-10.9-10H47.2c-5.8,0-10.5,4.2-10.5,10v231.8 c0,5.8,4.7,10.8,10.5,10.8h189.7c1.5,5.2,3.1,10.5,5.2,15.7H21z M232.9,328.6H57.6v-40.4l61.5-54.3c2.8-2.5,7-2.6,10-0.2l63.3,50.6 c10.7,8.6,26,8.4,36.5-0.5l7.6-6.5c-3,11.4-4.6,23.6-4.6,35.8C232,318.3,232.3,323.3,232.9,328.6z M215.7,267.8 c-2.8,2.4-7,2.4-10,0.1l-63.4-50.6c-10.9-8.7-26.5-8.4-37,0.9l-47.7,42V117.9H350v57.2c-37.7,6-70.1,26.8-91.4,56.4L215.7,267.8z M371.6,431.7C306.2,431.7,253,378.4,253,313s53.2-118.6,118.6-118.6c65.4,0,118.6,53.2,118.6,118.6 C490.4,378.4,437.1,431.7,371.6,431.7z"/><path d="M435.4,234c-34.8-34.6-91-34.6-125.6,0c-13.7,13.7-22.4,31.2-25,50.4c-2.5,18.5,0.9,37.8,9.9,54.4c0,0,0,0.1,0.1,0.1 c4.4,8,9.4,14.7,15.2,20.4l55.1,55.1c2,2,4.6,3,7.4,3s5.5-1.2,7.4-3l55.1-55.1c16.9-16.9,26.2-39.2,26.2-62.8 C461.4,273,452.2,250.7,435.4,234z M420.1,344.6l-47.7,47.7l-47.7-47.7c-4.4-4.4-8.2-9.5-11.6-15.7c-14.2-26.6-9.6-58.8,11.6-80.1 c26.4-26.4,69.4-26.4,95.8,0c12.8,12.8,19.8,29.8,19.7,47.7C440.2,314.6,433,331.7,420.1,344.6z"/><path d="M372.3,241.7c-29,0-52.7,23.7-52.7,52.7c0,29,23.7,52.7,52.7,52.7s52.7-23.7,52.7-52.7 C425.1,265.4,401.5,241.7,372.3,241.7z M372.3,326c-17.5,0-31.8-14.2-31.8-31.8c0-17.5,14.3-31.8,31.8-31.8 c17.5,0,31.8,14.3,31.8,31.8C404.1,311.8,389.9,326,372.3,326z"/></g></svg>
@@ -1,88 +0,0 @@
1
- // Creates a map
2
- //= require decidim/navigation_maps/map_view
3
-
4
- function NavigationMapEditor(map_object, table_object) {
5
- var self = this;
6
- // Call constructor of superclass to initialize superclass-derived members.
7
- NavigationMapView.call(self, map_object, function() {
8
- self.createControls();
9
- if(self.blueprint) {
10
- self.createAreas();
11
- }
12
- });
13
- self.table_object = table_object;
14
- this.createAreaCallback = function () {};
15
- this.editAreaCallback = function () {};
16
- this.removeAreaCallback = function () {};
17
- }
18
-
19
- // NavigationMapEditor derives from NavigationMapView
20
- NavigationMapEditor.prototype = Object.create(NavigationMapView.prototype);
21
- NavigationMapEditor.prototype.constructor = NavigationMapEditor;
22
-
23
- NavigationMapEditor.prototype.createControls = function() {
24
- var self = this;
25
- self.map.pm.addControls({
26
- position: 'topleft',
27
- drawCircle: false,
28
- drawMarker: false,
29
- drawCircleMarker: false,
30
- drawPolyline: false,
31
- cutPolygon: false
32
- });
33
-
34
- self.map.on('pm:create', function(e) {
35
- var geojson = e.layer.toGeoJSON();
36
- self.blueprint[e.layer._leaflet_id] = geojson;
37
- self.attachEditorEvents(e.layer);
38
- self.createAreaCallback(e.layer._leaflet_id, e.layer, self);
39
- });
40
-
41
- self.map.on('pm:remove', function(e) {
42
- delete self.blueprint[e.layer._leaflet_id];
43
- self.removeAreaCallback(e.layer._leaflet_id, e.layer, self);
44
- });
45
- };
46
-
47
- NavigationMapEditor.prototype.editing = function() {
48
- var pm = this.map.pm;
49
- return pm.globalRemovalEnabled() || pm.globalDragModeEnabled() || pm.globalEditEnabled();
50
- };
51
-
52
- // register callback to handle area edits,removals and creations
53
- NavigationMapView.prototype.onCreateArea = function(callback) {
54
- this.createAreaCallback = callback;
55
- };
56
- NavigationMapView.prototype.onEditArea = function(callback) {
57
- this.editAreaCallback = callback;
58
- };
59
- NavigationMapView.prototype.onRemoveArea = function(callback) {
60
- this.removeCreateCallback = callback;
61
- };
62
-
63
- NavigationMapEditor.prototype.attachEditorEvents = function (layer) {
64
- var self = this;
65
-
66
- layer.on('mouseover', function(e) {
67
- e.target.getElement().classList.add('selected')
68
- });
69
-
70
- layer.on('mouseout', function(e) {
71
- e.target.getElement().classList.remove('selected')
72
- });
73
-
74
- layer.on('pm:edit', function(e) {
75
- self.blueprint[e.target._leaflet_id] = e.target.toGeoJSON();
76
- self.editAreaCallback(e.target._leaflet_id, e.target, self);
77
- });
78
-
79
- layer.on('click', function(e) {
80
- if(!self.editing()) {
81
- self.clickAreaCallback(e.target._leaflet_id, e.target, self);
82
- }
83
- });
84
- };
85
-
86
- NavigationMapEditor.prototype.getBlueprint = function () {
87
- return this.blueprint;
88
- };