Merge pull request #1900 from umap-project/explicit-import-paths

Multiple fixes for importers
This commit is contained in:
David Larlet 2024-06-14 21:29:45 -04:00 committed by GitHub
commit c1576ee5ca
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 31 additions and 17 deletions

View file

@ -203,27 +203,24 @@ input[type=checkbox]:checked:after {
label input[type="radio"] { label input[type="radio"] {
appearance: none; appearance: none;
margin-right: 10px; margin-right: 10px;
background: var(--color-darkGray);
} }
input[type="radio"]:after { input[type="radio"]:after {
display: inline-block; display: inline-block;
content: ' '; content: '';
width: 12px; width: 16px;
height: 12px; height: 16px;
border-radius: 50%; border-radius: 50%;
border: 1px solid var(--color-lightGray);
cursor: pointer; cursor: pointer;
text-align: center; text-align: center;
font-size: 1.3rem;
line-height: 1rem;
vertical-align: bottom; vertical-align: bottom;
font-size: 1.2rem;
line-height: 0.7;
} }
label input[type="radio"]:checked:after { label input[type="radio"]:checked:after {
background-color: var(--color-lightCyan); background-color: var(--color-lightCyan);
content: '•';
font-size: 3rem;
line-height: 0.8rem;
color: var(--color-darkGray); color: var(--color-darkGray);
text-indent: -1px; content: '⦿';
} }
input[data-modified=true] { input[data-modified=true] {

View file

@ -12,14 +12,16 @@ const TEMPLATE = `
<input type="file" multiple autofocus onchange /> <input type="file" multiple autofocus onchange />
<input type="url" placeholder="${translate('Provide an URL here')}" onchange /> <input type="url" placeholder="${translate('Provide an URL here')}" onchange />
<textarea onchange placeholder="${translate('Paste your data here')}"></textarea> <textarea onchange placeholder="${translate('Paste your data here')}"></textarea>
<div class="importers"> <div class="importers" hidden>
<h4>${translate('Import helpers:')}</h4> <h4>${translate('Import helpers:')}</h4>
<ul class="grid-container"> <ul class="grid-container">
</ul> </ul>
</div> </div>
</fieldset> </fieldset>
<fieldset class="formbox"> <fieldset class="formbox">
<legend class="counter" data-help="importFormats">${translate('Choose the format')}</legend> <legend class="counter" data-help="importFormats">${translate(
'Choose the format'
)}</legend>
<select name="format" onchange></select> <select name="format" onchange></select>
</fieldset> </fieldset>
<fieldset id="destination" class="formbox"> <fieldset id="destination" class="formbox">
@ -55,10 +57,25 @@ export default class Importer {
} }
loadImporters() { loadImporters() {
for (const key of Object.keys(this.map.options.importers || {})) { for (const [name, config] of Object.entries(this.map.options.importers || {})) {
import(`./importers/${key}.js`).then((mod) => { const register = (mod) => {
this.IMPORTERS.push(new mod.Importer(this.map, this.map.options.importers[key])) this.IMPORTERS.push(new mod.Importer(this.map, config))
}) }
// We need to have explicit static paths for Django's collectstatic with hashes.
switch (name) {
case 'geodatamine':
import('./importers/geodatamine.js').then(register)
break
case 'communesfr':
import('./importers/communesfr.js').then(register)
break
case 'overpass':
import('./importers/overpass.js').then(register)
break
case 'datasets':
import('./importers/datasets.js').then(register)
break
}
} }
} }