//INDEX function indexPage() { alloweUsers = [315,7268,6494,1766,7221,4767,1738,7147,8000,7155,7353,190,35,6067,8483,395,8985,6329,9755,1156,370]; $.when( getUser(), getProjects() ).done(function(user, projects) { user = user[0]; if( $.inArray(user.data[0].id, alloweUsers) > -1 ) { console.log("Usuario permitido") }else{ window.location.replace(window.location.protocol+"/error.html"); } var userName = user.data[0].username; $('.user li:eq(0)').html(userName); document.querySelector('#projects > input').addEventListener("keydown", function(event) { // if (event.keyCode === 13) alert(); }) if(projects[0] && projects[0].data.length > 0){ //var projectsObj = []; if(localStorage.getItem('project_id') === null){ localStorage.setItem('project_id', projects[0].data[0].project.id); render(decodeURI(window.location.hash)); } $.each(projects[0].data, function(key, project){ var strProject = '
  • '+project.project.name+'
  • '; $("#projects ul").append(strProject); if(String(project.project.id) === localStorage.getItem('project_id')){ $('#projects input').val(project.project.name); } // projectsObj.push({'id': project.project.id, 'name': project.project.name}); }); // Añadimos proyectos a localStorage // localStorage.setItem('projects', JSON.stringify(projectsObj)); } $("#projects button").click(function(){ $(this).parent().find("ul").css("display","flex"); $trigger = $(this).attr('class'); }); $('.user li:eq(1)').click(function(){ $.ajax({ type: "GET", timeout: 30000, url: 'https://accounts.admira.com/login/close?access_token=' + localStorage.getItem('token') + '&client_id='+client_sso_id + '&redirect_uri='+callback + '&response_type=code&scope=account.profile', xhrFields: { withCredentials: true }, success: function(data){ localStorage.clear(); location.reload(); console.log("logout"); } }); }); $('#projects li').click(function(){ localStorage.setItem('idPlayer', ""); localStorage.setItem('namePlayer', ""); localStorage.setItem('idAlbum', ""); localStorage.setItem('nameAlbum', ""); localStorage.setItem('idSchedule', ""); localStorage.setItem('nameSchedule', ""); var project = $(this).data('id'); localStorage.setItem('project_id',project); // location.reload(); switch (window.location.hash){ default: case "#player-list": case "#player-page": window.location.hash = '#player-list'; break; case "#album-list": case "#album-page": window.location.hash = '#album-list'; break; case "#schedule-list": case "#schedule-page": window.location.hash = '#schedule-list'; break; } $(window).trigger('hashchange'); $(this).parent().html(""); indexPage(); }); $('#brand').click(function(){ window.location = ''; }) $('#projects input').on("keyup", function () { var searchText = $(this).val(); searchText = searchText.toLowerCase(); searchText = searchText.replace(/\s+/g, ''); $('#projects li').each(function(){ var currentLiText = $(this).html(); if (((currentLiText.toLowerCase()).replace(/\s+/g, '')).indexOf(searchText) !== -1) { $(this).css('display','flex'); }else{ $(this).css('display','none'); } }); if ( searchText.length > 0 ) { $("#projects ul").css("display","flex"); }else{ $("#projects ul").css("display","none"); } }); }) } //seciones principales del nav function playerList(){ if ( $("#info_area").hasClass("showInfo")) hideInfo(); $('#spinner').css("display", "flex"); var d_Main = $.Deferred(); $('#infoPag').html("Player List"); $('.nav ').removeClass("active"); $('.players.nav ').addClass("active"); $( "nav" ).removeClass( "visible" ); //$.when( getPlayers(), getSummary(), getPlayersDownloads(), d_Main ).done(function(players, summary, downloads) { $.when( getPlayers(), getPlayerStatusEmission(), getPlayersDownloads(), d_Main ).done(function(players, statusEmission, downloads) { players = players[0]; statusEmission = statusEmission[0]; //summary = summary[0]; downloads = downloads[0]; var arrDataPlv = []; var arrSearch = []; var arrPlvStatus = {}; $("#player").html(""); orderObj.players = []; if(statusEmission.data && statusEmission.data.length > 0){ $.each(statusEmission.data, function( index, playerStatus ) { if (playerStatus.plv.playlistMode === 1){ arrPlvStatus[playerStatus.plv.id] = {}; if( playerStatus.status === 0 ) { arrPlvStatus[playerStatus.plv.id].status = 'stopped'; }else if (playerStatus.status === 1){ arrPlvStatus[playerStatus.plv.id].status = 'connected'; } else{ arrPlvStatus[playerStatus.plv.id].status = 'disConnected'; } } }); } if(downloads.data && downloads.data.length > 0){ $.each(downloads.data, function( index, download ) { // var downloaded = download.videos !== undefined ? download.videos.length : 0, // total = download.videosXML !== undefined ? download.videosXML.length : 0; var downloaded = download.countVideos, total = download.countVideosXML; if (arrPlvStatus[download.plv_id]) { arrPlvStatus[download.plv_id].download = downloaded+"/"+total; } }); } if (players.data && players.data.length > 0) { var i = 0; $.each(players.data, function( index , player ) { //No mostramos plvs si no son modo simple if (player.playlistMode === 1){ var status = arrPlvStatus[player.id] && arrPlvStatus[player.id].status ? arrPlvStatus[player.id].status : "disConnected"; var download = arrPlvStatus[player.id] && arrPlvStatus[player.id].download ? arrPlvStatus[player.id].download : "0/0"; arrDataPlv.push('
  • '+ '
    '+ '
    '+ '
    '+ '

    Music Player'+player.name+'

    '+ '
    '+ '
    '+ ''+ '
    '+ ''+ '
  • '); arrSearch.push([arrDataPlv[i],player.name]); i++; // var strList= // '
  • '+ // '
    '+ // '
    '+ // '
    '+ // '

    Music Player'+player.name+'

    '+ // '
    '+ // '
    '+ // ''+ // '
    '+ // ''+ // '
  • '; // $("#player").append(strList); } }); if (i === 0){ //Si no hay ningún player simple // 0 (no tiene ningún player modo simple) para que no quede en blanco la página, mostraremos imagen var strList = '
    '+ '
    '+ '
    '+ '

    Oops!

    '+ '

    There is no player created yet.

    '+ '
    '+ '
    '; $("#player").append(strList); }else{ $("#player").contextMenu({ selector: 'li', callback: function(key, options) { idPlayer = options.$trigger.data("id"); localStorage.setItem('idPlayer', idPlayer); namePlayer = options.$trigger.data("name"); localStorage.setItem('namePlayer', namePlayer); if(key=="open"){ checkToken(function(done){ if(done){ window.location.hash = '#player-page'; } }); } if(key=="edit"){ checkToken(function(done){ if(done){ playerInfoAreaPage(); } }); } if(key=="delete"){ checkToken(function(done){ if(done){ deletePlayer(); } }); } }, items: { "open": {name: "Open"}, "edit": {name: "Edit"}, "delete": {name: "Delete"}, } }); $('#pagination-container-players').pagination({ dataSource: arrDataPlv, prevText: '', nextText: '', pageSize: 15, pageRange: 1, callback: function(data, pagination) { orderObj.players = []; // template method of yourself var html = template(data); $("#player").html(html); //Recorremos todos los li de players, para llenar el objeto que sirve para cambir el orden de la lista setTimeout(function(){ $('#player > li').each(function(){ orderObj.players.push({ id: $(this).data("id"), name: $(this).data("name"), status: $(this).find('.img span')[0].classList[1], download: $(this).find('ul.infoRow li:eq(0)').html(), description: $(this).find('ul.infoRow li:eq(1)').html() }) }); },100); $('#spinner').css("display", ""); } }) function template(data) { var html = ""; $.each(data, function(index, item){ html += item; }); return html; } } }else{ var strList = '
    '+ '
    '+ '
    '+ '

    Oops!

    '+ '

    There is no player created yet.

    '+ '
    '+ '
    '; $("#player").append(strList); } searchItemsPagination(arrSearch, "#autocomplete_player", "#player"); tipRight(); var strTabs = '
  • '+ '
  • '; $(".tabs").html(strTabs); setTimeout(function(){ tabs($('button:contains("schedules")'), 'schedules'); $(".tabs").addClass("active"); },100); $('#spinner').css("display", ""); }); $( "main" ).load( window.location.protocol+"/route/player-list/player-list.html", function() { d_Main.resolve(); }); } function albumList() { if ( $("#info_area").hasClass("showInfo")) hideInfo(); $('#spinner').css("display", "flex"); var d_Main = $.Deferred(); $('#infoPag').html("Album List"); $('.nav ').removeClass("active"); $('.albums.nav ').addClass("active"); $( "nav" ).removeClass( "visible" ); $.when( getAlbumsBlock(), d_Main ).done(function(albums) { albums = albums[0]; $("#album").html(""); orderObj.albums = []; if (albums.data.length>0){ albums.data.sort(function(a, b) { var nameA = a.name.toUpperCase(); // ignore upper and lowercase var nameB = b.name.toUpperCase(); // ignore upper and lowercase if (nameA < nameB) { return -1; } if (nameA > nameB) { return 1; } // names must be equal return 0; }); $.each(albums.data, function( index, album ) { var strList='
  • '+ ''+ '
    '+ '
    '+ '
    '+ '

    Album'+album.name+'

    '+ '
    '+ '
    '+ '
    '+ ''+ '
  • '; $("#album").append(strList); }); // $("#album a li").click(function(){ // idAlbum = $(this).data("id"); // nameAlbum = $(this).data("name"); // localStorage.setItem('idAlbum', idAlbum); // localStorage.setItem('nameAlbum', nameAlbum); // }); //Recorremos todos los li de album, para llenar el objeto que sirve para cambir el orden de la lista $('#album > li').each(function(){ orderObj.albums.push({ id: $(this).data("id"), name: $(this).data("name"), songs: $(this).find('ul.infoRow li:eq(0)').html(), description: $(this).find('ul.infoRow li:eq(1)').html() }) }); $("#album").contextMenu({ selector: 'li', callback: function(key, options) { idAlbum = options.$trigger.data("id"); nameAlbum = options.$trigger.data("name"); localStorage.setItem('idAlbum', idAlbum); localStorage.setItem('nameAlbum', nameAlbum); if(key=="open"){ checkToken(function(done){ if(done){ window.location.hash = '#album-page'; } }); } if(key=="edit"){ checkToken(function(done){ if(done){ albumInfoAreaPage(); } }); } if(key=="delete"){ deleteAlbum(); } }, items: { "open": {name: "Open"}, "edit": {name: "Edit"}, "delete": {name: "Delete"}, } }); }else{ var strList = '
    '+ '
    '+ '
    '+ '

    Oops!

    '+ '

    There is no album created yet.

    '+ '
    '+ '
    '; $("#album").append(strList); } searchItems("#autocomplete_album", "#album"); //llamamos a la funcion para que los inpunts tenga tooltip que muestre contador de caracteres restantes. chargeTyppyInput(); tipLeft(); $('#spinner').css("display", ""); var strTabs = '
  • '+ '
  • '; $(".tabs").html(strTabs); setTimeout(function(){ tabs($('button:contains("tracks")'), 'tracks'); $(".tabs").addClass("active") },100); }); $( "main" ).load( window.location.protocol+"/route/album-list/album-list.html", function() { d_Main.resolve(); }); // $( "main" ).load( "http://"+ window.location.host+"/newadmira-music/route/album-list/album-list.html", function() { d_Main.resolve(); }); } function scheduleList() { if ( $("#info_area").hasClass("showInfo")) hideInfo(); $('#spinner').css("display", "flex"); var d_Main = $.Deferred(); $('#infoPag').html("Schedule List"); $('.nav ').removeClass("active"); $('.schedules.nav ').addClass("active"); $( "nav" ).removeClass( "visible" ); $.when( getSchedules(), d_Main ).done(function(schedules) { schedules = schedules[0]; $("#schedule").html(""); orderObj.schedules = []; if (schedules.data.length>0){ schedules.data.sort(function(a, b) { var nameA = a.name.toUpperCase(); // ignore upper and lowercase var nameB = b.name.toUpperCase(); // ignore upper and lowercase if (nameA < nameB) { return -1; } if (nameA > nameB) { return 1; } // names must be equal return 0; }); $.each(schedules.data, function( index, schedule ) { var strList='
  • '+ '
    '+ '
    '+ '
    '+ '

    Schedule'+schedule.name+'

    '+ '
    '+ '
    '+ '
    '+ ''+ '
  • '; $("#schedule").append(strList); }); //Recorremos todos los li de schedule, para llenar el objeto que sirve para cambir el orden de la lista $('#schedule > li').each(function(){ orderObj.schedules.push({ id: $(this).data("id"), name: $(this).data("name"), songs: $(this).find('ul.infoRow li:eq(0)').html(), type: $(this).find('ul.infoRow li:eq(1)').html(), description: $(this).find('ul.infoRow li:eq(2)').html() }) }); $("#schedule").contextMenu({ selector: 'li', callback: function(key, options) { idSchedule = options.$trigger.data("id"); nameSchedule = options.$trigger.data("name"); localStorage.setItem('idSchedule', idSchedule); localStorage.setItem('nameSchedule', nameSchedule); if(key=="open"){ checkToken(function(done){ if(done){ window.location.hash = '#schedule-page'; } }); } if(key=="edit"){ checkToken(function(done){ if(done){ scheduleInfoAreaPage(); } }); } if(key=="delete"){ checkToken(function(done){ if(done){ deleteSchedule(); } }); } }, items: { "open": {name: "Open"}, "edit": {name: "Edit"}, "delete": {name: "Delete"}, } }); }else{ var strList = '
    '+ '
    '+ '
    '+ '

    Oops!

    '+ '

    There is no schedule created yet.

    '+ '
    '+ '
    '; $("#schedule").append(strList); } searchItems("#autocomplete_schedule", "#schedule"); //llamamos a la funcion para que los inpunts tenga tooltip que muestre contador de caracteres restantes. chargeTyppyInput(); tipLeft(); $('#spinner').css("display", ""); var strTabs = '
  • '+ '
  • '; $(".tabs").html(strTabs); setTimeout(function(){ tabs($('button:contains("albums")'), 'albums'); $(".tabs").addClass("active"); },100); }); $( "main" ).load( window.location.protocol+"/route/schedule-list/schedule-list.html", function() { d_Main.resolve(); }); } // paginas individuales function playerPage() { $('#spinner').css("display", "flex"); var d_Main = $.Deferred(); var d_Info = $.Deferred(); $('#infoPag').html("Player Detail"); $('.nav ').removeClass("active"); $('.players.nav').addClass("active"); $( "nav" ).removeClass( "visible" ); ///////////////////////////////////////////////////// //Si el usuario accede con la url directa #player-page o ha retrocedido con el navagedor y se acaba de eliminar un player, rederigimos a palerList if (idPlayer === ""){ window.location.hash = '#player-list'; return false; } /////////////////////////////////////////////////// //$.when(getPlayer(), getInfoPlayer(), getConfPlayer(), getSchedulePlayer(), d_Main, d_Info).done(function(player, player_info, player_conf, player_schedule) { $.when(getPlayer(), getInfoPlayer(), getConfPlayer(), getEmissionPlayer(), getPlayerDownloads(), getSchedulePlayer(), d_Main, d_Info).done(function(player, player_info, player_conf, player_emission, player_downloads, player_schedule) { player= player[0]; player_info = player_info[0]; player_conf = player_conf[0]; player_emission = player_emission[0]; player_downloads = player_downloads[0]; player_schedule = player_schedule[0]; $('#plv_timezone').selectric(); //dos arrays para comparar si hay disferencía en la propiedades del player. A continuación está la función que las compara var data = [player.data[0].id,player.data[0].name,player_info.data[0].location,player.data[0].nick, player_conf.data.volume, player_conf.data.advancedVideoSmoothing]; var newData = []; var status, lastUpdate = player_emission.data[0] ? moment.unix(player_emission.data[0].tstamp).fromNow() : "---"; lastUpdate = lastUpdate.charAt(0).toUpperCase() + lastUpdate.slice(1), downloaded = ""; if (player_downloads.data[0]){ var videos = "0", videosXML = "0"; if(player_downloads.data[0].videos){ videos = player_downloads.data[0].videos.length; } if(player_downloads.data[0].videosXML){ videosXML = player_downloads.data[0].videosXML.length; } downloaded = videos + ' / ' + videosXML; }else{ downloaded = "0 / 0"; } function arrEvery(a1,a2) { return a1.every(function (v, i) { return v === a2[i]; }); } $('#player-page h1').html(player.data[0].name); $('#player_description').html(player.data[0].nick); if (player_emission.data[0]) { switch (player_emission.data[0].status) { case 0: status = "Stopped"; break; case 1: status = "Active"; break; case 2: status = "Disconnected"; break; } }else{ status = "Disconnected"; } $('#player-page .info li:eq(0) span').html(status); $('#player-page .info li:eq(1) span').html(downloaded); $('#player-page .info li:eq(2) span').html(lastUpdate); $('#player-page #player_schedule').html(player_schedule.data.name); $("#player-info input:eq(0)").val(player.data[0].name); $("#player-info input:eq(1)").val(player_info.data[0].location); $("#player-info textarea").val(player.data[0].nick); $("#player-info input[type=hidden]").val(player.data[0].id); if (player_schedule.data.length !== 0) { //Si hay asignado un schedule al player $('.dropzone').addClass('assigned'); $('.dropzone').removeClass('unassigned'); $('.dropzone').data('id', player_schedule.data.id ); $('.dropzone').data('name', player_schedule.data.name); } $("#player-info button:eq(0)").on('click', function(e){ e.preventDefault(); if ( $.trim($('#namePlayer').val())==="" || $.trim($('#descPlayer').val())==="") { swal({ position: 'top-end', type: 'error', html: 'The name and description field are required.', showConfirmButton: true, customClass: 'notify', toast: true, }); }else{ var crossfade; if ( $('#crossfadeSwitch').is(':checked') ) { crossfade = parseFloat($('#valCross').html())*1000; } else { crossfade = 0; } newData = [parseInt($('#idHideP').val()),$.trim($('#namePlayer').val()),$.trim($('#locationPlayer').val()),$.trim($('#descPlayer').val()),parseInt($('#valVolume').html()),crossfade] if (!arrEvery(data, newData)) { checkToken(function(done){ if(done){ modifyPlayer(newData[0],newData[1],newData[2],newData[3],newData[4],newData[5]); } }); } } }) chargeTyppyInput(); var valueVolume = player_conf.data.volume; var valueCrossfade = player_conf.data.advancedVideoSmoothing; if(player_conf.data.advancedVideoSmoothing > 1) { $('#crossfadeSwitch').prop('checked', true ); } else { valueCrossfade = 0; $('.slider:eq(2)').css('display','none'); } sliders(valueVolume, valueCrossfade); //area para arrastrar y asignar album o schedule $( ".dropzone" ).droppable({ accept: ".dragelement", tolerance: "pointer", over: function( event, ui ) { if (!$(this).hasClass('assigned')){ $(this).css('border-color','#7DAD57'); } }, out: function( event, ui ) { if (!$(this).hasClass('assigned')){ $(this).css('border', ''); } }, drop: function(event, ui) { if (!$(this).hasClass('assigned')){ if ($(ui.draggable).closest('.source').attr('id') === 'schedules') { checkToken(function(done){ if(done){ assignScheduleToPlayer($(ui.draggable).parent().data('id'), $(ui.draggable).parent().data('name') ); } }); // $(this).addClass('assigned'); // $(this).removeClass('unassigned'); // $('#player-page li:eq(1)').html($(ui.draggable).parent().data('name')); }else{ // ¿Se podrá asignar en un futuro un álbum?; } } else { swal({ position: 'top-end', type: 'warning', html: 'The player has a schedule assigned. Unassign first to add another schedule', showConfirmButton: true, customClass: 'notify', toast: true, }); } $(this).css('border',''); } }); //Dropdown con 5 dias desde la fecha actual hacía atrás para cargar los emission log for (var i=0; i<5; i++) { $("#dataLogs").append($("