diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index 815be7525..f72966382 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -633,7 +633,7 @@ Logging::log("getting media! - 2"); else if ($key === "year") { $plSelect[] = "EXTRACT(YEAR FROM utime)::varchar AS ".$key; - $fileSelect[] = "EXTRACT(YEAR FROM to_date(year, 'YYYY-MM-DD'))::varchar AS ".$key; + $fileSelect[] = "year AS ".$key; } //need to cast certain data as ints for the union to search on. else if (in_array($key, array("track_number", "bit_rate", "sample_rate"))){ 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 82b7b14be..bffe64a23 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js @@ -48,7 +48,7 @@ var AIRTIME = (function(AIRTIME){ $('#library_display tr.lib-audio').draggable({ helper: function(){ - mod.selectItem($(this)); + mod.addToChosen($(this)); var selected = mod.getChosenAudioFilesLength(), container, 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 56a96ef5d..a4e938308 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js @@ -48,7 +48,7 @@ var AIRTIME = (function(AIRTIME){ $('#library_display tr.lib-audio, tr.lib-pl').draggable({ helper: function(){ - mod.selectItem($(this)); + mod.addToChosen($(this)); var selected = mod.getChosenItemsLength(), container, diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index 69e0de66d..3e6feb9bf 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -98,6 +98,21 @@ var AIRTIME = (function(AIRTIME) { } }; + mod.addToChosen = function($el) { + var id = $el.attr("id"); + + chosenItems[id] = $el.data('aData'); + }; + + mod.removeFromChosen = function($el) { + var id = $el.attr("id"); + + //used to not keep dragged items selected. + if (!$el.hasClass(LIB_SELECTED_CLASS)) { + delete chosenItems[id]; + } + }; + mod.highlightItem = function($el) { var $input = $el.find("input"); @@ -105,26 +120,25 @@ var AIRTIME = (function(AIRTIME) { $el.addClass(LIB_SELECTED_CLASS); }; + mod.unHighlightItem = function($el) { + var $input = $el.find("input"); + + $input.attr("checked", false); + $el.removeClass(LIB_SELECTED_CLASS); + }; + mod.selectItem = function($el) { - var id; mod.highlightItem($el); - - id = $el.attr("id"); - chosenItems[id] = $el.data('aData'); + mod.addToChosen($el); mod.checkToolBarIcons(); }; mod.deselectItem = function($el) { - var id, - $input = $el.find("input"); - $input.attr("checked", false); - $el.removeClass(LIB_SELECTED_CLASS); - - id = $el.attr("id"); - delete chosenItems[id]; + mod.unHighlightItem($el); + mod.removeFromChosen($el); mod.checkToolBarIcons(); }; diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js index 4b9f743fd..61c2e42fd 100644 --- a/airtime_mvc/public/js/airtime/library/spl.js +++ b/airtime_mvc/public/js/airtime/library/spl.js @@ -278,7 +278,8 @@ var AIRTIME = (function(AIRTIME){ function redrawLib() { var dt = $lib.find("#library_display").dataTable(); - dt.fnDraw(); + dt.fnStandingRedraw(); + AIRTIME.library.redrawChosen(); } function setPlaylistContent(json) { @@ -523,10 +524,6 @@ var AIRTIME = (function(AIRTIME){ //filter out anything that isn't an audiofile. aSelected = AIRTIME.library.getSelectedData(); - //if nothing is checked select the dragged item. - if (aSelected.length === 0) { - aSelected.push(ui.item.data("aData")); - } for (i = 0, length = aSelected.length; i < length; i++) { if (aSelected[i].ftype === "audioclip") { @@ -536,6 +533,8 @@ var AIRTIME = (function(AIRTIME){ aReceiveItems = aItems; html = ui.helper.html(); + + AIRTIME.library.removeFromChosen(ui.item); }; fnUpdate = function(event, ui) { diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index 9f75f157b..b22a04b2f 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -699,14 +699,10 @@ var AIRTIME = (function(AIRTIME){ var aItems = []; aItems = AIRTIME.library.getSelectedData(); - - //if nothing is checked select the dragged item. - if (aItems.length === 0) { - aItems.push(ui.item.data("aData")); - } - origTrs = aItems; html = ui.helper.html(); + + AIRTIME.library.removeFromChosen(ui.item); }; fnUpdate = function(event, ui) { @@ -764,11 +760,11 @@ var AIRTIME = (function(AIRTIME){ height = trfirst.height(), message; - //if nothing is checked select the dragged item. - if (selected.length === 0) { - selected = [item.data("aData")]; - } - + //if nothing is checked select the dragged item. + if (selected.length === 0) { + selected = [item.data("aData")]; + } + if (selected.length === 1) { message = "Moving "+selected.length+" Item."; }