From 378d3d3ef4dc53562ca1d78b7db6db46ea6b79ee Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 20 Feb 2012 20:44:35 +0100 Subject: [PATCH] CC-3174 : showbuilder group drag and drop for playlist. --- .../library/events/library_playlistbuilder.js | 23 ++++++--------- .../library/events/library_showbuilder.js | 1 - airtime_mvc/public/js/airtime/library/spl.js | 28 +++++++++++++------ 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js index 33c6adc4b..aa8bb6316 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js @@ -19,20 +19,15 @@ var AIRTIME = (function(AIRTIME){ mod.fnDrawCallback = function() { $('#library_display tr[id ^= "au"]').draggable({ - helper: 'clone', - /* customize the helper on dragging to look like a pl item - * - helper: function(ev) { - var data, li; - - data = $(ev.currentTarget).data("aData"); - - li = $("
  • "); - li.append(data.track_title); - - return li; - }, - */ + helper: function(){ + var selected = $('#library_display input:checked').parents('tr[id^="au"]'); + if (selected.length === 0) { + selected = $(this); + } + var container = $('
    ').attr('id', 'draggingContainer'); + container.append(selected.clone()); + return container; + }, cursor: 'pointer', connectToSortable: '#spl_sortable' }); diff --git a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js index f48f70dd5..5b49b3118 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js @@ -19,7 +19,6 @@ var AIRTIME = (function(AIRTIME){ mod.fnDrawCallback = function() { $('#library_display tr:not(:first)').draggable({ - //helper: 'clone', helper: function(){ var selected = $('#library_display input:checked').parents('tr'); if (selected.length === 0) { diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js index 5977712dc..267e77921 100644 --- a/airtime_mvc/public/js/airtime/library/spl.js +++ b/airtime_mvc/public/js/airtime/library/spl.js @@ -500,17 +500,19 @@ var AIRTIME = (function(AIRTIME){ }); sortableConf = (function(){ - var origRow, + var origTrs, + html, fnReceive, fnUpdate; fnReceive = function(event, ui) { - origRow = ui.item; + origTrs = ui.helper.find('tr[id^="au"]'); + html = ui.helper.html(); }; fnUpdate = function(event, ui) { var prev, - aItem = [], + aItems = [], iAfter, sAddType; @@ -525,15 +527,23 @@ var AIRTIME = (function(AIRTIME){ } //item was dragged in from library datatable - if (origRow !== undefined) { - aItem.push(origRow.data("aData").id); - origRow = undefined; - AIRTIME.playlist.fnAddItems(aItem, iAfter, sAddType); + if (origTrs !== undefined) { + + playlist.find("tr.ui-draggable") + .after(html) + .empty(); + + origTrs.each(function(i, el){ + aItems.push($("#"+$(el).attr("id")).data("aData").id); + }); + + origTrs = undefined; + AIRTIME.playlist.fnAddItems(aItems, iAfter, sAddType); } //item was reordered. else { - aItem.push(parseInt(ui.item.attr("id").split("_").pop(), 10)); - AIRTIME.playlist.fnMoveItems(aItem, iAfter); + aItems.push(parseInt(ui.item.attr("id").split("_").pop(), 10)); + AIRTIME.playlist.fnMoveItems(aItems, iAfter); } };