diff --git a/ayanova/src/components/gz-data-table.vue b/ayanova/src/components/gz-data-table.vue index 0c704a27..f7930398 100644 --- a/ayanova/src/components/gz-data-table.vue +++ b/ayanova/src/components/gz-data-table.vue @@ -47,7 +47,6 @@ :value="item" primary hide-details - @change="handleSelect($event)" > @@ -136,17 +135,39 @@ export default { }, deep: true }, - "$vuetify.breakpoint.xs": function(value) { - //for now, not going with my own mini mode but may revisit so keeping this for now - // this.getDataFromApi(); + selected: { + handler(newValue, oldValue) { + if (newValue.length != oldValue.length) { + console.log("Selected changed, triggering handleSelectChange:"); + + this.handleSelectChange(); + } + }, + deep: true } + // , + // selected: function(newValue, oldValue) { + // if (newValue != oldValue) { + // console.log("Selected changed, triggering handleSelectChange:"); + // this.handleSelectChange(); + // } + // } + // , //for now, not going with my own mini mode but may revisit so keeping this here but commented out for now + // "$vuetify.breakpoint.xs": function(value) { + // this.getDataFromApi(); + // } }, methods: { - handleSelect(selectedItem) { + handleSelectChange() { //due to making own template for items need to handle singleselect which only affects if select all checkbox at top is visible when making own item template if (this.singleSelect) { this.selected.splice(0, this.selected.length - 1); } + //emit event to parent form of selected rows + //this.$emit("update:selected", this.selected); + //Note that this bubbles up all the columns of all the selected rows + //could be more efficient if it just sends the ID's instead: + this.$emit("update:selected", window.$gz._.map(this.selected, "id")); }, btnClick(key, i) { //translate key to actual object type from header data diff --git a/ayanova/src/views/test-widgets.vue b/ayanova/src/views/test-widgets.vue index f8abd42d..f13095a5 100644 --- a/ayanova/src/views/test-widgets.vue +++ b/ayanova/src/views/test-widgets.vue @@ -5,8 +5,9 @@ dataListKey="TestWidgetDataList" :caption="getCaption()" :dataFilterId="currentDataFilterId" - :showSelect="false" + :showSelect="true" :singleSelect="false" + v-on:update:selected="handleSelected" > @@ -34,6 +35,9 @@ export default { }; }, methods: { + handleSelected(selectedItems) { + console.log(selectedItems); + }, getCaption() { return window.$gz.locale.get("WidgetList"); }