diff --git a/module/project/config.php b/module/project/config.php index 0b72f3edbc..b16cc3ddac 100644 --- a/module/project/config.php +++ b/module/project/config.php @@ -13,46 +13,64 @@ $config->project->editor->edit = array('id' => 'desc,goal', 'tools' => 'simple $config->project->search['module'] = 'task'; $config->project->search['fields']['name'] = $lang->task->name; $config->project->search['fields']['id'] = $lang->task->id; +$config->project->search['fields']['status'] = $lang->task->status; +$config->project->search['fields']['desc'] = $lang->task->desc; +$config->project->search['fields']['assignedTo'] = $lang->task->assignedTo; +$config->project->search['fields']['pri'] = $lang->task->pri; + $config->project->search['fields']['project'] = $lang->task->project; -$config->project->search['fields']['type'] = $lang->task->type; -$config->project->search['fields']['mailto'] = $lang->task->mailto; $config->project->search['fields']['estimate'] = $lang->task->estimate; $config->project->search['fields']['left'] = $lang->task->left; $config->project->search['fields']['consumed'] = $lang->task->consumed; -$config->project->search['fields']['deadline'] = $lang->task->deadline; -$config->project->search['fields']['status'] = $lang->task->status; -$config->project->search['fields']['pri'] = $lang->task->pri; -$config->project->search['fields']['desc'] = $lang->task->desc; -$config->project->search['fields']['assignedTo'] = $lang->task->assignedTo; -$config->project->search['fields']['assignedDate'] = $lang->task->assignedDate; -$config->project->search['fields']['openedDate'] = $lang->task->openedDate; +$config->project->search['fields']['type'] = $lang->task->type; +$config->project->search['fields']['fromBug'] = $lang->task->fromBug; +$config->project->search['fields']['closedReason'] = $lang->task->closedReason; + $config->project->search['fields']['openedBy'] = $lang->task->openedBy; $config->project->search['fields']['finishedBy'] = $lang->task->finishedBy; -$config->project->search['fields']['finishedDate'] = $lang->task->finishedDate; -$config->project->search['fields']['canceledBy'] = $lang->task->canceledBy; -$config->project->search['fields']['canceledDate'] = $lang->task->canceledDate; $config->project->search['fields']['closedBy'] = $lang->task->closedBy; -$config->project->search['fields']['closedDate'] = $lang->task->closedDate; -$config->project->search['fields']['closedReason'] = $lang->task->closedReason; +$config->project->search['fields']['canceledBy'] = $lang->task->canceledBy; $config->project->search['fields']['lastEditedBy'] = $lang->task->lastEditedBy; +$config->project->search['fields']['mailto'] = $lang->task->mailto; + +$config->project->search['fields']['openedDate'] = $lang->task->openedDate; +$config->project->search['fields']['deadline'] = $lang->task->deadline; +$config->project->search['fields']['estStarted'] = $lang->task->estStarted; +$config->project->search['fields']['realStarted'] = $lang->task->realStarted; +$config->project->search['fields']['assignedDate'] = $lang->task->assignedDate; +$config->project->search['fields']['finishedDate'] = $lang->task->finishedDate; +$config->project->search['fields']['closedDate'] = $lang->task->closedDate; +$config->project->search['fields']['canceledDate'] = $lang->task->canceledDate; +$config->project->search['fields']['lastEditedDate'] = $lang->task->lastEditedDate; + $config->project->search['params']['name'] = array('operator' => 'include', 'control' => 'input', 'values' => ''); +$config->project->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->statusList); $config->project->search['params']['desc'] = array('operator' => 'include', 'control' => 'input', 'values' => ''); -$config->project->search['params']['project'] = array('operator' => '=', 'control' => 'select', 'values' => ''); $config->project->search['params']['assignedTo'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); +$config->project->search['params']['pri'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->priList); + +$config->project->search['params']['project'] = array('operator' => '=', 'control' => 'select', 'values' => ''); +$config->project->search['params']['estimate'] = array('operator' => '=', 'control' => 'input', 'values' => ''); +$config->project->search['params']['left'] = array('operator' => '=', 'control' => 'input', 'values' => ''); +$config->project->search['params']['consumed'] = array('operator' => '=', 'control' => 'input', 'values' => ''); +$config->project->search['params']['type'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->typeList); +$config->project->search['params']['fromBug'] = array('operator' => '=', 'control' => 'input', 'values' => $lang->task->typeList); +$config->project->search['params']['closedReason'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->reasonList); + $config->project->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); +$config->project->search['params']['finishedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); $config->project->search['params']['closedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); $config->project->search['params']['cancelBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); $config->project->search['params']['lastEditedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); -$config->project->search['params']['finishedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); + $config->project->search['params']['mailto'] = array('operator' => 'include', 'control' => 'select', 'values' => 'users'); -$config->project->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->statusList); -$config->project->search['params']['closedReason'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->reasonList); -$config->project->search['params']['pri'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->priList); -$config->project->search['params']['type'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->typeList); -$config->project->search['params']['assignedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => ''); -$config->project->search['params']['openedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => ''); -$config->project->search['params']['finishedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => ''); -$config->project->search['params']['closedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => ''); -$config->project->search['params']['canceledDate'] = array('operator' => '>=', 'control' => 'input', 'values' => ''); -$config->project->search['params']['deadline'] = array('operator' => '=', 'control' => 'input', 'values' => ''); + +$config->project->search['params']['openedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date'); +$config->project->search['params']['deadline'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date'); +$config->project->search['params']['estStarted'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date'); +$config->project->search['params']['realStarted'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date'); +$config->project->search['params']['assignedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date'); +$config->project->search['params']['finishedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date'); +$config->project->search['params']['closedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date'); +$config->project->search['params']['canceledDate'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date'); diff --git a/module/project/view/task.html.php b/module/project/view/task.html.php index 00540990bd..27b52471cc 100644 --- a/module/project/view/task.html.php +++ b/module/project/view/task.html.php @@ -44,7 +44,7 @@ var browseType = ''; task->consumedAB);?> task->leftAB);?> task->story);?> - actions;?> + actions;?> search->operators['<'] = '<'; $lang->search->operators['<='] = '<='; $lang->search->operators['include'] = 'include'; $lang->search->operators['notinclude'] = 'not include'; +$lang->search->operators['belong'] = 'belongs to'; $lang->search->andor['and'] = 'And'; $lang->search->andor['or'] = 'Or'; diff --git a/module/search/lang/zh-cn.php b/module/search/lang/zh-cn.php index 83f10d3d0b..29425f5965 100644 --- a/module/search/lang/zh-cn.php +++ b/module/search/lang/zh-cn.php @@ -34,6 +34,7 @@ $lang->search->operators['<'] = '<'; $lang->search->operators['<='] = '<='; $lang->search->operators['include'] = '包含'; $lang->search->operators['notinclude'] = '不包含'; +$lang->search->operators['belong'] = '从属于'; $lang->search->andor['and'] = '并且'; $lang->search->andor['or'] = '或者'; diff --git a/module/search/model.php b/module/search/model.php index fee0f5585c..1189213b7e 100644 --- a/module/search/model.php +++ b/module/search/model.php @@ -39,7 +39,7 @@ class searchModel extends model $operatorName = "operator$i"; $valueName = "value$i"; - /* Skip empty vales. */ + /* Skip empty values. */ if($this->post->$valueName == false) continue; if($this->post->$valueName == 'null') $this->post->$valueName = ''; // Null is special, stands to empty. @@ -63,6 +63,18 @@ class searchModel extends model { $where .= ' NOT LIKE ' . $this->dbh->quote("%$value%"); } + elseif($operator == 'belong') + { + if($this->post->$fieldName == 'module') + { + $allModules = $this->loadModel('tree')->getAllChildId($value); + $where .= helper::dbIN($allModules); + } + else + { + $where .= ' = ' . $this->dbh->quote($value) . ' '; + } + } else { $where .= $operator . ' ' . $this->dbh->quote($value) . ' '; diff --git a/module/search/view/buildform.html.php b/module/search/view/buildform.html.php index c4d57576eb..5a35bfd06d 100644 --- a/module/search/view/buildform.html.php +++ b/module/search/view/buildform.html.php @@ -11,10 +11,14 @@ */ ?> +