Votes and shuffled lists remain the same if the user navigates from a frontpage, and back to the same list in private mode

This commit is contained in:
Kasper Rynning-Tønnesen
2017-01-27 11:11:47 +01:00
parent 5953b4a538
commit 84aa951149
6 changed files with 58 additions and 46 deletions

View File

@@ -282,6 +282,8 @@ var Frontpage = {
if(!popstate){
window.history.pushState("to the channel!", "Title", "/" + new_channel);
if(prev_chan_list == "") prev_chan_list = new_channel;
if(prev_chan_player == "") prev_chan_player = new_channel;
window.chan = new_channel;
}
@@ -376,7 +378,7 @@ function initfp(){
Crypt.init();
if(Crypt.get_offline()){
change_offline(true);
change_offline(true, offline);
}
socket.emit('frontpage_lists');

View File

@@ -14,11 +14,17 @@ var List = {
{
case "list":
//if(full_playlist == undefined || !offline){
if(!offline || (offline && !msg.shuffled)){
if((!offline || (offline && !msg.shuffled)) && !(offline && prev_chan_list == chan)){
prev_chan_list = chan;
List.populate_list(msg.playlist);
if(chromecastAvailable){
Player.sendNext({title: full_playlist[0].title, videoId: full_playlist[0].id});
}
} else if(offline && prev_chan_list == chan && full_playlist != undefined && !msg.shuffled){
List.populate_list(full_playlist, true);
if(chromecastAvailable){
Player.sendNext({title: full_playlist[0].title, videoId: full_playlist[0].id});
}
}
break;
case "added":
@@ -84,7 +90,7 @@ var List = {
}
},
populate_list: function(msg)
populate_list: function(msg, no_reset)
{
if(!Helper.mobilecheck() && !embed){
List.can_fit = Math.round(($("#wrapper").height()) / 71)+1;
@@ -98,7 +104,7 @@ var List = {
}
if(list_html === undefined) list_html = $("#list-song-html").html();
full_playlist = msg;
if(offline){
if(offline && !no_reset){
for(var x = 0; x < full_playlist.length; x++){
full_playlist[x].votes = 0;
}

View File

@@ -44,6 +44,8 @@ var color = "808080";
var find_start = false;
var find_started = false;
var offline = false;
var prev_chan_list = "";
var prev_chan_player = "";
var chromecastReady = false;
var found_array = [];
var found_array_index = 0;
@@ -198,7 +200,7 @@ function init(){
Crypt.init();
if(Crypt.get_offline()){
$(".offline_switch_class")[0].checked = true;
change_offline(true);
change_offline(true, offline);
}
if($("#alreadychannel").length === 0 || Helper.mobilecheck()){
@@ -497,61 +499,61 @@ function randomString(length){
return text;
}
function change_offline(enabled){
function change_offline(enabled, already_offline){
Crypt.set_offline(enabled);
offline = enabled;
socket.emit("offline", enabled);
if(enabled){
if(list_html){
list_html = $("<div>" + list_html + "</div>");
//list_html.find(".card-content").css("display", "flex");
if(list_html){
list_html = $("<div>" + list_html + "</div>");
//list_html.find(".card-content").css("display", "flex");
//list_html.find(".card-content").css("height", "100%");
//list_html.find(".list-title").css("align-self", "center");
//list_html.find(".vote-span").addClass("hide");
list_html.find(".list-remove").removeClass("hide");
list_html = list_html.html();
}
list_html.find(".list-remove").removeClass("hide");
list_html = list_html.html();
}
//$(".card-content").css("display", "flex");
//$(".card-content").css("height", "100%");
//$(".list-title").css("align-self", "center");
$(".list-remove").removeClass("hide");
$(".list-remove").removeClass("hide");
//$(".vote-span").addClass("hide");
$("#viewers").addClass("hide");
$("#offline-mode").removeClass("waves-cyan");
$("#offline-mode").addClass("cyan");
if(full_playlist != undefined){
for(var x = 0; x < full_playlist.length; x++){
full_playlist[x].votes = 0;
}
List.sortList();
List.populate_list(full_playlist);
}
if(full_playlist != undefined && !already_offline){
for(var x = 0; x < full_playlist.length; x++){
full_playlist[x].votes = 0;
}
List.sortList();
List.populate_list(full_playlist);
}
} else {
if(list_html){
list_html = $("<div>" + list_html + "</div>");
//list_html.find(".card-content").css("display", "block");
if(list_html){
list_html = $("<div>" + list_html + "</div>");
//list_html.find(".card-content").css("display", "block");
//list_html.find(".card-content").css("height", "initial");
//list_html.find(".list-title").css("align-self", "center");
//list_html.find(".vote-span").removeClass("hide");
if((!hasadmin || !w_p)){
list_html.find(".list-remove").addClass("hide");
}
list_html = list_html.html();
}
if((!hasadmin || !w_p)){
list_html.find(".list-remove").addClass("hide");
}
list_html = list_html.html();
}
//$(".card-content").css("display", "block");
//$(".card-content").css("height", "initial");
//$(".list-title").css("align-self", "center");
//$(".vote-span").removeClass("hide");
$("#viewers").removeClass("hide");
if((!hasadmin || !w_p)){
$(".list-remove").addClass("hide");
}
if((!hasadmin || !w_p)){
$(".list-remove").addClass("hide");
}
$("#offline-mode").addClass("waves-cyan");
$("#offline-mode").removeClass("cyan");
if(window.location.pathname != "/"){
socket.emit("pos");
socket.emit('list', chan.toLowerCase());
}
if(window.location.pathname != "/"){
socket.emit("pos");
socket.emit('list', chan.toLowerCase());
}
}
}
@@ -597,11 +599,11 @@ $(document).keyup(function(e) {
});
$(document).on("click", "#offline-mode", function(e){
e.preventDefault();
e.preventDefault();
if(!Crypt.get_offline()){
change_offline(true);
change_offline(true, offline);
} else{
change_offline(false);
change_offline(false, offline);
}
});
@@ -766,7 +768,7 @@ $(document).on("change", 'input[class=offline_switch_class]', function()
{
//Hostcontroller.change_enabled(document.getElementsByName("remote_switch")[0].checked);
offline = document.getElementsByName("offline_switch")[0].checked;
change_offline(offline);
change_offline(offline, !offline);
});
$(document).on("change", 'input[class=conf]', function()

View File

@@ -14,7 +14,8 @@ var Player = {
}catch(e){
state = null;
}
if((!offline && (state != null || from_frontpage)) || (offline && (!(state != null) || from_frontpage))|| (!offline && (!(state != null) || from_frontpage)) || (offline && state == -1)){
if(((!offline && (state != null || from_frontpage)) || (offline && (!(state != null) || from_frontpage))|| (!offline && (!(state != null) || from_frontpage)) || (offline && state == -1)) && !(offline && prev_chan_player == chan)){
prev_chan_player = chan;
from_frontpage = false;
Player.loaded = false;
Helper.log("--------youtube_listener--------");
@@ -114,6 +115,7 @@ var Player = {
} else {
if(!durationBegun)
Player.durationSetter();
duration = Player.player.getDuration();
}
},