aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2023-04-23 13:38:24 +0300
committerRblSb <msrblsb@gmail.com>2023-04-23 13:38:24 +0300
commitcdf7f00f613d636e587b7840ec8b263017513486 (patch)
tree5f5e88d20fcccf8364a32a1fa195e56c4f0e5bc5
parent341ec5ce86d1220060f63d2681b6e8eae11ec488 (diff)
Keep player removed between videos
-rw-r--r--res/client.js32
-rw-r--r--res/index.html2
-rw-r--r--res/langs/en.json4
-rw-r--r--res/langs/ru.json4
-rw-r--r--src/client/Buttons.hx10
-rw-r--r--src/client/Main.hx9
-rw-r--r--src/client/Player.hx7
7 files changed, 41 insertions, 27 deletions
diff --git a/res/client.js b/res/client.js
index fbde10d..3f1bfd4 100644
--- a/res/client.js
+++ b/res/client.js
@@ -798,12 +798,12 @@ client_Buttons.initTextButtons = function(main) {
client_Buttons.updateHotkeysBtn();
};
client_Buttons.updateHotkeysBtn();
- var removeBtn = window.document.querySelector("#removeVideoBtn");
+ var removeBtn = window.document.querySelector("#removePlayerBtn");
removeBtn.onclick = function(e) {
- if(main.toggleVideoElement() || main.isListEmpty()) {
- return removeBtn.innerText = Lang.get("removeVideo");
+ if(main.toggleVideoElement()) {
+ return removeBtn.innerText = Lang.get("removePlayer");
} else {
- return removeBtn.innerText = Lang.get("addVideo");
+ return removeBtn.innerText = Lang.get("restorePlayer");
}
};
window.document.querySelector("#setVideoUrlBtn").onclick = function(e) {
@@ -1174,6 +1174,7 @@ var client_Main = function() {
this.clients = [];
this.isPlaylistOpen = true;
this.globalIp = "";
+ this.isVideoEnabled = true;
this.forceSyncNextTick = false;
this.isSyncActive = true;
var _gthis = this;
@@ -1486,15 +1487,13 @@ client_Main.prototype = {
this.send({ type : "RemoveVideo", removeVideo : { url : url}});
}
,toggleVideoElement: function() {
- if(this.player.hasVideo()) {
+ this.isVideoEnabled = !this.isVideoEnabled;
+ if(!this.isVideoEnabled && this.player.hasVideo()) {
this.player.removeVideo();
- } else if(!this.player.isListEmpty()) {
+ } else if(this.isVideoEnabled && !this.player.isListEmpty()) {
this.player.setVideo(this.player.getItemPos());
}
- return this.player.hasVideo();
- }
- ,isListEmpty: function() {
- return this.player.isListEmpty();
+ return this.isVideoEnabled;
}
,refreshPlayer: function() {
this.player.refresh();
@@ -1516,7 +1515,7 @@ client_Main.prototype = {
var data = JSON.parse(e.data);
if(this.config != null && this.config.isVerbose) {
var t = data.type;
- haxe_Log.trace("Event: " + data.type,{ fileName : "src/client/Main.hx", lineNumber : 394, className : "client.Main", methodName : "onMessage", customParams : [Reflect.field(data,t.charAt(0).toLowerCase() + HxOverrides.substr(t,1,null))]});
+ haxe_Log.trace("Event: " + data.type,{ fileName : "src/client/Main.hx", lineNumber : 397, className : "client.Main", methodName : "onMessage", customParams : [Reflect.field(data,t.charAt(0).toLowerCase() + HxOverrides.substr(t,1,null))]});
}
client_JsApi.fireOnceEvent(data);
switch(data.type) {
@@ -2323,11 +2322,18 @@ client_Player.prototype = {
this.videoList.setPos(i);
this.addActiveLabel(this.videoList.pos);
this.isLoaded = false;
- this.player.loadVideo(item);
+ if(this.main.isVideoEnabled) {
+ this.player.loadVideo(item);
+ } else {
+ this.onCanBePlayed();
+ }
client_JsApi.fireVideoChangeEvents(item);
window.document.querySelector("#currenttitle").textContent = item.title;
}
,changeVideoSrc: function(src) {
+ if(!this.main.isVideoEnabled) {
+ return;
+ }
if(this.player == null) {
return;
}
@@ -2700,7 +2706,7 @@ client_Player.prototype = {
}
};
http.onError = function(msg) {
- haxe_Log.trace(msg,{ fileName : "src/client/Player.hx", lineNumber : 474, className : "client.Player", methodName : "skipAd"});
+ haxe_Log.trace(msg,{ fileName : "src/client/Player.hx", lineNumber : 479, className : "client.Player", methodName : "skipAd"});
};
http.request();
}
diff --git a/res/index.html b/res/index.html
index 4151ba1..6310f8b 100644
--- a/res/index.html
+++ b/res/index.html
@@ -174,7 +174,7 @@
<li><button id="synchThresholdBtn"><span>${synchThreshold}</span></button></li>
<li><button id="setVideoUrlBtn"><span>${setVideoUrl}</span></button></li>
<li><button id="selectLocalVideoBtn"><span>${selectLocalVideo}</span></button></li>
- <li><button id="removeVideoBtn"><span>${removeVideo}</span></button></li>
+ <li><button id="removePlayerBtn"><span>${removePlayer}</span></button></li>
</div>
<div id="adminMenu" style="display: none;">
<h4>${chat}</h4>
diff --git a/res/langs/en.json b/res/langs/en.json
index 90a77aa..ac97ac5 100644
--- a/res/langs/en.json
+++ b/res/langs/en.json
@@ -49,8 +49,8 @@
"setVideoUrl": "Set Video URL",
"setVideoUrlPrompt": "New video URL:\n(Does not affect other users)",
"selectLocalVideo": "Select Local Video",
- "removeVideo": "Remove Video",
- "addVideo": "Add Video",
+ "removePlayer": "Remove Player",
+ "restorePlayer": "Restore Player",
"toggleUserList": "Show/Hide Userlist",
"leaderDesc": "Request video control permissions",
"mobileViewBtn": "Mobile View",
diff --git a/res/langs/ru.json b/res/langs/ru.json
index 7615efd..37ceb6a 100644
--- a/res/langs/ru.json
+++ b/res/langs/ru.json
@@ -49,8 +49,8 @@
"setVideoUrl": "Задать ссылку на видео",
"setVideoUrlPrompt": "Новая ссылка на видео:\n(Не влияет на других пользователей)",
"selectLocalVideo": "Выбрать локальный видеофайл",
- "removeVideo": "Удалить видео",
- "addVideo": "Добавить видео",
+ "removePlayer": "Удалить плеер",
+ "restorePlayer": "Вернуть плеер",
"toggleUserList": "Показать/Скрыть список юзеров",
"leaderDesc": "Запросить права на контроль роликом",
"mobileViewBtn": "Моб. вид",
diff --git a/src/client/Buttons.hx b/src/client/Buttons.hx
index cf1246d..aa7c1b2 100644
--- a/src/client/Buttons.hx
+++ b/src/client/Buttons.hx
@@ -323,13 +323,13 @@ class Buttons {
}
updateHotkeysBtn();
- final removeBtn = ge("#removeVideoBtn");
+ final removeBtn = ge("#removePlayerBtn");
removeBtn.onclick = e -> {
- final hasVideo = main.toggleVideoElement();
- if (hasVideo || main.isListEmpty()) {
- removeBtn.innerText = Lang.get("removeVideo");
+ final isActive = main.toggleVideoElement();
+ if (isActive) {
+ removeBtn.innerText = Lang.get("removePlayer");
} else {
- removeBtn.innerText = Lang.get("addVideo");
+ removeBtn.innerText = Lang.get("restorePlayer");
}
}
final setVideoUrlBtn = ge("#setVideoUrlBtn");
diff --git a/src/client/Main.hx b/src/client/Main.hx
index 7b8228e..a7417fb 100644
--- a/src/client/Main.hx
+++ b/src/client/Main.hx
@@ -30,6 +30,7 @@ class Main {
public final settings:ClientSettings;
public var isSyncActive = true;
public var forceSyncNextTick = false;
+ public var isVideoEnabled = true;
public final host:String;
public var globalIp(default, null) = "";
public var isPlaylistOpen = true;
@@ -359,11 +360,13 @@ class Main {
}
public function toggleVideoElement():Bool {
- if (player.hasVideo()) player.removeVideo();
- else if (!player.isListEmpty()) {
+ isVideoEnabled = !isVideoEnabled;
+ if (!isVideoEnabled && player.hasVideo()) {
+ player.removeVideo();
+ } else if (isVideoEnabled && !player.isListEmpty()) {
player.setVideo(player.getItemPos());
}
- return player.hasVideo();
+ return isVideoEnabled;
}
public function isListEmpty():Bool {
diff --git a/src/client/Player.hx b/src/client/Player.hx
index 0407ab2..6113c07 100644
--- a/src/client/Player.hx
+++ b/src/client/Player.hx
@@ -127,12 +127,17 @@ class Player {
addActiveLabel(videoList.pos);
isLoaded = false;
- player.loadVideo(item);
+ if (main.isVideoEnabled) {
+ player.loadVideo(item);
+ } else {
+ onCanBePlayed();
+ }
JsApi.fireVideoChangeEvents(item);
ge("#currenttitle").textContent = item.title;
}
public function changeVideoSrc(src:String):Void {
+ if (!main.isVideoEnabled) return;
if (player == null) return;
final item = videoList.getCurrentItem() ?? return;
player.loadVideo({
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage