Skip to content
Snippets Groups Projects
Commit 71d49388 authored by srosse's avatar srosse
Browse files

OO-1593: fix background image with spaces...

parent b87fb783
No related branches found
No related tags found
No related merge requests found
...@@ -109,7 +109,8 @@ public class FIBAssessmentItemBuilder extends AssessmentItemBuilder { ...@@ -109,7 +109,8 @@ public class FIBAssessmentItemBuilder extends AssessmentItemBuilder {
} }
private static AssessmentItem createAssessmentItem(EntryType type) { private static AssessmentItem createAssessmentItem(EntryType type) {
AssessmentItem assessmentItem = AssessmentItemFactory.createAssessmentItem(QTI21QuestionType.fib, "FIB"); String title = (type == EntryType.text) ? "Gap text" : "Numerical input";
AssessmentItem assessmentItem = AssessmentItemFactory.createAssessmentItem(QTI21QuestionType.fib, title);
//define the response //define the response
Identifier responseDeclarationId = Identifier.assumedLegal("RESPONSE_1"); Identifier responseDeclarationId = Identifier.assumedLegal("RESPONSE_1");
......
...@@ -6,12 +6,12 @@ assessment.item.status.answered=Antwortet ...@@ -6,12 +6,12 @@ assessment.item.status.answered=Antwortet
assessment.item.status.finished=Beendet assessment.item.status.finished=Beendet
assessment.item.status.modelSolution=Musterl\u00F6sung assessment.item.status.modelSolution=Musterl\u00F6sung
assessment.item.status.needsAttention=Vorsichtig assessment.item.status.needsAttention=Vorsichtig
assessment.item.status.notAnswered=Nicht antwortet assessment.item.status.notAnswered=Nicht beantwortet
assessment.item.status.notSeen=Nicht gesehen assessment.item.status.notSeen=Nicht gesehen
assessment.item.status.review=\u00DCberpr\u00FCfung assessment.item.status.review=\u00DCberpr\u00FCfung
assessment.item.status.reviewInvalidAnswer=\u00DCberpr\u00FCfung (ung\u00FCltige Antwort) assessment.item.status.reviewInvalidAnswer=\u00DCberpr\u00FCfung (ung\u00FCltige Antwort)
assessment.item.status.reviewNot=Nicht \u00FCberpr\u00FCfbar assessment.item.status.reviewNot=Nicht \u00FCberpr\u00FCfbar
assessment.item.status.reviewNotAnswered=\u00DCberpr\u00FCfung (nicht antwortet) assessment.item.status.reviewNotAnswered=\u00DCberpr\u00FCfung (nicht beantwortet)
assessment.item.status.reviewNotSeen=\u00DCberpr\u00FCfung (nicht gesehen) assessment.item.status.reviewNotSeen=\u00DCberpr\u00FCfung (nicht gesehen)
assessment.section.config=Sektion assessment.section.config=Sektion
assessment.solution.hide=L\u00F6sung verbergen assessment.solution.hide=L\u00F6sung verbergen
......
...@@ -1156,9 +1156,12 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent ...@@ -1156,9 +1156,12 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent
final NavigationMode navigationMode = currentTestPart.getNavigationMode(); final NavigationMode navigationMode = currentTestPart.getNavigationMode();
boolean nextItemAllowed = navigationMode == NavigationMode.NONLINEAR; boolean nextItemAllowed = navigationMode == NavigationMode.NONLINEAR;
boolean advanceTestItemAllowed = navigationMode == NavigationMode.LINEAR && testSessionController.mayAdvanceItemLinear(); boolean advanceTestItemAllowed = navigationMode == NavigationMode.LINEAR
&& testSessionController.getTestSessionState().getCurrentItemKey() != null//mayAdvanceItemLinear assert on the current selected item
&& testSessionController.mayAdvanceItemLinear();
boolean testPartNavigationAllowed = navigationMode == NavigationMode.NONLINEAR; boolean testPartNavigationAllowed = navigationMode == NavigationMode.NONLINEAR;
boolean endTestPartAllowed = navigationMode == NavigationMode.LINEAR && testSessionController.mayEndCurrentTestPart(); boolean endTestPartAllowed = navigationMode == NavigationMode.LINEAR
&& testSessionController.mayEndCurrentTestPart();
return new RenderingRequest(false, false, testPartNavigationAllowed, advanceTestItemAllowed, nextItemAllowed, endTestPartAllowed); return new RenderingRequest(false, false, testPartNavigationAllowed, advanceTestItemAllowed, nextItemAllowed, endTestPartAllowed);
} }
......
...@@ -233,8 +233,8 @@ public class AssessmentTestComponentRenderer extends AssessmentObjectComponentRe ...@@ -233,8 +233,8 @@ public class AssessmentTestComponentRenderer extends AssessmentObjectComponentRe
Component submit = component.getQtiItem().getSubmitButton().getComponent(); Component submit = component.getQtiItem().getSubmitButton().getComponent();
submit.getHTMLRendererSingleton().render(renderer.getRenderer(), sb, submit, ubu, translator, new RenderResult(), null); submit.getHTMLRendererSingleton().render(renderer.getRenderer(), sb, submit, ubu, translator, new RenderResult(), null);
} }
//advanceTestItemAllowed //advanceTestItemAllowed /* && testSessionState.getCurrentItemKey() != null && testSessionController.mayAdvanceItemLinear() */
if(options.isAdvanceTestItemAllowed()) { if(options.isAdvanceTestItemAllowed() ) {//TODO need to find if there is a next question
String title = translator.translate("assessment.test.nextQuestion"); String title = translator.translate("assessment.test.nextQuestion");
renderControl(sb, component, title, "o_sel_next_question", new NameValuePair("cid", Event.finishItem.name())); renderControl(sb, component, title, "o_sel_next_question", new NameValuePair("cid", Event.finishItem.name()));
} }
......
...@@ -69,6 +69,7 @@ form.score.answer.correct=Korrekt ...@@ -69,6 +69,7 @@ form.score.answer.correct=Korrekt
form.score.answer.points=Punkte form.score.answer.points=Punkte
form.score.answer.summary=Antwort \u00DCberblick form.score.answer.summary=Antwort \u00DCberblick
form.score.assessment.all.correct=Alle korrekten Antworten form.score.assessment.all.correct=Alle korrekten Antworten
form.score.assessment.mode=Bewertungsmethode
form.score.assessment.per.answer=Punkte pro Antwort form.score.assessment.per.answer=Punkte pro Antwort
form.section.selection_pre=Anzahl Fragen in dieser Sektion form.section.selection_pre=Anzahl Fragen in dieser Sektion
form.section.selection_pre.hover=Legen Sie fest ob alle oder nur eine bestimmte Anzahl Fragen im Test angezeigt werden sollen. form.section.selection_pre.hover=Legen Sie fest ob alle oder nur eine bestimmte Anzahl Fragen im Test angezeigt werden sollen.
...@@ -99,6 +100,7 @@ new.mc=Multiple Choice ...@@ -99,6 +100,7 @@ new.mc=Multiple Choice
new.rectangle=Viereck new.rectangle=Viereck
new.sc=Single Choice new.sc=Single Choice
new.section=Sektion new.section=Sektion
new.spots=Spots hinzuf\u00FCgen
preview=Vorschau preview=Vorschau
time.limit.max=Zeitbeschr\u00E4nkung (Minute) time.limit.max=Zeitbeschr\u00E4nkung (Minute)
title.add=$org.olat.ims.qti.editor\:title.add title.add=$org.olat.ims.qti.editor\:title.add
......
...@@ -140,10 +140,21 @@ public class HotspotEditorController extends FormBasicController { ...@@ -140,10 +140,21 @@ public class HotspotEditorController extends FormBasicController {
formLayout, ureq.getUserSession(), getWindowControl()); formLayout, ureq.getUserSession(), getWindowControl());
textEl.addActionListener(FormEvent.ONCLICK); textEl.addActionListener(FormEvent.ONCLICK);
initialBackgroundImage = getCurrentBackground();
backgroundEl = uifactory.addFileElement(getWindowControl(), "form.imd.background", "form.imd.background", formLayout);
backgroundEl.setEnabled(!restrictedEdit);
if(initialBackgroundImage != null) {
backgroundEl.setInitialFile(initialBackgroundImage);
}
backgroundEl.addActionListener(FormEvent.ONCHANGE);
backgroundEl.setDeleteEnabled(true);
backgroundEl.limitToMimeType(mimeTypes, null, null);
//responses //responses
String page = velocity_root + "/hotspots.html"; String page = velocity_root + "/hotspots.html";
hotspotsCont = FormLayoutContainer.createCustomFormLayout("answers", getTranslator(), page); hotspotsCont = FormLayoutContainer.createCustomFormLayout("answers", getTranslator(), page);
hotspotsCont.getFormItemComponent().addListener(this); hotspotsCont.getFormItemComponent().addListener(this);
hotspotsCont.setLabel("new.spots", null);
hotspotsCont.setRootForm(mainForm); hotspotsCont.setRootForm(mainForm);
hotspotsCont.contextPut("mapperUri", backgroundMapperUri); hotspotsCont.contextPut("mapperUri", backgroundMapperUri);
hotspotsCont.contextPut("restrictedEdit", restrictedEdit); hotspotsCont.contextPut("restrictedEdit", restrictedEdit);
...@@ -157,24 +168,15 @@ public class HotspotEditorController extends FormBasicController { ...@@ -157,24 +168,15 @@ public class HotspotEditorController extends FormBasicController {
newRectButton = uifactory.addFormLink("new.rectangle", "new.rectangle", null, hotspotsCont, Link.BUTTON); newRectButton = uifactory.addFormLink("new.rectangle", "new.rectangle", null, hotspotsCont, Link.BUTTON);
newRectButton.setIconLeftCSS("o_icon o_icon-lg o_icon_rectangle"); newRectButton.setIconLeftCSS("o_icon o_icon-lg o_icon_rectangle");
newRectButton.setVisible(!restrictedEdit); newRectButton.setVisible(!restrictedEdit);
updateBackground();
String[] emptyKeys = new String[0]; String[] emptyKeys = new String[0];
correctHotspotsEl = uifactory.addCheckboxesHorizontal("form.imd.correct.spots", formLayout, emptyKeys, emptyKeys); correctHotspotsEl = uifactory.addCheckboxesHorizontal("form.imd.correct.spots", formLayout, emptyKeys, emptyKeys);
correctHotspotsEl.setEnabled(!restrictedEdit); correctHotspotsEl.setEnabled(!restrictedEdit);
correctHotspotsEl.addActionListener(FormEvent.ONCHANGE); correctHotspotsEl.addActionListener(FormEvent.ONCHANGE);
rebuildWrappersAndCorrectSelection(); rebuildWrappersAndCorrectSelection();
initialBackgroundImage = getCurrentBackground();
backgroundEl = uifactory.addFileElement(getWindowControl(), "form.imd.background", "form.imd.background", formLayout);
backgroundEl.setEnabled(!restrictedEdit);
if(initialBackgroundImage != null) {
backgroundEl.setInitialFile(initialBackgroundImage);
}
backgroundEl.addActionListener(FormEvent.ONCHANGE);
backgroundEl.setDeleteEnabled(true);
backgroundEl.limitToMimeType(mimeTypes, null, null);
updateBackground();
// Submit Button // Submit Button
FormLayoutContainer buttonsContainer = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); FormLayoutContainer buttonsContainer = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
buttonsContainer.setRootForm(mainForm); buttonsContainer.setRootForm(mainForm);
......
#if($r.visible("new.circle")) #if($r.visible("new.circle"))
<div class="btn-group small">$r.render("new.circle") $r.render("new.rectangle")</div> <div class="btn-group small">$r.render("new.circle") $r.render("new.rectangle")</div>
#end #end
<div id="o_qti_hotspots_edit" style="position:relative; #if($width && !${width.isEmpty()}) width:${width}px; #end #if($height && !${height.isEmpty()}) height:${height}px; #end #if($filename && !${filename.isEmpty()}) background-image: url($mapperUri/$filename); #end"> <div id="o_qti_hotspots_edit" style="position:relative; #if($width && !${width.isEmpty()}) width:${width}px; #end #if($height && !${height.isEmpty()}) height:${height}px; #end #if($filename && !${filename.isEmpty()}) background-image: url('$mapperUri/$filename'); #end">
#foreach($hotspot in $hotspots) #foreach($hotspot in $hotspots)
<input type="hidden" id="${hotspot.identifier}_shape" name="${hotspot.identifier}_shape" value="${hotspot.shape}" /> <input type="hidden" id="${hotspot.identifier}_shape" name="${hotspot.identifier}_shape" value="${hotspot.shape}" />
<input type="hidden" id="${hotspot.identifier}_coords" name="${hotspot.identifier}_coords" value="${hotspot.coords}" /> <input type="hidden" id="${hotspot.identifier}_coords" name="${hotspot.identifier}_coords" value="${hotspot.coords}" />
......
<div id="$r.getId('d3mapdiv')"> <div id="$r.getId('d3mapdiv')">
<div id='$r.getId("d3mapholder")' class="d3chart" style="position:relative; width:${width}px; height:${height}px; background-color:purple; #if($filename && !${filename.isEmpty()}) background-image: url($mapperUri/$filename); #end"></div> <div id='$r.getId("d3mapholder")' class="d3chart" style="position:relative; width:${width}px; height:${height}px; background-color:purple; #if($filename && !${filename.isEmpty()}) background-image: url('$mapperUri/$filename'); #end"></div>
<script type='text/javascript'> <script type='text/javascript'>
/* <![CDATA[ */ /* <![CDATA[ */
## data: [['1','CIRCLE',[297,75,44],3],['2','CIRCLE',[218,212,25],1],['3','RECT',[51,53,164,123],0]] ## data: [['1','CIRCLE',[297,75,44],3],['2','CIRCLE',[218,212,25],1],['3','RECT',[51,53,164,123],0]]
......
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