Updated how suggestions work and display

- Always showing suggested tab in tablist
- Fixed issue with contextmenu going all wonky when opened on suggested elements
This commit is contained in:
Kasper Rynning-Tønnesen
2018-03-15 15:38:08 +01:00
parent 6d97345719
commit a4ebe56254
8 changed files with 43 additions and 49 deletions

View File

@@ -11,6 +11,11 @@ var Admin = {
if(Admin.logged_in) {
$("#thumbnail_form").css("display", "inline-block");
$("#description_form").css("display", "inline-block");
$("#user_suggests").removeClass("hide");
$("#user-suggest-html").removeClass("hide");
$(".suggested-badge").removeClass("hide")
} else {
Admin.hideUserSuggested();
}
$(".delete-context-menu").removeClass("context-menu-disabled");
names = ["vote","addsongs","longsongs","frontpage", "allvideos",
@@ -38,15 +43,7 @@ var Admin = {
if($(".password_protected").prop("checked")) {
$(".change_user_pass").removeClass("hide");
}
if(!client) {
if(!Helper.contains($(".playlist-tabs").attr("class").split(" "), "hide")) {
$(".playlist-tabs-loggedIn").removeClass("hide");
$(".playlist-tabs").addClass("hide");
}
if($(".tabs").length > 0 && !changing_to_frontpage) {
$('ul.playlist-tabs-loggedIn').tabs('select_tab', $(".playlist-tabs li a.active").attr("href").substring(1));
}
}
if($("#admin-lock").html() != "lock_open"){
$("#admin-lock").addClass("clickable");
$("#admin-lock").html("lock_open");
@@ -60,6 +57,18 @@ var Admin = {
}
},
hideUserSuggested: function() {
if(!$("#user_suggests").hasClass("hide")) {
$("#user_suggests").addClass("hide")
}
if(!$("#user-suggest-html").hasClass("hide")) {
$("#user-suggest-html").addClass("hide");
}
if(!$(".suggested-badge").hasClass("hide")) {
$(".suggested-badge").addClass("hide");
}
},
conf: function(msg) {
if(msg[0].adminpass == ""){
////Crypt.remove_pass(chan.toLowerCase());
@@ -85,18 +94,17 @@ var Admin = {
before_toast();
/*if(Crypt.get_pass(chan.toLowerCase())) {*/
//Crypt.remove_pass(chan.toLowerCase());
Admin.display_logged_out();
if(Admin.logged_in) {
socket.emit("logout");
Materialize.toast("Logged out", 4000);
Admin.display_logged_out();
} else {
Materialize.toast("Not logged in", 4000);
}
Admin.logged_in = false;
},
display_logged_out: function() {
Admin.logged_in = false;
w_p = true;
adminpass = "";
names = ["vote","addsongs","longsongs","frontpage", "allvideos",
@@ -131,20 +139,8 @@ var Admin = {
if(!$(".change_user_pass").hasClass("hide")) {
$(".change_user_pass").addClass("hide");
}
if(!client) {
if(!Helper.contains($(".playlist-tabs-loggedIn").attr("class").split(" "), "hide")) {
$(".playlist-tabs-loggedIn").addClass("hide");
$(".playlist-tabs").removeClass("hide");
}
Admin.hideUserSuggested();
if($("ul.playlist-tabs-loggedIn .playlist-tab-links.active").attr("href") == "#suggestions" && $(".tabs").length > 0 && !changing_to_frontpage)
{
$('ul.playlist-tabs').tabs('select_tab', 'wrapper');
$('ul.playlist-tabs-loggedIn').tabs('select_tab', 'wrapper');
} else if($(".tabs").length > 0 && !changing_to_frontpage){
$('ul.playlist-tabs').tabs('select_tab', $(".playlist-tabs-loggedIn li a.active").attr("href").substring(1));
}
}
$("#admin-lock").removeClass("clickable");
$("#password").attr("placeholder", "Enter admin password");
if(!$(".delete-context-menu").hasClass("context-menu-disabled")) {
@@ -164,18 +160,18 @@ var Admin = {
hasadmin = conf_array.adminpass != "";
var show_disabled = true;
if(hasadmin && Admin.logged_in || !hasadmin) {
show_disabled = false;
}
for (var i = 0; i < names.length; i++) {
document.getElementsByName(names[i])[0].checked = (conf_array[names[i]] === true);
$("input[name="+names[i]+"]").attr("disabled", !Admin.logged_in);
$("input[name="+names[i]+"]").attr("disabled", show_disabled);
}
if((hasadmin) && !Admin.logged_in) {
if($("#admin-lock").html() != "lock") Admin.display_logged_out();
} else if(!hasadmin && Crypt.get_pass(chan.toLowerCase()) === undefined) {
if(!Helper.contains($(".playlist-tabs").attr("class").split(" "), "hide")) {
$(".playlist-tabs-loggedIn").removeClass("hide");
$(".playlist-tabs").addClass("hide");
}
} else if(!hasadmin) {
$("#password").attr("placeholder", "Create admin password");
} else {
if($(".password_protected").prop("checked")) {
@@ -222,7 +218,7 @@ var Admin = {
userpass: Crypt.crypt_pass(pass_send),
userpass_changed: userpass_changed
};
emit("conf", configs);
},

View File

@@ -44,7 +44,7 @@ var Channel = {
if(Player !== undefined && !client) Player.stopInterval= false;
if(!client) {
$('ul.playlist-tabs').tabs();
//$('ul.playlist-tabs').tabs();
$('ul.playlist-tabs-loggedIn').tabs();
$('ul.chatTabs').tabs();
}

View File

@@ -203,13 +203,13 @@ function contextListener(that, e) {
$("#context-menu-overlay").removeClass("hide");
var left = e.pageX - $(".context-menu-root").width() / 2;
var top = e.pageY;
if(left + $(".context-menu-root").width() > $(window).width()) {
left = $(window).width() - $(".context-menu-root").width() - 15;
if(left + 200 > $(window).width()) {
left = $(window).width() - 200 - 15;
} else if (left < 0) {
left = 11;
}
if(top + $(".context-menu-root").width() > $(window).height()) {
top = $(window).height() - $(".context-menu-root").height() - 15;
if(top + 96 > $(window).height()) {
top = $(window).height() - 96 - 15;
} else if(top < 0) {
top = 15;
}

View File

@@ -1271,6 +1271,8 @@ $(document).on( "click", ".add-suggested", function(e){
var to_display = number_suggested > 9 ? "9+" : number_suggested;
if(!$(".suggested-link span.badge.new.white").hasClass("hide") && to_display == 0){
$(".suggested-link span.badge.new.white").addClass("hide");
$("#user_suggests").addClass("hide");
$("#suggest_bar").addClass("hide");
}
$(".suggested-link span.badge.new.white").text(to_display);

View File

@@ -12,7 +12,7 @@ var Suggestions = {
}
}
var to_display = number_suggested > 9 ? "9+" : number_suggested;
if($(".suggested-link span.badge.new.white").hasClass("hide") && number_suggested > 0){
if($(".suggested-link span.badge.new.white").hasClass("hide") && number_suggested > 0 && Admin.logged_in){
$(".suggested-link span.badge.new.white").removeClass("hide");
}
$(".suggested-link span.badge.new.white").text(to_display);
@@ -79,7 +79,7 @@ var Suggestions = {
if(length === 0){
if(!Helper.contains($("#user_suggests").attr("class").split(" "), "hide"))
$("#user_suggests").addClass("hide");
}else{
} else if(Admin.logged_in){
$("#user_suggests").removeClass("hide");
}
},

View File

@@ -2,7 +2,7 @@
<p class="suggest-title-info">YouTube Suggests:</p>
<div class="suggest_bar" id="suggest-song-html">
</div>
<p class="suggest-title-info" id="user_suggests">Users Suggests:</p>
<div class="suggest_bar" id="user-suggest-html">
<p class="suggest-title-info hide" id="user_suggests">Users Suggests:</p>
<div class="suggest_bar hide" id="user-suggest-html">
</div>
</div>

View File

@@ -1,13 +1,9 @@
<div id="playlist" class="col s12 m3">
{{#if client}}
{{else}}
<ul class="tabs playlist-tabs tabs-fixed-width" style="width:96%">
<ul class="tabs playlist-tabs-loggedIn tabs-fixed-width" style="width: 96%;">
<li class="tab col s3"><a class="playlist-tab-links playlist-link active truncate" href="#wrapper">Playlist</a></li>
<li class="tab col s3"><a class="playlist-tab-links chat-link truncate" href="#chat">Chat<span class="new badge white hide"></span></a></li>
</ul>
<ul class="tabs playlist-tabs-loggedIn hide tabs-fixed-width" style="width: 96%;">
<li class="tab col s3"><a class="playlist-tab-links playlist-link active truncate" href="#wrapper">Playlist</a></li>
<li class="tab col s3"><a class="playlist-tab-links suggested-link truncate" href="#suggestions">Suggested<span class="new badge white hide"></span></a></li>
<li class="tab col s3"><a class="playlist-tab-links suggested-link truncate" href="#suggestions">Suggested<span class="new badge white hide suggested-badge"></span></a></li>
<li class="tab col s3"><a class="playlist-tab-links chat-link truncate" href="#chat">Chat<span class="new badge white hide"></span></a></li>
</ul>
{{/if}}

View File

@@ -843,7 +843,7 @@ router.route('/api/conf/:channel_name').get(function(req, res) {
conf.userpass = false;
}
var to_return = error.no_error;
to_return.results = conf;
to_return.results = [conf];
res.status(200).send(JSON.stringify(to_return));
} else if(docs.length > 0 && docs[0].userpass != "" && docs[0].userpass != undefined){
res.status(403).send(JSON.stringify(error.not_authenticated));
@@ -926,7 +926,7 @@ router.route('/api/conf/:channel_name').post(function(req, res) {
}
updateTimeout(guid, res, authorized, "POST", function(err, docs) {
var to_return = error.no_error;
to_return.results = conf;
to_return.results = [conf];
res.status(200).send(JSON.stringify(to_return));
});
} else if(docs.length > 0 && docs[0].userpass != userpass) {