Merge pull request #3681 from NoelDeMartin/MOBILE-4338
MOBILE-4338: Quiz fixes
This commit is contained in:
		
						commit
						20a57287af
					
				| @ -855,10 +855,13 @@ export class CoreQuestionHelperProvider { | ||||
|         const icons = <HTMLElement[]> Array.from(element.querySelectorAll('ion-icon.questioncorrectnessicon')); | ||||
|         const title = Translate.instant('core.question.feedback'); | ||||
|         const getClickableFeedback = (icon: HTMLElement) => { | ||||
|             if (icon.parentElement instanceof HTMLButtonElement && icon.parentElement.dataset.toggle === 'popover') { | ||||
|             const parentElement = icon.parentElement; | ||||
|             const parentIsClickable = parentElement instanceof HTMLButtonElement || parentElement instanceof HTMLAnchorElement; | ||||
| 
 | ||||
|             if (parentElement && parentIsClickable && parentElement.dataset.toggle === 'popover') { | ||||
|                 return { | ||||
|                     element: icon.parentElement, | ||||
|                     html: icon.parentElement?.dataset.content, | ||||
|                     element: parentElement, | ||||
|                     html: parentElement?.dataset.content, | ||||
|                 }; | ||||
|             } | ||||
| 
 | ||||
| @ -866,7 +869,7 @@ export class CoreQuestionHelperProvider { | ||||
|             if (icon.hasAttribute('tappable')) { | ||||
|                 return { | ||||
|                     element: icon, | ||||
|                     html: icon.parentElement?.querySelector('.feedbackspan.accesshide')?.innerHTML, | ||||
|                     html: parentElement?.querySelector('.feedbackspan.accesshide')?.innerHTML, | ||||
|                 }; | ||||
|             } | ||||
| 
 | ||||
| @ -881,7 +884,11 @@ export class CoreQuestionHelperProvider { | ||||
|             } | ||||
| 
 | ||||
|             // There's a hidden feedback, show it when the icon is clicked.
 | ||||
|             target.element.addEventListener('click', () => { | ||||
|             target.element.dataset.disabledA11yClicks = 'true'; | ||||
|             target.element.addEventListener('click', event => { | ||||
|                 event.preventDefault(); | ||||
|                 event.stopPropagation(); | ||||
| 
 | ||||
|                 CoreTextUtils.viewText(title, target.html ?? '', { | ||||
|                     component: component, | ||||
|                     componentId: componentId, | ||||
|  | ||||
| @ -536,9 +536,15 @@ export class CoreDom { | ||||
|         element: HTMLElement & {disabled?: boolean}, | ||||
|         callback: (event: MouseEvent | KeyboardEvent) => void, | ||||
|     ): void { | ||||
|         element.addEventListener('click', (event) => callback(event)); | ||||
|         const enabled = () => !CoreUtils.isTrueOrOne(element.dataset.disabledA11yClicks ?? 'false'); | ||||
| 
 | ||||
|         element.addEventListener('click', (event) => enabled() && callback(event)); | ||||
| 
 | ||||
|         element.addEventListener('keydown', (event) => { | ||||
|             if (!enabled()) { | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             if (event.key === ' ' || event.key === 'Enter') { | ||||
|                 event.preventDefault(); | ||||
|                 event.stopPropagation(); | ||||
| @ -546,6 +552,10 @@ export class CoreDom { | ||||
|         }); | ||||
| 
 | ||||
|         element.addEventListener('keyup', (event) => { | ||||
|             if (!enabled()) { | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             if (event.key === ' ' || event.key === 'Enter') { | ||||
|                 event.preventDefault(); | ||||
|                 event.stopPropagation(); | ||||
|  | ||||
| @ -120,15 +120,15 @@ body { | ||||
| } | ||||
| 
 | ||||
| // Correctly inherit ion-text-wrap onto labels. | ||||
| .item ion-label core-format-text > *, | ||||
| .fake-ion-item core-format-text > * { | ||||
| .item ion-label core-format-text > *:not(pre), | ||||
| .fake-ion-item core-format-text > *:not(pre) { | ||||
|     white-space: nowrap; | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
| } | ||||
| 
 | ||||
| .item.ion-text-wrap > ion-label core-format-text > *, | ||||
| .fake-ion-item.ion-text-wrap core-format-text > * { | ||||
| .item.ion-text-wrap > ion-label core-format-text > *:not(pre), | ||||
| .fake-ion-item.ion-text-wrap core-format-text > *:not(pre) { | ||||
|     white-space: normal; | ||||
|     overflow: inherit; | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user