diff --git a/docs/.vuepress/store/modules/spellFilters.js b/docs/.vuepress/store/modules/spellFilters.js index c9c5dee..7473e02 100644 --- a/docs/.vuepress/store/modules/spellFilters.js +++ b/docs/.vuepress/store/modules/spellFilters.js @@ -70,18 +70,27 @@ export default { updateClasses: ({ commit }, payload) => { commit('setClasses', payload) }, + updateClassesFromList: ({ commit }, payload) => { + commit('setClassesFromList', payload) + }, resetClasses: ({ commit }) => { commit('resetClasses') }, updateLevels: ({ commit }, payload) => { commit('setLevels', payload) }, + updateLevelsFromList: ({ commit }, payload) => { + commit('setLevelsFromList', payload) + }, resetLevels: ({ commit }) => { commit('resetLevels') }, updateSchools: ({ commit }, payload) => { commit('setSchools', payload) }, + updateSchoolsFromLst: ({ commit }, payload) => { + commit('setSchoolsFromList', payload) + }, resetSchools: ({ commit }) => { commit('resetSchools') }, @@ -109,6 +118,16 @@ export default { setClasses: (state, payload) => { state.classes = payload }, + setClassesFromList: (state, payload) => { + for (let i = 0; i < payload.length; i++) { + let idx = state.classes.findIndex(item => { + return item.label == payload[i] + }) + if (idx > -1) { + state.classes[idx].value = true + } + } + }, resetClasses: (state) => { state.classes = [ { label: "Barde", value: false }, @@ -125,6 +144,16 @@ export default { setLevels: (state, payload) => { state.levels = payload }, + setLevelsFromList: (state, payload) => { + for (let i = 0; i < payload.length; i++) { + let idx = state.levels.findIndex(item => { + return item.level == payload[i] + }) + if (idx > -1) { + state.levels[idx].value = true + } + } + }, resetLevels: (state) => { state.levels = [ { level: 0, value: false }, @@ -142,6 +171,16 @@ export default { setSchools: (state, payload) => { state.schools = payload }, + setSchoolsFromList: (state, payload) => { + for (let i = 0; i < payload.length; i++) { + let idx = state.schools.findIndex(item => { + return item.label == payload[i] + }) + if (idx > -1) { + state.schools[idx].value = true + } + } + }, resetSchools: (state) => { state.schools = [ { label: "Abjuration", value: false }, diff --git a/docs/.vuepress/theme/components/SpellFilters.vue b/docs/.vuepress/theme/components/SpellFilters.vue index 3961364..d1843b5 100644 --- a/docs/.vuepress/theme/components/SpellFilters.vue +++ b/docs/.vuepress/theme/components/SpellFilters.vue @@ -44,7 +44,7 @@ Composantes d'incantation
- + mdi-check @@ -57,7 +57,7 @@
- + mdi-check @@ -70,7 +70,7 @@
- + mdi-check @@ -88,7 +88,7 @@ Concentration et Rituel
- + mdi-check @@ -101,7 +101,7 @@
- + mdi-check @@ -122,7 +122,7 @@ diff --git a/docs/.vuepress/theme/util/filterHelpers.js b/docs/.vuepress/theme/util/filterHelpers.js index d4f8e97..823ecf8 100644 --- a/docs/.vuepress/theme/util/filterHelpers.js +++ b/docs/.vuepress/theme/util/filterHelpers.js @@ -7,7 +7,7 @@ export function setUrlParams (urlParam, list) { params = params + list[i] } if (list.length == 0) { - params = "null" + params = '' } history.replaceState(null, null, setUrlParameter(window.location.href, urlParam, params)) } @@ -32,16 +32,16 @@ export function setUrlParameter (url, key, value) { var removeRegex = new RegExp('([\?&])' + key + '=[^&;]+[&;]?'); if (typeof value === 'undefined' || value === null || value === "") { // Remove param if value is empty - params = urlQueryString.replace(removeRegex, "$1"); - params = params.replace(/[&;]$/, ""); + params = urlQueryString.replace(removeRegex, "$1"); + params = params.replace(/[&;]$/, ""); } else if (urlQueryString.match(updateRegex) !== null) { // If param exists already, update it - params = urlQueryString.replace(updateRegex, "$1" + newParam); + params = urlQueryString.replace(updateRegex, "$1" + newParam); } else if (urlQueryString=="") { // If there are no query strings - params = '?' + newParam; + params = '?' + newParam; } else { // Otherwise, add it to end of query string - params = urlQueryString + '&' + newParam; + params = urlQueryString + '&' + newParam; } } @@ -50,3 +50,26 @@ export function setUrlParameter (url, key, value) { return baseUrl + params; } + +export function getUrlParameter (url, parameter) { + parameter = parameter.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); + var regex = new RegExp('[\\?|&]' + parameter + '=([^&#]*)'); + var results = regex.exec('?' + url.split('?')[1]); + return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); +} + +export function setListMutation (param, store, mutation) { + if (param.length > 0 && param[0] !== "" && param[0] !== "null") { + store.commit(mutation, param) + } +} + +export function setBooleanMutation (param, store, mutation) { + if (param !== undefined && param !== '') { + let value = false + if (param == 'true') { + value = true + } + store.commit(mutation, value) + } +}