]> git.wh0rd.org - chrome-ext/tabs-backup.git/blobdiff - advanced.js
use padStart API
[chrome-ext/tabs-backup.git] / advanced.js
index 9d48a66363e9f37dd166aab4a482baa835bd1bce..969ed0ed24c54c5bb6bc8675285c19556ad536ff 100644 (file)
@@ -43,11 +43,11 @@ document.addEventListener('DOMContentLoaded', function () {
 });
 
 function menu_ShowOptions () {
-       chrome.tabs.create({url:chrome.extension.getURL("options.html")});
+       chrome.runtime.openOptionsPage();
 }
 
 function menu_ShowAdvancedView() {
-       chrome.tabs.create({url:chrome.extension.getURL("advanced.html")});
+       chrome.tabs.create({url: "/advanced.html"});
 }
 
 function menu_ClearSelection () {
@@ -297,29 +297,6 @@ function insertBackupItem (backupName, backupObj, insertAtBeginning, doAnimation
        //      };
        //})(backupName);
 
-       //var deleteFuncHandler = (function(backupName, elem) {
-       //      return function(event) {
-                       /*if (!confirm("Delete backup '" + backupName + "'?")) {
-                               return;
-                       }*/
-
-       //              bootbox.confirm("Delete backup '" + backupName + "'?", function(confirmed) {
-       //                      if (confirmed) {
-       //                              chrome.extension.getBackgroundPage().deleteBackup(backupName, function() {
-
-       //                              });
-
-                                       //if (elem.parentNode) {
-                                       //  elem.parentNode.removeChild(elem);
-                                       //
-       //                              removeBackupItemDiv (backupName);
-       //                      }
-       //              });
-
-
-       //      };
-       //})(backupName, elem);
-
        if (insertAtBeginning && backupsDiv.childNodes.length > 0) {
                // some items already exist
                var firstNode = backupsDiv.childNodes[0];
@@ -488,8 +465,9 @@ function showAdvancedRestoreFor (backupName) {
 
 
                        var windowTitleSpan = document.createElement('span');
-                       windowTitleSpan.innerHTML = '<span style="font-weight: bold">Window ' + (i+1) + '</span>' +
-                                                                               '<span style="float: right; font-size: 11px;">Tabs: ' + windowTabs.length + '</span>';
+                       windowTitleSpan.innerHTML =
+                               `<span style="font-weight: bold">Window ${i + 1} (${window.state}) ${window.width}×${window.height} @ ${window.top}×${window.left}</span>` +
+                               `<span style="float: right; font-size: 11px;">Tabs: ${windowTabs.length}</span>`;
                        //windowTitleSpan.innerHTML = '<span>Window ' + (i+1) + '</span>' +
                        //                                                      '<br /><span style="font-size: 10px;">Nr. Tabs: ' + windowTabs.length + '</span>';
 
@@ -528,7 +506,9 @@ function showAdvancedRestoreFor (backupName) {
                                var tabSpanElem = document.createElement('span');
                                tabSpanElem.className = "restoreTabSpan";
                                var title = tabTitle === '' ? tabUrl : tabTitle;
-                               tabSpanElem.innerHTML = '<a href="' + tabUrl + '" target="_blank">' + title + '</a>';
+                               tabSpanElem.innerHTML =
+                                       (tab.pinned ? '📌 ' : '') +
+                                       `<a href="${tabUrl}" target="_blank">${title}</a>`;
 
                                tabElem.appendChild(checkboxTabElem);
                                tabElem.appendChild(checkboxTabLabelElem);
@@ -672,7 +652,9 @@ function menu_backupNow() {
 
        lastTimeBackupNowClicked = new Date().getTime();
 
-       chrome.extension.getBackgroundPage().backupNowManual(function(success, backupName, backupObj) {
+       chrome.runtime.sendMessage({
+               action: 'backupNowManual',
+       }, function({success, backupName, backupObj}) {
                if (success) {
                        //updateBackupsList();
                        insertBackupItem (backupName, backupObj, true /*insertAtBeginning*/, true /*doAnimation*/);
@@ -687,18 +669,27 @@ function menu_backupNow() {
 }
 
 function menu_restoreNow() {
-       chrome.extension.getBackgroundPage().restoreNow('full_backup');
+       chrome.runtime.sendMessage({
+               action: 'restoreNow',
+               args: ['full_backup'],
+       });
 }
 
-//document.onload(function () {
-//var a = document.getElementById("myid");
-//a.innerHTML = "ciaociao";
-//});
-
-/*
-var storageLocal = chrome.storage.local;
-storageLocal.getBytesInUse(null, function(bytesInUse) {
-       var elem = document.createElement("div");
-       elem.innerHTML = "<b>BYTES IN USE: " + bytesInUse + "</b><br />";
-       document.body.appendChild(elem);
-});*/
+/**
+ * Callback from other pages (like the background).
+ */
+chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
+       console.log(`Got message from ${sender.id}: action=${request.action}`, request);
+
+       let asyncResponse = false;
+       switch (request?.action) {
+               case 'insertBackupItem':
+                       insertBackupItem(...request.args);
+                       break;
+
+               case 'removeBackupItemDiv':
+                       removeBackupItemDiv(...request.args);
+                       break;
+       }
+       return asyncResponse;
+});