consider data-actions as interactives
This commit is contained in:
parent
fe2c59920d
commit
ddb455db28
3 changed files with 44 additions and 37 deletions
|
@ -283,7 +283,25 @@ export default class windowman {
|
||||||
: false;
|
: false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const actions = () => {
|
||||||
|
let TYPE = `action`;
|
||||||
|
this.elements[`interactive`][TYPE] = (this.elements[`interactive`][TYPE]) ? this.elements[`interactive`][TYPE] : {};
|
||||||
|
|
||||||
|
document.querySelector(`[data-${TYPE}]`)
|
||||||
|
? document.querySelectorAll(`[data-${TYPE}]`).forEach((ELEMENT) => {
|
||||||
|
// Store the button.
|
||||||
|
this.elements[`interactive`][TYPE][ELEMENT.getAttribute(`data-${TYPE}`)] = ((this.elements[`interactive`][TYPE][ELEMENT.getAttribute(`data-${TYPE}`)]))
|
||||||
|
? this.elements[`interactive`][TYPE][ELEMENT.getAttribute(`data-${TYPE}`)]
|
||||||
|
: document.querySelectorAll(`[data-${TYPE}="${ELEMENT.getAttribute(`data-${TYPE}`)}"]`);
|
||||||
|
|
||||||
|
// Remove the property.
|
||||||
|
(!(TYPE.includes(`store`))) ? ELEMENT.removeAttribute(`data-${TYPE}`) : false;
|
||||||
|
})
|
||||||
|
: false;
|
||||||
|
}
|
||||||
|
|
||||||
links();
|
links();
|
||||||
|
actions();
|
||||||
}
|
}
|
||||||
|
|
||||||
this[`elements`] = appearance();
|
this[`elements`] = appearance();
|
||||||
|
@ -376,6 +394,9 @@ export default class windowman {
|
||||||
(this[`elements`][`linked`][`enable`][SOURCE] ? this[`elements`][`linked`][`enable`][SOURCE].length : false)
|
(this[`elements`][`linked`][`enable`][SOURCE] ? this[`elements`][`linked`][`enable`][SOURCE].length : false)
|
||||||
? this[`elements`][`linked`][`enable`][SOURCE].push(input_element)
|
? this[`elements`][`linked`][`enable`][SOURCE].push(input_element)
|
||||||
: this[`elements`][`linked`][`enable`][SOURCE] = [input_element];
|
: this[`elements`][`linked`][`enable`][SOURCE] = [input_element];
|
||||||
|
|
||||||
|
// Remove the attribute.
|
||||||
|
input_element.removeAttribute(`data-enable`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -116,21 +116,16 @@ class Page_Error extends Page {
|
||||||
Add event listeners to the page.
|
Add event listeners to the page.
|
||||||
*/
|
*/
|
||||||
events () {
|
events () {
|
||||||
this[`elements`] = (this[`elements`]) ? this[`elements`] : {};
|
|
||||||
this[`elements`][`button`] = {};
|
|
||||||
|
|
||||||
document.querySelectorAll(`[data-action]`).forEach((ELEMENT) => {
|
|
||||||
let ACTION = ELEMENT.getAttribute(`data-action`);
|
|
||||||
this[`elements`][`button`][ACTION] = ELEMENT;
|
|
||||||
|
|
||||||
// Remove the data-action attribute.
|
|
||||||
ELEMENT.removeAttribute(`data-action`);
|
|
||||||
})
|
|
||||||
|
|
||||||
// Add an event listener to the refresh button.
|
// Add an event listener to the refresh button.
|
||||||
this[`elements`][`button`][`refresh`].addEventListener(`click`, () => {
|
(this[`window`][`elements`][`interactive`][`action`] ? this[`window`][`elements`][`interactive`][`action`].length : false)
|
||||||
this.send();
|
? (this[`window`][`elements`][`interactive`][`action`][`refresh`] ? this[`window`][`elements`][`interactive`][`action`][`refresh`].length : false)
|
||||||
});
|
? (this[`window`][`elements`][`interactive`][`action`][`refresh`]).forEach((ELEMENT) => {
|
||||||
|
ELEMENT.addEventListener(`click`, () => {
|
||||||
|
this.send();
|
||||||
|
})
|
||||||
|
})
|
||||||
|
: false
|
||||||
|
: false;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -140,7 +135,7 @@ class Page_Error extends Page {
|
||||||
try {
|
try {
|
||||||
// Send a message to the content script.
|
// Send a message to the content script.
|
||||||
Tabs.query(null, 0).then((TAB) => {
|
Tabs.query(null, 0).then((TAB) => {
|
||||||
chrome.tabs.sendMessage(TAB.id, {"refresh": "automatic"});
|
chrome.tabs.sendMessage(TAB.id, {"refresh": "manual"});
|
||||||
});
|
});
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
logging.error(err.name, err.message, err.stack);
|
logging.error(err.name, err.message, err.stack);
|
||||||
|
|
|
@ -94,7 +94,7 @@ class Page_Popup extends Page {
|
||||||
|
|
||||||
// Check if the frame is available.
|
// Check if the frame is available.
|
||||||
if (this.elements[`frame`]) {
|
if (this.elements[`frame`]) {
|
||||||
await this.switch();
|
this.switch();
|
||||||
|
|
||||||
// Call for scraping of data if global data does not indicate automatic scraping or if data doesn't exist.
|
// Call for scraping of data if global data does not indicate automatic scraping or if data doesn't exist.
|
||||||
if (!await global.read([`settings`, `behavior`, `autoRun`]) && DATA[`status`] == null) {
|
if (!await global.read([`settings`, `behavior`, `autoRun`]) && DATA[`status`] == null) {
|
||||||
|
@ -123,28 +123,19 @@ class Page_Popup extends Page {
|
||||||
};
|
};
|
||||||
|
|
||||||
events() {
|
events() {
|
||||||
this[`elements`] = (this[`elements`]) ? this[`elements`] : {};
|
let ACTIONS = {};
|
||||||
this[`elements`][`button`] = {};
|
ACTIONS[`open,settings`] = () => {chrome.runtime.openOptionsPage();}
|
||||||
|
ACTIONS[`open,help`] = () => {new Window(`help.htm`);}
|
||||||
|
ACTIONS[`analysis,reload`] = () => {this.send({"refresh": "manual"});}
|
||||||
|
|
||||||
document.querySelectorAll(`[data-action]`).forEach((ELEMENT) => {
|
// Add the event listeners.
|
||||||
let ACTION = ELEMENT.getAttribute(`data-action`).trim();
|
(Object.keys(ACTIONS)).forEach((NAME) => {
|
||||||
this[`elements`][`button`][ACTION] = ELEMENT;
|
(this.window.elements[`interactive`][`action`][NAME] ? this.window.elements[`interactive`][`action`][NAME].length : false)
|
||||||
|
? this.window.elements[`interactive`][`action`][NAME].forEach((ELEMENT) => {
|
||||||
// Remove the data-action attribute.
|
ELEMENT.addEventListener(`click`, ACTIONS[NAME]);
|
||||||
ELEMENT.removeAttribute(`data-action`);
|
})
|
||||||
});
|
: false;
|
||||||
|
})
|
||||||
(this[`elements`][`button`][`open,settings`]) ? this[`elements`][`button`][`open,settings`].addEventListener("click", () => {
|
|
||||||
chrome.runtime.openOptionsPage();
|
|
||||||
}) : false;
|
|
||||||
|
|
||||||
(this[`elements`][`button`][`open,help`]) ? this[`elements`][`button`][`open,help`].addEventListener(`click`, () => {
|
|
||||||
new Window(`help.htm`);
|
|
||||||
}) : false;
|
|
||||||
|
|
||||||
(this[`elements`][`button`][`analysis,reload`]) ? this[`elements`][`button`][`analysis,reload`].addEventListener(`click`, () => {
|
|
||||||
this.send({"refresh": "manual"});
|
|
||||||
}) : false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue