add content switching for popup
This commit is contained in:
parent
b61100af02
commit
a3749c71d2
1 changed files with 50 additions and 2 deletions
|
@ -3,7 +3,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Import modules.
|
// Import modules.
|
||||||
import {session} from "/scripts/secretariat.js";
|
import {session, observe} from "/scripts/secretariat.js";
|
||||||
import Window from "/scripts/GUI/window.js";
|
import Window from "/scripts/GUI/window.js";
|
||||||
import Page from "/scripts/pages/page.js";
|
import Page from "/scripts/pages/page.js";
|
||||||
import Loader from "/scripts/GUI/loader.js";
|
import Loader from "/scripts/GUI/loader.js";
|
||||||
|
@ -13,10 +13,58 @@ class Page_Popup extends Page {
|
||||||
super();
|
super();
|
||||||
(this.events) ? this.events() : false;
|
(this.events) ? this.events() : false;
|
||||||
this.content();
|
this.content();
|
||||||
|
this.background();
|
||||||
};
|
};
|
||||||
|
|
||||||
content() {
|
async background() {
|
||||||
|
observe(() => {this.content();});
|
||||||
|
}
|
||||||
|
|
||||||
|
async loading() {
|
||||||
this.loading = new Loader();
|
this.loading = new Loader();
|
||||||
|
}
|
||||||
|
|
||||||
|
async switch() {
|
||||||
|
// Get the last edited site.
|
||||||
|
let SITE = {};
|
||||||
|
SITE.url = await session.read([`last`]);
|
||||||
|
SITE.details = await session.read([`sites`, SITE.url]);
|
||||||
|
|
||||||
|
let PAGES = {
|
||||||
|
"results": "results.htm",
|
||||||
|
"loading": "load.htm",
|
||||||
|
"error": "error.htm"
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(PAGES);
|
||||||
|
// Set the relative chrome URLs
|
||||||
|
(Object.keys(PAGES)).forEach(PAGE => {
|
||||||
|
PAGES[PAGE] = chrome.runtime.getURL(`pages/popup/${PAGES[PAGE]}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Check if the site is available.
|
||||||
|
if (SITE.details == null) {
|
||||||
|
this.elements[`frame`].src = PAGES[`loading`];
|
||||||
|
} else if (SITE.details.error) {
|
||||||
|
// Set the iframe src to display the error.
|
||||||
|
this.elements[`frame`].src = PAGES[`error`];
|
||||||
|
} else {
|
||||||
|
// Set the iframe src to display the results.
|
||||||
|
this.elements[`frame`].src = PAGES[`results`];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async content() {
|
||||||
|
this.elements = {};
|
||||||
|
this.elements[`frame`] = document.querySelectorAll(`iframe.viewer`);
|
||||||
|
|
||||||
|
// Check if the frame is available.
|
||||||
|
if (this.elements[`frame`].length) {
|
||||||
|
this.switch()
|
||||||
|
} else {
|
||||||
|
this.loading();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
events() {
|
events() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue