extend the default page

This commit is contained in:
buzz-lightsnack-2007 2024-04-16 18:30:47 +08:00
parent b1cceec7fc
commit d71e9effd0
3 changed files with 123 additions and 114 deletions

18
scripts/pages/page.js Normal file
View file

@ -0,0 +1,18 @@
/* page.js
Construct an internal page.
*/
import windowman from "/scripts/GUI/windowman.js";
export default class Page {
constructor () {
this.window = window;
this.window[`manager`] = new windowman();
(this.window[`manager`]) ? this.window.manager.sync() : false;
document.addEventListener("DOMContentLoaded", function () {
M.AutoInit();
});
}
};

View file

@ -1,22 +1,21 @@
/* Popup.js /* Popup.js
Build the interface for popup Build the interface for popup
*/ */
// Import modules. // Import modules.
import {read, forget} from "/scripts/secretariat.js";
import windowman from "/scripts/GUI/windowman.js"; import windowman from "/scripts/GUI/windowman.js";
let secretariat = await import(chrome.runtime.getURL("scripts/secretariat.js")); import Page from "/scripts/pages/page.js";
function start() { class Page_Popup extends Page {
windowman.prepare(); constructor() {
} super();
/* Populate the strings on the page. */ (this.events) ? this.events() : false;
function say(element) { }
// document.title
events() {
}
} }
function main() { new Page_Popup();
let tab = start();
say(tab);
}
main();

View file

@ -5,109 +5,101 @@
// Import modules. // Import modules.
//import { windowman } from "../windowman.js"; //import { windowman } from "../windowman.js";
import {forget} from "/scripts/secretariat.js"; import {read, forget} from "/scripts/secretariat.js";
import windowman from "/scripts/GUI/windowman.js"; import Page from "/scripts/pages/page.js";
async function build() { class Page_Settings extends Page {
let window = new windowman(); constructor() {
window.sync(); super();
(this.events) ? this.events() : false;
}
/*
Define the mapping of each button.
@param {object} window the window
*/
events() {
if (document.querySelector(`[data-action="filters,update"]`)) {
document
.querySelector(`[data-action="filters,update"]`)
.addEventListener(`click`, async () => {
let filters = new (
await import(chrome.runtime.getURL(`scripts/filters.js`))
).default();
filters.update();
});
}
// Add the window events. if (document.querySelector(`[data-action="filters,add,one"]`)) {
events(window); document
}; .querySelector(`[data-action="filters,add,one"]`)
.addEventListener(`click`, async () => {
/* // Import the filters module.
Define the mapping of each button. const texts = (
await import(chrome.runtime.getURL(`/scripts/strings/read.js`))
@param {object} window the window ).default;
*/ let filters = new (
function events(window) { await import(chrome.runtime.getURL(`scripts/filters.js`))
if (document.querySelector(`[data-action="filters,update"]`)) { ).default();
document
.querySelector(`[data-action="filters,update"]`) let filter_source = prompt(
.addEventListener(`click`, async () => { texts.localized(`settings_filters_add_prompt`),
let filters = new ( );
await import(chrome.runtime.getURL(`scripts/filters.js`)) if (filter_source ? filter_source.trim() : false) {
).default(); filters.update(filter_source.trim());
filters.update(); };
}); });
} }
if (document.querySelector(`[data-action="filters,update,one"]`)) {
if (document.querySelector(`[data-action="filters,add,one"]`)) { document
document .querySelector(`[data-action="filters,update,one"]`)
.querySelector(`[data-action="filters,add,one"]`) .addEventListener(`click`, async () => {
.addEventListener(`click`, async () => { // Import the filters module.
// Import the filters module. const texts = (
const texts = ( await import(chrome.runtime.getURL(`/scripts/strings/read.js`))
await import(chrome.runtime.getURL(`/scripts/strings/read.js`)) ).default;
).default; let filters = new (
let filters = new ( await import(chrome.runtime.getURL(`scripts/filters.js`))
await import(chrome.runtime.getURL(`scripts/filters.js`)) ).default();
).default();
let filter_source = prompt(
texts.localized(`settings_filters_add_prompt`),
);
if (filter_source ? filter_source.trim() : false) {
filters.update(filter_source.trim());
};
});
}
if (document.querySelector(`[data-action="filters,update,one"]`)) {
document
.querySelector(`[data-action="filters,update,one"]`)
.addEventListener(`click`, async () => {
// Import the filters module.
const texts = (
await import(chrome.runtime.getURL(`/scripts/strings/read.js`))
).default;
let filters = new (
await import(chrome.runtime.getURL(`scripts/filters.js`))
).default();
// Open text input window for adding a filter.
let filter_source = (document.querySelector(`[data-result-linked="filters"] [data-result-content="*"]`)) ? document.querySelector(`[data-result-linked="filters"] [data-result-content="*"]`).innerText : prompt(texts.localized(`settings_filters_add_prompt`));
if (filter_source ? filter_source.trim() : false) {
filters.update(filter_source.trim());
};
});
}
if (document.querySelector(`[data-action="filters,delete,one"]`)) { // Open text input window for adding a filter.
document let filter_source = (document.querySelector(`[data-result-linked="filters"] [data-result-content="*"]`)) ? document.querySelector(`[data-result-linked="filters"] [data-result-content="*"]`).innerText : prompt(texts.localized(`settings_filters_add_prompt`));
.querySelector(`[data-action="filters,delete,one"]`) if (filter_source ? filter_source.trim() : false) {
.addEventListener(`click`, async () => { filters.update(filter_source.trim());
// Import the filters module. };
let texts = ( });
await import(chrome.runtime.getURL(`/scripts/strings/read.js`)) }
).default;
let filters = new ( if (document.querySelector(`[data-action="filters,delete,one"]`)) {
await import(chrome.runtime.getURL(`scripts/filters.js`)) document
).default(); .querySelector(`[data-action="filters,delete,one"]`)
.addEventListener(`click`, async () => {
// Open text input window for adding a filter. // Import the filters module.
let filter_source = (document.querySelector(`[data-result-linked="filters"] [data-result-content="*"]`)) ? document.querySelector(`[data-result-linked="filters"] [data-result-content="*"]`).innerText : prompt(texts.localized(`settings_filters_remove_prompt`)); let texts = (
if (filter_source ? filter_source.trim() : false) { await import(chrome.runtime.getURL(`/scripts/strings/read.js`))
filters.remove(filter_source.trim()); ).default;
} let filters = new (
}); await import(chrome.runtime.getURL(`scripts/filters.js`))
} ).default();
if (document.querySelector(`[data-action="storage,clear"]`)) { // Open text input window for adding a filter.
document let filter_source = (document.querySelector(`[data-result-linked="filters"] [data-result-content="*"]`)) ? document.querySelector(`[data-result-linked="filters"] [data-result-content="*"]`).innerText : prompt(texts.localized(`settings_filters_remove_prompt`));
.querySelector(`[data-action="storage,clear"]`) if (filter_source ? filter_source.trim() : false) {
.addEventListener(`click`, async () => { filters.remove(filter_source.trim());
forget(`sites`); }
}); });
}
if (document.querySelector(`[data-action="storage,clear"]`)) {
document
.querySelector(`[data-action="storage,clear"]`)
.addEventListener(`click`, async () => {
await forget(`sites`);
console.log(await read(null, 1), await read(null, -1));
});
}
} }
} }
function load() { new Page_Settings();
build();
document.addEventListener("DOMContentLoaded", function () {
M.AutoInit();
});
}
load();