Skip to content

Commit 258f9cc

Browse files
committed
when auto-submitting a part because the input blurred, do show feedback if the user was clicking inside that part
1 parent 96a3261 commit 258f9cc

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

themes/default/files/scripts/part-display.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,7 @@ Numbas.queueScript('part-display',['display-util', 'display-base','util','jme'],
566566
if(!p.question.exam.settings.autoSubmit) {
567567
return;
568568
}
569+
var clicking_inside = pd.clicking_inside;
569570

570571
setTimeout(function() {
571572
if(!pd.will_autoSubmit) {
@@ -578,7 +579,7 @@ Numbas.queueScript('part-display',['display-util', 'display-base','util','jme'],
578579
return;
579580
}
580581
}
581-
pd.controls.submit(true);
582+
pd.controls.submit(!clicking_inside);
582583
}, 100);
583584
},
584585
submit: function(auto) {
@@ -636,6 +637,16 @@ Numbas.queueScript('part-display',['display-util', 'display-base','util','jme'],
636637
}
637638
};
638639

640+
this.pointerdown = function(e) {
641+
pd.clicking_inside = true;
642+
return true;
643+
}
644+
645+
this.pointerup = function(e) {
646+
pd.clicking_inside = false;
647+
return true;
648+
}
649+
639650
p.xml.setAttribute('jme-context-description',p.name);
640651
p.xml.setAttribute('path',p.path);
641652
p.xml.setAttribute('isgap',p.isGap);

themes/default/templates/xslt/part.xslt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
</xsl:variable>
2828
<xsl:element name="{$tag}">
2929
<xsl:attribute name="class">part <xsl:value-of select="$clear"/> type-<xsl:value-of select="@type"/> <xsl:value-of select="$block"/><xsl:if test="parent::steps"> step</xsl:if><xsl:if test="parent::gaps"> gap</xsl:if></xsl:attribute>
30-
<xsl:attribute name="data-bind">with: question.display.getPart('<xsl:value-of select="@path" />'), visible: question.display.getPart('<xsl:value-of select="@path" />').visible, css: {dirty: question.display.getPart('<xsl:value-of select="@path" />').isDirty, 'has-name': question.display.getPart('<xsl:value-of select="@path" />').showName(), answered: answered(), dirty: isDirty(), 'has-feedback-messages': hasFeedbackMessages()}, event: {focusin: focusin, focusout: focusout}</xsl:attribute>
30+
<xsl:attribute name="data-bind">with: question.display.getPart('<xsl:value-of select="@path" />'), visible: question.display.getPart('<xsl:value-of select="@path" />').visible, css: {dirty: question.display.getPart('<xsl:value-of select="@path" />').isDirty, 'has-name': question.display.getPart('<xsl:value-of select="@path" />').showName(), answered: answered(), dirty: isDirty(), 'has-feedback-messages': hasFeedbackMessages()}, event: {focusin: focusin, focusout: focusout}, event: {pointerdown: pointerdown, pointerup: pointerup}</xsl:attribute>
3131
<xsl:attribute name="data-part-path"><xsl:value-of select="@path" /></xsl:attribute>
3232
<xsl:attribute name="data-jme-context-description"><xsl:value-of select="@jme-context-description" /></xsl:attribute>
3333
<xsl:if test="$inline='false'"><h3 class="partheader" data-bind="visible: showName(), latex: name"></h3></xsl:if>

0 commit comments

Comments
 (0)