From 41fe24aaac342ca494f7d10c064db8f66b6740ab Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Fri, 22 Dec 2017 21:22:12 -0700 Subject: [PATCH] Rewrite navbar code for better tablet behavior --- www/css/app.css | 51 ++++++++++++++++++++++++++---- www/index.html | 7 +++-- www/js/app.js | 82 ++++++++++++++++++++++++++++++++++--------------- 3 files changed, 108 insertions(+), 32 deletions(-) diff --git a/www/css/app.css b/www/css/app.css index bf2ce1d..c52af5e 100644 --- a/www/css/app.css +++ b/www/css/app.css @@ -55,7 +55,28 @@ html, body { text-align: center; } -span.navbar-brand { +/* https://stackoverflow.com/a/23536146 */ + +.navbar-collapse.collapse { + display: block!important; +} + +.navbar-nav>li, .navbar-nav { + float: left !important; +} + +.navbar-nav.navbar-right:last-child { + margin-right: -15px !important; +} + +.navbar-right { + float: right!important; +} + +/* /stackoverflow */ + + +.nav { color: white; margin-right: 0px; height: 30px; @@ -64,16 +85,34 @@ span.navbar-brand { margin-left: 5px; } -.navbar-brand.pull-left img { - margin-right: -10px; - height: 30px; +.navbar-right span { + color: white; + font-size: 18px; margin-top: -4px; - margin-left: -4px; } -.navbar-brand.pull-right img { +.navbar-brand img { + margin-right: 15px; height: 30px; margin-top: -4px; + margin-left: -10px; + display: inline-block; +} + +.navbar-right li a img { + height: 30px; + margin-top: 6px; + display: inline-block; +} + +@media (min-width: 768px) { + .navbar-right { + margin-top: -6px; + } + + .navbar-right li a img { + margin-top: -1px; + } } #manual_setup { diff --git a/www/index.html b/www/index.html index 17f63fd..2004fa3 100644 --- a/www/index.html +++ b/www/index.html @@ -27,9 +27,12 @@ diff --git a/www/js/app.js b/www/js/app.js index 4078ed3..7555684 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -77,17 +77,46 @@ function openfragment(fragment, target, effect) { } } +/** + * Add button to the top navbar. + * @param String screenid openscreen(screenid) + * @param String icon The filename of the icon to show: '); +} + +/** + * Hide the back arrow if screenid === false, otherwise show it and have it open screenid + * @param String screenid The ID of the screen to open when pressed. + * @returns {undefined} + */ +function setnavbartitle(title, showarrow, backscreen) { + var arrow = ""; + if (showarrow === true) { + arrow = ''; + } + var onclick = ""; + if (backscreen !== null && backscreen !== false) { + onclick = ' onclick=\'openscreen("' + backscreen + '", "FADE");\''; + } + $("#navbar-header").html('' + arrow + title + ''); +} + /** * Set the navbar. * @param String,boolean type false if no navbar, "home" for the home screen, * "settings" for settings, "app" for a custom title, or anything else for * a simple one. - * @param String title The title to show if type == "app" + * @param String screentitle The title to show if type == "app" * @param String returnscreen Where to go back to. Defaults to "home". * @returns {undefined} */ -function setnavbar(type, title, returnscreen) { +function setnavbar(type, screentitle, returnscreen) { var navbar = $('#navbar-header'); + var btns = $('#navbar-buttons'); if (type == false) { $('#navbar').css('display', 'none'); $('#content-zone').css('margin-top', '0px'); @@ -106,28 +135,33 @@ function setnavbar(type, title, returnscreen) { } else { _returnscreen = returnscreen; } - navbar.fadeOut(150, function () { - switch (type) { - case "home": - navbar.html('Business     '); - break; - case "setup": - navbar.html('Business   '); - break; - case "settings": - navbar.html('Settings'); - break; - case "otp": - navbar.html('Auth Keys'); - break; - case "app": - navbar.html('' + title + ''); - break; - default: - navbar.html('Business'); - } - navbar.fadeIn(150); - }); + btns.html(""); + switch (type) { + case "home": + setnavbartitle("Business", false, false); + addnavbarbtn("mobilecode", "ic_lock.svg", "Code Login"); + addnavbarbtn("otp", "ic_vpn_key.svg", "2-factor Auth"); + addnavbarbtn("settings", "ic_settings.svg", "Settings"); + break; + case "setup": + setnavbartitle("Business", false, false); + addnavbarbtn("otp", "ic_vpn_key.svg", "2-factor Auth"); + addnavbarbtn("settings", "ic_settings.svg", "Settings"); + break; + case "settings": + setnavbartitle("Settings", true, "home"); + break; + case "otp": + setnavbartitle("Auth Keys", true, "home"); + addnavbarbtn("addotp", "ic_add.svg", "Add Code"); + break; + case "app": + setnavbartitle(screentitle, true, returnscreen); + break; + default: + setnavbartitle("Business", false, false); + break; + } } }