diff --git a/plugins/fullscreen/__init__.py b/plugins/fullscreen/__init__.py new file mode 100644 index 00000000..48aad58e --- /dev/null +++ b/plugins/fullscreen/__init__.py @@ -0,0 +1 @@ +from .plugin import * diff --git a/plugins/fullscreen/manifest.json b/plugins/fullscreen/manifest.json new file mode 100644 index 00000000..8a113128 --- /dev/null +++ b/plugins/fullscreen/manifest.json @@ -0,0 +1,13 @@ +{ + "name": "Fullscreen Button", + "webodmMinVersion": "0.5.0", + "description": "Add a fullscreen button to the 2D map view", + "version": "1.0.0", + "author": "Piero Toffanin", + "email": "pt@masseranolabs.com", + "repository": "https://github.com/OpenDroneMap/WebODM", + "tags": ["fullscreen"], + "homepage": "https://github.com/OpenDroneMap/WebODM", + "experimental": false, + "deprecated": false +} \ No newline at end of file diff --git a/plugins/fullscreen/plugin.py b/plugins/fullscreen/plugin.py new file mode 100644 index 00000000..c1b41325 --- /dev/null +++ b/plugins/fullscreen/plugin.py @@ -0,0 +1,5 @@ +from app.plugins import PluginBase + +class Plugin(PluginBase): + def include_js_files(self): + return ['main.js'] diff --git a/plugins/fullscreen/public/main.js b/plugins/fullscreen/public/main.js new file mode 100644 index 00000000..d982173e --- /dev/null +++ b/plugins/fullscreen/public/main.js @@ -0,0 +1,32 @@ +PluginsAPI.Map.willAddControls([ + 'fullscreen/node_modules/leaflet-fullscreen/dist/Leaflet.fullscreen.js', + 'fullscreen/node_modules/leaflet-fullscreen/dist/leaflet.fullscreen.css' + ], function(args, _){ + args.map.addControl(new L.Control.Fullscreen({ + position: 'bottomleft' + })); + + var fullscreenchange; + + if ('onfullscreenchange' in document) { + fullscreenchange = 'fullscreenchange'; + } else if ('onmozfullscreenchange' in document) { + fullscreenchange = 'mozfullscreenchange'; + } else if ('onwebkitfullscreenchange' in document) { + fullscreenchange = 'webkitfullscreenchange'; + } else if ('onmsfullscreenchange' in document) { + fullscreenchange = 'MSFullscreenChange'; + } + + if (fullscreenchange) { + var onFullscreenChange = L.bind(args.map._onFullscreenChange, args.map); + + args.map.whenReady(function () { + L.DomEvent.on(document, fullscreenchange, onFullscreenChange); + }); + + args.map.on('unload', function () { + L.DomEvent.off(document, fullscreenchange, onFullscreenChange); + }); + } +}); diff --git a/plugins/fullscreen/public/package.json b/plugins/fullscreen/public/package.json new file mode 100644 index 00000000..e62dc1ae --- /dev/null +++ b/plugins/fullscreen/public/package.json @@ -0,0 +1,14 @@ +{ + "name": "fullscreen", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "leaflet-fullscreen": "^1.0.2" + } +}