From 8dc08ae71096391f12eeb937e5b70e241fc7d980 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Sun, 4 Feb 2018 14:16:48 -0500 Subject: [PATCH] Added hide value ability & Standardized directory structure - Standardized the directory structure. - Added ability to hide value. - Changes settings styles. - Added exception handling when reading and writing settings. --- docs/_config.yml | 1 - img/logo.png => drag.png | Bin {css => en-US/css}/index.css | 4 +- {css => en-US/css}/settings.css | 9 ++- {docs => en-US/docs}/Display.png | Bin {docs => en-US/docs}/Settings.png | Bin en-US/gadget.xml | 28 +++++++++ index.html => en-US/index.html | 16 ++--- {js => en-US/js}/index.js | 52 +++++++++++++--- {js => en-US/js}/jquery-1.12.4.min.js | 0 {js => en-US/js}/settings.js | 40 ++++++++++--- en-US/settings.html | 76 ++++++++++++++++++++++++ {tools => en-US/tools}/add-debug.reg | 0 {tools => en-US/tools}/build-gadget.bat | 0 en-US/tools/build-gadget.ps1 | 2 + {tools => en-US/tools}/remove-debug.reg | 0 gadget.xml | 24 -------- icon.png | Bin 0 -> 1324 bytes js/common.js | 67 --------------------- logo.png | Bin 0 -> 1324 bytes settings.html | 67 --------------------- tools/build-gadget.ps1 | 2 - 22 files changed, 197 insertions(+), 191 deletions(-) delete mode 100644 docs/_config.yml rename img/logo.png => drag.png (100%) rename {css => en-US/css}/index.css (96%) rename {css => en-US/css}/settings.css (57%) rename {docs => en-US/docs}/Display.png (100%) rename {docs => en-US/docs}/Settings.png (100%) create mode 100644 en-US/gadget.xml rename index.html => en-US/index.html (50%) rename {js => en-US/js}/index.js (75%) rename {js => en-US/js}/jquery-1.12.4.min.js (100%) rename {js => en-US/js}/settings.js (55%) create mode 100644 en-US/settings.html rename {tools => en-US/tools}/add-debug.reg (100%) rename {tools => en-US/tools}/build-gadget.bat (100%) create mode 100644 en-US/tools/build-gadget.ps1 rename {tools => en-US/tools}/remove-debug.reg (100%) delete mode 100644 gadget.xml create mode 100644 icon.png delete mode 100644 js/common.js create mode 100644 logo.png delete mode 100644 settings.html delete mode 100644 tools/build-gadget.ps1 diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 2f7efbe..0000000 --- a/docs/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-minimal \ No newline at end of file diff --git a/img/logo.png b/drag.png similarity index 100% rename from img/logo.png rename to drag.png diff --git a/css/index.css b/en-US/css/index.css similarity index 96% rename from css/index.css rename to en-US/css/index.css index 35fcfc2..0742471 100644 --- a/css/index.css +++ b/en-US/css/index.css @@ -19,10 +19,12 @@ body { #meta-container { color: #cbcbcb; float: right; + text-align: right; font-size: 0.6em; margin-right: 5px; height: 10px; display: inline-block; + width: 395px; } #out-of-date { width: 100px; @@ -42,7 +44,7 @@ body { table { margin: 0; padding: 0; - width: 25em; + width: 400px; border-collapse: collapse; } diff --git a/css/settings.css b/en-US/css/settings.css similarity index 57% rename from css/settings.css rename to en-US/css/settings.css index 3746928..813feb6 100644 --- a/css/settings.css +++ b/en-US/css/settings.css @@ -1,17 +1,16 @@ body { width: 300px; - height: 400px; + height: 350px; margin: 0; padding: 0; } #main { - height: 400px; - overflow: auto; + height: 350px; + overflow-y: auto; } #inputCurrList { - height: 250px; + height: 150px; } #currency-holdings { - height: 250px; display: block; } \ No newline at end of file diff --git a/docs/Display.png b/en-US/docs/Display.png similarity index 100% rename from docs/Display.png rename to en-US/docs/Display.png diff --git a/docs/Settings.png b/en-US/docs/Settings.png similarity index 100% rename from docs/Settings.png rename to en-US/docs/Settings.png diff --git a/en-US/gadget.xml b/en-US/gadget.xml new file mode 100644 index 0000000..ef665f7 --- /dev/null +++ b/en-US/gadget.xml @@ -0,0 +1,28 @@ + + + Cryptocurrencies Price Tracker + microsoft.windows + 1.2.0 + + + + + © 2018 ArmandTresova.com + + Cryptocurrencies Price Tracker is a Windows Sidebar Gadget that displays snapshot prices from CoinMarketCap using their API, as well as a personal portfolio value. +

+ A free utility provided by Armand Tresova. +
+ + + + + + + true + Full + + + + +
\ No newline at end of file diff --git a/index.html b/en-US/index.html similarity index 50% rename from index.html rename to en-US/index.html index 28330d1..8b1c1d9 100644 --- a/index.html +++ b/en-US/index.html @@ -1,11 +1,11 @@ - + Cryptocurrencies Price Tracker - - - + + +
@@ -20,9 +20,11 @@ - Refreshed: - Updated: - Refresh every: min + + Refreshed: + Updated: + Refresh every: min +
diff --git a/js/index.js b/en-US/js/index.js similarity index 75% rename from js/index.js rename to en-US/js/index.js index 3b67d16..1811caf 100644 --- a/js/index.js +++ b/en-US/js/index.js @@ -1,5 +1,8 @@ -cryptoCurrencyMapping = {}; -currencySymbolMapping = { +var configCurr; +var configFreq; +var configCurrList; +var cryptoCurrencyMapping = {}; +var currencySymbolMapping = { 'USD': '$', 'AUD': '$', 'EUR': '€', @@ -38,19 +41,41 @@ function init() { System.Gadget.settingsUI = 'settings.html'; System.Gadget.onSettingsClosed = init; - configCurr = (System.Gadget.Settings.readString('configCurr') || 'USD'); - configFreq = (System.Gadget.Settings.readString('configFreq') || 20); - configCurrList = (System.Gadget.Settings.readString('configCurrList') || 'BTC,BCH,LTC,ETH').split(','); + configDisplayValue = readSetting('configDisplayValue', 'true'); + configCurr = readSetting('configCurr', 'USD'); + configFreq = readSetting('configFreq', '20'); + configCurrList = readSetting('configCurrList', 'BTC,BCH,LTC,ETH').split(','); createTableBody(); var tableHeight = $('#main-table').outerHeight(); var offset = 30; - document.body.style.width = 405; document.body.style.height = (tableHeight + offset); document.body.style.margin = 0; + if (configDisplayValue == 'false') { + document.body.style.width = 305; + $('#main').css('width', '300px'); + $('#main-table').css('width', '300px'); + $('#meta-container').css('width', '295px'); + + if (!isUpToDateResults) { + $('#out-of-date').css('text-align', 'right'); + $('#meta-data').hide(); + } else { + $('#out-of-date').css('width', '0'); + } + } else { + document.body.style.width = 405; + $('#main').css('width', '400px'); + $('#main-table').css('width', '400px'); + $('#meta-container').css('width', '395px'); + $('#out-of-date').css('width', '100px'); + $('#out-of-date').css('text-align', 'left'); + $('#meta-data').show(); + } + $('#main').css('height', (tableHeight + offset) + 'px'); $('.currency-label').html('(' + configCurr + ')'); $('#refresh-frequency').html(configFreq); @@ -78,7 +103,7 @@ function getPrice(code) { if (code) { $.getJSON('https://api.coinmarketcap.com/v1/ticker/' + cryptoCurrencyMapping[code] + '/?convert=' + configCurr, function(data) { var changeDirection = (data[0].percent_change_1h < 0) ? 'decrease' : 'increase'; - var configHoldingValue = ((System.Gadget.Settings.readString('inputHoldList-' + code) || 0) * 1); + var configHoldingValue = (readSetting('configHoldList-' + code, '0') * 1); var price = (data[0]['price_' + configCurr.toLowerCase()] * 1); var priceFormatted = formatCurrency(data[0]['price_' + configCurr.toLowerCase()]); var holdingsValueFormatted = formatCurrency(price * configHoldingValue); @@ -116,9 +141,16 @@ function altRows() { } function createTableBody() { + var tableHeaders = document.getElementById('main-table').getElementsByTagName('th'); var tableBody = document.getElementById('main-table').getElementsByTagName('tbody')[0]; var rows = tableBody.rows; + if (configDisplayValue == 'false') { + tableHeaders[3].style.display = 'none'; + } else { + tableHeaders[3].style.display = 'block'; + } + // Delete all rows first before inserting new ones. while (tableBody.rows.length > 0) { tableBody.deleteRow(0); @@ -146,6 +178,10 @@ function createTableBody() { var cell5 = row.insertCell(3); cell5.className = 'portfolio'; cell5.id = configCurrList[i] + '-port'; + + if (configDisplayValue == 'false') { + cell5.style.display = 'none'; + } } altRows(); @@ -163,4 +199,4 @@ function getTimeNow() { function formatCurrency(number) { return currencySymbolMapping[configCurr] + (number * 1).toLocaleString(undefined, { style: 'currency', currency: configCurr }); -} \ No newline at end of file +} diff --git a/js/jquery-1.12.4.min.js b/en-US/js/jquery-1.12.4.min.js similarity index 100% rename from js/jquery-1.12.4.min.js rename to en-US/js/jquery-1.12.4.min.js diff --git a/js/settings.js b/en-US/js/settings.js similarity index 55% rename from js/settings.js rename to en-US/js/settings.js index f272223..f800321 100644 --- a/js/settings.js +++ b/en-US/js/settings.js @@ -1,9 +1,17 @@ currencies = {}; function init() { - var configCurr = (System.Gadget.Settings.readString('configCurr') || 'USD'); - var configFreq = (System.Gadget.Settings.readString('configFreq') || 20); - var configCurrList = (System.Gadget.Settings.readString('configCurrList') || 'BTC,BCH,LTC,ETH'); + var configDisplayValue = readSetting('configDisplayValue', 'true'); + var configCurr = readSetting('configCurr', 'USD'); + var configFreq = readSetting('configFreq', '20'); + var configCurrList = readSetting('configCurrList', 'BTC,BCH,LTC,ETH'); + + if (configDisplayValue == 'true') { + $('#inputDisplayValue').attr('checked', true); + } else { + $('#inputDisplayValue').removeAttr('checked'); + $('#current-holdings').hide(); + } $('#inputCurr').val(configCurr); $('#inputFreq').val(configFreq); @@ -14,6 +22,14 @@ function init() { generateHoldingsInputs($(this).val()); }); + $('#inputDisplayValue').change(function() { + if ($(this).is(':checked')) { + $('#current-holdings').show(); + } else { + $('#current-holdings').hide(); + } + }); + $('#currency-holdings').on('keyup', '.inputHoldList', function() { this.value = this.value.replace(/[^0-9\.]/g, ''); }); @@ -23,12 +39,19 @@ function init() { function saveSettings(event) { if (event.closeAction == event.Action.commit) { - System.Gadget.Settings.writeString('configCurr', $('#inputCurr').val()); - System.Gadget.Settings.writeString('configFreq', $('#inputFreq').val()); - System.Gadget.Settings.writeString('configCurrList', $('#inputCurrList').val()); + + if ($('#inputDisplayValue').is(":checked")) { + saveSetting('configDisplayValue', 'true'); + } else { + saveSetting('configDisplayValue', 'false'); + } + + saveSetting('configCurr', $('#inputCurr').val()); + saveSetting('configFreq', $('#inputFreq').val()); + saveSetting('configCurrList', $('#inputCurrList').val()); $('.inputHoldList').each(function() { - System.Gadget.Settings.writeString('inputHoldList-' + $(this).attr('id'), ($(this).val() * 1)); + saveSetting('configHoldList-' + $(this).attr('id'), ($(this).val() * 1)); }); event.cancel = false; @@ -38,10 +61,9 @@ function saveSettings(event) { function generateHoldingsInputs(selectedOptions) { var holdingsInputs = ''; $.each(selectedOptions, function(key, val) { - var elementValue = (System.Gadget.Settings.readString('inputHoldList-' + val) || '0'); + var elementValue = readSetting('configHoldList-' + val, '0'); holdingsInputs += val + ':
'; }); - $('#currency-holdings').html(holdingsInputs); } diff --git a/en-US/settings.html b/en-US/settings.html new file mode 100644 index 0000000..c3bfd6f --- /dev/null +++ b/en-US/settings.html @@ -0,0 +1,76 @@ + + + + Cryptocurrencies Price Tracker - Settings + + + + + + +
+
Display Value
+
+ Currency + +
+
+ Refresh Frequency (minutes) + +
+
+ Currenies
+ +
+
+ Current Holdings +
+
+
+ + + + diff --git a/tools/add-debug.reg b/en-US/tools/add-debug.reg similarity index 100% rename from tools/add-debug.reg rename to en-US/tools/add-debug.reg diff --git a/tools/build-gadget.bat b/en-US/tools/build-gadget.bat similarity index 100% rename from tools/build-gadget.bat rename to en-US/tools/build-gadget.bat diff --git a/en-US/tools/build-gadget.ps1 b/en-US/tools/build-gadget.ps1 new file mode 100644 index 0000000..38697dd --- /dev/null +++ b/en-US/tools/build-gadget.ps1 @@ -0,0 +1,2 @@ +Compress-Archive -Path '..\..\*' -CompressionLevel NoCompression -DestinationPath '..\..\CryptocurrenciesPriceTrackerGadget.zip' +Rename-Item '..\..\CryptocurrenciesPriceTrackerGadget.zip' 'CryptocurrenciesPriceTracker.gadget' \ No newline at end of file diff --git a/tools/remove-debug.reg b/en-US/tools/remove-debug.reg similarity index 100% rename from tools/remove-debug.reg rename to en-US/tools/remove-debug.reg diff --git a/gadget.xml b/gadget.xml deleted file mode 100644 index 8ed6509..0000000 --- a/gadget.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - Cryptocurrencies Price Tracker - 1.1.1 - - - - © 2018 ArmandTresova.com - - Cryptocurrencies Price Tracker displaying snapshot prices from CoinMarketCap, as well as a personal portfolio value. -

- A free utility provided by Armand Tresova. -
- - - - - - - Full - - - -
\ No newline at end of file diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc007e9624fc994f2dbf7cf1b92a77d64241a66 GIT binary patch literal 1324 zcmV+{1=IS8P)+HSH-uv8_EdG|3`1~zGBFRd71ED|RstBR+#CJdDN#}MWkod1=OPDnvJgOKI7+3!NA zmS#VScZ9YUQC$0N5iU=4zx-|+Z32z_}a zSV8zCB9)~|)EFKIH5Xv%f$^)PsPByjp2b)L8mpQe2sM%>)p#}FiB}xJ#nU!YyN%8G zmKI}p#=iME5HghogsqzXIfNrF{?0l=Dq$mGAE6AH>OUtSQL+ue*(Sm+!tHnmLSB@P z_^eDsBVktOT$IyhGsT83LXVP9iyag+AVdc^M}Ss7O>YWGbf!^F?GMWs!(f ziVoPt=#9{TO0N;X!X>gFgmch_*>Us%6<#D@0`dk9dUD78VWQ zx*%_ooJG41wE|N!xD3saQROEM7>`+z_X*exxQN=`;QSN~QZ?f;(C@kiWFP}n(ZqrM zpHupZQA3!K=qNB20uJM%D$)(kBP&saB22C8;zikwlXcHI#mDRm{QUG!~ zHlX^v%RI<|2D}%4SFZngI?U>S4>zWBZd^#=P1T*scRi6Rv-7+lB8Ate@TP0)SXTfy zHDIX2KzOQrSB@XeMFmDT`&=));c!x>5YE_)SxG1r zkxkeFiSRPF30O{OM;K<|T`R#luL#>U_J7gDDJfEFFowzBjp|P!@(g1iU}^&FZ1^RJ zr8d`Ko8@BK-=O( zK-3iYMa`}_cd%O~FbTFe46|z|M-lYwcX0FNaAc}{cW{ktM5=etJ^_;(Zd!2BX+SEf zIQb5>X^2A&a6@9!B0CM>8PAJ>0N;om0jxq>M1Un;p>U0bO+OC{0j2N*i4NV`uZ;ae}T8>i^5|6(f>Dca<^Id?0=1J5pW&L iVJIb2SZu5P5nuq)nP=wXF|0BG0000 r; - } - return true; - } else { - return local >= remote; - } -} - -function checkForUpdate() { - $.getJSON('https://api.github.com/repos/XjSv/Cryptocurrencies-Price-Tracker-Gadget/tags', function(data) { - var currentVersion = System.Gadget.version; - var latestVersion = data[0].name.slice(1); // Get the latest tag name and remove the 'v'. - var isUpToDateResults = isUpToDate(currentVersion, latestVersion); - - if (!isUpToDateResults) { - var latestVersionDownloadLink = 'https://github.com/XjSv/Cryptocurrencies-Price-Tracker-Gadget/releases/download/v' + latestVersion + '/CryptocurrenciesPriceTracker.gadget' - $('#out-of-date').html('v' + latestVersion + ' is available!'); - } - }); -} - -checkForUpdate(); // Initially check for an update on init -setTimeout(checkForUpdate, 86400000); // Then check for updates every 24 hours. diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc007e9624fc994f2dbf7cf1b92a77d64241a66 GIT binary patch literal 1324 zcmV+{1=IS8P)+HSH-uv8_EdG|3`1~zGBFRd71ED|RstBR+#CJdDN#}MWkod1=OPDnvJgOKI7+3!NA zmS#VScZ9YUQC$0N5iU=4zx-|+Z32z_}a zSV8zCB9)~|)EFKIH5Xv%f$^)PsPByjp2b)L8mpQe2sM%>)p#}FiB}xJ#nU!YyN%8G zmKI}p#=iME5HghogsqzXIfNrF{?0l=Dq$mGAE6AH>OUtSQL+ue*(Sm+!tHnmLSB@P z_^eDsBVktOT$IyhGsT83LXVP9iyag+AVdc^M}Ss7O>YWGbf!^F?GMWs!(f ziVoPt=#9{TO0N;X!X>gFgmch_*>Us%6<#D@0`dk9dUD78VWQ zx*%_ooJG41wE|N!xD3saQROEM7>`+z_X*exxQN=`;QSN~QZ?f;(C@kiWFP}n(ZqrM zpHupZQA3!K=qNB20uJM%D$)(kBP&saB22C8;zikwlXcHI#mDRm{QUG!~ zHlX^v%RI<|2D}%4SFZngI?U>S4>zWBZd^#=P1T*scRi6Rv-7+lB8Ate@TP0)SXTfy zHDIX2KzOQrSB@XeMFmDT`&=));c!x>5YE_)SxG1r zkxkeFiSRPF30O{OM;K<|T`R#luL#>U_J7gDDJfEFFowzBjp|P!@(g1iU}^&FZ1^RJ zr8d`Ko8@BK-=O( zK-3iYMa`}_cd%O~FbTFe46|z|M-lYwcX0FNaAc}{cW{ktM5=etJ^_;(Zd!2BX+SEf zIQb5>X^2A&a6@9!B0CM>8PAJ>0N;om0jxq>M1Un;p>U0bO+OC{0j2N*i4NV`uZ;ae}T8>i^5|6(f>Dca<^Id?0=1J5pW&L iVJIb2SZu5P5nuq)nP=wXF|0BG0000 - - - Cryptocurrencies Price Tracker - Settings - - - - - - -
-
Currency:
- -
Refresh Frequency (minutes):
- -
Currenies:
- -
Current Holdings:
-
-
- - - - diff --git a/tools/build-gadget.ps1 b/tools/build-gadget.ps1 deleted file mode 100644 index 04e0adc..0000000 --- a/tools/build-gadget.ps1 +++ /dev/null @@ -1,2 +0,0 @@ -Compress-Archive -Path '..\*' -CompressionLevel NoCompression -DestinationPath '..\CryptocurrenciesPriceTrackerGadget.zip' -Rename-Item '..\CryptocurrenciesPriceTrackerGadget.zip' 'CryptocurrenciesPriceTracker.gadget' \ No newline at end of file