diff --git a/airtime_mvc/application/forms/SmartPlaylistCriteria.php b/airtime_mvc/application/forms/SmartPlaylistCriteria.php
index 26a6356ed..808062ae1 100644
--- a/airtime_mvc/application/forms/SmartPlaylistCriteria.php
+++ b/airtime_mvc/application/forms/SmartPlaylistCriteria.php
@@ -216,8 +216,16 @@ class Application_Form_SmartPlaylistCriteria extends Zend_Form_SubForm
$save = new Zend_Form_Element_Button('save_button');
$save->setAttrib('class', 'ui-button ui-state-default right-floated');
$save->setIgnore(true);
- $save->setLabel('Generate');
+ $save->setLabel('Save');
+ $save->setDecorators(array('viewHelper'));
$this->addElement($save);
+
+ $generate = new Zend_Form_Element_Button('generate_button');
+ $generate->setAttrib('class', 'ui-button ui-state-default right-floated');
+ $generate->setIgnore(true);
+ $generate->setLabel('Generate');
+ $generate->setDecorators(array('viewHelper'));
+ $this->addElement($generate);
}
diff --git a/airtime_mvc/application/views/scripts/form/smart-playlist-criteria.phtml b/airtime_mvc/application/views/scripts/form/smart-playlist-criteria.phtml
index 6b0302765..f5fd85a58 100644
--- a/airtime_mvc/application/views/scripts/form/smart-playlist-criteria.phtml
+++ b/airtime_mvc/application/views/scripts/form/smart-playlist-criteria.phtml
@@ -27,7 +27,7 @@
element->getElement('sp_criteria_modifier_'.$i) ?>
element->getElement('sp_criteria_value_'.$i) ?>
-
+
@@ -45,10 +45,10 @@
element->getElement('sp_limit_options') ?>
-
-
diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css
index ad0fd1f44..e290c1dec 100644
--- a/airtime_mvc/public/css/styles.css
+++ b/airtime_mvc/public/css/styles.css
@@ -439,8 +439,12 @@ input.input_text.sp_extra_input_text{
left: 50%;
}
-.sp-add .sp-ui-button-icon-only .ui-icon{
- left: 90% !important;
+.sp-add.sp-ui-button-icon-only .ui-icon{
+ margin-left: 20px !important;
+}
+
+.sp-ui-button-icon-only .ui-icon-closethick:hover, .sp-ui-button-icon-only .ui-icon-plusthick:hover {
+ background-image:url(redmond/images/ui-icons_ff5d1a_256x240.png)
}
label {
diff --git a/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js b/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js
index 482c63568..ec1faf762 100644
--- a/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js
+++ b/airtime_mvc/public/js/airtime/playlist/smart_playlistbuilder.js
@@ -111,31 +111,29 @@ function setSmartPlaylistEvents() {
form.find('button[id="save_button"]').live("click", function(event){
var playlist_type = form.find('input:radio[name=sp_type]:checked').val(),
data = $('form').serializeArray(),
- static_action = 'Playlist/smart-playlist-generate',
- dynamic_action ='Playlist/smart-playlist-criteria-save',
- action,
- callback,
+ save_action = 'Playlist/smart-playlist-criteria-save',
+ playlist_id = $('input[id="pl_id"]').val();
+
+ $.post(save_action, {format: "json", data: data, pl_id: playlist_id}, saveCallback);
+ });
+
+ form.find('button[id="generate_button"]').live("click", function(event){
+ var playlist_type = form.find('input:radio[name=sp_type]:checked').val(),
+ data = $('form').serializeArray(),
+ generate_action = 'Playlist/smart-playlist-generate',
playlist_id = $('input[id="pl_id"]').val();
- if (playlist_type == "0") {
- action = static_action;
- callback = staticCallback;
- } else {
- action = dynamic_action;
- callback = dynamicCallback;
- }
- $.post(action, {format: "json", data: data, pl_id: playlist_id}, callback);
+ $.post(generate_action, {format: "json", data: data, pl_id: playlist_id}, generateCallback);
});
form.find('dd[id="sp_type-element"]').live("change", function(){
- var playlist_type = $('input:radio[name=sp_type]:checked').val(),
- button_text;
+ var playlist_type = $('input:radio[name=sp_type]:checked').val();
if (playlist_type == "0") {
- button_text = 'Generate';
+ $('button[id="generate_button"]').show();
+
} else {
- button_text = 'Save';
- }
- $('button[id="save_button"]').text(button_text);
+ $('button[id="generate_button"]').hide();
+ }
});
form.find('select[id^="sp_criteria"]:not([id^="sp_criteria_modifier"])').live("change", function(){
@@ -177,7 +175,7 @@ function disableAndHideExtraField(valEle, index) {
spanExtra.children('#sp_criteria_extra_'+index).val("").attr("disabled", "disabled");
spanExtra.hide();
- //make value input larger because we don't have extra field now
+ //make value input larger since we don't have extra field now
var criteria_value = $('#sp_criteria_value_'+index);
sizeTextBoxes(criteria_value, 'sp_extra_input_text', 'sp_input_text');
}
@@ -210,7 +208,7 @@ function populateModifierSelect(e) {
}
}
-function staticCallback(data) {
+function generateCallback(data) {
var form = $('#smart-playlist-form');
form.find('span[class="errors sp-errors"]').remove();
var json = $.parseJSON(data);
@@ -229,7 +227,7 @@ function staticCallback(data) {
}
}
-function dynamicCallback(json) {
+function saveCallback(json) {
var form = $('#smart-playlist-form');
form.find('span[class="errors sp-errors"]').remove();
var json = $.parseJSON(json);
@@ -247,8 +245,8 @@ function dynamicCallback(json) {
}
function appendAddButton(rows) {
- var add_button = "
" +
- "";
+ var add_button = "
" +
+ "";
if (rows.find('select[name^="sp_criteria_field"]:enabled').length > 1) {
rows.find('select[name^="sp_criteria_field"]:enabled:last')
@@ -256,7 +254,7 @@ function appendAddButton(rows) {
.after(add_button);
} else {
rows.find('select[name^="sp_criteria_field"]:enabled')
- .siblings('[name^="sp_criteria_value"]')
+ .siblings('input:last')
.after(add_button);
}
}
diff --git a/python_apps/pypo/liquidsoap_bin b/python_apps/pypo/liquidsoap_bin
index 0653ec0b8..492242f4b 160000
--- a/python_apps/pypo/liquidsoap_bin
+++ b/python_apps/pypo/liquidsoap_bin
@@ -1 +1 @@
-Subproject commit 0653ec0b89362921f075af96ee8772538b801a7c
+Subproject commit 492242f4bb7367afebbf2f096067cb5a5d3c0449