diff options
author | Yoshie Muranaka <yoshiemuranaka@gmail.com> | 2020-02-12 22:30:49 +0300 |
---|---|---|
committer | Yoshie Muranaka <yoshiemuranaka@gmail.com> | 2020-02-22 00:32:15 +0300 |
commit | 183c27548046e12b94354aa598b5bcf956d31103 (patch) | |
tree | 4168e439d3554427648b7898a706d8a7aed84e10 /src/components/Mixins/BVTableSelectableMixin.js | |
parent | c11d38945b8a51e4181142c2b8852ffcb30338d9 (diff) | |
download | webui-vue-183c27548046e12b94354aa598b5bcf956d31103.tar.xz |
Add batch actions to local user table
- Create TableToolbar component for table batch actions
- Added Toast warning type and toast title message translations
- Update vue-i18n package to latest v8.15.3 to use improved
pluarlization features
Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Change-Id: I455beba4f56b8209b1201bbc5ff3f616e960d189
Diffstat (limited to 'src/components/Mixins/BVTableSelectableMixin.js')
-rw-r--r-- | src/components/Mixins/BVTableSelectableMixin.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/components/Mixins/BVTableSelectableMixin.js b/src/components/Mixins/BVTableSelectableMixin.js new file mode 100644 index 00000000..fba2f2b8 --- /dev/null +++ b/src/components/Mixins/BVTableSelectableMixin.js @@ -0,0 +1,44 @@ +const BVTableSelectableMixin = { + data() { + return { + tableHeaderCheckboxModel: false, + tableHeaderCheckboxIndeterminate: false, + selectedRows: [] + }; + }, + methods: { + clearSelectedRows(tableRef) { + if (tableRef) tableRef.clearSelected(); + }, + toggleSelectRow(tableRef, rowIndex) { + if (tableRef && rowIndex !== undefined) { + tableRef.isRowSelected(rowIndex) + ? tableRef.unselectRow(rowIndex) + : tableRef.selectRow(rowIndex); + } + }, + onRowSelected(selectedRows, totalRowsCount) { + if (selectedRows && totalRowsCount !== undefined) { + this.selectedRows = selectedRows; + if (selectedRows.length === 0) { + this.tableHeaderCheckboxIndeterminate = false; + this.tableHeaderCheckboxModel = false; + } else if (selectedRows.length === totalRowsCount) { + this.tableHeaderCheckboxIndeterminate = false; + this.tableHeaderCheckboxModel = true; + } else { + this.tableHeaderCheckboxIndeterminate = true; + this.tableHeaderCheckboxModel = false; + } + } + }, + onChangeHeaderCheckbox(tableRef) { + if (tableRef) { + if (this.tableHeaderCheckboxModel) tableRef.clearSelected(); + else tableRef.selectAllRows(); + } + } + } +}; + +export default BVTableSelectableMixin; |