Added basic control panel
This commit is contained in:
42
frontend/views/control/ts/menu.ts
Normal file
42
frontend/views/control/ts/menu.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
export class Menu {
|
||||
menuContainer: HTMLDivElement = document.querySelector('.ntsh_menubar');
|
||||
tabContainer: HTMLDivElement = document.querySelector('.ntsh_tabs');
|
||||
|
||||
constructor() {
|
||||
this.registerListeners();
|
||||
|
||||
if (window.location.search.includes('advanced'))
|
||||
this.selectTab('advanced');
|
||||
}
|
||||
|
||||
selectTab(tabId: string) {
|
||||
this.menuContainer
|
||||
.querySelectorAll('.ntsh_menubar-item')
|
||||
.forEach((item) => {
|
||||
if (item.getAttribute('tabid') === tabId) {
|
||||
item.classList.add('selected');
|
||||
} else {
|
||||
item.classList.remove('selected');
|
||||
}
|
||||
});
|
||||
|
||||
this.tabContainer.querySelectorAll('.ntsh_tab').forEach((tab) => {
|
||||
if (tab.getAttribute('tabid') === tabId) {
|
||||
tab.classList.add('visible');
|
||||
} else {
|
||||
tab.classList.remove('visible');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private registerListeners() {
|
||||
this.menuContainer
|
||||
.querySelectorAll('.ntsh_menubar-item')
|
||||
.forEach((item) => {
|
||||
item.addEventListener('click', () => {
|
||||
const itemId = item.getAttribute('tabid');
|
||||
this.selectTab(itemId);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user