Skip to content
Snippets Groups Projects
Commit c9c16338 authored by Robin Appelman's avatar Robin Appelman
Browse files

some work on media player

parent 2e58752e
No related branches found
No related tags found
No related merge requests found
......@@ -3,17 +3,13 @@
li button.right.prettybutton{font-size:1em;}
#collection{padding-top:1em;position:relative;width:70ex;float:left;}
#collection li.album,#collection li.song{margin-left:3ex;}
#playlist{border-spacing:0;}
#playlist th{background-color:#ccc; text-align:left; font-size:1.2em; padding:0.2em}
#playlist tr.selected{background-color:#eee;}
#playlist tr.current{background-color:#ccc;}
#playlist td.time, #playlist th.time{text-align:right; padding-right:1em;}
#leftcontent img.remove { display:none; float:right; cursor:pointer; }
#leftcontent li:hover img.remove { display:inline; }
#collection li button{float:right;}
#collection li,#playlist li{list-style-type:none;}
.template{display:none}
#collection li{padding-right:10px;}
img.remove{float:right;}
#searchresults input.play, #searchresults input.add{float:right; height:16px; width:16px;}
#collection tr.collapsed td.album, #collection tr.collapsed td.title{color:#ddd}
a.expander{float:right;display:block}
......@@ -30,7 +30,7 @@ var PlayList={
if(PlayList.player){
if(PlayList.player.data('jPlayer').options.supplied!=PlayList.items[index].type){//the the audio type changes we need to reinitialize jplayer
PlayList.player.jPlayer("destroy");
PlayList.init(PlayList.items[index].type,function(){PlayList.play(null,time,eady)});
PlayList.init(PlayList.items[index].type,function(){PlayList.play(null,time,ready)});
}else{
PlayList.player.jPlayer("setMedia", PlayList.items[PlayList.current]);
PlayList.items[index].playcount++;
......@@ -73,7 +73,7 @@ var PlayList={
PlayList.render();
return false;
});
PlayList.player=$('#jp-interface div.player');
PlayList.player=$('#controls div.player');
}
$(PlayList.player).jPlayer({
ended:PlayList.next,
......@@ -91,7 +91,7 @@ var PlayList={
}
},
volume:PlayList.volume,
cssSelectorAncestor:'#jp-interface',
cssSelectorAncestor:'#controls',
swfPath:OC.linkTo('media','js'),
});
},
......
......@@ -2,49 +2,21 @@ PlayList.render=function(){
$('#playlist').show();
PlayList.parent.empty();
for(var i=0;i<PlayList.items.length;i++){
var tr=PlayList.template.clone();
var item=PlayList.items[i];
if(i==PlayList.current){
tr.addClass('current');
}
tr.removeClass('template');
tr.data('name',item.name);
tr.data('artist',item.artist);
tr.children('td.name').children('span').text(item.name);
tr.children('td.artist').text(item.artist);
tr.children('td.album').text(item.album);
tr.data('index',i);
tr.click(function(){
PlayList.play($(this).data('index'));
PlayList.render();
});
tr.hover(function(){
var button=$('<img class="remove" title="'+t('media','Remove')+'"/>');
button.attr('src',OC.imagePath('core','actions/delete'));
$(this).children().last().append(button);
button.click(function(event){
event.stopPropagation();
event.preventDefault();
var index=$(this).parent().parent().data('index');
PlayList.remove(index);
});
},function(){
$(this).children().last().children('img.remove').remove();
});
tr.children('td.name').children('input').click(function(event){
var li=$('<li/>');
li.append(item.name);
var img=$('<img class="remove" src="'+OC.imagePath('core','actions/delete')+'"/>');
img.click(function(event){
event.stopPropagation();
if($(this).attr('checked')){
$(this).parent().parent().addClass('selected');
if($('tbody td.name input:checkbox').length==$('tbody td.name input:checkbox:checked').length){
$('#selectAll').attr('checked',true);
}
}else{
$(this).parent().parent().removeClass('selected');
$('#selectAll').attr('checked',false);
}
procesSelection();
PlayList.remove($(this).parent().data('index'));
});
li.click(function(event){
PlayList.play($(this).data('index'));
});
PlayList.parent.append(tr);
li.append(img)
li.data('index',i);
li.addClass('song');
PlayList.parent.append(li);
}
}
PlayList.getSelected=function(){
......@@ -55,78 +27,16 @@ PlayList.hide=function(){
}
$(document).ready(function(){
PlayList.parent=$('#playlist tbody');
PlayList.template=$('#playlist tr.template');
PlayList.parent=$('#leftcontent');
$('#selectAll').click(function(){
if($(this).attr('checked')){
// Check all
$('tbody td.name input:checkbox').attr('checked', true);
$('tbody td.name input:checkbox').parent().parent().addClass('selected');
$('#leftcontent li.song input:checkbox').attr('checked', true);
$('#leftcontent li.song input:checkbox').parent().addClass('selected');
}else{
// Uncheck all
$('tbody td.name input:checkbox').attr('checked', false);
$('tbody td.name input:checkbox').parent().parent().removeClass('selected');
$('#leftcontent li.song input:checkbox').attr('checked', false);
$('#leftcontent li.song input:checkbox').parent().removeClass('selected');
}
procesSelection();
});
});
function procesSelection(){
var selected=PlayList.getSelected();
if(selected.length==0){
$('th.name span').text(t('media','Name'));
$('th.artist').text(t('media','Artist'));
$('th.album').text(t('media','Album'));
$('th.time').text(t('media','Time'));
$('th.plays').empty();
$('th.plays').text(t('media','Plays'));
}else{
var name=selected.length+' '+t('media','selected');
var artist=$(selected[0]).data('artist');
var album=$(selected[0]).data('album');
var time=$(selected[0]).data('time');
var plays=$(selected[0]).data('plays');
for(var i=1;i<selected.length;i++){
var item=$(selected[i]);
if(artist!='mixed' && item.data('artist')!==artist){
artist='mixed'
}
if(album!='mixed' && item.data('album')!==album){
album='mixed'
}
if(time!='mixed' && item.data('time')!==time){
time='mixed'
}
if(plays!='mixed' && item.data('plays')!==plays){
plays='mixed'
}
}
$('th.name span').text(name);
$('th.artist').text(artist);
$('th.album').text(album);
if(time!='mixed'){
var secconds=(time%60);
if(secconds<10){
secconds='0'+secconds;
}
var time=Math.floor(time/60)+':'+secconds;
}
$('th.time').text(time);
$('th.plays').text(plays);
var button=$('<img class="remove" title="Remove"/>');
button.attr('src',OC.imagePath('core','actions/delete'));
$('th.plays').append(button);
button.click(function(event){
event.stopPropagation();
event.preventDefault();
PlayList.getSelected().each(function(index,element){
var index=$(element).data('index');
PlayList.items[index]=null;
});
PlayList.items=PlayList.items.filter(function(item){return item!==null});
PlayList.render();
PlayList.save();
procesSelection();
});
}
}
\ No newline at end of file
......@@ -20,32 +20,7 @@
<div class="player" id="jp-player"></div>
</div>
<div id="leftcontent">
<table id="playlist">
<thead>
<tr>
<th class="name"><input id="selectAll" type="checkbox"><?php echo $l->t('Name')?></th>
<th class="artist"><?php echo $l->t('Artist')?></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<?php echo $l->t('The playlist is empty')?>
</td>
</tr>
</tbody>
<tfoot>
<tr class="template">
<td class="name">
<input type="checkbox">
<span></span>
</td>
<td class="artist"></td>
</tr>
</tfoot>
</table>
</div>
<ul id="leftcontent"></ul>
<div id="rightcontent">
<div id="scan">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment