#2064 fixed index loading

This commit is contained in:
2023-06-20 12:17:01 +02:00
parent 0a29027737
commit 41d39bb088
4 changed files with 205 additions and 129 deletions
+6
View File
@@ -207,6 +207,12 @@ section[role="main-content"]{
@include titleSansRed; @include titleSansRed;
margin: 0; margin: 0;
} }
&>span{
display: block;
margin: 0.5em 0 0;
@include title2black;
font-weight: 600;
}
} }
&#list-corpus{ &#list-corpus{
+67 -43
View File
@@ -3,6 +3,7 @@
<template v-slot:header> <template v-slot:header>
<h1>Lieux</h1> <h1>Lieux</h1>
<span v-if="!items.length" class="loading">Chargement ...</span> <span v-if="!items.length" class="loading">Chargement ...</span>
<span v-else>{{ meta.quantity.quantity }} {{ meta.quantity.unit }}</span>
</template> </template>
<ul v-if="items.length" class="item-list"> <ul v-if="items.length" class="item-list">
@@ -47,6 +48,7 @@
<script> <script>
import { REST } from 'api/rest-axios' import { REST } from 'api/rest-axios'
import qs from 'querystring'
import MainContentLayout from '../components/Layouts/MainContentLayout' import MainContentLayout from '../components/Layouts/MainContentLayout'
import LocorumItem from '../components/Content/LocorumItem' import LocorumItem from '../components/Content/LocorumItem'
@@ -62,57 +64,79 @@ export default {
data: () => ({ data: () => ({
items: [], items: [],
letters: {}, letters: {},
activeLetter: null activeLetter: null,
meta: null,
content: []
}), }),
beforeCreate () { created () {
REST.get(`${window.apipath}/indexLocorum`, {}) this.loadIndex(1, 200)
.then(({ data }) => { },
console.log('index locorum REST: data', data) methods: {
if (data.content.length) { loadIndex (start, count) {
this.items = data.content.sort((a, b) => { console.log('loadIndex', start, count)
let Aletter = a.letter.toLowerCase() // construct params
let Bletter = b.letter.toLowerCase() let params = {
if (Aletter < Bletter) { start: start,
return -1 count: count
} else if (Aletter > Bletter) { }
return 1 let q = qs.stringify(params)
} else { REST.get(`${window.apipath}/indexLocorum?` + q, {})
return 0 .then(({ data }) => {
} console.log('index locorum REST: data', data)
}) this.meta = data.meta
} this.content = this.content.concat(data.content)
for (let i = 0; i < this.items.length; i++) { if (this.content.length < data.meta.quantity.quantity) {
// console.log(typeof this.items[i].letter) this.loadIndex(start + count, count)
if (this.items[i].letter !== '') { } else {
let letter = this.items[i].letter.toLowerCase() this.parseIndex()
console.log(letter)
if (Object.keys(this.letters).indexOf(letter) === -1) {
this.letters[letter] = {
l: letter,
q: 1
}
} else {
this.letters[letter].q += 1
}
} }
} })
console.log(this.letters) .catch((error) => {
this.letters = this.letters.sort((a, b) => { console.warn('Issue with index locorum', error)
if (a.l < b.l) { Promise.reject(error)
})
},
parseIndex () {
console.log('parseIndex', this.content)
if (this.content.length) {
this.items = this.content.sort((a, b) => {
let Aletter = a.letter.toLowerCase()
let Bletter = b.letter.toLowerCase()
if (Aletter < Bletter) {
return -1 return -1
} else if (a.l > b.l) { } else if (Aletter > Bletter) {
return 1 return 1
} else { } else {
return 0 return 0
} }
}) })
}) }
.catch((error) => { for (let i = 0; i < this.items.length; i++) {
console.warn('Issue with index locorum', error) // console.log(typeof this.items[i].letter)
Promise.reject(error) if (this.items[i].letter !== '') {
}) let letter = this.items[i].letter.toLowerCase()
}, console.log(letter)
methods: { if (Object.keys(this.letters).indexOf(letter) === -1) {
this.letters[letter] = {
l: letter,
q: 1
}
} else {
this.letters[letter].q += 1
}
}
}
// console.log(this.letters)
// this.letters = this.letters.sort((a, b) => {
// if (a.l < b.l) {
// return -1
// } else if (a.l > b.l) {
// return 1
// } else {
// return 0
// }
// })
},
onClickLetter (l) { onClickLetter (l) {
this.activeLetter = l this.activeLetter = l
// console.log('activeLetter', this.activeLetter) // console.log('activeLetter', this.activeLetter)
+66 -43
View File
@@ -3,6 +3,7 @@
<template v-slot:header> <template v-slot:header>
<h1>Personnes</h1> <h1>Personnes</h1>
<span v-if="!items.length" class="loading">Chargement ...</span> <span v-if="!items.length" class="loading">Chargement ...</span>
<span v-else>{{ meta.quantity.quantity }} {{ meta.quantity.unit }}</span>
</template> </template>
<ul v-if="items.length" class="item-list"> <ul v-if="items.length" class="item-list">
@@ -47,6 +48,7 @@
<script> <script>
import { REST } from 'api/rest-axios' import { REST } from 'api/rest-axios'
import qs from 'querystring'
import MainContentLayout from '../components/Layouts/MainContentLayout' import MainContentLayout from '../components/Layouts/MainContentLayout'
import NominumItem from '../components/Content/NominumItem' import NominumItem from '../components/Content/NominumItem'
@@ -62,59 +64,80 @@ export default {
data: () => ({ data: () => ({
items: [], items: [],
letters: {}, letters: {},
activeLetter: null activeLetter: null,
meta: null,
content: []
}), }),
beforeCreate () { created () {
// items/gdpLeMaire1685T01BodyFr01.003.016 // items/gdpLeMaire1685T01BodyFr01.003.016
// texts/gdpSauval1724 // texts/gdpSauval1724
REST.get(`${window.apipath}/indexNominum`, {}) this.loadIndex(0, 200)
.then(({ data }) => { },
console.log('index nominum REST: data', data) methods: {
if (data.content.length) { loadIndex (start, count) {
this.items = data.content.sort((a, b) => { console.log('loadIndex', start, count)// construct params
let Aletter = a.letter.toLowerCase() let params = {
let Bletter = b.letter.toLowerCase() start: start,
if (Aletter < Bletter) { count: count
return -1 }
} else if (Aletter > Bletter) { let q = qs.stringify(params)
return 1 REST.get(`${window.apipath}/indexNominum?` + q, { start: start, count: count })
} else { .then(({ data }) => {
return 0 console.log('index nominum REST: data', data)
} this.meta = data.meta
}) this.content = this.content.concat(data.content)
} if (this.content.length < data.meta.quantity.quantity) {
for (let i = 0; i < this.items.length; i++) { this.loadIndex(start + count, count)
// console.log(typeof this.items[i].letter) } else {
if (this.items[i].letter !== '') { this.parseIndex()
let letter = this.items[i].letter.toLowerCase()
console.log(letter)
if (Object.keys(this.letters).indexOf(letter) === -1) {
this.letters[letter] = {
l: letter,
q: 1
}
} else {
this.letters[letter].q += 1
}
} }
} })
console.log(this.letters) .catch((error) => {
this.letters = this.letters.sort((a, b) => { console.warn('Issue with index nominum', error)
if (a.l < b.l) { Promise.reject(error)
})
},
parseIndex () {
console.log('parseIndex', this.content)
if (this.content.length) {
this.items = this.content.sort((a, b) => {
let Aletter = a.letter.toLowerCase()
let Bletter = b.letter.toLowerCase()
if (Aletter < Bletter) {
return -1 return -1
} else if (a.l > b.l) { } else if (Aletter > Bletter) {
return 1 return 1
} else { } else {
return 0 return 0
} }
}) })
}) }
.catch((error) => { for (let i = 0; i < this.items.length; i++) {
console.warn('Issue with index nominum', error) // console.log(typeof this.items[i].letter)
Promise.reject(error) if (this.items[i].letter !== '') {
}) let letter = this.items[i].letter.toLowerCase()
}, console.log(letter)
methods: { if (Object.keys(this.letters).indexOf(letter) === -1) {
this.letters[letter] = {
l: letter,
q: 1
}
} else {
this.letters[letter].q += 1
}
}
}
// console.log('this.letters', this.letters)
// this.letters = this.letters.sort((a, b) => {
// if (a.l < b.l) {
// return -1
// } else if (a.l > b.l) {
// return 1
// } else {
// return 0
// }
// })
},
onClickLetter (l) { onClickLetter (l) {
this.activeLetter = l this.activeLetter = l
// console.log('activeLetter', this.activeLetter) // console.log('activeLetter', this.activeLetter)
+66 -43
View File
@@ -3,6 +3,7 @@
<template v-slot:header> <template v-slot:header>
<h1>Œuvres</h1> <h1>Œuvres</h1>
<span v-if="!items.length" class="loading">Chargement ...</span> <span v-if="!items.length" class="loading">Chargement ...</span>
<span v-else>{{ meta.quantity.quantity }} {{ meta.quantity.unit }}</span>
</template> </template>
<ul v-if="items.length" class="item-list"> <ul v-if="items.length" class="item-list">
@@ -49,6 +50,7 @@
<script> <script>
import { REST } from 'api/rest-axios' import { REST } from 'api/rest-axios'
import qs from 'querystring'
import MainContentLayout from '../components/Layouts/MainContentLayout' import MainContentLayout from '../components/Layouts/MainContentLayout'
import OperumItem from '../components/Content/OperumItem' import OperumItem from '../components/Content/OperumItem'
@@ -64,57 +66,78 @@ export default {
data: () => ({ data: () => ({
items: [], items: [],
letters: {}, letters: {},
activeLetter: null activeLetter: null,
meta: null,
content: []
}), }),
beforeCreate () { created () {
REST.get(`${window.apipath}/indexOperum`, {}) this.loadIndex(1, 200)
.then(({ data }) => { },
console.log('index operum REST: data', data) methods: {
if (data.content.length) { loadIndex (start, count) {
this.items = data.content.sort((a, b) => { console.log('loadIndex', start, count)
let Aletter = a.letter.toLowerCase() // construct params
let Bletter = b.letter.toLowerCase() let params = {
if (Aletter < Bletter) { start: start,
return -1 count: count
} else if (Aletter > Bletter) { }
return 1 let q = qs.stringify(params)
} else { REST.get(`${window.apipath}/indexOperum?` + q, {})
return 0 .then(({ data }) => {
} console.log('index operum REST: data', data)
}) this.meta = data.meta
} this.content = this.content.concat(data.content)
for (let i = 0; i < this.items.length; i++) { if (this.content.length < data.meta.quantity.quantity) {
// console.log(typeof this.items[i].letter) this.loadIndex(start + count, count)
if (this.items[i].letter !== '') { } else {
let letter = this.items[i].letter.toLowerCase() this.parseIndex()
console.log(letter)
if (Object.keys(this.letters).indexOf(letter) === -1) {
this.letters[letter] = {
l: letter,
q: 1
}
} else {
this.letters[letter].q += 1
}
} }
} })
console.log(this.letters) .catch((error) => {
this.letters = this.letters.sort((a, b) => { console.warn('Issue with index operum', error)
if (a.l < b.l) { Promise.reject(error)
})
},
parseIndex () {
if (this.content.length) {
this.items = this.content.sort((a, b) => {
let Aletter = a.letter.toLowerCase()
let Bletter = b.letter.toLowerCase()
if (Aletter < Bletter) {
return -1 return -1
} else if (a.l > b.l) { } else if (Aletter > Bletter) {
return 1 return 1
} else { } else {
return 0 return 0
} }
}) })
}) }
.catch((error) => { for (let i = 0; i < this.items.length; i++) {
console.warn('Issue with index operum', error) // console.log(typeof this.items[i].letter)
Promise.reject(error) if (this.items[i].letter !== '') {
}) let letter = this.items[i].letter.toLowerCase()
}, console.log(letter)
methods: { if (Object.keys(this.letters).indexOf(letter) === -1) {
this.letters[letter] = {
l: letter,
q: 1
}
} else {
this.letters[letter].q += 1
}
}
}
// console.log(this.letters)
// this.letters = this.letters.sort((a, b) => {
// if (a.l < b.l) {
// return -1
// } else if (a.l > b.l) {
// return 1
// } else {
// return 0
// }
// })
},
onClickLetter (l) { onClickLetter (l) {
this.activeLetter = l this.activeLetter = l
// console.log('activeLetter', this.activeLetter) // console.log('activeLetter', this.activeLetter)