From 7ceac59598d745cd7795c898b4416a046edd664d Mon Sep 17 00:00:00 2001 From: David Grudl Date: Sun, 8 Aug 2021 13:58:16 +0200 Subject: [PATCH] netteForms: uses in Opera & mobile Chromium because it loses focus after alert() [Closes #275] --- src/assets/netteForms.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/assets/netteForms.js b/src/assets/netteForms.js index 649ec16f3..8abf0ad14 100644 --- a/src/assets/netteForms.js +++ b/src/assets/netteForms.js @@ -307,6 +307,31 @@ * Display modal window. */ Nette.showModal = function(message, onclose) { + var dialog = document.createElement('dialog'), + ua = navigator.userAgentData; + + if (ua && dialog.showModal + && ua.brands.some(function(item) { return item.brand === 'Opera' || (item.brand === 'Chromium' && ua.mobile); }) + ) { + var style = document.createElement('style'); + style.innerText = '.netteFormsModal { text-align: center } .netteFormsModal button { padding: .1em 2em }'; + + var button = document.createElement('button'); + button.innerText = 'OK'; + button.onclick = function () { + dialog.remove(); + onclose(); + }; + + dialog.setAttribute('class', 'netteFormsModal'); + dialog.innerText = message + '\n\n'; + dialog.appendChild(style); + dialog.appendChild(button); + document.body.appendChild(dialog); + dialog.showModal(); + return; + } + alert(message); onclose(); };