parent
bf46605ea1
commit
ae9442d7f5
|
@ -78,6 +78,7 @@ class PlaylistController extends Zend_Controller_Action
|
|||
|
||||
$form = new Application_Form_SmartPlaylistCriteria();
|
||||
$form->removeDecorator('DtDdWrapper');
|
||||
$form->startForm($pl->getId());
|
||||
//$form->loadCriteria($pl->getId());
|
||||
$this->view->form = $form;
|
||||
|
||||
|
@ -149,6 +150,7 @@ class PlaylistController extends Zend_Controller_Action
|
|||
$pl = new Application_Model_Playlist($this->pl_sess->id);
|
||||
$this->view->pl = $pl;
|
||||
$form = new Application_Form_SmartPlaylistCriteria();
|
||||
$form->startForm($this->pl_sess->id);
|
||||
$this->view->form = $form;
|
||||
|
||||
$formatter = new LengthFormatter($pl->getLength());
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<?php
|
||||
class Application_Form_SmartPlaylistCriteria extends Zend_Form_SubForm
|
||||
{
|
||||
public function init()
|
||||
{
|
||||
public function init(){
|
||||
|
||||
}
|
||||
public function startForm($p_playlistId)
|
||||
{
|
||||
$criteriaOptions = array(
|
||||
0 => "Select criteria",
|
||||
"album_title" => "Album",
|
||||
|
@ -34,6 +36,55 @@ class Application_Form_SmartPlaylistCriteria extends Zend_Form_SubForm
|
|||
"year" => "Year"
|
||||
);
|
||||
|
||||
$criteriaTypes = array(
|
||||
0 => "",
|
||||
"album_title" => "s",
|
||||
"artist_name" => "s",
|
||||
"bit_rate" => "n",
|
||||
"bpm" => "n",
|
||||
"comments" => "s",
|
||||
"composer" => "s",
|
||||
"conductor" => "s",
|
||||
"utime" => "n",
|
||||
"mtime" => "n",
|
||||
"disc_number" => "n",
|
||||
"genre" => "s",
|
||||
"isrc_number" => "s",
|
||||
"label" => "s",
|
||||
"language" => "s",
|
||||
"length" => "n",
|
||||
"lyricist" => "s",
|
||||
"mood" => "s",
|
||||
"name" => "s",
|
||||
"orchestra" => "s",
|
||||
"radio_station_name" => "s",
|
||||
"rating" => "n",
|
||||
"sample_rate" => "n",
|
||||
"soundcloud_id" => "n",
|
||||
"track_title" => "s",
|
||||
"track_num" => "n",
|
||||
"year" => "n"
|
||||
);
|
||||
|
||||
$stringCriteriaOptions = array(
|
||||
"0" => "Select modifier",
|
||||
"contains" => "contains",
|
||||
"does not contain" => "does not contain",
|
||||
"is" => "is",
|
||||
"is not" => "is not",
|
||||
"starts with" => "starts with",
|
||||
"ends with" => "ends with"
|
||||
);
|
||||
|
||||
$numericCriteriaOptions = array(
|
||||
"0" => "Select modifier",
|
||||
"is" => "is",
|
||||
"is not" => "is not",
|
||||
"is greater than" => "is greater than",
|
||||
"is less than" => "is less than",
|
||||
"is in the range" => "is in the range"
|
||||
);
|
||||
|
||||
$limitOptions = array(
|
||||
"hours" => "hours",
|
||||
"minutes" => "minutes",
|
||||
|
@ -55,40 +106,80 @@ class Application_Form_SmartPlaylistCriteria extends Zend_Form_SubForm
|
|||
$spType->setValue('Static');
|
||||
$this->addElement($spType);
|
||||
|
||||
// load criteria from db
|
||||
$c = new Criteria();
|
||||
$c->add(CcPlaylistcriteriaPeer::PLAYLIST_ID, $p_playlistId);
|
||||
$out = CcPlaylistcriteriaPeer::doSelect($c);
|
||||
|
||||
$storedCrit = array();
|
||||
foreach ($out as $crit) {
|
||||
$criteria = $crit->getDbCriteria();
|
||||
$modifier = $crit->getDbModifier();
|
||||
$value = $crit->getDbValue();
|
||||
$extra = $crit->getDbExtra();
|
||||
|
||||
if($criteria == "limit"){
|
||||
$storedCrit["limit"] = array("value"=>$value, "modifier"=>$modifier);
|
||||
}else{
|
||||
$storedCrit["crit"][] = array("criteria"=>$criteria, "value"=>$value, "modifier"=>$modifier, "extra"=>$extra);
|
||||
}
|
||||
}
|
||||
|
||||
$numElements = count($criteriaOptions);
|
||||
for ($i = 0; $i < $numElements; $i++) {
|
||||
$criteriaType = "";
|
||||
$criteria = new Zend_Form_Element_Select('sp_criteria_field_'.$i);
|
||||
$criteria->setAttrib('class', 'input_select');
|
||||
$criteria->setValue('Select criteria');
|
||||
$criteria->setDecorators(array('viewHelper'));
|
||||
$criteria->setMultiOptions($criteriaOptions);
|
||||
if ($i != 0){
|
||||
$criteria->setAttrib('class', 'input_select')
|
||||
->setValue('Select criteria')
|
||||
->setDecorators(array('viewHelper'))
|
||||
->setMultiOptions($criteriaOptions);
|
||||
if ($i != 0 && !isset($storedCrit["crit"][$i])){
|
||||
$criteria->setAttrib('disabled', 'disabled');
|
||||
}
|
||||
if (isset($storedCrit["crit"][$i])) {
|
||||
$criteriaType = $criteriaTypes[$storedCrit["crit"][$i]["criteria"]];
|
||||
$criteria->setValue($storedCrit["crit"][$i]["criteria"]);
|
||||
}
|
||||
$this->addElement($criteria);
|
||||
|
||||
$criteriaModifers = new Zend_Form_Element_Select('sp_criteria_modifier_'.$i);
|
||||
$criteriaModifers->setValue('Select modifier');
|
||||
$criteriaModifers->setAttrib('class', 'input_select');
|
||||
$criteriaModifers->setDecorators(array('viewHelper'));
|
||||
$criteriaModifers->setMultiOptions(array('0' => 'Select modifier'));
|
||||
if ($i != 0){
|
||||
$criteriaModifers->setValue('Select modifier')
|
||||
->setAttrib('class', 'input_select')
|
||||
->setDecorators(array('viewHelper'));
|
||||
if ($i != 0 && !isset($storedCrit["crit"][$i])){
|
||||
$criteriaModifers->setAttrib('disabled', 'disabled');
|
||||
}
|
||||
if (isset($storedCrit["crit"][$i])) {
|
||||
if($criteriaType == "s"){
|
||||
$criteriaModifers->setMultiOptions($stringCriteriaOptions);
|
||||
}else{
|
||||
$criteriaModifers->setMultiOptions($numericCriteriaOptions);
|
||||
}
|
||||
$criteriaModifers->setValue($storedCrit["crit"][$i]["modifier"]);
|
||||
}else{
|
||||
$criteriaModifers->setMultiOptions(array('0' => 'Select modifier'));
|
||||
}
|
||||
$this->addElement($criteriaModifers);
|
||||
|
||||
$criteriaValue = new Zend_Form_Element_Text('sp_criteria_value_'.$i);
|
||||
$criteriaValue->setAttrib('class', 'input_text');
|
||||
$criteriaValue->setDecorators(array('viewHelper'));
|
||||
if ($i != 0){
|
||||
$criteriaValue->setAttrib('class', 'input_text')
|
||||
->setDecorators(array('viewHelper'));
|
||||
if ($i != 0 && !isset($storedCrit["crit"][$i])){
|
||||
$criteriaValue->setAttrib('disabled', 'disabled');
|
||||
}
|
||||
if (isset($storedCrit["crit"][$i])) {
|
||||
$criteriaValue->setValue($storedCrit["crit"][$i]["value"]);
|
||||
}
|
||||
$this->addElement($criteriaValue);
|
||||
|
||||
$criteriaExtra = new Zend_Form_Element_Text('sp_criteria_extra_'.$i);
|
||||
$criteriaExtra->setAttrib('class', 'input_text');
|
||||
$criteriaExtra->setDecorators(array('viewHelper'));
|
||||
$criteriaExtra->setAttrib('disabled', 'disabled');
|
||||
$criteriaExtra->setAttrib('class', 'input_text')
|
||||
->setDecorators(array('viewHelper'));
|
||||
if (isset($storedCrit["crit"][$i]["extra"])) {
|
||||
$criteriaExtra->setValue($storedCrit["crit"][$i]["extra"]);
|
||||
}else{
|
||||
$criteriaExtra->setAttrib('disabled', 'disabled');
|
||||
}
|
||||
$this->addElement($criteriaExtra);
|
||||
}
|
||||
|
||||
|
@ -96,6 +187,11 @@ class Application_Form_SmartPlaylistCriteria extends Zend_Form_SubForm
|
|||
$limit->setAttrib('class', 'input_select');
|
||||
$limit->setDecorators(array('viewHelper'));
|
||||
$limit->setMultiOptions($limitOptions);
|
||||
if (isset($storedCrit["limit"])) {
|
||||
$limit->setValue($storedCrit["limit"]["modifier"]);
|
||||
}else{
|
||||
$limit->setAttrib('disabled', 'disabled');
|
||||
}
|
||||
$this->addElement($limit);
|
||||
|
||||
$limitValue = new Zend_Form_Element_Text('sp_limit_value');
|
||||
|
@ -103,6 +199,11 @@ class Application_Form_SmartPlaylistCriteria extends Zend_Form_SubForm
|
|||
$limitValue->setLabel('Limit to');
|
||||
$limitValue->setDecorators(array('viewHelper'));
|
||||
$this->addElement($limitValue);
|
||||
if (isset($storedCrit["limit"])) {
|
||||
$limitValue->setValue($storedCrit["limit"]["value"]);
|
||||
}else{
|
||||
$limitValue->setAttrib('disabled', 'disabled');
|
||||
}
|
||||
|
||||
$save = new Zend_Form_Element_Button('save_button');
|
||||
$save->setAttrib('class', 'ui-button ui-state-default right-floated');
|
||||
|
@ -125,16 +226,15 @@ class Application_Form_SmartPlaylistCriteria extends Zend_Form_SubForm
|
|||
$extra = $crit->getDbExtra();
|
||||
|
||||
if($criteria == "limit"){
|
||||
$this->getElement("sp_limit_options")->setValue($modifier);
|
||||
$this->getElement("sp_limit_value")->setValue($value);
|
||||
Zend_Form::getElement("sp_limit_options")->setValue($modifier);
|
||||
Zend_Form::getElement("sp_limit_value")->setValue($value);
|
||||
}else{
|
||||
$this->getElement("sp_criteria_$i")->setValue($criteria);
|
||||
$this->getElement("sp_criteria_modifier_$i")->setValue($criteria);
|
||||
$this->getElement("sp_criteria_value_$i")->setValue($criteria);
|
||||
|
||||
Zend_Form::getElement("sp_criteria_$i")->setValue($criteria);
|
||||
Zend_Form::getElement("sp_criteria_modifier_$i")->setValue($criteria);
|
||||
Zend_Form::getElement("sp_criteria_value_$i")->setValue($criteria);
|
||||
Zend_Form::getElement("sp_criteria_extra_$i")->setValue($criteria);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
Logging::log($out);
|
||||
}
|
||||
}
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
<?php echo $this->element->getElement('sp_criteria_field_'.$i) ?>
|
||||
<?php echo $this->element->getElement('sp_criteria_modifier_'.$i) ?>
|
||||
<?php echo $this->element->getElement('sp_criteria_value_'.$i) ?><span id="extra_criteria" style="display:none;"> to <?php echo $this->element->getElement('sp_criteria_extra_'.$i) ?></span>
|
||||
<?php echo $this->element->getElement('sp_criteria_value_'.$i) ?><span id="extra_criteria" <?php echo $this->element->getElement('sp_criteria_extra_'.$i)->getAttrib("disabled") == "disabled"?'style="display:none;"':""?>> to <?php echo $this->element->getElement('sp_criteria_extra_'.$i) ?></span>
|
||||
<?php if ($i != 0) { ?>
|
||||
<a href='#' id='criteria_remove_<?php echo $i ?>'>Remove </a>
|
||||
<?php } else { ?>
|
||||
|
|
|
@ -238,7 +238,7 @@ var criteriaTypes = {
|
|||
"album_title" : "s",
|
||||
"artist_name" : "s",
|
||||
"bit_rate" : "n",
|
||||
"bmp" : "n",
|
||||
"bpm" : "n",
|
||||
"comments" : "s",
|
||||
"composer" : "s",
|
||||
"conductor" : "s",
|
||||
|
|
Loading…
Reference in New Issue