From f671009c3d3a58ac5401afe2d12f10cf1c60d1d8 Mon Sep 17 00:00:00 2001 From: hadi Date: Thu, 25 May 2023 16:34:28 +0200 Subject: [PATCH] Fix egw message in login page is not removable --- api/js/jsapi/egw.js | 2 + api/js/login.js | 142 ++++++++++++++++++++++---------------------- 2 files changed, 74 insertions(+), 70 deletions(-) diff --git a/api/js/jsapi/egw.js b/api/js/jsapi/egw.js index a042e71353..2eb7d94e21 100644 --- a/api/js/jsapi/egw.js +++ b/api/js/jsapi/egw.js @@ -452,6 +452,8 @@ window.app = {classes: {}}; // window.egw_LAB.wait = window.egw_ready.then; + // dispatch egw-is-created event in order to let login.js knows about egw object readiness + document.dispatchEvent(new Event('egw-is-created')); /** * */ diff --git a/api/js/login.js b/api/js/login.js index 61c1564df6..13727da62a 100644 --- a/api/js/login.js +++ b/api/js/login.js @@ -20,86 +20,88 @@ catch (exception){ alert('Your browser is not up-to-date (JavaScript ES2020 compatible), you may experience some of the features not working.'); } -egw_ready.then(function() -{ - jQuery(document).ready(function() +// listen to egw-is-created object to make sure egw object is ready +document.addEventListener('egw-is-created', function(){ + egw_ready.then(function() { - // lock the device orientation in portrait view - if (screen.orientation && typeof screen.orientation.lock == 'function') screen.orientation.lock('portrait'); - jQuery('.close').click(function (){ - setTimeout(function(){jQuery('.egw_message_wrapper').slideUp("slow");},100); - }); - function do_social(_data) + jQuery(document).ready(function() { - var social = jQuery(document.createElement('div')) - .attr({ - id: "socialMedia", - class: "socialMedia" - }) - .appendTo(jQuery('#socialBox')); - - for(var i=0; i < _data.length; ++i) + // lock the device orientation in portrait view + if (screen.orientation && typeof screen.orientation.lock == 'function') screen.orientation.lock('portrait'); + jQuery('.close').click(function (){ + setTimeout(function(){jQuery('.egw_message_wrapper').slideUp("slow");},100); + }); + function do_social(_data) { - var data = _data[i]; - var url = (data.lang ? data.lang[jQuery('meta[name="language"]').attr('content')] : null) || data.url; - jQuery(document.createElement('a')).attr({ - href: url, - target: '_blank' - }) - .appendTo(social) - .append(jQuery(document.createElement('img')) - .attr('src', data.svg)); + var social = jQuery(document.createElement('div')) + .attr({ + id: "socialMedia", + class: "socialMedia" + }) + .appendTo(jQuery('#socialBox')); + + for(var i=0; i < _data.length; ++i) + { + var data = _data[i]; + var url = (data.lang ? data.lang[jQuery('meta[name="language"]').attr('content')] : null) || data.url; + jQuery(document.createElement('a')).attr({ + href: url, + target: '_blank' + }) + .appendTo(social) + .append(jQuery(document.createElement('img')) + .attr('src', data.svg)); + } } - } - do_social([ - { "svg": egw_webserverUrl+"/api/templates/default/images/logo164x164.svg", "url": "https://www.egroupware.org/en", "lang": { "de": "https://www.egroupware.org/de/" }}, - { "svg": egw_webserverUrl+"/api/templates/default/images/login_contact.svg", "url": "https://www.egroupware.org/en/contact.html", "lang": { "de": "https://www.egroupware.org/de/kontakt.html" }}, - { "svg": egw_webserverUrl+"/api/templates/default/images/login_facebook.svg", "url": "https://www.facebook.com/egroupware" }, - { "svg": egw_webserverUrl+"/api/templates/default/images/login_twitter.svg", "url": "https://twitter.com/egroupware" }, - { "svg": egw_webserverUrl+"/api/templates/default/images/login_discourse.svg", "url": "https://help.egroupware.org" }, - { "svg": egw_webserverUrl+"/api/templates/default/images/login_github.svg", "url": "https://github.com/EGroupware/egroupware" } - ]); + do_social([ + { "svg": egw_webserverUrl+"/api/templates/default/images/logo164x164.svg", "url": "https://www.egroupware.org/en", "lang": { "de": "https://www.egroupware.org/de/" }}, + { "svg": egw_webserverUrl+"/api/templates/default/images/login_contact.svg", "url": "https://www.egroupware.org/en/contact.html", "lang": { "de": "https://www.egroupware.org/de/kontakt.html" }}, + { "svg": egw_webserverUrl+"/api/templates/default/images/login_facebook.svg", "url": "https://www.facebook.com/egroupware" }, + { "svg": egw_webserverUrl+"/api/templates/default/images/login_twitter.svg", "url": "https://twitter.com/egroupware" }, + { "svg": egw_webserverUrl+"/api/templates/default/images/login_discourse.svg", "url": "https://help.egroupware.org" }, + { "svg": egw_webserverUrl+"/api/templates/default/images/login_github.svg", "url": "https://github.com/EGroupware/egroupware" } + ]); - // automatic submit of SAML IdP selection - jQuery('select[name="auth=saml"]').on('change', function() { - if (this.value) { + // automatic submit of SAML IdP selection + jQuery('select[name="auth=saml"]').on('change', function() { + if (this.value) { + this.form.method = 'get'; + jQuery(this.form).append(''); + jQuery(this.form).append(''); + this.form.submit(); + } + }); + // or optional SAML login with a button for a single IdP + jQuery('input[type="submit"][name="auth=saml"]').on('click', function(){ this.form.method = 'get'; jQuery(this.form).append(''); - jQuery(this.form).append(''); - this.form.submit(); - } - }); - // or optional SAML login with a button for a single IdP - jQuery('input[type="submit"][name="auth=saml"]').on('click', function(){ - this.form.method = 'get'; - jQuery(this.form).append(''); - }); - // prefer [Login] button below over maybe existing SAML login button above - jQuery('input').on('keypress', function(e) - { - if (e.which == 13) + }); + // prefer [Login] button below over maybe existing SAML login button above + jQuery('input').on('keypress', function(e) { - this.form.submit(); - return false; - } - }); - //cleanup darkmode session value - egw.setSessionItem('api', 'darkmode',''); + if (e.which == 13) + { + this.form.submit(); + return false; + } + }); + //cleanup darkmode session value + egw.setSessionItem('api', 'darkmode',''); - jQuery(".tooltip", "#login_footer").on('click', function(e){ - if (e.target == this) window.open(this.getElementsByTagName('a')[0].href, 'blank'); + jQuery(".tooltip", "#login_footer").on('click', function(e){ + if (e.target == this) window.open(this.getElementsByTagName('a')[0].href, 'blank'); + }); }); }); + // register service worker + if ('serviceWorker' in navigator) { + navigator.serviceWorker.register('./service-worker.js', {scope:egw_webserverUrl+'/'}) + .then(function(registration) { + console.log('Registration successful, scope is:', registration.scope); + }) + .catch(function(error) { + console.log('Service worker registration failed, error:', error); + }); + } }); - -// register service worker -if ('serviceWorker' in navigator) { - navigator.serviceWorker.register('./service-worker.js', {scope:egw_webserverUrl+'/'}) - .then(function(registration) { - console.log('Registration successful, scope is:', registration.scope); - }) - .catch(function(error) { - console.log('Service worker registration failed, error:', error); - }); -} \ No newline at end of file