* code for task#782.

* code for task#795.
 * rewrite the datepicker logic.
This commit is contained in:
wangchunsheng
2012-06-22 09:45:14 +00:00
parent bfdc6f934c
commit 1f9c3853db
8 changed files with 88 additions and 57 deletions
+44 -26
View File
@@ -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');
+1 -1
View File
@@ -44,7 +44,7 @@ var browseType = '<?php echo $browseType;?>';
<th class='w-40px'> <?php common::printOrderLink('consumed', $orderBy, $vars, $lang->task->consumedAB);?></th>
<th class='w-40px'> <?php common::printOrderLink('left', $orderBy, $vars, $lang->task->leftAB);?></th>
<th><?php common::printOrderLink('story', $orderBy, $vars, $lang->task->story);?></th>
<th class='w-100px {sorter:false}'><?php echo $lang->actions;?></th>
<th class='w-120px {sorter:false}'><?php echo $lang->actions;?></th>
</tr>
</thead>
<?php
+1
View File
@@ -34,6 +34,7 @@ $lang->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';
+1
View File
@@ -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'] = '或者';
+13 -1
View File
@@ -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) . ' ';
+13 -21
View File
@@ -11,10 +11,14 @@
*/
?>
<?php include '../../common/view/alert.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<style>
.helplink {display:none}
.button-s, .button-r, .button-c {padding:3px}
.select-1 {width:80%}
.text-2{margin-bottom:2px}
.select-2{margin-bottom:2px}
.date{width:104px}
</style>
<script language='Javascript'>
@@ -35,12 +39,13 @@ var actionURL = '<?php echo $actionURL;?>';
function setField(fieldName, fieldNO)
{
$('#operator' + fieldNO).val(params[fieldName]['operator']); // Set the operator according the param setting.
$('#valueBox' + fieldNO) .html($('#box' + fieldName).children().clone());
$('#valueBox' + fieldNO).html($('#box' + fieldName).children().clone());
$('#valueBox' + fieldNO).children().attr({name : 'value' + fieldNO, id : 'value' + fieldNO});
if(fieldName.indexOf('Date') >= 0 || fieldName.indexOf('deadline') >= 0)
if(typeof(params[fieldName]['class']) != undefined && params[fieldName]['class'] == 'date')
{
$("#value" + fieldNO).datePicker({createButton:true, startDate:startDate})
$("#value" + fieldNO).addClass('date'); // Shortcut the width of the datepicker to make sure align with others.
}
}
@@ -193,16 +198,9 @@ foreach($fieldParams as $fieldName => $param)
if($param['control'] == 'select') echo html::select("value$fieldNO", $param['values'], $formSession["value$fieldNO"], 'class=select-2');
if($param['control'] == 'input')
{
$fieldName = $formSession["field$fieldNO"];
if(strpos($fieldName, 'Date') !== false or strpos($fieldName, 'deadline') !== false)
{
echo html::input("value$fieldNO", $formSession["value$fieldNO"], "class='text-2 date'");
}
else
{
echo html::input("value$fieldNO", $formSession["value$fieldNO"], 'class=text-2');
}
$fieldName = $formSession["field$fieldNO"];
$extraClass = isset($param['class']) ? $param['class'] : '';
echo html::input("value$fieldNO", $formSession["value$fieldNO"], "class='text-2 $extraClass'");
}
echo '</span>';
@@ -240,15 +238,9 @@ foreach($fieldParams as $fieldName => $param)
if($param['control'] == 'select') echo html::select("value$fieldNO", $param['values'], $formSession["value$fieldNO"], 'class=select-2');
if($param['control'] == 'input')
{
$fieldName = $formSession["field$fieldNO"];
if(strpos($fieldName, 'Date') !== false or strpos($fieldName, 'deadline') !== false)
{
echo html::input("value$fieldNO", $formSession["value$fieldNO"], "class='text-2 date'");
}
else
{
echo html::input("value$fieldNO", $formSession["value$fieldNO"], 'class=text-2');
}
$fieldName = $formSession["field$fieldNO"];
$extraClass = isset($param['class']) ? $param['class'] : '';
echo html::input("value$fieldNO", $formSession["value$fieldNO"], "class='text-2 $extraClass'");
}
echo '</span>';
+1
View File
@@ -34,6 +34,7 @@ $lang->story->id = '编号';
$lang->story->product = '所属产品';
$lang->story->module = '所属模块';
$lang->story->source = '来源';
$lang->story->fromBug = '来源Bug';
$lang->story->release = '发布计划';
$lang->story->bug = '相关bug';
$lang->story->title = '需求名称';
+14 -8
View File
@@ -3,29 +3,35 @@ global $lang;
$config->testcase->search['module'] = 'testcase';
$config->testcase->search['fields']['title'] = $lang->testcase->title;
$config->testcase->search['fields']['id'] = $lang->testcase->id;
$config->testcase->search['fields']['module'] = $lang->testcase->module;
$config->testcase->search['fields']['keywords'] = $lang->testcase->keywords;
$config->testcase->search['fields']['lastEditedBy'] = $lang->testcase->lastEditedByAB;
$config->testcase->search['fields']['type'] = $lang->testcase->type;
$config->testcase->search['fields']['pri'] = $lang->testcase->pri;
$config->testcase->search['fields']['openedBy'] = $lang->testcase->openedBy;
$config->testcase->search['fields']['status'] = $lang->testcase->status;
$config->testcase->search['fields']['product'] = $lang->testcase->product;
$config->testcase->search['fields']['module'] = $lang->testcase->module;
$config->testcase->search['fields']['lastEditedBy'] = $lang->testcase->lastEditedByAB;
$config->testcase->search['fields']['pri'] = $lang->testcase->pri;
$config->testcase->search['fields']['stage'] = $lang->testcase->stage;
$config->testcase->search['fields']['openedDate'] = $lang->testcase->openedDate;
$config->testcase->search['fields']['lastEditedDate'] = $lang->testcase->lastEditedDateAB;
$config->testcase->search['params']['title'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->testcase->search['params']['module'] = array('operator' => 'belong', 'control' => 'select', 'values' => 'modules');
$config->testcase->search['params']['keywords'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->testcase->search['params']['product'] = array('operator' => '=', 'control' => 'select', 'values' => '');
$config->testcase->search['params']['module'] = array('operator' => '=', 'control' => 'select', 'values' => 'modules');
$config->testcase->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
$config->testcase->search['params']['lastEditedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
$config->testcase->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->testcase->statusList);
$config->testcase->search['params']['pri'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->testcase->priList);
$config->testcase->search['params']['type'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->testcase->typeList);
$config->testcase->search['params']['pri'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->testcase->priList);
$config->testcase->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
$config->testcase->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->testcase->statusList);
$config->testcase->search['params']['product'] = array('operator' => '=', 'control' => 'select', 'values' => '');
$config->testcase->search['params']['stage'] = array('operator' => 'include', 'control' => 'select', 'values' => $lang->testcase->stageList);
$config->testcase->search['params']['openedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date');
$config->testcase->search['params']['lastEditedDate'] = array('operator' => '>=', 'control' => 'input', 'values' => '', 'class' => 'date');
$config->testcase->defaultSteps = 3;
$config->testcase->batchCreate = 10;