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 8e0e2d7cfd74a078ed1b41e79d95c1730903e3c9..492bab9e5613403795ded10abc3c55f7ac7bee07 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());