From ae0763cfe614e191940d19a9cad5a535e1923c1e Mon Sep 17 00:00:00 2001 From: kkapsner Date: Sat, 14 Oct 2017 12:24:53 +0200 Subject: [PATCH] Improved design of the page action display. --- .documentation/pageAction.png | Bin 0 -> 12863 bytes icons/pageAction-disableNotifications.svg | 117 ++++++++++++++++++++++ icons/pageAction-displayCallingStack.svg | 92 +++++++++++++++++ icons/pageAction-displayFullURL.svg | 73 ++++++++++++++ icons/pageAction-ignorelistDomain.svg | 84 ++++++++++++++++ icons/pageAction-whitelistDomain.svg | 74 ++++++++++++++ icons/pageAction-whitelistURL.svg | 74 ++++++++++++++ pageAction/domainNotification.js | 7 +- pageAction/gui.js | 13 ++- pageAction/notification.js | 20 +++- pageAction/pageAction.css | 63 +++++++++++- pageAction/pageAction.html | 2 +- pageAction/pageAction.js | 6 ++ releaseNotes.txt | 2 +- 14 files changed, 614 insertions(+), 13 deletions(-) create mode 100644 .documentation/pageAction.png create mode 100644 icons/pageAction-disableNotifications.svg create mode 100644 icons/pageAction-displayCallingStack.svg create mode 100644 icons/pageAction-displayFullURL.svg create mode 100644 icons/pageAction-ignorelistDomain.svg create mode 100644 icons/pageAction-whitelistDomain.svg create mode 100644 icons/pageAction-whitelistURL.svg diff --git a/.documentation/pageAction.png b/.documentation/pageAction.png new file mode 100644 index 0000000000000000000000000000000000000000..a9055ad9db4d99c51b9a7c53bd119a641fff6118 GIT binary patch literal 12863 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 JYebEL{s$T4d$0fi literal 0 HcmV?d00001 diff --git a/icons/pageAction-disableNotifications.svg b/icons/pageAction-disableNotifications.svg new file mode 100644 index 0000000..c69b8dc --- /dev/null +++ b/icons/pageAction-disableNotifications.svg @@ -0,0 +1,117 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/pageAction-displayCallingStack.svg b/icons/pageAction-displayCallingStack.svg new file mode 100644 index 0000000..5108c1a --- /dev/null +++ b/icons/pageAction-displayCallingStack.svg @@ -0,0 +1,92 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/icons/pageAction-displayFullURL.svg b/icons/pageAction-displayFullURL.svg new file mode 100644 index 0000000..9053617 --- /dev/null +++ b/icons/pageAction-displayFullURL.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + https: + + + diff --git a/icons/pageAction-ignorelistDomain.svg b/icons/pageAction-ignorelistDomain.svg new file mode 100644 index 0000000..7f84189 --- /dev/null +++ b/icons/pageAction-ignorelistDomain.svg @@ -0,0 +1,84 @@ + + + + + + + + + + image/svg+xml + + + + + + + www. + + + + + + diff --git a/icons/pageAction-whitelistDomain.svg b/icons/pageAction-whitelistDomain.svg new file mode 100644 index 0000000..c15cd63 --- /dev/null +++ b/icons/pageAction-whitelistDomain.svg @@ -0,0 +1,74 @@ + + + + + + + + + + image/svg+xml + + + + + + + www. + + + diff --git a/icons/pageAction-whitelistURL.svg b/icons/pageAction-whitelistURL.svg new file mode 100644 index 0000000..0379199 --- /dev/null +++ b/icons/pageAction-whitelistURL.svg @@ -0,0 +1,74 @@ + + + + + + + + + + image/svg+xml + + + + + + + https: + + + diff --git a/pageAction/domainNotification.js b/pageAction/domainNotification.js index a57dccf..119f01e 100644 --- a/pageAction/domainNotification.js +++ b/pageAction/domainNotification.js @@ -51,9 +51,9 @@ const node = document.createElement("li"); node.className = "domainPrints collapsable collapsed"; node.appendChild(this.textNode()); + node.appendChild(document.createElement("br")); createCollapser(node); node.appendChild(this.notificationsNode()); - node.appendChild(this.actionsNode()); this.node = function(){ return node; @@ -69,6 +69,7 @@ DomainNotification.prototype.textNode = function textNode(){ const node = document.createElement("span"); + node.className = "text"; this.textNode = function(){ return node; }; @@ -77,7 +78,8 @@ while (messageParts.length){ var urlSpan = document.createElement("span"); urlSpan.textContent = this.domain; - urlSpan.className = "url"; + urlSpan.className = "url hasHiddenActions"; + urlSpan.appendChild(this.actionsNode()); node.appendChild(urlSpan); node.appendChild(document.createTextNode(messageParts.shift())); } @@ -113,6 +115,7 @@ DomainNotification.prototype.actionsNode = function actionsNode(){ const node = document.createElement("div"); + node.className = "actions"; createActionButtons(node, actions, this.domain); this.actionsNode = function(){ return node; diff --git a/pageAction/gui.js b/pageAction/gui.js index 6fa1f99..85268c0 100644 --- a/pageAction/gui.js +++ b/pageAction/gui.js @@ -39,8 +39,17 @@ scope.createActionButtons = function createActionButtons(container, actions, data){ actions.forEach(function(action, i){ var button = document.createElement("button"); - button.className = action.name; - button.textContent = browser.i18n.getMessage(action.name); + button.className = action.name + " action"; + button.title = browser.i18n.getMessage(action.name); + if (action.isIcon || action.icon){ + button.classList.add("isIcon"); + var img = document.createElement("img"); + button.appendChild(img); + img.src = "../icons/" + (action.icon || `pageAction-${action.name}.svg`); + } + else { + button.textContent = button.title; + } button.addEventListener("click", action.callback.bind(undefined, data)); container.appendChild(button); if (i % 3 === 2){ diff --git a/pageAction/notification.js b/pageAction/notification.js index b4d93a3..8fcafba 100644 --- a/pageAction/notification.js +++ b/pageAction/notification.js @@ -22,16 +22,17 @@ node(){ const node = document.createElement("li"); - node.appendChild(document.createTextNode(this.timestamp.toLocaleString() + ": " + this.functionName + " ")); + node.appendChild(document.createTextNode(this.timestamp.toLocaleString() + ": ")); + node.appendChild(this.textNode()); if (this.dataURL){ node.className = "notification collapsable collapsed"; + node.appendChild(document.createElement("br")); createCollapser(node); const img = document.createElement("img"); img.src = this.dataURL; - img.className = "collapsing"; + img.className = "fakedCanvasContent collapsing"; node.appendChild(img); } - node.appendChild(this.actionsNode()); this.node = function(){ return node; @@ -39,6 +40,19 @@ return node; } + textNode(){ + const node = document.createElement("span"); + node.className = "text hasHiddenActions"; + this.textNode = function(){ + return node; + }; + node.textContent = this.functionName; + node.title = this.url.href; + node.appendChild(this.actionsNode()); + + return node; + } + actionsNode(){ const node = document.createElement("div"); diff --git a/pageAction/pageAction.css b/pageAction/pageAction.css index adf699e..50b655c 100644 --- a/pageAction/pageAction.css +++ b/pageAction/pageAction.css @@ -3,8 +3,11 @@ } body { - margin: 5px; + margin: 0.5em; + padding: 2px; + padding-right: 23px; white-space: nowrap; + position: relative; } #prints { @@ -13,7 +16,58 @@ body { margin: 0; } -img { +button.action.isIcon { + border: none; + cursor: pointer; + padding: 0; + margin: 0; + line-height: 0; + background-color: transparent; +} +* + button.action.isIcon { + margin-left: 1px; +} +button.action img { + max-height: 19px; + margin: 0; +} + +.hasHiddenActions { + position: relative; + display: inline-block; + color: darkblue; +} +.hasHiddenActions:hover { + padding: 3px; + margin: -3px; + background-color: #f6f6f6; + z-index: 10; +} +.hasHiddenActions .actions { + display: none; + position: absolute; + top: 100%; + left: 0px; + border-top-width: 0; + background-color: #f6f6f6; + padding: 2px 1px 1px 1px; + line-height: 0; +} +.hasHiddenActions:hover .actions{ + display: block; +} + + +#globalActions { + position: absolute; + right: 0; + top: 0; + width: 23px; + height: 100%; + text-align: right; +} + +.notifications .fakedCanvasContent { display: block; width: 100%; box-sizing: border-box; @@ -21,7 +75,7 @@ img { .notifications { margin: 0; - padding: 0 0 0 1em; + padding: 0 0 20px 1em; } .collapsable { @@ -54,10 +108,11 @@ img { } .collapsable.collapsed .collapsing { height: 0px; + overflow: hidden; + padding: 0; } .collapsable .collapsing { height: initial; width: 100%; box-sizing: border-box; - overflow: hidden; } \ No newline at end of file diff --git a/pageAction/pageAction.html b/pageAction/pageAction.html index c1597be..8c79ef5 100644 --- a/pageAction/pageAction.html +++ b/pageAction/pageAction.html @@ -6,10 +6,10 @@ +
  • ...
-
diff --git a/pageAction/pageAction.js b/pageAction/pageAction.js index 4bc28ea..8340972 100644 --- a/pageAction/pageAction.js +++ b/pageAction/pageAction.js @@ -29,6 +29,7 @@ Promise.all([ document.getElementById("globalActions"), [{ name: "disableNotifications", + isIcon: true, callback: function(){ browser.storage.local.set({showNotifications: false}); window.close(); @@ -53,6 +54,7 @@ Promise.all([ [ { name: "ignorelistDomain", + isIcon: true, callback: function(domain){ modalPrompt( browser.i18n.getMessage("inputIgnoreDomain"), @@ -67,6 +69,7 @@ Promise.all([ }, { name: "whitelistDomain", + isIcon: true, callback: function(domain){ modalPrompt( browser.i18n.getMessage("inputWhitelistURL"), @@ -87,18 +90,21 @@ Promise.all([ [ { name: "displayFullURL", + isIcon: true, callback: function({url}){ alert(url.href); } }, { name: "displayCallingStack", + isIcon: true, callback: function({errorStack}){ alert(parseErrorStack(errorStack)); } }, { name: "whitelistURL", + isIcon: true, callback: function({url}){ modalPrompt( browser.i18n.getMessage("inputWhitelistDomain"), diff --git a/releaseNotes.txt b/releaseNotes.txt index 1e656a2..3b94cb9 100644 --- a/releaseNotes.txt +++ b/releaseNotes.txt @@ -2,9 +2,9 @@ Version 0.4.1: todos: - get rid of the .innerHTML assigments - better and saver settings system - - improve design of page action display changes: + - improved design of the page action display - new features: