More instant frontpage-loading, and sorting frontpages on the backend for consistency

This commit is contained in:
Kasper Rynning-Tønnesen
2018-08-10 11:51:28 +02:00
parent 8c29c31449
commit 6d0acaefcb
11 changed files with 147 additions and 90 deletions

View File

@@ -899,6 +899,19 @@ nav .zbrand{
height: 120px;
}
.no-jump-select {
height: calc(3rem + 1px) !important;
margin: 0 0 8px 0;
display: flex;
justify-content: space-between;
border-bottom: 1px solid #9e9e9e;
align-items: center;
font-size: 16px;
line-height: 3rem;
color: #000;
}
.description_text {
color: #2d2d2d;
text-align: left;

View File

@@ -677,6 +677,12 @@ var Channel = {
var response = document.createElement("div");
response.innerHTML = e;
var newList = response.querySelector("#lists-script").innerHTML;
newList = newList.trim().replace("window.lists = ", "");
newList = newList.substring(0, newList.length);
window.lists = JSON.parse(newList);
response.querySelector("#lists-script").remove();
Helper.removeElement("#sidenav-overlay");
document.getElementsByTagName("main")[0].className = "center-align container";
Helper.removeClass("#main-container", "channelpage");

View File

@@ -20,16 +20,16 @@ var Frontpage = {
"Frontpage fetch",
msg
]);
Frontpage.all_channels = lists;
var msg = lists;
delete lists;
lists = undefined;
document.querySelector("#lists-script").remove();
Frontpage.all_channels = window.lists;
var msg = window.lists;
delete window.lists;
window.lists = undefined;
//document.querySelector("#lists-script").remove();
if(msg.length == 0) {
Helper.css("#preloader", "display", "none");
document.getElementById("channel-list-container").insertAdjacentHTML("beforeend", "<p>No channels yet</p>");
} else {
console.log(msg);
Frontpage.populate_channels(msg, true, false);
}
//Frontpage.set_viewers(msg.viewers);
@@ -79,7 +79,6 @@ var Frontpage = {
]);
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;
@@ -160,7 +159,7 @@ var Frontpage = {
document.getElementById("channels").style.display = "block";
//Materialize.fadeInImage('#channels');
//$("#channels").fadeIn(800);
document.getElementById("autocomplete-input").focus();
//document.getElementById("autocomplete-input").focus();
num = 0;
},
@@ -264,7 +263,7 @@ var Frontpage = {
if(Frontpage.times_rotated == 50 && frontpage){
Frontpage.times_rotated = 0;
i = 0;
Frontpage.get_frontpage_lists();
//Frontpage.get_frontpage_lists();
}else if(frontpage){
Frontpage.times_rotated += 1;
Frontpage.add_backdrop(list, i+1);
@@ -440,12 +439,11 @@ var Frontpage = {
}
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();
Frontpage.share_link_modifier();
if(window.location.hostname == "zoff.me" || window.location.hostname == "fb.zoff.me") add = "https://zoff.me";
else add = window.location.hostname;
@@ -464,10 +462,11 @@ var Frontpage = {
setup_playlist_listener();
}
M.Modal.init(document.getElementById("about"));
/*M.Modal.init(document.getElementById("about"));
M.Modal.init(document.getElementById("help"));
M.Modal.init(document.getElementById("contact"));
M.Modal.init(document.getElementById("contact"));*/
var elem = document.querySelector('select');
document.querySelector(".no-jump-select").remove();
M.FormSelect.init(elem);
Helper.log([
@@ -516,7 +515,7 @@ var Frontpage = {
if(!localStorage.ok_cookie){
before_toast();
M.toast({html: "We're using cookies to enhance your experience! <a class='waves-effect waves-light btn light-green' href='#' id='cookieok' style='cursor:pointer;pointer-events:all;margin-left:10px;'> ok</a>", displayLength: 10000});
//M.toast({html: "We're using cookies to enhance your experience! <a class='waves-effect waves-light btn light-green' href='#' id='cookieok' style='cursor:pointer;pointer-events:all;margin-left:10px;'> ok</a>", displayLength: 10000});
}
//var pad = 0;

View File

@@ -941,11 +941,11 @@ addListener("click", ".first_page", function(event){
addListener("click", ".donate-button", function(event) {
this.preventDefault();
M.Modal.init(document.getElementById("donate"));
ga('send', 'event', "button-click", "donate");
M.Modal.getInstance(document.getElementById("donate")).open();
});
addListener("click", '#toast-container', function(){
before_toast();
});
@@ -1223,14 +1223,32 @@ addListener("click", "#twitter-code-link", function() {
});
addListener("click", ".help-button-footer", function() {
this.preventDefault();
M.Modal.init(document.getElementById("help"));
ga('send', 'event', "button-click", "help-footer");
M.Modal.getInstance(document.getElementById("help")).open();
});
addListener("click", "#embed-button", function() {
this.preventDefault();
M.Modal.init(document.getElementById("embed"));
ga('send', 'event', "button-click", "embed-channel", "channel-name", chan.toLowerCase());
})
M.Modal.getInstance(document.getElementById("embed")).open();
});
addListener("click", "#contact-button", function() {
this.preventDefault();
M.Modal.init(document.getElementById("contact"));
ga('send', 'event', "button-click", "contact-footer");
M.Modal.getInstance(document.getElementById("contact")).open();
});
addListener("click", ".about-button", function() {
this.preventDefault();
M.Modal.init(document.getElementById("about"));
ga('send', 'event', "button-click", "contact-footer");
M.Modal.getInstance(document.getElementById("about")).open();
});
addListener("click", ".playlist-link", function(event){
chat_active = false;

View File

@@ -10,6 +10,10 @@
<div class="col s12">
<div class="row">
<div class="input-field col s12">
<div class="no-jump-select">
Most Popular
<svg class="caret" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg>
</div>
<select id="view_channels_select">
<option value="" disabled>Channels to show</option>
<option value="1" selected>Most Popular</option>
@@ -18,9 +22,6 @@
</div>
</div>
</div>
<!--<div id="preloader" class="progress frontpage-preloader orange lighten-3">
<div class="indeterminate"></div>
</div>-->
{{> frontpage/channels}}
</div>
</main>

View File

@@ -4,9 +4,9 @@
<a class="chan-link" href="{{_id}}/">
<div class="chan-bg card-image cardbg" style="background-image:url({{thumbnail}});"></div>
<div class="card-content">
{{#if pinned}}
<i class="material-icons pin">star_rate</i>
{{/if}}
<i class="material-icons pin" style="{{#if pinned}}display:block;{{/if}}{{#unless pinned}}display:none;{{/unless}}">star_rate</i>
<p class="left-align">
<span class="chan-name flow-text truncate">{{_id}}</span>
<br>

View File

@@ -1,10 +1,15 @@
<div id="channel-list-container">
<ul class="row" id="channels">
{{#each channels}}
{{#if frontpage}}
{{> frontpage/channel}}
{{/if}}
{{/each}}
{{#if channels_exist}}
{{#each channels}}
{{#if frontpage}}
{{> frontpage/channel}}
{{/if}}
{{/each}}
{{/if}}
{{#unless channels_exist}}
No channels yet
{{/unless}}
</ul>
<div class="hidden-channel-list hide">
<ul class="row" id="channels">
@@ -12,6 +17,6 @@
</ul>
</div>
<script id="lists-script">
var lists = {{{channel_list}}}
window.lists = {{{channel_list}}}
</script>
</div>

View File

@@ -16,7 +16,7 @@
{{/if}}
<li class="hide-on-small-only"><a class="header-buttons waves-effect waves-cyan" id="offline-mode" title="Local mode" href="#">Local</a></li>
<li class="hide-on-small-only"><a class="header-buttons waves-effect waves-green" title="Remote control a Zoff player" href="https://remote.zoff.me">Remote</a></li>
<li class="hide-on-small-only"><a class="header-buttons modal-trigger waves-effect waves-orange" data-target="about">About</a></li>
<li class="hide-on-small-only"><a class="header-buttons modal-trigger waves-effect waves-orange about-button" data-target="about">About</a></li>
</ul>
</div>
</nav>