*** empty log message ***

This commit is contained in:
sebastian 2005-03-01 22:00:40 +00:00
parent 77d3d8a451
commit b1e464a1ef
17 changed files with 371 additions and 60 deletions

View File

@ -26,7 +26,7 @@ $ui_fmask = array(
),
array(
'rule' => 'nopunctuation',
'element' => 'maxfilesize',
'element' => 'stationMaxfilesize',
),
array(
'element' => 'stationFrequency',
@ -327,7 +327,7 @@ $ui_fmask = array(
array(
'element' => 'act',
'type' => 'hidden',
'constant' => 'SEARCH.newsearch'
'constant' => 'SEARCH.newSearch'
),
array(
'element' => 'id',
@ -429,8 +429,97 @@ $ui_fmask = array(
)
)
),
'browse' => array(
array(
'element' => 'act',
'type' => 'hidden',
),
array(
'element' => 'id',
'type' => 'hidden'
),
'form' => array(
'element' => 'col',
'type' => 'hidden'
),
'category' => array(
'element' => 'category',
'type' => 'select',
'label' => 'Category',
'attributes'=> array('onChange' => 'this.form.act.value="BROWSE.setCategory"; this.form.submit()')
),
'value' => array(
'element' => 'value',
'type' => 'select',
'multiple' => TRUE,
'attributes'=> array(
'size' => 10,
'STYLE' => 'width: 220px',
'onChange' => 'this.form.act.value="BROWSE.setValue"; this.form.submit()')
)
/*
array(
'element' => 'operator',
'type' => 'select',
'label' => 'Operator',
'options' => array(
'or' => 'Or',
'and' => 'And',
)
),
array(
'element' => 'filetype',
'type' => 'select',
'label' => 'Filetype',
'options' => array(
'File' => '*',
'audioclip' => 'Audioclip',
'webstream' => 'Webstream',
'playlist' => 'Playlist'
)
),
array(
'element' => 'limit',
'type' => 'select',
'label' => 'Rows per Page',
'options' => array(
1 => 1,
5 => 5,
10 => 10,
25 => 25,
50 => 50,
100 => 100
)
),
array(
'element' => 'clear',
'type' => 'button',
'label' => 'Clear',
'attributes' => array('onClick' => "this.form.reset(); hpopup('".UI_HANDLER."?act=SEARCH.clear', 'SF')"),
'groupit' => TRUE,
),
array(
'element' => 'addrow',
'type' => 'button',
'label' => 'One more Row',
'attributes' => array('onClick' => 'SearchForm_addRow()'),
'groupit' => TRUE,
),
array(
'element' => 'submit',
'type' => 'submit',
'label' => 'Submit',
'groupit' => TRUE,
),
array('group' => array('clear', 'addrow', 'submit')
), */
),
'PL.changeTransition' => array(
'transition' => array(
array(
'element' => 'headline',
'type' => 'static'
),
array(
'element' => 'type',
'type' => 'radio',
@ -443,6 +532,10 @@ $ui_fmask = array(
)
),
'fadeIn' => array(
array(
'element' => 'headline',
'type' => 'static'
),
array(
'element' => 'type',
'type' => 'radio',
@ -452,13 +545,17 @@ $ui_fmask = array(
)
),
'fadeOut' => array(
array(
array(
'element' => 'headline',
'type' => 'static'
),
array(
'element' => 'type',
'type' => 'radio',
'label' => 'Type',
'options' => array('fadeOut' => 'Fade out'),
'default' => 'fadeOut'
)
)
),
'all' => array(
array(

View File

@ -55,6 +55,7 @@ if ($uiBrowser->userid) {
$Smarty->assign('SCRATCHPAD', $uiBrowser->SCRATCHPAD->get());
$Smarty->assign('PLid', $uiBrowser->PLAYLIST->activeId);
$Smarty->register_object('PL', $uiBrowser->PLAYLIST);
$Smarty->register_object('BROWSE', $uiBrowser->BROWSE);
switch ($_REQUEST['act']){
case "fileBrowse":
@ -105,15 +106,27 @@ if ($uiBrowser->userid) {
case "SEARCH":
if (is_array($uiBrowser->SEARCH->criteria['form']) ){
$Smarty->assign('searchResults', $uiBrowser->SEARCH->results);
$Smarty->assign('showSearchResults', TRUE);
};
$Smarty->assign('searchForm', $uiBrowser->SEARCH->form($uiBrowser->id, $ui_fmask));
$Smarty->assign('showLibrary', TRUE);
break;
case "BROWSE":
/*
if (is_array($uiBrowser->SEARCH->criteria) ){
$Smarty->assign('searchres', $uiBrowser->SEARCH->results);
$Smarty->assign('showSearchRes', TRUE);
};
}; */
$Smarty->assign('searchform', $uiBrowser->SEARCH->form($uiBrowser->id, $ui_fmask));
$Smarty->assign('showSearchForm', TRUE);
$Smarty->assign('browseForm', $uiBrowser->BROWSE->browseForm($uiBrowser->id, $ui_fmask));
$Smarty->assign('showLibrary', TRUE);
break;
break;
case "subjects":
case "addUser":
@ -159,9 +172,10 @@ if ($uiBrowser->userid) {
break;
case "PL.simpleManagement":
if ($_REQUEST['createNew']) {
$uiBrowser->PLAYLIST->testNew();
#$Smarty->assign('PLAYLIST', $uiBrowser->PLAYLIST->get());
if ($uiBrowser->PLAYLIST->get() === FALSE) {
if (($ui_tmpid = $uiBrowser->PLAYLIST->create($_REQUEST['id'])) !== FALSE) {
$uiBrowser->SCRATCHPAD->addItem($ui_tmpid);
}
}
$Smarty->assign('PL_simpleManagement', TRUE);
break;

View File

@ -131,8 +131,8 @@ switch($_REQUEST['act']){
$uiHandler->SCRATCHPAD->setReload();
break;
case "SEARCH.newsearch":
$uiHandler->SEARCH->newsearch($_REQUEST);
case "SEARCH.newSearch":
$uiHandler->SEARCH->newSearch($_REQUEST);
break;
case "SEARCH.reOrder":
@ -147,6 +147,14 @@ switch($_REQUEST['act']){
$uiHandler->SEARCH->setOffset($_REQUEST['page']);
break;
case "BROWSE.setCategory":
$uiHandler->BROWSE->setCategory($_REQUEST);
break;
case "BROWSE.setValue":
$uiHandler->BROWSE->setValue($_REQUEST);
break;
case "PL.activate":
$uiHandler->PLAYLIST->setReload();
if ($uiHandler->PLAYLIST->activate($_REQUEST['id']) === TRUE) {
@ -177,6 +185,11 @@ switch($_REQUEST['act']){
$uiHandler->PLAYLIST->setReload();
break;
case "PL.save":
$uiHandler->PLAYLIST->save();
$uiHandler->PLAYLIST->setReload();
break;
case "PL.revert":
$uiHandler->PLAYLIST->revert();
$uiHandler->PLAYLIST->setReload();

View File

@ -20,8 +20,8 @@
{include file="fileBrowse/fileBrowse.tpl"}
{/if}
{if ($showSearchForm || $showSearchRes)}
{include file="search/search.tpl"}
{if $showLibrary}
{include file="library/main.tpl"}
{/if}
{if $showSubjects}
@ -44,7 +44,7 @@
{include file="changeStationPrefs.tpl"}
{/if}
{if $PL_simpleManagement}
{if $PL_simpleManagement}
{include file="playlist/simpleManagement.tpl"}
{/if}

View File

@ -6,6 +6,7 @@
<a href="{$UI_BROWSER}?id={$START.fid}&act=PL.simpleManagement">[PL Editor]</a>
<a href="javascript:newFolder()">[Create&nbsp;new&nbsp;folder]</a>
<a href="{$UI_BROWSER}?id={$START.id}&act=SEARCH">[Search]</a>
<a href="{$UI_BROWSER}?id={$START.id}&act=BROWSE">[Browse]</a>
<a href="{$UI_BROWSER}?id={$START.id}&act=subjects">{tra 0='[User/Groups]'}</a>
<!-- <a href="{$UI_BROWSER}?act=MetaDataValues&Main=1">[Metadata]</a> -->
<a href="{$UI_BROWSER}?act=changeStationPrefs">[StationPrefs]</a>

View File

@ -31,6 +31,6 @@
</tr>
<tr>
<td colspan="2"><input type="button" value="Save & Release" onClick="hpopup('{$UI_HANDLER}?act=PL.release')"></td>
<td colspan="2"><input type="button" value="Save Changes" onClick="hpopup('{$UI_HANDLER}?act=PL.save')"></td>
<td colspan="2"><input type="button" value="Revert all Changes" onClick="hpopup('{$UI_HANDLER}?act=PL.revert')"></td>
</tr>

View File

@ -0,0 +1,34 @@
{*Smarty template*}
{* {include file="script/search.js.tpl"} *}
{literal}
<style type="text/css">
.dynformelement {
width : 250px;
}
</style>
{/literal}
<div id="searchform">
{include file="sub/x.tpl"}
<table>
<tr>
{foreach from=$browseForm item=form}
<td>
{foreach from=$form item=dynform}
{include file="sub/dynForm_plain.tpl"}
{/foreach}
</td>
{/foreach}
</tr>
</table>
<table>
{BROWSE->endResult assign=endResult}
{$endResult}
</table>
</div

View File

@ -0,0 +1,13 @@
{*Smarty template*}
{if $searchForm}
{include file="library/searchForm.tpl"}
{/if}
{if $showSearchResults}
{include file="library/searchResults.tpl"}
{/if}
{if $browseForm}
{include file="library/browseForm.tpl"}
{/if}

View File

@ -1,7 +0,0 @@
{*Smarty template*}
{include file="search/form.tpl"}
{if $showSearchRes}
{include file="search/results.tpl"}
{/if}

View File

@ -13,7 +13,7 @@
<div id="searchform">
{include file="sub/x.tpl"}
<center>
{foreach from=$searchform item=dynform}
{foreach from=$searchForm item=dynform}
{include file="sub/dynForm_plain.tpl"}
{/foreach}
</center>

View File

@ -1,8 +1,8 @@
{*Smarty template*}
<div id="searchres">
<center>
{if $searchres.count > 0}
{if $searchResults.count > 0}
<table border="0" width="50%">
<tr style="background-color: {cycle values='#eeeeee, #dadada'}">
<td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act=SEARCH.reOrder&by=title', 'order');">{tra 0=Title}</a></td>
@ -10,7 +10,7 @@
<td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act=SEARCH.reOrder&by=extent', 'order');">{tra 0=Duration}</a></td>
<td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act=SEARCH.reOrder&by=type', 'order');">{tra 0=Type}</a></td>
</tr>
{foreach from=$searchres.items item=i}
{foreach from=$searchResults.items item=i}
<tr style="background-color: {cycle values='#eeeeee, #dadada'}" {assign var="moreContextBefore" value=", 'SP.addItem'"}{include file="sub/contextmenu.tpl"}>
<td align="center">
{if $PLAYLIST.id == $i.id}
@ -32,17 +32,17 @@
{/foreach}
<tr>
<td>
{if $searchres.prev}<a href="#" onClick="hpopup('{$UI_HANDLER}?act=SEARCH.setOffset&page=prev', 'pager')">back</a>{/if}
{if $searchResults.prev}<a href="#" onClick="hpopup('{$UI_HANDLER}?act=SEARCH.setOffset&page=prev', 'pager')">back</a>{/if}
</td>
<td>count: {$searchres.count}</td>
<td>count: {$searchResults.count}</td>
<td>
go:
{foreach from=$searchres.pages item=p key=k}
{foreach from=$searchResults.pages item=p key=k}
<a href="#" onClick="hpopup('{$UI_HANDLER}?act=SEARCH.setOffset&page={$k}', 'pager')">{$p}</a>
{/foreach}
</td>
<td align="right">
{if $searchres.next}<a href="#" onClick="hpopup('{$UI_HANDLER}?act=SEARCH.setOffset&page=next', 'pager')">forward</a>{/if}
{if $searchResults.next}<a href="#" onClick="hpopup('{$UI_HANDLER}?act=SEARCH.setOffset&page=next', 'pager')">forward</a>{/if}
</td>
</tr>
<tr><td colspan="4">

View File

@ -105,6 +105,7 @@ class uiBase
$this->STATIONPREFS =& $_SESSION[UI_STATIONINFO_SESSNAME];
$this->SCRATCHPAD =& new uiScratchPad($this);
$this->SEARCH =& new uiSearch($this);
$this->BROWSE =& new uiBrowse($this);
$this->PLAYLIST =& new uiPlaylist($this);
}
@ -257,16 +258,14 @@ class uiBase
if ($format=='text') {
return "<div align='left'><pre>".var_export($ia, TRUE)."</pre></div>";
} elseif ($format=='xml') {
return
'<?xml version="1.0" encoding="utf-8"?>
<audioClip>
<metadata
xmlns="http://www.streamonthefly.org/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:xbmf="http://www.streamonthefly.org/xbmf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
return '<?xml version="1.0" encoding="utf-8"?>
<audioClip>
<metadata
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:ls="http://mdlf.org/livesupport/elements/1.0/"
>
<dc:title>'.$this->_getFileTitle($id).'</dc:title>
<dcterms:extent>'.date('H:i:s', round($s)-date('Z')).substr(number_format($s, 6), strpos(number_format($s, 6), '.')).'</dcterms:extent>
</metadata>

View File

@ -0,0 +1,124 @@
<?php
class uiBrowse
{
function uiBrowse(&$uiBase)
{
$this->Base =& $uiBase;
$this->col =& $_SESSION[UI_BROWSE_SESSNAME]['col'];
$this->reloadUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=_close';
if (!is_array($this->col)) {
$this->col[1]['category'] = 'dc:title';
$this->col[2]['category'] = 'dc:creator';
$this->col[3]['category'] = 'dc:source';
$this->setCategory(array('col' => 1, 'category' => $this->col[1]['category']));
}
#print_r($this->col);
}
function setReload()
{
$this->Base->redirUrl = $this->reloadUrl;
}
function browseForm($id, $mask2)
{
include dirname(__FILE__).'/formmask/metadata.inc.php';
foreach ($mask['pages'] as $key=>$val) {
foreach ($mask['pages'][$key] as $v){
if (!$v['rule']) $mask2['browse']['category']['options'][$this->Base->_formElementEncode($v['element'])] = $v['label'];
}
};
for($n=1; $n<=3; $n++) {
$form = new HTML_QuickForm('col'.$n, UI_STANDARD_FORM_METHOD, UI_HANDLER);
$form->setConstants(array('id' => $id, 'col' => $n, 'category' => $this->Base->_formElementEncode($this->col[$n]['category'])));
$mask2['browse']['value']['options'] = $this->_options($this->col[$n]['values']['results']);
$mask2['browse']['value']['default'] = $this->col[$n]['form_value'];
$this->Base->_parseArr2Form($form, $mask2['browse']);
$form->validate();
$renderer =& new HTML_QuickForm_Renderer_Array(true, true);
$form->accept($renderer);
$output[$n]['dynform'] = $renderer->toArray();
}
#print_r($output);
return $output;
}
function setCategory($formdata)
{
$which = $formdata['col'];
$this->col[$which]['category'] = $this->Base->_formElementDecode($formdata['category']);
$this->col[$which]['values'] = $this->Base->gb->browseCategory($this->col[$which]['category'], $this->col[$which]['criteria'], $this->Base->sessid);
$this->Base->redirUrl = UI_BROWSER.'?act=BROWSE';
$this->clearHierarchy($which);
#print_r($this->col);
}
function setValue($formdata)
{
$which = $formdata['col'];
$next = $which + 1;
$this->col[$which]['form_value'] = $formdata['value'][0];
if ($formdata['value'][0] == '%%all%%') {
$this->col[$next]['criteria'] = NULL;
} else {
$this->col[$next]['criteria'] = array('conditions' =>
array(
array('cat' => $this->Base->_formElementDecode($formdata['category']),
'op' => '=',
'val' => $formdata['value'][0]
)
)
);
}
$this->col[$next]['values'] = $this->Base->gb->browseCategory($this->col[$next]['category'], $this->col[$next]['criteria'], $this->Base->sessid);
#echo "cat: ".$this->col[$next]['category']."\n";
#echo "criteria: "; print_r($this->col[$next]['criteria']);
#echo "\nvalues: "; print_r($this->col[$next]['values']);
$this->clearHierarchy($next);
$this->Base->redirUrl = UI_BROWSER.'?act=BROWSE';
}
function _options($arr)
{ $ret['%%all%%'] = '---all---';
if (is_array($arr)) {
foreach ($arr as $val)
$ret[$val] = $val;
}
return $ret;
}
function clearHierarchy($which)
{
$this->col[$which]['form_value'] = NULL;
$which++;
for ($col=$which; $col<=3; $col++) {
#$this->col[$col]['criteria'] = NULL;
$this->col[$col]['values'] = NULL;
$this->col[$col]['form_value'] = NULL;
}
}
function endResult()
{
for($col=1; $col<=3; $col++) {
#print_r($this->col[$col]);
}
#$this->result = $this->Base->gb->localSearch($this->col[3]['criteria'], $this->Base->sessid);
#print_r($this->result);
}
}
?>

View File

@ -8,6 +8,7 @@ require_once dirname(__FILE__).'/ui_browser.class.php';
require_once dirname(__FILE__).'/ui_scratchpad.class.php';
require_once dirname(__FILE__).'/ui_playlist.class.php'; #
require_once dirname(__FILE__).'/ui_search.class.php';
require_once dirname(__FILE__).'/ui_browse.class.php';
require_once dirname(__FILE__).'/../../storageServer/var/GreenBox.php';
require_once dirname(__FILE__).'/formmask/general.inc.php';

View File

@ -9,6 +9,7 @@ require_once dirname(__FILE__).'/ui_handler.class.php';
require_once dirname(__FILE__).'/ui_scratchpad.class.php';
require_once dirname(__FILE__).'/ui_playlist.class.php';
require_once dirname(__FILE__).'/ui_search.class.php';
require_once dirname(__FILE__).'/ui_browse.class.php';
require_once dirname(__FILE__).'/../../storageServer/var/GreenBox.php';
require_once dirname(__FILE__).'/formmask/general.inc.php';

View File

@ -23,7 +23,7 @@ class uiPlaylist
return $this->Base->gb->getPlaylistArray($this->activeId, $this->Base->sessid);
}
function activate($plid)
function activate($plid, $msg=TRUE)
{
# test if PL available
# look PL
@ -40,11 +40,11 @@ class uiPlaylist
$this->token = $this->Base->gb->lockPlaylistForEdit($plid, $this->Base->sessid);
$this->Base->gb->savePref($this->Base->sessid, UI_PL_ACCESSTOKEN_KEY, $plid.':'.$this->token);
$this->activeId = $plid;
$this->Base->_retMsg('Playlist "$1" activated', $this->Base->_getMDataValue($plid, UI_MDATA_KEY_TITLE));
if ($msg) $this->Base->_retMsg('Playlist "$1" activated', $this->Base->_getMDataValue($plid, UI_MDATA_KEY_TITLE));
return TRUE;
}
function release()
function release($msg=TRUE)
{
# get token from ls_pref
# release PL
@ -59,7 +59,7 @@ class uiPlaylist
$this->Base->_retMsg('Unable to release Playlist');
return FALSE;
}
$this->Base->_retMsg('Playlist "$1" released', $this->Base->_getMDataValue($this->Base->gb->_idFromGunid($plgunid), UI_MDATA_KEY_TITLE));
if($msg) $this->Base->_retMsg('Playlist "$1" released', $this->Base->_getMDataValue($this->Base->gb->_idFromGunid($plgunid), UI_MDATA_KEY_TITLE));
$this->activeId = NULL;
$this->token = NULL;
$this->Base->gb->delPref($this->Base->sessid, UI_PL_ACCESSTOKEN_KEY);
@ -67,6 +67,17 @@ class uiPlaylist
}
function save()
{
$tmpid = $this->activeId;
$this->release(FALSE);
$this->activate($tmpid, FALSE);
$this->Base->_retMsg('Playlist "$1" saved', $this->Base->_getMDataValue($tmpid, UI_MDATA_KEY_TITLE));
return TRUE;
}
function revert()
{
if(!$this->token) {
@ -78,10 +89,12 @@ class uiPlaylist
$this->Base->_retMsg('Unable to revert to looked state');
return FALSE;
}
$this->Base->_retMsg('Playlist "$1" reverted and released', $this->Base->_getMDataValue($this->Base->gb->_idFromGunid($plgunid), UI_MDATA_KEY_TITLE));
$this->Base->_retMsg('Playlist "$1" reverted', $this->Base->_getMDataValue($this->Base->gb->_idFromGunid($plgunid), UI_MDATA_KEY_TITLE));
$this->activeId = NULL;
$this->token = NULL;
$this->Base->gb->delPref($this->Base->sessid, UI_PL_ACCESSTOKEN_KEY);
$this->activate($this->Base->gb->_idFromGunid($plgunid), FALSE);
return TRUE;
}
@ -101,8 +114,8 @@ class uiPlaylist
function addItem($id)
{
if ($this->Base->gb->addAudioClipToPlaylist($this->token, $id, $this->Base->sessid) === FALSE) {
$this->Base_retMsg('Cannot add Item to Playlist');
if (PEAR::isError($this->Base->gb->addAudioClipToPlaylist($this->token, $id, $this->Base->sessid))) {
$this->Base->_retMsg('Cannot add Item to Playlist');
return FALSE;
}
return TRUE;
@ -257,24 +270,30 @@ class uiPlaylist
function changeTransitionForm($id, $type, &$mask)
{
$form = new HTML_QuickForm('PL_changeTransition', UI_STANDARD_FORM_METHOD, UI_HANDLER);
$s = $this->getCurrElement($id);
switch ($type) {
case "fadeIn":
$d = $this->getCurrElement($id);
$duration = $d['fadein_ms'];
$form->setConstants(array('headline' => '<b>'.$s['title'].'</b>'));
break;
case "transition":
$d = $this->getPrevElement($id);
$duration = $d['fadein_ms'];
$duration = $d['fadeout_ms'];
$form->setConstants(array('headline' => '<b>'.$d['title'].'</b> <-> <b>'.$s['title'].'</b>'));
break;
case "fadeOut":
$d = $this->getCurrElement($id);
$duration = $d['fadeout_ms'];
$form->setConstants(array('headline' => '<b>'.$s['title'].'</b>'));
break;
}
$form = new HTML_QuickForm('PL_changeTransition', UI_STANDARD_FORM_METHOD, UI_HANDLER);
$form->setConstants(array('id' => $id,
'duration' => $duration));
'duration' => $duration)
);
$this->Base->_parseArr2Form($form, $mask[$type]);
$this->Base->_parseArr2Form($form, $mask['all']);
$renderer =& new HTML_QuickForm_Renderer_Array(true, true);

View File

@ -20,13 +20,15 @@ class uiSearch
$form = new HTML_QuickForm('search', UI_STANDARD_FORM_METHOD, UI_HANDLER);
$form->setConstants(array('id'=>$id, 'counter'=>$this->criteria['counter'] ? $this->criteria['counter'] : UI_SEARCH_MIN_ROWS));
foreach ($mask['pages'] as $k=>$v) {
foreach ($mask['pages'][$k] as $val){
$col1[$this->Base->_formElementEncode($val['element'])] = $val['label'];
if (isset($val['relation']))
$col2[$this->Base->_formElementEncode($val['element'])] = $mask2['relations'][$val['relation']];
else
$col2[$this->Base->_formElementEncode($val['element'])] = $mask2['relations']['standard'];
foreach ($mask['pages'] as $key=>$val) {
foreach ($mask['pages'][$key] as $v){
if (!$v['rule']) {
$col1[$this->Base->_formElementEncode($v['element'])] = $v['label'];
if (isset($val['relation']))
$col2[$this->Base->_formElementEncode($v['element'])] = $mask2['relations'][$v['relation']];
else
$col2[$this->Base->_formElementEncode($v['element'])] = $mask2['relations']['standard'];
}
};
};
for($n=1; $n<=UI_SEARCH_MAX_ROWS; $n++) {
@ -52,7 +54,7 @@ class uiSearch
}
function newsearch(&$formdata)
function newSearch(&$formdata)
{
$this->results = NULL;
$this->criteria['conditions'] = NULL;