Tab switching in popup fixed
This commit is contained in:
parent
5a43011797
commit
ebf1058dda
@ -36,14 +36,26 @@ var selectedSubitemLoaded = false;
|
|||||||
|
|
||||||
//#region build ui
|
//#region build ui
|
||||||
var tablist = {
|
var tablist = {
|
||||||
'extensionSettings': new MenuItem('_menu_item_settings_ext', 'Extension settings', '', () => showMenu('extensionSettings')),
|
'extensionSettings': {
|
||||||
'siteSettings': new MenuItem('_menu_item_settings_site', 'Site settings', 'Settings for current site', () => showMenu('siteSettings')),
|
tab: new MenuItem('_menu_item_settings_ext', 'Extension settings', '', () => showMenu('extensionSettings')),
|
||||||
'videoSettings': new MenuItem('_menu_item_settings_video', 'Video settings', 'Crop & stretch options for videos on current page', () => showMenu('videoSettings')),
|
container: GlobalPanel.container,
|
||||||
'about': new MenuItem('_menu_item_about', 'About Ultrawidify', '', () => showMenu('about'))
|
},
|
||||||
|
'siteSettings': {
|
||||||
|
tab: new MenuItem('_menu_item_settings_site', 'Site settings', 'Settings for current site', () => showMenu('siteSettings')),
|
||||||
|
container: SitePanel.container
|
||||||
|
},
|
||||||
|
'videoSettings': {
|
||||||
|
tab: new MenuItem('_menu_item_settings_video', 'Video settings', 'Crop & stretch options for videos on current page', () => showMenu('videoSettings')),
|
||||||
|
container: VideoPanel.container
|
||||||
|
},
|
||||||
|
'about': {
|
||||||
|
tab: new MenuItem('_menu_item_about', 'About Ultrawidify', '', () => showMenu('about')),
|
||||||
|
container: AboutPanel.container
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
for (let t in tablist) {
|
for (let t in tablist) {
|
||||||
tablist[t].appendTo(document.getElementById('tablist'));
|
tablist[t].tab.appendTo(document.getElementById('tablist'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -60,7 +72,7 @@ function loadFrames(videoTab) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function onTabitemClick(item) {
|
function onTabitemClick(item) {
|
||||||
tablist[selectedMenu].selectSubitem(item);
|
tablist[selectedMenu].tab.selectSubitem(item);
|
||||||
selectedSubitem[selectedMenu] = item;
|
selectedSubitem[selectedMenu] = item;
|
||||||
port.postMessage({cmd: 'popup-set-selected-tab', selectedMenu: selectedMenu, selectedSubitem: item});
|
port.postMessage({cmd: 'popup-set-selected-tab', selectedMenu: selectedMenu, selectedSubitem: item});
|
||||||
}
|
}
|
||||||
@ -75,8 +87,8 @@ function loadFrames(videoTab) {
|
|||||||
() => onTabitemClick(id)
|
() => onTabitemClick(id)
|
||||||
);
|
);
|
||||||
|
|
||||||
tablist['siteSettings'].insertSubitem(newItem);
|
tablist['siteSettings'].tab.insertSubitem(newItem);
|
||||||
tablist['videoSettings'].insertSubitem(newItem);
|
tablist['videoSettings'].tab.insertSubitem(newItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -90,28 +102,26 @@ function loadFrames(videoTab) {
|
|||||||
(click) => onTabitemClick(nid)
|
(click) => onTabitemClick(nid)
|
||||||
);
|
);
|
||||||
|
|
||||||
tablist['siteSettings'].insertSubitem(newItem);
|
tablist['siteSettings'].tab.insertSubitem(newItem);
|
||||||
tablist['videoSettings'].insertSubitem(newItem);
|
tablist['videoSettings'].tab.insertSubitem(newItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
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))
|
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)) {
|
if (! selectedSubitem.siteSettings || !tablist['siteSettings'].tab.existsSubitem(selectedSubitem.siteSettings)) {
|
||||||
selectedSubitem['siteSettings'] = tablist['siteSettings'].selectFirstSubitem();
|
selectedSubitem['siteSettings'] = tablist['siteSettings'].tab.selectFirstSubitem();
|
||||||
console.log("selected first subitem!")
|
console.log("selected first subitem!")
|
||||||
} else {
|
} else {
|
||||||
tablist['siteSettings'].selectSubitem(selectedSubitem.siteSettings)
|
tablist['siteSettings'].tab.selectSubitem(selectedSubitem.siteSettings)
|
||||||
}
|
}
|
||||||
if (! selectedSubitem.videoSettings || !tablist['videoSettings'].existsSubitem(selectedSubitem.videoSettings)) {
|
if (! selectedSubitem.videoSettings || !tablist['videoSettings'].tab.existsSubitem(selectedSubitem.videoSettings)) {
|
||||||
selectedSubitem['videoSettings'] = tablist['videoSettings'].selectFirstSubitem();
|
selectedSubitem['videoSettings'] = tablist['videoSettings'].tab.selectFirstSubitem();
|
||||||
console.log("selected first subitem (vs)!")
|
console.log("selected first subitem (vs)!")
|
||||||
} else {
|
} else {
|
||||||
tablist['videoSettings'].selectSubitem(selectedSubitem.videoSettings);
|
tablist['videoSettings'].tab.selectSubitem(selectedSubitem.videoSettings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//#endregion
|
|
||||||
|
|
||||||
async function processReceivedMessage(message, port){
|
async function processReceivedMessage(message, port){
|
||||||
if (Debug.debug) {
|
if (Debug.debug) {
|
||||||
console.log("[popup.js] received message", message)
|
console.log("[popup.js] received message", message)
|
||||||
@ -445,19 +455,25 @@ function openMenu(menu){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function showMenu(tab) {
|
function showMenu(tab) {
|
||||||
|
if(Debug.debug) {
|
||||||
|
console.log("[popup.js::showMenu] opening menu", tab, "tablist?", tablist)
|
||||||
|
}
|
||||||
if (!tablist) {
|
if (!tablist) {
|
||||||
// todo: fix & remove this
|
// todo: fix & remove this
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (const i in tablist) {
|
for (const i in tablist) {
|
||||||
tablist[i].unselect();
|
tablist[i].tab.unselect();
|
||||||
tablist[i].hideSubitems();
|
tablist[i].tab.hideSubitems();
|
||||||
|
tablist[i].container.hide();
|
||||||
}
|
}
|
||||||
tablist[tab].select();
|
tablist[tab].tab.select();
|
||||||
tablist[tab].showSubitems();
|
tablist[tab].tab.showSubitems();
|
||||||
|
tablist[tab].container.show();
|
||||||
|
|
||||||
// todo: display the correct tab
|
// todo: display the correct tab
|
||||||
|
|
||||||
|
|
||||||
selectedMenu = tab;
|
selectedMenu = tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
//#region GlobalPanel
|
//#region GlobalPanel
|
||||||
var GlobalPanel = {};
|
var GlobalPanel = {};
|
||||||
|
GlobalPanel.container = BaseElement.fromExisting(document.getElementById('_menu_settings_global'))
|
||||||
GlobalPanel.elements = {};
|
GlobalPanel.elements = {};
|
||||||
GlobalPanel.elements.extensionSettings = {
|
GlobalPanel.elements.extensionSettings = {
|
||||||
container: BaseElement.fromExisting(document.getElementById('_menu_settings_global_status')),
|
container: BaseElement.fromExisting(document.getElementById('_menu_settings_global_status')),
|
||||||
@ -21,20 +22,21 @@ GlobalPanel.elements.alignmentSettings = {
|
|||||||
|
|
||||||
//#region SitePanel
|
//#region SitePanel
|
||||||
var SitePanel = {};
|
var SitePanel = {};
|
||||||
GlobalPanel.elements = {};
|
SitePanel.elements = {};
|
||||||
GlobalPanel.elements.extensionSettings = {
|
SitePanel.container = BaseElement.fromExisting(document.getElementById('_menu_settings_site'))
|
||||||
|
SitePanel.elements.extensionSettings = {
|
||||||
container: BaseElement.fromExisting(document.getElementById('_menu_settings_site_status')),
|
container: BaseElement.fromExisting(document.getElementById('_menu_settings_site_status')),
|
||||||
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_site_status_buttons'))
|
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_site_status_buttons'))
|
||||||
}
|
}
|
||||||
GlobalPanel.elements.autoarSettings = {
|
SitePanel.elements.autoarSettings = {
|
||||||
container: BaseElement.fromExisting(document.getElementById('_menu_settings_site_autoar')),
|
container: BaseElement.fromExisting(document.getElementById('_menu_settings_site_autoar')),
|
||||||
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_site_autoar_buttons'))
|
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_site_autoar_buttons'))
|
||||||
}
|
}
|
||||||
GlobalPanel.elements.stretchSettings = {
|
SitePanel.elements.stretchSettings = {
|
||||||
container: BaseElement.fromExisting(document.getElementById('_menu_settings_site_crop')),
|
container: BaseElement.fromExisting(document.getElementById('_menu_settings_site_crop')),
|
||||||
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_site_crop_buttons'))
|
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_site_crop_buttons'))
|
||||||
};
|
};
|
||||||
GlobalPanel.elements.alignmentSettings = {
|
SitePanel.elements.alignmentSettings = {
|
||||||
container: BaseElement.fromExisting(document.getElementById('_menu_settings_site_alignment')),
|
container: BaseElement.fromExisting(document.getElementById('_menu_settings_site_alignment')),
|
||||||
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_site_alignment_buttons'))
|
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_site_alignment_buttons'))
|
||||||
};
|
};
|
||||||
@ -45,6 +47,7 @@ GlobalPanel.elements.alignmentSettings = {
|
|||||||
//#region VideoPanel
|
//#region VideoPanel
|
||||||
var VideoPanel = {};
|
var VideoPanel = {};
|
||||||
VideoPanel.elements = {};
|
VideoPanel.elements = {};
|
||||||
|
VideoPanel.container = BaseElement.fromExisting(document.getElementById('_menu_settings_video'))
|
||||||
VideoPanel.elements.cropSettings = {
|
VideoPanel.elements.cropSettings = {
|
||||||
container: BaseElement.fromExisting(document.getElementById('_menu_settings_video_crop')),
|
container: BaseElement.fromExisting(document.getElementById('_menu_settings_video_crop')),
|
||||||
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_video_crop_buttons'))
|
buttonContainer: BaseElement.fromExisting(document.getElementById('_menu_settings_video_crop_buttons'))
|
||||||
@ -79,4 +82,12 @@ VideoPanel.labels.zoomLevel = document.getElementById("_label_zoom_level"
|
|||||||
// misc stuff
|
// misc stuff
|
||||||
VideoPanel.misc = {};
|
VideoPanel.misc = {};
|
||||||
VideoPanel.misc.zoomShortcuts = document.getElementById("_zoom_shortcuts");
|
VideoPanel.misc.zoomShortcuts = document.getElementById("_zoom_shortcuts");
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
|
|
||||||
|
//#region about
|
||||||
|
var AboutPanel = {};
|
||||||
|
AboutPanel.container = BaseElement.fromExisting(document.getElementById('_menu_about'))
|
||||||
|
|
||||||
|
//#endregion
|
||||||
|
|
||||||
|
@ -24,17 +24,16 @@
|
|||||||
<!-- <div id="script-not-running-warning" class="warning">If you see this line, then your browser didn't start the popup script yet. This is a problem caused by the browser. Please wait a few seconds.</div> -->
|
<!-- <div id="script-not-running-warning" class="warning">If you see this line, then your browser didn't start the popup script yet. This is a problem caused by the browser. Please wait a few seconds.</div> -->
|
||||||
|
|
||||||
<!-- EXTENSION SETTINGS -->
|
<!-- EXTENSION SETTINGS -->
|
||||||
<div id="_menu_settings_ext" class="suboption hidden">
|
<div id="_menu_settings_global" class="suboption hidden">
|
||||||
<p>These settings can be overriden on per-site basis.</p>
|
<p>These settings can be overriden on per-site basis.</p>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
<div id="_menu_settings_global_status" class="row">
|
||||||
<div id="_menu_settings_site_status" class="row">
|
|
||||||
<span class="label experimental">Extension status</span>
|
<span class="label experimental">Extension status</span>
|
||||||
<div id="_menu_settings_global_status_buttons" class="button-row">
|
<div id="_menu_settings_global_status_buttons" class="button-row">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="_menu_settings_site_autoar" class="row">
|
<div id="_menu_settings_global_autoar" class="row">
|
||||||
<span class="label experimental">Automatic detection</span>
|
<span class="label experimental">Automatic detection</span>
|
||||||
<div id="_menu_settings_global_autoar_buttons" class="button-row">
|
<div id="_menu_settings_global_autoar_buttons" class="button-row">
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user