29 lines
No EOL
2.2 KiB
JavaScript
29 lines
No EOL
2.2 KiB
JavaScript
define(["browser", "dom", "layoutManager", "shell", "appRouter", "apphost", "css!./emby-button", "registerElement"], function(browser, dom, layoutManager, shell, appRouter, appHost) {
|
|
"use strict";
|
|
|
|
function openPremiumInfo() {
|
|
require(["registrationServices"], function(registrationServices) {
|
|
registrationServices.showPremiereInfo()
|
|
})
|
|
}
|
|
|
|
function onAnchorClick(e) {
|
|
var href = this.getAttribute("href") || "";
|
|
"#" !== href ? this.getAttribute("target") ? -1 === href.indexOf("emby.media/premiere") || appHost.supports("externalpremium") ? appHost.supports("targetblank") || (e.preventDefault(), shell.openUrl(href)) : (e.preventDefault(), openPremiumInfo()) : appRouter.handleAnchorClick(e) : e.preventDefault()
|
|
}
|
|
var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype),
|
|
EmbyLinkButtonPrototype = Object.create(HTMLAnchorElement.prototype);
|
|
return EmbyButtonPrototype.createdCallback = function() {
|
|
this.classList.contains("emby-button") || (this.classList.add("emby-button"), browser.firefox && this.classList.add("button-link-inline"), layoutManager.tv && ("false" !== this.getAttribute("data-focusscale") && this.classList.add("emby-button-focusscale"), this.classList.add("emby-button-tv")))
|
|
}, EmbyButtonPrototype.attachedCallback = function() {
|
|
"A" === this.tagName && (dom.removeEventListener(this, "click", onAnchorClick, {}), dom.addEventListener(this, "click", onAnchorClick, {}), "true" === this.getAttribute("data-autohide") && (appHost.supports("externallinks") ? this.classList.remove("hide") : this.classList.add("hide")))
|
|
}, EmbyButtonPrototype.detachedCallback = function() {
|
|
dom.removeEventListener(this, "click", onAnchorClick, {})
|
|
}, EmbyLinkButtonPrototype.createdCallback = EmbyButtonPrototype.createdCallback, EmbyLinkButtonPrototype.attachedCallback = EmbyButtonPrototype.attachedCallback, document.registerElement("emby-button", {
|
|
prototype: EmbyButtonPrototype,
|
|
extends: "button"
|
|
}), document.registerElement("emby-linkbutton", {
|
|
prototype: EmbyLinkButtonPrototype,
|
|
extends: "a"
|
|
}), EmbyButtonPrototype
|
|
}); |