From a321746fbbd9d1de75d1130ed425afd332b7c66c Mon Sep 17 00:00:00 2001 From: "chencongzhi520@gmail.com" Date: Sat, 2 Jun 2012 08:25:17 +0000 Subject: [PATCH] * code for task#803. * add batchEdit for story. --- db/zentao.sql | 10 ++ module/common/lang/zh-cn.php | 2 +- module/group/lang/resource.php | 4 + module/product/js/browse.js | 17 +++ module/product/view/browse.html.php | 172 +++++++++++++++------------ module/project/js/story.js | 16 +++ module/project/view/story.html.php | 144 +++++++++++++--------- module/story/control.php | 91 ++++++++++++++ module/story/js/batchedit.js | 26 ++++ module/story/lang/en.php | 3 + module/story/lang/zh-cn.php | 3 + module/story/model.php | 78 ++++++++++++ module/story/view/batchedit.html.php | 76 ++++++++++++ 13 files changed, 510 insertions(+), 132 deletions(-) create mode 100755 module/story/js/batchedit.js create mode 100755 module/story/view/batchedit.html.php diff --git a/db/zentao.sql b/db/zentao.sql index 46032a2fa4..87837ea1a5 100644 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -1553,6 +1553,16 @@ INSERT INTO `zt_groupPriv` (`company`, `group`, `module`, `method`) VALUES (1, 3, 'todo', 'batchEdit'), (1, 4, 'todo', 'batchEdit'), (1, 5, 'todo', 'batchEdit'), +(1, 1, 'story', 'batchEdit'), +(1, 2, 'story', 'batchEdit'), +(1, 3, 'story', 'batchEdit'), +(1, 4, 'story', 'batchEdit'), +(1, 5, 'story', 'batchEdit'), +(1, 1, 'story', 'batchClose'), +(1, 2, 'story', 'batchClose'), +(1, 3, 'story', 'batchClose'), +(1, 4, 'story', 'batchClose'), +(1, 5, 'story', 'batchClose'), (1, 1, 'task', 'batchEdit'), (1, 2, 'task', 'batchEdit'), (1, 3, 'task', 'batchEdit'), diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 9c9943bdf7..4b8cbb502c 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -157,7 +157,7 @@ $lang->release->menu = $lang->product->menu; /* 项目视图菜单设置。*/ $lang->project->menu->list = '%s'; $lang->project->menu->task = array('link' => '任务|project|task|projectID=%s', 'subModule' => 'task', 'alias' => 'grouptask,importtask'); -$lang->project->menu->story = array('link' => '需求|project|story|projectID=%s'); +$lang->project->menu->story = array('link' => '需求|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'batchedit'); $lang->project->menu->bug = 'Bug|project|bug|projectID=%s'; $lang->project->menu->dynamic = '动态|project|dynamic|projectID=%s'; $lang->project->menu->build = array('link' => '版本|project|build|projectID=%s', 'subModule' => 'build'); diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index e15c585fa8..d10af0f291 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -57,12 +57,14 @@ $lang->resource->product->ajaxGetPlans = 'ajaxGetPlans'; $lang->resource->story->create = 'create'; $lang->resource->story->batchCreate = 'batchCreate'; $lang->resource->story->edit = 'edit'; +$lang->resource->story->batchEdit = 'batchEdit'; $lang->resource->story->export = 'export'; $lang->resource->story->delete = 'delete'; $lang->resource->story->view = 'view'; $lang->resource->story->change = 'lblChange'; $lang->resource->story->review = 'lblReview'; $lang->resource->story->close = 'lblClose'; +$lang->resource->story->batchClose = 'batchClose'; $lang->resource->story->activate = 'lblActivate'; $lang->resource->story->tasks = 'tasks'; $lang->resource->story->report = 'reportChart'; @@ -374,6 +376,8 @@ $lang->changelog['3.1'][] = 'todo-batchCreate'; $lang->changelog['3.2'][] = 'my-changePassword'; $lang->changelog['3.2'][] = 'todo-batchEdit'; +$lang->changelog['3.2'][] = 'story-batchEdit'; +$lang->changelog['3.2'][] = 'story-batchClose'; $lang->changelog['3.2'][] = 'task-batchEdit'; $lang->changelog['3.2'][] = 'bug-batchEdit'; $lang->changelog['3.2'][] = 'testcase-batchEdit'; diff --git a/module/product/js/browse.js b/module/product/js/browse.js index 71b68ef6e2..f9a80a1ba6 100644 --- a/module/product/js/browse.js +++ b/module/product/js/browse.js @@ -7,3 +7,20 @@ function browseByModule() $('#featurebar .active').removeClass('active'); $('#bymoduleTab').addClass('active'); } + +/** + * Change form action. + * + * @param formName $formName + * @param actionName $actionName + * @param actionLink $actionLink + * @access public + * @return void + */ +function changeAction(formName, actionName, actionLink) +{ + if(actionName == 'batchEdit') $('#' + formName).attr('target', ''); + if(actionName == 'batchClose') $('#' + formName).attr('target', 'hiddenwin'); + $('#' + formName).attr('action', actionLink).submit(); +} + diff --git a/module/product/view/browse.html.php b/module/product/view/browse.html.php index 7e43aea496..651ced420d 100644 --- a/module/product/view/browse.html.php +++ b/module/product/view/browse.html.php @@ -38,81 +38,105 @@ var browseType = '';
'>
- - - + + + +
-
-
- -
- createLink('product', 'edit', "productID=$productID"), $lang->edit);?> - createLink('product', 'delete', "productID=$productID&confirm=no"), $lang->delete, 'hiddenwin');?> - createLink('tree', 'browse', "rootID=$productID&view=story"), $lang->tree->manage);?> +
+ + + - - - -
+
+
+ +
+ createLink('product', 'edit', "productID=$productID"), $lang->edit);?> + createLink('product', 'delete', "productID=$productID&confirm=no"), $lang->delete, 'hiddenwin');?> + createLink('tree', 'browse', "rootID=$productID&view=story"), $lang->tree->manage);?> +
- -
- - - - recTotal}&recPerPage={$pager->recPerPage}";?> - - - - - - - - - - - - - - - - $story):?> - createLink('story', 'view', "storyID=$story->id"); - $totalEstimate += $story->estimate; - $canView = common::hasPriv('story', 'view'); - ?> - - - - - - - - - - - - - - - - - - - - -
idAB);?>priAB);?>story->title);?>story->planAB);?>story->source);?>openedByAB);?>assignedToAB);?>story->estimateAB);?>statusAB);?>story->stageAB);?>actions;?>
id)); else printf('%03d', $story->id);?>story->priList[$story->pri];?>title);?>planTitle;?>story->sourceList[$story->source];?>openedBy];?>assignedTo];?>estimate;?>story->statusList[$story->status];?>story->stageList[$story->stage];?> - id}"; - if(!common::printLink('testcase', 'create', "productID=$story->product&module=0&from=¶m=0&$vars", $lang->story->createCase)) echo $lang->story->createCase . ' '; - if(!($story->status != 'closed' and common::printLink('story', 'change', $vars, $lang->story->change))) echo $lang->story->change . ' '; - if(!(($story->status == 'draft' or $story->status == 'changed') and common::printLink('story', 'review', $vars, $lang->story->review))) echo $lang->story->review . ' '; - if(!common::printLink('story', 'edit', $vars, $lang->edit)) echo $lang->edit; - ?> -
-
product->storySummary, count($stories), $totalEstimate);?>
- show();?> -
-
+
+ + + + recTotal}&recPerPage={$pager->recPerPage}";?> + + + + + + + + + + + + + + + + $story):?> + createLink('story', 'view', "storyID=$story->id"); + $totalEstimate += $story->estimate; + $canView = common::hasPriv('story', 'view'); + ?> + + + + + + + + + + + + + + + + + + + + +
idAB);?>priAB);?>story->title);?>story->planAB);?>story->source);?>openedByAB);?>assignedToAB);?>story->estimateAB);?>statusAB);?>story->stageAB);?>actions;?>
+ + id)); else printf('%03d', $story->id);?> + story->priList[$story->pri];?>title);?>planTitle;?>story->sourceList[$story->source];?>openedBy];?>assignedTo];?>estimate;?>story->statusList[$story->status];?>story->stageList[$story->stage];?> + id}"; + if(!common::printLink('testcase', 'create', "productID=$story->product&module=0&from=¶m=0&$vars", $lang->story->createCase)) echo $lang->story->createCase . ' '; + if(!($story->status != 'closed' and common::printLink('story', 'change', $vars, $lang->story->change))) echo $lang->story->change . ' '; + if(!(($story->status == 'draft' or $story->status == 'changed') and common::printLink('story', 'review', $vars, $lang->story->review))) echo $lang->story->review . ' '; + if(!common::printLink('story', 'edit', $vars, $lang->edit)) echo $lang->edit; + ?> +
+
+ createLink('story', 'batchEdit', "from=productBrowse&productID=$productID&projectID=0&orderBy=$orderBy"); + echo html::commonButton($lang->story->batchEdit, "onclick=\"changeAction('productStoryForm', 'batchEdit', '$actionLink')\""); + } + if(common::hasPriv('story', 'batchClose') and strtolower($browseType) != 'closedbyme' and strtolower($browseType) != 'closedstory') + { + $actionLink = $this->createLink('story', 'batchClose'); + echo html::commonButton($lang->story->batchClose, "onclick=\"changeAction('productStoryForm', 'batchClose', '$actionLink')\""); + } + } + printf($lang->product->storySummary, count($stories), $totalEstimate); + ?> +
+ show();?> +
+
+