diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/App.vue | 2 | ||||
| -rw-r--r-- | src/components/SearchModal.vue | 7 | ||||
| -rw-r--r-- | src/components/SettingsModal.vue | 20 | ||||
| -rw-r--r-- | src/components/TimeLine.vue | 3 |
4 files changed, 25 insertions, 7 deletions
diff --git a/src/App.vue b/src/App.vue index 70cd390..8ca2f95 100644 --- a/src/App.vue +++ b/src/App.vue @@ -230,6 +230,8 @@ async function onEventDisplay( } lastQueriedRange = [firstDate, lastDate]; let urlParams = new URLSearchParams({ + // Note: Intentionally not filtering by event categories (would need category-sensitive + // unit count data to determine when enough events have been obtained) type: 'events', range: `${firstDate}.${lastDate}`, scale: String(SCALES[scaleIdx]), diff --git a/src/components/SearchModal.vue b/src/components/SearchModal.vue index 65d2496..96d23bd 100644 --- a/src/components/SearchModal.vue +++ b/src/components/SearchModal.vue @@ -28,7 +28,7 @@ </template> <script setup lang="ts"> -import {ref, computed, onMounted, onUnmounted, PropType} from 'vue'; +import {ref, computed, onMounted, PropType} from 'vue'; import SearchIcon from './icon/SearchIcon.vue'; import InfoIcon from './icon/InfoIcon.vue'; import {HistEvent, queryServer, EventInfoJson, jsonToEventInfo, SuggResponseJson} from '../lib'; @@ -93,6 +93,11 @@ async function onInput(){ input: input.value, limit: String(store.searchSuggLimit), }); + // Check if any event categories are disabled + if (Object.values(store.ctgs).some((b: boolean) => !b)){ + let visibleCtgs = Object.entries(store.ctgs).filter(([, enabled]) => enabled).map(([ctg, ]) => ctg); + urlParams.append('ctgs', visibleCtgs.join('.')); + } // Code for querying server pendingReqParams.value = urlParams; pendingReqInput.value = input.value; diff --git a/src/components/SettingsModal.vue b/src/components/SettingsModal.vue index 1ccea2a..21ac7b8 100644 --- a/src/components/SettingsModal.vue +++ b/src/components/SettingsModal.vue @@ -9,18 +9,18 @@ <h2 class="font-bold md:text-xl text-center pt-1 md:pt-2 md:pb-1">Categories</h2> <ul class="px-2 grid grid-cols-3"> <!-- Row 1 --> - <li> <label> <input type="checkbox" v-model="store.ctgs.event" + <li> <label> <input type="checkbox" v-model="store.ctgs.event" :disabled="lastCtg == 'event'" @change="onSettingChg('ctgs.event')"/> Event </label> </li> - <li> <label> <input type="checkbox" v-model="store.ctgs.person" + <li> <label> <input type="checkbox" v-model="store.ctgs.person" :disabled="lastCtg == 'person'" @change="onSettingChg('ctgs.person')"/> Person </label> </li> - <li> <label> <input type="checkbox" v-model="store.ctgs.work" + <li> <label> <input type="checkbox" v-model="store.ctgs.work" :disabled="lastCtg == 'work'" @change="onSettingChg('ctgs.work')"/> Work </label> </li> <!-- Row 2 --> - <li> <label> <input type="checkbox" v-model="store.ctgs.place" + <li> <label> <input type="checkbox" v-model="store.ctgs.place" :disabled="lastCtg == 'place'" @change="onSettingChg('ctgs.place')"/> Place </label> </li> - <li> <label> <input type="checkbox" v-model="store.ctgs.organism" + <li> <label> <input type="checkbox" v-model="store.ctgs.organism" :disabled="lastCtg == 'organism'" @change="onSettingChg('ctgs.organism')"/> Organism </label> </li> - <li> <label> <input type="checkbox" v-model="store.ctgs.discovery" + <li> <label> <input type="checkbox" v-model="store.ctgs.discovery" :disabled="lastCtg == 'discovery'" @change="onSettingChg('ctgs.discovery')"/> Discovery </label> </li> </ul> </div> @@ -88,6 +88,14 @@ const emit = defineEmits(['close']); // Settings change handling const saved = ref(false); // Set to true after a setting is saved +const lastCtg = computed(() => { // When all but one category is disabled, names the remaining category + let enabledCtgs = Object.entries(store.ctgs).filter(([, enabled]) => enabled).map(([ctg, ]) => ctg); + if (enabledCtgs.length == 1){ + return enabledCtgs[0]; + } else { + return null; + } +}); function onSettingChg(option: string){ store.save(option); // Make 'Saved' indicator appear/animate diff --git a/src/components/TimeLine.vue b/src/components/TimeLine.vue index 13589d2..1583aef 100644 --- a/src/components/TimeLine.vue +++ b/src/components/TimeLine.vue @@ -444,6 +444,9 @@ const idToEvent = computed(() => { // Maps visible event IDs to HistEvents if (!event.start.isEarlier(lastDate.value)){ break; } + if ((store.ctgs as {[ctg: string]: boolean})[event.ctg] == false){ + continue; + } map.set(event.id, event); } return map; |
