usersuggested videos on password protected lists

This commit is contained in:
Kasper Rynning-Tønnesen
2015-12-15 13:17:21 +01:00
parent 43760d3c33
commit 9eff78c179
7 changed files with 92 additions and 27 deletions

View File

@@ -230,12 +230,12 @@
</div> </div>
</div> </div>
</div> </div>
<div id="suggestions"> <div id="suggestions" class="tabs_height">
<p class="suggest-title-info">YouTube Suggests:</p> <p class="suggest-title-info">YouTube Suggests:</p>
<div class="suggest_bar" id="suggest-song-html"> <div class="suggest_bar" id="suggest-song-html">
</div> </div>
<p class="suggest-title-info hide">Users Suggests:</p> <p class="suggest-title-info">Users Suggests:</p>
<div class="suggest_bar hide" id="user-suggest-html"> <div class="suggest_bar" id="user-suggest-html">
</div> </div>
</div> </div>
</div> </div>

View File

@@ -773,7 +773,7 @@ nav ul li:hover, nav ul li.active {
background-color: rgba(0,0,0,0.5); background-color: rgba(0,0,0,0.5);
} }
.list-image{ .list-image, .list-suggested-image{
width: 34%; width: 34%;
height: 66px; height: 66px;
float: left; float: left;
@@ -798,10 +798,33 @@ nav ul li:hover, nav ul li.active {
opacity:0; opacity:0;
transition: all .1s ease; transition: all .1s ease;
} }
.vote-container:hover .list-image:after {
.list-suggested-image:after {
font-family: "Material-Design-Icons";
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
content: "\e625";/*"\e800";*/
color:white;
font-size:65px;
position:absolute;
width:100%; height:100%;
top:0; left:0;
background:rgba(0,0,0,0.8);
opacity:0;
transition: all .1s ease;
}
.vote-container:hover .list-image:after, .add-suggested:hover .list-suggested-image:after {
opacity:1; opacity:1;
} }
.vote-span{ .vote-span{
opacity: 0.7; opacity: 0.7;
padding: 0 0 0 10px; padding: 0 0 0 10px;
@@ -871,7 +894,7 @@ nav ul li:hover, nav ul li.active {
padding-left: 10px; padding-left: 10px;
} }
#del, #del_suggested{ #del, #del_suggested, #del_user_suggested{
height: 100%; height: 100%;
line-height: normal; line-height: normal;
padding: 2px 12px; padding: 2px 12px;
@@ -887,6 +910,11 @@ nav ul li:hover, nav ul li.active {
opacity:0.8; opacity:0.8;
} }
.tabs_height{
height:91% !important;
overflow:auto;
}
/** settings **/ /** settings **/

File diff suppressed because one or more lines are too long

View File

@@ -53,6 +53,9 @@ var Admin = {
case "changedpass": case "changedpass":
msg="Your password has been changed!"; msg="Your password has been changed!";
break; break;
case "suggested":
msg="Your song was suggested!";
break;
} }
Materialize.toast(msg, 4000); Materialize.toast(msg, 4000);
}); });
@@ -77,6 +80,7 @@ var Admin = {
$("#password").val(""); $("#password").val("");
$("#password").attr("placeholder", "Change channel password") $("#password").attr("placeholder", "Change channel password")
$(".playlist-tabs").removeClass("hide"); $(".playlist-tabs").removeClass("hide");
$("#wrapper").toggleClass("tabs_height");
if(!Helper.contains($("#admin-lock").attr("class").split(" "), "mdi-action-lock-open")) if(!Helper.contains($("#admin-lock").attr("class").split(" "), "mdi-action-lock-open"))
$("#admin-lock").addClass("mdi-action-lock-open clickable"); $("#admin-lock").addClass("mdi-action-lock-open clickable");
@@ -134,6 +138,7 @@ var Admin = {
if(!Helper.contains($(".playlist-tabs").attr("class").split(" "), "hide")){ if(!Helper.contains($(".playlist-tabs").attr("class").split(" "), "hide")){
$(".playlist-tabs").addClass("hide"); $(".playlist-tabs").addClass("hide");
$("#wrapper").toggleClass("tabs_height");
} }
if($(".card-action").length != 0 && if($(".card-action").length != 0 &&
@@ -162,6 +167,7 @@ var Admin = {
if(conf_array['adminpass'] == "" || !w_p){ if(conf_array['adminpass'] == "" || !w_p){
hasadmin = false; hasadmin = false;
$(".playlist-tabs").removeClass("hide"); $(".playlist-tabs").removeClass("hide");
$("#wrapper").toggleClass("tabs_height")
} }
else hasadmin = true; else hasadmin = true;

View File

@@ -64,6 +64,7 @@ var List = {
added_song: function(added){ added_song: function(added){
full_playlist.push(added); full_playlist.push(added);
List.sortList(); List.sortList();
$("#suggested-"+added.id).remove();
List.insertAtIndex(added, true); List.insertAtIndex(added, true);
}, },
@@ -86,6 +87,7 @@ var List = {
full_playlist.splice(List.getIndexOfSong(deleted), 1); full_playlist.splice(List.getIndexOfSong(deleted), 1);
$("#wrapper").children()[$("#wrapper").children().length-1].remove(); $("#wrapper").children()[$("#wrapper").children().length-1].remove();
} }
$("#suggested-"+deleted).remove();
}, },
voted_song: function(voted, time){ voted_song: function(voted, time){
@@ -199,7 +201,7 @@ var List = {
} }
}, },
generateSong: function(song_info, transition, lazy, list) generateSong: function(song_info, transition, lazy, list, user)
{ {
var video_id = song_info.id; var video_id = song_info.id;
var video_title = song_info.title; var video_title = song_info.title;
@@ -224,18 +226,25 @@ var List = {
song.find("#list-song").attr("id", video_id); song.find("#list-song").attr("id", video_id);
attr = ".vote-container"; attr = ".vote-container";
del_attr = "#del"; del_attr = "del";
}else if(!list){ }else if(!list){
song.find(".vote-text").text(song_info.duration); song.find(".vote-text").text(song_info.duration);
attr = ".add-suggested"; attr = ".add-suggested";
del_attr = "#del_suggested"; if(user)
del_attr = "del_user_suggested";
else
del_attr = "del_suggested";
song.find(".vote-container").attr("class", "clickable add-suggested"); song.find(".vote-container").attr("class", "clickable add-suggested");
song.find("#del").attr("id", "del_suggested"); song.find(".add-suggested").attr("title", "Add song!");
song.find("#del").attr("id", del_attr);
song.find(attr).attr("data-video-title", video_title); song.find(attr).attr("data-video-title", video_title);
song.find(attr).attr("data-video-length", song_info.length); song.find(attr).attr("data-video-length", song_info.length);
song.find("#list-song").attr("id", "suggested-" + video_id); song.find("#list-song").attr("id", "suggested-" + video_id);
song.find(".list-image").attr("class", song.find(".list-image").attr("class").replace("list-image", "list-suggested-image"));
} }
song.find(".list-title").text(video_title); song.find(".list-title").text(video_title);
@@ -243,7 +252,8 @@ var List = {
//song.find(".vote-container").attr("onclick", "vote('"+video_id+"','pos')"); //song.find(".vote-container").attr("onclick", "vote('"+video_id+"','pos')");
song.find(attr).attr("data-video-id", video_id); song.find(attr).attr("data-video-id", video_id);
song.find(".list-image").attr(image_attr,video_thumb); song.find(".list-image").attr(image_attr,video_thumb);
song.find(del_attr).attr("data-video-id", video_id); song.find(".list-suggested-image").attr(image_attr,video_thumb);
song.find("#"+del_attr).attr("data-video-id", video_id);
//song.find("#del").attr("onclick", "vote('"+video_id+"', 'del')"); //song.find("#del").attr("onclick", "vote('"+video_id+"', 'del')");
return song.html(); return song.html();

View File

@@ -3,7 +3,6 @@ var w_p = true;
var hasadmin = 0; var hasadmin = 0;
var showToggle = true; var showToggle = true;
var list_html = $("#list-song-html").html(); var list_html = $("#list-song-html").html();
var suggest_html = $("#suggest-song-html").html();
var blink_interval_exists = false; var blink_interval_exists = false;
var unseen = false; var unseen = false;
var timer = 0; var timer = 0;
@@ -52,6 +51,13 @@ socket.on("get_list", function(){
socket.emit('list', chan.toLowerCase()); socket.emit('list', chan.toLowerCase());
}); });
socket.on("suggested", function(params){
var single = true;
if(params.id == undefined)
single = false;
Suggestions.catchUserSuggests(params, single);
});
$(document).ready(function() $(document).ready(function()
{ {
//window.vote = List.vote; //window.vote = List.vote;
@@ -327,4 +333,10 @@ $("#suggestions").on( "click", "#del_suggested", function(e){
var id = $(this).attr("data-video-id"); var id = $(this).attr("data-video-id");
$("#suggested-" + id).remove(); $("#suggested-" + id).remove();
});
$("#suggestions").on( "click", "#del_user_suggested", function(e){
var id = $(this).attr("data-video-id");
$("#suggested-" + id).remove();
List.vote(id, "del");
}); });

View File

@@ -1,7 +1,26 @@
var Suggestions = { var Suggestions = {
catchUserSuggests: function(suggested){ catchUserSuggests: function(params, single){
if(single){
Suggestions.createSuggested(params);
}else{
for(x in params){
Suggestions.createSuggested(params[x]);
}
}
},
createSuggested: function(params){
var secs = params.duration;
var video_id = params.id;
var video_title = params.title;
var minutes = Math.floor(secs / 60);
var seconds = secs - minutes * 60;
duration = minutes+"m " + seconds + "s";
var song = List.generateSong({id: video_id, title: video_title, length: secs, duration: duration}, false, false, false, true);
$("#user-suggest-html").append(song);
}, },
fetchYoutubeSuggests: function(id){ fetchYoutubeSuggests: function(id){
@@ -33,20 +52,10 @@ var Suggestions = {
var secs = Search.durationToSeconds(duration); var secs = Search.durationToSeconds(duration);
var video_id = song.id; var video_id = song.id;
var video_title = song.snippet.title; var video_title = song.snippet.title;
var suggest_song = $("<div><div class='suggest-songs suggest-"+video_id+"'>" + $(suggest_html).html() + "</div></div>");
duration = duration.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s") duration = duration.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s")
window.suggest_song = suggest_song; $("#suggest-song-html").append(List.generateSong({id: video_id, title: video_title, length: secs, duration: duration}, false, false, false));
suggest_song.find(".suggest_thumb").attr("src", "//img.youtube.com/vi/"+video_id+"/mqdefault.jpg")
suggest_song.find(".suggest_title").text(video_title);
suggest_song.find(".duration-song").text(duration);
suggest_song.find(".accept").attr("data-video-id", video_id);
suggest_song.find(".accept").attr("data-video-title", video_title);
suggest_song.find(".accept").attr("data-video-length", secs);
suggest_song.find(".decline").attr("data-video-id", video_id);
$("#suggest-song-html").append(List.generateSong({id: song.id, title: song.snippet.title, length: secs, duration: duration}, false, false, false));
}); });
} }
}); });