Updated materialize to v0.98 and made changes accordingly

- Made improvements to how the remotecontroller on mobile looks
- Added thumbnails some places
- Started using googles new material font because of materializecss
This commit is contained in:
Kasper Rynning-Tønnesen
2017-01-28 18:16:57 +01:00
parent da45f27cd1
commit 3d4ed9b66c
49 changed files with 375 additions and 14640 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -40,6 +40,7 @@
cursor: default;
color: white;
padding:0;
line-height: 36px;
}
#playing_on{
@@ -52,7 +53,7 @@
color: rgba(255,255,255, 0.8);
}
#playing_on #chromecast_icon{
#playing_on #chromecast_icon i{
font-size:70px;
}
@@ -95,6 +96,7 @@
.next_page_hide, .next_page, .last_page, .last_page_hide{
padding:0 10px;
float:right;
display: flex;
}
.settings_embed:focus{
@@ -148,17 +150,20 @@
.extra-button{
margin: 0 4px !important;
padding: 0px !important;
display: inline-block;
width: 37px;
height: 40px !important;
line-height: 40px !important;
color: white !important;
padding: 0px !important;
width: 37px;
height: 40px !important;
line-height: 40px !important;
color: white !important;
display: flex !important;
justify-content: center;
}
.search-extra{
height: 40px !important;
line-height: 40px !important;
margin: 0 !important;
color: white !important;
}
.import-spotify-auth, .import-youtube, .export-spotify-auth, .export-youtube, .exported-playlist{
@@ -166,6 +171,7 @@
height:40px !important;
line-height: 40px !important;
margin: 0 4rem 0 0 !important;
width: 76%;
}
.import-spotify-auth{
@@ -190,10 +196,6 @@
display: none;
}
.youtube_clicked{
display: none;
}
#chatPlaylist{
overflow: hidden;
}
@@ -403,6 +405,10 @@ nav, .tabs .tab a,
background-color: #2D2D2D;
}
.tabs .tab a{
padding: 0px;
}
.secondary-content,
.dropdown-content li > a, .dropdown-content li > span,
.input-field .prefix.active,
@@ -420,6 +426,23 @@ input[type=text]:focus:not([readonly]) + label, input[type=password]:focus:not([
.field-settings{
margin-left: 25px !important;
color: rgb(68,68,68);
display: flex;
align-items: center;
height: 64px !important;
}
.not-imported-container{
display: block;
height: 100% !important;
}
.not-exported-container{
display: block !important;
margin-left: 0px !important;
}
.youtube_clicked{
display: none;
}
.import-icon{
@@ -427,16 +450,18 @@ input[type=text]:focus:not([readonly]) + label, input[type=password]:focus:not([
}
#import, #import_spotify{
width:65%;
padding-left:35px;
color:rgb(68,68,68);
width: 65%;
padding-left: 35px;
color: rgb(68,68,68);
border-bottom: 1px solid lightgrey;
padding-bottom: 10px;
padding-bottom: 0px;
height: 64px;
}
#password{
width:84%;
margin-left:10px;
width: 84%;
margin-left: 10px;
margin-bottom: 0;
}
span.badge.new,
@@ -628,7 +653,7 @@ hide mdi-action-visibility mdi-action-visibility-off
@font-face {
font-family:"futura-pt";
src:url('../font/futura.woff2') format('woff2'),url('../font/futura.woff') format('woff');
src:url('../fonts/futura.woff2') format('woff2'),url('../fonts/futura.woff') format('woff');
font-style:normal;font-weight:300;
}
@@ -878,6 +903,21 @@ hide mdi-action-visibility mdi-action-visibility-off
/*------------------- Channel page ---------------------------------------------------------------------------- */
.collapsible-header{
font-weight: 400 !important;
height: 64px !important;
line-height: 64px !important;
display: flex !important;
align-items: center;
justify-content: flex-end;
flex-direction: row-reverse;
}
.collapsible-body{
padding: 0rem;
}
.suggest_thumb {
width:25%;
float:left;
@@ -1194,10 +1234,6 @@ ul #chat-log{
width: 100%;
}
#viewers{
width: initial;
padding-right: 3%;
}
#playlist{
/*padding:0px 15px;*/
flex:1;
@@ -1206,16 +1242,27 @@ ul #chat-log{
/*background-color:rgba(0,0,0,0.2);*/
}
.castButton, .castButton:active, .castButton:focus, .castButton:hover, .castButton-active, .castButton-active:active, .castButton-active:hover, .castButton-active:focus {
width: 0px;
height: 0px;
.castButton{
display:none !important;
}
.castButton-unactive, .castButton-unactive:active, .castButton-unactive:focus, .castButton-unactive:hover, .castButton-active, .castButton-active:active, .castButton-active:hover, .castButton-active:focus {
width: 33px;
height: 33px;
float: right;
margin: 0px 25px 0px -10px;
/*margin: 0px 25px 0px -10px;*/
background: transparent;
border: none;
background: transparent;
color: white;
border: none;
font-size:18px;
padding-right: 1%;
}
.castButton-unactive i, .castButton-active i{
font-size: 20px;
margin-top: 3px;
}
/*.castButton-active, .castButton-active:active, .castButton-active:hover, .castButton-active:focus{
@@ -1247,13 +1294,17 @@ ul #chat-log{
transition: background-color .2s;
min-width: 64px;
float:right;
text-align: center;
}
.nav-btn:hover{background-color:rgba(0,0,0,0.6);}
.hover-text{display:none;}
.nav-btn:hover > .hover-text {display:inline;}
.nav-btn:hover > .hover-text {
display: flex;
justify-content: center;
}
nav ul li:hover, nav ul li.active {
background-color: rgba(0,0,0,0.5);
background-color: rgba(0,0,0,0.1);
}
.list-image, .list-suggested-image{
@@ -1267,7 +1318,8 @@ nav ul li:hover, nav ul li.active {
}
.list-image:after {
font-family: "Material-Design-Icons";
font-family: "Material Icons";
content:"thumb_up";
speak: none;
font-style: normal;
font-weight: normal;
@@ -1275,7 +1327,6 @@ nav ul li:hover, nav ul li.active {
text-transform: none;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
content: "\e686";
color: white;
font-size: -webkit-xxx-large;
position: absolute;
@@ -1292,7 +1343,7 @@ nav ul li:hover, nav ul li.active {
}
.list-suggested-image:after {
font-family: "Material-Design-Icons";
font-family: "Material Icons";
speak: none;
font-style: normal;
font-weight: normal;
@@ -1300,7 +1351,7 @@ nav ul li:hover, nav ul li.active {
text-transform: none;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
content: "\e625";/*"\e800";*/
content: "check";
color:white;
font-size: calc(100vh / 15);
position:absolute;
@@ -1372,11 +1423,13 @@ nav ul li:hover, nav ul li.active {
}
#add-many i{ line-height: 36px !important;}
#results{
background-color: rgba(0,0,0,0.8);
margin-top: -27px;
max-height: calc(100vh - 64px);
overflow: overlay;
overflow-x: hidden;
background-color: rgba(0,0,0,0.8);
position: absolute;
width: 100%;
top: 64px;
max-height: calc(100vh - 64px);
overflow: overlay;
overflow-x: hidden;
}
.result:hover, .hoverResults {
background-color: rgba(0,0,0,0.4);
@@ -1388,9 +1441,9 @@ nav ul li:hover, nav ul li.active {
.list-remove{
width: 70px;
margin-top: -6%;
margin-top: -19px;
font-size: 12px;
height: 20px;
height: 0px;
display: inline-table;
float: right;
padding-left: 10px;
@@ -1398,16 +1451,19 @@ nav ul li:hover, nav ul li.active {
.list-song .card-action{
border-top:none !important;
background: transparent;
}
#del, #del_suggested, #del_user_suggested{
position: absolute;
text-align: right;
right: 0%;
bottom: -31%;
right: -35%;
top: 45%;
height: 19px;
line-height: normal;
padding: 2px 12px;
color: white;
background: transparent;
width: initial;
border-top: 1px solid rgba(160,160,160,0.2);
}
@@ -1559,6 +1615,10 @@ nav ul li:hover, nav ul li.active {
margin-left:10px;
}
#volume-button{
margin-top:2px;
}
#playpause:hover, #volume-button:hover, #fullscreen:hover
{
color:rgba(255,255,255,0.5);
@@ -1569,6 +1629,7 @@ nav ul li:hover, nav ul li.active {
float:right;
color:white;
margin-right:15px;
margin-top: 2px;
}
#duration, #viewers
@@ -1579,14 +1640,22 @@ nav ul li:hover, nav ul li.active {
margin-left:15px;
}
#viewers{
float: right;
#viewers {
float: right;
height: 32px;
line-height: 33px;
display: flex;
align-items: center;
margin: 0px;
padding-right:1%;
}
#play, #pause, #volume-button, #fullscreen
{
font-size:20px;
font-size: 30px;
cursor:pointer;
height: 33px;
line-height: 31px;
}
#volume {
@@ -1685,6 +1754,14 @@ nav ul li:hover, nav ul li.active {
right: 0;
}
#remote-sidebar-buttons-container{
text-align: center;
}
.slider-vol{
display:none !important;
}
#frontpage-viewer-counter{
right: 0px;
width: 62px;
@@ -1780,13 +1857,14 @@ nav ul li:hover, nav ul li.active {
margin-top: inherit;
}
#play, #pause, #volume-button, #fullscreen {
#play, #pause, #volume-button i, #fullscreen i, .castButton-unactive i, .castButton-active i{
font-size: 31px;
font-size: 31px !important;
margin-top: 8px;
}
.castButton, .castButton:active, .castButton:focus, .castButton:hover, .castButton-active, .castButton-active:active, .castButton-active:hover, .castButton-active:focus{
font-size: 28px;
margin: 0 33px 0 0px;
.castButton-unactive, .castButton-active{
margin-right: 10px;
}
#viewers, #volume{
@@ -1868,7 +1946,7 @@ nav ul li:hover, nav ul li.active {
text-shadow: 0px 0px 0px rgba(0, 0, 0, 0.42);
}
.control-list li a{ min-width: 0px; width: 37px; padding: 0 0 0 5px;}
.control-list li a{ min-width: 0px; width: 37px; padding: 0 0 0 0px;}
nav .zbrand{
-webkit-transform:initial;
@@ -1974,6 +2052,11 @@ nav ul li:hover, nav ul li.active {
line-height:21px;
}
.remote-button i{
height: 36px !important;
line-height: 36px !important;
}
#remote-controls {
font-size:50px !important;
}
@@ -1987,8 +2070,16 @@ nav ul li:hover, nav ul li.active {
text-transform: uppercase;
}
#code-link{
height: auto;
height: auto !important;
text-align: center;
display: block !important;
}
.remote-panel p {
padding: 0 42px;
color: #000;
text-align: center;
line-height: initial;
}
@@ -2035,16 +2126,22 @@ nav ul li:hover, nav ul li.active {
}
#volume-control-remote{
float:none;
width:75%;
float: none;
width: 70%;
margin:auto;
margin-top:40px;
margin-left: 10px;
margin-right: 0;
margin-top: 30px;
height: 10px;
border-radius: 4px;
margin-bottom: 20px;
}
#volume-control-remote .ui-slider-range-min{
margin-left:0px;
margin-top:-4px;
margin-top: 0px;
height:10px;
background: black;
}
#volume-control-remote .ui-slider-handle{
@@ -2052,11 +2149,15 @@ nav ul li:hover, nav ul li.active {
margin-top:-3px;
background: #2d2d2d;
border:none;
display: none;
}
.slider-vol{
float: left;
float: right;
color: black;
font-size: 22px;
margin-right: 20px;
margin-top: 6px;
}
.about-remote{

File diff suppressed because one or more lines are too long

View File

@@ -1,103 +0,0 @@
/**
* Copyright 2015 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
(function() {
var nativeAddAll = Cache.prototype.addAll;
var userAgent = navigator.userAgent.match(/(Firefox|Chrome)\/(\d+\.)/);
// Has nice behavior of `var` which everyone hates
if (userAgent) {
var agent = userAgent[1];
var version = parseInt(userAgent[2]);
}
if (
nativeAddAll && (!userAgent ||
(agent === 'Firefox' && version >= 46) ||
(agent === 'Chrome' && version >= 50)
)
) {
return;
}
Cache.prototype.addAll = function addAll(requests) {
var cache = this;
// Since DOMExceptions are not constructable:
function NetworkError(message) {
this.name = 'NetworkError';
this.code = 19;
this.message = message;
}
NetworkError.prototype = Object.create(Error.prototype);
return Promise.resolve().then(function() {
if (arguments.length < 1) throw new TypeError();
// Simulate sequence<(Request or USVString)> binding:
var sequence = [];
requests = requests.map(function(request) {
if (request instanceof Request) {
return request;
}
else {
return String(request); // may throw TypeError
}
});
return Promise.all(
requests.map(function(request) {
if (typeof request === 'string') {
request = new Request(request);
}
var scheme = new URL(request.url).protocol;
if (scheme !== 'http:' && scheme !== 'https:') {
throw new NetworkError("Invalid scheme");
}
return fetch(request.clone());
})
);
}).then(function(responses) {
// If some of the responses has not OK-eish status,
// then whole operation should reject
if (responses.some(function(response) {
return !response.ok;
})) {
throw new NetworkError('Incorrect response status');
}
// TODO: check that requests don't overwrite one another
// (don't think this is possible to polyfill due to opaque responses)
return Promise.all(
responses.map(function(response, i) {
return cache.put(requests[i], response);
})
);
}).then(function() {
return undefined;
});
};
Cache.prototype.add = function add(request) {
return this.addAll([request]);
};
}());

View File

@@ -1 +0,0 @@
!function(a,b,c,d){var e=a(b);a.fn.lazyload=function(f){function j(){var b=0;g.each(function(){var c=a(this);if(!i.skip_invisible||c.is(":visible"))if(a.abovethetop(this,i)||a.leftofbegin(this,i));else if(a.belowthefold(this,i)||a.rightoffold(this,i)){if(++b>i.failure_limit)return!1}else c.trigger("appear"),b=0})}var h,g=this,i={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:b,data_attribute:"original",skip_invisible:!1,appear:null,load:null,placeholder:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"};return f&&(d!==f.failurelimit&&(f.failure_limit=f.failurelimit,delete f.failurelimit),d!==f.effectspeed&&(f.effect_speed=f.effectspeed,delete f.effectspeed),a.extend(i,f)),h=i.container===d||i.container===b?e:a(i.container),0===i.event.indexOf("scroll")&&h.bind(i.event,function(){return j()}),this.each(function(){var b=this,c=a(b);b.loaded=!1,(c.attr("src")===d||c.attr("src")===!1)&&c.is("img")&&c.attr("src",i.placeholder),c.one("appear",function(){if(!this.loaded){if(i.appear){var d=g.length;i.appear.call(b,d,i)}a("<img />").bind("load",function(){var d=c.attr("data-"+i.data_attribute);c.hide(),c.is("img")?c.attr("src",d):c.css("background-image","url('"+d+"')"),c[i.effect](i.effect_speed),b.loaded=!0;var e=a.grep(g,function(a){return!a.loaded});if(g=a(e),i.load){var f=g.length;i.load.call(b,f,i)}}).attr("src",c.attr("data-"+i.data_attribute))}}),0!==i.event.indexOf("scroll")&&c.bind(i.event,function(){b.loaded||c.trigger("appear")})}),e.bind("resize",function(){j()}),/(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion)&&e.bind("pageshow",function(b){b.originalEvent&&b.originalEvent.persisted&&g.each(function(){a(this).trigger("appear")})}),a(c).ready(function(){j()}),this},a.belowthefold=function(c,f){var g;return g=f.container===d||f.container===b?(b.innerHeight?b.innerHeight:e.height())+e.scrollTop():a(f.container).offset().top+a(f.container).height(),g<=a(c).offset().top-f.threshold},a.rightoffold=function(c,f){var g;return g=f.container===d||f.container===b?e.width()+e.scrollLeft():a(f.container).offset().left+a(f.container).width(),g<=a(c).offset().left-f.threshold},a.abovethetop=function(c,f){var g;return g=f.container===d||f.container===b?e.scrollTop():a(f.container).offset().top,g>=a(c).offset().top+f.threshold+a(c).height()},a.leftofbegin=function(c,f){var g;return g=f.container===d||f.container===b?e.scrollLeft():a(f.container).offset().left,g>=a(c).offset().left+f.threshold+a(c).width()},a.inviewport=function(b,c){return!(a.rightoffold(b,c)||a.leftofbegin(b,c)||a.belowthefold(b,c)||a.abovethetop(b,c))},a.extend(a.expr[":"],{"below-the-fold":function(b){return a.belowthefold(b,{threshold:0})},"above-the-top":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-screen":function(b){return a.rightoffold(b,{threshold:0})},"left-of-screen":function(b){return!a.rightoffold(b,{threshold:0})},"in-viewport":function(b){return a.inviewport(b,{threshold:0})},"above-the-fold":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-fold":function(b){return a.rightoffold(b,{threshold:0})},"left-of-fold":function(b){return!a.rightoffold(b,{threshold:0})}})}(jQuery,window,document);

View File

@@ -1 +0,0 @@
!function(){var a=jQuery.event.special,b="D"+ +new Date,c="D"+(+new Date+1);a.scrollstart={setup:function(){var c,d=function(b){var d=this,e=arguments;c?clearTimeout(c):(b.type="scrollstart",jQuery.event.dispatch.apply(d,e)),c=setTimeout(function(){c=null},a.scrollstop.latency)};jQuery(this).bind("scroll",d).data(b,d)},teardown:function(){jQuery(this).unbind("scroll",jQuery(this).data(b))}},a.scrollstop={latency:300,setup:function(){var b,d=function(c){var d=this,e=arguments;b&&clearTimeout(b),b=setTimeout(function(){b=null,c.type="scrollstop",jQuery.event.dispatch.apply(d,e)},a.scrollstop.latency)};jQuery(this).bind("scroll",d).data(c,d)},teardown:function(){jQuery(this).unbind("scroll",jQuery(this).data(c))}}}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
!function(){var e=!0;mobilecheck=function(){var e=!1;return function(t){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0)}(navigator.userAgent||navigator.vendor||window.opera),e},$(document).ready(function(){document.title="Zöff Remote",setTimeout(function(){$("#search").focus()},500);var e={"sync disconnect on unload":!0,secure:!0};"remote.zoff.no"==window.location.hostname?add="https://zoff.no":add="localhost",socket=io.connect(add+":8080",e),id=window.location.pathname.split("/")[1],id&&(id=id.toLowerCase(),t.control()),git_info=$.ajax({type:"GET",url:"https://api.github.com/repos/zoff-music/zoff/commits",async:!1}).responseText,git_info=$.parseJSON(git_info),$("#latest-commit").html("Latest Commit: <br>"+git_info[0].commit.author.date.substring(0,10)+": "+git_info[0].committer.login+"<br><a href='"+git_info[0].html_url+"'>"+git_info[0].sha.substring(0,10)+"</a>: "+git_info[0].commit.message+"<br")}),$("#playbutton").on("click",function(){socket.emit("id",{id:id,type:"play",value:"mock"})}),$("#pausebutton").on("click",function(){socket.emit("id",{id:id,type:"pause",value:"mock"})}),$("#skipbutton").on("click",function(){socket.emit("id",{id:id,type:"skip",value:"mock"})}),$("#remoteform").on("submit",function(){t.control()});var t={control:function(){e?(id||(id=document.getElementById("remoteform").chan.value,window.history.pushState("object or string","Title","/"+id)),document.getElementById("remoteform").chan.value="",e=!1,$(".rc").css("display","block"),$("#remote-text").text("Controlling "+id.toUpperCase()),document.getElementById("search").setAttribute("length","18"),document.getElementById("search").setAttribute("maxlength","18"),$("#forsearch").html("Type new channel name to change to"),$("#volume-control").slider({min:0,max:100,value:100,range:"min",animate:!0,stop:function(e,t){socket.emit("id",{id:id,type:"volume",value:t.value})}})):(socket.emit("id",{id:id,type:"channel",value:$("#search").val().toLowerCase()}),$("#search").val(""))}}}();
!function(){var e=!0;mobilecheck=function(){var e=!1;return function(t){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=!0)}(navigator.userAgent||navigator.vendor||window.opera),e},$(document).ready(function(){document.title="Zöff Remote",setTimeout(function(){$("#search").focus()},500);var e={"sync disconnect on unload":!0,secure:!0};$("#about").modal(),$("#contact").modal(),"remote.zoff.no"==window.location.hostname?add="https://zoff.no":add="localhost",socket=io.connect(add+":8080",e),id=window.location.pathname.split("/")[1],id&&(id=id.toLowerCase(),t.control()),git_info=$.ajax({type:"GET",url:"https://api.github.com/repos/zoff-music/zoff/commits",async:!1}).responseText,git_info=$.parseJSON(git_info),$("#latest-commit").html("Latest Commit: <br>"+git_info[0].commit.author.date.substring(0,10)+": "+git_info[0].committer.login+"<br><a href='"+git_info[0].html_url+"'>"+git_info[0].sha.substring(0,10)+"</a>: "+git_info[0].commit.message+"<br")}),$("#playbutton").on("click",function(){socket.emit("id",{id:id,type:"play",value:"mock"})}),$("#pausebutton").on("click",function(){socket.emit("id",{id:id,type:"pause",value:"mock"})}),$("#skipbutton").on("click",function(){socket.emit("id",{id:id,type:"skip",value:"mock"})}),$("#remoteform").on("submit",function(){t.control()});var t={control:function(){e?(id||(id=document.getElementById("remoteform").chan.value,window.history.pushState("object or string","Title","/"+id)),document.getElementById("remoteform").chan.value="",e=!1,$(".rc").css("display","block"),$("#remote-text").text("Controlling "+id.toUpperCase()),document.getElementById("search").setAttribute("length","18"),document.getElementById("search").setAttribute("maxlength","18"),$("#forsearch").html("Type new channel name to change to"),$("#volume-control").slider({min:0,max:100,value:100,range:"min",animate:!0,stop:function(e,t){socket.emit("id",{id:id,type:"volume",value:t.value})}})):(socket.emit("id",{id:id,type:"channel",value:$("#search").val().toLowerCase()}),$("#search").val(""))}}}();

View File

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 322 KiB

View File

@@ -83,7 +83,15 @@ var Admin = {
}
$(".card-action").removeClass("hide");
$("#admin-lock").removeClass("mdi-action-lock");
$("#admin-lock").addClass("clickable");
$("#admin-lock").html("lock_open");
if(!Helper.mobilecheck()){
$('#admin-lock').tooltip({
delay: 5,
position: "left",
tooltip: "Logout"
});
}
$("#password").val("");
$("#password").attr("placeholder", "Change channel password");
//if(!Helper.mobilecheck()){
@@ -95,8 +103,17 @@ var Admin = {
//$("#wrapper").toggleClass("tabs_height");
//}
if(!Helper.contains($("#admin-lock").attr("class").split(" "), "mdi-action-lock-open"))
$("#admin-lock").addClass("mdi-action-lock-open clickable");
if($("#admin-lock").html() != "lock_open"){
$("#admin-lock").addClass("clickable");
$("#admin-lock").html("lock_open");
if(!Helper.mobilecheck()){
$('#admin-lock').tooltip({
delay: 5,
position: "left",
tooltip: "Logout"
});
}
}
$('ul.playlist-tabs-loggedIn').tabs('select_tab', $(".playlist-tabs li a.active").attr("href").substring(1));
},
@@ -144,8 +161,12 @@ var Admin = {
$("input[name="+names[i]+"]").attr("disabled", true);
}
if(!Helper.contains($("#admin-lock").attr("class").split(" "), "mdi-action-lock")){
$("#admin-lock").addClass("mdi-action-lock");
if($("#admin-lock").html() != "lock"){
$("#admin-lock").removeClass("clickable");
$("#admin-lock").html("lock");
if(!Helper.mobilecheck()){
$('#admin-lock').tooltip('remove');
}
}
if(!Helper.contains($(".playlist-tabs-loggedIn").attr("class").split(" "), "hide")){
@@ -166,7 +187,7 @@ var Admin = {
} else {
$('ul.playlist-tabs').tabs('select_tab', $(".playlist-tabs-loggedIn li a.active").attr("href").substring(1));
}
$("#admin-lock").removeClass("mdi-action-lock-open clickable");
$("#admin-lock").removeClass("clickable");
$("#password").attr("placeholder", "Enter channel password");
//$("#top-button").removeClass("top-button-with-tabs");
},
@@ -200,7 +221,7 @@ var Admin = {
}
if((hasadmin)){
if($(".mdi-action-lock").length === 0) Admin.display_logged_out();
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");

View File

@@ -250,7 +250,7 @@ var Frontpage = {
set_viewers: function(viewers){
//if(viewers > 0){
//var to_add = viewers > 1 ? "listeners" : "listener";
$("#frontpage-viewer-counter").html("<i class='mdi-action-visibility frontpage-viewers'></i>" + viewers);
$("#frontpage-viewer-counter").html("<i class='material-icons frontpage-viewers'>visibility</i>" + viewers);
//}
},
@@ -366,6 +366,10 @@ function initfp(){
setup_playlist_listener();
}
$("#about").modal();
$("#help").modal();
$("#contact").modal();
Helper.log("----");
Helper.log("Sending frontpage_lists");
Helper.log("Socket", socket);

View File

@@ -124,7 +124,7 @@ var List = {
}
});
if($("#wrapper").children().length > List.can_fit && !$("#pageButtons").length){
$('<div id="pageButtons"><span class="first_page_hide btn-flat">|<</span><a class="first_page waves-effect waves-light btn-flat">|<</a><span class="prev_page_hide btn-flat">< prev</span><a class="prev_page waves-effect waves-light btn-flat">< prev</a> <span id="pageNumber" class="btn-flat">1</span> <a class="last_page waves-effect waves-light btn-flat">>|</a><span class="last_page_hide btn-flat">>|</span><a class="next_page waves-effect waves-light btn-flat">next ></a><span class="next_page_hide btn-flat">next ></span></div>').insertAfter("#wrapper");
$('<div id="pageButtons"><span class="first_page_hide btn-flat"><i class="material-icons">first_page</i></span><a class="first_page waves-effect waves-light btn-flat"><i class="material-icons">first_page</i></a><span class="prev_page_hide btn-flat"><i class="material-icons">navigate_before</i> prev</span><a class="prev_page waves-effect waves-light btn-flat"><i class="material-icons">navigate_before</i> prev</a> <span id="pagenumber">1</span> <a class="last_page waves-effect waves-light btn-flat"><i class="material-icons">last_page</i></a><span class="last_page_hide btn-flat"><i class="material-icons">last_page</i></span><a class="next_page waves-effect waves-light btn-flat">next <i class="material-icons">navigate_next</i></a><span class="next_page_hide btn-flat">next <i class="material-icons">navigate_next</i></span></div>').insertAfter("#wrapper");
$(".prev_page").css("display", "none");
$(".first_page").css("display", "none");
$(".next_page_hide").css("display","none");
@@ -136,13 +136,13 @@ var List = {
$(".last_page").removeClass("hide");
}*/
} else if(!$("#pageButtons").length){
$('<div id="pageButtons"><span class="first_page_hide btn-flat">|<</span><a class="first_page waves-effect waves-light btn-flat">|<</a><span class="prev_page_hide btn-flat">< prev</span><a class="prev_page waves-effect waves-light btn-flat">< prev</a> <span id="pageNumber" class="btn-flat">1</span> <a class="last_page waves-effect waves-light btn-flat">>|</a><span class="last_page_hide btn-flat">>|</span><a class="next_page waves-effect waves-light btn-flat">next ></a><span class="next_page_hide btn-flat">next ></span></div>').insertAfter("#wrapper");
$('<div id="pageButtons"><span class="first_page_hide btn-flat"><i class="material-icons">first_page</i></span><a class="first_page waves-effect waves-light btn-flat"><i class="material-icons">first_page</i></a><span class="prev_page_hide btn-flat"><i class="material-icons">navigate_before</i> prev</span><a class="prev_page waves-effect waves-light btn-flat"><i class="material-icons">navigate_before</i> prev</a> <span id="pagenumber">1</span> <a class="last_page waves-effect waves-light btn-flat"><i class="material-icons">last_page</i></a><span class="last_page_hide btn-flat"><i class="material-icons">last_page</i></span><a class="next_page waves-effect waves-light btn-flat">next <i class="material-icons">navigate_next</i></a><span class="next_page_hide btn-flat">next <i class="material-icons">navigate_next</i></span></div>').insertAfter("#wrapper");
$(".prev_page").css("display", "none");
$(".next_page").css("display", "none");
$(".last_page").css("display", "none");
$(".first_page").css("display", "none");
$(".next_page_hide").css("display","inline-block");
$(".prev_page_hide").css("display","inline-block");
$(".next_page_hide").css("display","flex");
$(".prev_page_hide").css("display","flex");
}
List.dynamicContentPage(-10);
@@ -160,15 +160,15 @@ var List = {
List.empty = true;
$("#wrapper").append("<span id='empty-channel-message'>The playlist is empty.</span>");
if(!$("#pageButtons").length){
$('<div id="pageButtons"><span class="first_page_hide btn-flat">|<</span><a class="first_page waves-effect waves-light btn-flat">|<</a><span class="prev_page_hide btn-flat">< prev</span><a class="prev_page waves-effect waves-light btn-flat">< prev</a> <span id="pageNumber" class="btn-flat">1</span> <a class="last_page waves-effect waves-light btn-flat">>|</a><span class="last_page_hide btn-flat">>|</span><a class="next_page waves-effect waves-light btn-flat">next ></a><span class="next_page_hide btn-flat">next ></span></div>').insertAfter("#wrapper");
$('<div id="pageButtons"><span class="first_page_hide btn-flat"><i class="material-icons">first_page</i></span><a class="first_page waves-effect waves-light btn-flat"><i class="material-icons">first_page</i></a><span class="prev_page_hide btn-flat"><i class="material-icons">navigate_before</i> prev</span><a class="prev_page waves-effect waves-light btn-flat"><i class="material-icons">navigate_before</i> prev</a> <span id="pagenumber">1</span> <a class="last_page waves-effect waves-light btn-flat"><i class="material-icons">last_page</i></a><span class="last_page_hide btn-flat"><i class="material-icons">last_page</i></span><a class="next_page waves-effect waves-light btn-flat">next <i class="material-icons">navigate_next</i></a><span class="next_page_hide btn-flat">next <i class="material-icons">navigate_next</i></span></div>').insertAfter("#wrapper");
}
$(".prev_page").css("display", "none");
$(".next_page").css("display", "none");
$(".last_page").css("display", "none");
$(".last_page_hide").css("display", "inline-block");
$(".last_page_hide").css("display", "flex");
$(".first_page").css("display", "none");
$(".next_page_hide").css("display","inline-block");
$(".prev_page_hide").css("display","inline-block");
$(".next_page_hide").css("display","flex");
$(".prev_page_hide").css("display","flex");
}
$("#settings").css("visibility", "visible");
$("#settings").css("opacity", "1");
@@ -182,16 +182,16 @@ var List = {
List.page = page;
$("#wrapper").children().slice(List.page, List.page + List.can_fit).show();
if(List.page > 0 && $(".prev_page").css("display") == "none"){
$(".prev_page").css("display", "inline-block");
$(".prev_page").css("display", "flex");
$(".prev_page_hide").css("display", "none");
$(".first_page").css("display", "inline-block");
$(".first_page").css("display", "flex");
$(".first_page_hide").css("display", "none");
}
if(List.page + List.can_fit >= $("#wrapper").children().length){
$(".next_page_hide").css("display", "inline-block");
$(".next_page_hide").css("display", "flex");
$(".next_page").css("display", "none");
$(".last_page_hide").css("display", "inline-block");
$(".last_page_hide").css("display", "flex");
$(".last_page").css("display", "none");
}
@@ -205,16 +205,16 @@ var List = {
List.page = List.page + List.can_fit;
$("#wrapper").children().slice(List.page, List.page + List.can_fit).show();
if(List.page > 0 && $(".prev_page").css("display") == "none"){
$(".prev_page").css("display", "inline-block");
$(".prev_page").css("display", "flex");
$(".prev_page_hide").css("display", "none");
$(".first_page").css("display", "inline-block");
$(".first_page").css("display", "flex");
$(".first_page_hide").css("display", "none");
}
if(List.page + List.can_fit >= $("#wrapper").children().length){
$(".next_page_hide").css("display", "inline-block");
$(".next_page_hide").css("display", "flex");
$(".next_page").css("display", "none");
$(".last_page_hide").css("display", "inline-block");
$(".last_page_hide").css("display", "flex");
$(".last_page").css("display", "none");
}
//$("#wrapper").scrollTop(0);
@@ -224,16 +224,16 @@ var List = {
$("#wrapper").children().slice(List.page, List.page + List.can_fit).show();
if(List.page > 0 && $(".prev_page").css("display") == "none"){
$(".prev_page").css("display", "inline-block");
$(".prev_page").css("display", "flex");
$(".prev_page_hide").css("display", "none");
$(".first_page").css("display", "inline-block");
$(".first_page").css("display", "flex");
$(".first_page_hide").css("display", "none");
}
if(List.page + List.can_fit >= $("#wrapper").children().length){
$(".next_page_hide").css("display", "inline-block");
$(".next_page_hide").css("display", "flex");
$(".next_page").css("display", "none");
$(".last_page_hide").css("display", "inline-block");
$(".last_page_hide").css("display", "flex");
$(".last_page").css("display", "none");
}
} else if(way==-10){
@@ -242,21 +242,21 @@ var List = {
$("#wrapper").children().slice(List.page, List.page + List.can_fit).show();
if(List.page == 0 && $(".prev_page").css("display") != "none"){
$(".prev_page").css("display", "none");
$(".prev_page_hide").css("display", "inline-block");
$(".prev_page_hide").css("display", "flex");
$(".first_page").css("display", "none");
$(".first_page_hide").css("display", "inline-block");
$(".first_page_hide").css("display", "flex");
} else if($(".prev_page").css("display") == "none"){
$(".prev_page_hide").css("display", "inline-block");
$(".first_page_hide").css("display", "inline-block");
$(".prev_page_hide").css("display", "flex");
$(".first_page_hide").css("display", "flex");
} else {
$(".prev_page_hide").css("display", "none");
$(".first_page_hide").css("display", "none");
}
if(List.page + List.can_fit < $("#wrapper").children().length){
$(".next_page_hide").css("display", "none");
$(".next_page").css("display", "inline-block");
$(".next_page").css("display", "flex");
$(".last_page_hide").css("display", "none");
$(".last_page").css("display", "inline-block");
$(".last_page").css("display", "flex");
}
} else {
$("#wrapper").children().slice(List.page - List.can_fit, List.page).show();
@@ -265,12 +265,12 @@ var List = {
//$("#wrapper").scrollTop(0);
if(List.page == 0 && $(".prev_page").css("display") != "none"){
$(".prev_page").css("display", "none");
$(".prev_page_hide").css("display", "inline-block");
$(".prev_page_hide").css("display", "flex");
$(".first_page").css("display", "none");
$(".first_page_hide").css("display", "inline-block");
$(".first_page_hide").css("display", "flex");
} else if($(".prev_page").css("display") == "none"){
$(".prev_page_hide").css("display", "inline-block");
$(".first_page_hide").css("display", "inline-block");
$(".prev_page_hide").css("display", "flex");
$(".first_page_hide").css("display", "flex");
} else {
$(".prev_page_hide").css("display", "none");
$(".first_page_hide").css("display", "none");
@@ -278,9 +278,9 @@ var List = {
if(List.page + List.can_fit < $("#wrapper").children().length){
$(".next_page_hide").css("display", "none");
$(".next_page").css("display", "inline-block");
$(".next_page").css("display", "flex");
$(".last_page_hide").css("display", "none");
$(".last_page").css("display", "inline-block");
$(".last_page").css("display", "flex");
}
}
$("#pageNumber").html((List.page / List.can_fit) + 1);
@@ -306,9 +306,9 @@ var List = {
if($("#wrapper").children().length > List.page + List.can_fit){
$(".next_page_hide").css("display", "none");
$(".next_page").removeClass("hide");
$(".next_page").css("display", "inline-block");
$(".next_page").css("display", "flex");
} else {
$(".next_page_hide").css("display", "inline-block");
$(".next_page_hide").css("display", "flex");
$(".next_page").css("display", "none");
}
}
@@ -333,14 +333,14 @@ var List = {
if(List.page >= $("#wrapper").children().length - 1){
List.dynamicContentPage(-1);
$(".next_page_hide").css("display", "inline-block");
$(".next_page_hide").css("display", "flex");
$(".next_page").css("display", "none");
$(".last_page_hide").css("display", "inline-block");
$(".last_page_hide").css("display", "flex");
$(".last_page").css("display", "none");
} else if(List.page + List.can_fit + 1 >= $("#wrapper").children().length - 1){
$(".next_page_hide").css("display", "inline-block");
$(".next_page_hide").css("display", "flex");
$(".next_page").css("display", "none");
$(".last_page_hide").css("display", "inline-block");
$(".last_page_hide").css("display", "flex");
$(".last_page").css("display", "none");
}
setTimeout(function()
@@ -355,7 +355,7 @@ var List = {
if(List.page >= $("#wrapper").children().length){
List.dynamicContentPage(-1);
} else if(List.page + List.can_fit >= $("#wrapper").children().length){
$(".next_page_hide").css("display", "inline-block");
$(".next_page_hide").css("display", "flex");
$(".next_page").css("display", "none");
}*/
if(chromecastAvailable){
@@ -385,7 +385,7 @@ var List = {
$("#suggested-"+deleted).remove();
if(List.page + List.can_fit < $("#wrapper").children().length + 1){
//$(".next_page_hide").css("display", "none");
//$(".next_page").css("display", "inline-block");
//$(".next_page").css("display", "flex");
}
if(List.page >= $("#wrapper").children().length){
List.dynamicContentPage(-1);

View File

@@ -162,6 +162,9 @@ function init(){
$('.collapsible').collapsible({
accordion : true // A setting that changes the collapsible behavior to expandable instead of the default accordion style
});
$("#help").modal();
$("#contact").modal();
$("#embed").modal();
spotify_is_authenticated(spotify_authenticated);
@@ -259,7 +262,7 @@ function init(){
$("#search").attr("placeholder", "Find song on YouTube...");
if(!/chrom(e|ium)/.test(navigator.userAgent.toLowerCase()) && !Helper.mobilecheck()){
$(".castButton").css("display", "none");
$(".castButton-unactive").css("display", "none");
}
if(chromecastAvailable){
@@ -285,7 +288,7 @@ initializeCastApi = function() {
receiverApplicationId: "E6856E24",
autoJoinPolicy: chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED});
var context = cast.framework.CastContext.getInstance();
$(".castButton").css("display", "block");
//$(".castButton-unactive").css("display", "block");
context.addEventListener(
cast.framework.CastContextEventType.SESSION_STATE_CHANGED,
function(event) {
@@ -333,14 +336,18 @@ initializeCastApi = function() {
break;
}
});
Helper.log(cast.framework.CastContext.getInstance().getCastState());
if(cast.framework.CastContext.getInstance().getCastState() == "NO_DEVICES_AVAILABLE"){
$(".castButton").css("display", "none");
}
var cast_state = cast.framework.CastContext.getInstance();
cast_state.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED, function(event){
if(event.castState == "NOT_CONNECTED"){
$(".castButton-unactive").css("display", "block");
} else if(event.castState == "NO_DEVICES_AVAILABLE"){
$(".castButton-unactive").css("display", "none");
}
});
};
function hide_native(way){
$(".castButton").toggleClass("hide");
$(".castButton-unactive").toggleClass("hide");
$(".castButton-active").toggleClass("hide");
if(way == 1){
$("#duration").toggleClass("hide");
@@ -600,12 +607,12 @@ $(document).keyup(function(e) {
if(Helper.contains($("#song-title").attr("class").split(" "), "hide"))
$("#song-title").toggleClass("hide");
if($("#search-btn i").attr('class') == "mdi-navigation-close")
if($("#search-btn i").html() == "close")
{
$("#search-btn i").toggleClass("mdi-navigation-close");
$("#search-btn i").toggleClass("mdi-action-search");
//$("#search-btn i").html("mdi-navigation-close");
$("#search-btn i").html("search");
}
if(!Helper.contains($("#search-container").attr("class").split(" "), "hide")){
if(!Helper.contains($(".search-container").attr("class").split(" "), "hide")){
$("#results").toggleClass("hide");
}
}
@@ -633,13 +640,17 @@ $(document).on("click", "#playpause-overlay", function(){
}
});
$(document).on("click", ".castButton-unactive", function(e){
$(".castButton").trigger("click");
});
$(document).on("click", ".castButton-active", function(e){
e.preventDefault();
var castSession = cast.framework.CastContext.getInstance().getCurrentSession();
// End the session and pass 'true' to indicate
// that receiver application should be stopped.
castSession.endSession(true);
})
});
$(document).on('click', '#cookieok', function() {
$(this).fadeOut(function(){

View File

@@ -18,7 +18,8 @@ var Mobile_remote = {
$("#remote_channel").val("");
$("#remote_channel").attr("placeholder", "Change channel");
$("#remote_header").html("Controlling " + id);
$("#volume-control-remote").css("display", "block");
$("#volume-control-remote").css("display", "inline-block");
$(".slider-vol").attr("style", "display: inline-block !important");
},
set_channel: function(channel_name) {

View File

@@ -281,7 +281,7 @@ var Player = {
getTitle: function(titt, v)
{
var outPutWord = "<i class='mdi-action-visibility'></i>"//v > 1 ? "viewers" : "viewer";
var outPutWord = "<i class='material-icons'>visibility</i>"//v > 1 ? "viewers" : "viewer";
var title = decodeURIComponent(titt);
if(window.location.pathname != "/"){
var elem = document.getElementById('song-title');

View File

@@ -13,6 +13,10 @@ $(document).ready(function (){
'sync disconnect on unload':true,
'secure': true
};
$("#about").modal();
$("#contact").modal();
if(window.location.hostname == "remote.zoff.no") add = "https://zoff.no";
else add = "localhost";
socket = io.connect(add + ':8080', connection_options);

View File

@@ -12,8 +12,12 @@ var Search = {
$("#song-title").toggleClass("hide");
//$("#results").toggleClass("hide");
$("#results").empty();
$("#search-btn i").toggleClass("mdi-navigation-close");
$("#search-btn i").toggleClass("mdi-action-search");
if($("#search-btn i").html() == "close"){
$("#search-btn i").html("search");
} else {
$("#search-btn i").html("close");
}
//$("#search-btn i").html("search");
$("#search").focus();
},

View File

@@ -75,25 +75,25 @@
</li>
<li>
<a class="nav-btn" href="#find" id="search-btn">
<i class="mdi-action-search"></i>
<i class="material-icons">search</i>
<span class="hover-text">Find</span>
</a>
</li>
<li>
<a class="nav-btn" href="#skip" id="skip">
<i class="mdi-av-skip-next"></i>
<i class="material-icons">skip_next</i>
<span class="hover-text">Skip</span>
</a>
</li>
<li>
<a class="nav-btn hide-on-small-only" href="#stir" id="shuffle">
<i class="mdi-av-shuffle"></i>
<i class="material-icons">shuffle</i>
<span class="hover-text">Stir</span>
</a>
</li>
<li>
<a class="nav-btn" href="#settings" data-activates="settings-bar" id="settings">
<i class="mdi-image-dehaze"></i>
<i class="material-icons">menu</i>
<span class="hover-text">Conf</span>
</a>
</li>
@@ -111,7 +111,7 @@
<span class="result_info"></span>
<div class="waves-effect waves-orange btn-flat" id="add-many" title="Add several videos">
<i class="mdi-av-playlist-add"></i>
<i class="material-icons">playlist_add</i>
</div>
</div>
</div>
@@ -125,7 +125,7 @@
</div>
</nav>
</div>
<div id="help" class="modal">
<div id="help" class="modal modal-fixed-footer">
<div class="modal-content">
<h4>So you need help?</h4>
<p>When listening on a channel, there are some different buttons you can click.</p>
@@ -175,7 +175,7 @@
<div id="main_components">
<div id="player_overlay" class="hide valign-wrapper">
<div id="playing_on"><div id="chromecast_icon">
<i class="mdi-hardware-cast-connected"></i>
<i class="material-icons">cast</i>
</div>
<div id="chromecast_text"></div>
</div>
@@ -184,35 +184,39 @@
</div>
<div id="player_overlay_controls" class="hide valign-wrapper">
<div id="playpause-overlay" class="valign center-align">
<i id="play-overlay" class="mdi-av-play-arrow hide"></i>
<i id="pause-overlay" class="mdi-av-pause"></i>
<i id="play-overlay" class="material-icons hide">play_arrow</i>
<i id="pause-overlay" class="material-icons">pause</i>
</div>
<div id="volume-button-overlay">
<i id="v-mute-overlay" class="mdi-av-volume-off"></i>
<i id="v-low-overlay" class="mdi-av-volume-mute"></i>
<i id="v-medium-overlay" class="mdi-av-volume-down"></i>
<i id="v-full-overlay" class="mdi-av-volume-up"></i>
<i id="v-mute-overlay" class="material-icons">volume_off</i>
<i id="v-low-overlay" class="material-icons">volume_mute</i>
<i id="v-medium-overlay" class="material-icons">volume_down</i>
<i id="v-full-overlay" class="material-icons">volume_up</i>
</div>
</div>
</div>
<div id="controls" class="noselect">
<div id="playpause">
<i id="play" class="mdi-av-play-arrow hide"></i>
<i id="pause" class="mdi-av-pause"></i>
<i id="play" class="material-icons hide">play_arrow</i>
<i id="pause" class="material-icons">pause</i>
</div>
<div id="duration"></div>
<div id="fullscreen">
<i class="mdi-navigation-fullscreen"></i>
<i class="material-icons">fullscreen</i>
</div>
<button class="castButton mdi-hardware-cast tooltipped" style="" data-position="top" data-delay="5" data-tooltip="Cast Zöff to TV" is="google-cast-button">
<button class="castButton-unactive tooltipped" style="display:none;" data-position="top" data-delay="5" data-tooltip="Cast Zöff to TV">
<i class="material-icons">cast</i>
</button>
<button class="castButton-active hide mdi-hardware-cast-connected tooltipped" data-position="top" data-delay="5" data-tooltip="Stop casting" >
<button class="castButton" is="google-cast-button">
</button>
<button class="castButton-active hide tooltipped" data-position="top" data-delay="5" data-tooltip="Stop casting" >
<i class="material-icons">cast_connected</i>
</button>
<div id="volume-button">
<i id="v-mute" class="mdi-av-volume-off"></i>
<i id="v-low" class="mdi-av-volume-mute"></i>
<i id="v-medium" class="mdi-av-volume-down"></i>
<i id="v-full" class="mdi-av-volume-up"></i>
<i id="v-mute" class="material-icons">volume_off</i>
<i id="v-low" class="material-icons">volume_mute</i>
<i id="v-medium" class="material-icons">volume_down</i>
<i id="v-full" class="material-icons">volume_up</i>
</div>
<div id="volume"></div>
<div id="viewers" data-position="top" data-delay="5" class="tooltipped" data-tooltip="Viewers"></div>
@@ -223,11 +227,11 @@
<div id="playlist" class="col s12 m3">
<div id="top-button" title="Scroll to the top" class="rounded-bottom hide top-button-with-tabs hide-on-small-only">Top</div>
<div id="bottom-button" title="Scroll to the bottom" class="rounded-top hide hide-on-small-only">Bottom</div>
<ul class="tabs playlist-tabs" style="width:96%">
<ul class="tabs playlist-tabs 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</a></li>
</ul>
<ul class="tabs playlist-tabs-loggedIn hide" style="width: 96%;">
<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</a></li>
<li class="tab col s3"><a class="playlist-tab-links chat-link truncate" href="#chat">Chat</a></li>
@@ -274,7 +278,7 @@
<!--<ul id="chat inherit-height">-->
<div class="row inherit-height">
<div class="col s12">
<ul class="tabs chatTabs">
<ul class="tabs chatTabs tabs-fixed-width">
<li class="tab col s3 chat-tab-li"><a class="active chat-tab truncate" href="#channelchat"><?php echo $list; ?></a></li>
<li class="tab col s3 chat-tab-li"><a class="chat-tab" href="#all_chat">All</a></li>
</ul>

View File

@@ -14,11 +14,11 @@
<a href="//zoff.no" class="brand-logo hide-on-med-and-up">Zöff</a>
<ul class="right hide-on-med-and-down">
<li><a class="waves-effect green" title="Remote control a Zöff player" href="https://remote.zoff.no">Remote</a></li>
<li><a class="modal-trigger waves-effect waves-orange" onclick="$('#about').openModal()">About</a></li>
<li><a class="modal-trigger waves-effect waves-orange" onclick="$('#about').modal('open')">About</a></li>
</ul>
</div>
</nav>
<div id="about" class="modal">
<div id="about" class="modal modal-fixed-footer">
<div class="modal-content">
<h4>About</h4>
<p>Zöff is a shared (free) YouTube based radio service, built upon the YouTube API. <br><br>
@@ -76,17 +76,17 @@
<div class="rc" id="remote-controls">
<a id="playbutton" class="remote-button chan-link waves-effect btn green">
<i id="remote_play" class="mdi-av-play-arrow"></i>
<i id="remote_play" class="material-icons">play_arrow</i>
</a>
<a id="pausebutton" class="remote-button chan-link waves-effect btn gray">
<i id="remote_pause" class="mdi-av-pause"></i>
<i id="remote_pause" class="material-icons">pause</i>
</a>
<a id="skipbutton" class="remote-button chan-link waves-effect btn blue">
<i id="remote_skip" class="mdi-av-skip-next"></i>
<i id="remote_skip" class="material-icons">skip_next</i>
</a>
</div>
<i class="mdi-av-volume-up slider-vol rc"></i>
<i class="material-icons slider-vol rc">volume_up</i>
<div class="rc" id="volume-control" title="Volume"></div>
</div>
@@ -94,7 +94,7 @@
<div class="section about-remote">
<b>Here you can control another Zöff player from any device.</b>
<br>
To find the ID of your player, click the Conf <i class="mdi-action-settings"></i> icon on the top right of the player page, then "Remote Control".
To find the ID of your player, click the Conf <i class="material-icons">menu</i> icon on the top right of the player page, then "Remote Control".
<br>You can either scan the QR code or type the ID manually.
</div>
</main>

View File

@@ -77,18 +77,18 @@
</p>
<ul id="footer-buttons">
<li>
<a class="modal-trigger waves-effect cyan darken-2 btn help-button-footer" title="Need help with the site?" onclick="$('#help').openModal()">
<i class="mdi-action-info left footer-button-icon"></i>HELP
<a class="modal-trigger waves-effect cyan darken-2 btn help-button-footer" title="Need help with the site?" onclick="$('#help').modal('open')">
<i class="material-icons left footer-button-icon">help_outline</i>HELP
</a>
</li>
<li>
<a class="modal-trigger waves-effect blue-grey darken-2 btn help-button-footer hide-on-small-only" id="embed-button" title="Want to embed this channel?" onclick="$('#embed').openModal()">
<i class="mdi-image-navigate-before left footer-button-icon left-embed"></i><i class="mdi-image-navigate-next left footer-button-icon right-embed"></i>EMBED
<a class="modal-trigger waves-effect blue-grey darken-2 btn help-button-footer hide-on-small-only" id="embed-button" title="Want to embed this channel?" onclick="$('#embed').modal('open')">
<i class="material-icons left footer-button-icon">code</i>EMBED
</a>
</li>
<li>
<a class="modal-trigger waves-effect red darken-2 btn help-button-footer" id="contact-button" title="Contact us" onclick="$('#contact').openModal()">
<i class="mdi-communication-email left footer-button-icon"></i>CONTACT
<a class="modal-trigger waves-effect red darken-2 btn help-button-footer" id="contact-button" title="Contact us" onclick="$('#contact').modal('open')">
<i class="material-icons left footer-button-icon">email</i>CONTACT
</a>
</li>
</ul>
@@ -114,7 +114,7 @@
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="JEXDYP59N5VWE">
<a title="Like what we made? Help us by donating (a) beer!" class="waves-effect waves-light btn orange light-blue share" onclick="document.getElementById('donate_form').submit();">
<i class="mdi-action-payment left footer-button-icon"></i>Donate
<i class="material-icons left footer-button-icon">payment</i>Donate
</a>
</form>
<p class="hide-on-small-only">

View File

@@ -24,11 +24,11 @@ if(isset($_GET['chan'])){
<ul class="right hide-on-med-and-down">
<li><a class="header-buttons waves-effect waves-cyan" id="offline-mode" title="Offline mode" href="#">Private</a></li>
<li><a class="header-buttons waves-effect waves-green" title="Remote control a Zöff player" href="https://remote.zoff.no">Remote</a></li>
<li><a class="header-buttons modal-trigger waves-effect waves-orange" onclick="$('#about').openModal()">About</a></li>
<li><a class="header-buttons modal-trigger waves-effect waves-orange" onclick="$('#about').modal('open')">About</a></li>
</ul>
</div>
</nav>
<div id="about" class="modal">
<div id="about" class="modal modal-fixed-footer">
<div class="modal-content">
<h4>About</h4>
<p>Zöff is a shared (free) YouTube based radio service, built upon the YouTube API. <br><br>
@@ -49,7 +49,7 @@ if(isset($_GET['chan'])){
<a href="#" class="modal-action modal-close waves-effect waves-green btn-flat">Close</a>
</div>
</div>
<div id="donation" class="modal">
<div id="donation" class="modal modal-fixed-footer">
<div class="modal-content">
<h4>Thanks!</h4>
<p>Thanks for your donation, we love you &lt;3
@@ -63,7 +63,7 @@ if(isset($_GET['chan'])){
<a href="#" class="modal-action modal-close waves-effect waves-green btn-flat">I'm awesome! (Close)</a>
</div>
</div>
<div id="help" class="modal">
<div id="help" class="modal modal-fixed-footer">
<div class="modal-content">
<h4>So you need help?</h4>
<p>At the center of the site, you'll see a input field. This is meant to navigate to new or existing channels. If you input something here that doesn't exist, a new channel will be create at the blink of an eye! Remember to put a password on the list you've created, so no one else takes it from you! (It's on a first come, first serve basis). When you're ready to proceed, just click the listen button!</p>
@@ -143,7 +143,7 @@ if(isset($_GET['chan'])){
<a class="chan-link">
<div class="chan-bg card-image cardbg"></div>
<div class="card-content">
<i class="mdi-action-star-rate pin"></i>
<i class="material-icons pin">star_rate</i>
<p class="left-align">
<span class="chan-name flow-text truncate"></span>
<br>

View File

@@ -21,6 +21,7 @@
<meta property="fb:app_id" content="1581693815380949" />
<link rel="manifest" href="/manifest.json">
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.min.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link type="text/css" rel="stylesheet" href="/public/css/materialize.min.css" />
<link rel="stylesheet" type="text/css" href="/public/css/style.css" title="Default" />
<link rel="icon" id="favicon" type="image/png" href="/public/images/favicon.png"/>

View File

@@ -1,19 +1,19 @@
<li class="no-padding">
<ul class="collapsible collapsible-accordion">
<div class="nav-btn close-settings clickable" title="Close" id="closeSettings">
<i class="mdi-navigation-close auto-margin"></i>
<i class="material-icons auto-margin">close</i>
</div>
<li>
<a class="col s9 collapsible-header bold waves-effect admin-settings">
Channel Settings
<i class="mdi-image-tune"></i>
<i class="material-icons">tune</i>
</a>
<div class="collapsible-body">
<form action="#" id="adminForm" onsubmit="return false;">
<ul>
<li class="white-bg">
<div class="input-field field-settings">
<i id="admin-lock" class="mdi-action-lock" title="Click to log out"></i>
<i id="admin-lock" class="material-icons">lock</i>
<input placeholder="Enter channel password" id="password" type="password" class="validate" />
</div>
</li>
@@ -102,7 +102,7 @@
<ul class="collapsible collapsible-accordion">
<li>
<a class="collapsible-header bold waves-effect">Remote Control
<i class="mdi-action-settings-remote"></i>
<i class="material-icons">settings_remote</i>
</a>
<div class="collapsible-body">
<ul>
@@ -115,14 +115,15 @@
<input name="remote_switch" type="checkbox" class="remote_switch_class" checked /><span class="lever"></span>
Enabled
</label>
</div>
<a id="code-link" target="_blank">
</div>
<div><a id="code-link" target="_blank">
<img id="code-qr" alt="QR code for control" title="Link to control this Zöff player" src="https://chart.googleapis.com/chart?chs=221x221&amp;cht=qr&amp;choe=UTF-8&amp;chld=L%7C1&amp;chl=http://zoff.no" />
<h4 id="code-text">ABBADUR</h4>
</a>
<a>
<h4 id="code-text">ABBADUR</h4>
</a></div>
<p>
You can control this Zöff instance from another device by going to <b>https://remote.zoff.no/</b>
</a>
</p>
</li>
</ul>
</div>
@@ -134,13 +135,13 @@
<ul class="collapsible collapsible-accordion">
<li>
<a class="collapsible-header bold waves-effect">Private Mode
<i class="mdi-action-visibility-off"></i>
<i class="material-icons">visibility_off</i>
</a>
<div class="collapsible-body">
<ul>
<li>
<span class="switch-text">
Enable Local
Private Mode
</span>
<div class="switch"><label>
Disabled
@@ -162,7 +163,7 @@
<ul class="collapsible collapsible-accordion">
<li>
<a class="collapsible-header bold waves-effect import-a">Remote Controller
<i class="mdi-action-settings-remote"></i>
<i class="material-icons">settings_remote</i>
</a>
<div class="collapsible-body">
<ul id="remote-mobile-container">
@@ -183,16 +184,18 @@
/>
</div>
</form>
<button id="playbutton_remote" class="remote-button waves-effect btn green" disabled>
<i id="remote_play" class="mdi-av-play-arrow"></i>
</button>
<button id="pausebutton_remote" class="remote-button waves-effect btn gray" disabled>
<i id="remote_pause" class="mdi-av-pause"></i></button>
<button id="skipbutton_remote" class="remote-button waves-effect btn blue" disabled>
<i id="remote_skip" class="mdi-av-skip-next"></i>
</button>
<i class="mdi-av-volume-up slider-vol"></i>
<div id="remote-sidebar-buttons-container">
<button id="playbutton_remote" class="remote-button waves-effect btn green" disabled>
<i id="remote_play" class="material-icons">play_arrow</i>
</button>
<button id="pausebutton_remote" class="remote-button waves-effect btn gray" disabled>
<i id="remote_pause" class="material-icons">pause</i></button>
<button id="skipbutton_remote" class="remote-button waves-effect btn blue" disabled>
<i id="remote_skip" class="material-icons">skip_next</i>
</button>
</div>
<div class="" id="volume-control-remote" title="Volume"></div>
<i class="material-icons slider-vol">volume_up</i>
</li>
</ul>
</div>
@@ -204,7 +207,7 @@
<ul class="collapsible collapsible-accordion">
<li>
<a class="collapsible-header bold waves-effect import-a">Import Playlist
<i class="mdi-hardware-keyboard-arrow-down"></i>
<i class="material-icons">keyboard_arrow_down</i>
</a>
<div class="collapsible-body">
<ul>
@@ -216,7 +219,7 @@
</div>
<div class="input-field field-settings youtube_clicked">
<form action="#" id="listImport">
<i class="mdi-av-playlist-add import-icon"></i>
<i class="material-icons import-icon">playlist_add</i>
<input title="Input YouTube-playlist url here!" placeholder="Enter YouTube-list URL" id="import" type="text" class="validate" autocomplete="off" />
<div class="valign playlist_loader_padding">
<div id="playlist_loader" class="preloader-wrapper small active hide">
@@ -280,10 +283,10 @@
</div>
<div class="input-field field-settings spotify_authenticated">
<form action="#" id="listImportSpotify">
<i class="mdi-av-playlist-add import-icon"></i>
<i class="material-icons import-icon">playlist_add</i>
<input title="Input Spotify-playlist url here!" placeholder="Enter Spotify-list url" id="import_spotify" type="text" class="validate" autocomplete="off" />
<div class="valign playlist_loader_padding">
<div id="playlist_loader_spotify" class="preloader-wrapper small active hide">
<div id="playlist_loader_spotify" class="valign playlist_loader_padding hide">
<div class="preloader-wrapper small active">
<div class="spinner-layer spinner-blue">
<div class="circle-clipper left">
<div class="circle"></div>
@@ -343,7 +346,7 @@
<div class="extra-add-text truncate"></div>
<a href="#" class="waves-effect red lighten btn right extra-button extra-button-delete">X</a>
<a href="#" class="waves-effect green lighten btn right extra-button extra-button-search">
<i class="mdi-action-search search-extra"></i></a>
<i class="material-icons search-extra">search</i></a>
</li>
</ul>
</li>
@@ -357,7 +360,7 @@
<ul class="collapsible collapsible-accordion white-bg">
<li>
<a class="collapsible-header bold waves-effect export-a">Export Playlist
<i class="mdi-hardware-keyboard-arrow-up"></i>
<i class="material-icons">keyboard_arrow_up</i>
</a>
<div class="collapsible-body">
<ul>
@@ -367,8 +370,6 @@
<img src="/public/images/youtube.png" class="youtube_logo" alt="Youtube Logo" />
</a>
</div>
<div class="input-field field-settings">
</div>
</li>
<li class="white-bg">
<div class="input-field field-settings spotify_export_button export-buttons">