From 09fa0b01807781e4adaad01841a422c95ba3546b Mon Sep 17 00:00:00 2001 From: aboeckle <alexander.boeckle@frentix.com> Date: Mon, 9 Dec 2019 16:18:31 +0100 Subject: [PATCH] OO-4366 Fixed table column selector with mandatory columns and only one additionally selected column --- .../impl/elements/table/FlexiTableElementImpl.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java index 8e0e2d7cfd7..492bab9e561 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java @@ -106,6 +106,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle private boolean numOfRowsEnabled = true; private boolean showAllRowsEnabled = false; private boolean extendedSearchExpanded = false; + private boolean hasAlwaysVisibleColumns = false; private int columnLabelForDragAndDrop; private String emptyTableMessageKey = null; @@ -166,6 +167,10 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle enabledColumnIndex.add(Integer.valueOf(col.getColumnIndex())); } } + + if(enabledColumnIndex.size() > 0 ) { + hasAlwaysVisibleColumns = true; + } String dispatchId = component.getDispatchID(); customButton = new FormLinkImpl(dispatchId + "_customButton", "rCustomButton", "", Link.BUTTON + Link.NONTRANSLATED); @@ -1385,12 +1390,12 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle } protected void setCustomizedColumns(UserRequest ureq, Choice visibleColsChoice) { - List<Integer> visibleCols = visibleColsChoice.getSelectedRows(); - if(visibleCols.size() > 1) { + List<Integer> chosenCols = visibleColsChoice.getSelectedRows(); + if(chosenCols.size() > 1 || hasAlwaysVisibleColumns) { VisibleFlexiColumnsModel model = (VisibleFlexiColumnsModel)visibleColsChoice.getModel(); for(int i=model.getRowCount(); i-->0; ) { FlexiColumnModel col = model.getObject(i); - if(visibleCols.contains(Integer.valueOf(i))) { + if(chosenCols.contains(Integer.valueOf(i))) { enabledColumnIndex.add(col.getColumnIndex()); } else { enabledColumnIndex.remove(col.getColumnIndex()); -- GitLab