Small tweaks to attribution panel
This commit is contained in:
parent
c78f8f6cdc
commit
d072552043
7 changed files with 27 additions and 56 deletions
|
@ -9,6 +9,7 @@ import {Utils} from "../../Utils";
|
|||
export default class LayoutConfig {
|
||||
public readonly id: string;
|
||||
public readonly maintainer: string;
|
||||
public readonly credits?: string;
|
||||
public readonly changesetmessage?: string;
|
||||
public readonly version: string;
|
||||
public readonly language: string[];
|
||||
|
@ -48,6 +49,7 @@ export default class LayoutConfig {
|
|||
this.id = json.id;
|
||||
context = (context ?? "") + "." + this.id;
|
||||
this.maintainer = json.maintainer;
|
||||
this.credits = json.credits;
|
||||
this.changesetmessage = json.changesetmessage;
|
||||
this.version = json.version;
|
||||
this.language = [];
|
||||
|
|
|
@ -24,6 +24,12 @@ export interface LayoutConfigJson {
|
|||
* 'cyclestreets' which become 'cyclestreets.html'
|
||||
*/
|
||||
id: string;
|
||||
|
||||
/**
|
||||
* Who helped to create this theme and should be attributed?
|
||||
*/
|
||||
credits?: string;
|
||||
|
||||
/**
|
||||
* Who does maintian this preset?
|
||||
*/
|
||||
|
|
|
@ -297,7 +297,7 @@ export class InitUiElements {
|
|||
copyrightNotice,
|
||||
new MapControlButton(Svg.osm_copyright_svg()),
|
||||
copyrightNotice.isShown
|
||||
).SetClass("p-0.5 md:hidden")
|
||||
).SetClass("p-0.5")
|
||||
|
||||
new Combine([copyrightButton, checkbox])
|
||||
.AttachTo("bottom-left");
|
||||
|
|
56
README.md
56
README.md
|
@ -142,49 +142,9 @@ Whenever a change is made -even adding a single tag- the change is uploaded into
|
|||
|
||||
Note that changesets are closed automatically after one hour of inactivity, so we don't have to worry about closing them.
|
||||
|
||||
### Query parameters
|
||||
# Documentation
|
||||
|
||||
By adding extra query parameters, more options are available to influence:
|
||||
|
||||
**test**: If true, 'dryrun' mode is activated. The app will behave as normal, except that changes to OSM will be printed onto the console instead of actually uploaded to osm.org (default value: _false_)
|
||||
|
||||
**layout**: The layout to load into MapComplete (default value: _bookcases_)
|
||||
|
||||
**userlayout**: undefined (default value: _false_)
|
||||
|
||||
**layer-control-toggle**: Wether or not the layer control is shown (default value: _false_)
|
||||
|
||||
**tab**: The tab that is shown in the welcome-message. 0 = the explanation of the theme,1 = OSM-credits, 2 = sharescreen, 3 = more themes, 4 = about mapcomplete (user must be logged in and have >200 changesets) (default value: _0_)
|
||||
|
||||
**z**: The initial/current zoom level (default value: _1_)
|
||||
|
||||
**lat**: The initial/current latitude (default value: _0_)
|
||||
|
||||
**lon**: The initial/current longitude of the app (default value: _0_)
|
||||
|
||||
**fs-userbadge**: Disables/Enables the userbadge (and thus disables login capabilities) (default value: _true_)
|
||||
|
||||
**fs-search**: Disables/Enables the search bar (default value: _true_)
|
||||
|
||||
**fs-layers**: Disables/Enables the layer control (default value: _true_)
|
||||
|
||||
**fs-add-new**: Disables/Enables the 'add new feature'-popup. (A theme without presets might not have it in the first place) (default value: _true_)
|
||||
|
||||
**fs-welcome-message**: undefined (default value: _true_)
|
||||
|
||||
**fs-iframe**: Disables/Enables the iframe-popup (default value: _false_)
|
||||
|
||||
**fs-more-quests**: Disables/Enables the 'More Quests'-tab in the welcome message (default value: _true_)
|
||||
|
||||
**fs-share-screen**: Disables/Enables the 'Share-screen'-tab in the welcome message (default value: _true_)
|
||||
|
||||
**fs-geolocation**: Disables/Enables the geolocation button (default value: _true_)
|
||||
|
||||
**oauth_token**: Used to complete the login (default value: _undefined_)
|
||||
|
||||
**background**: The id of the background layer to start with (default value: _undefined_)
|
||||
|
||||
**layer-bookcases**: Wehter or not layer bookcases is shown (default value: _true_) index.ts:104:8
|
||||
All documentation can be found in [here](Docs/)
|
||||
|
||||
# Privacy
|
||||
|
||||
|
@ -195,12 +155,16 @@ Geolocation is available on mobile only throught hte device's GPS location (so n
|
|||
TODO: erase cookies of third party websites and API's
|
||||
|
||||
|
||||
# Attributions
|
||||
# Attribution
|
||||
|
||||
Data from OpenStreetMap
|
||||
|
||||
Background layer selection: curated by https://github.com/osmlab/editor-layer-index
|
||||
|
||||
Icons are attributed in various 'license_info.json'-files and can be found in the app.
|
||||
|
||||
|
||||
|
||||
https://commons.wikimedia.org/wiki/File:Camera_font_awesome.svg
|
||||
Camera Icon, Dave Gandy, CC-BY-SA 3.0
|
||||
|
||||
|
@ -212,11 +176,5 @@ Bicycle logo, Scott de Jonge
|
|||
|
||||
Park icon via http://www.onlinewebfonts.com/icon/425974, CC BY 3.0 (@sterankofrank)
|
||||
|
||||
Forest icon via https://www.onlinewebfonts.com/icon/498112, CC BY
|
||||
|
||||
Shower icon (used in 'bike_cleaning.svg'):
|
||||
https://commons.wikimedia.org/wiki/File:Shower_symbol.svg
|
||||
|
||||
Bench icons from StreetComplete: https://github.com/westnordost/StreetComplete/tree/v25.0-beta1/res/graphics/quest%20icons, GPLv3.0
|
||||
|
||||
Urinal icon: https://thenounproject.com/term/urinal/1307984/
|
|
@ -21,7 +21,9 @@ export default class AttributionPanel extends Combine {
|
|||
constructor(layoutToUse: UIEventSource<LayoutConfig>) {
|
||||
super([
|
||||
Translations.t.general.attribution.attributionContent,
|
||||
Translations.t.general.attribution.themeBy.Subs({author: layoutToUse.data.maintainer}),
|
||||
|
||||
((layoutToUse.data.maintainer ?? "") == "") ? "" : Translations.t.general.attribution.themeBy.Subs({author: layoutToUse.data.maintainer}),
|
||||
layoutToUse.data.credits ,
|
||||
"<br/>",
|
||||
new Attribution(undefined, undefined, State.state.layoutToUse, undefined),
|
||||
"<br/>",
|
||||
|
@ -50,7 +52,7 @@ export default class AttributionPanel extends Combine {
|
|||
new Combine([
|
||||
new FixedUiElement(license.authors.join("; ")).SetClass("font-bold"),
|
||||
new Combine([license.license, license.sources.length > 0 ? " - " : "",
|
||||
...license.sources.map(link => `<a href='${link}'>${new URL(link).hostname}</a> `)]).SetClass("block")
|
||||
...license.sources.map(link => `<a href='${link}' target="_blank">${new URL(link).hostname}</a> `)]).SetClass("block")
|
||||
]).SetClass("flex flex-col")
|
||||
]).SetClass("flex")
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 175 KiB |
|
@ -28,7 +28,6 @@ function readDirRecSync(path): string[] {
|
|||
function generateLicenseInfos(paths: string[]): SmallLicense[] {
|
||||
const licenses = []
|
||||
for (const path of paths) {
|
||||
console.log("Reading info from " + path)
|
||||
const parsed = JSON.parse(readFileSync(path, "UTF-8"))
|
||||
if (Array.isArray(parsed)) {
|
||||
const l: SmallLicense[] = parsed
|
||||
|
@ -166,7 +165,7 @@ writeFileSync("./assets/generated/license_info.json", JSON.stringify(licenseInfo
|
|||
const artwork = contents.filter(pth => pth.match(/(.svg|.png|.jpg)$/i) != null)
|
||||
const missingLicenses = missingLicenseInfos(licenseInfos, artwork)
|
||||
|
||||
console.log(`There are ${missingLicenses.length} licenses missing.`)
|
||||
console.log(`There are ${missingLicenses.length} licenses missing.`, missingLicenses)
|
||||
|
||||
// shuffle(missingLicenses)
|
||||
|
||||
|
@ -178,6 +177,10 @@ process.on('SIGINT', function() {
|
|||
let i = 1;
|
||||
for (const missingLicens of missingLicenses) {
|
||||
console.log(i + " / " + missingLicenses.length)
|
||||
createLicenseInfoFor(missingLicens)
|
||||
i++;
|
||||
if(i < missingLicenses.length - 5){
|
||||
// continue
|
||||
}
|
||||
createLicenseInfoFor(missingLicens)
|
||||
|
||||
}
|
Loading…
Reference in a new issue