Change on-map home icon
This commit is contained in:
commit
c1490267e6
12 changed files with 73 additions and 95 deletions
12
README.md
12
README.md
|
@ -84,16 +84,16 @@ To develop:
|
||||||
|
|
||||||
0. Make a fork and clone the repository.
|
0. Make a fork and clone the repository.
|
||||||
1. Install `npm`. Linux: `sudo apt install npm` (or your favourite package manager), Windows: install nodeJS: https://nodejs.org/en/download/
|
1. Install `npm`. Linux: `sudo apt install npm` (or your favourite package manager), Windows: install nodeJS: https://nodejs.org/en/download/
|
||||||
2. Run `npm install` to install the dependencies
|
2. Run `npm install` to install the package dependencies
|
||||||
3. Run `npm run start` to host a local testversion at http://localhost:1234/index.html
|
3. Run `npm run generate` to generate some additional dependencies
|
||||||
4. By default, the 'bookcases'-theme is loaded. In order to load another theme, use `layout=themename` or `userlayout=true#<layout configuration>`. Note that the custom URLs (e.g. `bookcases.html`, `aed.html`, ...) _don't_ exist on the development version. (These are automatically generated from a template on the server).
|
4. Run `npm run start` to host a local testversion at http://localhost:1234/index.html
|
||||||
|
5. By default, the 'bookcases'-theme is loaded. In order to load another theme, use `layout=themename` or `userlayout=true#<layout configuration>`. Note that the custom URLs (e.g. `bookcases.html`, `aed.html`, ...) _don't_ exist on the development version. (These are automatically generated from a template on the server).
|
||||||
|
|
||||||
To deploy:
|
To deploy:
|
||||||
|
|
||||||
0. `rm -rf dist/` to remove the local build
|
0. `rm -rf dist/` to remove the local build
|
||||||
1. `ts-node createLayouts.ts` to generate the custom htmls, (such as `aed.html`, `bookcases.html`)
|
1. `npm run build`
|
||||||
2. `npm run build`
|
2. Copy the entire `dist` folder to where you host your website. Visiting `index.html` gives you the website
|
||||||
3. copy the entire `dist` folder to where you host your website. Visiting `index.html` gives you the website
|
|
||||||
|
|
||||||
## Translating MapComplete
|
## Translating MapComplete
|
||||||
|
|
||||||
|
|
2
State.ts
2
State.ts
|
@ -22,7 +22,7 @@ export default class State {
|
||||||
// The singleton of the global state
|
// The singleton of the global state
|
||||||
public static state: State;
|
public static state: State;
|
||||||
|
|
||||||
public static vNumber = "0.1.3-rc1";
|
public static vNumber = "0.1.3-rc2+g";
|
||||||
|
|
||||||
// The user journey states thresholds when a new feature gets unlocked
|
// The user journey states thresholds when a new feature gets unlocked
|
||||||
public static userJourney = {
|
public static userJourney = {
|
||||||
|
|
7
Svg.ts
7
Svg.ts
File diff suppressed because one or more lines are too long
|
@ -105,10 +105,9 @@ export default class CustomGeneratorPanel extends UIElement {
|
||||||
}
|
}
|
||||||
if (ud.csCount <= State.userJourney.themeGeneratorReadOnlyUnlock) {
|
if (ud.csCount <= State.userJourney.themeGeneratorReadOnlyUnlock) {
|
||||||
return new Combine([
|
return new Combine([
|
||||||
"<h3>Too little experience/h3>",
|
"<h3>Too little experience</h3>",
|
||||||
`Creating your own (readonly) themes can only be done if you have more then <b>${State.userJourney.themeGeneratorReadOnlyUnlock}</b> changesets made`,
|
`<p>Creating your own (readonly) themes can only be done if you have more then <b>${State.userJourney.themeGeneratorReadOnlyUnlock}</b> changesets made</p>`,
|
||||||
`Making a theme including survey options can be done at <b>${State.userJourney.themeGeneratorFullUnlock}</b> changesets`,
|
`<p>Making a theme including survey options can be done at <b>${State.userJourney.themeGeneratorFullUnlock}</b> changesets</p>`
|
||||||
this.loginButton
|
|
||||||
]).Render();
|
]).Render();
|
||||||
}
|
}
|
||||||
return this.mainPanel.Render()
|
return this.mainPanel.Render()
|
||||||
|
|
|
@ -103,7 +103,7 @@ export default class ValidatedTextField {
|
||||||
"A geographical direction, in degrees. 0° is north, 90° is east, ... Will return a value between 0 (incl) and 360 (excl)",
|
"A geographical direction, in degrees. 0° is north, 90° is east, ... Will return a value between 0 (incl) and 360 (excl)",
|
||||||
(str) => {
|
(str) => {
|
||||||
str = "" + str;
|
str = "" + str;
|
||||||
return str !== undefined && str.indexOf(".") < 0 && !isNaN(Number(str)) && Number(str) > 0 && Number(str) <= 360
|
return str !== undefined && str.indexOf(".") < 0 && !isNaN(Number(str)) && Number(str) >= 0 && Number(str) <= 360
|
||||||
},str => str,
|
},str => str,
|
||||||
(value) => {
|
(value) => {
|
||||||
return new DirectionInput(value);
|
return new DirectionInput(value);
|
||||||
|
|
|
@ -96,11 +96,11 @@ export class UserBadge extends UIElement {
|
||||||
|
|
||||||
if (user.home !== undefined) {
|
if (user.home !== undefined) {
|
||||||
const icon = L.icon({
|
const icon = L.icon({
|
||||||
iconUrl: Img.AsData(Svg.home),
|
iconUrl: Img.AsData(Svg.home_white_bg),
|
||||||
iconSize: [20, 20],
|
iconSize: [30, 30],
|
||||||
iconAnchor: [10, 10]
|
iconAnchor: [15, 15]
|
||||||
});
|
});
|
||||||
L.marker([user.home.lat, user.home.lon], {icon: icon}).addTo(State.state.bm.map);
|
L.marker([user.home.lat, user.home.lon], {icon: icon}).addTo(State.state.bm.map)
|
||||||
}
|
}
|
||||||
|
|
||||||
const settings =
|
const settings =
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<svg height="16px" id="Layer_1" style="enable-background:new 0 0 16 16;" version="1.1" viewBox="0 0 16 16" width="16px"
|
<svg height="16px" id="Layer_1" style="enable-background:new 0 0 16 16;fill: #000000;" version="1.1" viewBox="0 0 16 16" width="16px"
|
||||||
xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M15.45,7L14,5.551V2c0-0.55-0.45-1-1-1h-1c-0.55,0-1,0.45-1,1v0.553L9,0.555C8.727,0.297,8.477,0,8,0S7.273,0.297,7,0.555 L0.55,7C0.238,7.325,0,7.562,0,8c0,0.563,0.432,1,1,1h1v6c0,0.55,0.45,1,1,1h3v-5c0-0.55,0.45-1,1-1h2c0.55,0,1,0.45,1,1v5h3 c0.55,0,1-0.45,1-1V9h1c0.568,0,1-0.437,1-1C16,7.562,15.762,7.325,15.45,7z"/>
|
<path d="M15.45,7L14,5.551V2c0-0.55-0.45-1-1-1h-1c-0.55,0-1,0.45-1,1v0.553L9,0.555C8.727,0.297,8.477,0,8,0S7.273,0.297,7,0.555 L0.55,7C0.238,7.325,0,7.562,0,8c0,0.563,0.432,1,1,1h1v6c0,0.55,0.45,1,1,1h3v-5c0-0.55,0.45-1,1-1h2c0.55,0,1,0.45,1,1v5h3 c0.55,0,1-0.45,1-1V9h1c0.568,0,1-0.437,1-1C16,7.562,15.762,7.325,15.45,7z"/>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 659 B After Width: | Height: | Size: 671 B |
29
assets/svg/home_white_bg.svg
Normal file
29
assets/svg/home_white_bg.svg
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xml:space="preserve"
|
||||||
|
width="16px"
|
||||||
|
viewBox="0 0 16 16"
|
||||||
|
version="1.1"
|
||||||
|
style="enable-background:new 0 0 16 16;fill: #000000;"
|
||||||
|
id="Layer_1"
|
||||||
|
height="16px"><metadata
|
||||||
|
id="metadata11"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||||
|
id="defs9" />
|
||||||
|
<circle
|
||||||
|
id="circle2"
|
||||||
|
fill="white"
|
||||||
|
r="8"
|
||||||
|
cy="8"
|
||||||
|
cx="8" />
|
||||||
|
<path
|
||||||
|
style="stroke-width:1"
|
||||||
|
id="path4"
|
||||||
|
d="m 13.429661,7.2711864 -1.05678,-1.0560508 v -2.588017 c 0,-0.4008474 -0.327966,-0.7288135 -0.728813,-0.7288135 h -0.728814 c -0.400847,0 -0.728813,0.3279661 -0.728813,0.7288135 V 4.0301525 L 8.7288135,2.573983 C 8.5298474,2.3859491 8.347644,2.1694915 8,2.1694915 c -0.3476441,0 -0.5298475,0.2164576 -0.7288136,0.4044915 L 2.570339,7.2711864 C 2.3429491,7.5080508 2.1694915,7.6807796 2.1694915,8 c 0,0.410322 0.3148475,0.7288135 0.7288136,0.7288135 h 0.7288135 v 4.3728815 c 0,0.400847 0.3279661,0.728813 0.7288136,0.728813 h 2.1864407 v -3.644067 c 0,-0.4008478 0.3279661,-0.7288139 0.7288135,-0.7288139 h 1.4576271 c 0.4008475,0 0.7288136,0.3279661 0.7288136,0.7288139 v 3.644067 h 2.1864409 c 0.400847,0 0.728813,-0.327966 0.728813,-0.728813 V 8.7288135 h 0.728814 c 0.413966,0 0.728813,-0.3184915 0.728813,-0.7288135 0,-0.3192204 -0.173457,-0.4919492 -0.400847,-0.7288136 z" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
29
clean.sh
29
clean.sh
|
@ -1,29 +0,0 @@
|
||||||
#! /bin/bash
|
|
||||||
|
|
||||||
# clean up the mess we made
|
|
||||||
# rm *.js
|
|
||||||
# rm Logic/*.js
|
|
||||||
# rm Logic/*.js
|
|
||||||
# rm Logic/*/*.js
|
|
||||||
# rm Logic/*/*/*.js
|
|
||||||
# rm UI/*.js
|
|
||||||
# rm UI/*/*.js
|
|
||||||
# rm UI/*/*/*.js
|
|
||||||
# rm Customizations/*.js
|
|
||||||
# rm Customizations/*/*.js
|
|
||||||
# rm Customizations/*/*/*.js
|
|
||||||
|
|
||||||
rm *.webmanifest
|
|
||||||
|
|
||||||
# rm assets/generated/*
|
|
||||||
|
|
||||||
for f in ./*.html; do
|
|
||||||
if [[ "$f" == "./index.html" ]] || [[ "$f" == "./land.html" ]] || [[ "$f" == "./test.html" ]] || [[ "$f" == "./preferences.html" ]] || [[ "$f" == "./customGenerator.html" ]]
|
|
||||||
then
|
|
||||||
echo "Not removing $f"
|
|
||||||
else
|
|
||||||
rm $f
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -rf .cache
|
|
|
@ -5,7 +5,7 @@ Img.runningFromConsole = true;
|
||||||
UIElement.runningFromConsole = true;
|
UIElement.runningFromConsole = true;
|
||||||
|
|
||||||
import {AllKnownLayouts} from "./Customizations/AllKnownLayouts";
|
import {AllKnownLayouts} from "./Customizations/AllKnownLayouts";
|
||||||
import {readFileSync, writeFile, writeFileSync} from "fs";
|
import {existsSync, mkdirSync, readFileSync, writeFile, writeFileSync} from "fs";
|
||||||
import Locale from "./UI/i18n/Locale";
|
import Locale from "./UI/i18n/Locale";
|
||||||
import svg2img from 'promise-svg2img';
|
import svg2img from 'promise-svg2img';
|
||||||
import Translations from "./UI/i18n/Translations";
|
import Translations from "./UI/i18n/Translations";
|
||||||
|
@ -250,6 +250,12 @@ let wikiPage = "{|class=\"wikitable sortable\"\n" +
|
||||||
"! Name, link !! Genre !! Covered region !! Language !! Description !! Free materials !! Image\n" +
|
"! Name, link !! Genre !! Covered region !! Language !! Description !! Free materials !! Image\n" +
|
||||||
"|-";
|
"|-";
|
||||||
|
|
||||||
|
|
||||||
|
const generatedDir = "./assets/generated";
|
||||||
|
if (! existsSync(generatedDir)) {
|
||||||
|
mkdirSync(generatedDir)
|
||||||
|
}
|
||||||
|
|
||||||
for (const layoutName in all) {
|
for (const layoutName in all) {
|
||||||
if (blacklist.indexOf(layoutName.toLowerCase()) >= 0) {
|
if (blacklist.indexOf(layoutName.toLowerCase()) >= 0) {
|
||||||
console.log(`Skipping a layout with name${layoutName}, it is on the blacklist`);
|
console.log(`Skipping a layout with name${layoutName}, it is on the blacklist`);
|
||||||
|
@ -275,7 +281,7 @@ for (const layoutName in all) {
|
||||||
|
|
||||||
wikiPage += "|}"
|
wikiPage += "|}"
|
||||||
|
|
||||||
writeFile("./assets/generated/wikiIndex", wikiPage, (err) => {
|
writeFile(generatedDir + "/wikiIndex", wikiPage, (err) => {
|
||||||
if (err !== null) {
|
if (err !== null) {
|
||||||
console.log("Could not save wikiindex", err);
|
console.log("Could not save wikiindex", err);
|
||||||
}
|
}
|
||||||
|
|
42
deploy.sh
42
deploy.sh
|
@ -1,42 +0,0 @@
|
||||||
#! /bin/bash
|
|
||||||
|
|
||||||
cd assets/ && wget https://osmlab.github.io/editor-layer-index/imagery.geojson --output-document=editor-layer-index.json
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
mkdir -p assets/generated
|
|
||||||
ts-node createLayouts.ts || { echo 'Creating layouts failed' ; exit 1; }
|
|
||||||
find -name '*.png' | parallel optipng '{}'
|
|
||||||
npm run build || { echo 'Npm build failed' ; exit 1; }
|
|
||||||
|
|
||||||
rm -rf .cache
|
|
||||||
|
|
||||||
if [[ $1 == "groen" ]]
|
|
||||||
then
|
|
||||||
echo "DEPLOYING TO BUURTNATUUR!"
|
|
||||||
mv /home/pietervdvn/git/buurtnatuur.github.io/CNAME /home/pietervdvn/git/
|
|
||||||
mv /home/pietervdvn/git/buurtnatuur.github.io/.git /home/pietervdvn/git/
|
|
||||||
rm -rf /home/pietervdvn/git/buurtnatuur.github.io/*
|
|
||||||
cp -r dist/* /home/pietervdvn/git/buurtnatuur.github.io/
|
|
||||||
mv /home/pietervdvn/git/CNAME /home/pietervdvn/git/buurtnatuur.github.io/
|
|
||||||
mv /home/pietervdvn/git/.git /home/pietervdvn/git/buurtnatuur.github.io/
|
|
||||||
cd /home/pietervdvn/git/buurtnatuur.github.io/
|
|
||||||
elif [[ $1 == "production" ]]
|
|
||||||
then
|
|
||||||
echo "DEPLOYING TO MAPCOMPLETE"
|
|
||||||
rm -rf /home/pietervdvn/git/pietervdvn.github.io/MapComplete/*
|
|
||||||
cp -r dist/* /home/pietervdvn/git/pietervdvn.github.io/MapComplete/
|
|
||||||
cd /home/pietervdvn/git/pietervdvn.github.io/MapComplete/
|
|
||||||
else
|
|
||||||
echo "Testversion deploy"
|
|
||||||
rm -rf /home/pietervdvn/git/pietervdvn.github.io/Staging/*
|
|
||||||
cp -r dist/* /home/pietervdvn/git/pietervdvn.github.io/Staging/
|
|
||||||
cd /home/pietervdvn/git/pietervdvn.github.io/Staging/
|
|
||||||
fi
|
|
||||||
|
|
||||||
git add *
|
|
||||||
git commit -am "New mapcomplete version"
|
|
||||||
git push
|
|
||||||
cd -
|
|
||||||
./clean.sh
|
|
||||||
|
|
||||||
echo "DEPLOYED $1"
|
|
18
package.json
18
package.json
|
@ -13,10 +13,20 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "parcel *.html UI/** Logic/** assets/** vendor/* vendor/*/*",
|
"start": "parcel *.html UI/** Logic/** assets/** assets/**/** assets/**/**/** vendor/* vendor/*/*",
|
||||||
"generate": "ts-node createLayouts.ts",
|
"test": "ts-node test/*",
|
||||||
"build": "rm -rf dist/ && ts-node generateIncludedImages.ts && parcel build --public-url ./ *.html assets/** assets/**/** assets/**/**/** vendor/* vendor/*/*",
|
"generate:editor-layer-index": "cd assets/ && wget https://osmlab.github.io/editor-layer-index/imagery.geojson --output-document=editor-layer-index.json",
|
||||||
"test": "ts-node test/*"
|
"generate:images": "ts-node generateIncludedImages.ts",
|
||||||
|
"generate:layouts": "ts-node createLayouts.ts",
|
||||||
|
"optimize-images": "cd assets/generated/ && find -name '*.png' -exec optipng '{}' \\; && echo 'PNGs are optimized'",
|
||||||
|
"generate": "npm run generate:images && npm run generate:layouts && npm run generate:editor-layer-index",
|
||||||
|
"build": "rm -rf dist/ npm run generate && parcel build --public-url ./ *.html assets/** assets/**/** assets/**/**/** vendor/* vendor/*/*",
|
||||||
|
"prepare-deploy": "npm run generate && npm run build && rm -rf .cache",
|
||||||
|
"deploy:staging": "npm run prepare-deploy && rm -rf /home/pietervdvn/git/pietervdvn.github.io/Staging/* && cp -r dist/* /home/pietervdvn/git/pietervdvn.github.io/Staging/ && cd /home/pietervdvn/git/pietervdvn.github.io/ && git add * && git commit -m 'New MapComplete Version' && git push && cd - && npm run clean",
|
||||||
|
"deploy:production": "npm run prepare-deploy && npm run optimize-images && rm -rf /home/pietervdvn/git/pietervdvn.github.io/MapComplete/* && cp -r dist/* /home/pietervdvn/git/pietervdvn.github.io/MapComplete/ && cd /home/pietervdvn/git/pietervdvn.github.io/ && git add * && git commit -m 'New MapComplete Version' && git push && cd - && npm run clean",
|
||||||
|
|
||||||
|
"clean": "rm *.webmanifest && find *.html | grep -v \"\\(index\\|land\\|test\\|preferences\\|customGenerator\\).html\" | xargs rm"
|
||||||
|
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"OpenStreetMap",
|
"OpenStreetMap",
|
||||||
|
|
Loading…
Reference in a new issue