From 831e4e0989a96f304d848f67de2fb178e8d736f6 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Wed, 18 Apr 2018 20:43:04 -0700 Subject: [PATCH] GUACAMOLE-549: Migrate recent connection history to localStorageService. --- .../main/webapp/app/history/historyModule.js | 4 ++- .../app/history/services/guacHistory.js | 33 ++++++++----------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/guacamole/src/main/webapp/app/history/historyModule.js b/guacamole/src/main/webapp/app/history/historyModule.js index ce2ab7358..c7ec7e103 100644 --- a/guacamole/src/main/webapp/app/history/historyModule.js +++ b/guacamole/src/main/webapp/app/history/historyModule.js @@ -20,4 +20,6 @@ /** * The module for code relating to connection history. */ -angular.module('history', []); +angular.module('history', [ + 'storage' +]); diff --git a/guacamole/src/main/webapp/app/history/services/guacHistory.js b/guacamole/src/main/webapp/app/history/services/guacHistory.js index b47f9f509..74046ef9f 100644 --- a/guacamole/src/main/webapp/app/history/services/guacHistory.js +++ b/guacamole/src/main/webapp/app/history/services/guacHistory.js @@ -20,7 +20,14 @@ /** * A service for reading and manipulating the Guacamole connection history. */ -angular.module('history').factory('guacHistory', ['HistoryEntry', function guacHistory(HistoryEntry) { +angular.module('history').factory('guacHistory', ['$injector', + function guacHistory($injector) { + + // Required types + var HistoryEntry = $injector.get('HistoryEntry'); + + // Required services + var localStorageService = $injector.get('localStorageService'); var service = {}; @@ -73,27 +80,15 @@ angular.module('history').factory('guacHistory', ['HistoryEntry', function guacH if (service.recentConnections.length > IDEAL_LENGTH) service.recentConnections.length = IDEAL_LENGTH; - // Save updated history, ignore inability to use localStorage - try { - if (localStorage) - localStorage.setItem(GUAC_HISTORY_STORAGE_KEY, JSON.stringify(service.recentConnections)); - } - catch (ignore) {} + // Save updated history + localStorageService.setItem(GUAC_HISTORY_STORAGE_KEY, service.recentConnections); }; - // Get stored connection history, ignore inability to use localStorage - try { - - if (localStorage) { - var storedHistory = JSON.parse(localStorage.getItem(GUAC_HISTORY_STORAGE_KEY) || "[]"); - if (storedHistory instanceof Array) - service.recentConnections = storedHistory; - - } - - } - catch (ignore) {} + // Init stored connection history from localStorage + var storedHistory = localStorageService.getItem(GUAC_HISTORY_STORAGE_KEY) || []; + if (storedHistory instanceof Array) + service.recentConnections = storedHistory; return service;