Add status icon to inform user about secure/not secure connection
This commit is contained in:
parent
3ee17f8dd4
commit
afb1c5131e
@ -18,10 +18,21 @@
|
|||||||
<body>
|
<body>
|
||||||
<div id="navigation">
|
<div id="navigation">
|
||||||
<div id="history">
|
<div id="history">
|
||||||
<button id="home"><i class="fas fa-home"></i></button>
|
<button id="status">
|
||||||
<button id="back"><i class="fas fa-arrow-left"></i></button>
|
<i class="fas fa-question unknown active">
|
||||||
|
<span class="tip">Unknown protocol</span>
|
||||||
|
</i>
|
||||||
|
<i class="fas fa-lock https">
|
||||||
|
<span class="tip">Secured via TLS (https)</span>
|
||||||
|
</i>
|
||||||
|
<i class="fas fa-lock-open http">
|
||||||
|
<span class="tip">Vulnerable connection (http)</span>
|
||||||
|
</i>
|
||||||
|
</button>
|
||||||
|
<button id="home" class="disabled"><i class="fas fa-home"></i></button>
|
||||||
|
<button id="back" class="disabled"><i class="fas fa-arrow-left"></i></button>
|
||||||
<button id="forward" class="disabled"><i class="fas fa-arrow-right"></i></button>
|
<button id="forward" class="disabled"><i class="fas fa-arrow-right"></i></button>
|
||||||
<button id="reload"><i class="fas fa-redo"></i></button>
|
<button id="reload" class="disabled"><i class="fas fa-redo"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="service-buttons">
|
<div id="service-buttons">
|
||||||
|
@ -16,7 +16,7 @@ const icons = [];
|
|||||||
|
|
||||||
let services = [];
|
let services = [];
|
||||||
let selectedService = null;
|
let selectedService = null;
|
||||||
let homeButton, forwardButton, backButton, reloadButton;
|
let statusButton, homeButton, forwardButton, backButton, reloadButton;
|
||||||
let addButton;
|
let addButton;
|
||||||
let emptyPage;
|
let emptyPage;
|
||||||
let urlPreview;
|
let urlPreview;
|
||||||
@ -364,6 +364,8 @@ function reorderService(serviceId, targetId) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
statusButton = document.getElementById('status');
|
||||||
|
|
||||||
homeButton = document.getElementById('home');
|
homeButton = document.getElementById('home');
|
||||||
homeButton.addEventListener('click', () => goHome());
|
homeButton.addEventListener('click', () => goHome());
|
||||||
|
|
||||||
@ -594,16 +596,30 @@ function updateNavigation() {
|
|||||||
// Update history navigation
|
// Update history navigation
|
||||||
let view = services[selectedService].view;
|
let view = services[selectedService].view;
|
||||||
|
|
||||||
|
homeButton.classList.remove('disabled');
|
||||||
|
|
||||||
if (view && view.canGoForward()) forwardButton.classList.remove('disabled');
|
if (view && view.canGoForward()) forwardButton.classList.remove('disabled');
|
||||||
else forwardButton.classList.add('disabled');
|
else forwardButton.classList.add('disabled');
|
||||||
|
|
||||||
if (view && view.canGoBack()) backButton.classList.remove('disabled');
|
if (view && view.canGoBack()) backButton.classList.remove('disabled');
|
||||||
else backButton.classList.add('disabled');
|
else backButton.classList.add('disabled');
|
||||||
|
|
||||||
|
reloadButton.classList.remove('disabled');
|
||||||
|
|
||||||
|
updateStatusButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
updateWindowTitle();
|
updateWindowTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateStatusButton() {
|
||||||
|
for (const c of statusButton.children) {
|
||||||
|
const protocol = services[selectedService].view.getURL().split('://')[0];
|
||||||
|
if (c.classList.contains(protocol)) c.classList.add('active');
|
||||||
|
else c.classList.remove('active');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function updateWindowTitle() {
|
function updateWindowTitle() {
|
||||||
if (selectedService === null) {
|
if (selectedService === null) {
|
||||||
ipcRenderer.send('updateWindowTitle', null);
|
ipcRenderer.send('updateWindowTitle', null);
|
||||||
|
@ -143,10 +143,14 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#history {
|
#history {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#history button {
|
#history button,
|
||||||
|
#history .status {
|
||||||
display: inline;
|
display: inline;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
@ -158,6 +162,8 @@ body {
|
|||||||
|
|
||||||
color: #fff;
|
color: #fff;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#history button i {
|
#history button i {
|
||||||
@ -186,6 +192,65 @@ body {
|
|||||||
background-color: #fff4;
|
background-color: #fff4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#history #status {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#history #status .unknown {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#history #status .https {
|
||||||
|
color: #009800;
|
||||||
|
}
|
||||||
|
|
||||||
|
#history #status .http {
|
||||||
|
color: #e20000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#history #status > :not(.active) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#history #status > * .tip {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
left: 100%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
display: none;
|
||||||
|
margin-left: 8px;
|
||||||
|
|
||||||
|
background-color: #000;
|
||||||
|
padding: 8px;
|
||||||
|
border-radius: 4px;
|
||||||
|
white-space: nowrap;
|
||||||
|
color: #fff;
|
||||||
|
text-transform: none;
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
#history #status > * .tip::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-100%, -50%);
|
||||||
|
display: inline-block;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border: 0 solid transparent;
|
||||||
|
border-top-width: 4px;
|
||||||
|
border-bottom-width: 4px;
|
||||||
|
border-right: 7px solid black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#history #status:focus > * .tip {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
#navigation #add-button:not(:hover) {
|
#navigation #add-button:not(:hover) {
|
||||||
opacity: 0.75;
|
opacity: 0.75;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user