Skip to content
Snippets Groups Projects
Commit 8a416d77 authored by uhensler's avatar uhensler
Browse files

OO-4080: Multiline sliders labels in rubric

parent 0b5bf9d2
No related branches found
No related tags found
No related merge requests found
Showing
with 39 additions and 22 deletions
...@@ -343,6 +343,6 @@ public class EvaluationFormExcelExport { ...@@ -343,6 +343,6 @@ public class EvaluationFormExcelExport {
} else if (StringHelper.containsNonWhitespace(slider.getEndLabel())) { } else if (StringHelper.containsNonWhitespace(slider.getEndLabel())) {
sb.append(slider.getEndLabel()); sb.append(slider.getEndLabel());
} }
return sb.toString(); return FilterFactory.getHtmlTagAndDescapingFilter().filter(sb.toString());
} }
} }
...@@ -35,12 +35,14 @@ import org.olat.core.gui.components.form.flexible.FormItem; ...@@ -35,12 +35,14 @@ import org.olat.core.gui.components.form.flexible.FormItem;
import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.FormLink; import org.olat.core.gui.components.form.flexible.elements.FormLink;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
import org.olat.core.gui.components.form.flexible.elements.RichTextElement;
import org.olat.core.gui.components.form.flexible.elements.SingleSelection; import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
import org.olat.core.gui.components.form.flexible.elements.SliderElement; import org.olat.core.gui.components.form.flexible.elements.SliderElement;
import org.olat.core.gui.components.form.flexible.elements.TextElement; import org.olat.core.gui.components.form.flexible.elements.TextElement;
import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.form.flexible.impl.FormEvent;
import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
import org.olat.core.gui.components.form.flexible.impl.elements.richText.TextMode;
import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.Link;
import org.olat.core.gui.components.updown.UpDown; import org.olat.core.gui.components.updown.UpDown;
import org.olat.core.gui.components.updown.UpDownEvent; import org.olat.core.gui.components.updown.UpDownEvent;
...@@ -493,11 +495,14 @@ public class RubricEditorController extends FormBasicController implements PageE ...@@ -493,11 +495,14 @@ public class RubricEditorController extends FormBasicController implements PageE
private SliderRow forgeSliderRow(Slider slider) { private SliderRow forgeSliderRow(Slider slider) {
String startLabel = slider.getStartLabel(); String startLabel = slider.getStartLabel();
TextElement startLabelEl = uifactory.addTextElement("start.label." + count.incrementAndGet(), "start.label", 256, startLabel, flc); RichTextElement startLabelEl = uifactory.addRichTextElementForStringDataMinimalistic(
startLabelEl.setDomReplacementWrapperRequired(false); "start.label." + count.incrementAndGet(), null, startLabel, 4, -1, flc, getWindowControl());
startLabelEl.getEditorConfiguration().setSimplestTextModeAllowed(TextMode.oneLine);
String endLabel = slider.getEndLabel(); String endLabel = slider.getEndLabel();
TextElement endLabelEl = uifactory.addTextElement("end.label." + count.incrementAndGet(), "end.label", 256, endLabel, flc); RichTextElement endLabelEl = uifactory.addRichTextElementForStringDataMinimalistic(
endLabelEl.setDomReplacementWrapperRequired(false); "end.label." + count.incrementAndGet(), null, endLabel, 4, -1, flc, getWindowControl());
endLabelEl.getEditorConfiguration().setSimplestTextModeAllowed(TextMode.oneLine);
SliderRow row = new SliderRow(slider, startLabelEl, endLabelEl, createSliderEl()); SliderRow row = new SliderRow(slider, startLabelEl, endLabelEl, createSliderEl());
if(!restrictedEdit) { if(!restrictedEdit) {
......
...@@ -23,6 +23,7 @@ import java.util.ArrayList; ...@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.olat.core.gui.UserRequest; import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.EscapeMode;
import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
...@@ -31,6 +32,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFle ...@@ -31,6 +32,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFle
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory;
import org.olat.core.gui.components.form.flexible.impl.elements.table.TextFlexiCellRenderer;
import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.CodeHelper; import org.olat.core.util.CodeHelper;
...@@ -78,7 +80,9 @@ public class RubricTableController extends FormBasicController { ...@@ -78,7 +80,9 @@ public class RubricTableController extends FormBasicController {
List<LegendEntry> legendSigns = new ArrayList<>(); List<LegendEntry> legendSigns = new ArrayList<>();
int columnIndex = 0; int columnIndex = 0;
FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(RubricReportCols.startLabel.i18nHeaderKey(), columnIndex++, false, null)); DefaultFlexiColumnModel startLabelModel = new DefaultFlexiColumnModel(RubricReportCols.startLabel.i18nHeaderKey(), columnIndex++, false, null);
startLabelModel.setCellRenderer(new TextFlexiCellRenderer(EscapeMode.antisamy));
columnsModel.addFlexiColumnModel(startLabelModel);
if (!rubric.getSliderType().equals(SliderType.continuous)) { if (!rubric.getSliderType().equals(SliderType.continuous)) {
ScaleType scaleType = rubric.getScaleType(); ScaleType scaleType = rubric.getScaleType();
...@@ -101,6 +105,7 @@ public class RubricTableController extends FormBasicController { ...@@ -101,6 +105,7 @@ public class RubricTableController extends FormBasicController {
if (hasEndLabel()) { if (hasEndLabel()) {
DefaultFlexiColumnModel columnModel = new DefaultFlexiColumnModel(RubricReportCols.endLabel.i18nHeaderKey(), columnIndex++, false, null); DefaultFlexiColumnModel columnModel = new DefaultFlexiColumnModel(RubricReportCols.endLabel.i18nHeaderKey(), columnIndex++, false, null);
columnModel.setCellRenderer(new TextFlexiCellRenderer(EscapeMode.antisamy));
columnsModel.addFlexiColumnModel(columnModel); columnsModel.addFlexiColumnModel(columnModel);
} }
if (rubric.isNoResponseEnabled()) { if (rubric.isNoResponseEnabled()) {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#set($hasRightLabels = $element.rightLabels) #set($hasRightLabels = $element.rightLabels)
#set($isNoResponseEnabled = $element.noResponseEnabled) #set($isNoResponseEnabled = $element.noResponseEnabled)
#if($hasLeftLabels || $hasRightLabels) #if($hasLeftLabels && $hasRightLabels)
#set($colLeft = "col-sm-3") #set($colLeft = "col-sm-3")
#if($isNoResponseEnabled) #if($isNoResponseEnabled)
#set($colMiddle = "col-sm-5") #set($colMiddle = "col-sm-5")
...@@ -14,25 +14,25 @@ ...@@ -14,25 +14,25 @@
#end #end
#set($colRight = "col-sm-3") #set($colRight = "col-sm-3")
#elseif($hasLeftLabels) #elseif($hasLeftLabels)
#set($colLeft = "col-sm-3") #set($colLeft = "col-sm-6")
#if($isNoResponseEnabled) #if($isNoResponseEnabled)
#set($colMiddle = "col-sm-8") #set($colMiddle = "col-sm-5")
#set($colNoResponse = "col-sm-1") #set($colNoResponse = "col-sm-1")
#else #else
#set($colMiddle = "col-sm-9") #set($colMiddle = "col-sm-6")
#set($colNoResponse = "col-sm-0") #set($colNoResponse = "col-sm-0")
#end #end
#set($colRight = "col-sm-0") #set($colRight = "col-sm-0")
#elseif($hasRightLabels) #elseif($hasRightLabels)
#set($colLeft = "col-sm-0") #set($colLeft = "col-sm-0")
#if($isNoResponseEnabled) #if($isNoResponseEnabled)
#set($colMiddle = "col-sm-8") #set($colMiddle = "col-sm-5")
#set($colNoResponse = "col-sm-1") #set($colNoResponse = "col-sm-1")
#else #else
#set($colMiddle = "col-sm-9") #set($colMiddle = "col-sm-6")
#set($colNoResponse = "col-sm-0") #set($colNoResponse = "col-sm-0")
#end #end
#set($colRight = "col-sm-3") #set($colRight = "col-sm-6")
#else #else
#set($colLeft = "col-sm-0") #set($colLeft = "col-sm-0")
#if($isNoResponseEnabled) #if($isNoResponseEnabled)
......
...@@ -62,9 +62,9 @@ ...@@ -62,9 +62,9 @@
#foreach($slider in $sliders) #foreach($slider in $sliders)
<div class="row o_slider_editor"> <div class="row o_slider_editor">
<div class="$colSliderStart">$r.render($slider.startLabelEl)</div> <div class="$colSliderStart">$r.render($slider.startLabelEl)</div>
<div class="$colSliderPreview $slider.sliderCss">$r.render($slider.sliderEl)</div> <div class="$colSliderPreview $slider.sliderCss o_slider_top">$r.render($slider.sliderEl)</div>
<div class="$colSliderEnd">$r.render($slider.endLabelEl)</div> <div class="$colSliderEnd">$r.render($slider.endLabelEl)</div>
<div class="$colSliderButtons"> <div class="$colSliderButtons o_slider_top">
<div class="pull-right"> <div class="pull-right">
$r.render($slider.upDown) $r.render($slider.upDown)
#if($r.isNotNull($slider.deleteButton) && $r.visible($slider.deleteButton)) #if($r.isNotNull($slider.deleteButton) && $r.visible($slider.deleteButton))
......
...@@ -26,6 +26,7 @@ import java.util.Arrays; ...@@ -26,6 +26,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import org.olat.core.gui.UserRequest; import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.EscapeMode;
import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItem;
import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
...@@ -36,6 +37,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; ...@@ -36,6 +37,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory;
import org.olat.core.gui.components.form.flexible.impl.elements.table.TextFlexiCellRenderer;
import org.olat.core.gui.components.util.KeyValues; import org.olat.core.gui.components.util.KeyValues;
import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
...@@ -119,7 +121,9 @@ public class SliderTrendController extends FormBasicController { ...@@ -119,7 +121,9 @@ public class SliderTrendController extends FormBasicController {
private void updateTable(List<String> temporalHeaders) { private void updateTable(List<String> temporalHeaders) {
int columnIndex = 0; int columnIndex = 0;
FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("slider.trend.table.title.question", columnIndex++)); DefaultFlexiColumnModel questionModel = new DefaultFlexiColumnModel("slider.trend.table.title.question", columnIndex++);
questionModel.setCellRenderer(new TextFlexiCellRenderer(EscapeMode.antisamy));
columnsModel.addFlexiColumnModel(questionModel);
for (String header: temporalHeaders) { for (String header: temporalHeaders) {
DefaultFlexiColumnModel columnModel = new DefaultFlexiColumnModel("slider.trend.table.title.question", columnIndex++); DefaultFlexiColumnModel columnModel = new DefaultFlexiColumnModel("slider.trend.table.title.question", columnIndex++);
columnModel.setHeaderLabel(header); columnModel.setHeaderLabel(header);
......
This diff is collapsed.
{ {
"version": 3, "version": 3,
"mappings": "AAkBA,aAAc,CACb,WAAW,CCq0Be,wGAA8G,CDp0BxI,SAAS,CCq0BgB,KAAK,CDn0B9B,8BAAiB,CAChB,MAAM,CCm0BsB,aAAc,CDl0B1C,YAAY,CCm0BoB,IAAI,CDj0BpC,iCAAG,CACF,gBAAgB,CCu0BK,OAAe,CDt0BpC,KAAK,CCq0BkB,IAAkB,CDp0BzC,OAAO,CAAE,gBAAyC,CAClD,aAAa,CAAE,IAAI,CACnB,WAAW,CAAE,KAA8B,CAC3C,SAAS,CAAE,OAAO,CAGnB,qCAAO,CACN,KAAK,CC8zBgB,OAAe,CD3zBtC,6BAAgB,CACf,SAAS,CAAE,OAAO,CAClB,KAAK,CCszBqB,IAAgB,CDrzB1C,UAAU,CAAE,iBAAmC,CAC/C,OAAO,CAAE,QAAQ,CACjB,UAAU,CAAE,GAAG,CAEf,+BAAE,CACD,KAAK,CCgzBoB,IAAgB,CDzyB3C,6BAAc,CACb,WAAW,CAAE,OAAO,CAWrB,6BAAgB,CACf,KAAK,CC8xBmB,IAAkB,CD7xB1C,gBAAgB,CC8xBM,OAAe,CD7xBrC,YAAY,CC8xBiB,OAAmB,CD7xBhD,aAAa,CC8xBiB,GAAG,CD7xBjC,OAAO,CAAE,QAAQ,CACjB,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,MAAM,CACnB,cAAc,CAAE,MAAM,CACtB,YAAY,CAAE,YAAY,CAC1B,MAAM,CAAE,OAAO,CACf,eAAe,CAAE,IAAI,CAGtB,mCAAsB,CACrB,UAAU,CAAE,GAAG,CACf,aAAa,CAAE,GAAG,CAClB,UAAU,CAAE,MAAM,CAElB,qCAAE,CACD,YAAY,CAAE,GAAG,CACjB,aAAa,CAAE,KAAK,CACpB,WAAW,CAAE,IAAI,CACjB,gDAAa,CACZ,YAAY,CAAE,CAAC,CAMlB,wCAA2B,CAC1B,UAAU,CAAE,IAAI,CAEjB,yCAA4B,CAC3B,UAAU,CAAE,KAAK", "mappings": "AAkBA,aAAc,CACb,WAAW,CCu0Be,wGAA8G,CDt0BxI,SAAS,CCu0BgB,KAAK,CDr0B9B,8BAAiB,CAChB,MAAM,CCq0BsB,aAAc,CDp0B1C,YAAY,CCq0BoB,IAAI,CDn0BpC,iCAAG,CACF,gBAAgB,CCy0BK,OAAe,CDx0BpC,KAAK,CCu0BkB,IAAkB,CDt0BzC,OAAO,CAAE,gBAAyC,CAClD,aAAa,CAAE,IAAI,CACnB,WAAW,CAAE,KAA8B,CAC3C,SAAS,CAAE,OAAO,CAGnB,qCAAO,CACN,KAAK,CCg0BgB,OAAe,CD7zBtC,6BAAgB,CACf,SAAS,CAAE,OAAO,CAClB,KAAK,CCwzBqB,IAAgB,CDvzB1C,UAAU,CAAE,iBAAmC,CAC/C,OAAO,CAAE,QAAQ,CACjB,UAAU,CAAE,GAAG,CAEf,+BAAE,CACD,KAAK,CCkzBoB,IAAgB,CD3yB3C,6BAAc,CACb,WAAW,CAAE,OAAO,CAWrB,6BAAgB,CACf,KAAK,CCgyBmB,IAAkB,CD/xB1C,gBAAgB,CCgyBM,OAAe,CD/xBrC,YAAY,CCgyBiB,OAAmB,CD/xBhD,aAAa,CCgyBiB,GAAG,CD/xBjC,OAAO,CAAE,QAAQ,CACjB,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,MAAM,CACnB,cAAc,CAAE,MAAM,CACtB,YAAY,CAAE,YAAY,CAC1B,MAAM,CAAE,OAAO,CACf,eAAe,CAAE,IAAI,CAGtB,mCAAsB,CACrB,UAAU,CAAE,GAAG,CACf,aAAa,CAAE,GAAG,CAClB,UAAU,CAAE,MAAM,CAElB,qCAAE,CACD,YAAY,CAAE,GAAG,CACjB,aAAa,CAAE,KAAK,CACpB,WAAW,CAAE,IAAI,CACjB,gDAAa,CACZ,YAAY,CAAE,CAAC,CAMlB,wCAA2B,CAC1B,UAAU,CAAE,IAAI,CAEjB,yCAA4B,CAC3B,UAAU,CAAE,KAAK",
"sources": ["email.scss","_config.scss"], "sources": ["email.scss","_config.scss"],
"names": [], "names": [],
"file": "email.css" "file": "email.css"
......
...@@ -309,6 +309,9 @@ ...@@ -309,6 +309,9 @@
font-size: 90%; font-size: 90%;
} }
.o_slider_top {
margin-top: 23px;
}
} }
@media (max-width: $screen-sm-min) { @media (max-width: $screen-sm-min) {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment