From aa88bf7a67af9f6017e58846850b7a89002f84f8 Mon Sep 17 00:00:00 2001 From: erdnaxe Date: Sat, 25 Jan 2020 10:58:23 +0000 Subject: [PATCH] Bootstrap 4 templates (#47) --- README.rst | 15 ++- cas_server/default_settings.py | 10 +- .../static/cas_server/{ => bs3}/styles.css | 0 cas_server/static/cas_server/bs4/fa-lock.svg | 2 + cas_server/static/cas_server/bs4/fa-user.svg | 2 + cas_server/static/cas_server/bs4/styles.css | 34 +++++++ .../templates/cas_server/{ => bs3}/base.html | 2 +- .../templates/cas_server/{ => bs3}/form.html | 0 .../cas_server/{ => bs3}/logged.html | 2 +- .../templates/cas_server/{ => bs3}/login.html | 4 +- .../cas_server/{ => bs3}/logout.html | 2 +- .../templates/cas_server/{ => bs3}/warn.html | 4 +- cas_server/templates/cas_server/bs4/base.html | 91 +++++++++++++++++++ cas_server/templates/cas_server/bs4/form.html | 33 +++++++ .../templates/cas_server/bs4/logged.html | 21 +++++ .../templates/cas_server/bs4/login.html | 33 +++++++ .../templates/cas_server/bs4/logout.html | 7 ++ cas_server/templates/cas_server/bs4/warn.html | 11 +++ 18 files changed, 257 insertions(+), 16 deletions(-) rename cas_server/static/cas_server/{ => bs3}/styles.css (100%) create mode 100644 cas_server/static/cas_server/bs4/fa-lock.svg create mode 100644 cas_server/static/cas_server/bs4/fa-user.svg create mode 100644 cas_server/static/cas_server/bs4/styles.css rename cas_server/templates/cas_server/{ => bs3}/base.html (98%) rename cas_server/templates/cas_server/{ => bs3}/form.html (100%) rename cas_server/templates/cas_server/{ => bs3}/logged.html (95%) rename cas_server/templates/cas_server/{ => bs3}/login.html (91%) rename cas_server/templates/cas_server/{ => bs3}/logout.html (76%) rename cas_server/templates/cas_server/{ => bs3}/warn.html (75%) create mode 100644 cas_server/templates/cas_server/bs4/base.html create mode 100644 cas_server/templates/cas_server/bs4/form.html create mode 100644 cas_server/templates/cas_server/bs4/logged.html create mode 100644 cas_server/templates/cas_server/bs4/login.html create mode 100644 cas_server/templates/cas_server/bs4/logout.html create mode 100644 cas_server/templates/cas_server/bs4/warn.html diff --git a/README.rst b/README.rst index 7f2c767..63aa0bb 100644 --- a/README.rst +++ b/README.rst @@ -207,13 +207,16 @@ Template settings * ``CAS_SHOW_POWERED``: Set it to ``False`` to hide the powered by footer. The default is ``True``. * ``CAS_COMPONENT_URLS``: URLs to css and javascript external components. It is a dictionnary having the five following keys: ``"bootstrap3_css"``, ``"bootstrap3_js"``, - ``"html5shiv"``, ``"respond"``, ``"jquery"``. The default is:: + ``bootstrap4_css``, ``bootstrap4_js``, ``"html5shiv"``, ``"respond"``, ``"jquery"``. + The default is:: { "bootstrap3_css": "//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css", "bootstrap3_js": "//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js", "html5shiv": "//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js", "respond": "//oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js", + "bootstrap4_css": "//stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css", + "bootstrap4_js": "//stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js", "jquery": "//code.jquery.com/jquery.min.js", } @@ -245,17 +248,19 @@ Template settings * ``CAS_INFO_MESSAGES_ORDER``: A list of message names. Order in which info-box messages are displayed. Use an empty list to disable messages display. The default is ``[]``. * ``CAS_LOGIN_TEMPLATE``: Path to the template showed on ``/login`` then the user - is not autenticated. The default is ``"cas_server/login.html"``. + is not autenticated. The default is ``"cas_server/bs4/login.html"``. * ``CAS_WARN_TEMPLATE``: Path to the template showed on ``/login?service=...`` then the user is authenticated and has asked to be warned before being connected - to a service. The default is ``"cas_server/warn.html"``. + to a service. The default is ``"cas_server/bs4/warn.html"``. * ``CAS_LOGGED_TEMPLATE``: Path to the template showed on ``/login`` then to user is - authenticated. The default is ``"cas_server/logged.html"``. + authenticated. The default is ``"cas_server/bs4/logged.html"``. * ``CAS_LOGOUT_TEMPLATE``: Path to the template showed on ``/logout`` then to user - is being disconnected. The default is ``"cas_server/logout.html"`` + is being disconnected. The default is ``"cas_server/bs4/logout.html"`` * ``CAS_REDIRECT_TO_LOGIN_AFTER_LOGOUT``: Should we redirect users to ``/login`` after they logged out instead of displaying ``CAS_LOGOUT_TEMPLATE``. The default is ``False``. +Note that the old bootstrap3 template is available in ``cas_server/bs3/`` + Authentication settings ----------------------- diff --git a/cas_server/default_settings.py b/cas_server/default_settings.py index 14b2352..8e72b54 100644 --- a/cas_server/default_settings.py +++ b/cas_server/default_settings.py @@ -39,17 +39,19 @@ CAS_COMPONENT_URLS = { "bootstrap3_js": "//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js", "html5shiv": "//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js", "respond": "//oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js", + "bootstrap4_css": "//stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css", + "bootstrap4_js": "//stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js", "jquery": "//code.jquery.com/jquery.min.js", } #: Path to the template showed on /login then the user is not autenticated. -CAS_LOGIN_TEMPLATE = 'cas_server/login.html' +CAS_LOGIN_TEMPLATE = 'cas_server/bs4/login.html' #: Path to the template showed on /login?service=... then the user is authenticated and has asked #: to be warned before being connected to a service. -CAS_WARN_TEMPLATE = 'cas_server/warn.html' +CAS_WARN_TEMPLATE = 'cas_server/bs4/warn.html' #: Path to the template showed on /login then to user is authenticated. -CAS_LOGGED_TEMPLATE = 'cas_server/logged.html' +CAS_LOGGED_TEMPLATE = 'cas_server/bs4/logged.html' #: Path to the template showed on /logout then to user is being disconnected. -CAS_LOGOUT_TEMPLATE = 'cas_server/logout.html' +CAS_LOGOUT_TEMPLATE = 'cas_server/bs4/logout.html' #: Should we redirect users to /login after they logged out instead of displaying #: :obj:`CAS_LOGOUT_TEMPLATE`. CAS_REDIRECT_TO_LOGIN_AFTER_LOGOUT = False diff --git a/cas_server/static/cas_server/styles.css b/cas_server/static/cas_server/bs3/styles.css similarity index 100% rename from cas_server/static/cas_server/styles.css rename to cas_server/static/cas_server/bs3/styles.css diff --git a/cas_server/static/cas_server/bs4/fa-lock.svg b/cas_server/static/cas_server/bs4/fa-lock.svg new file mode 100644 index 0000000..24b8dc7 --- /dev/null +++ b/cas_server/static/cas_server/bs4/fa-lock.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/cas_server/static/cas_server/bs4/fa-user.svg b/cas_server/static/cas_server/bs4/fa-user.svg new file mode 100644 index 0000000..ac145d3 --- /dev/null +++ b/cas_server/static/cas_server/bs4/fa-user.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/cas_server/static/cas_server/bs4/styles.css b/cas_server/static/cas_server/bs4/styles.css new file mode 100644 index 0000000..4c379a9 --- /dev/null +++ b/cas_server/static/cas_server/bs4/styles.css @@ -0,0 +1,34 @@ +html, body { + height: 100%; + background-color: #eee; +} +.cover-container { + max-width: 50em; +} + +/* Page title */ +#app-name { + color: #000; + text-shadow: 0 .05rem .2rem rgba(255, 255, 255, .5); +} +#app-name img { + width: 110px; + margin-right: 1rem; +} +@media screen and (max-width: 680px) { + #app-name img { + display: block; + margin: auto; + } +} + +/* Add icons to login form */ +/* Font-Awesome attribution is already done inside SVG files */ +.form-signin input[type="text"] { + background: right 1rem top 50% / 5% no-repeat url('fa-user.svg'); + padding-right: 3rem; +} +.form-signin input[type="password"] { + background: right 1rem top 50% / 5% no-repeat url('fa-lock.svg'); + padding-right: 3rem; +} diff --git a/cas_server/templates/cas_server/base.html b/cas_server/templates/cas_server/bs3/base.html similarity index 98% rename from cas_server/templates/cas_server/base.html rename to cas_server/templates/cas_server/bs3/base.html index 9980d38..45b81e7 100644 --- a/cas_server/templates/cas_server/base.html +++ b/cas_server/templates/cas_server/bs3/base.html @@ -13,7 +13,7 @@ {% if settings.CAS_FAVICON_URL %}{% endif %} - +
diff --git a/cas_server/templates/cas_server/form.html b/cas_server/templates/cas_server/bs3/form.html similarity index 100% rename from cas_server/templates/cas_server/form.html rename to cas_server/templates/cas_server/bs3/form.html diff --git a/cas_server/templates/cas_server/logged.html b/cas_server/templates/cas_server/bs3/logged.html similarity index 95% rename from cas_server/templates/cas_server/logged.html rename to cas_server/templates/cas_server/bs3/logged.html index 46e1c9a..ef929d6 100644 --- a/cas_server/templates/cas_server/logged.html +++ b/cas_server/templates/cas_server/bs3/logged.html @@ -1,4 +1,4 @@ -{% extends "cas_server/base.html" %} +{% extends "cas_server/bs3/base.html" %} {% load i18n %} {% block content %} diff --git a/cas_server/templates/cas_server/login.html b/cas_server/templates/cas_server/bs3/login.html similarity index 91% rename from cas_server/templates/cas_server/login.html rename to cas_server/templates/cas_server/bs3/login.html index 51aa19c..6c34c6b 100644 --- a/cas_server/templates/cas_server/login.html +++ b/cas_server/templates/cas_server/bs3/login.html @@ -1,4 +1,4 @@ -{% extends "cas_server/base.html" %} +{% extends "cas_server/bs3/base.html" %} {% load i18n %} {% block ante_messages %} @@ -9,7 +9,7 @@ {% block content %} {% endblock %} diff --git a/cas_server/templates/cas_server/bs4/base.html b/cas_server/templates/cas_server/bs4/base.html new file mode 100644 index 0000000..3d8d0fc --- /dev/null +++ b/cas_server/templates/cas_server/bs4/base.html @@ -0,0 +1,91 @@ +{% load i18n %}{% load static %}{% get_current_language as LANGUAGE_CODE %} + + + + + {% block title %}{% trans "Central Authentication Service" %}{% endblock %} + + {% if settings.CAS_FAVICON_URL %}{% endif %} + + + +
+ {% if auto_submit %}{% endif %} + +
+ {% block ante_messages %}{% endblock %} +
+ {% for message in messages %} +
+

{{message}}

+
+ {% endfor %} + {% block content %}{% endblock %} +
+
+ + {% if settings.CAS_SHOW_POWERED %} + + {% endif %} +
+ + + + + + {% block javascript %}{% endblock %} + + + diff --git a/cas_server/templates/cas_server/bs4/form.html b/cas_server/templates/cas_server/bs4/form.html new file mode 100644 index 0000000..789363e --- /dev/null +++ b/cas_server/templates/cas_server/bs4/form.html @@ -0,0 +1,33 @@ +{% load cas_server %} + +{% for error in form.non_field_errors %} +
+ + {{error}} +
+{% endfor %} + +{% for field in form %}{% if not field|is_hidden %} +
{% spaceless %} + {% if field|is_checkbox %} +
+ {{field}} + +
+ {% else %} + + {{field}} + {% endif %} + {% for error in field.errors %} + {{error}} + {% endfor %} +{% endspaceless %}
+{% else %}{{field}}{% endif %}{% endfor %} diff --git a/cas_server/templates/cas_server/bs4/logged.html b/cas_server/templates/cas_server/bs4/logged.html new file mode 100644 index 0000000..f39cadb --- /dev/null +++ b/cas_server/templates/cas_server/bs4/logged.html @@ -0,0 +1,21 @@ +{% extends "cas_server/bs4/base.html" %} +{% load i18n %} +{% block content %} + + +{% endblock %} + diff --git a/cas_server/templates/cas_server/bs4/login.html b/cas_server/templates/cas_server/bs4/login.html new file mode 100644 index 0000000..2f9c0ae --- /dev/null +++ b/cas_server/templates/cas_server/bs4/login.html @@ -0,0 +1,33 @@ +{% extends "cas_server/bs4/base.html" %} +{% load i18n %} + +{% block ante_messages %} + {% if auto_submit %}{% endif %} +{% endblock %} + +{% block content %} + +{% endblock %} + +{% block javascript_inline %} +jQuery(function( $ ){ + $("#id_warn").click(function(e){ + if($("#id_warn").is(':checked')){ + createCookie("warn", "on", 10 * 365); + } else { + eraseCookie("warn"); + } + }); +}); +{% if auto_submit %}document.getElementById('login_form').submit(); // SUBMIT FORM{% endif %} +{% endblock %} diff --git a/cas_server/templates/cas_server/bs4/logout.html b/cas_server/templates/cas_server/bs4/logout.html new file mode 100644 index 0000000..d881efc --- /dev/null +++ b/cas_server/templates/cas_server/bs4/logout.html @@ -0,0 +1,7 @@ +{% extends "cas_server/bs4/base.html" %} +{% load static %} +{% load i18n %} +{% block content %} + +{% endblock %} + diff --git a/cas_server/templates/cas_server/bs4/warn.html b/cas_server/templates/cas_server/bs4/warn.html new file mode 100644 index 0000000..b8f2439 --- /dev/null +++ b/cas_server/templates/cas_server/bs4/warn.html @@ -0,0 +1,11 @@ +{% extends "cas_server/bs4/base.html" %} +{% load static %} +{% load i18n %} + +{% block content %} + +{% endblock %}