142 lines
3.4 KiB
JavaScript
142 lines
3.4 KiB
JavaScript
function contextMenu(action, el, pos) {
|
|
var method = action.split('/').pop(),
|
|
url;
|
|
|
|
if (method === 'delete') {
|
|
url = action + '/format/json';
|
|
url = url + '/id/' + $(el).attr('id');
|
|
$.post(url, deleteItem);
|
|
}
|
|
else if (method === 'add-item') {
|
|
url = action + '/format/json';
|
|
url = url + '/id/' + $(el).attr('id');
|
|
$.post(url, addToPlaylist);
|
|
}
|
|
}
|
|
|
|
function deleteItem(json){
|
|
var id;
|
|
|
|
if(json.message) {
|
|
alert(j.message);
|
|
return;
|
|
}
|
|
|
|
id = this.url.split('/').pop();
|
|
$("#library_display tr#" +id).remove();
|
|
}
|
|
|
|
function addToPlaylist(json){
|
|
|
|
if(json.message) {
|
|
alert(json.message);
|
|
return;
|
|
}
|
|
|
|
$('#spl_name').empty()
|
|
.append(json.name);
|
|
$('#spl_length').empty()
|
|
.append(json.length);
|
|
$('#spl_sortable').empty()
|
|
.append(json.html);
|
|
}
|
|
|
|
function setLibraryContents(data){
|
|
$("#library_display tr:not(:first-child)").remove();
|
|
$("#library_display").append(data);
|
|
|
|
$("#library_display tr:not(:first-child)").contextMenu(
|
|
{menu: 'myMenu'}, contextMenu
|
|
);
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------------------------------------
|
|
//Side Playlist Functions
|
|
//--------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
function setSPLContent(json) {
|
|
|
|
$('#spl_name').empty()
|
|
.append(json.name);
|
|
$('#spl_length').empty()
|
|
.append(json.length);
|
|
$('#spl_sortable').empty()
|
|
.append(json.html);
|
|
}
|
|
|
|
function deleteSPLItem(){
|
|
|
|
var url, pos;
|
|
|
|
url = '/Playlist/delete-item/format/json/view/spl';
|
|
|
|
pos = $('form[name="SPL"]').find(':checked').not('input[name="all"]').map(function() {
|
|
return "/pos/" + $(this).attr('name');
|
|
}).get().join("");
|
|
|
|
url = url + pos;
|
|
|
|
$.post(url, setSPLContent);
|
|
}
|
|
|
|
function moveSPLItem(event, ui) {
|
|
var li, newPos, oldPos, url;
|
|
|
|
li = ui.item;
|
|
|
|
newPos = li.index();
|
|
oldPos = li.attr('id').split("_").pop();
|
|
|
|
url = '/Playlist/move-item'
|
|
url = url + '/format/json';
|
|
url = url + '/view/spl';
|
|
url = url + '/oldPos/' + oldPos;
|
|
url = url + '/newPos/' + newPos;
|
|
|
|
$.post(url, setSPLContent);
|
|
}
|
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
$("#library_display tr:first-child span.title").data({'ob': 'dc:title', 'order' : 'asc'});
|
|
$("#library_display tr:first-child span.artist").data({'ob': 'dc:creator', 'order' : 'desc'});
|
|
$("#library_display tr:first-child span.album").data({'ob': 'dc:source', 'order' : 'asc'});
|
|
$("#library_display tr:first-child span.track").data({'ob': 'ls:track_num', 'order' : 'asc'});
|
|
$("#library_display tr:first-child span.length").data({'ob': 'dcterms:extent', 'order' : 'asc'});
|
|
|
|
$("#library_display tr:first-child span").click(function(){
|
|
var url = "/Library/contents/format/html",
|
|
ob = $(this).data('ob'),
|
|
order = $(this).data('order');
|
|
|
|
//append orderby category to url.
|
|
url = url + "/ob/" + ob;
|
|
//append asc or desc order.
|
|
url = url + "/order/" + order;
|
|
|
|
//toggle order for next click.
|
|
if(order === 'asc') {
|
|
$(this).data('order', 'desc');
|
|
}
|
|
else {
|
|
$(this).data('order', 'asc');
|
|
}
|
|
|
|
$.post(url, setLibraryContents);
|
|
});
|
|
|
|
$("#library_display tr:not(:first-child)").contextMenu(
|
|
{menu: 'myMenu'}, contextMenu
|
|
);
|
|
|
|
$("#spl_sortable").sortable();
|
|
$("#spl_sortable" ).bind( "sortstop", moveSPLItem);
|
|
$("#spl_remove_selected").click(deleteSPLItem);
|
|
|
|
$('input[name="all"]').click(function(){
|
|
$('form[name="SPL"]').find('input').attr("checked", $(this).attr("checked"));
|
|
});
|
|
|
|
});
|