From 16f23c08c691aeab4683fb5a485fdd96a1467c05 Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Fri, 28 Aug 2020 22:23:35 +0200 Subject: [PATCH] [Dart] Cleaner code, force the web page to reload on modifier code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The code in `navbar.dart' is now more declarative and cleaner. If the `lastUpdate' variable’s content change, then it will force the user to reload the page, bypassing their cache. This can be useful in case of an update with which the cache could break the website. --- web/dart/navbar.dart | 10 ++++------ web/dart/reorganize_html.dart | 10 +++++++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/web/dart/navbar.dart b/web/dart/navbar.dart index e3e2720..61b92ec 100644 --- a/web/dart/navbar.dart +++ b/web/dart/navbar.dart @@ -51,15 +51,11 @@ Future makeHome() async { // Create a clickable icon // `t_elem` must be an SVG declared in the above `icons` variable. Element makeIcon(SvgElement t_elem) { - final icon = t_elem..classes.add('nav-icon'); - return icon; + return t_elem..classes.add('nav-icon'); } // Create the dropdown sitemap Future makePages() async { - var pages = Element.ul() - ..attributes['id'] = 'drop-page' - ..classes.add('dropdown'); return Element.li() ..attributes['tabindex'] = '0' ..append(Element.a() @@ -67,7 +63,9 @@ Future makePages() async { ..attributes['href'] = 'javascript:void(0)' ..append(makeIcon(icons['pages']))) ..classes.addAll(['nav-item', 'has-dropdown']) - ..append(pages); + ..append(Element.ul() + ..attributes['id'] = 'drop-page' + ..classes.add('dropdown')); } // Create the array of share icons diff --git a/web/dart/reorganize_html.dart b/web/dart/reorganize_html.dart index 72a5ce2..00f821b 100644 --- a/web/dart/reorganize_html.dart +++ b/web/dart/reorganize_html.dart @@ -1,4 +1,5 @@ -import 'dart:html' show DivElement, Element, querySelector, querySelectorAll; +import 'dart:html' + show DivElement, Element, querySelector, querySelectorAll, window; import './navbar.dart' show makeNavbar; @@ -40,6 +41,13 @@ Future linkifyImg() async { } Future reorganizeHtml() async { + final ls = window.localStorage; + final lastUpdate = '20200828'; + if (ls['last-update'] != lastUpdate) { + ls['last-update'] = lastUpdate; + window.location.reload(); + } + // Make navbar final navbar = await makeNavbar();