Fixed serchmode persistence and missing slot 0 tab
This commit is contained in:
parent
da93d9cfc3
commit
c70553b0e4
@ -4,9 +4,10 @@ Search Firefox tabs and get a list or automatic direct to the searched tab.
|
||||
# Download
|
||||
https://addons.mozilla.org/en-US/firefox/addon/tab-search-and-manage/
|
||||
|
||||
# Version: 1.2.6
|
||||
# Version: 1.2.8
|
||||
<ul>
|
||||
<li>Added all window search and list with toggling functionality.</li>
|
||||
<li>Fixed search type persistence.</li>
|
||||
<li>Fixed missing starting tabs in list.</li>
|
||||
</ul>
|
||||
|
||||
***Note:
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
"name": "Tab Search and Manage",
|
||||
"version": "1.2.6",
|
||||
"version": "1.2.8",
|
||||
"description": "This plugin can search, drag-n-drop ordering, and (un)hide all or some tabs.",
|
||||
|
||||
"applications": {
|
||||
@ -18,7 +18,8 @@
|
||||
|
||||
"permissions": [
|
||||
"tabs",
|
||||
"tabHide"
|
||||
"tabHide",
|
||||
"storage"
|
||||
],
|
||||
|
||||
"browser_action": {
|
||||
|
@ -59,16 +59,12 @@ document.addEventListener("click", (e) => {
|
||||
} else if (targetID == "searchMode") {
|
||||
var currentMode = target.getAttribute("searchwindowsmode");
|
||||
if (currentMode == "true") {
|
||||
target.title = "Searching curent window...";
|
||||
target.children[0].src = "../icons/window.png";
|
||||
target.setAttribute("searchwindowsmode", "false");
|
||||
// In generateview
|
||||
setSearchMode(target, "curent window", "window", false);
|
||||
} else {
|
||||
target.title = "Searching all windows...";
|
||||
target.children[0].src = "../icons/windows.png";
|
||||
target.setAttribute("searchwindowsmode", "true");
|
||||
setSearchMode(target, "all windows", "windows", true);
|
||||
}
|
||||
clearNodes(listZone);
|
||||
getTabs();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
const storageArea = browser.storage.local;
|
||||
const tabsAction = browser.tabs;
|
||||
const searchBar = document.getElementById("searchBar");
|
||||
const errHandler = document.getElementById("errorZone");
|
||||
@ -33,13 +34,14 @@ function logTabs(tabs) {
|
||||
windowIndex++;
|
||||
createContainer(tab);
|
||||
} else {
|
||||
createContainer(tab);
|
||||
windowIndex = 1;
|
||||
}
|
||||
}
|
||||
newWinId = currentWinId;
|
||||
}
|
||||
|
||||
newWinId = undefined;
|
||||
newWinId = undefined;
|
||||
// Set poped-out-window position and 100px up from selected elm
|
||||
oldElm.scrollIntoView();
|
||||
window.scrollBy(0, -100);
|
||||
@ -84,7 +86,7 @@ function createContainer(tab) {
|
||||
|
||||
// Set oldElm so eventListeners.js has starting ref
|
||||
if (tab.active == true) {
|
||||
spanTag.className = "block block-focused";
|
||||
spanTag.className = "block block-focused";
|
||||
if (oldElm) {
|
||||
oldElm.setAttribute("class", "block");
|
||||
}
|
||||
@ -104,15 +106,49 @@ function createTab() {
|
||||
function onError(error) { console.log(`Error: ${error}`); }
|
||||
|
||||
function getTabs() {
|
||||
var elm = document.getElementById("searchMode");
|
||||
var currentMode = (elm.getAttribute("searchwindowsmode") == "false");
|
||||
clearNodes(listZone);
|
||||
|
||||
if (currentMode == false) {
|
||||
tabsAction.query({}).then(logTabs, onError)
|
||||
.then(resetWinIndex, onError);
|
||||
} else {
|
||||
tabsAction.query({currentWindow: currentMode})
|
||||
.then(logTabs, onError)
|
||||
storageArea.get("searchMode").then((results) => {
|
||||
var target = document.getElementById("searchMode");
|
||||
if (Object.keys(results).length > 0) {
|
||||
var fileKeys = Object.keys(results);
|
||||
for (let fileKey of fileKeys) {
|
||||
var key = results[fileKey];
|
||||
|
||||
if (key) {
|
||||
target.title = "Searching curent windows...";
|
||||
target.children[0].src = "../icons/windows.png";
|
||||
target.setAttribute("searchwindowsmode", true);
|
||||
|
||||
tabsAction.query({}).then(logTabs, onError)
|
||||
.then(resetWinIndex, onError);
|
||||
} else {
|
||||
target.title = "Searching curent window...";
|
||||
target.children[0].src = "../icons/window.png";
|
||||
target.setAttribute("searchwindowsmode", false);
|
||||
|
||||
tabsAction.query({currentWindow: true})
|
||||
.then(logTabs, onError);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
setSearchMode(target, "curent window", "window", false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function setSearchMode(target, text, img, state) {
|
||||
target.title = "Searching " + text + "...";
|
||||
target.children[0].src = "../icons/" + img + ".png";
|
||||
target.setAttribute("searchwindowsmode", state);
|
||||
|
||||
await storageArea.set({"searchMode": state });
|
||||
getTabs(); // No loop b/c object keys will be greater than 0 after setup
|
||||
}
|
||||
|
||||
function clearNodes(targetNode) {
|
||||
while (targetNode.firstChild) {
|
||||
targetNode.removeChild(targetNode.firstChild);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -39,10 +39,19 @@ function searchTabs() {
|
||||
var currentMode = (elm.getAttribute("searchwindowsmode") == "false");
|
||||
clearNodes(listZone);
|
||||
|
||||
if (currentMode == false) {
|
||||
tabsAction.query({}).then(findTabs, onError);
|
||||
} else {
|
||||
tabsAction.query({currentWindow: currentMode})
|
||||
.then(findTabs, onError)
|
||||
}
|
||||
storageArea.get("searchMode").then((results) => {
|
||||
if (Object.keys(results).length > 0) {
|
||||
var fileKeys = Object.keys(results);
|
||||
for (let fileKey of fileKeys) {
|
||||
var key = results[fileKey];
|
||||
if (key) {
|
||||
tabsAction.query({}).then(findTabs, onError)
|
||||
.then(resetWinIndex, onError);
|
||||
} else {
|
||||
tabsAction.query({currentWindow: true})
|
||||
.then(findTabs, onError)
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user