From 4e49c57904592c736ed5a749a7f884c919623585 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Fri, 15 Dec 2017 14:50:15 +0300 Subject: [PATCH] =?UTF-8?q?KSPlayer:=20=D0=B2=D1=8B=D0=B1=D0=BE=D1=80=20?= =?UTF-8?q?=D1=81=D0=B5=D0=B7=D0=BE=D0=BD=D0=BE=D0=B2=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kinosearch/webapp/static/js/ksplayer.js | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/resources/kinosearch/webapp/static/js/ksplayer.js b/src/main/resources/kinosearch/webapp/static/js/ksplayer.js index a129f99..3a67a03 100644 --- a/src/main/resources/kinosearch/webapp/static/js/ksplayer.js +++ b/src/main/resources/kinosearch/webapp/static/js/ksplayer.js @@ -9,6 +9,7 @@ const KSPlayer = function(containerId, data) { let seasonSerials = []; const _self = this; let lastActiveSerialItem; + let lastActiveSeasonItem; /* --- PRIVATE FUNCTIONS --- */ @@ -75,6 +76,7 @@ const KSPlayer = function(containerId, data) { div.id = 'pl-season'; div.className = 'dropdown'; div.style = 'display: inline-block'; + div.kspSerialMenuElement = undefined; let button = document.createElement('button'); button.className = 'btn btn-default dropdown-toggle'; @@ -101,7 +103,23 @@ const KSPlayer = function(containerId, data) { a.href = '#'; a.innerText = item.title; a.setAttribute('data-number', idx); - a.onclick = function() { return false; } + a.onclick = function() { + text.nodeValue = item.title; + + if (lastActiveSeasonItem) { + lastActiveSeasonItem.classList.remove('active'); + } + li.classList.add('active'); + lastActiveSeasonItem = li; + + if (div.kspSerialMenuElement) { + containerElement.removeChild(div.kspSerialMenuElement); + } + containerElement.insertAfter(seasonSerials[idx], div); + div.kspSerialMenuElement = seasonSerials[idx]; + + return false; + } seasonSerials.push(createSerialMenuElement(item.serials)); li.appendChild(a); @@ -197,6 +215,10 @@ const KSPlayer = function(containerId, data) { throw `Container "${containerId}" not found!`; } + containerElement.insertAfter = function(newChild, refChild) { + this.insertBefore(newChild, refChild.nextSibling); + } + let videoElement = createVideoElement(); if (data.hasOwnProperty('title')) {