From 5257711866701032c283bc1898bee962ff42955f Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Tue, 28 Feb 2012 23:52:20 +0100 Subject: [PATCH] CC-3174 : showbuilder fixing order of scheduled/playlist data when added via group dragging. --- .../controllers/PlaylistController.php | 2 +- .../library/events/library_playlistbuilder.js | 11 ++++---- airtime_mvc/public/js/airtime/library/spl.js | 25 ++++++++++++------- .../public/js/airtime/showbuilder/builder.js | 19 +++++++------- 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php index b40de9d35..efa4fb8b4 100644 --- a/airtime_mvc/application/controllers/PlaylistController.php +++ b/airtime_mvc/application/controllers/PlaylistController.php @@ -197,7 +197,7 @@ class PlaylistController extends Zend_Controller_Action public function addItemsAction() { - $ids = $this->_getParam('ids'); + $ids = $this->_getParam('ids', array()); $ids = (!is_array($ids)) ? array($ids) : $ids; $afterItem = $this->_getParam('afterItem', null); $addType = $this->_getParam('type', 'after'); 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 676bac86c..3f0216faf 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js @@ -69,16 +69,17 @@ var AIRTIME = (function(AIRTIME){ fnAddSelectedItems = function() { var oLibTT = TableTools.fnGetInstance('library_display'), aData = oLibTT.fnGetSelectedData(), - item, + i, temp, + length, aMediaIds = []; //process selected files/playlists. - for (item in aData) { - temp = aData[item]; - if (temp !== null && temp.hasOwnProperty('id') && temp.ftype === "audioclip") { + for (i = 0, length = aData.length; i < length; i++) { + temp = aData[i]; + if (temp.ftype === "audioclip") { aMediaIds.push(temp.id); - } + } } AIRTIME.playlist.fnAddItems(aMediaIds, undefined, 'after'); diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js index 4ca90ee9a..e90aeaa33 100644 --- a/airtime_mvc/public/js/airtime/library/spl.js +++ b/airtime_mvc/public/js/airtime/library/spl.js @@ -506,18 +506,25 @@ var AIRTIME = (function(AIRTIME){ fnUpdate; fnReceive = function(event, ui) { - var selected = $('#library_display tr[id^="au"] input:checked').parents('tr'), - aItems = []; - + var aItems = [], + aSelected, + oLibTT = TableTools.fnGetInstance('library_display'), + i, + length; + + //filter out anything that isn't an audiofile. + aSelected = oLibTT.fnGetSelectedData(); //if nothing is checked select the dragged item. - if (selected.length === 0) { - selected = ui.item; + if (aSelected.length === 0) { + aSelected.push(ui.item.data("aData")); } - selected.each(function(i, el) { - aItems.push($(el).data("aData").id); - }); - + for (i = 0, length = aSelected.length; i < length; i++) { + if (aSelected[i].ftype === "audioclip") { + aItems.push(aSelected[i].id); + } + } + aReceiveItems = aItems; html = ui.helper.html(); }; diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index 577b6a418..85c2e2932 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -499,8 +499,7 @@ $(document).ready(function() { fnAdd = function() { var aMediaIds = [], - aSchedIds = [], - oLibTT = TableTools.fnGetInstance('library_display'); + aSchedIds = []; for(i=0; i < aItemData.length; i++) { aMediaIds.push({"id": aItemData[i].id, "type": aItemData[i].ftype}); @@ -521,18 +520,18 @@ $(document).ready(function() { }; fnReceive = function(event, ui) { - var selected = $('#library_display tr:not(:first) input:checked').parents('tr'), - aItems = []; + var aItems = [], + oLibTT = TableTools.fnGetInstance('library_display'), + i, + length; + + aItems = oLibTT.fnGetSelectedData(); //if nothing is checked select the dragged item. - if (selected.length === 0) { - selected = ui.item; + if (aItems.length === 0) { + aItems.push(ui.item.data("aData")); } - selected.each(function(i, el) { - aItems.push($(el).data("aData")); - }); - origTrs = aItems; html = ui.helper.html(); };