From 79dcadfee16da6f43a779c39291d29e31e86ce4c Mon Sep 17 00:00:00 2001 From: Francois Marier Date: Mon, 14 Apr 2014 19:09:18 +1200 Subject: [PATCH] Add a block/unblock button to the infobar This adds an easier way of blocking individual sites. No need to switch to the list view and perform the action there, it can all be done within the graph view now. --- data/image/lightbeam_icon_blockbtn.png | Bin 0 -> 499 bytes data/index.html | 12 +++++++++ data/infobar.js | 33 +++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 data/image/lightbeam_icon_blockbtn.png diff --git a/data/image/lightbeam_icon_blockbtn.png b/data/image/lightbeam_icon_blockbtn.png new file mode 100644 index 0000000000000000000000000000000000000000..b85cf0383580e677c4a12a075dca62d8f4e25256 GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=3?wxlRx|@Cj{u(#S0MfF-Meq!zWx09^Ut3@ z|NsAg{rdIAOIPrtt5>hyxN+n5?b~s(9C%Zm?oGJ6{oW^?kXev)@mPM0*!1-(RUgm(*`#vg_jHSTtvj_7KBS-jd;IGE`33uL>`YcF S{QJ)Y6waQmelF{r5}E+C^zSnO literal 0 HcmV?d00001 diff --git a/data/index.html b/data/index.html index 6fba134..2f9e4e4 100644 --- a/data/index.html +++ b/data/index.html @@ -86,6 +86,18 @@ This site is currently . +
+ +
Server Location
diff --git a/data/infobar.js b/data/infobar.js index 75c1ca6..6f91473 100644 --- a/data/infobar.js +++ b/data/infobar.js @@ -96,6 +96,26 @@ function updateMap(countryCode){ setZoom(newViewBox, mapcanvas); } +document.querySelector(".pref-action .block").addEventListener('click', function(evt) { + var site = this.dataset.siteName; + confirmBlockSitesDialog(function(confirmed) { + if (confirmed) { + userSettings[site] = 'block'; + global.self.port.emit('updateBlocklist', site, true); + showSitePref(site); + } + }); + evt.preventDefault(); +}); + +document.querySelector(".pref-action .unblock").addEventListener('click', function(evt) { + var site = this.dataset.siteName; + userSettings[site] = ''; + global.self.port.emit('updateBlocklist', site, false); + showSitePref(site); + evt.preventDefault(); +}); + // updates info on the info panel function updateInfo(nodeName){ @@ -132,6 +152,8 @@ function showFirstAndLastAccess(site){ function showSitePref(nodeName){ var prefTag = document.querySelector(".pref-tag"); + var blockButton = document.querySelector(".pref-action .block"); + var unblockButton = document.querySelector(".pref-action .unblock"); var sitePref = userSettings[nodeName]; if ( sitePref ){ prefTag.querySelector("img").src = "icons/lightbeam_icon_"+sitePref+".png"; @@ -139,9 +161,20 @@ function showSitePref(nodeName){ prefTag.querySelector("span").classList.add(sitePref + "-text"); prefTag.querySelector("span").textContent = (sitePref=="hide") ? "hidden" : sitePref + "ed"; prefTag.classList.remove("hidden"); + if (sitePref == "block") { + unblockButton.classList.remove("hidden"); + blockButton.classList.add("hidden"); + } else { + unblockButton.classList.add("hidden"); + blockButton.classList.remove("hidden"); + } }else{ prefTag.classList.add("hidden"); + unblockButton.classList.add("hidden"); + blockButton.classList.remove("hidden"); } + unblockButton.dataset.siteName = nodeName; + blockButton.dataset.siteName = nodeName; } function showConnectionsList(nodeName,nodeList){