summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
authorUdo Walter2019-01-15 06:06:55 +0100
committerUdo Walter2019-01-15 06:06:55 +0100
commit362900877c85ac300a86a1e0fa0d596fff1017ec (patch)
treeaec3f5905223e7af90acae446f701174aec59c23 /webapp
parent[webapp/datatable] Add ability to select multiple rows with shift click (diff)
downloadbas-362900877c85ac300a86a1e0fa0d596fff1017ec.tar.gz
bas-362900877c85ac300a86a1e0fa0d596fff1017ec.tar.xz
bas-362900877c85ac300a86a1e0fa0d596fff1017ec.zip
[webapp/datatable] bugfixes
Diffstat (limited to 'webapp')
-rw-r--r--webapp/src/components/DataTable.vue17
1 files changed, 12 insertions, 5 deletions
diff --git a/webapp/src/components/DataTable.vue b/webapp/src/components/DataTable.vue
index 023760a..0443918 100644
--- a/webapp/src/components/DataTable.vue
+++ b/webapp/src/components/DataTable.vue
@@ -37,7 +37,6 @@
:placeholder="$t('search')"
:value="s.text.raw"
@input="prerocessSearch(s, $event)"
- :clear-icon-cb="() => prerocessSearch(s, '')"
hide-details
prepend-inner-icon="search"
clearable
@@ -295,18 +294,22 @@ export default {
this.$emit('input', this.selected)
},
toggleSelectAll () {
+ if (this.filterdRows.length === 0) return
if (this.selectState <= 1) {
- this.selectRows(0, this.filterdRows.length)
+ this.selectRows(0, this.filterdRows.length - 1)
} else {
- this.deselectRows(0, this.filterdRows.length)
+ this.deselectRows(0, this.filterdRows.length - 1)
}
// Update variables and emit the new value
this.calcSelectState()
this.$emit('input', this.selected)
},
selectRows (start, end) {
+ var rows
+ if (this.onlyShowSelected) rows = this.filterdRows.slice(0)
+ else rows = this.filterdRows
for (let i = Math.min(start, end); i <= Math.max(start, end); i++) {
- let row = this.filterdRows[i]
+ let row = rows[i]
if (row.selected !== true) {
row.selected = true
this.selected.push(row.data)
@@ -314,9 +317,12 @@ export default {
}
},
deselectRows (start, end) {
+ var rows
+ if (this.onlyShowSelected) rows = this.filterdRows.slice(0)
+ else rows = this.filterdRows
const deselected = {}
for (let i = Math.min(start, end); i <= Math.max(start, end); i++) {
- let row = this.filterdRows[i]
+ let row = rows[i]
if (row.selected === true) {
row.selected = false
deselected[row.data.id] = true
@@ -340,6 +346,7 @@ export default {
this.selectState = seenTrue && seenFalse ? 1 : seenTrue && !seenFalse ? 2 : 0
},
prerocessSearch (s, raw) {
+ if (typeof raw !== 'string') raw = ''
const tmp = { raw, upper: raw.toUpperCase() }
try {
tmp.regex = new RegExp(raw)