Skip to content
Snippets Groups Projects

Resolve "Loading animation for timetable object select on left side of timetables"

1 file
+ 1
1
Compare changes
  • Side-by-side
  • Inline
<script>
<script>
import timetableTypes from "./timetableTypes";
import timetableTypes from "./timetableTypes";
 
import Mascot from "aleksis.core/components/generic/mascot/Mascot.vue";
export default {
export default {
name: "SelectTimetable",
name: "SelectTimetable",
 
components: {
 
Mascot,
 
},
props: {
props: {
value: {
value: {
type: Object,
type: Object,
@@ -13,6 +17,16 @@ export default {
@@ -13,6 +17,16 @@ export default {
type: Array,
type: Array,
required: true,
required: true,
},
},
 
loading: {
 
type: Boolean,
 
required: false,
 
default: false,
 
},
 
limitHeight: {
 
default: false,
 
required: false,
 
type: Boolean,
 
},
},
},
data() {
data() {
return {
return {
@@ -49,6 +63,7 @@ export default {
@@ -49,6 +63,7 @@ export default {
<!-- Search field for timetables -->
<!-- Search field for timetables -->
<v-text-field
<v-text-field
search
search
 
dense
filled
filled
rounded
rounded
clearable
clearable
@@ -57,11 +72,11 @@ export default {
@@ -57,11 +72,11 @@ export default {
:placeholder="$t('chronos.timetable.search')"
:placeholder="$t('chronos.timetable.search')"
prepend-inner-icon="mdi-magnify"
prepend-inner-icon="mdi-magnify"
hide-details="auto"
hide-details="auto"
class="mb-2"
class="mb-3"
/>
/>
<!-- Filter by timetable types -->
<!-- Filter by timetable types -->
<v-btn-toggle v-model="selectedType" dense block class="d-flex">
<v-btn-toggle v-model="selectedType" dense block class="d-flex" mandatory>
<v-btn
<v-btn
v-for="type in types"
v-for="type in types"
:key="type.id"
:key="type.id"
@@ -80,6 +95,10 @@ export default {
@@ -80,6 +95,10 @@ export default {
:search="search"
:search="search"
single-expand
single-expand
disable-pagination
disable-pagination
 
hide-default-footer
 
:loading="loading"
 
:style="{ height: limitHeight ? '600px' : null }"
 
:class="{ 'overflow-auto': limitHeight }"
>
>
<template #default="{ items, isExpanded, expand }">
<template #default="{ items, isExpanded, expand }">
<v-list class="scrollable-list">
<v-list class="scrollable-list">
@@ -107,9 +126,23 @@ export default {
@@ -107,9 +126,23 @@ export default {
</v-list>
</v-list>
</template>
</template>
<template #loading>
<template #loading>
<v-skeleton-loader
<v-skeleton-loader type="list-item-avatar@10" />
type="list-item-avatar,list-item-avatar,list-item-avatar"
</template>
/>
<template #no-results>
 
<div class="d-flex flex-column align-center justify-center">
 
<mascot type="searching" width="33%" min-width="250px" />
 
<div class="mb-2">
 
{{ $t("$vuetify.dataIterator.noResultsText") }}
 
</div>
 
</div>
 
</template>
 
<template #no-data>
 
<div class="d-flex flex-column align-center justify-center">
 
<mascot type="ready_for_items" width="33%" min-width="250px" />
 
<div class="mb-2">
 
{{ $t("chronos.timetable.no_timetables_in_term") }}
 
</div>
 
</div>
</template>
</template>
</v-data-iterator>
</v-data-iterator>
</div>
</div>
Loading