mirror of
https://github.com/ThePhaseless/Byparr.git
synced 2025-03-15 09:50:20 +08:00
162 lines
4.2 KiB
JavaScript
162 lines
4.2 KiB
JavaScript
const toggle = document.getElementById("toggle");
|
|
const refresh = document.getElementById("refresh");
|
|
const report = document.getElementById("report");
|
|
const options = document.getElementById("options");
|
|
|
|
const issueTypeSelect = document.getElementById("report_issue_type");
|
|
const reportNotesTextarea = document.getElementById("report-notes");
|
|
|
|
let currentTab = false;
|
|
|
|
toggle.addEventListener("click", function (e) {
|
|
chrome.runtime.sendMessage(
|
|
{
|
|
command: "toggle_extension",
|
|
tabId: currentTab.id,
|
|
},
|
|
() => reloadMenu(true)
|
|
);
|
|
});
|
|
|
|
refresh.addEventListener("click", function (e) {
|
|
chrome.runtime.sendMessage(
|
|
{
|
|
command: "refresh_page",
|
|
tabId: currentTab.id,
|
|
},
|
|
() => window.close()
|
|
);
|
|
});
|
|
|
|
options.addEventListener("click", function (e) {
|
|
chrome.runtime.sendMessage(
|
|
{
|
|
command: "open_options_page",
|
|
},
|
|
() => window.close()
|
|
);
|
|
});
|
|
|
|
report.addEventListener("click", () => switchMenu("menu_report"));
|
|
document
|
|
.getElementById("error_back_button")
|
|
.addEventListener("click", () => switchMenu("menu_main"));
|
|
|
|
document.getElementById("report_github").addEventListener("click", () =>
|
|
chrome.runtime.sendMessage(
|
|
{
|
|
command: "report_website",
|
|
tabId: currentTab.id,
|
|
anon: false,
|
|
},
|
|
() => window.close()
|
|
)
|
|
);
|
|
|
|
document.getElementById("report_anon").addEventListener("click", function (e) {
|
|
switchMenu("menu_report_anon");
|
|
document.getElementById("hostname").textContent = currentTab.hostname;
|
|
});
|
|
|
|
issueTypeSelect.addEventListener("change", () => {
|
|
let issueTypeValue =
|
|
issueTypeSelect.options[issueTypeSelect.selectedIndex].value;
|
|
|
|
document
|
|
.querySelectorAll("label[id*='issue_description']")
|
|
.forEach((label) => {
|
|
label.style.display = "none";
|
|
});
|
|
|
|
reportNotesTextarea.style.display =
|
|
issueTypeValue == "general" ? "block" : "none";
|
|
document.getElementById(`${issueTypeValue}_issue_description`).style.display =
|
|
"block";
|
|
});
|
|
|
|
document.getElementById("report_anon_send").addEventListener("click", () => {
|
|
let issueTypeValue =
|
|
issueTypeSelect.options[issueTypeSelect.selectedIndex].value;
|
|
|
|
switchMenu("menu_loading");
|
|
chrome.runtime.sendMessage(
|
|
{
|
|
command: "report_website",
|
|
tabId: currentTab.id,
|
|
anon: true,
|
|
issueType: issueTypeValue,
|
|
notes: issueTypeValue == "general" ? reportNotesTextarea.value : null,
|
|
},
|
|
(message) => {
|
|
if (message.error) {
|
|
switchMenu("menu_error");
|
|
} else {
|
|
window.close();
|
|
}
|
|
}
|
|
);
|
|
});
|
|
|
|
document
|
|
.getElementById("report_anon_cancel")
|
|
.addEventListener("click", () => window.close());
|
|
|
|
function reloadMenu(enableRefreshButton) {
|
|
translate();
|
|
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
|
|
chrome.runtime.sendMessage(
|
|
{
|
|
command: "get_active_tab",
|
|
tabId: tabs[0].id,
|
|
},
|
|
function (message) {
|
|
message = message || {};
|
|
currentTab = message.tab ? message.tab : false;
|
|
|
|
if (message.tab && message.tab.hostname) {
|
|
toggle.textContent = chrome.i18n.getMessage(
|
|
message.tab.whitelisted ? "menuEnable" : "menuDisable",
|
|
message.tab.hostname
|
|
);
|
|
toggle.style.display = "block";
|
|
|
|
report.style.display = message.tab.whitelisted ? "none" : "block";
|
|
} else {
|
|
toggle.textContent = "";
|
|
toggle.style.display = "none";
|
|
report.style.display = "none";
|
|
}
|
|
|
|
if (typeof enableRefreshButton != "undefined") {
|
|
refresh.style.display = "block";
|
|
toggle.style.display = "none";
|
|
report.style.display = "none";
|
|
}
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function switchMenu(id) {
|
|
const menus = document.getElementsByClassName("menu");
|
|
for (let i = 0; i < menus.length; i++) {
|
|
if (menus[i].id != id) {
|
|
menus[i].classList.add("menu-hidden");
|
|
} else {
|
|
menus[i].classList.remove("menu-hidden");
|
|
}
|
|
}
|
|
}
|
|
|
|
function translate() {
|
|
for (const element of document.querySelectorAll("[data-translate]")) {
|
|
element.textContent = chrome.i18n.getMessage(element.dataset.translate);
|
|
}
|
|
|
|
reportNotesTextarea.placeholder = chrome.i18n.getMessage(
|
|
"reportNotesPlaceholder"
|
|
);
|
|
}
|
|
|
|
reloadMenu();
|