remember tab item selection in popup
This commit is contained in:
parent
0526b43aae
commit
6eaeb717e2
@ -309,6 +309,9 @@ class CommsServer {
|
|||||||
if (message.cmd === 'get-current-site') {
|
if (message.cmd === 'get-current-site') {
|
||||||
port.postMessage({cmd: 'set-current-site', site: this.server.getVideoTab(), tabHostname: await this.getCurrentTabHostname()});
|
port.postMessage({cmd: 'set-current-site', site: this.server.getVideoTab(), tabHostname: await this.getCurrentTabHostname()});
|
||||||
}
|
}
|
||||||
|
if (message.cmd === 'set-selected-tab') {
|
||||||
|
this.server.setSelectedTab(cmd.selectedMenu, cmd.selectedSubitem);
|
||||||
|
}
|
||||||
|
|
||||||
if (message.cmd === 'get-config') {
|
if (message.cmd === 'get-config') {
|
||||||
if(Debug.debug) {
|
if(Debug.debug) {
|
||||||
|
@ -33,6 +33,16 @@ class MenuItem extends BaseElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
existsSubitem(subitemName) {
|
||||||
|
for(let item of this.subitemList) {
|
||||||
|
if (item.name === subitemName) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
selectFirstSubitem() {
|
selectFirstSubitem() {
|
||||||
for(let item of this.subitemList) {
|
for(let item of this.subitemList) {
|
||||||
item.unselect();
|
item.unselect();
|
||||||
|
17
js/uw-bg.js
17
js/uw-bg.js
@ -16,6 +16,11 @@ class UWServer {
|
|||||||
this.videoTabs = {};
|
this.videoTabs = {};
|
||||||
this.currentTabId = 0;
|
this.currentTabId = 0;
|
||||||
this._gctimeout = undefined;
|
this._gctimeout = undefined;
|
||||||
|
|
||||||
|
this.selectedSubitem = {
|
||||||
|
'siteSettings': undefined,
|
||||||
|
'videoSettings': undefined,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async setup() {
|
async setup() {
|
||||||
@ -101,6 +106,11 @@ class UWServer {
|
|||||||
if(Debug.debug) {
|
if(Debug.debug) {
|
||||||
console.log("TAB SWITCHED!", this.currentSite)
|
console.log("TAB SWITCHED!", this.currentSite)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.selectedSubitem = {
|
||||||
|
'siteSettings': undefined,
|
||||||
|
'videoSettings': undefined,
|
||||||
|
}
|
||||||
//TODO: change extension icon based on whether there's any videos on current page
|
//TODO: change extension icon based on whether there's any videos on current page
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,6 +202,10 @@ class UWServer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setSelectedTab(menu, subitem) {
|
||||||
|
this.selectedSubitem[menu] = subitem;
|
||||||
|
}
|
||||||
|
|
||||||
getVideoTab() {
|
getVideoTab() {
|
||||||
// friendly reminder: if current tab doesn't have a video,
|
// friendly reminder: if current tab doesn't have a video,
|
||||||
// there won't be anything in this.videoTabs[this.currentTabId]
|
// there won't be anything in this.videoTabs[this.currentTabId]
|
||||||
@ -203,7 +217,8 @@ class UWServer {
|
|||||||
// a video registered for it
|
// a video registered for it
|
||||||
return {
|
return {
|
||||||
host: this.currentSite,
|
host: this.currentSite,
|
||||||
frames: []
|
frames: [],
|
||||||
|
selected: this.selectedSubitem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@ port.onMessage.addListener( (m,p) => processReceivedMessage(m,p));
|
|||||||
|
|
||||||
var _video_settings_tab_items = [];
|
var _video_settings_tab_items = [];
|
||||||
|
|
||||||
|
var selectedSubitemLoaded = false;
|
||||||
|
|
||||||
//#region build ui
|
//#region build ui
|
||||||
var tablist = {
|
var tablist = {
|
||||||
@ -46,16 +47,22 @@ for (let t in tablist) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function loadFrames(videoTab) {
|
function loadFrames(videoTab) {
|
||||||
tablist['siteSettings'].removeSubitems();
|
tablist['siteSettings'].removeSubitems();
|
||||||
tablist['videoSettings'].removeSubitems();
|
tablist['videoSettings'].removeSubitems();
|
||||||
|
|
||||||
|
console.log("VIDEO TAB", videoTab)
|
||||||
|
if (!selectedSubitemLoaded) {
|
||||||
|
if (videoTab.selected) {
|
||||||
|
selectedSubitem = videoTab.selected;
|
||||||
|
selectedSubitemLoaded = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function onTabitemClick(item) {
|
function onTabitemClick(item) {
|
||||||
tablist[selectedMenu].selectSubitem(item);
|
tablist[selectedMenu].selectSubitem(item);
|
||||||
selectedSubitem[selectedMenu] = item;
|
selectedSubitem[selectedMenu] = item;
|
||||||
|
port.postMessage({cmd: 'select-tab', selectedMenu: selectedMenu, selectedSubitem: item});
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var option of [{id: '__playing', label: 'Currently playing'}, {id: '__all', label: 'All'}]) {
|
for (var option of [{id: '__playing', label: 'Currently playing'}, {id: '__all', label: 'All'}]) {
|
||||||
@ -87,12 +94,14 @@ function loadFrames(videoTab) {
|
|||||||
tablist['videoSettings'].insertSubitem(newItem);
|
tablist['videoSettings'].insertSubitem(newItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! selectedSubitem.siteSettings) {
|
console.log("TIME TO SELECT SUBITEM", selectedSubitem, "\nexists subitem in site settings/video settings?", selectedSubitem && tablist['siteSettings'].existsSubitem(selectedSubitem.siteSettings), selectedSubitem && tablist['videoSettings'].existsSubitem(selectedSubitem.videoSettings))
|
||||||
|
|
||||||
|
if (! selectedSubitem.siteSettings || !tablist['siteSettings'].existsSubitem(selectedSubitem.siteSettings)) {
|
||||||
selectedSubitem['siteSettings'] = tablist['siteSettings'].selectFirstSubitem();
|
selectedSubitem['siteSettings'] = tablist['siteSettings'].selectFirstSubitem();
|
||||||
} else {
|
} else {
|
||||||
tablist['siteSettings'].selectSubitem(selectedSubitem.siteSettings)
|
tablist['siteSettings'].selectSubitem(selectedSubitem.siteSettings)
|
||||||
}
|
}
|
||||||
if (! selectedSubitem.videoSettings) {
|
if (! selectedSubitem.videoSettings || !tablist['videoSettings'].existsSubitem(selectedSubitem.videoSettings)) {
|
||||||
selectedSubitem['videoSettings'] = tablist['videoSettings'].selectFirstSubitem();
|
selectedSubitem['videoSettings'] = tablist['videoSettings'].selectFirstSubitem();
|
||||||
} else {
|
} else {
|
||||||
tablist['videoSettings'].selectSubitem(selectedSubitem.videoSettings);
|
tablist['videoSettings'].selectSubitem(selectedSubitem.videoSettings);
|
||||||
|
Loading…
Reference in New Issue
Block a user