From 288f97605d0af8b027fbfc16703ce4856176dd8c Mon Sep 17 00:00:00 2001
From: hellekin <hellekin@cepheide.org>
Date: Sun, 31 Jan 2021 19:06:53 +0100
Subject: [FEATURE] Add print button

Using `leaflet-easyprint`, we can add a button to print a current view of the map.

This commit adds the functionality, without customization.

Source: https://github.com/rowanwins/leaflet-easyPrint
---
 app/javascript/controllers/map_controller.js | 10 ++++++++++
 1 file changed, 10 insertions(+)

(limited to 'app/javascript')

diff --git a/app/javascript/controllers/map_controller.js b/app/javascript/controllers/map_controller.js
index 005599e..57bafa5 100644
--- a/app/javascript/controllers/map_controller.js
+++ b/app/javascript/controllers/map_controller.js
@@ -18,6 +18,7 @@ import "leaflet-providers"
 import "leaflet.markercluster/dist/leaflet.markercluster.js"
 
 import 'leaflet-extra-markers'
+import 'leaflet-easyprint'
 
 export default class extends Controller {
     static targets = [ "container" ]
@@ -65,6 +66,15 @@ export default class extends Controller {
 
         L.DomEvent.on(window, 'hashchange', this.doSomethingCool);
 
+        /* Show a button to print the map */
+        L.easyPrint({
+            title: 'Print this map',
+            position: 'bottomright',
+            filename: `incommon-map-detail`,
+            exportOnly: true,
+            sizeModes: ['A4Portrait', 'A4Landscape']
+        }).addTo(this.map);
+
         // Allow calling the mapController from elsewhere.
         this.element[this.identifier] = this
     }
-- 
cgit v1.2.3