CC-1152 added refresh button to refresh the meta data and rerun the search.

This commit is contained in:
naomiaro 2010-08-25 12:06:47 -07:00
parent ffb47f021d
commit 8c6cddcd87
6 changed files with 112 additions and 17 deletions

View File

@ -429,7 +429,7 @@ class getid3_id3v2
} }
} }
if (!isset($thisfile_id3v2['comments']['year']) && ereg('^([0-9]{4})', trim(@$thisfile_id3v2['comments']['recording_time'][0]), $matches)) { if (!isset($thisfile_id3v2['comments']['year']) && preg_match('/^([0-9]{4})/', trim(@$thisfile_id3v2['comments']['recording_time'][0]), $matches)) {
$thisfile_id3v2['comments']['year'] = array($matches[1]); $thisfile_id3v2['comments']['year'] = array($matches[1]);
} }
@ -461,7 +461,7 @@ class getid3_id3v2
$unprocessed = substr($unprocessed, $endpos + 1); $unprocessed = substr($unprocessed, $endpos + 1);
} }
unset($unprocessed); unset($unprocessed);
} elseif (eregi('^([0-9]+|CR|RX)$', $genrestring)) { } elseif (preg_match('/^([0-9]+|CR|RX)$/', $genrestring)) {
// some tagging program (including some that use TagLib) fail to include null byte after numeric genre // some tagging program (including some that use TagLib) fail to include null byte after numeric genre
$genrestring = '('.$genrestring.')'; $genrestring = '('.$genrestring.')';
} }

View File

@ -32,7 +32,7 @@ $ui_fmask = array(
'isPref' => TRUE, 'isPref' => TRUE,
'type' => 'hidden', 'type' => 'hidden',
'label' => 'Station logo path', 'label' => 'Station logo path',
'default' => 'img/stationlogo.image', 'default' => 'img/logo.png',
'required' => TRUE, 'required' => TRUE,
), ),
array( array(
@ -440,7 +440,7 @@ $ui_fmask = array(
'attributes'=> array( 'attributes'=> array(
'onChange' => 'this.form.act.value="'.$tmpAct.'.setCategory"; this.form.submit()', 'onChange' => 'this.form.act.value="'.$tmpAct.'.setCategory"; this.form.submit()',
'style' => 'width: 180px;', 'style' => 'width: 180px;',
'id' => 'category_1' 'id' => 'category_'
) )
), ),
'value' => array( 'value' => array(
@ -450,6 +450,7 @@ $ui_fmask = array(
'attributes'=> array( 'attributes'=> array(
'size' => 10, 'size' => 10,
'class' => 'area_browse', 'class' => 'area_browse',
'id' => 'category_value_',
'onChange' => 'this.form.act.value="'.$tmpAct.'.setValue"; this.form.submit()' 'onChange' => 'this.form.act.value="'.$tmpAct.'.setValue"; this.form.submit()'
) )
) )

View File

@ -341,8 +341,6 @@ if ($uiBrowser->userid) {
break; break;
case "HUBBROWSE": case "HUBBROWSE":
//$HUBBROWSE = new uiHubBrowse($uiBrowser);
//$Smarty->assign('hubBrowseForm', $HUBBROWSE->browseForm($uiBrowser->id, $ui_fmask));
$Smarty->assign('hubBrowseForm', $uiBrowser->HUBBROWSE->browseForm($uiBrowser->id, $ui_fmask)); $Smarty->assign('hubBrowseForm', $uiBrowser->HUBBROWSE->browseForm($uiBrowser->id, $ui_fmask));
$Smarty->assign('showLibrary', TRUE); $Smarty->assign('showLibrary', TRUE);
$Smarty->assign('isHub', TRUE); $Smarty->assign('isHub', TRUE);

View File

@ -144,6 +144,10 @@ switch ($_REQUEST['act']) {
case "SEARCH.setOffset": case "SEARCH.setOffset":
$uiHandler->SEARCH->setOffset($_REQUEST['page']); $uiHandler->SEARCH->setOffset($_REQUEST['page']);
break; break;
case "BROWSE.refresh":
$uiHandler->BROWSE->refresh($_REQUEST);
break;
case "BROWSE.setCategory": case "BROWSE.setCategory":
$uiHandler->BROWSE->setCategory($_REQUEST); $uiHandler->BROWSE->setCategory($_REQUEST);

View File

@ -42,6 +42,41 @@
<!-- start browsing --> <!-- start browsing -->
<div class="container_elements" style="width: 607px;"> <div class="container_elements" style="width: 607px;">
<h1>##Browse##</h1> <h1>##Browse##</h1>
{literal}
<script language="javascript">
function setRefresh(frm){
var selected_1 = document.getElementById("category_1");
var selected_2 = document.getElementById("category_2");
var selected_3 = document.getElementById("category_3");
var value_1 = document.getElementById("category_value_1");
var value_2 = document.getElementById("category_value_2");
var value_3 = document.getElementById("category_value_3");
frm.elements['cat1'].value = selected_1[selected_1.selectedIndex].value;
frm.elements['cat2'].value = selected_2[selected_2.selectedIndex].value;
frm.elements['cat3'].value = selected_3[selected_3.selectedIndex].value;
frm.elements['val1'].value = value_1[value_1.selectedIndex].value;
frm.elements['val2'].value = value_2[value_2.selectedIndex].value;
frm.elements['val3'].value = value_3[value_3.selectedIndex].value;
}
</script>
{/literal}
<form action="ui_handler.php" method="post" name="browse_refresh" id="browse_refresh" onSubmit="setRefresh(this)">
<input name="act" type="hidden" value="BROWSE.refresh" />
<input name="cat1" type="hidden" value="" />
<input name="val1" type="hidden" value="" />
<input name="cat2" type="hidden" value="" />
<input name="val2" type="hidden" value="" />
<input name="cat3" type="hidden" value="" />
<input name="val3" type="hidden" value="" />
<input type="submit" value="Refresh metadata"/>
</form>
{assign var="_act_prefix" value="BROWSE"} {assign var="_act_prefix" value="BROWSE"}
{include file="library/browseForm.tpl"} {include file="library/browseForm.tpl"}
{BROWSE->getResult assign=_results} {BROWSE->getResult assign=_results}

View File

@ -117,8 +117,8 @@ class uiBrowse
* @return array * @return array
*/ */
public function getCriteria() public function getCriteria()
{ {
return $this->criteria; return $this->criteria;
} // fn getCriteria } // fn getCriteria
@ -128,7 +128,7 @@ class uiBrowse
public function getResult() public function getResult()
{ {
$this->searchDB(); $this->searchDB();
return $this->results; return $this->results;
} // fn getResult } // fn getResult
@ -140,16 +140,21 @@ class uiBrowse
if (isset($v['type']) && $v['type']) { if (isset($v['type']) && $v['type']) {
$tmp = uiBase::formElementEncode($v['element']); $tmp = uiBase::formElementEncode($v['element']);
$mask2['browse_columns']['category']['options'][$tmp] = tra($v['label']); $mask2['browse_columns']['category']['options'][$tmp] = tra($v['label']);
} }
} }
} }
for ($n = 1; $n <= 3; $n++) { for ($n = 1; $n <= 3; $n++) {
$form = new HTML_QuickForm('col'.$n, UI_STANDARD_FORM_METHOD, UI_HANDLER); $form = new HTML_QuickForm('col'.$n, UI_STANDARD_FORM_METHOD, UI_HANDLER);
$form->setConstants(array('id' => $id, $form->setConstants(array('id' => $id,
'col' => $n, 'col' => $n,
'category' => uiBase::formElementEncode($this->col[$n]['category']))); 'category' => uiBase::formElementEncode($this->col[$n]['category'])));
$mask2['browse_columns']['value']['options'] = $this->options($this->col[$n]['values']['results']); $mask2['browse_columns']['value']['options'] = $this->options($this->col[$n]['values']['results']);
$mask2['browse_columns']['category']['attributes']['id'] = "category_" . $n;
$mask2['browse_columns']['value']['attributes']['id'] = "category_value_" . $n;
$mask2['browse_columns']['value']['default'] = $this->col[$n]['form_value']; $mask2['browse_columns']['value']['default'] = $this->col[$n]['form_value'];
uiBase::parseArrayToForm($form, $mask2['browse_columns']); uiBase::parseArrayToForm($form, $mask2['browse_columns']);
$form->validate(); $form->validate();
@ -170,7 +175,6 @@ class uiBrowse
return $output; return $output;
} // fn browseForm } // fn browseForm
/** /**
* Set the category for audio file browser. There are three columns * Set the category for audio file browser. There are three columns
* you can set the category for. All columns greater than the current * you can set the category for. All columns greater than the current
@ -182,7 +186,7 @@ class uiBrowse
* string ['category'] - the category for the given column * string ['category'] - the category for the given column
* @return void * @return void
*/ */
public function setCategory($p_param) public function setCategory($p_param, $redirect="true")
{ {
// input values // input values
$columnNumber = $p_param['col']; $columnNumber = $p_param['col'];
@ -205,7 +209,7 @@ class uiBrowse
// way too many values. // way too many values.
$tmpCriteria["limit"] = 1000; $tmpCriteria["limit"] = 1000;
$tmpCriteria["offset"] = 0; $tmpCriteria["offset"] = 0;
// For this column and all columns above this one, // For this column and all columns above this one,
// reload the values. // reload the values.
for ($i = $columnNumber; $i <= 3; $i++) { for ($i = $columnNumber; $i <= 3; $i++) {
@ -217,7 +221,9 @@ class uiBrowse
$browseValues = null; $browseValues = null;
} }
$this->Base->redirUrl = UI_BROWSER.'?act='.$this->prefix; if($redirect) {
$this->Base->redirUrl = UI_BROWSER.'?act='.$this->prefix;
}
} // fn setCategory } // fn setCategory
@ -234,10 +240,10 @@ class uiBrowse
* See the top of that file for a description of the search * See the top of that file for a description of the search
* criteria structure. * criteria structure.
*/ */
public function setValue($p_param) public function setValue($p_param, $redirect="true")
{ {
$columnNumber = $p_param['col']; $columnNumber = $p_param['col'];
$value = $p_param['value'][0]; $value = $p_param['value'][0];
$category = $p_param['category']; $category = $p_param['category'];
$this->criteria['offset'] = 0; $this->criteria['offset'] = 0;
@ -275,9 +281,60 @@ class uiBrowse
$this->col[$tmpColNum]['values'] = $browseValues; $this->col[$tmpColNum]['values'] = $browseValues;
} }
} }
$this->Base->redirUrl = UI_BROWSER.'?act='.$this->prefix;
if($redirect) {
$this->Base->redirUrl = UI_BROWSER.'?act='.$this->prefix;
}
} // fn setValue } // fn setValue
public function refresh($p_param){
$category_1 = array(
'col' => 1,
'category' => $p_param['cat1']
);
$value_1 = array(
'col' => 1,
'category' => $p_param['cat1'],
'value' => array(
0 => $p_param['val1']
)
);
$category_2 = array(
'col' => 2,
'category' => $p_param['cat2']
);
$value_2 = array(
'col' => 2,
'category' => $p_param['cat2'],
'value' => array(
0 => $p_param['val2']
)
);
$category_3 = array(
'col' => 3,
'category' => $p_param['cat3']
);
$value_3 = array(
'col' => 3,
'category' => $p_param['cat3'],
'value' => array(
0 => $p_param['val3']
)
);
$this->setCategory($category_1, false);
$this->setCategory($category_2, false);
$this->setCategory($category_3, false);
$this->setValue($value_1, false);
$this->setValue($value_2, false);
$this->setValue($value_3, true);
}
/** /**
* Given an array of category values, prepare the array for display: * Given an array of category values, prepare the array for display: