From 92408612f6ac73cd89270826adf014cc77d24c7f Mon Sep 17 00:00:00 2001 From: denise Date: Fri, 17 Aug 2012 15:11:43 -0400 Subject: [PATCH 1/2] CC-4246: Smart Playlist: Click shuffle button will shuffle the contents multiple times -fixed --- .../js/airtime/playlist/smart_playlistbuilder.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js b/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js index ccb2492ba..5e252aa7d 100644 --- a/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js @@ -329,9 +329,20 @@ function setupUI() { if (shuffleButton.hasClass('ui-state-disabled')) { shuffleButton.removeClass('ui-state-disabled'); } - shuffleButton.live('click', function(){ - buttonClickAction('shuffle', 'Playlist/smart-block-shuffle'); + //check if shuffle button already has a click event + var clickEvents = $(document).data('events').click; + var hasEvent = false; + $.each(clickEvents, function(i, event) { + if (event.selector == shuffleButton.selector) { + hasEvent = true; + return false; + } }); + if (!hasEvent) { + shuffleButton.live('click', function(){ + buttonClickAction('shuffle', 'Playlist/smart-block-shuffle'); + }); + } } else if (!shuffleButton.hasClass('ui-state-disabled')) { shuffleButton.addClass('ui-state-disabled'); shuffleButton.die('click'); From 764316a36c60f2881c4fabf4e5a4197c71eeeabd Mon Sep 17 00:00:00 2001 From: denise Date: Fri, 17 Aug 2012 15:30:30 -0400 Subject: [PATCH 2/2] CC-4247: Smart Playlist: Lost modifier when delete one from multiple modifiers -fixed --- .../js/airtime/playlist/smart_playlistbuilder.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js b/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js index 5e252aa7d..b1402f63a 100644 --- a/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js @@ -90,7 +90,7 @@ function setSmartPlaylistEvents() { curr.find('[name^="sp_criteria_field"]').val(criteria); var modifier = next.find('[name^="sp_criteria_modifier"]').val(); - populateModifierSelect(curr.find('[name^="sp_criteria_field"]')); + populateModifierSelect(curr.find('[name^="sp_criteria_field"]'), false); curr.find('[name^="sp_criteria_modifier"]').val(modifier); var criteria_value = next.find('[name^="sp_criteria_value"]').val(); @@ -208,7 +208,7 @@ function setSmartPlaylistEvents() { // disable extra field and hide the span disableAndHideExtraField($(this), index_num); - populateModifierSelect(this); + populateModifierSelect(this, true); }); /********** MODIFIER CHANGE **********/ @@ -413,12 +413,16 @@ function sizeTextBoxes(ele, classToRemove, classToAdd) { } } -function populateModifierSelect(e) { +function populateModifierSelect(e, popAllMods) { var criteria_type = getCriteriaOptionType(e), index = getRowIndex($(e).parent()), - critIndex = index.substring(0, 1), - divs = $(e).parents().find('select[id^="sp_criteria_modifier_'+critIndex+'"]'); - + divs; + + if (popAllMods) { + index = index.substring(0, 1); + } + divs = $(e).parents().find('select[id^="sp_criteria_modifier_'+index+'"]'); + $.each(divs, function(i, div){ $(div).children().remove();