chore: use datalayer._propertiesIndex directly

This commit is contained in:
David Larlet 2024-07-12 11:51:04 -04:00
parent 238798acc3
commit 85a4fda0ed
No known key found for this signature in database
GPG key ID: 3E2953A359E7E7BD
2 changed files with 6 additions and 22 deletions

View file

@ -20,7 +20,6 @@ export default class TableEditor extends WithTemplate {
this.map = this.datalayer.map this.map = this.datalayer.map
this.contextmenu = new ContextMenu({ className: 'dark' }) this.contextmenu = new ContextMenu({ className: 'dark' })
this.table = this.loadTemplate(TEMPLATE) this.table = this.loadTemplate(TEMPLATE)
this.resetProperties()
if (!this.datalayer.isRemoteLayer()) { if (!this.datalayer.isRemoteLayer()) {
this.elements.body.addEventListener('dblclick', (event) => { this.elements.body.addEventListener('dblclick', (event) => {
if (event.target.closest('[data-property]')) this.editCell(event.target) if (event.target.closest('[data-property]')) this.editCell(event.target)
@ -73,7 +72,7 @@ export default class TableEditor extends WithTemplate {
const th = loadTemplate('<th><input type="checkbox" /></th>') const th = loadTemplate('<th><input type="checkbox" /></th>')
const checkbox = th.firstChild const checkbox = th.firstChild
this.elements.header.appendChild(th) this.elements.header.appendChild(th)
for (const property of this.properties) { for (const property of this.datalayer._propertiesIndex) {
this.elements.header.appendChild( this.elements.header.appendChild(
loadTemplate( loadTemplate(
`<th>${property}<button data-property="${property}" class="flat" aria-label="${translate('Advanced actions')}">…</button></th>` `<th>${property}<button data-property="${property}" class="flat" aria-label="${translate('Advanced actions')}">…</button></th>`
@ -93,7 +92,7 @@ export default class TableEditor extends WithTemplate {
for (const feature of Object.values(this.datalayer._layers)) { for (const feature of Object.values(this.datalayer._layers)) {
if (feature.isFiltered()) continue if (feature.isFiltered()) continue
if (inBbox && !feature.isOnScreen(bounds)) continue if (inBbox && !feature.isOnScreen(bounds)) continue
const tds = this.properties.map( const tds = this.datalayer._propertiesIndex.map(
(prop) => (prop) =>
`<td tabindex="0" data-property="${prop}">${feature.properties[prop] || ''}</td>` `<td tabindex="0" data-property="${prop}">${feature.properties[prop] || ''}</td>`
) )
@ -102,23 +101,6 @@ export default class TableEditor extends WithTemplate {
this.elements.body.innerHTML = html this.elements.body.innerHTML = html
} }
compileProperties() {
this.resetProperties()
if (this.properties.length === 0) this.properties = ['name']
this.properties.sort()
this.field_properties = []
for (let i = 0; i < this.properties.length; i++) {
this.field_properties.push([
`properties.${this.properties[i]}`,
{ wrapper: 'td' },
])
}
}
resetProperties() {
this.properties = this.datalayer._propertiesIndex
}
validateName(name) { validateName(name) {
if (name.includes('.')) { if (name.includes('.')) {
U.Alert.error(translate('Invalide property name: {name}', { name: name })) U.Alert.error(translate('Invalide property name: {name}', { name: name }))
@ -172,7 +154,6 @@ export default class TableEditor extends WithTemplate {
open() { open() {
const id = 'tableeditor:edit' const id = 'tableeditor:edit'
this.compileProperties()
this.renderHeaders() this.renderHeaders()
this.elements.body.innerHTML = '' this.elements.body.innerHTML = ''
this.renderBody() this.renderBody()

View file

@ -412,7 +412,9 @@ U.Layer.Categorized = U.RelativeColorLayer.extend({
if (colorbrewer[colorScheme]?.[this._classes]) { if (colorbrewer[colorScheme]?.[this._classes]) {
this.options.colors = colorbrewer[colorScheme][this._classes] this.options.colors = colorbrewer[colorScheme][this._classes]
} else { } else {
this.options.colors = colorbrewer?.Accent[this._classes] ? colorbrewer?.Accent[this._classes] : U.COLORS this.options.colors = colorbrewer?.Accent[this._classes]
? colorbrewer?.Accent[this._classes]
: U.COLORS
} }
}, },
@ -1045,6 +1047,7 @@ U.DataLayer = L.Evented.extend({
if (name.indexOf('_') === 0) return if (name.indexOf('_') === 0) return
if (L.Util.indexOf(this._propertiesIndex, name) !== -1) return if (L.Util.indexOf(this._propertiesIndex, name) !== -1) return
this._propertiesIndex.push(name) this._propertiesIndex.push(name)
this._propertiesIndex.sort()
}, },
deindexProperty: function (name) { deindexProperty: function (name) {