add event callback's (tabClicked, tabChanged, tabCreated)

pull/3069/head
REJack 2020-09-20 10:07:34 +02:00
parent b4b92be945
commit 18aeaed0a6
1 changed files with 18 additions and 6 deletions

View File

@ -30,10 +30,13 @@ const SELECTOR_HEADER_MENU_ITEM = '.main-header .dropdown-item, .main-header .na
const CLASS_NAME_IFRAME_MODE = 'iframe-mode'
const Default = {
click(item) {
tabClick(item) {
return item
},
changed(item) {
tabChanged(item) {
return item
},
tabCreated(item) {
return item
},
autoIframeMode: true,
@ -57,12 +60,16 @@ class IFrame {
// Public
click(item) {
this._config.click.call(item)
tabClick(item) {
this._config.tabClick(item)
}
changed(item) {
this._config.changed.call(item)
tabChanged(item) {
this._config.tabChanged(item)
}
tabCreated(item) {
this._config.tabCreated(item)
}
createTab(title, link, autoOpen) {
@ -78,6 +85,8 @@ class IFrame {
if (autoOpen) {
this.switchTab(`#${navId}`, this._config.loadingScreen)
}
this.tabCreated($(`#${navId}`))
}
openTabSidebar(item) {
@ -122,6 +131,7 @@ class IFrame {
$item.tab('show')
$item.parents('li').addClass('active')
this.tabChanged($item)
}
// Private
@ -147,10 +157,12 @@ class IFrame {
})
$(document).on('click', SELECTOR_HEADER_MENU_ITEM, e => {
e.preventDefault()
this.tabClick(e.target)
this.openTabSidebar(e.target)
})
$(document).on('click', SELECTOR_TAB_NAVBAR_NAV_ITEM, e => {
e.preventDefault()
this.tabClick(e.target)
this.switchTab(e.target)
})
}