From 773693f636cad52001c05b7efa624189f513880a Mon Sep 17 00:00:00 2001 From: denise Date: Tue, 22 May 2012 17:47:46 -0400 Subject: [PATCH 1/4] - fixed spelling mistake on variable 'songElapsedTime' in dashboard.js --- airtime_mvc/public/js/airtime/dashboard/dashboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airtime_mvc/public/js/airtime/dashboard/dashboard.js b/airtime_mvc/public/js/airtime/dashboard/dashboard.js index a09e909eb..44ea06970 100644 --- a/airtime_mvc/public/js/airtime/dashboard/dashboard.js +++ b/airtime_mvc/public/js/airtime/dashboard/dashboard.js @@ -76,7 +76,7 @@ function updateProgressBarValue(){ var scheduled_play_line_to_switch = scheduled_play_div.parent().find(".line-to-switch"); if (currentSong !== null){ - var songElpasedTime = 0; + var songElapsedTime = 0; songPercentDone = (estimatedSchedulePosixTime - currentSong.songStartPosixTime)/currentSong.songLengthMs*100; songElapsedTime = estimatedSchedulePosixTime - currentSong.songStartPosixTime; if (songPercentDone < 0 || songPercentDone > 100){ From 0b84dec86fbb3ffbbd58003df31190adb00ed798 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Wed, 23 May 2012 12:18:51 +0200 Subject: [PATCH 2/4] CC-3862 : Now playing -> Time Line: Left clicking and "Select cursor" won't enable to add current selected track from Media Library --- .../public/js/airtime/showbuilder/builder.js | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index bab69b0f3..ebb3236f0 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -2,6 +2,7 @@ var AIRTIME = (function(AIRTIME){ var mod, oSchedTable, SB_SELECTED_CLASS = "sb-selected", + CURSOR_SELECTED_CLASS = "cursor-selected-row", $sbContent, $sbTable, $toolbar, @@ -108,6 +109,18 @@ var AIRTIME = (function(AIRTIME){ mod.checkJumpToCurrentButton(); mod.checkCancelButton(); }; + + mod.selectCursor = function($el) { + + $el.addClass(CURSOR_SELECTED_CLASS); + mod.checkToolBarIcons(); + }; + + mod.removeCursor = function($el) { + + $el.removeClass(CURSOR_SELECTED_CLASS); + mod.checkToolBarIcons(); + }; mod.getSelectedData = function() { var $selected = $sbTable.find("tbody").find("input:checkbox").filter(":checked").parents("tr"), @@ -935,22 +948,20 @@ var AIRTIME = (function(AIRTIME){ //add events to cursors. $sbTable.find("tbody").on("click", "div.marker", function(event) { var $tr = $(this).parents("tr"), - cursorSelClass = "cursor-selected-row"; + $trs; - if ($tr.hasClass(cursorSelClass)) { - $tr.removeClass(cursorSelClass); + if ($tr.hasClass(CURSOR_SELECTED_CLASS)) { + mod.removeCursor($tr); } else { - $tr.addClass(cursorSelClass); + mod.selectCursor($tr); } if (event.ctrlKey === false) { - $sbTable.find('.'+cursorSelClass).not($tr) - .removeClass(cursorSelClass); + $trs = $sbTable.find('.'+CURSOR_SELECTED_CLASS).not($tr); + mod.removeCursor($trs); } - mod.checkToolBarIcons(); - return false; }); @@ -983,7 +994,9 @@ var AIRTIME = (function(AIRTIME){ if (oItems.selCurs !== undefined) { callback = function() { - $(this).parents('tr').next().addClass(cursorClass); + var $tr = $(this).parents('tr').next(); + + mod.selectCursor($tr); }; oItems.selCurs.callback = callback; @@ -993,7 +1006,9 @@ var AIRTIME = (function(AIRTIME){ if (oItems.delCurs !== undefined) { callback = function() { - $(this).parents('tr').next().removeClass(cursorClass); + var $tr = $(this).parents('tr').next(); + + mod.removeCursor($tr); }; oItems.delCurs.callback = callback; From 0c233c334652a5b9ef44f191180970fe9813030a Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Wed, 23 May 2012 17:06:04 +0200 Subject: [PATCH 3/4] CC-3860 : Timeline: Can knock a current playing song out of place with drag and drop if current playing song has checkbox selected --- .../public/js/airtime/showbuilder/builder.js | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index ebb3236f0..67ee70aee 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -3,6 +3,7 @@ var AIRTIME = (function(AIRTIME){ oSchedTable, SB_SELECTED_CLASS = "sb-selected", CURSOR_SELECTED_CLASS = "cursor-selected-row", + NOW_PLAYING_CLASS = "sb-now-playing", $sbContent, $sbTable, $toolbar, @@ -80,7 +81,7 @@ var AIRTIME = (function(AIRTIME){ }; mod.checkJumpToCurrentButton = function() { - var $current = $sbTable.find(".sb-now-playing"); + var $current = $sbTable.find("."+NOW_PLAYING_CLASS); if ($current.length !== 0) { AIRTIME.button.enableButton("sb-button-current"); @@ -122,12 +123,19 @@ var AIRTIME = (function(AIRTIME){ mod.checkToolBarIcons(); }; - mod.getSelectedData = function() { + /* + * sNot is an optional string to filter selected elements by. (ex removing the currently playing item) + */ + mod.getSelectedData = function(sNot) { var $selected = $sbTable.find("tbody").find("input:checkbox").filter(":checked").parents("tr"), aData = [], i, length, $item; + if (sNot !== undefined) { + $selected = $selected.not("."+sNot); + } + for (i = 0, length = $selected.length; i < length; i++) { $item = $($selected.get(i)); aData.push($item.data('aData')); @@ -526,7 +534,7 @@ var AIRTIME = (function(AIRTIME){ $nRow.data({"aData": aData}); if (aData.scheduled === 1) { - $nRow.addClass("sb-now-playing"); + $nRow.addClass(NOW_PLAYING_CLASS); } else if (aData.scheduled === 0) { $nRow.addClass("sb-past"); @@ -631,7 +639,7 @@ var AIRTIME = (function(AIRTIME){ //order of importance of elements for setting the next timeout. elements = [ - $sbTable.find("tr.sb-now-playing"), + $sbTable.find("tr."+NOW_PLAYING_CLASS), $sbTable.find("tbody").find("tr.sb-future.sb-footer, tr.sb-future.sb-header").filter(":first") ]; @@ -789,7 +797,7 @@ var AIRTIME = (function(AIRTIME){ forcePlaceholderSize: true, distance: 10, helper: function(event, item) { - var selected = mod.getSelectedData(), + var selected = mod.getSelectedData(NOW_PLAYING_CLASS), thead = $("#show_builder_table thead"), colspan = thead.find("th").length, trfirst = thead.find("tr:first"), @@ -829,7 +837,17 @@ var AIRTIME = (function(AIRTIME){ receive: fnReceive, update: fnUpdate, start: function(event, ui) { - var elements = $sbTable.find('tr:not(:first) input:checked').parents('tr'); + /* + var elements = $sbTable.find('tr input:checked').parents('tr') + .not(ui.item) + .not("."+NOW_PLAYING_CLASS); + + //remove all other items from the screen, + //don't remove ui.item or else we can not get position information when the user drops later. + elements.remove(); + */ + + var elements = $sbTable.find('tr input:checked').parents('tr'); elements.hide(); } @@ -908,7 +926,7 @@ var AIRTIME = (function(AIRTIME){ var $scroll = $sbContent.find(".dataTables_scrolling"), scrolled = $scroll.scrollTop(), scrollingTop = $scroll.offset().top, - current = $sbTable.find(".sb-now-playing"), + current = $sbTable.find("."+NOW_PLAYING_CLASS), currentTop = current.offset().top; $scroll.scrollTop(currentTop - scrollingTop + scrolled); From bf614dd729d0be35843739e46601e7b98ec55806 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Wed, 23 May 2012 17:40:56 +0200 Subject: [PATCH 4/4] CC-3870 : Now playing -> "Add n items" displays wrong "n" when drag and drop tracks to Time Line --- .../airtime/library/events/library_playlistbuilder.js | 10 ++++++++-- .../js/airtime/library/events/library_showbuilder.js | 10 ++++++++-- airtime_mvc/public/js/airtime/library/library.js | 7 +++++++ 3 files changed, 23 insertions(+), 4 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 73dbd210d..249af5d55 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js @@ -48,14 +48,20 @@ var AIRTIME = (function(AIRTIME){ $('#library_display tr.lib-audio').draggable({ helper: function(){ - var selected = mod.getChosenAudioFilesLength(), + var $el = $(this), + selected = mod.getChosenAudioFilesLength(), container, message, li = $("#side_playlist ul li:first"), width = li.width(), height = li.height(); + + //dragging an element that has an unselected checkbox. + if (mod.isChosenItem($el) === false) { + selected++; + } - if (selected === 0 || selected === 1) { + if (selected === 1) { message = "Adding 1 Item."; } else { 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 58e4b4453..7d841c56d 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js @@ -48,14 +48,20 @@ var AIRTIME = (function(AIRTIME){ $('#library_display tr.lib-audio, tr.lib-pl').draggable({ helper: function(){ - var selected = mod.getChosenItemsLength(), + var $el = $(this), + selected = mod.getChosenItemsLength(), container, thead = $("#show_builder_table thead"), colspan = thead.find("th").length, width = thead.find("tr:first").width(), message; - if (selected === 0 || selected === 1) { + //dragging an element that has an unselected checkbox. + if (mod.isChosenItem($el) === false) { + selected++; + } + + if (selected === 1) { message = "Adding 1 Item."; } else { diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index 401eb041e..c5e1b7495 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -98,6 +98,13 @@ var AIRTIME = (function(AIRTIME) { } }; + mod.isChosenItem = function($el) { + var id = $el.attr("id"), + item = chosenItems[id]; + + return item !== undefined ? true : false; + }; + mod.addToChosen = function($el) { var id = $el.attr("id");