Link to 'professional-services'-page

This commit is contained in:
Pieter Vander Vennet 2022-01-18 00:09:01 +01:00
parent d4d7ab6f3a
commit 1ad3e8cc95
4 changed files with 41 additions and 17 deletions

View file

@ -10,6 +10,7 @@ import IndexText from "./BigComponents/IndexText";
import FeaturedMessage from "./BigComponents/FeaturedMessage"; import FeaturedMessage from "./BigComponents/FeaturedMessage";
import Toggle from "./Input/Toggle"; import Toggle from "./Input/Toggle";
import {SubtleButton} from "./Base/SubtleButton"; import {SubtleButton} from "./Base/SubtleButton";
import Title from "./Base/Title";
export default class AllThemesGui { export default class AllThemesGui {
constructor() { constructor() {

View file

@ -110,6 +110,15 @@ export default class MoreScreen extends Combine {
]), {url: linkText, newTab: false}); ]), {url: linkText, newTab: false});
} }
private static CreateProffessionalSerivesButton() {
const t = Translations.t.professional.indexPage;
return new Combine([
new Title(t.hook, 4),
t.hookMore,
new SubtleButton(undefined, t.button, {url: "./professional.html"}),
]).SetClass("flex flex-col border border-gray-300 p-2 rounded-lg")
}
private static createUnofficialThemeList(buttonClass: string, state: UserRelatedState, themeListClasses): BaseUIElement { private static createUnofficialThemeList(buttonClass: string, state: UserRelatedState, themeListClasses): BaseUIElement {
return new VariableUiElement(state.installedThemes.map(customThemes => { return new VariableUiElement(state.installedThemes.map(customThemes => {
if (customThemes.length <= 0) { if (customThemes.length <= 0) {
@ -128,20 +137,20 @@ export default class MoreScreen extends Combine {
const prefix = "mapcomplete-hidden-theme-" const prefix = "mapcomplete-hidden-theme-"
const hiddenThemes = themeOverview["default"].filter(layout => layout.hideFromOverview) const hiddenThemes = themeOverview["default"].filter(layout => layout.hideFromOverview)
const hiddenTotal = hiddenThemes.length const hiddenTotal = hiddenThemes.length
return new Toggle( return new Toggle(
new VariableUiElement( new VariableUiElement(
state.osmConnection.preferencesHandler.preferences.map(allPreferences => { state.osmConnection.preferencesHandler.preferences.map(allPreferences => {
const knownThemes: Set<string> = new Set(Utils.NoNull(Object.keys(allPreferences) const knownThemes: Set<string> = new Set(Utils.NoNull(Object.keys(allPreferences)
.filter(key => key.startsWith(prefix)) .filter(key => key.startsWith(prefix))
.map(key => key.substring(prefix.length, key.length - "-enabled".length)))); .map(key => key.substring(prefix.length, key.length - "-enabled".length))));
if(knownThemes.size === 0){ if (knownThemes.size === 0) {
return undefined return undefined
} }
const knownThemeDescriptions = hiddenThemes.filter(theme => knownThemes.has(theme.id)) const knownThemeDescriptions = hiddenThemes.filter(theme => knownThemes.has(theme.id))
.map(theme => MoreScreen.createLinkButton(state, theme)?.SetClass(buttonClass)); .map(theme => MoreScreen.createLinkButton(state, theme)?.SetClass(buttonClass));
const knownLayouts = new Combine(knownThemeDescriptions).SetClass(themeListStyle) const knownLayouts = new Combine(knownThemeDescriptions).SetClass(themeListStyle)
@ -189,9 +198,10 @@ export default class MoreScreen extends Combine {
} }
return button; return button;
}) })
let customGeneratorLink = MoreScreen.createCustomGeneratorButton(state) const professional = MoreScreen.CreateProffessionalSerivesButton();
buttons.splice(0, 0, customGeneratorLink); const customGeneratorLink = MoreScreen.createCustomGeneratorButton(state)
buttons.splice(0, 0, customGeneratorLink, professional);
return new Combine(buttons) return new Combine(buttons)
} }

View file

@ -24,6 +24,8 @@
"it", "it",
"id", "id",
"nl", "nl",
"zh_Hant",
"hu",
"ru" "ru"
], ],
"maintainer": "Pieter Vander Vennet, Rob Nickerson, Russ Garrett", "maintainer": "Pieter Vander Vennet, Rob Nickerson, Russ Garrett",
@ -90,7 +92,10 @@
"source": { "source": {
"geoJson": "https://osm-uk-addresses.russss.dev/addresses/{z}/{x}/{y}.json", "geoJson": "https://osm-uk-addresses.russss.dev/addresses/{z}/{x}/{y}.json",
"osmTags": { "osmTags": {
"and": ["ref:GB:inspire~*","id!~node/.*"] "and": [
"ref:GB:inspire~*",
"id!~node/.*"
]
}, },
"geoJsonZoomLevel": 16, "geoJsonZoomLevel": 16,
"isOsmCache": false "isOsmCache": false
@ -311,13 +316,17 @@
"freeform": { "freeform": {
"key": "addr:unit" "key": "addr:unit"
}, },
"mappings": [{ "mappings": [
"if": "addr:unit=", {
"then": "This address has no subparts. <div class='subtle'>Subparts are e.g. appartment numbers, extra letters or numbers if there are multiple letterboxes, ...</div>" "if": "addr:unit=",
} "then": "This address has no subparts. <div class='subtle'>Subparts are e.g. appartment numbers, extra letters or numbers if there are multiple letterboxes, ...</div>"
}
], ],
"condition": { "condition": {
"or": ["addr:housenumber~*","addr:housename~*"] "or": [
"addr:housenumber~*",
"addr:housename~*"
]
} }
}, },
{ {
@ -350,7 +359,6 @@
"hideInAnswer": "_closest_street:2:name=" "hideInAnswer": "_closest_street:2:name="
} }
] ]
}, },
{ {
"id": "uk_addresses_placename", "id": "uk_addresses_placename",
@ -454,7 +462,7 @@
] ]
}, },
"width": { "width": {
"render": "8" "render": "3"
} }
} }
] ]

View file

@ -333,6 +333,11 @@
}, },
"professional": { "professional": {
"backToMapcomplete": "Back to the theme overview", "backToMapcomplete": "Back to the theme overview",
"indexPage": {
"hook": "Need professional support?",
"hookMore": "We can help with setting up surveys, data imports and OpenStreetMap-consultancy",
"button": "Discover our services"
},
"title": "Professional support with MapComplete", "title": "Professional support with MapComplete",
"intro": "The developer of MapComplete offers professional support. This document outlines some of the possibilities, common questions and the boundaries of MapComplete", "intro": "The developer of MapComplete offers professional support. This document outlines some of the possibilities, common questions and the boundaries of MapComplete",
"osmTitle": "What can OpenStreetMap and MapComplete do for your organisation?", "osmTitle": "What can OpenStreetMap and MapComplete do for your organisation?",