diff --git a/module/project/control.php b/module/project/control.php index 1dd93353dc..bc6924e5ff 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -32,17 +32,17 @@ class project extends control $this->projects = $this->project->getPairs(); } - /* 项目视图首页,暂时跳转到浏览页面。*/ + /* 项目视图首页,*/ public function index() { if(empty($this->projects)) $this->locate($this->createLink('project', 'create')); - $this->locate($this->createLink($this->moduleName, 'task')); + $this->locate($this->createLink('project', 'browse')); } /* 浏览某一个项目。*/ public function browse($projectID = 0) { - $this->locate($this->createLink($this->moduleName, 'task', "productID=$projectID")); + $this->locate($this->createLink($this->moduleName, 'task', "projectID=$projectID")); } /* task, story, bug等方法的一些公共操作。*/ @@ -58,6 +58,9 @@ class project extends control $childProjects = $this->project->getChildProjects($project->id); $teamMembers = $this->project->getTeamMembers($project->id); + /* 设置菜单。*/ + $this->project->setMenu($this->projects, $project->id); + /* 将其赋值到模板系统。*/ $this->assign('projects', $this->projects); $this->assign('project', $project); @@ -184,6 +187,7 @@ class project extends control public function burn($projectID = 0) { $this->loadModel('report'); + /* 公共的操作。*/ $project = $this->commonAction($projectID); @@ -208,6 +212,23 @@ class project extends control die($this->report->createSingleXML($sets, $this->lang->project->charts->burn->graph)); } + /* 团队成员。*/ + public function team($projectID = 0) + { + /* 公共的操作。*/ + $project = $this->commonAction($projectID); + + /* 设定header和position信息。*/ + $header['title'] = $project->name . $this->lang->colon . $this->lang->project->team; + $position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name); + $position[] = $this->lang->project->team; + + $this->assign('header', $header); + $this->assign('position', $position); + + $this->display(); + } + /* 创建一个项目。*/ public function create() { @@ -218,10 +239,13 @@ class project extends control die(js::locate($this->createLink('project', 'browse', "projectID=$projectID"), 'parent')); } + /* 设置菜单。*/ + $this->project->setMenu($this->projects, ''); + $header['title'] = $this->lang->project->create; $position[] = $header['title']; $projects = array('' => '') + $this->projects; - + $this->assign('header', $header); $this->assign('position', $position); $this->assign('projects', $projects); @@ -236,8 +260,12 @@ class project extends control { $this->project->update($projectID); if(dao::isError()) die(js::error(dao::getError())); - die(js::locate($browseProjectLink, 'parent')); + die(js::locate($this->createLink('project', 'view', "projectID=$projectID"), 'parent')); } + + /* 设置菜单。*/ + $this->project->setMenu($this->projects, $projectID); + $projects = array('' => '') + $this->projects; $project = $this->project->findById($projectID); @@ -258,6 +286,20 @@ class project extends control $this->display(); } + /* 项目基本信息。*/ + public function view($projectID) + { + /* 公共的操作。*/ + $project = $this->commonAction($projectID); + + $header['title'] = $this->lang->project->view; + $position[] = $header['title']; + + $this->assign('header', $header); + $this->assign('position', $position); + $this->display(); + } + /* 删除一个项目。*/ public function delete($projectID, $confirm = 'no') { @@ -288,6 +330,9 @@ class project extends control $this->loadModel('product'); $project = $this->project->findById($projectID); + /* 设置菜单。*/ + $this->project->setMenu($this->projects, $project->id); + /* 标题和位置信息。*/ $header['title'] = $this->lang->project->manageProducts . $this->lang->colon . $project->name; $position[] = html::a($browseProjectLink, $project->name); @@ -329,6 +374,9 @@ class project extends control $childProjects = $this->project->getChildProjects($project->id); $childProjects = join(",", array_keys($childProjects)); + /* 设置菜单。*/ + $this->project->setMenu($this->projects, $project->id); + /* 赋值。*/ $this->assign('header', $header); $this->assign('position', $position); @@ -341,11 +389,10 @@ class project extends control /* 维护团队成员。*/ public function manageMembers($projectID = 0) { - $browseProjectLink = $this->createLink('project', 'browse', "projectID=$projectID"); if(!empty($_POST)) { $this->project->manageMembers($projectID); - $this->locate($browseProjectLink); + $this->locate($this->createLink('project', 'team', "projectID=$projectID")); exit; } $this->loadModel('user'); @@ -355,8 +402,11 @@ class project extends control $users = array('' => '') + $users; $members = $this->project->getTeamMembers($projectID); + /* 设置菜单。*/ + $this->project->setMenu($this->projects, $project->id); + $header['title'] = $this->lang->project->manageMembers . $this->lang->colon . $project->name; - $position[] = html::a($browseProjectLink, $project->name); + $position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name); $position[] = $this->lang->project->manageMembers; $this->assign('header', $header); $this->assign('position', $position); @@ -391,6 +441,9 @@ class project extends control $products = $this->project->getProducts($projectID); $browseLink = $this->createLink('project', 'story', "projectID=$projectID"); + /* 设置菜单。*/ + $this->project->setMenu($this->projects, $project->id); + if(empty($products)) { echo js::alert($this->lang->project->errorNoLinkedProducts); diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index deb46b8eb6..2b4f73817c 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -28,6 +28,7 @@ $lang->project->delete = "删除项目"; $lang->project->browse = "浏览项目"; $lang->project->edit = "编辑项目"; $lang->project->manage = "维护模块"; +$lang->project->view = "基本信息"; $lang->project->selectProject = "请选择项目"; $lang->project->manageMembers = '团队管理'; @@ -79,6 +80,7 @@ $lang->project->burnData = '燃烧图数据'; $lang->project->beginAndEnd = '起止时间'; $lang->project->lblStats = '工时统计'; $lang->project->stats = '总共预计『%s』工时
已经消耗『%s』工时
预计剩余『%s』工时'; +$lang->project->oneLineStats = "项目『%s』, 代号为『%s』, 相关产品为『%s』,『%s』开始,『%s』结束,总预计『%s』工时,已消耗『%s』工时,预计剩余『%s』工时。"; $lang->project->statusList->wait = '未开始'; $lang->project->statusList->doing = '进行中'; diff --git a/module/project/model.php b/module/project/model.php index 29cb4c117a..75ff7e3bc6 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -28,6 +28,17 @@ class projectModel extends model /* 每次关联成员的数量。*/ const LINK_MEMBERS_ONE_TIME = 10; + /* 设置菜单。*/ + public function setMenu($projects, $projectID) + { + $selectHtml = html::select('projectID', $projects, $projectID, 'onchange="switchProject(this.value);"'); + foreach($this->lang->project->menu as $key => $menu) + { + if($key == 'list') common::setMenuVars($this->lang->project->menu, 'list', $selectHtml . $this->lang->arrow); + else common::setMenuVars($this->lang->project->menu, $key, $projectID); + } + } + /* 新增项目。*/ public function create() { diff --git a/module/project/view/bug.html.php b/module/project/view/bug.html.php index aad46b8ce0..c35ec09a6f 100644 --- a/module/project/view/bug.html.php +++ b/module/project/view/bug.html.php @@ -23,70 +23,38 @@ */ ?> - -
-
-
-
-
- ' . html::a($this->createLink('bug', 'create', "productID=0&project=$project->id"), $lang->bug->create) . '
'; - $app->global->vars = "projectID=$project->id"; - $app->global->orderBy = $orderBy; - function printOrderLink($fieldName) - { - global $app, $lang; - if(strpos($app->global->orderBy, $fieldName) !== false) - { - if(stripos($app->global->orderBy, 'desc') !== false) $orderBy = str_replace('desc', 'asc', $app->global->orderBy); - if(stripos($app->global->orderBy, 'asc') !== false) $orderBy = str_replace('asc', 'desc', $app->global->orderBy); - } - else - { - $orderBy = $fieldName . '|' . 'asc'; - } - $link = helper::createLink('project', 'bug', $app->global->vars ."&orderBy=$orderBy"); - $fieldName = str_replace('`', '', $fieldName); - echo html::a($link, $lang->bug->$fieldName); - } - ?> - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
bug->id;?>bug->severity;?>bug->title;?>bug->openedBy;?>bug->assignedTo;?>bug->resolvedBy;?>bug->resolution;?>
createLink('bug', 'view', "bugID=$bug->id"), sprintf('%03d', $bug->id));?>severity?>title;?>openedBy];?>assignedTo];?>resolvedBy];?>resolution;?>
-
-
+
+
+
id", $lang->bug->create);?>
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
bug->id;?>bug->severity;?>bug->title;?>bug->openedBy;?>bug->assignedTo;?>bug->resolvedBy;?>bug->resolution;?>
createLink('bug', 'view', "bugID=$bug->id"), sprintf('%03d', $bug->id));?>severity?>title;?>openedBy];?>assignedTo];?>resolvedBy];?>resolution;?>
+
diff --git a/module/project/view/burn.html.php b/module/project/view/burn.html.php index 47c3c21a7f..fe038fc6a0 100644 --- a/module/project/view/burn.html.php +++ b/module/project/view/burn.html.php @@ -23,22 +23,5 @@ */ ?> - -
-
-
-
-
-
- -
-
-
-
+
diff --git a/module/project/view/create.html.php b/module/project/view/create.html.php index 9c79d8476f..bb3ca2ffa5 100644 --- a/module/project/view/create.html.php +++ b/module/project/view/create.html.php @@ -23,7 +23,7 @@ */ ?> -
+
diff --git a/module/project/view/edit.html.php b/module/project/view/edit.html.php index e405938a9f..c9df4f5d04 100644 --- a/module/project/view/edit.html.php +++ b/module/project/view/edit.html.php @@ -23,7 +23,7 @@ */ ?> -
+
project->create;?>
diff --git a/module/project/view/index.html.php b/module/project/view/index.html.php index 90e4238453..80f8efa9fc 100644 --- a/module/project/view/index.html.php +++ b/module/project/view/index.html.php @@ -23,6 +23,112 @@ */ ?> -
+
+
project->edit;?>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ project->selectProject;?> + id, 'onchange="selectProject(this.value);" style="width:200px"');?> +
project->name;?>name;?>
project->code;?>code;?>
project->beginAndEnd;?>begin . ' ~ ' . $project->end;?>
project->goal;?>goal);?>
project->desc;?>desc);?>
project->status;?>show($lang->project->statusList, $project->status);?>
project->lblStats;?>project->stats, $project->totalEstimate, $project->totalConsumed, $project->totalLeft, 10)?>
+ createLink('project', 'edit', "projectID=$project->id"), $lang->project->edit); + if(common::hasPriv('project', 'delete')) echo html::a($this->createLink('project', 'delete', "projectID=$project->id"), $lang->project->delete, 'hiddenwin'); + //echo html::a($this->createLink('tree', 'browse', "productID=$productID&view=product"), $lang->tree->manage); + ?> +
+ + + + + +
+ project->products;?> +
+ $productName) echo html::a($this->createLink('product', 'browse', "productID=$productID"), $productName) . '
';?> +
+ createLink('project', 'manageproducts', "projectID=$project->id"), $lang->project->manageProducts); + if(common::hasPriv('project', 'linkstory')) echo html::a($this->createLink('project', 'linkstory', "projectID=$project->id"), $lang->project->linkStory); + ?> +
+
+ + + + + + + + + + $lang->action";?> + + + + + + + + + + " . html::a($this->createLink('project', 'unlinkmember', "projectID=$project->id&account=$member->account"), $lang->project->unlinkMember, 'hiddenwin') . '';?> + + + +
+ project->team . $lang->colon . $project->team; ?> +
team->account;?>team->role;?>team->joinDate;?>team->workingHour;?>
+ createLink('user', 'view', "account=$member->account"), $member->realname); + else echo $member->realname; + ?> + role;?>joinDate, 2);?>workingHour;?>
+
+ createLink('project', 'managemembers', "projectID=$project->id"), $lang->project->manageMembers) . '
';?> +
- \ No newline at end of file + diff --git a/module/project/view/linkstory.html.php b/module/project/view/linkstory.html.php index 8593ac9a2a..6143c6bb26 100644 --- a/module/project/view/linkstory.html.php +++ b/module/project/view/linkstory.html.php @@ -24,28 +24,27 @@ ?> -
+
- - +
- - - - - + + + + + id])) continue;?> - - - - - + + + + @@ -53,7 +52,7 @@ - +
story->id;?>story->pri;?>story->product;?>story->title;?>story->linkStory;?>story->id;?>story->pri;?>story->product;?>story->title;?>story->linkStory;?>
id;?>pri;?>createLink('product', 'browse', "productID=$story->product"), $products[$story->product], '_blank');?>title;?> + id;?>pri;?>createLink('product', 'browse', "productID=$story->product"), $products[$story->product], '_blank');?>title;?>
diff --git a/module/project/view/project.html.php b/module/project/view/project.html.php index 6f93d46f63..e9e1abb889 100644 --- a/module/project/view/project.html.php +++ b/module/project/view/project.html.php @@ -1,106 +1,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- project->selectProject;?> - id, 'onchange="selectProject(this.value);" style="width:200px"');?> -
project->name;?>name;?>
project->code;?>code;?>
project->beginAndEnd;?>begin . ' ~ ' . $project->end;?>
project->goal;?>goal);?>
project->desc;?>desc);?>
project->status;?>show($lang->project->statusList, $project->status);?>
project->lblStats;?>project->stats, $project->totalEstimate, $project->totalConsumed, $project->totalLeft, 10)?>
- createLink('project', 'edit', "projectID=$project->id"), $lang->project->edit); - if(common::hasPriv('project', 'delete')) echo html::a($this->createLink('project', 'delete', "projectID=$project->id"), $lang->project->delete, 'hiddenwin'); - //echo html::a($this->createLink('tree', 'browse', "productID=$productID&view=product"), $lang->tree->manage); - ?> -
- - - - - -
- project->products;?> -
- $productName) echo html::a($this->createLink('product', 'browse', "productID=$productID"), $productName) . '
';?> -
- createLink('project', 'manageproducts', "projectID=$project->id"), $lang->project->manageProducts); - if(common::hasPriv('project', 'linkstory')) echo html::a($this->createLink('project', 'linkstory', "projectID=$project->id"), $lang->project->linkStory); - ?> -
-
- - - - - - - - - - $lang->action";?> - - - - - - - - - - " . html::a($this->createLink('project', 'unlinkmember', "projectID=$project->id&account=$member->account"), $lang->project->unlinkMember, 'hiddenwin') . '';?> - - - -
- project->team . $lang->colon . $project->team; ?> -
team->account;?>team->role;?>team->joinDate;?>team->workingHour;?>
- createLink('user', 'view', "account=$member->account"), $member->realname); - else echo $member->realname; - ?> - role;?>joinDate, 2);?>workingHour;?>
-
- createLink('project', 'managemembers', "projectID=$project->id"), $lang->project->manageMembers) . '
';?> +
+project->oneLineStats, + $project->name, + $project->code, + $products, + $project->begin, + $project->end, + $project->totalEstimate, + $project->totalConsumed, + $project->totalLeft); +?>
diff --git a/module/project/view/story.html.php b/module/project/view/story.html.php index 109378fb53..46ae472d4c 100644 --- a/module/project/view/story.html.php +++ b/module/project/view/story.html.php @@ -29,92 +29,66 @@ $(document).ready(function() { $("a.iframe").colorbox({width:640, height:480, iframe:true, transition:'none'}); }); - -function selectProject(projectID) -{ - link = createLink('project', 'browse', 'projectID=' + projectID); - location.href=link; -} -
-
-
-
-
- ' . html::a($this->createLink('project', 'linkstory', "project=$project->id"), $lang->project->linkStory) . '
'; - $app->global->vars = "projectID=$project->id"; - $app->global->orderBy = $orderBy; - function printOrderLink($fieldName) - { - global $app, $lang; - if(strpos($app->global->orderBy, $fieldName) !== false) +
+
+
+
+
+ createLink('project', 'linkstory', "project=$project->id"), $lang->project->linkStory);?> +
+
+
+ +
+ + id";?> + + + + + + + + + + + + + + $story):?> + createLink('story', 'view', "storyID=$story->id"); + $canView = common::hasPriv('story', 'view'); + ?> + + + + + + + + + + + + +
story->id);?>story->pri);?>story->title);?>story->assignedTo);?>story->openedBy);?>story->estimate);?>story->status);?>action;?>
id)); else printf('%03d', $story->id);?>pri;?> + title; + if($storyTasks[$story->id] > 0) { - if(stripos($app->global->orderBy, 'desc') !== false) $orderBy = str_replace('desc', 'asc', $app->global->orderBy); - if(stripos($app->global->orderBy, 'asc') !== false) $orderBy = str_replace('asc', 'desc', $app->global->orderBy); + echo ' ' . html::a($this->createLink('story', 'tasks', "storyID=$story->id&projectID=$project->id"), '('. $storyTasks[$story->id] . ')', '', 'class=iframe'); } else { - $orderBy = $fieldName . '|' . 'asc'; + echo ' (0)'; } - $link = helper::createLink('project', 'story', $app->global->vars ."&orderBy=$orderBy"); - echo html::a($link, $lang->story->$fieldName); - } - ?> - - - - - - - - - - - - - - - - - $story):?> - createLink('story', 'view', "storyID=$story->id"); - $canView = common::hasPriv('story', 'view'); - ?> - - - - - - - - - - - - -
action;?>
id)); else printf('%03d', $story->id);?>pri;?> - - title; - if($storyTasks[$story->id] > 0) - { - echo ' ' . html::a($this->createLink('story', 'tasks', "storyID=$story->id&projectID=$project->id"), '('. $storyTasks[$story->id] . ')', '', 'class=iframe'); - } - else - { - echo ' (0)'; - } - ?> - - assignedTo];?>openedBy];?>estimate;?>story->statusList; echo $statusList[$story->status];?> - createLink('task', 'create', "projectID={$project->id}&story={$story->id}"), $lang->task->create);?> - createLink('project', 'unlinkStory', "projectID={$project->id}&story={$story->id}&confirm=no"), $lang->project->unlinkStory, 'hiddenwin');?> -
-
- - + ?> +
assignedTo];?>openedBy];?>estimate;?>story->statusList; echo $statusList[$story->status];?> + createLink('task', 'create', "projectID={$project->id}&story={$story->id}"), $lang->task->create);?> + createLink('project', 'unlinkStory', "projectID={$project->id}&story={$story->id}&confirm=no"), $lang->project->unlinkStory, 'hiddenwin');?> +
+
diff --git a/module/project/view/tabbar.html.php b/module/project/view/tabbar.html.php deleted file mode 100644 index 2c583c3df2..0000000000 --- a/module/project/view/tabbar.html.php +++ /dev/null @@ -1,14 +0,0 @@ -
    -$project->name"; -echo "
  • " . html::a($this->createLink('project', 'task', "projectID=$project->id"), $lang->project->task) . "
  • "; -echo "
  • " . html::a($this->createLink('project', 'story', "projectID=$project->id"), $lang->project->story) . "
  • "; -echo "
  • " . html::a($this->createLink('project', 'bug', "projectID=$project->id"), $lang->project->bug) . "
  • "; -echo "
  • " . html::a($this->createLink('project', 'burn', "projectID=$project->id"), $lang->project->burn) . "
  • "; -echo << -$("#{$tabID}tab").addClass('active'); - -EOT; -?> -
diff --git a/module/project/view/task.html.php b/module/project/view/task.html.php index de98d320b8..1795f691ab 100644 --- a/module/project/view/task.html.php +++ b/module/project/view/task.html.php @@ -23,88 +23,58 @@ */ ?> - -
-
-
-
-
- ' . html::a($this->createLink('task', 'create', "project=$project->id"), $lang->task->create) . '
'; - $app->global->vars = "projectID=$project->id&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage"; - $app->global->orderBy = $orderBy; - function printOrderLink($fieldName) - { - global $app, $lang; - if(strpos($app->global->orderBy, $fieldName) !== false) - { - if(stripos($app->global->orderBy, 'desc') !== false) $orderBy = str_replace('desc', 'asc', $app->global->orderBy); - if(stripos($app->global->orderBy, 'asc') !== false) $orderBy = str_replace('asc', 'desc', $app->global->orderBy); - } - else - { - $orderBy = $fieldName . '|' . 'asc'; - } - $link = helper::createLink('project', 'task', sprintf($app->global->vars, $orderBy)); - $fieldName = str_replace('`', '', $fieldName); - echo html::a($link, $lang->task->$fieldName); - } - ?> - -
- - - - - - - - - - - - - - - - - - owner == $app->user->account ? 'style=color:red' : '';?> - - - - - - - - - - - - - - -
action;?>
createLink('task', 'view', "task=$task->id"), sprintf('%03d', $task->id)); else printf('%03d', $task->id);?>pri;?>name;?>>ownerRealName;?>estimate;?>consumed;?>left;?>status;?> >task->statusList->{$task->status};?> - storyID) - { - if(common::hasPriv('story', 'view')) echo html::a($this->createLink('story', 'view', "storyid=$task->storyID"), $task->storyTitle); - else echo $task->storyTitle; - } - ?> - - createLink('task', 'edit', "taskid=$task->id"), $lang->task->edit);?> - createLink('task', 'delete', "projectID=$task->project&taskid=$task->id"), $lang->task->delete, 'hiddenwin');?> -
-
+
+
+
+ createLink('task', 'create', "project=$project->id"), $lang->task->create);?>
+ + + id&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage"; ?> + + + + + + + + + + + + + + + + + owner == $app->user->account ? 'style=color:red' : '';?> + + + + + + + + + + + + + + +
task->id);?>task->pri);?>task->name);?>task->owner);?>task->estimate);?>task->consumed);?>task->left);?>task->status);?>task->story);?>action;?>
createLink('task', 'view', "task=$task->id"), sprintf('%03d', $task->id)); else printf('%03d', $task->id);?>pri;?>name;?>>ownerRealName;?>estimate;?>consumed;?>left;?>status;?> >task->statusList->{$task->status};?> + storyID) + { + if(common::hasPriv('story', 'view')) echo html::a($this->createLink('story', 'view', "storyid=$task->storyID"), $task->storyTitle); + else echo $task->storyTitle; + } + ?> + + createLink('task', 'edit', "taskid=$task->id"), $lang->task->edit);?> + createLink('task', 'delete', "projectID=$task->project&taskid=$task->id"), $lang->task->delete, 'hiddenwin');?> +
+
diff --git a/module/project/view/team.html.php b/module/project/view/team.html.php new file mode 100644 index 0000000000..79935df7ad --- /dev/null +++ b/module/project/view/team.html.php @@ -0,0 +1,70 @@ +. + * + * @copyright Copyright: 2009 Chunsheng Wang + * @author Chunsheng Wang + * @package project + * @version $Id$ + * @link http://www.zentao.cn + */ +?> + + +
+
+
+
+
+ id", $lang->project->manageMembers);?> +
+
+
+
+ + + + + + + + + $lang->action";?> + + + + + + + + + + " . html::a($this->createLink('project', 'unlinkmember', "projectID=$project->id&account=$member->account"), $lang->project->unlinkMember, 'hiddenwin') . '';?> + + + +
+ project->team . $lang->colon . $project->team; ?> +
team->account;?>team->role;?>team->joinDate;?>team->workingHour;?>
+ createLink('user', 'view', "account=$member->account"), $member->realname); + else echo $member->realname; + ?> + role;?>joinDate, 2);?>workingHour;?>
+
+
+
+ diff --git a/module/project/view/view.html.php b/module/project/view/view.html.php new file mode 100644 index 0000000000..e60db66355 --- /dev/null +++ b/module/project/view/view.html.php @@ -0,0 +1,73 @@ +. + * + * @copyright Copyright: 2009 Chunsheng Wang + * @author Chunsheng Wang + * @package project + * @version $Id$ + * @link http://www.zentao.cn + */ +?> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
name;?>
project->name;?>name;?>
project->code;?>code;?>
project->beginAndEnd;?>begin . ' ~ ' . $project->end;?>
project->goal;?>goal);?>
project->desc;?>desc);?>
project->status;?>show($lang->project->statusList, $project->status);?>
project->lblStats;?>project->stats, $project->totalEstimate, $project->totalConsumed, $project->totalLeft, 10)?>
project->products;?> + $productName) echo html::a($this->createLink('product', 'browse', "productID=$productID"), $productName) . '
';?> +
+ id", $lang->project->edit); + common::printLink('project', 'delete', "projectID=$project->id", $lang->project->delete, 'hiddenwin'); + ?> +
+
+ diff --git a/module/task/control.php b/module/task/control.php index 1240b396f9..af9476bdcd 100644 --- a/module/task/control.php +++ b/module/task/control.php @@ -37,6 +37,9 @@ class task extends control $project = $this->project->findById($projectID); $browseProjectLink = $this->createLink('project', 'browse', "projectID=$projectID&tab=task"); + /* 设置菜单。*/ + $this->project->setMenu($this->project->getPairs(), $project->id); + if(!empty($_POST)) { $taskID = $this->task->create($projectID); @@ -68,6 +71,9 @@ class task extends control $task = $this->task->findByID($taskID); $project = $this->project->findByID($task->project); + /* 设置菜单。*/ + $this->project->setMenu($this->project->getPairs(), $project->id); + if(!empty($_POST)) { $this->loadModel('action'); @@ -85,7 +91,7 @@ class task extends control $stories = $this->story->getProjectStoryPairs($project->id); $members = $this->project->getTeamMemberPairs($project->id); - $header['title'] = $project->name . $this->lang->colon . $this->lang->task->edit; + $header['title'] = $this->lang->task->edit; $position[] = html::a($this->createLink('project', 'browse', "project=$task->project"), $project->name); $position[] = $this->lang->task->edit; @@ -105,6 +111,9 @@ class task extends control $task = $this->task->findByID($taskID); $project = $this->project->findByID($task->project); + /* 设置菜单。*/ + $this->project->setMenu($this->project->getPairs(), $project->id); + $header['title'] = $project->name . $this->lang->colon . $this->lang->task->view; $position[] = html::a($this->createLink('project', 'browse', "projectID=$task->project"), $project->name); $position[] = $this->lang->task->view; diff --git a/module/task/view/edit.html.php b/module/task/view/edit.html.php index 59d6ee2e1f..607df7e223 100644 --- a/module/task/view/edit.html.php +++ b/module/task/view/edit.html.php @@ -23,9 +23,9 @@ */ ?> -
+
- +
diff --git a/module/task/view/view.html.php b/module/task/view/view.html.php index 3f37f22a2d..cbd3b8d068 100644 --- a/module/task/view/view.html.php +++ b/module/task/view/view.html.php @@ -35,61 +35,64 @@ - -
- -
- task->legendBasic;?> -
task->project;?>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
task->project;?>name;?>
task->story;?>storyTitle;?> -
task->owner;?>ownerRealName;?> -
task->estimate;?>estimate;?>
task->consumed;?>consumed;?>
task->left;?>left;?>
task->status;?>show($lang->task->statusList, $task->status);?>
task->pri;?>show($lang->task->priList, $task->pri);?>
- -
- task->legendDesc;?> -
desc);?>
-
-
- task->legendAction;?> -
- createLink('task', 'edit', "taskID=$task->id"), $lang->task->buttonEdit); - if(common::hasPriv('project', 'task')) echo html::a($app->session->taskList, $lang->task->buttonBackToList); - ?> +
+
+
+
+ task->legendDesc;?> +
desc);?>
+
+ +
+ task->legendAction;?> +
+ createLink('task', 'edit', "taskID=$task->id"), $lang->task->buttonEdit); + if(common::hasPriv('project', 'task')) echo html::a($app->session->taskList, $lang->task->buttonBackToList); + ?> +
+
-
- - +
+
+
+ task->legendBasic;?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
task->project;?>name;?>
task->story;?>storyTitle;?> +
task->owner;?>ownerRealName;?> +
task->estimate;?>estimate;?>
task->consumed;?>consumed;?>
task->left;?>left;?>
task->status;?>show($lang->task->statusList, $task->status);?>
task->pri;?>show($lang->task->priList, $task->pri);?>
+
+