From ae093c504cfe17848355dc110372cbbb8b9a668a Mon Sep 17 00:00:00 2001 From: codl Date: Sun, 3 Sep 2017 00:51:54 +0200 Subject: [PATCH] add an explicit dismiss button to reason banner --- assets/settings.js | 19 ++++++++++++++----- assets/styles.css | 41 ++++++++++++++++++++++++++++++++++------ components/Banner.html | 21 +------------------- routes.py | 21 +++++++++++++++++++- templates/index.html | 18 +++++++++--------- templates/logged_in.html | 5 +++++ 6 files changed, 84 insertions(+), 41 deletions(-) diff --git a/assets/settings.js b/assets/settings.js index 4fb349f..74f84a1 100644 --- a/assets/settings.js +++ b/assets/settings.js @@ -168,13 +168,22 @@ import Banner from '../components/Banner.html'; } set_viewer_timeout(); - let reason_banner = document.querySelector('.banner[data-reason]'); - banner.on('toggle', enabled => { send_settings({policy_enabled: enabled}).then(fetch_viewer).then(update_viewer); - if(enabled && reason_banner){ - reason_banner.parentElement.removeChild(reason_banner); - } // TODO show error or spinner if it takes over a second }) + + let reason_banner = document.querySelector('.banner[data-reason]'); + if(reason_banner){ + let dismiss = reason_banner.querySelector('input[type=submit]'); + dismiss.addEventListener('click', e => { + e.preventDefault(); + + // we don't care if this succeeds or fails. worst + // case scenario the banner appears again on a future page load + fetch('/api/reason', {method: 'DELETE', credentials:'same-origin'}); + + reason_banner.parentElement.removeChild(reason_banner); + }) + } })(); diff --git a/assets/styles.css b/assets/styles.css index 4f9e19d..ce694af 100644 --- a/assets/styles.css +++ b/assets/styles.css @@ -187,7 +187,7 @@ form aside { font-size: 0.8em; } -a.btn { +a.login-btn { color: white; text-decoration: none; background-color: #555; @@ -198,16 +198,16 @@ a.btn { display: inline-block; } -a.btn:hover { +a.login-btn:hover { opacity: 0.9; } -.btn > * { +.login-btn > * { display: inline-block; vertical-align: middle; } -.btn-header { +.login-btn-header { flex: 0 0; width: 2em; height: 2em; @@ -219,12 +219,41 @@ a.btn:hover { text-align: center; } -.btn-header img { +.login-btn-header img { margin-top: 0.4em; height: 1.1em; } -.btn-content { +.login-btn-content { margin: 0 .5em; line-height: 2em; } + +.btn { + border: none; + padding: 0.5rem 1rem; +} + +.btn.dismiss, +.enabled .btn.primary { + background-color: transparent; + border: 1px solid currentColor; +} +.disabled .btn.primary { + background-color: #37d; + color: white; + font-weight: bold; +} + +.btn-group.right { + float: right; + margin-left: 1em; +} + +form.btn-group { + margin-top: 0; margin-bottom: 0; +} + +.clearfix { + clear: both; +} diff --git a/components/Banner.html b/components/Banner.html index 76e4733..cb4e7c8 100644 --- a/components/Banner.html +++ b/components/Banner.html @@ -1,6 +1,6 @@