mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Merge branch 'vv_und_studvw_2026_02_rc4' into vv_und_studvw_2026_02_rc4_ma0080
This commit is contained in:
@@ -3578,6 +3578,12 @@
|
||||
transition: box-shadow 0.15s;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
|
||||
.p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler > svg,
|
||||
.p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler > svg * {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler:enabled:hover {
|
||||
color: #495057;
|
||||
border-color: transparent;
|
||||
|
||||
@@ -141,6 +141,7 @@ export default {
|
||||
if (row.getData().bnaktiv === false) {
|
||||
row.getElement().classList.add('text-black','text-opacity-50','fst-italic');
|
||||
}
|
||||
row.getElement().draggable = true
|
||||
},
|
||||
|
||||
ajaxRequestFunc: (url, config, params) => {
|
||||
@@ -207,6 +208,10 @@ export default {
|
||||
handler: (data) => {
|
||||
this.getExpandedRows()
|
||||
}
|
||||
},
|
||||
{
|
||||
event: 'rowMouseDown',
|
||||
handler: this.handleMouseDown
|
||||
}
|
||||
],
|
||||
focusObj: null, // TODO(chris): this should be in the filter component
|
||||
@@ -220,7 +225,8 @@ export default {
|
||||
selectedColumnValues: [],
|
||||
tagEndpoint: ApiTag,
|
||||
currentEndpoint: null,
|
||||
headerFilterActive: false
|
||||
headerFilterActive: false,
|
||||
dragSource: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -236,7 +242,9 @@ export default {
|
||||
+ ': <strong>' + (this.count || 0) + '</strong>';
|
||||
},
|
||||
selectedDragObject() {
|
||||
return this.selected.map(item => {
|
||||
let items = this.dragSource?.length ? this.dragSource : this.selected;
|
||||
|
||||
return items.map(item => {
|
||||
let type, id;
|
||||
if (item.uid) {
|
||||
type = 'student';
|
||||
@@ -381,15 +389,6 @@ export default {
|
||||
this.selectedColumnValues = this.selectedRows.filter(row => row.getData().prestudent_id !== undefined && row.getData().prestudent_id).map(row => row.getData().prestudent_id);
|
||||
|
||||
this.$emit('update:selected', data);
|
||||
|
||||
// set selected elements draggable
|
||||
const tableEl = this.$refs.table?.$refs?.table;
|
||||
if (tableEl) {
|
||||
const oldDragables = tableEl.querySelectorAll('[draggable]');
|
||||
for (const draggable of oldDragables)
|
||||
draggable.removeAttribute('draggable');
|
||||
}
|
||||
rows.forEach(row => row.getElement().draggable = true);
|
||||
},
|
||||
autoSelectRows(data) {
|
||||
if (Array.isArray(this.lastSelected) && this.lastSelected.length){
|
||||
@@ -459,6 +458,7 @@ export default {
|
||||
this.$refs.table.tabulator.setData(endpoint.url, params, method);
|
||||
},
|
||||
dragCleanup(evt) {
|
||||
this.dragSource = [];
|
||||
if (evt.dataTransfer.dropEffect == 'none')
|
||||
return; // aborted or wrong target
|
||||
|
||||
@@ -557,7 +557,16 @@ export default {
|
||||
},
|
||||
handleHeaderFilter(filterActive){
|
||||
this.headerFilterActive = filterActive;
|
||||
}
|
||||
},
|
||||
handleMouseDown(e, row)
|
||||
{
|
||||
let data = row.getData();
|
||||
let id = data.uid ?? data.prestudent_id ?? data.person_id;
|
||||
|
||||
const isAlreadySelected = this.selected?.some(row => (row.uid ?? row.prestudent_id ?? row.person_id) === id);
|
||||
|
||||
this.dragSource = (isAlreadySelected && this.selected?.length) ? this.selected : [data];
|
||||
},
|
||||
},
|
||||
// TODO(chris): focusin, focusout, keydown and tabindex should be in the filter component
|
||||
// TODO(chris): filter component column chooser has no accessibilty features
|
||||
|
||||
Reference in New Issue
Block a user