From b0cf60d5c84c4185c60f3e184d0bca684307db36 Mon Sep 17 00:00:00 2001
From: Vasili Gulevich <V.V.Gulevich@mail.ru>
Date: Sat, 20 Aug 2016 19:49:53 +0700
Subject: [PATCH] Enabled timer decoration

Issue #2
---
 TogglLibrary.js | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/TogglLibrary.js b/TogglLibrary.js
index 96b0650..4e95487 100644
--- a/TogglLibrary.js
+++ b/TogglLibrary.js
@@ -22,7 +22,13 @@ function TogglButtonGM(selector, renderer) {
     $clientMap = {},
     $projectMap = {},
     $instances = {};
-
+   
+  if (!renderer.renderOriginLink) {
+    renderer.renderOriginLink = (backReferenceColumn, originUrl) => {
+      backReferenceColumn.innerHTML = "<a href=\""+originUrl+"\">Origin</a>";
+    };
+  }
+  
   init(selector, renderer);
 
   function init(selector, renderer, apiUrl) {
@@ -162,6 +168,26 @@ function TogglButtonGM(selector, renderer) {
     }
   }
 
+  function getIdFromEntry(entry) {
+    return Number.parseInt(entry.querySelector("input[type=\"checkbox\"]").getAttribute("data-id"), 10);
+  }
+  
+  this.tryDecorateTimer = () => {
+    if (!window.location.href.startsWith("https://toggl.com/app/timer"))
+      return;
+    const timerEntries = document.querySelectorAll("#time-entry-list ul li.entry");
+    console.log("Timer entries: " + timerEntries.length);
+    for (var entry of timerEntries) {
+      let id = getIdFromEntry(entry);
+      let originUrl = GM_getValue("_url["+id+"]", null);
+      if (originUrl) {
+        console.log("Origin for entry: " + id + ": " + originUrl);
+        let backReferenceColumn = document.createElement("div");
+        renderer.renderOriginLink(backReferenceColumn, originUrl);
+        entry.appendChild(backReferenceColumn);
+      }
+    }
+  };
   this.clickLinks = function() {
     for (i in $instances) {
       $instances[i].clickLink();
-- 
GitLab