mirror of
https://github.com/em-squared/5e-drs.git
synced 2025-10-30 13:14:20 +00:00
amélioration du filtre des monstres par indice de dangerosité + crédits + corrections diverses
This commit is contained in:
parent
414f02087c
commit
830b468ae2
15 changed files with 125 additions and 53 deletions
|
|
@ -90,7 +90,7 @@ export default new Vuex.Store({
|
|||
},
|
||||
setIsThemeDark: (state, payload) => {
|
||||
state.isThemeDark = payload
|
||||
console.log(payload)
|
||||
// console.log(payload)
|
||||
Cookies.set('heros-et-dragons-is-dark', state.isThemeDark)
|
||||
},
|
||||
setIsOpenAboutDialog: (state, payload) => {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ export default {
|
|||
|
||||
state: {
|
||||
search: '',
|
||||
challengeRange: [0, 30],
|
||||
challengeRange: [0, 33],
|
||||
types: [
|
||||
{ label: "Aberration", value: false },
|
||||
{ label: "Bête", value: false },
|
||||
|
|
@ -122,7 +122,7 @@ export default {
|
|||
state.challengeRange = payload
|
||||
},
|
||||
resetChallengeRange: (state, payload) => {
|
||||
state.challengeRange = [0, 30]
|
||||
state.challengeRange = [0, 33]
|
||||
},
|
||||
setTypes: (state, payload) => {
|
||||
state.types = payload
|
||||
|
|
|
|||
|
|
@ -20,12 +20,16 @@
|
|||
class="mt-6"
|
||||
v-model="challengeRange"
|
||||
min="0"
|
||||
max="30"
|
||||
:max="challenges.length-1"
|
||||
thumb-size="24"
|
||||
thumb-label="always"
|
||||
hide-details
|
||||
@end="onEndChallengeRange"
|
||||
></v-range-slider>
|
||||
>
|
||||
<template v-slot:thumb-label="{ value }">
|
||||
{{ challenges[value].label }}
|
||||
</template>
|
||||
</v-range-slider>
|
||||
</v-expansion-panel-content>
|
||||
</v-expansion-panel>
|
||||
|
||||
|
|
@ -69,13 +73,15 @@
|
|||
<script>
|
||||
// import { mapMutations } from 'vuex'
|
||||
import { setUrlParams, getUrlParameter, setBooleanMutation, setListMutation } from '@theme/util/filterHelpers'
|
||||
import { CHALLENGES } from '../../data/monsters'
|
||||
|
||||
export default {
|
||||
name: 'MonsterFilters',
|
||||
|
||||
data () {
|
||||
return {
|
||||
panels: []
|
||||
panels: [],
|
||||
challenges: CHALLENGES
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -138,7 +144,14 @@ export default {
|
|||
methods: {
|
||||
|
||||
onEndChallengeRange () {
|
||||
setUrlParams('trancheID', this.challengeRange)
|
||||
if (this.challengeRange[0] > this.challengeRange[1]) {
|
||||
let min = range[1]
|
||||
let max = range[0]
|
||||
this.challengeRange[0] = min
|
||||
this.challengeRange[1] = max
|
||||
}
|
||||
let range = [Number(CHALLENGES[this.challengeRange[0]].value), Number(CHALLENGES[this.challengeRange[1]].value)]
|
||||
setUrlParams('trancheID', range)
|
||||
},
|
||||
|
||||
switchType () {
|
||||
|
|
@ -218,8 +231,21 @@ export default {
|
|||
let selectedEnvironments = getUrlParameter(window.location.href, "environnements").split(",")
|
||||
let selectedDungeonTypes = getUrlParameter(window.location.href, "donjons").split(",")
|
||||
|
||||
if (challengeRange && challengeRange[0] != '') {
|
||||
this.$store.commit('monsterFilters/setChallengeRange', challengeRange)
|
||||
if (challengeRange && challengeRange[0] != '' && challengeRange[1] != '') {
|
||||
let convertedChallengeRange = []
|
||||
let min = CHALLENGES.findIndex(e => e.value == challengeRange[0])
|
||||
if (min !== -1) {
|
||||
convertedChallengeRange[0] = Number(min)
|
||||
} else {
|
||||
convertedChallengeRange[0] = Number(0)
|
||||
}
|
||||
let max = CHALLENGES.findIndex(e => e.value == challengeRange[1])
|
||||
if (max !== -1) {
|
||||
convertedChallengeRange[1] = Number(max)
|
||||
} else {
|
||||
convertedChallengeRange[1] = Number(CHALLENGES.length - 1)
|
||||
}
|
||||
this.$store.commit('monsterFilters/setChallengeRange', convertedChallengeRange)
|
||||
}
|
||||
setListMutation(selectedTypes, this.$store, 'monsterFilters/setTypesFromList')
|
||||
setListMutation(selectedSizes, this.$store, 'monsterFilters/setSizesFromList')
|
||||
|
|
|
|||
|
|
@ -106,17 +106,17 @@
|
|||
</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<v-list-item v-if="$site.themeConfig.kofi" link :href="$site.themeConfig.kofi" target="_blank">
|
||||
<v-list-item v-if="$site.themeConfig.kofi" @click.stop="toggleSupportDialog">
|
||||
<v-list-item-icon>
|
||||
<v-icon>mdi-glass-mug-variant</v-icon>
|
||||
<v-icon color="#BDB76B">mdi-glass-mug-variant</v-icon>
|
||||
</v-list-item-icon>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
Encouragez le développement
|
||||
Jettez un sou au développeur
|
||||
</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<v-list-item @click.stop="toggleAboutDialog">
|
||||
<v-list-item link :to="{path: '/a-propos/'}" color="accent">
|
||||
<v-list-item-icon>
|
||||
<v-icon>mdi-information</v-icon>
|
||||
</v-list-item-icon>
|
||||
|
|
@ -146,16 +146,19 @@
|
|||
<v-card-title class="headline">À propos de H&D DRS</v-card-title>
|
||||
|
||||
<v-card-text>
|
||||
<p>Ce site a été développé par <strong>Maxime Moraine</strong> alias <strong>Em-squared</strong>.</p>
|
||||
<p>Les sources de ce site sont disponibles sur <a :href="$site.themeConfig.repository" target="_blank">GitHub</a> sous Licence <a href="https://github.com/em-squared/heros-et-dragons-drs/blob/master/LICENSE" target="_blank">GPLv3</a>.</p>
|
||||
<p class="title-2">
|
||||
<strong>La personne derrière ce site</strong><br>
|
||||
Ce site a été développé par <strong>Maxime Moraine</strong> alias <strong>Em-squared</strong>.<br>
|
||||
Développeur web passionné de jeux de rôle, j'aime mettre l'un au service de l'autre.<br>
|
||||
Les sources de ce site sont disponibles sur <a :href="$site.themeConfig.repository" target="_blank">GitHub</a> sous Licence <a href="https://github.com/em-squared/heros-et-dragons-drs/blob/master/LICENSE" target="_blank">GPLv3</a>.
|
||||
</p>
|
||||
<p>Vous souhaitez participer aux frais d'hébergement ou m'encourager ?</p>
|
||||
<p class="text-center">
|
||||
<v-btn depressed dark color="#BDB76B" link :href="$site.themeConfig.kofi" target="_blank"><v-icon class="mr-2">mdi-glass-mug-variant</v-icon>Jettez un sou au développeur</v-btn>
|
||||
</p>
|
||||
<p><strong><em>Héros & Dragons</em></strong> est un jeu de rôle basé sur les mécaniques de l’<a href="/licence-ogl">OGL5</a> et développé par les talents de la rédaction de <em><a href="https://www.black-book-editions.fr/catalogue.php?id=40" target="_blank">Casus Belli</a></em>, le magazine de référence des jeux de rôle.</p>
|
||||
<p>Les textes de cette documentation appartiennent à <a href="https://www.black-book-editions.fr/catalogue.php?id=365" target="_blank">Black Book Éditions</a>.</p>
|
||||
<p>Casus Belli et Black Book Éditions sont des marques déposées par <a href="https://www.black-book-editions.fr/" target="_blank">Black Book Éditions</a>. Tous droits réservés.</p>
|
||||
<v-row v-if="$site.themeConfig.kofi">
|
||||
<v-col class="text-center">
|
||||
<v-btn depressed dark color="#29abe0" link :href="$site.themeConfig.kofi" target="_blank"><v-icon class="mr-2">mdi-coffee</v-icon>Ko-fi</v-btn>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-card-text>
|
||||
|
||||
<v-card-actions>
|
||||
|
|
@ -166,21 +169,22 @@
|
|||
|
||||
<v-dialog v-model="isOpenSupportDialog" @click:outside="toggleSupportDialog" max-width="600">
|
||||
<v-card>
|
||||
<v-card-title class="headline">Encouragez le développement</v-card-title>
|
||||
<v-card-title class="headline">
|
||||
<span>Jettez un sou au développeur</span>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="primary" icon @click="toggleSupportDialog"><v-icon>mdi-close</v-icon></v-btn>
|
||||
</v-card-title>
|
||||
|
||||
<v-card-text>
|
||||
<p>Vous souhaitez participer aux frais d'hébergement ? Ou vous voulez encourager le développement de la plateforme ?</p>
|
||||
<p>Votre participation sera appréciée !</p>
|
||||
<v-row v-if="$site.themeConfig.kofi">
|
||||
<v-col class="text-center">
|
||||
<v-btn depressed dark color="#29abe0" link :href="$site.themeConfig.kofi" target="_blank"><v-icon class="mr-2">mdi-coffee</v-icon>Ko-fi</v-btn>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<p><strong>Pourquoi donner ?</strong></p>
|
||||
<p>Soyons clairs : l'accès au site est <strong>gratuit</strong>. Pour <strong>tout le monde</strong>. Pour <strong>toujours</strong>. Et <strong>sans publicité</strong>. Aucun revenu n'est donc généré par son biais. En revanche, la mise en ligne d'un site web a un coût.</p>
|
||||
<p>L'objectif est donc de couvrir ce coût.</p>
|
||||
<p>Vous pouvez participer aux frais d'hébergement et permettre à tout le monde et à vous-même d'en profiter ou m'encourager au développement parce que vous pensez que mon travail le mérite.</p>
|
||||
<p>C'est <strong>vous</strong> qui décidez.</p>
|
||||
<p class="text-center">
|
||||
<v-btn depressed dark color="#BDB76B" link :href="$site.themeConfig.kofi" target="_blank"><v-icon class="mr-2">mdi-glass-mug-variant</v-icon>Jettez un sou au développeur</v-btn>
|
||||
</p>
|
||||
</v-card-text>
|
||||
|
||||
<v-card-actions>
|
||||
<v-btn color="primary" text @click="toggleSupportDialog">Fermer</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@
|
|||
<v-btn class="hidden-sm-and-down" @click.stop="setIsThemeDark" icon>
|
||||
<v-icon v-html="$vuetify.theme.dark ? 'mdi-brightness-4' : 'mdi-brightness-7'"></v-icon>
|
||||
</v-btn>
|
||||
<v-btn class="hidden-sm-and-down" @click.stop="toggleAboutDialog" icon>
|
||||
<v-btn class="hidden-sm-and-down" link :to="{path: '/a-propos/'}" icon>
|
||||
<v-icon>mdi-information</v-icon>
|
||||
</v-btn>
|
||||
<v-btn class="hidden-sm-and-down" v-if="$site.themeConfig.kofi" link :href="$site.themeConfig.kofi" target="_blank" icon>
|
||||
<v-icon>mdi-glass-mug-variant</v-icon>
|
||||
<v-btn class="hidden-sm-and-down" v-if="$site.themeConfig.kofi" @click.stop="toggleSupportDialog" icon>
|
||||
<v-icon color="#BDB76B">mdi-glass-mug-variant</v-icon>
|
||||
</v-btn>
|
||||
<v-btn class="ml-5" @click.stop="setRightDrawer" icon v-if="hasRightDrawer">
|
||||
<v-icon>{{ rightDrawerIcon }}</v-icon>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ export default {
|
|||
}
|
||||
})
|
||||
const { pages } = this.$site
|
||||
console.log(pages)
|
||||
// console.log(pages)
|
||||
this.index.add(pages)
|
||||
},
|
||||
|
||||
|
|
@ -71,7 +71,7 @@ export default {
|
|||
encode: 'extra'
|
||||
},
|
||||
(result) => {
|
||||
console.log(result)
|
||||
// console.log(result)
|
||||
this.items = result
|
||||
this.loading = false
|
||||
})
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ export default {
|
|||
|
||||
mounted () {
|
||||
this.tooltipObject = this.tooltips[this.t]
|
||||
console.log(this.tooltipObject)
|
||||
// console.log(this.tooltipObject)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ export default {
|
|||
},
|
||||
|
||||
changePage (page) {
|
||||
console.log(page)
|
||||
// console.log(page)
|
||||
setUrlParams("page", [page])
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@
|
|||
<h1>Bestiaire</h1>
|
||||
|
||||
<div class="active-filters mb-2">
|
||||
<div class="challengeRange-filter" v-if="Number(challengeRange[0]) >= 0 && Number(challengeRange[1]) <= 30">
|
||||
<strong>Indice de dangerosité</strong> entre {{ challengeRange[0] }} et {{ challengeRange[1]}}
|
||||
<div class="challengeRange-filter" v-if="Number(challengeRange[0]) >= 0 && Number(challengeRange[1]) <= challenges.length-1">
|
||||
<strong>Indice de dangerosité</strong> entre {{ challenges[challengeRange[0]].label }} et {{ challenges[challengeRange[1]].label }}
|
||||
</div>
|
||||
<div class="types-filter mb-1" v-if="selectedTypes.length > 0">
|
||||
<strong>Types</strong> : <v-chip class="mr-1" v-for="(type, idx) in selectedTypes">{{ type }}</v-chip>
|
||||
|
|
@ -92,6 +92,7 @@ import { displayChallenge } from '@theme/util/monsterHelpers'
|
|||
import { setUrlParams, getUrlParameter } from '@theme/util/filterHelpers'
|
||||
import Monster from '@theme/components/Monster'
|
||||
import MyMonstersButton from '@theme/global-components/MyMonstersButton'
|
||||
import { CHALLENGES } from '../../data/monsters'
|
||||
|
||||
export default {
|
||||
components: { Breadcrumb, Monster, MyMonstersButton },
|
||||
|
|
@ -118,7 +119,8 @@ export default {
|
|||
{ text: "Sous-type", align: 'start', sortable: false, value: 'frontmatter.subtype' },
|
||||
{ text: "Environnements", align: 'start', sortable: false, value: 'frontmatter.environments' },
|
||||
{ text: "Type de donjons", align: 'start', sortable: false, value: 'frontmatter.dungeonTypes' },
|
||||
]
|
||||
],
|
||||
challenges: CHALLENGES
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -183,7 +185,7 @@ export default {
|
|||
maxID = this.challengeRange[0]
|
||||
}
|
||||
results = results.filter(item => {
|
||||
return item.frontmatter.challenge >= minID && item.frontmatter.challenge <= maxID
|
||||
return item.frontmatter.challenge >= Number(CHALLENGES[minID].value) && item.frontmatter.challenge <= Number(CHALLENGES[maxID].value)
|
||||
})
|
||||
|
||||
// Filter types
|
||||
|
|
@ -287,7 +289,7 @@ export default {
|
|||
},
|
||||
|
||||
changePage (page) {
|
||||
console.log(page)
|
||||
// console.log(page)
|
||||
setUrlParams("page", [page])
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -302,7 +302,7 @@ export default {
|
|||
},
|
||||
|
||||
changePage (page) {
|
||||
console.log(page)
|
||||
// console.log(page)
|
||||
setUrlParams("page", [page])
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ export function resolvePage (pages, rawPath, base) {
|
|||
})
|
||||
}
|
||||
}
|
||||
console.error(`[vuepress] No matching page found for sidebar item "${rawPath}"`)
|
||||
// console.error(`[vuepress] No matching page found for sidebar item "${rawPath}"`)
|
||||
return {}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue