}
}
+ protected function _isSearch(){
+ if (method_exists($this,'_searchFields'))
+ return true;
+ return false;
+ }
+
+ protected function _ListSearchQuery($request){
+ if (!$this->_isSearch())
+ return;
+ $fields = $this->_searchFields();
+ $this->search_value = @$request->GET['q'];
+ if ($this->search_value!=''){
+ foreach ($fields as $f){
+ $this->q->where($f.' like ?',array('%'.$this->search_value.'%'));
+ }
+ }
+ }
+
+
protected function _GetFilters($request){
$this->filters = array();
$rels = $this->model->getTable()->getRelations();
return method_exists($this, 'list_order');
}
- public function ListItems($request){
+ public function ListItems($request, $lapp, $lmodel){
$this->ListItemsQuery();
$this->_GetFilters($request);
+ $this->_ListSearchQuery($request);
$this->_ListFilterQuery($request);
$this->ListItemsHeader();
'perms'=>$this->getPerms($request),
'filters'=>$this->filters,
'admin_title' => IPF::get('admin_title'),
+ 'is_search' => $this->_isSearch(),
+ 'search_value' => $this->search_value,
+ 'lapp'=>$lapp,
+ 'lmodel'=>$lmodel,
);
return IPF_Shortcuts::RenderToResponse('admin/items.html', $context, $request);
}
<ul class="object-tools">{if array_search('add',$perms)!==false}<li><a href="add/" class="addlink">Add {$classname}</a></li>{/if}</ul>
<div id="changelist" class="module {if $filters} filtered{/if}">
+ {if $is_search}
+ <div id="toolbar">
+ <form id="changelist-search" method="get" action="">
+ <div>
+ <label for="searchbar">
+ <img alt="Search" src="{$ADMIN_MEDIA_URL}img/icon_searchbox.png" />
+ </label>
+ <input id="searchbar" type="text" value="{$search_value}" name="q" size="40"/>
+ <input type="submit" value="Go"/>
+ {if $search_value}
+ <span class="small quiet">{$pager->getPager()->getNumResults()} results (<a href="{url 'IPF_Admin_Views_ListItems', array($lapp, $lmodel)}">reset</a>)</span>
+ {/if}
+ </div>
+ </form>
+ </div>
+ {/if}
+
{if $filters}
<div id="changelist-filter">
<h2>Filter</h2>
$ca = IPF_Admin_App::checkAdminAuth($request);
if ($ca!==true) return $ca;
+ $lapp = $match[1];
$lmodel = $match[2];
foreach (IPF_Project::getInstance()->appList() as $app){
foreach($app->modelList() as $m){
$ma = IPF_Admin_Model::getModelAdmin($m);
if ($ma===null)
return new IPF_HTTP_Response_NotFound();
- return $ma->ListItems($request);
+ return $ma->ListItems($request, $lapp, $lmodel);
}
}
}