From 8bfd2970080e4e1bbaf8f192114a46fc63587a9f Mon Sep 17 00:00:00 2001 From: Nick Krecklow Date: Mon, 11 May 2020 20:53:59 -0500 Subject: [PATCH] remove big-graph-mobile-load-request --- assets/css/main.css | 15 --------------- assets/html/index.html | 7 ------- assets/js/graph.js | 5 +---- assets/js/main.js | 8 -------- assets/js/socket.js | 17 ++--------------- assets/js/util.js | 8 -------- docs/CHANGELOG.md | 1 + 7 files changed, 4 insertions(+), 57 deletions(-) diff --git a/assets/css/main.css b/assets/css/main.css index 5b66c19..4fbf6a7 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -329,21 +329,6 @@ footer a:hover { } /* Historical graph */ -#big-graph-mobile-load-request { - background: var(--background-color); - color: var(--text-color); - padding: 10px 0; - text-align: center; - display: none; - width: 100%; - margin-bottom: 10px; -} - -#big-graph-mobile-load-request a { - display: inline-block; - color: var(--text-color); -} - #big-graph { padding-right: 65px; } diff --git a/assets/html/index.html b/assets/html/index.html index 70e0abb..f2fa20b 100644 --- a/assets/html/index.html +++ b/assets/html/index.html @@ -61,13 +61,6 @@ -
- On a mobile device? -

Minetrack has skipped automatically loading the historical graph to help save data and power.

-
- Load Historical Graph -
-
diff --git a/assets/js/graph.js b/assets/js/graph.js index d89b650..70227a8 100644 --- a/assets/js/graph.js +++ b/assets/js/graph.js @@ -2,7 +2,7 @@ import uPlot from '../lib/uPlot.esm' import { RelativeScale } from './scale' -import { formatNumber, formatTimestampSeconds, isMobileBrowser } from './util' +import { formatNumber, formatTimestampSeconds } from './util' import { uPlotTooltipPlugin } from './tooltip' import { FAVORITE_SERVERS_STORAGE_KEY } from './favorites' @@ -11,9 +11,6 @@ const HIDDEN_SERVERS_STORAGE_KEY = 'minetrack_hidden_servers' const SHOW_FAVORITES_STORAGE_KEY = 'minetrack_show_favorites' export class GraphDisplayManager { - // Only emit graph data request if not on mobile due to graph data size - isVisible = !isMobileBrowser() - constructor (app) { this._app = app this._graphData = [] diff --git a/assets/js/main.js b/assets/js/main.js index c0ee1b5..cd7ee3e 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -11,12 +11,4 @@ document.addEventListener('DOMContentLoaded', () => { // Delegate to GraphDisplayManager which can check if the resize is necessary app.graphDisplayManager.requestResize() }, false) - - document.getElementById('big-graph-mobile-load-request-button').addEventListener('click', function () { - // Send a graph data request to the backend - app.socketManager.sendHistoryGraphRequest() - - // Hide the activation link to avoid multiple requests - document.getElementById('big-graph-mobile-load-request').style.display = 'none' - }, false) }, false) diff --git a/assets/js/socket.js b/assets/js/socket.js index 24e1049..25cdd01 100644 --- a/assets/js/socket.js +++ b/assets/js/socket.js @@ -38,9 +38,6 @@ export class SocketManager { this._app.caption.set('Disconnected due to error.') } - // Reset modified DOM structures - document.getElementById('big-graph-mobile-load-request').style.display = 'none' - // Schedule socket reconnection attempt this.scheduleReconnect() } @@ -59,11 +56,7 @@ export class SocketManager { // Allow the graphDisplayManager to control whether or not the historical graph is loaded // Defer to isGraphVisible from the publicConfig to understand if the frontend will ever receive a graph payload if (this._app.publicConfig.isGraphVisible) { - if (this._app.graphDisplayManager.isVisible) { - this.sendHistoryGraphRequest() - } else { - document.getElementById('big-graph-mobile-load-request').style.display = 'block' - } + this.sendHistoryGraphRequest() } payload.servers.forEach((serverPayload, serverId) => { @@ -99,9 +92,7 @@ export class SocketManager { this._app.graphDisplayManager.addGraphPoint(payload.timestamp, Object.values(payload.updates).map(update => update.playerCount)) // Run redraw tasks after handling bulk updates - if (this._app.graphDisplayManager.isVisible) { - this._app.graphDisplayManager.redraw() - } + this._app.graphDisplayManager.redraw() } this._app.percentageBar.redraw() @@ -116,10 +107,6 @@ export class SocketManager { } case 'historyGraph': { - // Consider the graph visible since a payload has been received - // This is used for the manual graph load request behavior - this._app.graphDisplayManager.isVisible = true - this._app.graphDisplayManager.buildPlotInstance(payload.timestamps, payload.graphData) // Build checkbox elements for graph controls diff --git a/assets/js/util.js b/assets/js/util.js index be1dc8f..474cc76 100644 --- a/assets/js/util.js +++ b/assets/js/util.js @@ -119,11 +119,3 @@ export function formatPercent (x, over) { export function formatNumber (x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') } - -// From http://detectmobilebrowsers.com/ -export function isMobileBrowser () { - var check = false; - // eslint-disable-next-line no-useless-escape - (function (a) { if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)))check = true })(navigator.userAgent || navigator.vendor || window.opera) - return check -} diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 6d56d25..65ce7f0 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -11,6 +11,7 @@ This update moves ping timestamps to a shared timestamp per round. Meaning that - All graphs now have horizontal ticks to improve readability. - Graphs will now display gaps (null) when the ping fails. This removes legacy graph smoothing code and prevents 0 player count pings messing up graph scales. - Graphs will now render the same on initial page load as they will after being open for a while. This fixes a long standing bug where the frontend ignored 0 player count pings in updates but not on initial load. +- Removes the mobile browser detection/manual historical graph load request. It is now automatically loaded given its smaller size. Faster, smaller, more features.