* finish task #962.

This commit is contained in:
wangyidong
2012-12-11 07:40:07 +00:00
parent 32ff8ff4a6
commit f68b255509
5 changed files with 100 additions and 5 deletions
+39
View File
@@ -7,6 +7,7 @@ $config->company->edit->requiredFields = 'name,pms';
global $lang, $app;
$app->loadLang('action');
$app->loadLang('user');
$config->company->dynamic = new stdclass();
$config->company->dynamic->search['module'] = 'action';
$config->company->dynamic->search['fields']['product'] = $lang->action->product;
@@ -24,3 +25,41 @@ $config->company->dynamic->search['params']['project'] = array('operator' =>
$config->company->dynamic->search['params']['objectType'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->action->search->objectTypeList);
$config->company->dynamic->search['params']['date'] = array('operator' => '>=', 'control' => 'input', 'values' => '');
$config->company->dynamic->search['params']['action'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->action->search->label);
$config->company->browse = new stdClass();
$config->company->browse->search['module'] = 'user';
$config->company->browse->search['fields']['realname'] = $lang->user->realname;
$config->company->browse->search['fields']['email'] = $lang->user->email;
$config->company->browse->search['fields']['dept'] = $lang->user->dept;
$config->company->browse->search['fields']['account'] = $lang->user->account;
$config->company->browse->search['fields']['phone'] = $lang->user->phone;
$config->company->browse->search['fields']['join'] = $lang->user->join;
$config->company->browse->search['fields']['id'] = $lang->user->id;
$config->company->browse->search['fields']['commiter'] = $lang->user->commiter;
$config->company->browse->search['fields']['birthday'] = $lang->user->birthyear;
$config->company->browse->search['fields']['gender'] = $lang->user->gender;
$config->company->browse->search['fields']['qq'] = $lang->user->qq;
$config->company->browse->search['fields']['msn'] = $lang->user->msn;
$config->company->browse->search['fields']['yahoo'] = $lang->user->yahoo;
$config->company->browse->search['fields']['gtalk'] = $lang->user->gtalk;
$config->company->browse->search['fields']['wangwang'] = $lang->user->wangwang;
$config->company->browse->search['fields']['address'] = $lang->user->address;
$config->company->browse->search['fields']['zipcode'] = $lang->user->zipcode;
$config->company->browse->search['params']['dept'] = array('operator' => 'belong', 'control' => 'select', 'values' => '');
$config->company->browse->search['params']['realname'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['account'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['commiter'] = array('operator' => 'include', 'control' => 'select', 'values' => '');
$config->company->browse->search['params']['email'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['birthday'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date');
$config->company->browse->search['params']['gender'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->user->genderList);
$config->company->browse->search['params']['phone'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['qq'] = array('operator' => '=', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['msn'] = array('operator' => '=', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['yahoo'] = array('operator' => '=', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['gtalk'] = array('operator' => '=', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['wangwang'] = array('operator' => '=', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['address'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['zipcode'] = array('operator' => '=', 'control' => 'input', 'values' => '');
$config->company->browse->search['params']['join'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date');
$config->company->browse->search['params']['id'] = array('operator' => '=', 'control' => 'input', 'values' => '');
+35 -5
View File
@@ -21,7 +21,6 @@ class company extends control
{
parent::__construct();
$this->loadModel('dept');
$this->app->loadLang('user');
$this->company->setMenu();
}
@@ -43,27 +42,58 @@ class company extends control
* @access public
* @return void
*/
public function browse($deptID = 0, $recTotal = 0, $recPerPage = 20, $pageID = 1)
public function browse($param = 0, $type = 'bydept', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
$this->loadModel('search');
$this->lang->set('menugroup.company', 'company');
$childDeptIds = $this->dept->getAllChildID($deptID);
$deptID = $type == 'bydept' ? (int)$param : 0;
$this->company->setMenu($deptID);
/* Set the pager. */
$this->app->loadClass('pager', $static = true);
$pager = pager::init($recTotal, $recPerPage, $pageID);
/* Build the search form. */
$queryID = $type == 'bydept' ? 0 : (int)$param;
$this->config->company->browse->search['actionURL'] = $this->createLink('company', 'browse', "param=myQueryID&type=bysearch");
$this->config->company->browse->search['queryID'] = $queryID;
$this->config->company->browse->search['params']['dept']['values'] = array('' => '') + $this->dept->getOptionMenu();
$header['title'] = $this->lang->company->index . $this->lang->colon . $this->lang->dept->common;
$position[] = $this->lang->dept->common;
if($type == 'bydept')
{
$childDeptIds = $this->dept->getAllChildID($deptID);
$users = $this->dept->getUsers($childDeptIds, $pager);
}
else
{
if($queryID)
{
$query = $this->search->getQuery($queryID);
if($query)
{
$this->session->set('userQuery', $query->sql);
$this->session->set('userForm', $query->form);
}
else
{
$this->session->set('userQuery', ' 1 = 1');
}
}
$users = $this->loadModel('user')->getByQuery($this->session->userQuery, $pager);
}
$this->view->header = $header;
$this->view->position = $position;
$this->view->users = $this->dept->getUsers($childDeptIds, $pager);
$this->view->users = $users;
$this->view->searchForm = $this->fetch('search', 'buildForm', $this->config->company->browse->search);
$this->view->deptTree = $this->dept->getTreeMenu($rooteDeptID = 0, array('deptModel', 'createMemberLink'));
$this->view->parentDepts = $this->dept->getParents($deptID);
$this->view->deptID = $deptID;
$this->view->pager = $pager;
$this->view->pager = $pager;
$this->display();
}
+3
View File
@@ -16,6 +16,9 @@ include '../../common/view/treeview.html.php';
include '../../common/view/tablesorter.html.php';
?>
<table class='cont-lt1'>
<tr>
<td colspan='3'><div id='querybox'><?php echo $searchForm?></div></td>
</tr>
<tr valign='top'>
<td class='side'>
<div class='box-title'><?php echo $lang->dept->common;?></div>
+5
View File
@@ -91,6 +91,11 @@ class searchModel extends model
$allModules = $this->loadModel('tree')->getAllChildId($value);
$where .= helper::dbIN($allModules);
}
elseif($this->post->$fieldName == 'dept')
{
$allDepts = $this->loadModel('dept')->getAllChildId($value);
$where .= helper::dbIN($allDepts);
}
else
{
$where .= ' = ' . $this->dbh->quote($value) . ' ';
+18
View File
@@ -150,6 +150,24 @@ class userModel extends model
return $user;
}
/**
* Get users by sql.
*
* @param int $query
* @param int $pager
* @access public
* @return void
*/
public function getByQuery($query, $pager = null)
{
return $this->dao->select('*')->from(TABLE_USER)
->where($query)
->andWhere('deleted')->eq(0)
->orderBy('id')
->page($pager)
->fetchAll();
}
/**
* Create a user.
*