diff --git a/modules/core/templates/logout-iframe-wrapper.twig b/modules/core/templates/logout-iframe-wrapper.twig index 7c9e415d072d9d25553bdb7e8eee4b05c76a4810..a1baa200c0560f829872d64d6492d0cd951f701b 100644 --- a/modules/core/templates/logout-iframe-wrapper.twig +++ b/modules/core/templates/logout-iframe-wrapper.twig @@ -1,16 +1,2 @@ - {% set pagetitle = '{logout:progress}'|trans %} -{% extends "base.twig" %} - -{% block content %} - {# pretty arbitrary height, but should have enough safety margins for most cases #} - {% set iframeHeight = (25 + (SPs|length * 4)) %} - - <iframe style="width:100%; height: {{ iframeHeight }}em; border:0;" src="logout-iframe.php?type=embed&id={{ auth_state|escape('url') }}"></iframe> - - {% for assocId, sp in SPs %} - {% if attribute(sp, 'core:Logout-IFrame:State') == 'inprogress' %} - <iframe style="width:0; height:0; border:0;" src="{{ attribute(sp, 'core:Logout-IFrame:URL')|escape('html') }}</iframe> - {% endif %} - {% endfor %} -{% endblock %} +{% extends "@core/logout-iframe.twig" %} diff --git a/modules/core/templates/logout-iframe.twig b/modules/core/templates/logout-iframe.twig index 1f6bcf8f597024920c104dde4985081fb705457b..e3959ba6282ceb0891b5dea7bb20067921ad25bb 100644 --- a/modules/core/templates/logout-iframe.twig +++ b/modules/core/templates/logout-iframe.twig @@ -4,6 +4,14 @@ {% block preload %} <link rel="preload" href="{{ asset('js/logout.js') }}" as="script"> + {%- if type != "init" %} + {%- set content = '2' %} + {%- if remaining_services|length == 0 %} + {%- set content = '0; url=logout-iframe-done.php?id=' ~ auth_state %} + {%- endif %} + + <meta http-equiv="refresh" content="{{ content }}"> + {% endif %} {% endblock preload %} {% block content %} @@ -17,8 +25,11 @@ {%- if remaining_services %} {%- set failed = false %} {%- set remaining = 0 %} + {%- if remaining_services|length > 0 %} <p>{% trans %}You are also logged in on these services:{% endtrans %}</p> + {%- endif %} + <div class="custom-restricted-width"> <ul class="fa-ul"> {%- for key, sp in remaining_services %} @@ -29,9 +40,13 @@ {%- set icon = 'check-circle' %} {%- elseif sp['status'] == 'failed' %} {%- set icon = 'exclamation-circle' %} - {%- elseif sp['status'] == 'onhold' or sp['status'] == 'inprogress '%} + {%- set failed = true %} + {%- elseif (sp['status'] == 'onhold' or sp['status'] == 'inprogress') %} {%- set remaining = remaining + 1 %} {%- endif %} + {%- if type == 'nojs' and sp['status'] == 'inprogress' %} + {%- set icon = icon ~ ' fa-spin' %} + {%- endif %} <li id="sp-{{ key }}" data-id="{{ key }}" data-status="{{ sp['status'] }}" {#- #} data-timeout="{{ timeout }}"> @@ -47,7 +62,6 @@ {%- endif %} {%- else %} {%- if sp['status'] == 'failed' %} - ({% trans %}logout is not supported{% endtrans %}) {%- endif %} {%- endif %} @@ -57,25 +71,28 @@ </ul> </div> - <br/> - <div id="error-message"{% if not failed %} class="hidden"{% endif %}> + <br> + <div id="error-message"{% if not failed or type == 'init' %} class="hidden"{% endif %}> <div class="message-box error"> {% trans %}Unable to log out of one or more services. To ensure that all your {#- #} sessions are closed, you are encouraged to <i>close your webbrowser</i>.{% endtrans %} </div> </div> - <form id="error-form" action="logout-iframe-done.php"{% if remaining %} class="hidden"{% endif %}> + <form id="error-form" action="logout-iframe-done.php" + {%- if (not failed or type == 'init') and remaining %} class="hidden"{% endif %}> <input type="hidden" name="id" value="{{ auth_state }}"> <button type="submit" id="btn-continue" name="ok" class="pure-button pure-button-red"> {%- trans %}Continue{% endtrans -%} </button> </form> - <div id="original-actions"{% if remaining == 0 %} class="hidden"{% endif %}> + <div id="original-actions"{% if type != 'init' %} class="hidden"{% endif %}> <p>{% trans %}Do you want to logout from all the services above?{% endtrans %}</p> <div class="pure-button-group two-elements"> <form id="startform" action="logout-iframe.php"> <input type="hidden" name="id" value="{{ auth_state }}"> - <input type="hidden" name="type" value="nojs" id="logout-type-selector">{# ?? #} + <noscript> + <input type="hidden" name="type" value="nojs" id="logout-type-selector"> + </noscript> <button type="submit" id="btn-all" name="ok" class="pure-button pure-button-red"> {%- trans %}Yes, all services{% endtrans -%} </button> @@ -90,6 +107,13 @@ </form> </div> </div> + {%- else %} + <form id="error-form" action="logout-iframe-done.php"> + <input type="hidden" name="id" value="{{ auth_state }}"> + <button type="submit" id="btn-continue" name="ok" class="pure-button pure-button-red"> + {%- trans %}Continue{% endtrans -%} + </button> + </form> {% endif %} {% endblock %}