From c6db23f52255a09863028b0be48b8771980d2f06 Mon Sep 17 00:00:00 2001 From: gdev Date: Wed, 12 Apr 2017 07:29:37 -0500 Subject: [PATCH 1/5] Added click on open options. --- popup.html | 28 +++++++------- popup.js | 111 ++++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 103 insertions(+), 36 deletions(-) diff --git a/popup.html b/popup.html index 6499b37..a3d0e29 100644 --- a/popup.html +++ b/popup.html @@ -1,25 +1,27 @@ + + Select pages to view +
- - + +
+
diff --git a/popup.js b/popup.js index ae42158..d21735d 100644 --- a/popup.js +++ b/popup.js @@ -1,38 +1,103 @@ -/** - * - * Created by gdev on 3/29/2017. - */ var urls = { - link1: 'http://www.amazon.in/books', - link2: 'http://www.amazon.in/kitchen', - link3: 'http://www.amazon.in/Grocery', - link4: 'http://www.amazon.in/mobile-phones' + }; + function clickHandler(e) { - // var link1 = document.getElementById('link1'); - var links = document.getElementsByName('link'); - links.forEach(function (link) { - if (link.checked) - chrome.tabs.create ({url : urls[link.id]}); + var urlsToOpen = document.getElementsByName("link"); + urlsToOpen.forEach(function (toOpen){ + if(toOpen.checked == true) { + chrome.tabs.create({url: toOpen.value, active : false }); + } }); - - chrome.tabs.executeScript({code : "var selectedPages = 'krish';"}, - function (result) { - chrome.tabs.executeScript({file : "openSelectedPages.js"}, function(result){}); - }); - window.close(); } document.addEventListener('DOMContentLoaded', function () { document.getElementById('openbtn').addEventListener('click', clickHandler); - var links = document.getElementsByName('link'); + var content = document.getElementById('content'); + + getCurrentTabUrl(function(currentUrl) { + var domain = getDomain(currentUrl); + var name = domain.split('.')[0]; + var allurls = Object.keys(urls); - links.forEach(function (link) { - link.addEventListener('click', function (e) { - document.getElementById('openbtn').disabled = false; + allurls.forEach(function(url, index) { + if (url === name) { + console.log(index); + var pages = Object.values(urls)[index]; + var list = document.createElement("UL"); + var i=1; + var value=""; + pages.forEach(function(page) { + console.log(Object.keys(page)[0]); + console.log(Object.values(page)[0]); + var input = document.createElement("INPUT"); + input.setAttribute("type", "checkbox"); + var linkObj = Object.values(page)[0]; + input.setAttribute("name", "link"); + + if (typeof linkObj === 'object') { + input.setAttribute("value", linkObj.url); + input.setAttribute("Alt", linkObj.alt); + if (currentUrl !== linkObj && linkObj.selected !== false) { + input.setAttribute("checked", true); + } + } else { + input.setAttribute("value", linkObj); + input.setAttribute("Alt", linkObj); + if (currentUrl !== linkObj) { + input.setAttribute("checked", true); + } + } + var id = Object.keys(page)[0]; + input.setAttribute("id", id); + + var label = document.createElement('label'); + label.htmlFor = id; + label.appendChild(document.createTextNode(id)); + list.appendChild(input); + list.appendChild(label); + var line = document.createElement('br'); + list.appendChild(line); + }); + content.appendChild(list); + } }); }); + }); + +function getDomain(url, subdomain) { + subdomain = subdomain || false; + + url = url.replace(/(https?:\/\/)?(www.)?/i, ''); + + if (!subdomain) { + url = url.split('.'); + + url = url.slice(url.length - 2).join('.'); + } + + if (url.indexOf('/') !== -1) { + return url.split('/')[0]; + } + + return url; +} + +function getCurrentTabUrl(callback) { + var queryInfo = { + active: true, + currentWindow: true + }; + + chrome.tabs.query(queryInfo, function (tabs) { + + var tab = tabs[0]; + var url = tab.url; + callback(url); + }); + +} \ No newline at end of file From 4e802351dcb767a36e5e99b24859a774a9a29b9d Mon Sep 17 00:00:00 2001 From: gdev Date: Wed, 12 Apr 2017 14:32:01 -0500 Subject: [PATCH 2/5] Added click on open options. --- manifest.json | 2 +- popup.js | 151 ++++++++++++++++++++++++++++++++++---------------- 2 files changed, 105 insertions(+), 48 deletions(-) diff --git a/manifest.json b/manifest.json index 34461ab..c89f0fa 100644 --- a/manifest.json +++ b/manifest.json @@ -13,7 +13,7 @@ "chrome_style": true }, "background": { - "scripts": ["taborola.js", "background.js"], + "scripts": ["popup.js", "taborola.js", "background.js"], "persistent": false }, "commands": { diff --git a/popup.js b/popup.js index d21735d..196a9c0 100644 --- a/popup.js +++ b/popup.js @@ -5,66 +5,124 @@ var urls = { function clickHandler(e) { - var urlsToOpen = document.getElementsByName("link"); - urlsToOpen.forEach(function (toOpen){ - if(toOpen.checked == true) { - chrome.tabs.create({url: toOpen.value, active : false }); + var allUrls = document.getElementsByName("link"); + var urlsToOpen = []; + allUrls.forEach (function (url) { + console.log(url); + if (url.checked) { + urlsToOpen.push(url.value); } }); + // alert("kkk" + urlsToOpen); + var firstUrl = urlsToOpen.shift(); + + urlsToOpen.forEach(function (url) { + chrome.tabs.create({url: url, active : false}); + }); + + // chrome.tabs.create({url: firstUrl, active : false}, function (tab) { + // alert(firstUrl); + + // urlsToOpen.forEach(function (url) { + // chrome.tabs.create({url: url, active : false}); + // }); + + // chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { + // alert("in update"); + // alert(tab.url + "kkk" + firstUrl); + + /*if (tab.url === firstUrl && changeInfo.status == 'complete') {*/ + // alert('done'); + // urlsToOpen.forEach(function (toOpen){ + // chrome.tabs.create({url: toOpen, active : false}); + // }); + //return; + //} + // }); + // }); + // alert(" first" + firstUrl); + window.close(); } +function openTab(urlToOpen) { + chrome.tabs.create({url: urlToOpen, active : false}); + chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { + // alert("in update"); + // alert(tab.url + "kkk" + urlToOpen); + + if (tab.url === urlToOpen && changeInfo.status == 'complete') { + alert('done'); + return; + } + }); + +} document.addEventListener('DOMContentLoaded', function () { document.getElementById('openbtn').addEventListener('click', clickHandler); var content = document.getElementById('content'); + chrome.tabs.getCurrent(function (callback) { + console.log(callback); + }); + + chrome.tabs.getSelected(null, function(tab){ + console.log(tab); + }); getCurrentTabUrl(function(currentUrl) { var domain = getDomain(currentUrl); var name = domain.split('.')[0]; - var allurls = Object.keys(urls); - - allurls.forEach(function(url, index) { - if (url === name) { - console.log(index); - var pages = Object.values(urls)[index]; - var list = document.createElement("UL"); - var i=1; - var value=""; - pages.forEach(function(page) { - console.log(Object.keys(page)[0]); - console.log(Object.values(page)[0]); - var input = document.createElement("INPUT"); - input.setAttribute("type", "checkbox"); - var linkObj = Object.values(page)[0]; - input.setAttribute("name", "link"); - - if (typeof linkObj === 'object') { - input.setAttribute("value", linkObj.url); - input.setAttribute("Alt", linkObj.alt); - if (currentUrl !== linkObj && linkObj.selected !== false) { - input.setAttribute("checked", true); - } - } else { - input.setAttribute("value", linkObj); - input.setAttribute("Alt", linkObj); - if (currentUrl !== linkObj) { - input.setAttribute("checked", true); - } - } - var id = Object.keys(page)[0]; - input.setAttribute("id", id); - - var label = document.createElement('label'); - label.htmlFor = id; - label.appendChild(document.createTextNode(id)); - list.appendChild(input); - list.appendChild(label); - var line = document.createElement('br'); - list.appendChild(line); - }); - content.appendChild(list); + //console.log("fff" + JSON.stringify()); + //var allurls = Object.keys(urls); + //console.log(allurls); + //allurls.forEach(function(url, index) { + //if (url === name) { + var allurls = urls[name]; + //console.log(index); + //var pages = Object.values(urls)[index]; + var list = document.createElement("UL"); + var i=1; + var value=""; + allurls.forEach(function(page) { + console.log(Object.keys(page)[0]); + console.log(Object.values(page)[0]); + var input = document.createElement("INPUT"); + var linkObj = Object.values(page)[0]; + + input.setAttribute("type", "checkbox"); + input.setAttribute("value", Object.values(page)[0]); + input.setAttribute("name", "link"); + var id = Object.keys(page)[0]; + input.setAttribute("id", id); + + if (typeof linkObj === 'object') { + input.setAttribute("value", linkObj.url); + input.setAttribute("Alt", linkObj.alt); + if (currentUrl !== linkObj && linkObj.selected !== false) { + input.setAttribute("checked", true); + } + } else { + input.setAttribute("value", linkObj); + input.setAttribute("Alt", linkObj); + if (currentUrl !== linkObj[0]) { + input.setAttribute("checked", true); + } } + + + var label = document.createElement('label'); + label.htmlFor = id; + label.appendChild(document.createTextNode(id)); + list.appendChild(input); + list.appendChild(label); + var line = document.createElement('br'); + list.appendChild(line); + + }); + content.appendChild(list); + //} + //}); }); }); @@ -99,5 +157,4 @@ function getCurrentTabUrl(callback) { var url = tab.url; callback(url); }); - } \ No newline at end of file From 65852e1c838b420003208619ad29dda7c5b72f00 Mon Sep 17 00:00:00 2001 From: gdev Date: Wed, 12 Apr 2017 15:28:51 -0500 Subject: [PATCH 3/5] Added click on open options. --- popup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/popup.js b/popup.js index 196a9c0..ad77983 100644 --- a/popup.js +++ b/popup.js @@ -14,7 +14,7 @@ function clickHandler(e) { } }); // alert("kkk" + urlsToOpen); - var firstUrl = urlsToOpen.shift(); + // var firstUrl = urlsToOpen.shift(); urlsToOpen.forEach(function (url) { chrome.tabs.create({url: url, active : false}); From 6adb12216bf18e7df2f7696a57b3f41f5aac1e8c Mon Sep 17 00:00:00 2001 From: gdev Date: Tue, 18 Apr 2017 15:33:01 -0500 Subject: [PATCH 4/5] Added cancel and other changes. --- pages.json | 2 ++ popup.html | 1 + popup.js | 21 ++++++++++++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 pages.json diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/pages.json @@ -0,0 +1,2 @@ +{ +} diff --git a/popup.html b/popup.html index a3d0e29..56ad5c2 100644 --- a/popup.html +++ b/popup.html @@ -22,6 +22,7 @@
+ diff --git a/popup.js b/popup.js index ad77983..5ba3c74 100644 --- a/popup.js +++ b/popup.js @@ -1,10 +1,23 @@ -var urls = { - +var jsonData; + +var xhr = new XMLHttpRequest(); +xhr.open('GET', chrome.extension.getURL('pages.json'), true); +xhr.onreadystatechange = function() { + console.log("here"); + if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) { + console.log(xhr.responseText); + jsonData = JSON.parse(xhr.responseText); + } }; +xhr.send(); +function closeWindow (e) { + window.close(); +} function clickHandler(e) { + var allUrls = document.getElementsByName("link"); var urlsToOpen = []; allUrls.forEach (function (url) { @@ -59,7 +72,9 @@ function openTab(urlToOpen) { } document.addEventListener('DOMContentLoaded', function () { + document.getElementById('cancelbtn').addEventListener('click', closeWindow); document.getElementById('openbtn').addEventListener('click', clickHandler); + var content = document.getElementById('content'); chrome.tabs.getCurrent(function (callback) { console.log(callback); @@ -77,7 +92,7 @@ document.addEventListener('DOMContentLoaded', function () { //console.log(allurls); //allurls.forEach(function(url, index) { //if (url === name) { - var allurls = urls[name]; + var allurls = jsonData[name]; //console.log(index); //var pages = Object.values(urls)[index]; var list = document.createElement("UL"); From 0526dd63be690b79f6f7ae6486bbd1ef30c0bc25 Mon Sep 17 00:00:00 2001 From: gdev Date: Tue, 18 Apr 2017 16:32:30 -0500 Subject: [PATCH 5/5] Added options.js for options page. --- options.html | 25 ++++--- options.js | 196 ++++++++++++++++++++++++++++++++++++++++++++++----- pages.json | 51 ++++++++++++++ popup.js | 168 +++++++++++++++---------------------------- 4 files changed, 301 insertions(+), 139 deletions(-) diff --git a/options.html b/options.html index 7bd0c48..9bddae9 100644 --- a/options.html +++ b/options.html @@ -1,7 +1,7 @@ - Taborola Extension Options + My Preferences Options @@ -17,18 +17,27 @@ --> - +
+
+
+ +
+
+ -
- + \ No newline at end of file diff --git a/options.js b/options.js index de6a9ac..1765d0c 100644 --- a/options.js +++ b/options.js @@ -2,32 +2,190 @@ * Created by gdev on 3/18/2017. */ function save_options() { - var tabsBackground = document.getElementById('tabsBackground').checked; - var highlightTabs = document.getElementById('highlightTabs').checked; - - chrome.storage.sync.set({ - tabsBackground: tabsBackground, - highlightTabs: highlightTabs - }, function() { - // Update status to let user know options were saved. - var status = document.getElementById('status'); - status.textContent = 'Options saved.'; - setTimeout(function() { - status.textContent = ''; - }, 750); + var prefDomain = document.getElementById('prefDomain').value; + var prefUrl = document.getElementById('prefUrl').value; + //var highlightTabs = document.getElementById('highlightTabs').checked; + alert(prefDomain); + var urls={}; + + urls[prefDomain] = [prefUrl]; + + chrome.storage.sync.get( "preferedPages", function(items) { + alert("items" + JSON.stringify(items)); + var origObj = items.preferedPages; + alert("before" + JSON.stringify(origObj)); + + if (origObj[prefDomain]) { + origObj[prefDomain].push(prefUrl); + } else { + origObj[prefDomain] = [prefUrl]; + } + + urls = origObj; + alert("final--" + JSON.stringify(urls)); + chrome.storage.sync.set({preferedPages: origObj}, function() { + // Update status to let user know options were saved. + var status = document.getElementById('status'); + status.textContent = 'Options saved.'; + setTimeout(function() { + status.textContent = ''; + }, 750); + }); + //items.preferedPages.prefDomain.push(prefUrl); + //alert("after changing" + items.preferedPages.prefDomain.push(prefUrl)); }); + + /* var urls; + chrome.storage.sync.get( "preferedPages", function(items) { + alert("items" + JSON.stringify(items)); + if (items) { + var domain = items.preferedPages.prefDomain; + alert(domain + "--" + prefDomain) + if (domain) { + //urls = domain.push(prefUrl); + urls = items.preferedPages.prefDomain.push(prefUrl); + alert("see" + urls); + } else { + alert ("me here"); + urls[prefDomain] = [prefUrl]; + } + + + } + });*/ + + + //alert( "URLS" + JSON.stringify(urls)); + /*chrome.storage.sync.set({ + preferedPages: urls + }, function() { + // Update status to let user know options were saved. + var status = document.getElementById('status'); + status.textContent = 'Options saved.'; + setTimeout(function() { + status.textContent = ''; + }, 750); + });*/ } // Restores tabsBackground state using the preferences // stored in chrome.storage. function restore_options() { - chrome.storage.sync.get({ - tabsBackground: true, - highlightTabs: true - }, function(items) { - document.getElementById('tabsBackground').checked = items.tabsBackground; - document.getElementById('highlightTabs').checked = items.highlightTabs; + chrome.storage.sync.get( "preferedPages", function(items) { + var content = document.getElementById('content'); + var text = document.createTextNode(JSON.stringify(items)); + var data = items.preferedPages; + var table = document.createElement("TABLE"); + table.setAttribute("id", "table"); + content.appendChild(table); + var tr = document.createElement("TR"); + tr.setAttribute("id", "heading"); + table.appendChild(tr); + + var col1 = document.createElement("TD"); + var cell1 = document.createTextNode("Domain"); + col1.appendChild(cell1); + tr.appendChild(col1); + + var col2 = document.createElement("TD"); + var cell2 = document.createTextNode("Preferred URL"); + col2.appendChild(cell2); + tr.appendChild(col2); + + var col3 = document.createElement("TD"); + var cell3 = document.createTextNode("Delete"); + col3.appendChild(cell3); + tr.appendChild(col3); + + table.style.border = "thin solid #000000"; + //tr.style.border = "thin solid #000000"; + col1.style.border = "thin solid #000000"; + col2.style.border = "thin solid #000000"; + col3.style.border = "thin solid #000000"; + var rowIndex = 0; + Object.keys(data).forEach(function(domain, index){ + var rowSpan = (data[domain]).length; + data[domain].forEach(function(url, url_index) { + var dataRow = document.createElement("TR"); + dataRow.id = rowIndex; + table.appendChild(dataRow); + if (url_index === 0) { + var col1 = document.createElement("TD"); + col1.rowSpan = rowSpan; + var cell1 = document.createTextNode(domain); + col1.appendChild(cell1); + col1.style.border = "thin solid #000000"; + dataRow.appendChild(col1); + } + var col2 = document.createElement("TD"); + var cell2 = document.createTextNode(url); + col2.appendChild(cell2); + col2.style.border = "thin solid #000000"; + dataRow.appendChild(col2); + var col3 = document.createElement("TD"); + var cell3 = document.createElement("INPUT"); + cell3.type = "checkbox"; + cell3.id = domain; + cell3.name = "delete_chkbx"; + col3.appendChild(cell3); + col3.align = "center"; + col3.style.border = "thin solid #000000"; + dataRow.appendChild(col3); + rowIndex++; + }); + + }); + //content.appendChild(text); + + }); +} + +function delete_selected_options() { + alert("in delete"); + var allChBx = document.getElementsByName("delete_chkbx"); + + chrome.storage.sync.get( "preferedPages", function(items) { + alert("items" + JSON.stringify(items)); + var origObj = items.preferedPages; + allChBx.forEach (function (chkbx) { + //alert(chkbx); + if (chkbx.checked) { + //alert("chked"); + var rowObj = chkbx.parentElement.parentElement; + var rowId = chkbx.parentElement.parentElement.id; + var domain; + var url; + //alert(rowObj.childNodes.length); + if (rowObj.childNodes.length === 2) { + domain = chkbx.id; + url = rowObj.childNodes[0].innerHTML; + } else { + domain = rowObj.childNodes[0].innerHTML; + url = rowObj.childNodes[1].innerHTML; + } + alert(rowId + "--" + domain + "--" + url); + alert("orig obj" + JSON.stringify(origObj)); + var urlIndex = origObj[domain].indexOf(url); + alert("index in obj-" + urlIndex); + origObj[domain].splice(urlIndex, 1); + alert("obj after delete" + JSON.stringify(origObj)); + } + }); + alert("obj after delete" + JSON.stringify(origObj)); + chrome.storage.sync.set({preferedPages: origObj}, function() { + // Update status to let user know options were saved. + var status = document.getElementById('status'); + status.textContent = 'Options saved.'; + setTimeout(function() { + status.textContent = ''; + }, 750); + }); + //items.preferedPages.prefDomain.push(prefUrl); + //alert("after changing" + items.preferedPages.prefDomain.push(prefUrl)); }); + + } document.addEventListener('DOMContentLoaded', restore_options); document.getElementById('save').addEventListener('click', save_options); +document.getElementById('delete').addEventListener('click', delete_selected_options); diff --git a/pages.json b/pages.json index 2c63c08..4c7445f 100644 --- a/pages.json +++ b/pages.json @@ -1,2 +1,53 @@ { +"amazon": [ + {"Books": "http://www.amazon.in/books"}, + {"Kitchen": "http://www.amazon.in/kitchen"}, + {"Grocery": "http://www.amazon.in/Gourmet-Specialty-Foods"}, + {"Mobile-Phones": "http://www.amazon.in/mobile-phones"} +], +"cnn" : [ + {"Regions": "http://edition.cnn.com/regions"}, + {"Politics": "http://edition.cnn.com/politics"}, + {"International": "http://money.cnn.com/INTERNATIONAL/"}, + {"Entertainment": "http://edition.cnn.com/entertainment"}, + {"Technology": "http://money.cnn.com/technology/"} +], +"yahoo" : [ + {"NASDAQ" : {"url": "https://finance.yahoo.com/chart/^IXIC", "selected": false}}, + {"NFLX" : "https://finance.yahoo.com/chart/NFLX"}, + {"GOOGL" : "https://finance.yahoo.com/chart/GOOGL"}, + {"AAPL" : "https://finance.yahoo.com/chart/AAPL"}, + {"PCLN" : "https://finance.yahoo.com/chart/PCLN"}, + {"FB" : "https://finance.yahoo.com/chart/FB"}, + {"SIRI" : "https://finance.yahoo.com/chart/SIRI"}, + + {"AAOI" : "https://finance.yahoo.com/chart/AAOI"}, + {"PLCE" : "https://finance.yahoo.com/chart/PLCE"}, + {"MYSZ" : "https://finance.yahoo.com/chart/MYSZ"}, + {"HTGM" : "https://finance.yahoo.com/chart/HTGM"}, + {"SNPS" : "https://finance.yahoo.com/chart/SNPS"}, + {"COOL" : "https://finance.yahoo.com/chart/COOL"}, + {"AUPH" : "https://finance.yahoo.com/chart/AUPH"}, + {"TECL" : "https://finance.yahoo.com/chart/TECL"}, + {"AKTX" : "https://finance.yahoo.com/chart/AKTX"}, + {"SLCA" : "https://finance.yahoo.com/chart/SLCA"}, + {"WIX" : "https://finance.yahoo.com/chart/WIX"} +], +"f-apimlb810lv":[ + {"subscription": "https://f-apimlb810lv/m/subscription/ui/"}, + {"remote": "https://f-apimlb810lv/m/remote/ui/"}, + {"telemetry": "https://f-apimlb810lv/m/telemetry/ui/"}, + {"location": "https://f-apimlb810lv/m/location/ui/"}, + {"notification": "https://f-apimlb810lv/m/notification/ui/"}, + {"monitor": "https://f-apimlb810lv/m/monitor/ui/"} +], + "f-loggui801lv:9000": [ + {"APILogs": "https://f-loggui801lv:9000/streams/564f49c3e4b0eaab4985f6e2/messages?rangetype=relative&q=*+AND+facility%3Aapim&relative=0&fields=http_method%2Chttp_status%2Cmessage%2Creq_url%2Csource#fields=http_method%2Chttp_status%2Cmessage%2Creq_url%2Csource"}, + { + "AOTALogs": { + "url": "https://f-loggui801lv:9000/streams/5899e8c6e4b057ec305d93d0/messages?rangetype=relative&q=*+AND+facility%3Aapim&relative=0&fields=http_method%2Chttp_status%2Cmessage%2Creq_url%2Csource#fields=http_method%2Chttp_status%2Cmessage%2Creq_url%2Csource", + "selected": false + } + } + ] } diff --git a/popup.js b/popup.js index 5ba3c74..dbe2149 100644 --- a/popup.js +++ b/popup.js @@ -1,143 +1,86 @@ -var jsonData; - -var xhr = new XMLHttpRequest(); -xhr.open('GET', chrome.extension.getURL('pages.json'), true); -xhr.onreadystatechange = function() { - console.log("here"); - if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) { - console.log(xhr.responseText); - jsonData = JSON.parse(xhr.responseText); - } +var urls = { + "amazon": [ + {"Books": "http://www.amazon.in/books"}, + {"Kitchen": "http://www.amazon.in/kitchen"}, + {"Grocery": "http://www.amazon.in/Gourmet-Specialty-Foods"}, + {"Mobile-Phones": "http://www.amazon.in/mobile-phones"} + ], + "cnn" : [ + {"Regions": "http://edition.cnn.com/regions"}, + {"Politics": "http://edition.cnn.com/politics"}, + {"International": "http://money.cnn.com/INTERNATIONAL/"}, + {"Entertainment": "http://edition.cnn.com/entertainment"}, + {"Technology": "http://money.cnn.com/technology/"} + ] }; -xhr.send(); -function closeWindow (e) { - window.close(); -} function clickHandler(e) { - var allUrls = document.getElementsByName("link"); var urlsToOpen = []; allUrls.forEach (function (url) { console.log(url); if (url.checked) { - urlsToOpen.push(url.value); + chrome.tabs.create({url: url.value, active : false}); } }); - // alert("kkk" + urlsToOpen); - // var firstUrl = urlsToOpen.shift(); - urlsToOpen.forEach(function (url) { - chrome.tabs.create({url: url, active : false}); - }); - // chrome.tabs.create({url: firstUrl, active : false}, function (tab) { - // alert(firstUrl); - // urlsToOpen.forEach(function (url) { - // chrome.tabs.create({url: url, active : false}); - // }); - - // chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { - // alert("in update"); - // alert(tab.url + "kkk" + firstUrl); - - /*if (tab.url === firstUrl && changeInfo.status == 'complete') {*/ - // alert('done'); - // urlsToOpen.forEach(function (toOpen){ - // chrome.tabs.create({url: toOpen, active : false}); - // }); - //return; - //} - // }); - // }); - // alert(" first" + firstUrl); window.close(); } -function openTab(urlToOpen) { - chrome.tabs.create({url: urlToOpen, active : false}); - chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { - // alert("in update"); - // alert(tab.url + "kkk" + urlToOpen); - - if (tab.url === urlToOpen && changeInfo.status == 'complete') { - alert('done'); - return; - } - }); - +function closeWindow (e) { + window.close(); } document.addEventListener('DOMContentLoaded', function () { document.getElementById('cancelbtn').addEventListener('click', closeWindow); document.getElementById('openbtn').addEventListener('click', clickHandler); - var content = document.getElementById('content'); - chrome.tabs.getCurrent(function (callback) { - console.log(callback); - }); - chrome.tabs.getSelected(null, function(tab){ - console.log(tab); - }); + var jsonData; + var xhr = new XMLHttpRequest(); + xhr.open('GET', chrome.extension.getURL('mypages.json'), true); + xhr.onreadystatechange = function() { + console.log("here"); + if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) { + console.log(xhr.responseText); + jsonData = JSON.parse(xhr.responseText); + } + }; + xhr.send(); getCurrentTabUrl(function(currentUrl) { var domain = getDomain(currentUrl); var name = domain.split('.')[0]; - //console.log("fff" + JSON.stringify()); - //var allurls = Object.keys(urls); - //console.log(allurls); - //allurls.forEach(function(url, index) { - //if (url === name) { var allurls = jsonData[name]; - //console.log(index); - //var pages = Object.values(urls)[index]; - var list = document.createElement("UL"); - var i=1; - var value=""; - allurls.forEach(function(page) { - console.log(Object.keys(page)[0]); - console.log(Object.values(page)[0]); - var input = document.createElement("INPUT"); - var linkObj = Object.values(page)[0]; - - input.setAttribute("type", "checkbox"); - input.setAttribute("value", Object.values(page)[0]); - input.setAttribute("name", "link"); - var id = Object.keys(page)[0]; - input.setAttribute("id", id); - - if (typeof linkObj === 'object') { - input.setAttribute("value", linkObj.url); - input.setAttribute("Alt", linkObj.alt); - if (currentUrl !== linkObj && linkObj.selected !== false) { - input.setAttribute("checked", true); - } - } else { - input.setAttribute("value", linkObj); - input.setAttribute("Alt", linkObj); - if (currentUrl !== linkObj[0]) { - input.setAttribute("checked", true); - } - } - - - var label = document.createElement('label'); - label.htmlFor = id; - label.appendChild(document.createTextNode(id)); - list.appendChild(input); - list.appendChild(label); - var line = document.createElement('br'); - list.appendChild(line); - - - }); - content.appendChild(list); - //} - //}); + console.log(jsonData[name]); + if(jsonData[name]){ + var list = document.createElement("UL"); + var i=1; + var value=""; + allurls.forEach(function(page) { + console.log(Object.keys(page)[0]); + console.log(Object.values(page)[0]); + var input = document.createElement("INPUT"); + input.setAttribute("type", "checkbox"); + input.setAttribute("value", Object.values(page)[0]); + input.setAttribute("name", "link"); + var id = Object.keys(page)[0]; + input.setAttribute("id", id); + + var label = document.createElement('label'); + label.htmlFor = id; + label.appendChild(document.createTextNode(id)); + list.appendChild(input); + list.appendChild(label); + var line = document.createElement('br'); + list.appendChild(line); + }); + content.appendChild(list); + } }); }); @@ -166,10 +109,11 @@ function getCurrentTabUrl(callback) { currentWindow: true }; - chrome.tabs.query(queryInfo, function (tabs) { + chrome.tabs.query(queryInfo, function(tabs) { var tab = tabs[0]; var url = tab.url; callback(url); }); -} \ No newline at end of file + +}