Pjotir 1 рік тому
батько
коміт
1641725be8

+ 47 - 38
assets/js/background.js

@@ -1,54 +1,63 @@
-document.getElementById("grabbutton").addEventListener("click", function () {
-    browser.tabs.query({ active: true, currentWindow: true }).then(tabs => {
-        browser.tabs
-            .sendMessage(tabs[0].id, { action: "get" })
-            .then((response) => {
-                tablebody = document.getElementById("tablebody");
-                tablebody.innerHTML = "";
-
-                console.log(response);
+function updateTable() {
+    browser.storage.local.get("pizmetdata").then(result => {
+        let pizmetdata = result["pizmetdata"];
+        tablebody = document.getElementById("tablebody");
+        tablebody.innerHTML = "";
 
-                keys = Object.keys(response);
-                keys.forEach(key => {
-                    tr = document.createElement("tr");
+        keys = Object.keys(pizmetdata);
+        keys.forEach(key => {
+            tr = document.createElement("tr");
 
-                    td1 = document.createElement("td");
-                    td1.textContent = key;
-                    tr.appendChild(td1);
+            td1 = document.createElement("td");
+            td1.textContent = key;
+            tr.appendChild(td1);
 
-                    td2 = document.createElement("td");
-                    td2.textContent = response[key].qty;
-                    tr.appendChild(td2);
+            td2 = document.createElement("td");
+            td2.textContent = pizmetdata[key].qty;
+            tr.appendChild(td2);
 
-                    td3 = document.createElement("td");
-                    td3.textContent = response[key].cost;
-                    tr.appendChild(td3);
+            td3 = document.createElement("td");
+            td3.textContent = pizmetdata[key].cost;
+            tr.appendChild(td3);
 
-                    td4 = document.createElement("td");
-                    td4.textContent = "$" + (parseFloat(response[key].qty * response[key].cost.substring(1)).toFixed(2));
-                    tr.appendChild(td4);
+            td4 = document.createElement("td");
+            td4.textContent = "$" + (parseFloat(pizmetdata[key].qty * pizmetdata[key].cost.substring(1)).toFixed(2));
+            tr.appendChild(td4);
 
-                    tablebody.appendChild(tr);
-                    console.log(tr);
+            tablebody.appendChild(tr);
+        });
+    });
+}
 
-                });
+document.getElementById("grabbutton").addEventListener("click", function () {
+    browser.tabs.query({ active: true, currentWindow: true }).then(tabs => {
+        browser.tabs
+            .sendMessage(tabs[0].id, { action: "get" })
+            .then((response) => {
                 browser.storage.local.set({ pizmetdata: response });
+                updateTable();
             });
-    });
-})
-    .catch(error => {
-        console.log(error);
-    });
+    })
+        .catch(error => {
+            console.log(error);
+        });
+});
 
 document.getElementById("inputbutton").addEventListener("click", function () {
     browser.tabs.query({ active: true, currentWindow: true }).then(tabs => {
-        browser.tabs
-            .sendMessage(tabs[0].id, { action: "send", content: document.getElementById("tablebody") })
-            .then(response => {
-                console.log(response);
-            });
+        browser.storage.local.get("pizmetdata").then(result => {
+            let pizmetdata = result["pizmetdata"];
+            console.log(pizmetdata);
+            browser.tabs
+                .sendMessage(tabs[0].id, { action: "send", content: pizmetdata })
+                .then(response => {
+                    console.log(response);
+                });
+        });
     })
         .catch(error => {
             console.log(error);
         });
-});
+});
+
+updateTable();

+ 1 - 0
assets/js/contentscript_pfg.js

@@ -8,6 +8,7 @@ function getInvoice() {
     invoice.forEach((row) => {
         x[row[0]] = { qty: row[4].substring(13), cost: row[6] }
     });
+    console.log(x);
     return x;
 }
 

+ 20 - 0
assets/js/contentscript_pizmet.js

@@ -1,5 +1,25 @@
 browser.runtime.onMessage.addListener(function (message, sender, sendResponse) {
     if (message["action"] === "send") {
+        const pizmetdata = message["content"];
+        rows = document.getElementsByTagName("table")[3]
+            .getElementsByTagName("tr");
 
+        console.log(rows);
+        const pizmetdatakeys = Object.keys(pizmetdata);
+        console.log(pizmetdatakeys);
+        for (var i = 1; i < rows.length; i++) {
+            var sku = rows[i].children[0].textContent.trim();
+            console.log(sku);
+            if (pizmetdatakeys.includes(sku)) {
+                console.log("match!");
+                changeevent = new Event("change");
+                qtyinput = rows[i].getElementsByTagName("input")[0]
+                qtyinput.value = pizmetdata[sku].qty;
+                qtyinput.dispatchEvent(changeevent);
+                costinput = rows[i].getElementsByTagName("input")[1]
+                costinput.value = pizmetdata[sku].cost;
+                costinput.dispatchEvent(changeevent);
+            }
+        }
     }
 });

+ 1 - 0
manifest.json

@@ -5,6 +5,7 @@
     "manifest_version": 2,
     "permissions": [
         "activeTab",
+        "tabs",
         "storage"
     ],
     "icons": {