diff --git a/server/public/assets/css/style.css b/server/public/assets/css/style.css index 7726ec47..ffb9e5b7 100755 --- a/server/public/assets/css/style.css +++ b/server/public/assets/css/style.css @@ -899,6 +899,11 @@ nav .zbrand{ height: 120px; } +.description_text { + color: #2d2d2d; + text-align: left; +} + .white-bg{ background-color:white !important; } diff --git a/server/public/assets/js/frontpage.js b/server/public/assets/js/frontpage.js index 9fe17e5a..7351c956 100755 --- a/server/public/assets/js/frontpage.js +++ b/server/public/assets/js/frontpage.js @@ -13,113 +13,121 @@ var Frontpage = { all_channels: [], - frontpage_function: function(msg) { + frontpage_function: function() { frontpage = true; Helper.log([ "Frontpage fetch", msg ]); - Frontpage.all_channels = msg.channels; - if(msg.channels.length == 0) { + Frontpage.all_channels = lists; + var msg = lists; + delete lists; + lists = undefined; + document.querySelector("#lists-script").remove(); + if(msg.length == 0) { Helper.css("#preloader", "display", "none"); document.getElementById("channel-list-container").insertAdjacentHTML("beforeend", "

No channels yet

"); } else { - Frontpage.populate_channels(msg.channels, true); + console.log(msg); + Frontpage.populate_channels(msg, true, false); } - Frontpage.set_viewers(msg.viewers); + //Frontpage.set_viewers(msg.viewers); }, - populate_channels: function(lists, popular) { - document.getElementById("channels").innerHTML = ""; + populate_channels: function(lists, popular, set) { + //document.getElementById("channels").innerHTML = ""; var num = 0; - - if(popular) { - lists = lists.sort(Helper.predicate({ - name: 'pinned', - reverse: true - }, { - name: 'viewers', - reverse: true - }, { - name: 'accessed', - reverse: true - }, { - name: 'count', - reverse: true - })); - } else { - lists = lists.sort(Helper.predicate({ - name: 'viewers', - reverse: true - }, { - name: 'count', - reverse: true - })); - } - - if(!Helper.mobilecheck()) { - clearTimeout(rotation_timeout); - Frontpage.add_backdrop(lists, 0); - } - - pre_card = channel_list; - - Helper.log([ - "Pre_card: ", - pre_card - ]); - - for(var x in lists) { - //console.log(lists[x]._id); - var chan = Helper.decodeChannelName(lists[x]._id); - if(num<12 || !popular) { - var id = lists[x].id; - var viewers = lists[x].viewers; - var description = lists[x].description; - var img; - img = "background-image:url('https://img.youtube.com/vi/"+id+"/hqdefault.jpg');"; - if(lists[x].thumbnail && lists[x].thumbnail != "") { - img = "background-image:url('" + lists[x].thumbnail + "');"; - } - - var song_count = lists[x].count; - var card = document.createElement("div"); - card.innerHTML += pre_card; - //card.innerHTML = card.children[0]; - if(song_count > 3) { - if(lists[x].pinned == 1) { - card.querySelector(".pin").setAttribute("style", "display:block;"); - //card.find(".card").attr("title", "Featured list"); - } else { - /*card.find(".pin").attr("style", "display:none;"); - card.find(".card").attr("title", "");*/ - card.querySelector(".pin").remove(); - } - card.querySelector(".chan-name").innerText = chan; - card.querySelector(".chan-name").setAttribute("title", chan); - card.querySelector(".chan-views").innerText = viewers; - card.querySelector(".chan-songs").innerText = song_count; - card.querySelector(".chan-bg").setAttribute("style", img); - card.querySelector(".chan-link").setAttribute("href", chan + "/"); - - if(description != "" && description != undefined && !Helper.mobilecheck()) { - card.querySelector(".card-title").innerText = chan; - card.querySelector(".description_text").innerText = description; - description = ""; - } else { - card.querySelector(".card-reveal").remove(); - Helper.removeClass(card.querySelector(".card"), "sticky-action") - } - - document.getElementById("channels").insertAdjacentHTML("beforeend", card.children[0].innerHTML); - } else { - num--; - } - + if(!set) Frontpage.add_backdrop(lists, 0); + else if(set) { + document.getElementById("channels").innerHTML = ""; + if(popular) { + lists = lists.sort(Helper.predicate({ + name: 'pinned', + reverse: true + }, { + name: 'viewers', + reverse: true + }, { + name: 'accessed', + reverse: true + }, { + name: 'count', + reverse: true + })); + } else { + lists = lists.sort(Helper.predicate({ + name: 'viewers', + reverse: true + }, { + name: 'count', + reverse: true + })); + } + + if(!Helper.mobilecheck()) { + clearTimeout(rotation_timeout); + Frontpage.add_backdrop(lists, 0); + } + + pre_card = channel_list; + + Helper.log([ + "Pre_card: ", + pre_card + ]); + + for(var x in lists) { + //console.log(lists[x]._id); + var chan = Helper.decodeChannelName(lists[x]._id); + if(num<12 || !popular) { + var id = lists[x].id; + var viewers = lists[x].viewers; + var description = lists[x].description; + var img; + img = "background-image:url('https://img.youtube.com/vi/"+id+"/hqdefault.jpg');"; + if(lists[x].thumbnail && lists[x].thumbnail != "") { + img = "background-image:url('" + lists[x].thumbnail + "');"; + } + + var song_count = lists[x].count; + var card = document.createElement("div"); + card.innerHTML += pre_card; + //card.innerHTML = card.children[0]; + if(song_count > 3) { + if(lists[x].pinned == 1) { + card.querySelector(".pin").setAttribute("style", "display:block;"); + //card.find(".card").attr("title", "Featured list"); + } else { + /*card.find(".pin").attr("style", "display:none;"); + card.find(".card").attr("title", ""); + card.querySelector(".pin").remove();*/ + } + card.querySelector(".chan-name").innerText = chan; + card.querySelector(".chan-name").setAttribute("title", chan); + card.querySelector(".chan-views").innerText = viewers; + card.querySelector(".chan-songs").innerText = song_count; + card.querySelector(".chan-bg").setAttribute("style", img); + card.querySelector(".chan-link").setAttribute("href", chan + "/"); + + if(description != "" && description != undefined && !Helper.mobilecheck()) { + card.querySelector(".card-title").innerText = chan; + card.querySelector(".description_text").innerText = description; + description = ""; + } else { + //card.querySelector(".card-reveal").remove(); + Helper.removeClass(card.querySelector(".card"), "sticky-action") + } + + document.getElementById("channels").insertAdjacentHTML("beforeend", card.children[0].innerHTML); + } else { + num--; + } + + } + num++; } - num++; } var options_list = lists.slice(); @@ -148,7 +156,7 @@ var Frontpage = { }, }); - document.getElementById("preloader").style.display = "none"; + //document.getElementById("preloader").style.display = "none"; document.getElementById("channels").style.display = "block"; //Materialize.fadeInImage('#channels'); //$("#channels").fadeIn(800); @@ -269,6 +277,7 @@ var Frontpage = { if(window.location.hostname == "fb.zoff.me") { add = "https://zoff.me"; } + Frontpage.frontpage_function(); /*Helper.ajax({ url: add + "/api/frontpages", method: "get", @@ -430,7 +439,11 @@ var Frontpage = { Helper.addClass("footer", "hide"); } - channel_list = document.getElementById("channel-list-container").cloneNode(true).innerHTML; + channel_list = document.querySelector(".hidden-channel-list").cloneNode(true).innerHTML; + console.log(channel_list); + try { + document.querySelector(".hidden-channel-list").remove(); + }catch(e){} if(window.location.hostname != "fb.zoff.me") Frontpage.share_link_modifier(); diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 219eb951..e147955d 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -959,7 +959,7 @@ addListener("click", "#aprilfools", function(){ addListener("change", '#view_channels_select', function(event) { var that = this; if(currently_showing_channels != parseInt(that.target.value)) { - Frontpage.populate_channels(Frontpage.all_channels, (parseInt(that.target.value) == 1 ? true : false)); + Frontpage.populate_channels(Frontpage.all_channels, (parseInt(that.target.value) == 1 ? true : false), true); } currently_showing_channels = parseInt(that.target.value); }); diff --git a/server/public/layouts/client/frontpage.handlebars b/server/public/layouts/client/frontpage.handlebars index 93aecbf3..1bd243e4 100755 --- a/server/public/layouts/client/frontpage.handlebars +++ b/server/public/layouts/client/frontpage.handlebars @@ -18,9 +18,9 @@ -
+ {{> frontpage/channels}}
diff --git a/server/public/partials/frontpage/channel.handlebars b/server/public/partials/frontpage/channel.handlebars index 7ba97e27..057ae1db 100644 --- a/server/public/partials/frontpage/channel.handlebars +++ b/server/public/partials/frontpage/channel.handlebars @@ -1,7 +1,7 @@
  • - +
  • diff --git a/server/public/partials/frontpage/channels.handlebars b/server/public/partials/frontpage/channels.handlebars index b2f53965..96b70a8d 100644 --- a/server/public/partials/frontpage/channels.handlebars +++ b/server/public/partials/frontpage/channels.handlebars @@ -6,4 +6,12 @@ {{/if}} {{/each}} +
    + +
    + diff --git a/server/routing/client/router.js b/server/routing/client/router.js index b91ad2bb..531a93b1 100644 --- a/server/routing/client/router.js +++ b/server/routing/client/router.js @@ -157,7 +157,20 @@ function root(req, res, next) { "title": 1, "viewers": 1, "pinned": 1, - "description": 1, + "description": { + $ifNull: [ {$cond: { + "if": { + "$or": [ + { "$eq": [ "$description", ""] }, + { "$eq": [ "$description", null] }, + { "$eq": [ "$description", undefined] } + ] + }, + then: "This list has no description", + else: "$description" + }}, "This list has no description"] + + }, "thumbnail": { $ifNull: [ {$cond: { "if": { @@ -196,7 +209,7 @@ function root(req, res, next) { ], function(err, docs) { db.collection("connected_users").find({"_id": "total_users"}, function(err, tot) { data.channels = docs.slice(0, 12); - data.channel_list = docs; + data.channel_list = JSON.stringify(docs); data.viewers = tot[0].total_users.length; res.render('layouts/client/frontpage', data); });