├── .gitignore ├── .project ├── .settings └── org.eclipse.core.resources.prefs ├── Dockerfile ├── LICENSE ├── LICENSE_EXCEPTIONS ├── README ├── TEXT_RANGES ├── build.xml ├── docker-compose.yml ├── src ├── css │ ├── bootstrap-formhelpers.css │ ├── bootstrap-formhelpers.min.css │ └── oseam.css ├── favicon.ico ├── images │ ├── ContentDetection.png │ ├── CreateDatabase.png │ ├── CreateDatabaseOSMAPI.png │ ├── CreateExtension.png │ ├── HardwareLogger.jpg │ ├── MeasurementsClassDiagram.png │ ├── NewUser.png │ ├── Overview-de.jpg │ ├── Overview-en.jpg │ ├── PositionClassDiagram.png │ ├── Scale.png │ ├── application_sl2.svg │ ├── application_x-actisense.png │ ├── application_x-actisense.svg │ ├── application_x-flashfile.png │ ├── application_x-flashfile.svg │ ├── application_x-gpx.png │ ├── application_x-gpx.svg │ ├── application_x-humminbird.png │ ├── application_x-humminbird.svg │ ├── application_x-nmea0183.png │ ├── application_x-nmea0183.svg │ ├── application_x-nmea2000.png │ ├── application_x-nmea2000.svg │ ├── application_x-sharp.png │ ├── application_x-sharp.svg │ ├── bootstrap-formhelpers-countries.flags-LICENSE.txt │ ├── bootstrap-formhelpers-countries.flags.png │ ├── bootstrap-formhelpers-currencies.flags.png │ ├── bootstrap-formhelpers-googlefonts.png │ ├── help.png │ ├── openseamap-logo-32.png │ ├── tidal_scale_24.png │ ├── tracks_low.jpg │ ├── undefined.png │ ├── undefined.svg │ ├── vessel.png │ └── vessels_low.jpg ├── index.html ├── js │ ├── init.js │ ├── oseam-models-auth.js │ ├── oseam-models-frontend.js │ ├── oseam-models-gauge.js │ ├── oseam-models-gaugemeasurement.js │ ├── oseam-models-gaugemeasurements.js │ ├── oseam-models-gauges.js │ ├── oseam-models-license.js │ ├── oseam-models-licenses.js │ ├── oseam-models-offset.js │ ├── oseam-models-stats.js │ ├── oseam-models-track.js │ ├── oseam-models-tracks.js │ ├── oseam-models-user.js │ ├── oseam-models-vessel.js │ ├── oseam-models-vessels.js │ ├── oseam-routers-router.js │ ├── oseam-utils-validation.js │ ├── oseam-views-about.js │ ├── oseam-views-attributions.js │ ├── oseam-views-contact.js │ ├── oseam-views-contribute.js │ ├── oseam-views-depthsensorpage.js │ ├── oseam-views-documentation.js │ ├── oseam-views-gauge.js │ ├── oseam-views-gaugedialog.js │ ├── oseam-views-gaugemeasurement.js │ ├── oseam-views-gauges.js │ ├── oseam-views-goodby.js │ ├── oseam-views-gpspage.js │ ├── oseam-views-home.js │ ├── oseam-views-instructions.js │ ├── oseam-views-introduction.js │ ├── oseam-views-license.js │ ├── oseam-views-login.js │ ├── oseam-views-logindlg.js │ ├── oseam-views-maptracks.js │ ├── oseam-views-meta1.js │ ├── oseam-views-meta2.js │ ├── oseam-views-meta3.js │ ├── oseam-views-meta4.js │ ├── oseam-views-navbar.js │ ├── oseam-views-register.js │ ├── oseam-views-resetPassword.js │ ├── oseam-views-selection.js │ ├── oseam-views-selectionitem.js │ ├── oseam-views-sensorpositions.js │ ├── oseam-views-singltrack.js │ ├── oseam-views-toolbar.js │ ├── oseam-views-track.js │ ├── oseam-views-tracks.js │ ├── oseam-views-user-alt.js │ ├── oseam-views-user.js │ ├── oseam-views-vessel.js │ ├── oseam-views-vesselitem.js │ ├── oseam-views-vesselpage.js │ ├── oseam-views-vessels.js │ ├── oseam-views-welcome.js │ ├── oseam-views-wizard.js │ ├── oseam.js │ ├── templates │ │ ├── Disabledcontribute-de.handlebars │ │ ├── about-de.handlebars │ │ ├── about-en.handlebars │ │ ├── alert-info.handlebars │ │ ├── alert-success.handlebars │ │ ├── alert.handlebars │ │ ├── attributions-de.handlebars │ │ ├── attributions-en.handlebars │ │ ├── attributions.handlebars │ │ ├── contact-de.handlebars │ │ ├── contact-en.handlebars │ │ ├── contribute-de.handlebars │ │ ├── contribute-en.handlebars │ │ ├── depthsensoroffset-de.handlebars │ │ ├── depthsensoroffset-en.handlebars │ │ ├── documentation-de.handlebars │ │ ├── documentation-en.handlebars │ │ ├── gauge.handlebars │ │ ├── gaugedialog-en.handlebars │ │ ├── gaugemeasurement.handlebars │ │ ├── gauges-de.handlebars │ │ ├── gauges-en.handlebars │ │ ├── goodby-de.handlebars │ │ ├── goodby-en.handlebars │ │ ├── gpsoffset-de.handlebars │ │ ├── gpsoffset-en.handlebars │ │ ├── home-de.handlebars │ │ ├── home-en.handlebars │ │ ├── instructions-de.handlebars │ │ ├── instructions-en.handlebars │ │ ├── introduction-de.handlebars │ │ ├── introduction-en.handlebars │ │ ├── license-de.handlebars │ │ ├── license-en.handlebars │ │ ├── login-de.handlebars │ │ ├── login-en.handlebars │ │ ├── maptracks.handlebars │ │ ├── meta1-de.handlebars │ │ ├── meta1-en.handlebars │ │ ├── navbar.handlebars │ │ ├── page.handlebars │ │ ├── register-de.handlebars │ │ ├── register-en.handlebars │ │ ├── register.handlebars │ │ ├── reset-password.handlebars │ │ ├── toolbar.handlebars │ │ ├── track.handlebars │ │ ├── tracks-de.handlebars │ │ ├── tracks-en.handlebars │ │ ├── user-de-alt.handlebars │ │ ├── user-de.handlebars │ │ ├── user-en.handlebars │ │ ├── vessel-de.handlebars │ │ ├── vessel-en.handlebars │ │ ├── vesselgeneric-de.handlebars │ │ ├── vesselgeneric-en.handlebars │ │ ├── vesselitem.handlebars │ │ ├── vessels-de.handlebars │ │ ├── vessels-en.handlebars │ │ ├── welcome-de.handlebars │ │ ├── welcome-en.handlebars │ │ └── wizard.handlebars │ ├── templates_local.js │ └── wscript ├── lib │ ├── backbone.js │ ├── bootstrap-formhelpers │ │ ├── bootstrap-formhelpers.js │ │ └── bootstrap-formhelpers.min.js │ ├── bootstrap │ │ ├── css │ │ │ ├── bootstrap-responsive.css │ │ │ ├── bootstrap-responsive.min.css │ │ │ ├── bootstrap.css │ │ │ └── bootstrap.min.css │ │ ├── img │ │ │ ├── glyphicons-halflings-white.png │ │ │ └── glyphicons-halflings.png │ │ └── js │ │ │ ├── bootstrap.js │ │ │ └── bootstrap.min.js │ ├── handlebars-runtime.js │ ├── handlebars.js │ ├── jquery-sha1.js │ ├── jquery-ui.js │ ├── jquery.js │ ├── openlayers │ │ ├── OpenLayers.js │ │ ├── img │ │ │ ├── blank.gif │ │ │ ├── cloud-popup-relative.png │ │ │ ├── drag-rectangle-off.png │ │ │ ├── drag-rectangle-on.png │ │ │ ├── east-mini.png │ │ │ ├── layer-switcher-maximize.png │ │ │ ├── layer-switcher-minimize.png │ │ │ ├── marker-blue.png │ │ │ ├── marker-gold.png │ │ │ ├── marker-green.png │ │ │ ├── marker.png │ │ │ ├── measuring-stick-off.png │ │ │ ├── measuring-stick-on.png │ │ │ ├── north-mini.png │ │ │ ├── panning-hand-off.png │ │ │ ├── panning-hand-on.png │ │ │ ├── slider.png │ │ │ ├── south-mini.png │ │ │ ├── west-mini.png │ │ │ ├── zoom-minus-mini.png │ │ │ ├── zoom-plus-mini.png │ │ │ ├── zoom-world-mini.png │ │ │ └── zoombar.png │ │ └── theme │ │ │ └── default │ │ │ ├── google.css │ │ │ ├── google.tidy.css │ │ │ ├── ie6-style.css │ │ │ ├── ie6-style.tidy.css │ │ │ ├── img │ │ │ ├── add_point_off.png │ │ │ ├── add_point_on.png │ │ │ ├── blank.gif │ │ │ ├── close.gif │ │ │ ├── drag-rectangle-off.png │ │ │ ├── drag-rectangle-on.png │ │ │ ├── draw_line_off.png │ │ │ ├── draw_line_on.png │ │ │ ├── draw_point_off.png │ │ │ ├── draw_point_on.png │ │ │ ├── draw_polygon_off.png │ │ │ ├── draw_polygon_on.png │ │ │ ├── editing_tool_bar.png │ │ │ ├── move_feature_off.png │ │ │ ├── move_feature_on.png │ │ │ ├── navigation_history.png │ │ │ ├── overview_replacement.gif │ │ │ ├── pan-panel-NOALPHA.png │ │ │ ├── pan-panel.png │ │ │ ├── pan_off.png │ │ │ ├── pan_on.png │ │ │ ├── panning-hand-off.png │ │ │ ├── panning-hand-on.png │ │ │ ├── remove_point_off.png │ │ │ ├── remove_point_on.png │ │ │ ├── ruler.png │ │ │ ├── save_features_off.png │ │ │ ├── save_features_on.png │ │ │ ├── view_next_off.png │ │ │ ├── view_next_on.png │ │ │ ├── view_previous_off.png │ │ │ ├── view_previous_on.png │ │ │ ├── zoom-panel-NOALPHA.png │ │ │ └── zoom-panel.png │ │ │ ├── style.css │ │ │ ├── style.mobile.css │ │ │ ├── style.mobile.tidy.css │ │ │ └── style.tidy.css │ ├── raphael-min.js │ └── underscore.js ├── local_index.html ├── robots.txt ├── singletrack.html ├── translations │ ├── de.json │ ├── en.json │ └── ru.json └── wscript ├── waf └── wscript /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | .lock-waf* 3 | .waf* 4 | build 5 | debug 6 | release 7 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | depthWeb2 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:latest 2 | ARG UID=1001 3 | ARG GID=1001 4 | 5 | RUN apt-get -y update && apt-get -y --no-install-recommends upgrade 6 | RUN apt-get -y --no-install-recommends install npm python3 python-is-python3 7 | RUN npm i -g google-closure-compiler handlebars@1.0.12 8 | 9 | RUN addgroup --gid $GID builduser && adduser --uid $UID --gid $GID --disabled-password builduser 10 | 11 | USER builduser 12 | WORKDIR /depth 13 | 14 | CMD /bin/bash -c "./waf configure && ./waf build_release && ./waf install_release" 15 | -------------------------------------------------------------------------------- /LICENSE_EXCEPTIONS: -------------------------------------------------------------------------------- 1 | src/lib/*: 2 | External libraries have their own license. 3 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Synopsis 2 | -------- 3 | 4 | Web frontend for the depth project (http://depth.openseamap.org). 5 | 6 | 7 | Installation 8 | ------------ 9 | 10 | The preferred way to build this project is now by using docker compose. 11 | 12 | To make sure that docker uses the right permissions, first grab your user ID 13 | and default group ID by doing ```id```. Then create a .env file containing 14 | two lines setting your user id and group id. 15 | 16 | ``` 17 | UID=1000 18 | GID=1000 19 | ``` 20 | 21 | (or something that matches your uid and gid) 22 | 23 | Then, in this directory, execute 24 | 25 | ``` 26 | docker-compose build depth-builder && docker-compose run --rm depth-builder 27 | ``` 28 | 29 | or, if you have only docker and not docker-compose 30 | 31 | ``` 32 | docker build -t depth-builder . 33 | docker run --rm -v .:/depth:rw -v ./build:/release:rw --user= depth-builder 34 | ``` 35 | 36 | to build an image and then run the build process inside it. 37 | The results will be left in the build/release subdirectory. 38 | 39 | Debugging 40 | ----------------------- 41 | In order to facilitate debugging, functionality has been added that makes the whole thing work 42 | without handlebars precompiler or closure compiler. Just load index_local from the file system 43 | with your browser and that's it. So far has been only tested with chrome. 44 | 45 | In order to allow cross site requests without having the server send appropriate headers, 46 | chrome needs to be startet with disabled security. On windows do: 47 | 48 | "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:\Projekte\Osm\ChromeProfile" C:\Projekte\Osm\WebFrontend\depth_webfrontend\src\local_index.html 49 | 50 | (of course you have to adjust the paths to user-data-dir and local_index.html accordingly.) 51 | 52 | user-data-dir is used to do browsing with disabled security with a special profile that does not contain any personal data. 53 | 54 | Furthermore, this works only with the test version of the depth api on testdepth.openseamap.org. 55 | Please set "apiUrl" in js/oseam.js accordingly 56 | Please DO NOT push your versione of oseam.js with the changed apiUrl to the repository, as this will break automatic deployment 57 | 58 | 59 | Tests 60 | ----- 61 | 62 | Actually, we have no tests for the frontend. Feel free to create 63 | some (e.g. Selenium). 64 | 65 | 66 | Contributors 67 | ------------ 68 | 69 | Bug reports and pull requests are very welcome. Join us on the mailing 70 | list: https://lists.sourceforge.net/lists/listinfo/openseamap-develop 71 | 72 | 73 | License 74 | ------- 75 | 76 | This work is released under the 'CC0 License' (see LICENSE file). Some 77 | parts (e.g. third party libraries) are licensed under a different 78 | license (see LICENSE_EXCEPTIONS). 79 | -------------------------------------------------------------------------------- /TEXT_RANGES: -------------------------------------------------------------------------------- 1 | +-------------+--------------------------------------------+ 2 | | Range | Owner | 3 | +-------------+--------------------------------------------+ 4 | | 1000 - 1999 | Dominik | 5 | +-------------+--------------------------------------------+ 6 | -------------------------------------------------------------------------------- /build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | simple example build file 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | # before you run this file, create a .env file in the same directory with the follwing contents 2 | # 3 | # UID= 4 | # GID= 5 | # 6 | # typically, both of these would be 1000 or close. 7 | # then, when you build and/or run the image, they will run with your credentials, 8 | # allowing write access. 9 | 10 | services: 11 | depth-builder: 12 | image: depth-builder 13 | build: . 14 | user: $UID 15 | group_add: 16 | - $GID 17 | volumes: 18 | - .:/depth:rw 19 | - ./build:/release:rw 20 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/favicon.ico -------------------------------------------------------------------------------- /src/images/ContentDetection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/ContentDetection.png -------------------------------------------------------------------------------- /src/images/CreateDatabase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/CreateDatabase.png -------------------------------------------------------------------------------- /src/images/CreateDatabaseOSMAPI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/CreateDatabaseOSMAPI.png -------------------------------------------------------------------------------- /src/images/CreateExtension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/CreateExtension.png -------------------------------------------------------------------------------- /src/images/HardwareLogger.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/HardwareLogger.jpg -------------------------------------------------------------------------------- /src/images/MeasurementsClassDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/MeasurementsClassDiagram.png -------------------------------------------------------------------------------- /src/images/NewUser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/NewUser.png -------------------------------------------------------------------------------- /src/images/Overview-de.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/Overview-de.jpg -------------------------------------------------------------------------------- /src/images/Overview-en.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/Overview-en.jpg -------------------------------------------------------------------------------- /src/images/PositionClassDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/PositionClassDiagram.png -------------------------------------------------------------------------------- /src/images/Scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/Scale.png -------------------------------------------------------------------------------- /src/images/application_sl2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 16 | 18 | 19 | 21 | image/svg+xml 22 | 24 | 25 | 26 | 27 | 28 | 31 | 38 | LowranceSL2 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/images/application_x-actisense.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/application_x-actisense.png -------------------------------------------------------------------------------- /src/images/application_x-actisense.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 50 | 55 | 62 | ActisenseNMEA 2000 80 | 81 | 82 | -------------------------------------------------------------------------------- /src/images/application_x-flashfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/application_x-flashfile.png -------------------------------------------------------------------------------- /src/images/application_x-flashfile.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 50 | 55 | 62 | RaymarineFSH 80 | 81 | 82 | -------------------------------------------------------------------------------- /src/images/application_x-gpx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/application_x-gpx.png -------------------------------------------------------------------------------- /src/images/application_x-gpx.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 50 | 55 | 62 | GPX 75 | 76 | 77 | -------------------------------------------------------------------------------- /src/images/application_x-humminbird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/application_x-humminbird.png -------------------------------------------------------------------------------- /src/images/application_x-humminbird.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 16 | 18 | 19 | 21 | image/svg+xml 22 | 24 | 25 | 26 | 27 | 28 | 31 | 38 | HumminbirdSON 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/images/application_x-nmea0183.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/application_x-nmea0183.png -------------------------------------------------------------------------------- /src/images/application_x-nmea0183.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 16 | 18 | 19 | 21 | image/svg+xml 22 | 24 | 25 | 26 | 27 | 28 | 31 | 38 | NMEA0183 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/images/application_x-nmea2000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/application_x-nmea2000.png -------------------------------------------------------------------------------- /src/images/application_x-nmea2000.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 50 | 55 | 62 | NMEA2000 80 | 81 | 82 | -------------------------------------------------------------------------------- /src/images/application_x-sharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/application_x-sharp.png -------------------------------------------------------------------------------- /src/images/application_x-sharp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 50 | 55 | 62 | WinprofileSharp 80 | 81 | 82 | -------------------------------------------------------------------------------- /src/images/bootstrap-formhelpers-countries.flags-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Go Squared Ltd. http://www.gosquared.com/ 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /src/images/bootstrap-formhelpers-countries.flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/bootstrap-formhelpers-countries.flags.png -------------------------------------------------------------------------------- /src/images/bootstrap-formhelpers-currencies.flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/bootstrap-formhelpers-currencies.flags.png -------------------------------------------------------------------------------- /src/images/bootstrap-formhelpers-googlefonts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/bootstrap-formhelpers-googlefonts.png -------------------------------------------------------------------------------- /src/images/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/help.png -------------------------------------------------------------------------------- /src/images/openseamap-logo-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/openseamap-logo-32.png -------------------------------------------------------------------------------- /src/images/tidal_scale_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/tidal_scale_24.png -------------------------------------------------------------------------------- /src/images/tracks_low.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/tracks_low.jpg -------------------------------------------------------------------------------- /src/images/undefined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/undefined.png -------------------------------------------------------------------------------- /src/images/undefined.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 16 | 18 | 19 | 21 | image/svg+xml 22 | 24 | 25 | 26 | 27 | 28 | 31 | 38 | ? 48 | 49 | 50 | -------------------------------------------------------------------------------- /src/images/vessel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/vessel.png -------------------------------------------------------------------------------- /src/images/vessels_low.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/images/vessels_low.jpg -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | OpenSeaMap – Water Depths 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | {{stage1}} 22 | 23 | 24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | {{stage2}} 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/js/init.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | $(function() { 15 | OSeaM.init(); 16 | if ( OSeaM.router.requestedView ) 17 | console.log( OSeaM.router.requestedView ); 18 | if ( !OSeaM.router.requestedView ) 19 | OSeaM.frontend.startView('Home'); //RKu: fill for the first time the missing "Home"information into the container 20 | }); 21 | -------------------------------------------------------------------------------- /src/js/oseam-models-gauge.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.Gauge = Backbone.Model.extend({ 15 | defaults: { 16 | id : null, 17 | name : '', 18 | gaugeType : '', 19 | latitude: '', 20 | longitude: '', 21 | waterlevel: '' 22 | 23 | }, 24 | url: function() { 25 | return OSeaM.apiUrl + 'gauge' ; 26 | } 27 | }); 28 | -------------------------------------------------------------------------------- /src/js/oseam-models-gaugemeasurement.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.GaugeMeasurement = Backbone.Model.extend({ 15 | defaults: { 16 | id : null, 17 | time : new Date(), 18 | value : null 19 | }, 20 | urlRoot: function() { 21 | return OSeaM.apiUrl + 'gauge/' + this.get("gaugeid") + '/' + this.get('time'); 22 | } 23 | }); 24 | -------------------------------------------------------------------------------- /src/js/oseam-models-gaugemeasurements.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.GaugeMeasurements = Backbone.Collection.extend({ 15 | model: OSeaM.models.GaugeMeasurement, 16 | // sortAttribute: "id", 17 | // sortDirection: 1, 18 | // 19 | // sortTracks: function (attr) { 20 | // this.sortAttribute = attr; 21 | // this.sort(); 22 | // }, 23 | // 24 | // comparator: function(a, b) { 25 | // var a = a.get(this.sortAttribute), 26 | // b = b.get(this.sortAttribute); 27 | // 28 | // if (a == b) return 0; 29 | // 30 | // if (this.sortDirection == 1) { 31 | // return a > b ? 1 : -1; 32 | // } else { 33 | // return a < b ? 1 : -1; 34 | // } 35 | // } 36 | }); 37 | -------------------------------------------------------------------------------- /src/js/oseam-models-gauges.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.Gauges = Backbone.Collection.extend({ 15 | model: OSeaM.models.Gauge, 16 | url: OSeaM.apiUrl + 'gauge' 17 | }); 18 | -------------------------------------------------------------------------------- /src/js/oseam-models-license.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.License = Backbone.Model.extend({ 15 | defaults: { 16 | id : null 17 | // shortName : '', 18 | // name : '', 19 | // text : '', 20 | // publicLicense: '' 21 | 22 | }, 23 | url: function() { 24 | return OSeaM.apiUrl + 'license/' + this.get("id") ; 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /src/js/oseam-models-licenses.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.Licenses = Backbone.Collection.extend({ 15 | model: OSeaM.models.License, 16 | url: OSeaM.apiUrl + 'license', 17 | parse: function(response) { 18 | var licenses = new Array(); 19 | for (var i = 0; i < response.length; i++) { 20 | var responseObject = response[i]; 21 | var license = new OSeaM.models.License({ 22 | id : responseObject.id, 23 | name : responseObject.name, 24 | shortName : responseObject.shortName, 25 | text : responseObject.text 26 | }); 27 | licenses[i] = license; 28 | } 29 | return licenses; 30 | } 31 | }); 32 | -------------------------------------------------------------------------------- /src/js/oseam-models-offset.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.Offset = Backbone.Model.extend({ 15 | defaults: { 16 | distanceFromStern : '', 17 | distanceFromCenter : '', 18 | distanceWaterline : '', 19 | offsetKeel : '', 20 | manufacturer : '', 21 | model : '', 22 | offsetType : '' 23 | } 24 | }); 25 | -------------------------------------------------------------------------------- /src/js/oseam-models-stats.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.Stats = Backbone.Model.extend({ 15 | defaults: { 16 | usercount : null, 17 | trackscount : '', 18 | description : '', 19 | contributedpoints : '' 20 | }, 21 | url: function() { 22 | return OSeaM.apiUrl + 'stats'; 23 | } 24 | }); 25 | -------------------------------------------------------------------------------- /src/js/oseam-models-tracks.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.Tracks = Backbone.Collection.extend({ 15 | model: OSeaM.models.Track, 16 | url: OSeaM.apiUrl + 'track', 17 | uploadFile: function(file) { 18 | var track = new OSeaM.models.Track(); 19 | this.add(track); 20 | track.uploadFile(file); 21 | }, 22 | sortAttribute: "id", 23 | sortDirection: 1, 24 | 25 | sortTracks: function (attr) { 26 | this.sortAttribute = attr; 27 | this.sort(); 28 | }, 29 | 30 | comparator: function(a, b) { 31 | var a = a.get(this.sortAttribute), 32 | b = b.get(this.sortAttribute); 33 | 34 | if (a == b) return 0; 35 | 36 | if (this.sortDirection == 1) { 37 | return a > b ? 1 : -1; 38 | } else { 39 | return a < b ? 1 : -1; 40 | } 41 | } 42 | }); 43 | -------------------------------------------------------------------------------- /src/js/oseam-models-user.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.User = Backbone.Model.extend({ 15 | defaults: { 16 | user_name : null, 17 | forname : null, 18 | surname : null, 19 | acceptedEmailContact: null, 20 | organisation: null, 21 | country : null, 22 | language : null, 23 | phone : null 24 | }, 25 | urlRoot: function() { 26 | return OSeaM.apiUrl + 'users/current'; 27 | } 28 | }); 29 | -------------------------------------------------------------------------------- /src/js/oseam-models-vessel.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.Vessel = Backbone.Model.extend({ 15 | defaults: { 16 | id : null, 17 | name : '', 18 | description : '', 19 | mmsi : '', 20 | manufacturer : '', 21 | model : '', 22 | loa : '', 23 | breadth : '', 24 | draft : '', 25 | height : '', 26 | displacement : '', 27 | maximumspeed : '', 28 | sbasoffset : new OSeaM.models.Offset(), 29 | depthoffset : new OSeaM.models.Offset() 30 | }, 31 | url: function() { 32 | return OSeaM.apiUrl + 'vesselconfig/' + this.get("id"); 33 | } 34 | }); 35 | -------------------------------------------------------------------------------- /src/js/oseam-models-vessels.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.models.Vessels = Backbone.Collection.extend({ 15 | model: OSeaM.models.Vessel, 16 | url: OSeaM.apiUrl + 'vesselconfig', 17 | parse: function(response) { 18 | var vessels = new Array(); 19 | for (var i = 0; i < response.length; i++) { 20 | var responseObject = response[i]; 21 | 22 | var newsbasoffset = new OSeaM.models.Offset(); 23 | var x = responseObject.sbasoffset; 24 | newsbasoffset.set('distanceFromStern', x['distanceFromStern']); 25 | newsbasoffset.set('distanceFromCenter', x['distanceFromCenter']); 26 | newsbasoffset.set('distanceWaterline', x['distanceWaterline']); 27 | newsbasoffset.set('manufacturer', x['manufacturer']); 28 | newsbasoffset.set('model', x['model']); 29 | 30 | var newdepthoffset = new OSeaM.models.Offset(); 31 | var y = responseObject.depthoffset; 32 | newdepthoffset.set('distanceFromStern', y['distanceFromStern']); 33 | newdepthoffset.set('distanceFromCenter', y['distanceFromCenter']); 34 | newdepthoffset.set('distanceWaterline', y['distanceWaterline']); 35 | newdepthoffset.set('offsetKeel', y['offsetKeel']); 36 | newdepthoffset.set('offsetType', y['offsetType']); 37 | newdepthoffset.set('manufacturer', y['manufacturer']); 38 | newdepthoffset.set('model', y['model']); 39 | 40 | var vessel = new OSeaM.models.Vessel({ 41 | id : responseObject.id, 42 | name : responseObject.name, 43 | description : responseObject.description, 44 | manufacturer : responseObject.manufacturer, 45 | model : responseObject.model, 46 | loa : responseObject.loa, 47 | breadth : responseObject.breadth, 48 | draft : responseObject.draft, 49 | height : responseObject.height, 50 | displacement : responseObject.displacement, 51 | maximumspeed : responseObject.maximumspeed, 52 | vesselType : responseObject.vesselType, 53 | sbasoffset : newsbasoffset, 54 | depthoffset : newdepthoffset 55 | }); 56 | vessels[i] = vessel; 57 | } 58 | return vessels; 59 | }, 60 | sortAttribute: "id", 61 | sortDirection: 1, 62 | 63 | sortVessels: function (attr) { 64 | this.sortAttribute = attr; 65 | this.sort(); 66 | }, 67 | 68 | comparator: function(a, b) { 69 | var a = a.get(this.sortAttribute), 70 | b = b.get(this.sortAttribute); 71 | 72 | if (a == b) return 0; 73 | 74 | if (this.sortDirection == 1) { 75 | return a > b ? 1 : -1; 76 | } else { 77 | return a < b ? 1 : -1; 78 | } 79 | }}); 80 | -------------------------------------------------------------------------------- /src/js/oseam-utils-validation.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.utils.Validation = { 15 | username : function(value) { 16 | return OSeaM.utils.Validation.email(value); 17 | }, 18 | 19 | email : function(value) { 20 | // var reg = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 21 | var reg = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9_\-\+])+\.)+([a-zA-Z0-9]{2,4})+$/; RKu: 22 | return reg.test(value); 23 | }, 24 | 25 | configname : function(value) { 26 | // test for special characters 27 | var reg = /^[a-z A-Z0-9]+$/; 28 | return reg.test(value); 29 | }, 30 | 31 | distanceY: function(value) { 32 | // test for decimal 33 | var reg = /^\d*(,|\.)?\d*$/; 34 | return reg.test(value); 35 | }, 36 | 37 | loa: function(value) { 38 | // test for decimal 39 | // old, only . not , 40 | //var reg = /^\d*\.?\d*$/; 41 | var reg = /^\d*(,|\.)?\d*$/; 42 | return reg.test(value); 43 | }, 44 | 45 | depth_distanceFromStern: function(value) { 46 | // test for decimal 47 | var reg = /^-?\d*(,|\.)?\d*$/; 48 | return reg.test(value); 49 | }, 50 | 51 | depth_distanceFromCenter: function(value) { 52 | // test for decimal 53 | var reg = /^-?\d*(,|\.)?\d*$/; 54 | return reg.test(value); 55 | }, 56 | 57 | depth_distanceWaterline: function(value) { 58 | // test for decimal 59 | var reg = /^\d*(,|\.)?\d*$/; 60 | return reg.test(value); 61 | }, 62 | 63 | 64 | depth_offsetKeel: function(value) { 65 | // test for decimal 66 | var reg = /^\d*(,|\.)?\d*$/; 67 | return reg.test(value); 68 | }, 69 | 70 | gps_distanceFromStern: function(value) { 71 | // test for decimal 72 | var reg = /^-?\d*(,|\.)?\d*$/; 73 | return reg.test(value); 74 | }, 75 | 76 | gps_distanceFromCenter: function(value) { 77 | // test for decimal 78 | var reg = /^-?\d*(,|\.)?\d*$/; 79 | return reg.test(value); 80 | }, 81 | 82 | gps_distanceWaterline: function(value) { 83 | // test for decimal 84 | var reg = /^\d*(,|\.)?\d*$/; 85 | return reg.test(value); 86 | }, 87 | 88 | gauge: function(value) { 89 | // test for decimal 90 | var reg = /^\d*(,|\.)?\d*$/; 91 | return reg.test(value); 92 | }, 93 | 94 | distanceX: function(value) { 95 | // test for decimal 96 | var reg = /^\d*(,|\.)?\d*$/; 97 | return reg.test(value); 98 | }, 99 | 100 | breadth: function(value) { 101 | // test for decimal 102 | var reg = /^\d+(,|\.)?\d*$/; 103 | return reg.test(value); 104 | }, 105 | 106 | draft: function(value) { 107 | // test for decimal 108 | var reg = /^\d*(,|\.)?\d*$/; 109 | return reg.test(value); 110 | }, 111 | 112 | displacement: function(value) { 113 | // test for decimal 114 | var reg = /^\d*(,|\.)?\d*$/; 115 | return reg.test(value); 116 | }, 117 | 118 | height: function(value) { 119 | // test for decimal 120 | var reg = /^\d*(,|\.)?\d*$/; 121 | return reg.test(value); 122 | }, 123 | 124 | slidingspeed: function(value) { 125 | // test for decimal 126 | var reg = /^\d*(,|\.)?\d*$/; 127 | return reg.test(value); 128 | }, 129 | 130 | idDepthMeasured: function(value) { 131 | // test for decimal 132 | var reg = /^\d*(,|\.)?\d*$/; 133 | return reg.test(value); 134 | }, 135 | 136 | idDepthDisplayed: function(value) { 137 | // test for decimal 138 | var reg = /^\d*(,|\.)?\d*$/; 139 | return reg.test(value); 140 | } 141 | 142 | }; 143 | -------------------------------------------------------------------------------- /src/js/oseam-views-about.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.About = OSeaM.View.extend({ 15 | initialize: function() { 16 | OSeaM.frontend.on('change:language', this.render, this); 17 | }, 18 | render: function() { 19 | var language = OSeaM.frontend.getLanguage(); 20 | var template = OSeaM.loadTemplate('about-' + language); 21 | var content = $(template()); 22 | OSeaM.frontend.translate(content); 23 | this.$el.html(content); 24 | return this; 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /src/js/oseam-views-attributions.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Attributions = OSeaM.View.extend({ 15 | 16 | initialize: function() { 17 | OSeaM.frontend.on('change:language', this.render, this); 18 | }, 19 | 20 | render: function() { 21 | var language = OSeaM.frontend.getLanguage(); //RKu: add language diversification 22 | var template = OSeaM.loadTemplate('attributions-' + language); //RKu: add language selection 23 | var content = $(template({ 24 | javascript:[{ 25 | name:'Bootstrap', 26 | url:'http://twitter.github.com/bootstrap' 27 | },{ 28 | name:'BACKBONE.JS', 29 | url:'http://backbonejs.org' 30 | },{ 31 | name:'handlebars', 32 | url:'http://handlebarsjs.com' 33 | },{ 34 | name:'jQuery', 35 | url:'http://jquery.com' 36 | },{ 37 | name:'jQuery SHA1 (plugin)', 38 | url:'http://jquery.tiddlywiki.org/encoding.digests.sha1.html' 39 | }], 40 | images:[{ 41 | name:'GLYPHICONS', 42 | url:'http://glyphicons.com' 43 | }] 44 | })); 45 | OSeaM.frontend.translate(content); 46 | this.$el.html(content); 47 | return this; 48 | } 49 | }); 50 | -------------------------------------------------------------------------------- /src/js/oseam-views-contact.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | 15 | //RKu: ++ 16 | OSeaM.views.Contact = OSeaM.View.extend({ 17 | initialize: function() { 18 | OSeaM.frontend.on('change:language', this.render, this); 19 | }, 20 | render: function() { 21 | var language = OSeaM.frontend.getLanguage(); 22 | var template = OSeaM.loadTemplate('contact-' + language); 23 | var content = $(template()); 24 | OSeaM.frontend.translate(content); 25 | this.$el.html(content); 26 | return this; 27 | } 28 | }); 29 | //RKu: -- 30 | -------------------------------------------------------------------------------- /src/js/oseam-views-contribute.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Contribute = OSeaM.View.extend({ 15 | initialize: function() { 16 | OSeaM.frontend.on('change:language', this.render, this); 17 | }, 18 | render: function() { 19 | var language = OSeaM.frontend.getLanguage(); 20 | var template = OSeaM.loadTemplate('contribute-' + language); 21 | var content = $(template()); 22 | OSeaM.frontend.translate(content); 23 | this.$el.html(content); 24 | return this; 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /src/js/oseam-views-documentation.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Documentation = OSeaM.View.extend({ 15 | initialize: function() { 16 | OSeaM.frontend.on('change:language', this.render, this); 17 | }, 18 | render: function() { 19 | var language = OSeaM.frontend.getLanguage(); // 20 | var template = OSeaM.loadTemplate('documentation-' + language); //RKu: defined in "oseam.js" - load the function, that may load the content of the file e.g. "documentation-de" to the variable template 21 | var content = $(template()); //RKu: call jQuery to compile context and load the content of the whole file to the variable "content" 22 | OSeaM.frontend.translate(content); //RKu: make sure language sensitiv tags become the right language strings. 23 | this.$el.html(content); //RKu: load the "text" of content to the
but not the attributes we need to jump to anchor inside this document 24 | return this; 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /src/js/oseam-views-gauge.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2013 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Gauge = OSeaM.View.extend({ 15 | events: { 16 | 'click .icon-trash' : 'onDelete' 17 | }, 18 | initialize: function() { 19 | this._views = []; 20 | this.model.on('change:id', this.render, this); 21 | this.gaugemeasurements = new OSeaM.models.GaugeMeasurements(); 22 | this.gaugemeasurements.url = OSeaM.apiUrl + 'gauge/' + this.model.get('id') + '/measurement'; 23 | this.listenTo(this.gaugemeasurements, 'reset', this.addAndRenderViews); 24 | this.gaugemeasurements.fetch({wait:true}); 25 | 26 | }, 27 | render: function() { 28 | var template = OSeaM.loadTemplate('gauge'); 29 | var content = $(template({ 30 | id : this.model.get('id'), 31 | name : this.model.get('name'), 32 | gaugeType : this.model.get('gaugeType'), 33 | latitude : this.model.get('latitude'), 34 | longitude : this.model.get('longitude'), 35 | waterlevel : this.model.get('waterlevel') 36 | })); 37 | OSeaM.frontend.translate(content); 38 | this.$el.html(content); 39 | this.renderContent(); 40 | return this; 41 | }, 42 | addAndRenderViews : function() { 43 | this.addViews(); 44 | this.render(); 45 | }, 46 | addViews : function() { 47 | this.listEl.empty(); 48 | var self = this; 49 | this.gaugemeasurements.each(function(model) { 50 | self._views.push(new OSeaM.views.GaugeMeasurement({ 51 | model : model 52 | })); 53 | }); 54 | }, 55 | onDelete: function() { 56 | this.model.destroy(); 57 | }, 58 | onAddItem : function(model) { 59 | var view = new OSeaM.views.GaugeMeasurement({ 60 | model : model 61 | }); 62 | this._views.push(view); 63 | 64 | this.listEl.append(view.render().el); 65 | return this; 66 | }, 67 | onRemoveItem: function(model) { 68 | var view = _(this._views).select(function(cv) { 69 | return cv.model === model; })[0]; 70 | $(view.el).remove(); 71 | return this; 72 | }, 73 | renderContent : function() { 74 | this.listEl = this.$el.find('tbody'); 75 | this.listEl.empty(); 76 | var container = document.createDocumentFragment(); 77 | 78 | _.each(this._views, function(subview) { 79 | container.appendChild(subview.render().el) 80 | }); 81 | this.listEl.append(container); 82 | } 83 | }); -------------------------------------------------------------------------------- /src/js/oseam-views-gaugedialog.js: -------------------------------------------------------------------------------- 1 | OSeaM.views.GaugeDialog = OSeaM.View.extend({ 2 | 3 | events : { 4 | 'click #oseam-cancel' : 'onCancel', 5 | 'click #close' : 'onCancel', 6 | 'click #oseam-save' : 'onSave', 7 | 'change input' : 'modify', 8 | 'change select' : 'modify', 9 | }, 10 | initialize : function() { 11 | OSeaM.frontend.on("change:language", this.render, this); 12 | }, 13 | render : function() { 14 | var language = OSeaM.frontend.getLanguage(); 15 | var template = OSeaM.loadTemplate('gaugedialog-' + language); 16 | //var template = OSeaM.loadTemplate('vessel'); 17 | this.renderParams = { 18 | name : this.model.get('name') 19 | }; 20 | var content = $(template(this.renderParams)); 21 | OSeaM.frontend.translate(content); 22 | this.$el.append(content); 23 | this.el = content; 24 | return content; 25 | }, 26 | onCancel : function(evt) { 27 | // removes the inserted dialog div and stops listening for events 28 | // this.wizard.remove(); 29 | this.el.remove(); 30 | this.undelegateEvents(); 31 | }, 32 | onSave : function(evt) { 33 | /* 34 | * If this is new project it won't have the ID attribute defined 35 | */ 36 | if (null == this.model.id) { 37 | /* 38 | * We are creating our model through its collection (this way we'll automatically update its views and persist it to DB) 39 | */ 40 | this.model.save(); 41 | this.collection.add(this.model); 42 | } else { 43 | /* 44 | * Simple save will persist the model to the DB and update its view 45 | */ 46 | this.model.save(); 47 | } 48 | /* 49 | * Hiding modal dialog window 50 | * removes the inserted dialog div and stops listening for events 51 | */ 52 | // 53 | // this.wizard.remove(); 54 | this.el.remove(); 55 | this.undelegateEvents(); 56 | }, 57 | modify: function(e) { 58 | var attribute = {}; 59 | attribute[e.currentTarget.name] = e.currentTarget.value; 60 | this.model.set(attribute); 61 | } 62 | 63 | }); -------------------------------------------------------------------------------- /src/js/oseam-views-gaugemeasurement.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2013 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.GaugeMeasurement = OSeaM.View.extend({ 15 | tagName: 'tr', 16 | events: { 17 | 'click .icon-trash' : 'onDelete' 18 | }, 19 | initialize: function() { 20 | this.model.on('change:id', this.render, this); 21 | }, 22 | render: function() { 23 | var template = OSeaM.loadTemplate('gaugemeasurement'); 24 | var dateX = new Date(this.model.get('timestamp')); 25 | var content = $(template({ 26 | date : dateX.getUTCFullYear() +"-"+ 27 | ("0" + (dateX.getMonth()+1)).slice(-2) +"-"+ 28 | ("0" + dateX.getDate()).slice(-2) + " " + 29 | ("0" + dateX.getHours()).slice(-2) + ":" + 30 | ("0" + dateX.getMinutes()).slice(-2), 31 | value : this.model.get('value') 32 | })); 33 | OSeaM.frontend.translate(content); 34 | this.$el.html(content); 35 | return this; 36 | }, 37 | onDelete: function() { 38 | if(confirm('Do you really want to delete that value ?')) { 39 | this.model.destroy(); 40 | } 41 | } 42 | }); -------------------------------------------------------------------------------- /src/js/oseam-views-goodby.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | //RKu ++ new function "say goodbye to a user after successful logout" 15 | 16 | OSeaM.views.Goodby = OSeaM.View.extend({ 17 | initialize: function() { 18 | OSeaM.frontend.on('change:language', this.render, this); 19 | }, 20 | render: function() { 21 | var usermodel = OSeaM.frontend.getUser(); //RKu: 22 | var language = OSeaM.frontend.getLanguage(); 23 | var template = OSeaM.loadTemplate('goodby-' + language); 24 | var content = $(template({ 25 | firstname : usermodel.attributes.forname //RKu: get first name of current user 26 | })); 27 | OSeaM.frontend.translate(content); 28 | this.$el.html(content); 29 | return this; 30 | } 31 | }); 32 | 33 | //RKu -- 34 | -------------------------------------------------------------------------------- /src/js/oseam-views-home.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Home = OSeaM.View.extend({ 15 | initialize: function() { 16 | OSeaM.frontend.on('change:language', this.render, this); 17 | }, 18 | render: function() { 19 | var language = OSeaM.frontend.getLanguage(); 20 | var template = OSeaM.loadTemplate('home-' + language); 21 | var content = $(template()); 22 | OSeaM.frontend.translate(content); 23 | this.$el.html(content); 24 | return this; 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /src/js/oseam-views-instructions.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Instructions = OSeaM.View.extend({ 15 | initialize: function() { 16 | OSeaM.frontend.on('change:language', this.render, this); 17 | }, 18 | render: function() { 19 | var language = OSeaM.frontend.getLanguage(); 20 | var template = OSeaM.loadTemplate('instructions-' + language); 21 | var content = $(template()); 22 | OSeaM.frontend.translate(content); 23 | this.$el.html(content); 24 | return this; 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /src/js/oseam-views-introduction.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Introduction = OSeaM.View.extend({ 15 | initialize: function() { 16 | OSeaM.frontend.on('change:language', this.render, this); 17 | }, 18 | render: function() { 19 | var language = OSeaM.frontend.getLanguage(); 20 | var template = OSeaM.loadTemplate('introduction-' + language); 21 | var content = $(template()); 22 | OSeaM.frontend.translate(content); 23 | this.$el.html(content); 24 | return this; 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /src/js/oseam-views-license.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.License = OSeaM.View.extend({ 15 | initialize: function() { 16 | OSeaM.frontend.on('change:language', this.render, this); 17 | }, 18 | render: function() { 19 | var language = OSeaM.frontend.getLanguage(); 20 | var template = OSeaM.loadTemplate('license-' + language); 21 | var content = $(template()); 22 | OSeaM.frontend.translate(content); 23 | this.$el.html(content); 24 | return this; 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /src/js/oseam-views-login.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Login = OSeaM.views.Logindlg.extend({ 15 | 16 | initialize: function() { 17 | OSeaM.frontend.on('change:language', this.render, this); //RKu: refresh view if user changes language 18 | }, 19 | 20 | events: { 21 | 'submit form' : 'onFormSubmit' //RKu: event triggered from submit button in toolbar.handlebares 22 | }, 23 | render: function() 24 | { 25 | var language = OSeaM.frontend.getLanguage(); //RKu: get current display language 26 | var template = OSeaM.loadTemplate('login-' + language); //RKu: load the right handlebar language template 27 | /* 28 | this.renderParams = { 29 | title : '1009:Sign in!', 30 | msg : '1032:Please sign in proper to use this part.' 31 | }; 32 | */ 33 | var renderParams = { 34 | idUsername : OSeaM.id(), //RKu: transfer Handlebars "{{idUsername}}" from file toolbar.handlebares to a variable 35 | idPassword : OSeaM.id(), //RKu: transfer Handlebars "{{idPassword}}" from file toolbar.handlebares to a variable 36 | idSubmit : OSeaM.id(), //RKu: transfer Handlebars "{{idSubmit}}" from file toolbar.handlebares to a variable 37 | }; 38 | 39 | var content = $(template(renderParams)); 40 | OSeaM.frontend.translate(content); 41 | this.$el.html(content); 42 | 43 | this.fieldUsername = this.$el.find('#' + renderParams.idUsername); 44 | this.fieldPassword = this.$el.find('#' + renderParams.idPassword); 45 | this.buttonSubmit = this.$el.find('#' + renderParams.idSubmit); 46 | 47 | // this.$el.find('legend').after(content); 48 | return this; 49 | } 50 | }); 51 | -------------------------------------------------------------------------------- /src/js/oseam-views-meta3.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.meta3 = OSeaM.View.extend({ 15 | modalDialog:null, 16 | render: function() { 17 | var language = OSeaM.frontend.getLanguage(); 18 | var template = OSeaM.loadTemplate('meta3-' + language); 19 | 20 | var content = $(template({ 21 | 22 | slidingspeed:this.model.get('slidingspeed'), 23 | sailingYacht:this.model.get('sailingYacht'), 24 | motorYacht:this.model.get('motorYacht'), 25 | motorYachtDisplacer:this.model.get('motorYachtDisplacer') 26 | 27 | 28 | 29 | })); 30 | OSeaM.frontend.translate(content); 31 | this.$el.html(content); 32 | return this; 33 | 34 | 35 | }, 36 | validate: function() { 37 | 38 | this.removeAlerts(); 39 | var errors = []; 40 | 41 | if (OSeaM.utils.Validation.slidingspeed(this.model.get('slidingspeed')) !== true){ 42 | this.markInvalid($('#slidingspeed'), '1103:Please enter a decimal (e.g. 5.5)'); 43 | //what is this for? 44 | //errors.push('1004:Email'); 45 | } 46 | 47 | return this.isValid; 48 | 49 | }, 50 | markInvalid: function(field, text) { 51 | field.parents('.control-group').addClass('error'); 52 | //field.next('.help-inline').attr('data-trt', text); 53 | // if addon span exists 54 | this.$el.find('.help-inline').attr('data-trt', text); 55 | OSeaM.frontend.translate(this.$el); 56 | this.isValid = false; 57 | }, 58 | removeAlerts: function() { 59 | this.$el.find('.alert').remove(); 60 | this.$el.find('.control-group').removeClass('error'); 61 | this.$el.find('.help-inline').removeAttr('data-trt'); 62 | this.$el.find('.help-inline').html(''); 63 | this.isValid = true; 64 | } 65 | }); -------------------------------------------------------------------------------- /src/js/oseam-views-meta4.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.meta4 = OSeaM.View.extend({ 15 | modalDialog:null, 16 | render: function() { 17 | var language = OSeaM.frontend.getLanguage(); 18 | var template = OSeaM.loadTemplate('meta4-' + language); 19 | 20 | var content = $(template({ 21 | idDepthMeasured:this.model.get('idDepthMeasured'), 22 | idDepthDisplayed:this.model.get('idDepthDisplayed') 23 | })); 24 | OSeaM.frontend.translate(content); 25 | this.$el.html(content); 26 | return this; 27 | }, 28 | validate: function() { 29 | this.removeAlerts(); 30 | var errors = []; 31 | 32 | if (OSeaM.utils.Validation.idDepthMeasured(this.model.get('idDepthMeasured')) !== true){ 33 | this.markInvalid($('#idDepthMeasured'), '1103:Please enter a decimal (e.g. 5.5)'); 34 | //what is this for? 35 | //errors.push('1004:Email'); 36 | } 37 | 38 | if (OSeaM.utils.Validation.idDepthDisplayed(this.model.get('idDepthDisplayed')) !== true){ 39 | this.markInvalid($('#idDepthDisplayed'), '1103:Please enter a decimal (e.g. 5.5)'); 40 | //what is this for? 41 | //errors.push('1004:Email'); 42 | } 43 | return this.isValid; 44 | 45 | }, 46 | markInvalid: function(field, text) { 47 | field.parents('.control-group').addClass('error'); 48 | //field.next('.help-inline').attr('data-trt', text); 49 | // if addon span exists 50 | this.$el.find('.help-inline').attr('data-trt', text); 51 | OSeaM.frontend.translate(this.$el); 52 | this.isValid = false; 53 | }, 54 | removeAlerts: function() { 55 | this.$el.find('.alert').remove(); 56 | this.$el.find('.control-group').removeClass('error'); 57 | this.$el.find('.help-inline').removeAttr('data-trt'); 58 | this.$el.find('.help-inline').html(''); 59 | this.isValid = true; 60 | } 61 | 62 | }); -------------------------------------------------------------------------------- /src/js/oseam-views-navbar.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.NavBar = OSeaM.View.extend({ 15 | render: function() { 16 | var template = OSeaM.loadTemplate('navbar'); 17 | var content = $(template()); 18 | OSeaM.frontend.translate(content); 19 | this.$el.html(content); 20 | return this; 21 | }, 22 | setActive: function(name) { 23 | this.$el.find('li').removeClass('active'); 24 | this.$el.find('[href=#' + name + ']').parent('li').addClass('active'); 25 | } 26 | }); 27 | -------------------------------------------------------------------------------- /src/js/oseam-views-selection.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Selection = OSeaM.View.extend({ 15 | initialize : function() { 16 | _.bindAll(this, 'addOne', 'addAll'); 17 | this.addAll(); 18 | this.listenTo(this.collection, 'add', this.addOne); 19 | 20 | }, 21 | addOne : function(model) { 22 | $(this.el).append(new OSeaM.views.SelectionItem({ 23 | model : model 24 | }).render().el); 25 | }, 26 | addAll : function() { 27 | this.collection.each(this.addOne); 28 | } 29 | }); 30 | -------------------------------------------------------------------------------- /src/js/oseam-views-selectionitem.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.SelectionItem = OSeaM.View.extend({ 15 | tagName : "option", 16 | initialize: function(){ 17 | _.bindAll(this, 'render'); 18 | }, 19 | render: function(){ 20 | $(this.el).attr('value', 21 | this.model.get('id')).html(this.model.get('name')); 22 | return this; 23 | } 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /src/js/oseam-views-vesselitem.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2013 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | OSeaM.views.Vesselitem = OSeaM.View.extend({ 15 | tagName: 'tr', 16 | events: { 17 | 'click .icon-trash' : 'onDelete', 18 | 'dblclick .vessel': 'edit', 19 | 'click .icon-pencil' : 'edit' 20 | }, 21 | initialize: function() { 22 | this.model.on('change:id', this.render, this); 23 | }, 24 | render: function() { 25 | var template = OSeaM.loadTemplate('vesselitem'); 26 | var content = $(template({ 27 | id : this.model.get('id'), 28 | name : this.model.get('name'), 29 | description : this.model.get('description') 30 | })); 31 | OSeaM.frontend.translate(content); 32 | this.$el.html(content); 33 | return this; 34 | }, 35 | edit: function(model) { 36 | view = new OSeaM.views.Vessel({ 37 | el: this.$el, 38 | model: this.model 39 | }); 40 | view.render().modal('show'); 41 | 42 | }, 43 | onDelete: function() { 44 | this.model.destroy(); 45 | } 46 | }); -------------------------------------------------------------------------------- /src/js/oseam.js: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------------------------- 2 | // OpenSeaMap Water Depth - Web frontend for depth data handling. 3 | // 4 | // Written in 2012 by Dominik Fässler dfa@bezono.org 5 | // 6 | // To the extent possible under law, the author(s) have dedicated all copyright 7 | // and related and neighboring rights to this software to the public domain 8 | // worldwide. This software is distributed without any warranty. 9 | // 10 | // You should have received a copy of the CC0 Public Domain Dedication along 11 | // with this software. If not, see . 12 | // ------------------------------------------------------------------------------------------------- 13 | 14 | function GetApiUrl() 15 | { 16 | var apiUrl = 'APIURL_PLACEHOLDER'; 17 | 18 | if ( apiUrl == 'APIURL' + '_' + 'PLACEHOLDER' ) // must assemble here so jenkins does NOT replace it 19 | { 20 | // your debug api url goes here. You need not change it before checking in this file, 21 | // because the above placeholder will be replaced by jenkins during rollout. 22 | return '/org.osm.depth.upload/api2/'; 23 | } 24 | else 25 | return apiUrl; 26 | } 27 | 28 | OSeaM = { 29 | models: {}, 30 | routers: {}, 31 | views: {}, 32 | utils: {}, 33 | container: null, 34 | frontend: null, 35 | router: null, 36 | // apiUrl: 'http://localhost:8080/org.osm.depth.upload/api2/', 37 | apiUrl: GetApiUrl(), 38 | autoId: 0, 39 | 40 | init: function() { 41 | // alert ( "apiUrl: " + this.apiUrl ); 42 | // $.ajaxSetup({ beforeSend: addCredsToRequest }) // function in oseam-models-auth 43 | OSeaM.configureBackboneSync(); //RKu: set up the server communication defaults 44 | this.frontend = new OSeaM.models.Frontend(); //RKu: define the business logic of the initial frontend functions (oseam-models-frontend.js) 45 | if(localStorage.language == null) { 46 | localStorage.language = 'en'; //RKu: set default language to "en" 47 | } 48 | this.frontend.setLanguage(localStorage.language); 49 | this.container = $('.oseam-container'); //RKu: set up the place, where all the displays go to 50 | this.router = new OSeaM.routers.Router(); //RKu: set up the Routing functions 51 | Backbone.history.start(); //RKu: start monitoring events and dispatching routes 52 | 53 | // helper for setting default option 54 | window.Handlebars.registerHelper('select', function( value, options ){ 55 | var $el = $(' 5 | 6 |
7 | 8 |
9 |

10 |
11 | 12 | 13 |
14 |
15 |
16 |

17 |
18 | 19 | 20 |
21 |
22 |
23 |

24 |
25 | 26 | 27 |
28 |
29 |
30 |

31 |
32 | 33 | 34 |
35 |
36 | 37 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
DateValue
49 |
50 | -------------------------------------------------------------------------------- /src/js/templates/gaugedialog-en.handlebars: -------------------------------------------------------------------------------- 1 | 61 | -------------------------------------------------------------------------------- /src/js/templates/gaugemeasurement.handlebars: -------------------------------------------------------------------------------- 1 | {{date}} 2 | {{value}} 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/js/templates/gauges-de.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
DatumWert
19 |
20 | -------------------------------------------------------------------------------- /src/js/templates/gauges-en.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
DateValue
19 |
20 | -------------------------------------------------------------------------------- /src/js/templates/goodby-de.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Auf Wiedersehen

4 |
5 |

6 | {{firstname}}, wir bedanken uns für Deine Datenspende und hoffen, dass du auch in Zukunft 7 | dieses Projekt unterstützen wirst. 8 |

9 |
10 |
11 | 12 |
13 |
14 |

Sammeln

15 |

16 | Hilf uns Wassertiefen-Daten zu sammeln! GPS, Echolot und PC 17 | reichen aus. Wir generieren daraus Tiefenlinien für die 18 | Karte. Weltweit. 19 |

20 |

Details anzeigen »

21 |
22 |
23 |

Berechnung

24 |

25 | Aus Deinen Rohdaten berechnen wir die Wassertiefe. Wir 26 | beschicken sie mit Welle und Tide. Aus tausenden Datenpunkten 27 | erzeugen wir mit statistischen Methoden ein möglichst genaues 28 | Geländeprofil. 29 |

30 |

Wiki »

31 |
32 |
33 |

Rendern

34 |

35 | Aus dem Tiefenprofil leiten wir Tiefenlinien ab. Bei 36 | ausreichender Genauigkeit werden diese in der Karte 37 | angezeigt. 38 |

39 |

Wiki »

40 |
41 |
42 | -------------------------------------------------------------------------------- /src/js/templates/goodby-en.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Goodbye, see you again

4 |
5 |

6 | {{firstname}}, we like to thank you for your data-point donation and hope that you will 7 | continue to support this project in the future. 8 |

9 |
10 |
11 | 12 |
13 |
14 |

Acquisition

15 |

16 | Help us collecting water depth data! GPS, sounder and PC is 17 | all you need. We then will calculate depth contour lines for 18 | the chart. Worldwide. 19 |

20 |

View details »

21 |
22 |
23 |

Processing

24 |

25 | Using your raw data we calculate water depths. We feed it with 26 | heel and tide data. Using statistical methods, we calculate a 27 | digital elevation model from thousands of measurements. 28 |

29 |

Wiki »

30 |
31 |
32 |

Rendering

33 |

34 | We derive contours from the digital elevation model. On 35 | sufficient accuracy they will be displayed on the map. 36 |

37 |

Wiki »

38 |
39 |
40 | -------------------------------------------------------------------------------- /src/js/templates/gpsoffset-de.handlebars: -------------------------------------------------------------------------------- 1 |
2 |
3 |

GPS/GLONASS - Drag & Drop

4 |
Verbessern Sie die Datenqualität durch detailierte Angaben der GPS/GLONASS Position
5 | 6 |
7 |

8 |
9 | 10 | m 11 | 12 |
13 |
14 | 15 |
16 |

17 |
18 | 19 | m 20 | 21 |
22 |
23 | 24 |
25 |

26 |
27 | 28 | m 29 | 30 |
31 |
32 |
33 |

34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 |
67 |

68 | 69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 | 77 | 80 |
81 | -------------------------------------------------------------------------------- /src/js/templates/gpsoffset-en.handlebars: -------------------------------------------------------------------------------- 1 |
2 |
3 |

GPS/GLONASS - use Drag & Drop

4 |
Improve the accuracy of your data by providing the exact sensor position
5 | 6 |
7 |

8 |
9 | 10 | m 11 | 12 |
13 |
14 | 15 |
16 |

17 |
18 | 19 | m 20 | 21 |
22 |
23 | 24 |
25 |

26 |
27 | 28 | m 29 | 30 |
31 |
32 |
33 |

34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 |
66 | 67 |

68 | 69 |
70 |
71 | 72 |
73 |
74 |
75 |
76 |
77 | 78 | 81 |
82 | -------------------------------------------------------------------------------- /src/js/templates/home-de.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Tiefendaten

4 |

5 | Um freie Seekarten zu erstellen, benötigt OpenSeaMap 6 | Tiefendaten. Unterstütze uns durch das Hochladen deiner Tracks. 7 |

8 |

9 | Rechts oben in der Toolbar kannst Du Dich einloggen oder einen Account erstellen. 10 |

11 |

Mehr darüber »

12 |
13 |
14 | 15 |
16 |
17 |

Sammeln

18 |

19 | Hilf uns Wassertiefen-Daten zu sammeln! GPS, Echolot und PC 20 | reichen aus. Wir generieren daraus Tiefenlinien für die 21 | Karte. Weltweit. 22 |

23 |

Details anzeigen »

24 |
25 |
26 |

Berechnung

27 |

28 | Aus Deinen Rohdaten berechnen wir die Wassertiefe. Wir 29 | beschicken sie mit Welle und Tide. Aus tausenden Datenpunkten 30 | erzeugen wir mit statistischen Methoden ein möglichst genaues 31 | Geländeprofil. 32 |

33 |

Wiki »

34 |
35 |
36 |

Rendern

37 |

38 | Aus dem Tiefenprofil leiten wir Tiefenlinien ab. Bei 39 | ausreichender Genauigkeit werden diese in der Karte 40 | angezeigt. 41 |

42 |

Wiki »

43 |
44 |
45 | -------------------------------------------------------------------------------- /src/js/templates/home-en.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Depth Data

4 |

5 | To build open source nautical charts, OpenSeaMap needs depth 6 | data. Support us by uploading your tracks. 7 |

8 |

9 | Log in or create an account using the controls in the upper right corner in the toolbar. 10 |

11 |

Learn more »

12 |
13 |
14 | 15 |
16 |
17 |

Acquisition

18 |

19 | Help us collecting water depths data! GPS, sounder and PC is 20 | all you need. We then will calculate depth contour lines for 21 | the chart. Worldwide. 22 |

23 |

View details »

24 |
25 |
26 |

Processing

27 |

28 | Using your raw data we calculate water depths. We feed it with 29 | heel and tide data. Using statistical methods, we calculate a 30 | digital elevation model from thousands of measurements. 31 |

32 |

Wiki »

33 |
34 |
35 |

Rendering

36 |

37 | We derive contours from the digital elevation model. On 38 | sufficient accuracy they will be displayed on the map. 39 |

40 |

Wiki »

41 |
42 |
43 | -------------------------------------------------------------------------------- /src/js/templates/instructions-de.handlebars: -------------------------------------------------------------------------------- 1 | Anleitung zum Hochladen 2 | 3 |
Dieser Text wurde zunächst einmal grob übersetzt, muss jedoch noch einmal überprüft und ergänzt werden.
4 | 5 |
Unterstützte Formate sind:
6 |
    7 |
  • NMEA0183
  • 8 |
  • Actisense® NMEA 2000
  • 9 |
  • Humminbird® SON
  • 10 |
  • Raymarine® FSH
  • 11 |
  • Lowrance® SL2
  • 12 |
  • Winprofile® Sharp Files
  • 13 |
14 | 15 |
Nicht unterstützte Formate sind:
16 |
    17 |
  • Generic NMEA 2000 (CAN Recordings)
  • 18 |
  • Lowrance® SLG Files
  • 19 |
20 | 21 |
Unterstützte Kompressionsverfahren sind:
22 |
    23 |
  • ZIP
  • 24 |
  • GZIP
  • 25 |
26 | 27 |
Nicht unterstützte Kompressionsverfahren sind:
28 |
    29 |
  • 7z
  • 30 |
  • rar
  • 31 |
  • tar
  • 32 |
33 | 34 |
Hinweise zum Dateiformat
35 |
    36 |
  1. NMEA0183
  2. 37 |
      38 |
    1. 39 | Den Sätzen kann eine genaue Zeit vorangestellt werden, sie muss jedoch nicht zwingend 40 | vorangestellt sein. Beide Formen von Daten-Sätzen werden verarbeitet: 41 |
      2013-06-29 13:58:31.120664: $GPGSV,2,1,08,15,22,186,30,04,20,091,28,25,35,267,32,17,16,040,31*7A
      42 | $GPGSV,2,1,08,15,22,186,30,04,20,091,28,25,35,267,32,17,16,040,31*7A
      43 | Die genaue Zeit wird derzeit noch nicht weiter berücksichtigt. 44 |
    2. 45 |
    3. 46 | Die Datensätze (z.B. GLL / RMC oder DPT / DBT) mit der höchsten Aktualisierungsrate 47 | und den meisten Messungen werden berücksichtigt und zur Anzeige ausgewählt. 48 |
    4. 49 |

    50 |
  3. NMEA2000
    51 | Das Binaray-Format Actisense * .dat kann gelesen werden. Das Rapid-Position-Update-PGN 52 | wird derzeit nicht verwendet, da es keine Messzeit hat. 53 |

  4. 54 |
  5. Raymarine® FSH
    55 | Beim Raymarine Datenformat fehlen wesentliche Informationen wie die Messzeit und 56 | eine regelmäßige Tiefenmessung. Diese Information ist entscheidend für die 57 | Beseitigung systematischer Fehler in den Messdaten. Wenn Sie eine andere Möglichkeit 58 | zum Aufzeichnen von Daten wie z.B. NMEA0183 haben, verwenden Sie bitte diese 59 | anstelle des Raymarine Datenformats. 60 |

  6. 61 |
  7. Humminbird® SON
    62 | Die übermittelten Dateien müssen für eine einzelne Aufnahme gepackt werden. Die 63 | ZIP-Datei muss mindestens eine DAT-Datei und einen Ordner des ersten Sensors 64 | enthalten, der eine IDX- und eine .son-Datei enthält. Die enthaltenen Daten können 65 | möglicherweise von mehreren Tiefensensoren wie einem Tiefensensor oder einem 66 | Side-Scan-Bild aufgezeichnet sein. Jedoch können nur die Tiefenangaben aus der 67 | regulären Tiefenmessung berücksichtigt werden. Side-Scan-Bilder vermitteln nur eine 68 | Vorstellung vom Bodenprofil, aber keine genauen Tiefenmessungen. 69 |
  8. 70 |
71 | 72 |
Paketierungshinweise
73 |
    74 |
  • Stellen Sie Datendateien nur EINMAL in einem unterstützten Format bereit. Durch 75 | das Bereitstellen von Datendateien in mehreren Formaten wird die Gesamtqualität 76 | beeinträchtigt.
  • 77 |
  • Wenn Sie ein Format vermissen, öffnen Sie bitte auf Github ein Ticket mit einer 78 | Beispieldatei, sodass wir die Verarbeitungsmöglichkeiten hinzufügen können.
  • 79 |
  • Sie können eine einzelne Datei in eine ZIP-Datei oder mehrere Dateien in eine 80 | ZIP-Datei packen, mit Ausnahme von Humminbird® SON-Dateien.
  • 81 |
  • Obwohl wir versuchen, ZIP-Dateien mit unterschiedlichen Formatinhalten zu 82 | verarbeiten, unterstützen wir dies nicht aktiv. Bitte erstellen Sie für jedes 83 | Dateiformat, das Sie haben, eine separate ZIP-Dateien.
  • 84 |
85 | 86 |
Bearbeitungshinweis
87 |
    88 |
  • Der Kalman-Filter ist derzeit deaktiviert. Es ist geplant, eine zweite Schicht 89 | bereitzustellen, in der die von Kalman gefilterte Daten angezeigt werden.
  • 90 |
91 | -------------------------------------------------------------------------------- /src/js/templates/instructions-en.handlebars: -------------------------------------------------------------------------------- 1 | Upload Instructions 2 | 3 |
Supported Formats are:
4 |
    5 |
  • NMEA0183
  • 6 |
  • Actisense® NMEA 2000
  • 7 |
  • Humminbird® SON
  • 8 |
  • Raymarine® FSH
  • 9 |
  • Lowrance® SL2
  • 10 |
  • Winprofile® Sharp Files
  • 11 |
12 | 13 |
Unsupported Formats are:
14 |
    15 |
  • Generic NMEA 2000 (CAN Recordings)
  • 16 |
  • Lowrance® SLG Files
  • 17 |
18 | 19 |
Supported Compressions are:
20 |
    21 |
  • ZIP
  • 22 |
  • GZIP
  • 23 |
24 | 25 |
Unsupported Compressions are:
26 |
    27 |
  • 7z
  • 28 |
  • rar
  • 29 |
  • tar
  • 30 |
31 | 32 |
File Format Notes
33 |
    34 |
  1. NMEA0183
  2. 35 |
      36 |
    1. 37 | Sentences may be prefixed with an accurate time but need not be prefixed. 38 | Both forms of sentences are processed as well: 39 |
      2013-06-29 13:58:31.120664: $GPGSV,2,1,08,15,22,186,30,04,20,091,28,25,35,267,32,17,16,040,31*7A
      40 | $GPGSV,2,1,08,15,22,186,30,04,20,091,28,25,35,267,32,17,16,040,31*7A
      41 | The accurate time is not being analyzed, yet. 42 |
    2. 43 |
    3. 44 | The sentence (i.e. GLL/RMC or DPT/DBT) with the highest update rate and most measurements is chosen to be displayed. 45 |
    4. 46 |

    47 |
  3. NMEA2000
    48 | The binaray Actisense *.dat format can be read. The Rapid Position Update PGN is not being used right know as it does not have the measurement time. 49 |

  4. 50 |
  5. Raymarine® FSH
    51 | The contents of these recordings miss substantial information such as the measurment time and a regular depth measurment. 52 | If you have any other option to record data like NMEA0183, use it instead of this format. 53 |

  6. 54 |
  7. Humminbird® SON
    55 | The submitted files must be zipped for a single recording. 56 | The zip file must contain at least a .dat file and a folder of the first sensor that contains an .idx and a .son file. 57 | The data contained may have been recorded from several depth sensors like a depth sensor or a side scan image but only the depths from the regular depth measurment can be accounted for. 58 | Side scan imagery only conveys an idea of the sea profile but no accurate depth measurements. 59 |
  8. 60 |

61 | 62 |
Packing Notes
63 |
    64 |
  • Provide data files only ONCE in a format that is supported. Providing data files in multiple formats will degrade the overall quality.
  • 65 |
  • If you miss a format supply a git ticket with an example file, so we may add the processing facilities.
  • 66 |
  • You may pack a single file into a zip or multiple files into a zip with the exception of Humminbird® SON files.
  • 67 |
  • Although we try to handle zip files with different format contents, we do not actively support it. Create zip files for every format you have.
  • 68 |
69 | 70 |
Processing Notes
71 |
    72 |
  • The Kalman Filter is currently disabled. It is planned to supply a second layer where Kalman filtered data will be displayed.
  • 73 |
74 | -------------------------------------------------------------------------------- /src/js/templates/introduction-de.handlebars: -------------------------------------------------------------------------------- 1 | Einführung 2 |

1. Registrieren

3 |

4 | Hier kannst du deine Tiefendaten hochladen und die Ausstattung deines Schiffes beschreiben. 5 | Dafür musst du ein Benutzerkonto anlegen. 6 |

7 | 10 | 11 |

2. Daten sammeln

12 |

13 | Du benötigst ein GPS-Gerät, ein Echolot und einen Logger 14 | um Positions- und Tiefendaten deines Schiffes aufzuzeichnen. Zusätzlich 15 | musst du das Schiff und die Messgeräte beschreiben: 16 |

17 | 18 | 19 | 20 |
Software Logger
21 |

22 | Der OpenSeaMap Software Logger sammelt deine 23 | NMEA-Daten auf einer Festplatte oder einem USB-Stick. Die kostenlose Software läuft auf Windows und Linux. 24 | Sie ist gleichzeitig ein Navigations-Programm und zeigt die OpenSeaMap-Karte 25 | zusammen mit der Schiffsposition und weiteren Navigationsdaten 26 | wie Geschwindigkeit, Kurs, Tiefe und Wind. Zum Anschliessen der Geräte benötigst du 27 | einen USB-Adapter. 28 |

29 | 33 | 34 |
Kartenplotter
35 |

36 | Einige Kartenplotter, beispielsweise von Raymarine, Lowrance und Garmin haben 37 | einen eingebauten SD-Karten-Slot und können Tiefendaten direkt 38 | speichern. Diese Daten können wir ebenfalls verarbeiten. 39 |

40 | 43 | 44 |
Hardware Logger
45 |

46 | Wir haben einen Hardware-Logger gebaut, der direkt an der Navigation 47 | angeschlossen wird, und der die Daten automatisch auf eine 48 | SD-Karte schreibt. NMEA-0183 und Seatalk-1 kann mit dem Gerät aufgezeichnet werden. 49 |

50 | 53 |
54 |
55 | 56 | OpenSeaMap Hardware-Logger 57 | 58 |
59 |
60 | 61 |

3. Tracks hochladen

62 |

63 | Wir freuen uns über jeden Datensatz. Um Daten hochzuladen, benutze den 64 | folgenden Link: 65 |

66 | 69 | 70 |

4. Schiff beschreiben

71 |

72 | Um die Rohdaten auszuwerten brauchen wir eine genaue Beschreibung der Messplattform, also des Schiffes, der Geräte und der Sensoren. 73 |

74 | 78 | 79 |

5. Zuordnung des Tracks zum Schiff

80 |

81 | Beim Hochladen von Tiefen-Daten musst du angeben, mit welchem Schiff diese aufgezeichnet wurden. 82 |

83 | -------------------------------------------------------------------------------- /src/js/templates/introduction-en.handlebars: -------------------------------------------------------------------------------- 1 | Introduction 2 |

1. Register

3 |

4 | This site allows you to upload your tracks and manage your 5 | vessels configuration. Therefore you need a valid account. 6 |

7 | 10 | 11 |

2. Getting Data

12 |

13 | You need a GPS device, a sounder and a data logger to record your 14 | vessels position and depth data. Additionally, you need to describe the ship and the devices. 15 | 16 | 17 |

Software Logger
18 |

19 | The software logger OpenSeaMap Data Logger records your 20 | NMEA data on a hard disk or on a USB stick. This free software runs on Windows and Linux. 21 | It is also a navigation program and displays the OpenSeaMap chart together with 22 | your vessels position and additional navigational data like speed, 23 | direction, depth and wind. Normally, you'll need a USB device which 24 | converts the received NMEA data. 25 |

26 | 30 | 31 |
Chart Plotter
32 |

33 | Some chart plotters like Raymarine, Lowrance and Garmin can store dept data 34 | directly to a built in SD card. We can proceed such data too. 35 |

36 | 39 | 40 |
Hardware Logger
41 |

42 | We developed a hardware logger which can be 43 | connected directly to the ship's network. It may be connected to a NMEA-0183 or Seatalk-1 bus. 44 |

45 | 48 |
49 |
50 | 51 | OpenSeaMap Hardware-Logger 52 | 53 |
54 |
55 | 56 |

3. Upload Tracks

57 |

58 | We are pleased about every record. To upload tracks use the folling 59 | link: 60 |

61 | 64 | 65 |

4. Manage Vessels

66 |

67 | To evaluate the raw data, we need a detailed description of the measurement platform, so the vessel, the devices and the sensors. 68 |

69 | 73 | 74 |

5. Link Tracks and Vessels

75 |

76 | When uploading depth data you need to specify with which boat they were recorded. 77 |

78 | -------------------------------------------------------------------------------- /src/js/templates/license-de.handlebars: -------------------------------------------------------------------------------- 1 | Hochgeladene Tracks 2 |

3 | Für das Bereitstellen und Hochladen der aufgezeichneten Tracks, erklärst Du dich mit den Bedingungen der 4 | ODC Public Domain Dedication and Licence (PDDL) 5 | einverstanden. Zusätzliche Daten, die nicht in den Rohdaten enthalten sind, sind ebenfalls unter dieser Lizenz lizensiert. 6 |

7 |

Karte

8 |

9 | Die Karte kann Daten anzeigen, welche die Nennung von Datenspendern erfordert. 10 | So lange die Karte sich in der Testphase befindet, darf sie daher noch nicht frei verwendet werden. 11 |

12 | 13 | -------------------------------------------------------------------------------- /src/js/templates/license-en.handlebars: -------------------------------------------------------------------------------- 1 | Uploaded Tracks 2 |

3 | If you are uploading tracks you agree to the terms of the 4 | ODC Public Domain Dedication and Licence (PDDL). 5 | If you provide additional data that is not stored in the track file this data is licensed under the terms of PDDL as well. 6 |

7 | 8 |

9 | Recorded Tracks are sensitive personal data because they show where you have been at what point in time. 10 |

11 |

Chart

12 |

13 | The chart may show data that requires attributions to contributors. 14 | As long as the chart is in a testing phase it may not be used publically 15 |

16 | 17 | -------------------------------------------------------------------------------- /src/js/templates/login-de.handlebars: -------------------------------------------------------------------------------- 1 | Login 2 | 3 |
4 |
5 |
6 |
7 |
8 | Benutzername / E-mail 9 |
10 |
11 | 12 |
13 |
14 |
15 |
16 |

Kennwort

17 |
18 |
19 | 20 |
21 |
22 |
23 |
24 |
25 |
26 | 27 |
28 |
29 |
30 |
31 | Haben Sie noch keinen Account? 32 |
33 |
34 | 35 |
36 |
37 |
38 |
39 | Passwort vergessen? 40 |
41 |
42 | 43 |
44 |
45 |
46 |
47 |
48 | -------------------------------------------------------------------------------- /src/js/templates/login-en.handlebars: -------------------------------------------------------------------------------- 1 | Login 2 | 3 |
4 |
5 |
6 |
7 |
8 | user name / e-mail 9 |
10 |
11 | 12 |
13 |
14 |
15 |
16 |

password

17 |
18 |
19 | 20 |
21 |
22 |
23 |
24 |
25 |
26 | 27 |
28 |
29 |
30 |
31 | Don't have an account? 32 |
33 |
34 | 35 |
36 |
37 |
38 |
39 | Forgot your password? 40 |
41 |
42 | 43 |
44 |
45 |
46 |
47 |
48 | -------------------------------------------------------------------------------- /src/js/templates/maptracks.handlebars: -------------------------------------------------------------------------------- 1 |
2 | 3 |

4 | 5 |
6 |
7 | 8 |
9 | 10 |
11 | -------------------------------------------------------------------------------- /src/js/templates/meta1-de.handlebars: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Allgemein

4 |
Vergeben Sie einen Namen und zusätzliche Details
5 | 6 | 7 |
8 | 9 |

10 |
11 | 12 | 13 |
14 |
15 | 16 |
17 | 18 |
19 | 20 |
21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /src/js/templates/meta1-en.handlebars: -------------------------------------------------------------------------------- 1 |
2 |
3 |

General

4 |
Provide a name and additional information
5 | 6 |
7 | 8 |

9 |
10 | 11 | 12 |
13 |
14 | 15 |
16 |

17 |
18 | 19 |
20 |
21 | 22 | 23 |
24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /src/js/templates/navbar.handlebars: -------------------------------------------------------------------------------- 1 | 29 | -------------------------------------------------------------------------------- /src/js/templates/page.handlebars: -------------------------------------------------------------------------------- 1 |

Hallo

-------------------------------------------------------------------------------- /src/js/templates/reset-password.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |
6 | 7 | 8 |
9 |
10 |
11 | 12 |
13 |
14 | 15 | 16 |
17 |
18 | 19 | 20 |
21 |
22 | 30 |
31 |
32 | 33 |
34 |
35 |
36 | -------------------------------------------------------------------------------- /src/js/templates/toolbar.handlebars: -------------------------------------------------------------------------------- 1 | 57 | -------------------------------------------------------------------------------- /src/js/templates/track.handlebars: -------------------------------------------------------------------------------- 1 | 2 | {{#if tracklink}} 3 | {{id}} 4 | {{else}} 5 | {{id}} 6 | {{/if}} 7 | 8 | {{fileName}} 9 | 10 | {{#if progress}} 11 |
12 |
13 |
14 | {{else}} 15 | > 16 | {{/if}} 17 | 18 | 19 | 20 | 21 | 22 | {{compression}} 23 | {{containertrack}} 24 | {{vesselconfigid}} 25 | {{license}} 26 | {{uploadDate}} 27 | {{numPoints}} 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/js/templates/tracks-de.handlebars: -------------------------------------------------------------------------------- 1 | 6 | 7 |

Vessels

8 |
9 | 10 |
11 |
12 |
13 |
14 |
15 | Fahrzeug 16 |
17 |
18 | 21 |
22 |
23 |
24 |
25 |

Track-Lizenz

26 |
27 |
28 | 31 |
32 |
33 |
34 |
35 |
36 |
37 | 38 |
39 |
40 |
Uploads werden stündlich prozessiert. Bei Wartungen kann sich die Auswertung verzögern.
41 |
42 |
43 |
44 |
45 | 46 |
47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 |
IDDateinameStatusDateitypKompressionContainer TrackFahrzeugLizenzUpload Datum
65 |
66 | 67 | -------------------------------------------------------------------------------- /src/js/templates/tracks-en.handlebars: -------------------------------------------------------------------------------- 1 | 6 | 7 |

Vessels

8 |
9 | 10 |
11 |
12 |
13 |
14 |
15 | Vessel Configuration 16 |
17 |
18 | 21 |
22 |
23 |
24 |
25 |

Track License

26 |
27 |
28 | 31 |
32 |
33 |
34 |
35 |
36 |
37 | 38 |
39 |
40 |
Uploads are processed on a hourly basis. During maintenance processing can be delayed.
41 |
42 |
43 |
44 | 45 | 54 | 55 | 64 | 65 |
66 | 67 |
68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 |
IDFile NameStatusFile TypeCompr.Cont. TrackVesselLicenseUpload Date#points
87 |
88 | 89 | 98 | -------------------------------------------------------------------------------- /src/js/templates/vessel-de.handlebars: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /src/js/templates/vessel-en.handlebars: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /src/js/templates/vesselgeneric-de.handlebars: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 6 | 7 | 8 |

Schiff

9 |
Geben Sie die Daten des Schiffs an
10 | 11 |
12 |

13 |
14 | m 15 | 16 |
17 |
18 | 19 |
20 |

21 |
m 22 | 23 |
24 |
25 | 26 |
27 |

28 |
m 29 | 30 |
31 |
32 | 33 |
34 |

35 |
t 36 | 37 |
38 |
39 | 40 |
41 |

42 |
m 43 | 44 |
45 |
46 | 47 |
48 |

49 |
50 | 51 |
52 |
53 | 54 |
55 |

56 |
57 | 58 |
59 |
60 | 61 |

62 |

63 |
64 | 73 |
74 |
75 | 76 |
77 |
78 | -------------------------------------------------------------------------------- /src/js/templates/vesselgeneric-en.handlebars: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 | 6 |

Vessel

7 |
Provide detailed data about the ship
8 | 9 |
10 |

11 |
12 | m 13 | 14 |
15 |
16 | 17 |
18 |

19 |
m 20 | 21 |
22 |
23 | 24 |
25 |

26 |
m 27 | 28 |
29 |
30 | 31 |
32 |

33 |
t 34 | 35 |
36 |
37 | 38 |
39 |

40 |
m 41 | 42 |
43 |
44 | 45 |
46 |

47 |
48 | 49 |
50 |
51 | 52 |
53 |

54 |
55 | 56 |
57 |
58 | 59 |
60 |

61 |
62 | 71 |
72 |
73 | 74 |
75 |
76 | -------------------------------------------------------------------------------- /src/js/templates/vesselitem.handlebars: -------------------------------------------------------------------------------- 1 | {{id}} 2 | {{name}} 3 | {{description}} 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/js/templates/vessels-de.handlebars: -------------------------------------------------------------------------------- 1 | 2 |

Vessels

3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
#NameBeschreibung
17 | 18 | -------------------------------------------------------------------------------- /src/js/templates/vessels-en.handlebars: -------------------------------------------------------------------------------- 1 | 2 |

Vessels

3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
#NameDescription
17 | 18 | -------------------------------------------------------------------------------- /src/js/templates/welcome-de.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Herzlich willkommen!

4 |
5 |

6 | {{firstname}}, wir freuen uns, das Du unser Projekt mit den von Dir gesammelten 7 | Tiefendaten unterstützen möchtest.

8 | Derzeit unterstützen dieses Projekt ca. 1300 Wassersportfreunde weltweit.
9 | Insgesamt haben wir in unserer Datenbank 200 Mio. Datenpunkte. 10 |

11 |
12 |
13 | 14 |
15 |
16 |

Sammeln

17 |

18 | Hilf uns Wassertiefen-Daten zu sammeln! GPS, Echolot und PC 19 | reichen aus. Wir generieren daraus Tiefenlinien für die 20 | Karte. Weltweit. 21 |

22 |

Details anzeigen »

23 |
24 |
25 |

Berechnung

26 |

27 | Aus Deinen Rohdaten berechnen wir die Wassertiefe. Wir 28 | beschicken sie mit Welle und Tide. Aus tausenden Datenpunkten 29 | erzeugen wir mit statistischen Methoden ein möglichst genaues 30 | Geländeprofil. 31 |

32 |

Wiki »

33 |
34 |
35 |

Rendern

36 |

37 | Aus dem Tiefenprofil leiten wir Tiefenlinien ab. Bei 38 | ausreichender Genauigkeit werden diese in der Karte 39 | angezeigt. 40 |

41 |

Wiki »

42 |
43 |
44 | -------------------------------------------------------------------------------- /src/js/templates/welcome-en.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Welcome!

4 |
5 |

6 | {{firstname}}, we are glad that you want to support our project with the depth data you have collected.

7 | Currently, this project is supported by 1300 water sports enthusiasts worldwide.
8 | In total, we have 200 million data points in our database. 9 |

10 |
11 |
12 | 13 |
14 |
15 |

Acquisition

16 |

17 | Help us collecting water depths data! GPS, sounder and PC is 18 | all you need. We then will calculate depth contour lines for 19 | the chart. Worldwide. 20 |

21 |

View details »

22 |
23 |
24 |

Processing

25 |

26 | Using your raw data we calculate water depths. We feed it with 27 | heel and tide data. Using statistical methods, we calculate a 28 | digital elevation model from thousands of measurements. 29 |

30 |

Wiki »

31 |
32 |
33 |

Rendering

34 |

35 | We derive contours from the digital elevation model. On 36 | sufficient accuracy they will be displayed on the map. 37 |

38 |

Wiki »

39 |
40 |
41 | -------------------------------------------------------------------------------- /src/js/templates/wizard.handlebars: -------------------------------------------------------------------------------- 1 |
2 |
3 | 9 | 11 |
12 |
13 | -------------------------------------------------------------------------------- /src/js/templates_local.js: -------------------------------------------------------------------------------- 1 | function fetchClientSideInclude( url ) 2 | { 3 | var req = false; 4 | // For Safari, Firefox, and other non-MS browsers 5 | if (window.XMLHttpRequest) { 6 | try { 7 | req = new XMLHttpRequest(); 8 | } catch (e) { 9 | req = false; 10 | } 11 | } else if (window.ActiveXObject) { 12 | // For Internet Explorer on Windows 13 | try { 14 | req = new ActiveXObject("Msxml2.XMLHTTP"); 15 | } catch (e) { 16 | try { 17 | req = new ActiveXObject("Microsoft.XMLHTTP"); 18 | } catch (e) { 19 | req = false; 20 | } 21 | } 22 | } 23 | 24 | if (req) { 25 | // Synchronous request, wait till we have it all 26 | // req.overrideMimeType( "text/plain; charset=x-user-defined" ); 27 | req.overrideMimeType( "text/plain" ); 28 | req.open('GET', url, false); 29 | req.send(null); 30 | return req.responseText; 31 | } 32 | } 33 | 34 | function supportsImports() { 35 | return 'import' in document.createElement('link'); 36 | } 37 | 38 | function loadTemplates() 39 | { 40 | // all snippets that normally are packed by the handlebars precompiler must be mentioned here 41 | var hbdivs = [ 42 | "about-en", 43 | "about-de", 44 | "alert-info", 45 | "alert-success", 46 | "alert", 47 | "attributions-de", 48 | "attributions-en", 49 | "contact-de", 50 | "contact-en", 51 | "contribute-en", 52 | "contribute-de", 53 | "depthsensoroffset-de", 54 | "depthsensoroffset-en", 55 | "Disabledcontribute-de", 56 | "documentation-de", 57 | "documentation-en", 58 | "gauge", 59 | "gaugedialog-en", 60 | "gaugemeasurement", 61 | "gauges-de", 62 | "gauges-en", 63 | "goodby-de", 64 | "goodby-en", 65 | "gpsoffset-de", 66 | "gpsoffset-en", 67 | "home-de", 68 | "home-en", 69 | "instructions-de", 70 | "instructions-en", 71 | "introduction-de", 72 | "introduction-en", 73 | "license-de", 74 | "license-en", 75 | "login-de", 76 | "login-en", 77 | "maptracks", 78 | "meta1-de", 79 | "meta1-en", 80 | "navbar", 81 | "page", 82 | "register-de", 83 | "register-en", 84 | "register", 85 | "reset-password", 86 | "toolbar", 87 | "track", 88 | "tracks-de", 89 | "tracks-en", 90 | "user-de", 91 | "user-en", 92 | "vessel-de", 93 | "vessel-en", 94 | "vesselgeneric-de", 95 | "vesselgeneric-en", 96 | "vesselitem", 97 | "vessels-de", 98 | "vessels-en", 99 | "welcome-de", 100 | "welcome-en", 101 | "wizard" ]; 102 | 103 | for ( t of hbdivs ) 104 | { 105 | var inc; 106 | inc = fetchClientSideInclude( "js/templates/" + t + ".handlebars" ); 107 | var template = Handlebars.compile(inc); 108 | Handlebars.templates[ t ] = template; 109 | } 110 | } 111 | 112 | 113 | !function() 114 | { 115 | var e=Handlebars.template,n=Handlebars.templates=Handlebars.templates||{}; 116 | 117 | // all scripts that are normally inserted into the header section via handlebars precompiler must be mentioned here. 118 | var tpl = [ 119 | "validation", 120 | "router", 121 | "auth", 122 | "frontend", 123 | "toolbar", 124 | "navbar", 125 | "home", 126 | "init"]; 127 | 128 | for ( t of tpl ) 129 | { 130 | var source = document.getElementById(t).innerHTML; 131 | var template = Handlebars.compile(source); 132 | Handlebars.templates[ t ] = template; 133 | } 134 | 135 | loadTemplates(); 136 | }(); 137 | -------------------------------------------------------------------------------- /src/js/wscript: -------------------------------------------------------------------------------- 1 | def configure(ctx): 2 | ctx.find_program('google-closure-compiler', var='CLOSURECOMPILER') 3 | ctx.find_program('handlebars', var='HANDLEBARS') 4 | ctx.env.CLOSURECOMPILERFLAGS = '--compilation_level SIMPLE_OPTIMIZATIONS' 5 | ctx.env.JSSTAGE1 = [ 6 | 'oseam.js', 7 | 'oseam-utils-validation.js', 8 | 'oseam-routers-router.js', 9 | 'oseam-models-auth.js', 10 | 'oseam-models-frontend.js', 11 | 'oseam-views-logindlg.js', 12 | 'oseam-views-toolbar.js', 13 | 'oseam-views-navbar.js', 14 | 'oseam-views-home.js', 15 | 'init.js' 16 | ] 17 | ctx.env.JSSTAGE2 = [ 18 | 'oseam-models-license.js', 19 | 'oseam-models-licenses.js', 20 | 'oseam-models-offset.js', 21 | 'oseam-models-gauge.js', 22 | 'oseam-models-gauges.js', 23 | 'oseam-models-gaugemeasurement.js', 24 | 'oseam-models-gaugemeasurements.js', 25 | 'oseam-models-track.js', 26 | 'oseam-models-tracks.js', 27 | 'oseam-models-user.js', 28 | 'oseam-models-vessel.js', 29 | 'oseam-models-vessels.js', 30 | 'oseam-views-about.js', 31 | 'oseam-views-attributions.js', 32 | 'oseam-views-documentation.js', 33 | 'oseam-views-contribute.js', 34 | 'oseam-views-depthsensorpage.js', 35 | 'oseam-views-gpspage.js', 36 | 'oseam-views-gaugemeasurement.js', 37 | 'oseam-views-gaugedialog.js', 38 | 'oseam-views-gauge.js', 39 | 'oseam-views-gauges.js', 40 | 'oseam-views-license.js', 41 | 'oseam-views-login.js', 42 | 'oseam-views-maptracks.js', 43 | 'oseam-views-meta1.js', 44 | 'oseam-views-meta2.js', 45 | 'oseam-views-meta3.js', 46 | 'oseam-views-meta4.js', 47 | 'oseam-views-register.js', 48 | 'oseam-views-resetPassword.js', 49 | 'oseam-views-selection.js', 50 | 'oseam-views-selectionitem.js', 51 | 'oseam-views-sensorpositions.js', 52 | 'oseam-views-instructions.js', 53 | 'oseam-views-introduction.js', 54 | 'oseam-views-track.js', 55 | 'oseam-views-tracks.js', 56 | 'oseam-views-user.js', 57 | 'oseam-views-vessel.js', 58 | 'oseam-views-vesselitem.js', 59 | 'oseam-views-vesselpage.js', 60 | 'oseam-views-vessels.js', 61 | 'oseam-views-wizard.js', 62 | 'oseam-views-welcome.js', 63 | 'oseam-views-goodby.js', 64 | 'oseam-views-contact.js', 65 | ] 66 | ctx.env.JSSTAGE1NAME = 'all-stage1.js' 67 | ctx.env.JSSTAGE2NAME = 'all-stage2.js' 68 | ctx.env.NAME = 'release' 69 | 70 | 71 | 72 | def build(ctx): 73 | 74 | ctx( 75 | rule = '${HANDLEBARS} -m ${SRC} -f ${TGT}', 76 | source = ctx.path.ant_glob('templates/*.handlebars'), 77 | target = 'templates.js', 78 | install_path = '${PREFIX}/js' 79 | ) 80 | 81 | if ctx.env.NAME == 'release': 82 | ctx( 83 | rule = '${CLOSURECOMPILER} ${CLOSURECOMPILERFLAGS} --js ${SRC} --js_output_file ${TGT}', 84 | source = ctx.env.JSSTAGE1, 85 | target = ctx.env.JSSTAGE1NAME, 86 | install_path = '${PREFIX}/js' 87 | ) 88 | 89 | ctx( 90 | rule = '${CLOSURECOMPILER} ${CLOSURECOMPILERFLAGS} --js ${SRC} --js_output_file ${TGT}', 91 | source = ctx.env.JSSTAGE2, 92 | target = ctx.env.JSSTAGE2NAME, 93 | install_path = '${PREFIX}/js' 94 | ) 95 | 96 | if ctx.env.NAME == 'debug': 97 | ctx.install_files('${PREFIX}/js', ctx.path.ant_glob('*.js')) 98 | -------------------------------------------------------------------------------- /src/lib/bootstrap/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/bootstrap/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /src/lib/bootstrap/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/bootstrap/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/blank.gif -------------------------------------------------------------------------------- /src/lib/openlayers/img/cloud-popup-relative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/cloud-popup-relative.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/drag-rectangle-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/drag-rectangle-off.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/drag-rectangle-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/drag-rectangle-on.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/east-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/east-mini.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/layer-switcher-maximize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/layer-switcher-maximize.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/layer-switcher-minimize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/layer-switcher-minimize.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/marker-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/marker-blue.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/marker-gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/marker-gold.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/marker-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/marker-green.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/marker.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/measuring-stick-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/measuring-stick-off.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/measuring-stick-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/measuring-stick-on.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/north-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/north-mini.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/panning-hand-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/panning-hand-off.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/panning-hand-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/panning-hand-on.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/slider.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/south-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/south-mini.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/west-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/west-mini.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/zoom-minus-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/zoom-minus-mini.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/zoom-plus-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/zoom-plus-mini.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/zoom-world-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/zoom-world-mini.png -------------------------------------------------------------------------------- /src/lib/openlayers/img/zoombar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/img/zoombar.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/google.css: -------------------------------------------------------------------------------- 1 | .olLayerGoogleCopyright { 2 | right: 3px; 3 | bottom: 2px; 4 | left: auto; 5 | } 6 | .olLayerGoogleV3.olLayerGoogleCopyright { 7 | bottom: 0px; 8 | right: 0px !important; 9 | } 10 | .olLayerGooglePoweredBy { 11 | left: 2px; 12 | bottom: 2px; 13 | } 14 | .olLayerGoogleV3.olLayerGooglePoweredBy { 15 | bottom: 0px !important; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/google.tidy.css: -------------------------------------------------------------------------------- 1 | .olLayerGoogleCopyright{right:3px;bottom:2px;left:auto;}.olLayerGoogleV3.olLayerGoogleCopyright{bottom:0;right:0!important;}.olLayerGooglePoweredBy{left:2px;bottom:2px;}.olLayerGoogleV3.olLayerGooglePoweredBy{bottom:0!important;} -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/ie6-style.css: -------------------------------------------------------------------------------- 1 | .olControlZoomPanel div { 2 | background-image: url(img/zoom-panel-NOALPHA.png); 3 | } 4 | .olControlPanPanel div { 5 | background-image: url(img/pan-panel-NOALPHA.png); 6 | } 7 | .olControlEditingToolbar { 8 | width: 200px; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/ie6-style.tidy.css: -------------------------------------------------------------------------------- 1 | .olControlZoomPanel div{background-image:url(img/zoom-panel-NOALPHA.png);}.olControlPanPanel div{background-image:url(img/pan-panel-NOALPHA.png);}.olControlEditingToolbar{width:200px;} -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/add_point_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/add_point_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/add_point_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/add_point_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/blank.gif -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/close.gif -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/drag-rectangle-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/drag-rectangle-off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/drag-rectangle-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/drag-rectangle-on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/draw_line_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/draw_line_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/draw_line_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/draw_line_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/draw_point_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/draw_point_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/draw_point_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/draw_point_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/draw_polygon_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/draw_polygon_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/draw_polygon_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/draw_polygon_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/editing_tool_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/editing_tool_bar.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/move_feature_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/move_feature_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/move_feature_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/move_feature_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/navigation_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/navigation_history.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/overview_replacement.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/overview_replacement.gif -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/pan-panel-NOALPHA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/pan-panel-NOALPHA.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/pan-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/pan-panel.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/pan_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/pan_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/pan_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/pan_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/panning-hand-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/panning-hand-off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/panning-hand-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/panning-hand-on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/remove_point_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/remove_point_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/remove_point_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/remove_point_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/ruler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/ruler.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/save_features_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/save_features_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/save_features_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/save_features_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/view_next_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/view_next_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/view_next_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/view_next_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/view_previous_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/view_previous_off.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/view_previous_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/view_previous_on.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/zoom-panel-NOALPHA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/zoom-panel-NOALPHA.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/img/zoom-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/src/lib/openlayers/theme/default/img/zoom-panel.png -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/style.mobile.css: -------------------------------------------------------------------------------- 1 | div.olControlZoom { 2 | position: absolute; 3 | top: 8px; 4 | left: 8px; 5 | background: rgba(255,255,255,0.4); 6 | border-radius: 4px; 7 | padding: 2px; 8 | } 9 | * { 10 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 11 | } 12 | div.olControlZoom a { 13 | display: block; 14 | margin: 1px; 15 | padding: 0; 16 | color: white; 17 | font-size: 28px; 18 | font-family: sans-serif; 19 | font-weight: bold; 20 | text-decoration: none; 21 | text-align: center; 22 | height: 32px; 23 | width: 32px; 24 | line-height: 28px; 25 | text-shadow: 0 0 3px rgba(0,0,0,0.8); 26 | background: #130085; /* fallback for IE - IE6 requires background shorthand*/ 27 | background: rgba(0, 60, 136, 0.5); 28 | filter: alpha(opacity=80); 29 | } 30 | a.olControlZoomIn { 31 | border-radius: 4px 4px 0 0; 32 | } 33 | a.olControlZoomOut { 34 | border-radius: 0 0 4px 4px; 35 | } 36 | div.olControlZoom a:hover { 37 | background: #130085; /* fallback for IE */ 38 | background: rgba(0, 60, 136, 0.7); 39 | filter: alpha(opacity=100); 40 | } 41 | @media only screen and (max-width: 600px) { 42 | div.olControlZoom a:hover { 43 | background: rgba(0, 60, 136, 0.5); 44 | } 45 | } 46 | .olLayerGrid .olTileImage { 47 | -webkit-transition: opacity 0.2s linear; 48 | -moz-transition: opacity 0.2s linear; 49 | -o-transition: opacity 0.2s linear; 50 | transition: opacity 0.2s linear; 51 | } 52 | /* Enable 3d acceleration when operating on tiles, this is 53 | known to yield better performance on IOS Safari. 54 | http://osgeo-org.1803224.n2.nabble.com/Harware-accelerated-CSS3-animations-for-iOS-td6255560.html 55 | 56 | It also prevents tile blinking effects in iOS 5. 57 | See https://github.com/openlayers/openlayers/issues/511 58 | */ 59 | @media (-webkit-transform-3d) { 60 | img.olTileImage { 61 | -webkit-transform: translate3d(0, 0, 0); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/lib/openlayers/theme/default/style.mobile.tidy.css: -------------------------------------------------------------------------------- 1 | div.olControlZoom{position:absolute;top:8px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;padding:2px;}*{-webkit-tap-highlight-color:rgba(0,0,0,0);}div.olControlZoom a{display:block;color:#FFF;font-size:28px;font-family:sans-serif;font-weight:700;text-decoration:none;text-align:center;height:32px;width:32px;line-height:28px;text-shadow:0 0 3px rgba(0,0,0,0.8);background:rgba(0,60,136,0.5);filter:alpha(opacity=80);margin:1px;padding:0;}a.olControlZoomIn{border-radius:4px 4px 0 0;}a.olControlZoomOut{border-radius:0 0 4px 4px;}div.olControlZoom a:hover{background:rgba(0,60,136,0.7);filter:alpha(opacity=100);}.olLayerGrid .olTileImage{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear;}@media only screen and max-width 600px{div.olControlZoom a:hover{background:rgba(0,60,136,0.5);}}@media -webkit-transform-3d{img.olTileImage{-webkit-transform:translate3d(0,0,0);}} -------------------------------------------------------------------------------- /src/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | -------------------------------------------------------------------------------- /src/wscript: -------------------------------------------------------------------------------- 1 | def configure(ctx): 2 | ctx.recurse('js') 3 | 4 | 5 | def build(ctx): 6 | ctx.recurse('js') 7 | 8 | ctx( 9 | features = 'replacer', 10 | source = ctx.path.make_node('index.html'), 11 | target = ctx.path.get_bld().make_node('index.html'), 12 | install_path = '${PREFIX}' 13 | ) 14 | 15 | ctx.install_files('${PREFIX}', 'index.html') 16 | ctx.install_files('${PREFIX}', 'robots.txt') 17 | ctx.install_files('${PREFIX}', 'favicon.ico') 18 | ctx.install_files('${PREFIX}', 'singletrack.html') 19 | ctx.install_files('${PREFIX}', ctx.path.ant_glob('css/*.css'), relative_trick=True) 20 | ctx.install_files('${PREFIX}', ctx.path.ant_glob('images/*.png'), relative_trick=True) 21 | ctx.install_files('${PREFIX}', ctx.path.ant_glob('images/*.jpg'), relative_trick=True) 22 | ctx.install_files('${PREFIX}', ctx.path.ant_glob('lib/**'), relative_trick=True) 23 | ctx.install_files('${PREFIX}', ctx.path.ant_glob('translations/*.json'), relative_trick=True) 24 | 25 | 26 | 27 | from waflib import Task, TaskGen 28 | 29 | @TaskGen.feature('replacer') 30 | @TaskGen.before('process_source') 31 | def replacer_hook(self): 32 | self.source = getattr(self, 'source', None) 33 | self.target = getattr(self, 'target', None) 34 | 35 | task = self.create_task('replacer', self.to_nodes(self.source), self.to_nodes(self.target)) 36 | self.source = [] 37 | 38 | inst_to = getattr(self, 'install_path', None) 39 | if inst_to: 40 | self.bld.install_files(inst_to, task.outputs[:]) 41 | 42 | 43 | class replacer(Task.Task): 44 | 45 | def run(self): 46 | fhIn = open(self.inputs[0].abspath(), 'r') 47 | content = fhIn.read() 48 | fhIn.close() 49 | 50 | if self.env.NAME == 'debug': 51 | files1 = self.env.JSSTAGE1 52 | files2 = self.env.JSSTAGE2 53 | else: 54 | files1 = [self.env.JSSTAGE1NAME] 55 | files2 = [self.env.JSSTAGE2NAME] 56 | 57 | stage1 = '' 58 | for jsFile in files1: 59 | stage1 = stage1 + '\n' 60 | 61 | stage2 = '' 62 | for jsFile in files2: 63 | stage2 = stage2 + '\n' 64 | 65 | content = content.replace('{{stage1}}', stage1) 66 | content = content.replace('{{stage2}}', stage2) 67 | 68 | fhOut = open(self.outputs[0].abspath(), 'w') 69 | fhOut.write(content) 70 | fhOut.close() 71 | -------------------------------------------------------------------------------- /waf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenSeaMap/depth_webfrontend/1f4edf7e29147903b310fad544d33b1549ea2ca7/waf -------------------------------------------------------------------------------- /wscript: -------------------------------------------------------------------------------- 1 | APPNAME = 'OSeaM-depth' 2 | VERSION = '0.1' 3 | 4 | 5 | top = '.' 6 | out = 'build' 7 | 8 | 9 | def configure(ctx): 10 | ctx.recurse('src') 11 | 12 | env = ctx.env 13 | 14 | ctx.setenv('debug', env) 15 | ctx.env.NAME = 'debug' 16 | ctx.env.PREFIX = './debug' 17 | 18 | ctx.setenv('release', env) 19 | ctx.env.NAME = 'release' 20 | ctx.env.PREFIX = './release' 21 | 22 | 23 | 24 | 25 | def build(ctx): 26 | if not ctx.variant: 27 | ctx.fatal('call "waf build_debug" or "waf build_release", and try "waf --help"') 28 | ctx.recurse('src') 29 | 30 | 31 | 32 | from waflib.Build import BuildContext, CleanContext, \ 33 | InstallContext, UninstallContext 34 | 35 | for x in 'debug release'.split(): 36 | for y in (BuildContext, CleanContext, InstallContext, UninstallContext): 37 | name = y.__name__.replace('Context','').lower() 38 | class tmp(y): 39 | cmd = name + '_' + x 40 | variant = x 41 | --------------------------------------------------------------------------------