summaryrefslogtreecommitdiffstats
path: root/webapp/src/components/GroupModuleDialog.vue
diff options
context:
space:
mode:
authorUdo Walter2019-03-03 02:10:07 +0100
committerUdo Walter2019-03-03 02:10:07 +0100
commit20343840303acc60deaeadbf6187a5497482a7a3 (patch)
tree2a6369ff693a0679ee1513b47f3b62e3dc8f494b /webapp/src/components/GroupModuleDialog.vue
parent[webapp/datatable] new loading bar (diff)
downloadbas-20343840303acc60deaeadbf6187a5497482a7a3.tar.gz
bas-20343840303acc60deaeadbf6187a5497482a7a3.tar.xz
bas-20343840303acc60deaeadbf6187a5497482a7a3.zip
[webapp] small bugfixes + eslint fixes + color fix
Diffstat (limited to 'webapp/src/components/GroupModuleDialog.vue')
-rw-r--r--webapp/src/components/GroupModuleDialog.vue46
1 files changed, 32 insertions, 14 deletions
diff --git a/webapp/src/components/GroupModuleDialog.vue b/webapp/src/components/GroupModuleDialog.vue
index ffe4ef1..d322b5e 100644
--- a/webapp/src/components/GroupModuleDialog.vue
+++ b/webapp/src/components/GroupModuleDialog.vue
@@ -107,20 +107,30 @@
<v-icon left>create</v-icon>{{ $t('new') }}
</v-btn>
</v-card-title>
-
- <v-card-text v-if="action === 'add' || action === 'select'" class="table-container">
- <data-table ref="datatable" v-model="selected" :headers="headers" :items="items" :row-count="$vuetify.breakpoint.smAndDown ? -1 : undefined"></data-table>
- </v-card-text>
- <v-card-text v-else-if="action === 'remove' || action === 'delete'" class="selected-list">
- <v-checkbox
- class="delete-checkbox"
- v-if="dialog.info.action === 'remove'"
- :label="$tc('deletePermanently.' + dialog.info.type, selectedCount)"
- color="error"
- v-model="deleteInsteadOfRemove"
- hide-details
- ></v-checkbox>
- <div v-for="item in dialog.info.selected" class="grey--text" :key="item.id">[{{ item.id }}] {{ item.name }}</div>
+ <v-card-text ref="cardtext" class="table-container">
+ <data-table v-if="action === 'add' || action === 'select'" ref="datatable"
+ v-model="selected"
+ :headers="headers"
+ :items="items"
+ :row-count="$vuetify.breakpoint.smAndDown ? -1 : undefined"
+ ></data-table>
+ <div v-else-if="action === 'remove' || action === 'delete'" class="selected-list">
+ <v-checkbox
+ class="delete-checkbox"
+ v-if="dialog.info.action === 'remove'"
+ :label="$tc('deletePermanently.' + dialog.info.type, selectedCount)"
+ color="error"
+ v-model="deleteInsteadOfRemove"
+ hide-details
+ ></v-checkbox>
+ <RecycleScroller
+ :items="dialog.info.selected"
+ :item-size="24"
+ page-mode
+ >
+ <div slot-scope="{ item, index }">[{{ item.id }}] {{ item.name }}</div>
+ </RecycleScroller>
+ </div>
</v-card-text>
<v-divider></v-divider>
@@ -135,6 +145,7 @@
</template>
<script>
+import ScrollParent from 'scrollparent'
import DataTable from '@/components/DataTable'
import { mapState, mapMutations } from 'vuex'
@@ -186,12 +197,18 @@ export default {
},
dialogAction () {
return this.dialog.info ? this.dialog.info.action : undefined
+ },
+ dialogType () {
+ return this.dialog.info ? this.dialog.info.type : undefined
}
},
watch: {
dialogAction () {
if (this.$refs.datatable) this.$refs.datatable.resetData()
},
+ dialogType () {
+ if (this.$refs.datatable) this.$refs.datatable.resetSearch()
+ },
dialog: {
deep: true,
handler () {
@@ -199,6 +216,7 @@ export default {
this.deleteInsteadOfRemove = false
if (this.dialog.info.action === 'select') this.selected = this.dialog.info.selected
else this.selected = []
+ if (this.$refs.cardtext) this.$nextTick(() => this.$refs.cardtext.dispatchEvent(new Event('scroll')))
}
}
}