From 0905fd4536240d925dff5fd9f923c0dd27c1fd8d Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Wed, 29 Sep 2021 11:04:10 +0200 Subject: [PATCH] Merge pull request #5217 from overleaf/jpa-web-templates-de-ng [web] de-ng templates module (server-pro) GitOrigin-RevId: 8d2ffd6a109d61b11d6d7c1acb781b429da3891c --- .../frontend/js/features/fallback-image/index.js | 16 ++++++++++++++++ services/web/frontend/js/marketing.js | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 services/web/frontend/js/features/fallback-image/index.js diff --git a/services/web/frontend/js/features/fallback-image/index.js b/services/web/frontend/js/features/fallback-image/index.js new file mode 100644 index 0000000000..8ab3ab5003 --- /dev/null +++ b/services/web/frontend/js/features/fallback-image/index.js @@ -0,0 +1,16 @@ +function loadingFailed(imgEl) { + return imgEl.complete && imgEl.naturalWidth === 0 +} + +document.querySelectorAll('[data-ol-fallback-image]').forEach(imgEl => { + function showFallback() { + imgEl.src = imgEl.getAttribute('data-ol-fallback-image') + } + if (loadingFailed(imgEl)) { + // The image loading failed before the sprinkle ran. + showFallback() + } else { + // The image loading might fail in the future. + imgEl.addEventListener('error', showFallback) + } +}) diff --git a/services/web/frontend/js/marketing.js b/services/web/frontend/js/marketing.js index 8aa97e710e..6c9be38316 100644 --- a/services/web/frontend/js/marketing.js +++ b/services/web/frontend/js/marketing.js @@ -5,6 +5,8 @@ import './features/form-helpers/hydrate-form' import './features/link-helpers/slow-link' import './features/contact-form' import './features/event-tracking' +import './features/fallback-image' import './features/multi-submit' $('[data-ol-lang-selector-tooltip]').tooltip({ trigger: 'hover' }) +$('[data-toggle="tooltip"]').tooltip()