diff --git a/module/project/css/manageproducts.css b/module/project/css/manageproducts.css new file mode 100644 index 0000000000..03d69f8a8e --- /dev/null +++ b/module/project/css/manageproducts.css @@ -0,0 +1 @@ +span{display:block; float:left; width:200px} diff --git a/module/project/js/common.js b/module/project/js/common.js new file mode 100644 index 0000000000..1a6080069c --- /dev/null +++ b/module/project/js/common.js @@ -0,0 +1,9 @@ +function setWhite(acl) +{ + acl == 'custom' ? $('#whitelistBox').removeClass('hidden') : $('#whitelistBox').addClass('hidden'); +} +function switchGroup(projectID, groupBy) +{ + link = createLink('project', 'groupTask', 'project=' + projectID + '&groupBy=' + groupBy); + location.href=link; +} diff --git a/module/project/js/story.js b/module/project/js/story.js new file mode 100644 index 0000000000..bf4d0687b5 --- /dev/null +++ b/module/project/js/story.js @@ -0,0 +1,4 @@ +$(document).ready(function() +{ + $("a.iframe").colorbox({width:640, height:480, iframe:true, transition:'none'}); +}); diff --git a/module/project/view/bug.html.php b/module/project/view/bug.html.php index d3f58ddbae..9fc4e7611b 100644 --- a/module/project/view/bug.html.php +++ b/module/project/view/bug.html.php @@ -12,49 +12,47 @@ ?> -
| idAB);?> | -bug->severityAB);?> | -priAB);?> | -bug->title);?> | -openedByAB);?> | -assignedToAB);?> | -bug->resolvedBy);?> | -bug->resolutionAB);?> | -actions;?> | -
|---|---|---|---|---|---|---|---|---|
| createLink('bug', 'view', "bugID=$bug->id"), $bug->id, '_blank');?> | -bug->severityList[$bug->severity]?> | -bug->priList[$bug->pri]?> | -createLink('bug', 'view', "bugID=$bug->id"), $bug->title);?> | -openedBy];?> | -assignedTo];?> | -resolvedBy];?> | -bug->resolutionList[$bug->resolution];?> | -- id"; - if(!($bug->status == 'active' and common::printLink('bug', 'resolve', $params, $lang->bug->buttonResolve))) echo $lang->bug->buttonResolve . ' '; - if(!($bug->status == 'resolved' and common::printLink('bug', 'close', $params, $lang->bug->buttonClose))) echo $lang->bug->buttonClose . ' '; - common::printLink('bug', 'edit', $params, $lang->bug->buttonEdit); - ?> - | -
| idAB);?> | +bug->severityAB);?> | +priAB);?> | +bug->title);?> | +openedByAB);?> | +assignedToAB);?> | +bug->resolvedBy);?> | +bug->resolutionAB);?> | +actions;?> | +
|---|---|---|---|---|---|---|---|---|
| createLink('bug', 'view', "bugID=$bug->id"), $bug->id, '_blank');?> | +bug->severityList[$bug->severity]?> | +bug->priList[$bug->pri]?> | +createLink('bug', 'view', "bugID=$bug->id"), $bug->title);?> | +openedBy];?> | +assignedTo];?> | +resolvedBy];?> | +bug->resolutionList[$bug->resolution];?> | ++ id"; + if(!($bug->status == 'active' and common::printLink('bug', 'resolve', $params, $lang->bug->buttonResolve))) echo $lang->bug->buttonResolve . ' '; + if(!($bug->status == 'resolved' and common::printLink('bug', 'close', $params, $lang->bug->buttonClose))) echo $lang->bug->buttonClose . ' '; + common::printLink('bug', 'edit', $params, $lang->bug->buttonEdit); + ?> + | +
| build->product;?> | -build->name;?> | -build->scmPath;?> | -build->filePath;?> | -build->date;?> | -build->builder;?> | -actions;?> | -
|---|---|---|---|---|---|---|
| productName;?> | -createLink('build', 'view', "build=$build->id"), $build->name);?> | -scmPath, 'http') === 0 ? printf(html::a($build->scmPath)) : printf($build->scmPath);?> | -filePath, 'http') === 0 ? printf(html::a($build->filePath)) : printf($build->filePath);?> | -date?> | -builder]?> | -- id", $lang->edit); - common::printLink('build', 'delete', "buildID=$build->id", $lang->delete, 'hiddenwin'); - ?> - | -
| build->product;?> | +build->name;?> | +build->scmPath;?> | +build->filePath;?> | +build->date;?> | +build->builder;?> | +actions;?> | +
|---|---|---|---|---|---|---|
| productName;?> | +createLink('build', 'view', "build=$build->id"), $build->name);?> | +scmPath, 'http') === 0 ? printf(html::a($build->scmPath)) : printf($build->scmPath);?> | +filePath, 'http') === 0 ? printf(html::a($build->filePath)) : printf($build->filePath);?> | +date?> | +builder]?> | ++ id", $lang->edit); + common::printLink('build', 'delete', "buildID=$build->id", $lang->delete, 'hiddenwin'); + ?> + | +
| idAB;?> | -doc->module;?> | -doc->title;?> | -doc->addedBy;?> | -doc->addedDate;?> | -actions;?> | -
|---|---|---|---|---|---|
| id)); else printf('%03d', $doc->id);?> | -module]);?> | -addedBy];?> | -addedDate;?> | -- id}"; - if(!common::printLink('doc', 'edit', $vars, $lang->edit)) echo $lang->edit; - if(!common::printLink('doc', 'delete', $vars, $lang->delete, 'hiddenwin')) echo $lang->delete; - ?> - | -
| idAB;?> | +doc->module;?> | +doc->title;?> | +doc->addedBy;?> | +doc->addedDate;?> | +actions;?> | +
|---|---|---|---|---|---|
| id)); else printf('%03d', $doc->id);?> | +module]);?> | +addedBy];?> | +addedDate;?> | ++ id}"; + if(!common::printLink('doc', 'edit', $vars, $lang->edit)) echo $lang->edit; + if(!common::printLink('doc', 'delete', $vars, $lang->delete, 'hiddenwin')) echo $lang->delete; + ?> + | +
| project->name;?> | -name, "class='text-3'");?> | -
|---|---|
| project->code;?> | -code, "class='text-3'");?> | -
| project->begin;?> | -begin, "class='text-3 date'");?> | -
| project->end;?> | -end, "class='text-3 date'");?> | -
| project->teamname;?> | -team, "class='text-3'");?> | -
| project->status;?> | -project->statusList, $project->status, 'class=text-3');?> | -
| project->PO;?> | -PO, 'class=text-3');?> | -
| project->PM;?> | -PM, 'class=text-3');?> | -
| project->QM;?> | -QM, 'class=text-3');?> | -
| project->RM;?> | -RM, 'class=text-3');?> | -
| project->manageProducts;?> | -- |
| project->goal;?> | -goal), "rows='6' class='area-1'");?> | -
| project->desc;?> | -desc), "rows='6' class='area-1'");?> | -
| project->acl;?> | -project->aclList, $project->acl, "onclick='setWhite(this.value);'"));?> | -
| project->whitelist;?> | -whitelist);?> | -
| project->name;?> | +name, "class='text-3'");?> | +
|---|---|
| project->code;?> | +code, "class='text-3'");?> | +
| project->begin;?> | +begin, "class='text-3 date'");?> | +
| project->end;?> | +end, "class='text-3 date'");?> | +
| project->teamname;?> | +team, "class='text-3'");?> | +
| project->status;?> | +project->statusList, $project->status, 'class=text-3');?> | +
| project->PO;?> | +PO, 'class=text-3');?> | +
| project->PM;?> | +PM, 'class=text-3');?> | +
| project->QM;?> | +QM, 'class=text-3');?> | +
| project->RM;?> | +RM, 'class=text-3');?> | +
| project->manageProducts;?> | ++ |
| project->goal;?> | +goal), "rows='6' class='area-1'");?> | +
| project->desc;?> | +desc), "rows='6' class='area-1'");?> | +
| project->acl;?> | +project->aclList, $project->acl, "onclick='setWhite(this.value);'"));?> | +
| project->whitelist;?> | +whitelist);?> | +
| - | task->name;?> | -priAB;?> | -task->assignedTo;?> | -task->finishedBy;?> | -task->estimateAB;?> | -task->consumedAB;?> | -task->leftAB;?> | -typeAB;?> | -task->deadlineAB;?> | -task->status;?> | +|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | task->name;?> | +priAB;?> | +task->assignedTo;?> | +task->finishedBy;?> | +task->estimateAB;?> | +task->consumedAB;?> | +task->leftAB;?> | +typeAB;?> | +task->deadlineAB;?> | +task->status;?> | +|
|---|---|---|---|---|---|---|---|---|---|---|---|
| + | + | ||||||||||
| + | id . $lang->colon; if(common::hasPriv('task', 'view')) echo html::a($this->createLink('task', 'view', "task=$task->id"), $task->name); else echo $task->name;?> | +pri;?> | +>assignedToRealName;?> | +finishedBy];?> | +estimate;?> | +consumed;?> | +left;?> | +task->typeList[$task->type];?> | +delay)) echo 'delayed';?>>deadline, 0, 4) > 0) echo $task->deadline;?> | +status;?> >task->statusList[$task->status];?> | ++ createLink('task', 'edit', "taskid=$task->id"), $lang->edit);?> + createLink('task', 'delete', "projectID=$task->project&taskid=$task->id"), $lang->delete, 'hiddenwin');?> + |
| - | - | ||||||||||
| - | id . $lang->colon; if(common::hasPriv('task', 'view')) echo html::a($this->createLink('task', 'view', "task=$task->id"), $task->name); else echo $task->name;?> | -pri;?> | ->assignedToRealName;?> | -finishedBy];?> | -estimate;?> | -consumed;?> | -left;?> | -task->typeList[$task->type];?> | -delay)) echo 'delayed';?>>deadline, 0, 4) > 0) echo $task->deadline;?> | -status;?> >task->statusList[$task->status];?> | -- createLink('task', 'edit', "taskid=$task->id"), $lang->edit);?> - createLink('task', 'delete', "projectID=$task->project&taskid=$task->id"), $lang->delete, 'hiddenwin');?> - | -
| idAB;?> | -priAB;?> | -story->product;?> | -story->title;?> | -story->plan;?> | -openedByAB;?> | -story->estimateAB;?> | -link;?> | -
|---|---|---|---|---|---|---|---|
| id);?> | -story->priList[$story->pri];?> | -createLink('product', 'browse', "productID=$story->product"), $products[$story->product], '_blank');?> | -title);?> | -planTitle;?> | -openedBy];?> | -estimate;?> | -- - - | -
| idAB;?> | +priAB;?> | +story->product;?> | +story->title;?> | +story->plan;?> | +openedByAB;?> | +story->estimateAB;?> | +link;?> | +
|---|---|---|---|---|---|---|---|
| id);?> | +story->priList[$story->pri];?> | +createLink('product', 'browse', "productID=$story->product"), $products[$story->product], '_blank');?> | +title);?> | +planTitle;?> | +openedBy];?> | +estimate;?> | ++ + + | +
| team->account;?> | -team->role;?> | -team->workingHour;?> | -
|---|---|---|
| - | - | - - - | -
| team->account;?> | +team->role;?> | +team->workingHour;?> | +
|---|---|---|
| + | + | + + + | +
| - | - | - - - | -
| - - | -||
| - |
| + |
| idAB;?> | -priAB;?> | -story->title;?> | -openedByAB;?> | -assignedToAB;?> | -story->estimateAB;?> | -statusAB;?> | -story->stageAB;?> | -story->taskCount;?> | -actions;?> | -
|---|---|---|---|---|---|---|---|---|---|
| id));?> | -story->priList[$story->pri];?> | -title);?> | -openedBy];?> | -assignedTo];?> | -estimate;?> | -story->statusList[$story->status];?> | -story->stageList[$story->stage];?> | -- createLink('story', 'tasks', "storyID=$story->id&projectID=$project->id"); - $storyTasks[$story->id] > 0 ? print(html::a($tasksLink, $storyTasks[$story->id], '', 'class="iframe"')) : print(0); - ?> - | -- id}&story={$story->id}"; - common::printLink('task', 'create', $param, $lang->project->wbs); - common::printLink('project', 'unlinkStory', $param, $lang->unlink, 'hiddenwin'); - ?> - | -
| project->storySummary, count($stories), $totalEstimate);?> | |||||||||
| idAB;?> | +priAB;?> | +story->title;?> | +openedByAB;?> | +assignedToAB;?> | +story->estimateAB;?> | +statusAB;?> | +story->stageAB;?> | +story->taskCount;?> | +actions;?> | +
|---|---|---|---|---|---|---|---|---|---|
| id));?> | +story->priList[$story->pri];?> | +title);?> | +openedBy];?> | +assignedTo];?> | +estimate;?> | +story->statusList[$story->status];?> | +story->stageList[$story->stage];?> | ++ createLink('story', 'tasks', "storyID=$story->id&projectID=$project->id"); + $storyTasks[$story->id] > 0 ? print(html::a($tasksLink, $storyTasks[$story->id], '', 'class="iframe"')) : print(0); + ?> + | ++ id}&story={$story->id}"; + common::printLink('task', 'create', $param, $lang->project->wbs); + common::printLink('project', 'unlinkStory', $param, $lang->unlink, 'hiddenwin'); + ?> + | +
| project->storySummary, count($stories), $totalEstimate);?> | |||||||||
| idAB);?> | -priAB);?> | -task->name);?> | -task->assignedTo);?> | -task->finishedBy);?> | -task->estimateAB);?> | -task->consumedAB);?> | -task->leftAB);?> | -task->deadlineAB);?> | -statusAB);?> | -task->story);?> | -actions;?> | -
|---|---|---|---|---|---|---|---|---|---|---|---|
| id", sprintf('%03d', $task->id))) printf('%03d', $task->id);?> | -task->priList[$task->pri];?> | -id", $task->name)) echo $task->name;?> | ->assignedToRealName;?> | -finishedBy];?> | -estimate;?> | -consumed;?> | -left;?> | -delay)) echo 'delayed';?>>deadline, 0, 4) > 0) echo $task->deadline;?> | -status;?> > - storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion) - { - echo "{$lang->story->changed} "; - } - else - { - echo $lang->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; - } - ?> - | -- status == 'wait' or $task->status == 'doing') and common::printLink('task', 'finish', "taskID=$task->id", $lang->task->buttonDone))) echo $lang->task->buttonDone . ' '; - if(!(($task->status == 'done' or $task->status == 'cancel') and common::printLink('task', 'close', "taskID=$task->id", $lang->task->buttonClose))) echo $lang->task->buttonClose . ' '; - if(!common::printLink('task', 'edit', "taskID=$task->id", $lang->task->buttonEdit)) echo $lang->task->buttonEdit . ' '; - if($browseType == 'needconfirm') common::printLink('task', 'confirmStoryChange', "taskid=$task->id", $lang->confirm, 'hiddenwin'); - ?> - | -
| idAB);?> | +priAB);?> | +task->name);?> | +task->assignedTo);?> | +task->finishedBy);?> | +task->estimateAB);?> | +task->consumedAB);?> | +task->leftAB);?> | +task->deadlineAB);?> | +statusAB);?> | +task->story);?> | +actions;?> | +
|---|---|---|---|---|---|---|---|---|---|---|---|
| id", sprintf('%03d', $task->id))) printf('%03d', $task->id);?> | +task->priList[$task->pri];?> | +id", $task->name)) echo $task->name;?> | +>assignedToRealName;?> | +finishedBy];?> | +estimate;?> | +consumed;?> | +left;?> | +delay)) echo 'delayed';?>>deadline, 0, 4) > 0) echo $task->deadline;?> | +status;?> > + storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion) + { + echo "{$lang->story->changed} "; + } + else + { + echo $lang->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; + } + ?> + | ++ status == 'wait' or $task->status == 'doing') and common::printLink('task', 'finish', "taskID=$task->id", $lang->task->buttonDone))) echo $lang->task->buttonDone . ' '; + if(!(($task->status == 'done' or $task->status == 'cancel') and common::printLink('task', 'close', "taskID=$task->id", $lang->task->buttonClose))) echo $lang->task->buttonClose . ' '; + if(!common::printLink('task', 'edit', "taskID=$task->id", $lang->task->buttonEdit)) echo $lang->task->buttonEdit . ' '; + if($browseType == 'needconfirm') common::printLink('task', 'confirmStoryChange', "taskid=$task->id", $lang->confirm, 'hiddenwin'); + ?> + | +
| team->account;?> | -team->role;?> | -team->joinDate;?> | -team->workingHour;?> | - $lang->actions";?> -|
|---|---|---|---|---|
| - createLink('user', 'view', "account=$member->account"), $member->realname); - else echo $member->realname; - ?> - | -role;?> | -joinDate, 2);?> | -workingHour;?> | - " . html::a($this->createLink('project', 'unlinkmember', "projectID=$project->id&account=$member->account"), $lang->project->unlinkMember, 'hiddenwin') . '';?> -|
| id", $lang->project->manageMembers);?> | ||||
| team->account;?> | +team->role;?> | +team->joinDate;?> | +team->workingHour;?> | + $lang->actions";?> +|
|---|---|---|---|---|
| + createLink('user', 'view', "account=$member->account"), $member->realname); + else echo $member->realname; + ?> + | +role;?> | +joinDate, 2);?> | +workingHour;?> | + " . html::a($this->createLink('project', 'unlinkmember', "projectID=$project->id&account=$member->account"), $lang->project->unlinkMember, 'hiddenwin') . '';?> +|
| id", $lang->project->manageMembers);?> | ||||
| project->afterInfo;?>
- arrow. html::a($this->createLink('project', 'team', "projectID=$projectID"), $lang->project->setTeam);?>
- arrow. html::a($this->createLink('project', 'linkstory', "projectID=$projectID"), $lang->project->linkStory);?>
- arrow. html::a($this->createLink('task', 'create', "project=$projectID"), $lang->project->createTask);?>
- arrow. html::a($this->createLink('project', 'task', "projectID=$projectID"), $lang->project->goback);?>
- |
-
| project->afterInfo;?>
+ arrow. html::a($this->createLink('project', 'team', "projectID=$projectID"), $lang->project->setTeam);?>
+ arrow. html::a($this->createLink('project', 'linkstory', "projectID=$projectID"), $lang->project->linkStory);?>
+ arrow. html::a($this->createLink('task', 'create', "project=$projectID"), $lang->project->createTask);?>
+ arrow. html::a($this->createLink('project', 'task', "projectID=$projectID"), $lang->project->goback);?>
+ |
+
| 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->PM;?> | -PM];?> | -
| project->PO;?> | -PO];?> | -
| project->QM;?> | -QM];?> | -
| project->RM;?> | -RM];?> | -
| project->lblStats;?> | -project->stats, $project->totalEstimate, $project->totalConsumed, $project->totalLeft, 10)?> | -
| project->products;?> | -
- $productName) echo html::a($this->createLink('product', 'browse', "productID=$productID"), $productName) . ' ';?> - |
-
| project->acl;?> | -project->aclList[$project->acl];?> | -
| project->whitelist;?> | -- whitelist); - foreach($whitelist as $groupID) if(isset($groups[$groupID])) echo $groups[$groupID] . ' '; - ?> - | -
| 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->PM;?> | +PM];?> | +
| project->PO;?> | +PO];?> | +
| project->QM;?> | +QM];?> | +
| project->RM;?> | +RM];?> | +
| project->lblStats;?> | +project->stats, $project->totalEstimate, $project->totalConsumed, $project->totalLeft, 10)?> | +
| project->products;?> | +
+ $productName) echo html::a($this->createLink('product', 'browse', "productID=$productID"), $productName) . ' ';?> + |
+
| project->acl;?> | +project->aclList[$project->acl];?> | +
| project->whitelist;?> | ++ whitelist); + foreach($whitelist as $groupID) if(isset($groups[$groupID])) echo $groups[$groupID] . ' '; + ?> + | +