diff --git a/src/addon/qtype/ddimageortext/component/addon-qtype-ddimageortext.html b/src/addon/qtype/ddimageortext/component/addon-qtype-ddimageortext.html index f07233836..817b1db52 100644 --- a/src/addon/qtype/ddimageortext/component/addon-qtype-ddimageortext.html +++ b/src/addon/qtype/ddimageortext/component/addon-qtype-ddimageortext.html @@ -7,7 +7,7 @@ {{ 'core.question.howtodraganddrop' | translate }}

-

- +

+ diff --git a/src/addon/qtype/ddimageortext/component/ddimageortext.ts b/src/addon/qtype/ddimageortext/component/ddimageortext.ts index 9574648dd..1a752bdae 100644 --- a/src/addon/qtype/ddimageortext/component/ddimageortext.ts +++ b/src/addon/qtype/ddimageortext/component/ddimageortext.ts @@ -30,6 +30,8 @@ export class AddonQtypeDdImageOrTextComponent extends CoreQuestionBaseComponent protected questionInstance: AddonQtypeDdImageOrTextQuestion; protected drops: any[]; // The drop zones received in the init object of the question. protected destroyed = false; + protected textIsRendered = false; + protected ddAreaisRendered = false; constructor(protected loggerProvider: CoreLoggerProvider, injector: Injector, element: ElementRef) { super(loggerProvider, 'AddonQtypeDdImageOrTextComponent', injector); @@ -84,10 +86,30 @@ export class AddonQtypeDdImageOrTextComponent extends CoreQuestionBaseComponent this.question.loaded = false; } + /** + * The question ddArea has been rendered. + */ + ddAreaRendered(): void { + this.ddAreaisRendered = true; + if (this.textIsRendered) { + this.questionRendered(); + } + } + + /** + * The question text has been rendered. + */ + textRendered(): void { + this.textIsRendered = true; + if (this.ddAreaisRendered) { + this.questionRendered(); + } + } + /** * The question has been rendered. */ - questionRendered(): void { + protected questionRendered(): void { if (!this.destroyed) { // Create the instance. this.questionInstance = new AddonQtypeDdImageOrTextQuestion(this.loggerProvider, this.domUtils, this.element, diff --git a/src/addon/qtype/ddmarker/component/addon-qtype-ddmarker.html b/src/addon/qtype/ddmarker/component/addon-qtype-ddmarker.html index 2284c4265..60ec70218 100644 --- a/src/addon/qtype/ddmarker/component/addon-qtype-ddmarker.html +++ b/src/addon/qtype/ddmarker/component/addon-qtype-ddmarker.html @@ -7,7 +7,7 @@ {{ 'core.question.howtodraganddrop' | translate }}

-

- +

+ diff --git a/src/addon/qtype/ddmarker/component/ddmarker.ts b/src/addon/qtype/ddmarker/component/ddmarker.ts index 0e778196c..a7d30837c 100644 --- a/src/addon/qtype/ddmarker/component/ddmarker.ts +++ b/src/addon/qtype/ddmarker/component/ddmarker.ts @@ -35,6 +35,8 @@ export class AddonQtypeDdMarkerComponent extends CoreQuestionBaseComponent imple protected dropZones: any[]; // The drop zones received in the init object of the question. protected imgSrc: string; // Background image URL. protected destroyed = false; + protected textIsRendered = false; + protected ddAreaisRendered = false; constructor(protected loggerProvider: CoreLoggerProvider, injector: Injector, element: ElementRef, protected sitesProvider: CoreSitesProvider, protected urlUtils: CoreUrlUtilsProvider, @@ -101,10 +103,30 @@ export class AddonQtypeDdMarkerComponent extends CoreQuestionBaseComponent imple this.question.loaded = false; } + /** + * The question ddArea has been rendered. + */ + ddAreaRendered(): void { + this.ddAreaisRendered = true; + if (this.textIsRendered) { + this.questionRendered(); + } + } + + /** + * The question text has been rendered. + */ + textRendered(): void { + this.textIsRendered = true; + if (this.ddAreaisRendered) { + this.questionRendered(); + } + } + /** * The question has been rendered. */ - questionRendered(): void { + protected questionRendered(): void { if (!this.destroyed) { // Download background image (3.6+ sites). let promise = null; diff --git a/src/addon/qtype/ddwtos/component/addon-qtype-ddwtos.html b/src/addon/qtype/ddwtos/component/addon-qtype-ddwtos.html index e70dcfd69..b998f2fe0 100644 --- a/src/addon/qtype/ddwtos/component/addon-qtype-ddwtos.html +++ b/src/addon/qtype/ddwtos/component/addon-qtype-ddwtos.html @@ -7,8 +7,8 @@ {{ 'core.question.howtodraganddrop' | translate }}

-

- +

+
diff --git a/src/addon/qtype/ddwtos/component/ddwtos.ts b/src/addon/qtype/ddwtos/component/ddwtos.ts index 2ad23fcc6..077677e27 100644 --- a/src/addon/qtype/ddwtos/component/ddwtos.ts +++ b/src/addon/qtype/ddwtos/component/ddwtos.ts @@ -31,6 +31,8 @@ export class AddonQtypeDdwtosComponent extends CoreQuestionBaseComponent impleme protected questionInstance: AddonQtypeDdwtosQuestion; protected inputIds: string[] = []; // Ids of the inputs of the question (where the answers will be stored). protected destroyed = false; + protected textIsRendered = false; + protected answerAreRendered = false; constructor(protected loggerProvider: CoreLoggerProvider, injector: Injector, element: ElementRef) { super(loggerProvider, 'AddonQtypeDdwtosComponent', injector); @@ -85,10 +87,30 @@ export class AddonQtypeDdwtosComponent extends CoreQuestionBaseComponent impleme this.question.loaded = false; } + /** + * The question answers have been rendered. + */ + answersRendered(): void { + this.answerAreRendered = true; + if (this.textIsRendered) { + this.questionRendered(); + } + } + + /** + * The question text has been rendered. + */ + textRendered(): void { + this.textIsRendered = true; + if (this.answerAreRendered) { + this.questionRendered(); + } + } + /** * The question has been rendered. */ - questionRendered(): void { + protected questionRendered(): void { if (!this.destroyed) { this.domUtils.waitForImages(this.questionTextEl.nativeElement).then(() => { // Create the instance.