Skip to content
Snippets Groups Projects

Automatic systems list

Merged Remi PLANEL requested to merge automatic-systems-list into dev
13 files
+ 100
18
Compare changes
  • Side-by-side
  • Inline
Files
13
<script setup lang="ts">
<script setup lang="ts">
const props = defineProps<{
const props = defineProps<{
systems: any;
headers: Array<Object>
 
systems: Array<Object>
 
}>();
}>();
const itemsPerParge = ref(25)
const itemsPerParge = ref(25)
const search = ref('')
const search = ref('')
const sortBy = ref([{ key: 'system', order: 'asc' }])
const sortBy = ref([{ key: 'system', order: 'asc' }])
const headers = ref([{
title: "Systems",
key: "system"
}, { title: "Articles", key: "dois" }
])
 
function filterOnlyCapsText(value, query, item) {
 
if (value != null && query != null) {
 
if (typeof value === 'string') {
 
return value.toString().toLowerCase().indexOf(query.toLowerCase()) !== -1
 
}
 
if (typeof value == 'object') {
 
if (value?.name) {
 
return value.name.toString().toLowerCase().indexOf(query.toLowerCase()) !== -1
 
}
 
}
 
}
 
return false
 
}
</script>
</script>
<template>
<template>
<v-card flat color="transparent" class="my-5">
<v-card flat color="transparent" class="my-5">
<v-toolbar>
<v-toolbar>
<v-toolbar-title>Defense Systems</v-toolbar-title>
<v-toolbar-title>Defense Systems</v-toolbar-title>
<v-text-field v-model="search" density="compact" variant="underlined" append-inner-icon="mdi-magnify"
<v-text-field v-model="search" density="compact" variant="underlined" prepend-inner-icon="mdi-magnify"
label="Search" single-line hide-details class="mx-2"></v-text-field>
label="Search for defense systems" single-line hide-details class="mx-2" clearable></v-text-field>
</v-toolbar>
</v-toolbar>
<v-data-table :items-per-page="itemsPerParge" v-model:sort-by="sortBy" :headers="headers" :items="props.systems"
<v-data-table :items-per-page="itemsPerParge" v-model:sort-by="sortBy" :headers="props.headers"
:search="search">
:custom-filter="filterOnlyCapsText" :items="props.systems" :search="search">
<template #[`item.system`]="{ item }">
<template #[`item.system`]="{ item }">
<v-chip variant="text" link :to="`/defense-systems/${item.columns.system.toLowerCase()}`">{{
<v-chip variant="text" link :to="`${item.columns.system.path}`">{{
item.columns.system }}</v-chip>
item.columns.system.name }}</v-chip>
</template>
</template>
<template #[`item.dois`]="{ item }">
<template #[`item.doi`]="{ item }">
<ArticleDoiList :items="item.columns.dois" :divider="false" />
<ArticleDoiList v-if="item.columns?.doi" :items="[item.columns.doi]" :divider="false" />
</template>
</template>
</v-data-table>
</v-data-table>
</v-card>
</v-card>
Loading