diff --git a/module/project/view/batchedit.html.php b/module/project/view/batchedit.html.php new file mode 100644 index 0000000000..674eaaff9d --- /dev/null +++ b/module/project/view/batchedit.html.php @@ -0,0 +1,88 @@ + + * @package project + * @version $Id: prjbatchedit.html.php 4769 2021-02-020 11:13:21Z $ + * @link https://www.zentao.net + */ +?> + +project->weekend);?> +project->linkedProjectsTip);?> +project->changeProgram);?> +project->PRJEdit->requiredFields;?> +
+
+

project->PRJBatchEdit;?>

+
+
+ + + + + + + + + + + + + + $project):?> + parent ? $lang->project->PGMPRJAcls : $lang->project->PRJAcls;?> + + + + + + + + + + + + + + + + +
idAB;?>project->PGMParent;?>project->PRJName;?> project->PRJPM;?>project->begin;?>project->end;?>project->acl;?>
parent, "class='form-control chosen' data-id='$projectID' data-name='{$project->name}' data-parent='{$project->parent}'");?>name, "class='form-control'");?>PM, "class='form-control chosen'");?> + begin, "class='form-control form-date' onchange='computeWorkDays(this.id);' placeholder='" . $lang->project->begin . "'");?> + + end == LONG_TIME ? 'disabled' : ''; + $end = $project->end == LONG_TIME ? $lang->project->PRJLongTime : $project->end; + echo html::input("ends[$projectID]", $end, "class='form-control form-date' $disabledEnd onchange='computeWorkDays(this.id);' placeholder='" . $lang->project->end . "'"); + echo html::hidden("dayses[$projectID]", $project->days); + ?> + acl));?>
+ + +
+
+ + diff --git a/module/project/view/browse.html.php b/module/project/view/browse.html.php new file mode 100644 index 0000000000..0c68bfd0cb --- /dev/null +++ b/module/project/view/browse.html.php @@ -0,0 +1,122 @@ + + * @package project + * @version $Id: prjbrowse.html.php 4769 2013-05-05 07:24:21Z wwccss $ + * @link http://www.zentao.net + */ +?> + + + +
+ config->systemMode == 'new'):?> + + +
+ +
+

+ project->noPRJ;?> + config->systemMode == 'new'):?> + ' . $lang->project->PRJCreate, '', 'class="btn btn-info btn-wide " data-toggle="modal" data-target="#guideDialog"');?> + + ' . $lang->project->PRJCreate, '', 'class="btn btn-info btn-wide"');?> + +

+
+ + +
+ +
+ recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"; + $setting = $this->datatable->getSetting('project'); + ?> + + config->systemMode == 'new' ? common::hasPriv('project', 'PRJBatchEdit') : common::hasPriv('project', 'batchEdit');?> + + + id == 'PRJStatus' and $browseType !== 'all') $value->show = false; + if($value->show) $this->datatable->printHead($value, $orderBy, $vars, $canBatchEdit); + } + ?> + + + + + from = 'PRJ';?> + + project->printCell($value, $project, $users, $projectID);?> + + + +
+ + + +
+
+ diff --git a/module/project/view/create.html.php b/module/project/view/create.html.php new file mode 100644 index 0000000000..8f9f631876 --- /dev/null +++ b/module/project/view/create.html.php @@ -0,0 +1,205 @@ + + * @package project + * @version $Id: prjcreate.html.php 4769 2013-05-05 07:24:21Z wwccss $ + * @link http://www.zentao.net + */ +?> + + + + + + + +project->weekend);?> +project->errorSameProducts);?> +project->PRJLongTime);?> +project->PRJCreate->requiredFields;?> +
+
+
+

project->PRJCreate . ' - ' . zget($lang->project->modelList, $model, '');?>

+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + printExtendFields('', 'table');?> + + + + + + + + + + + + + + + + + + + + + +
project->PGMParent;?> + +
project->PRJName;?>
project->PRJPM;?>
project->PRJBudget;?> +
+ budget != 0) ? 'placeholder=' . $lang->project->PGMParentBudget . zget($lang->project->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?> + + + budgetUnit);?> + + + project->defaultCurrency, "class='form-control'");?> + +
+
+
+ + +
+
project->dateRange;?> +
+ project->begin . "' required");?> + project->to;?> + project->end . "' required");?> +
+
project->endList , '', "onclick='computeEndDate(this.value)'");?>
project->days;?> +
+ + project->day;?> +
+
project->manageProducts;?> +
+ + +
+ type != 'normal' and isset($branchGroups[$product->id]);?> +
+ id, "class='form-control chosen' onchange='loadBranches(this)' data-last='" . $product->id . "'");?> + + id], $product->branch, "class='form-control chosen' onchange=\"loadPlans('#products{$i}', this.value)\"");?> +
+
+ + +
' style="padding-right: 6px;"> +
+ + project->addProduct, '', "onchange=addNewProduct(this);");?> +
+
+
+
project->linkPlan;?> +
+ + + + id, array(0 => ''));?> +
id . "]", $plans, '', "class='form-control chosen'");?>
+ + + +
+ +
+
project->PRJDesc;?> + +
project->acl;?>project->PRJAclList, $acl, "onclick='setWhite(this.value);'", 'block'));?>
project->auth;?>project->PRJAuthList, $auth, '', 'block');?>
+ +
+
+
+
+ + + + diff --git a/module/project/view/edit.html.php b/module/project/view/edit.html.php new file mode 100644 index 0000000000..a60e3d3a80 --- /dev/null +++ b/module/project/view/edit.html.php @@ -0,0 +1,197 @@ + + * @package project + * @version $Id + * @link http://www.zentao.net + */ +?> + + + +project->weekend);?> +project->errorSameProducts);?> +parent);?> +id);?> +project->PRJLongTime);?> + + +project->notAllowRemoveProducts);?> +project->linkedProjectsTip);?> +parent ? $lang->project->PGMPRJAclList : $lang->project->PRJAclList;?> +project->PRJEdit->requiredFields;?> +
+
+
+

project->PRJEdit;?>

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + end == LONG_TIME ? 999 : (strtotime($project->end) - strtotime($project->begin)) / 3600 / 24 + 1;?> + + + model == 'scrum'):?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
project->PGMParent;?>parent, "class='form-control chosen'");?>
project->PRJName;?>name, "class='form-control' required");?>
project->PRJPM;?>PM, "class='form-control chosen'" . (strpos($requiredFields, 'PM') !== false ? ' required' : ''));?>
project->PRJBudget;?> +
+ budget != 0) ? 'placeholder=' . $lang->project->PGMParentBudget . zget($lang->project->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?> + budget != 0 ? $project->budget : '', "class='form-control' " . (strpos($requiredFields, 'budget') !== false ? 'required ' : '') . ($project->budget == 0 ? 'disabled ' : '') . $placeholder);?> + + budgetUnit);?> + + + budgetUnit, "class='form-control'");?> + +
+
+
+ budget == 0) echo 'checked';?> /> + +
+
project->dateRange;?> +
+ begin, "class='form-control form-date' onchange='computeWorkDays();' placeholder='" . $lang->project->begin . "' required");?> + project->to;?> + end == LONG_TIME ? 'disabled' : ''; + $end = $project->end == LONG_TIME ? $lang->project->PRJLongTime : $project->end; + echo html::input('end', $end, "class='form-control form-date' onchange='computeWorkDays();' $disabledEnd placeholder='" . $lang->project->end . "' required"); + ?> +
+
project->endList , $deltaValue, "onclick='computeEndDate(this.value)'");?>
project->days;?> +
+ days, "class='form-control'");?> + project->day;?> +
+
project->manageProducts;?> +
+ + +
+ type != 'normal' and isset($branchGroups[$product->id]);?> +
+ id, "class='form-control chosen' data-placeholder={$lang->project->errorNoProducts} onchange='loadBranches(this)' data-last='" . $product->id . "'");?> + + id], $product->branch, "class='form-control chosen' onchange=\"loadPlans('#products{$i}', this.value)\"");?> +
+
+ id, $unmodifiableProducts)) echo html::hidden("products[$i]", $product->id);?> + + +
' style="padding-right: 6px;"> +
+ + +
+
+
+
project->linkPlan;?> +
+ + + id, array(0 => ''));?> +
id . "]", $plans, $product->plan, "class='form-control chosen'");?>
+ + +
+
+
project->PRJDesc;?> + desc, "rows='6' class='form-control kindeditor' hidefocus='true'" . (strpos($requiredFields, 'desc') !== false ? ' required' : ''));?> +
project->acl;?>acl, "onclick='setWhite(this.value);'", 'block'));?>
whitelist;?>whitelist, 'class="form-control chosen" multiple');?>
project->auth;?>project->PRJAuthList, $project->auth, '', 'block');?>
+ model); + echo html::submitButton(); + echo html::backButton(); + ?> +
+
+
+
+ + + + diff --git a/module/project/view/group.html.php b/module/project/view/group.html.php new file mode 100644 index 0000000000..639cfcefe2 --- /dev/null +++ b/module/project/view/group.html.php @@ -0,0 +1,70 @@ + + * @package project + * @version $Id: prigroup.html.php 4769 2013-05-05 07:24:21Z wwccss $ + * @link http://www.zentao.net + */ +?> + + +group->confirmDelete);?> + +
+ + + + + + + + + + + + + id]);?> + + + + + + + + + +
group->id;?>group->name;?>group->desc;?>group->users;?>actions;?>
id;?>name;?>desc;?> + group->managepriv = $lang->group->managePrivByGroup;?> + role == 'limited' ? 'disabled' : '';?> + id&projectID=$projectID&projectID=$projectID", $group, 'list', 'eye', '', $disabled);?> + id", $group, 'list', 'lock');?> + group->managemember = $lang->group->manageMember;?> + id", $group, 'list', 'persons', '', 'iframe', 'yes', "data-width='90%'");?> + id", $group, 'list', 'edit', '', 'iframe', 'yes', "data-width='550'");?> + id", $group, 'list', 'copy', '', "iframe $disabled", 'yes', "data-width='550'");?> + role != 'limited') + { + $deleteURL = $this->createLink('group', 'delete', "groupID=$group->id&confirm=yes"); + echo html::a("javascript:ajaxDelete(\"$deleteURL\", \"groupList\", confirmDelete)", '', '', "title='{$lang->group->delete}' class='btn'"); + } + else + { + echo ""; + } + ?> +
+
+ diff --git a/module/project/view/managemembers.html.php b/module/project/view/managemembers.html.php new file mode 100644 index 0000000000..87c49266b5 --- /dev/null +++ b/module/project/view/managemembers.html.php @@ -0,0 +1,115 @@ + +id);?> + + +
+
+ + + + + + + + + + + + + + + account])) continue;?> + account]);?> + + + + + + + + + + + + $userName):?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
team->account;?>team->role;?>team->days;?>team->hours;?>team->limited;?> actions;?>
+ + + team->limitedList, $member->limited);?> + + +
+ + team->limitedList, 'no');?> + + +
+ + team->limitedList, 'no');?> + + +
+ +
+ +
+
+
+ + + + + + + + + + + +
+ diff --git a/module/project/view/managepriv.html.php b/module/project/view/managepriv.html.php new file mode 100644 index 0000000000..ffc6326693 --- /dev/null +++ b/module/project/view/managepriv.html.php @@ -0,0 +1,187 @@ + + * @package group + * @version $Id: managepriv.html.php 4129 2013-01-18 01:58:14Z wwccss $ + * @link http://www.zentao.net + */ +?> + + + +role == 'limited'):?> + +
+
+ + + + + + + + '> + + + + + + + +
group->module;?>group->method;?>
my->common;?> +
+ /> + +
+
+ + + +
+
+
+ + +
+
+ + + + + + + + resource as $moduleName => $moduleActions):?> + + group->checkMenuModule($menu, $moduleName)) continue;?> + $actionLabel) + { + if(strpos($changelogs, ",$moduleName-$actionLabel,") !== false) + { + $hasMethod = true; + break; + } + } + if(!$hasMethod) continue; + } + ?> + '> + + $moduleName->menus)):?> + + + + + + + + + +
group->module;?>group->method;?>
+
+ + +
+
+ + $actionLabel):?> + $moduleName->menus) and $action == 'browse') continue;;?> + +
+ $lang->$moduleName->$actionLabel), isset($groupPrivs[$moduleName][$action]) ? $action : '', '', 'inline');?> +
+ +
+
+ + +
+
+ + + +
+
+
+ + + + + diff --git a/module/project/view/manageproducts.html.php b/module/project/view/manageproducts.html.php new file mode 100644 index 0000000000..d55f9ac8df --- /dev/null +++ b/module/project/view/manageproducts.html.php @@ -0,0 +1,69 @@ + + * @package project + * @version $Id + * @link http://www.zentao.net + */ +?> + + +
+
+
+
+
project->linkedProducts;?>
+
+ $productName):?> + + + project->notAllowRemoveProducts : $productName;?> + +
+
'> +
+ ";?> + +
+ branch, "class='form-control chosen'");?> +
+
+ + + + +
+
+
+
project->unlinkedProducts;?>
+
+ $productName):?> +
+
'> +
+ ";?> + +
+ +
+
+ +
+
+
+ + + +
+
+
+
+ diff --git a/module/project/view/manageview.html.php b/module/project/view/manageview.html.php new file mode 100644 index 0000000000..7c260cfc60 --- /dev/null +++ b/module/project/view/manageview.html.php @@ -0,0 +1,86 @@ + + * @package group + * @version $Id: managepriv.html.php 1517 2011-03-07 10:02:57Z wwccss $ + * @link http://www.zentao.net + */ +?> + +
+
+

+ name;?> + arrow . $lang->group->manageView;?> +

+
+
+ + + + + + + + + + + + + +
group->productList?> + +
+ acl['products']) ? join(',', $group->acl['products']) : '', "class='form-control chosen' multiple")?> + group->noticeVisit?> +
+ + group->noneProduct;?> + +
group->projectList?> + +
+ acl['projects']) ? join(',', $group->acl['projects']) : '', "class='form-control chosen' multiple")?> + group->noticeVisit?> +
+ + group->noneProject;?> + +
+ + + +
+
+
+ diff --git a/module/project/view/programtitle.html.php b/module/project/view/programtitle.html.php new file mode 100644 index 0000000000..0bf9dc282c --- /dev/null +++ b/module/project/view/programtitle.html.php @@ -0,0 +1,32 @@ + + * @package project + * @version $Id: prjprojecttitle.html.php 4769 2013-05-05 07:24:21Z wwccss $ + * @link http://www.zentao.net + */ +?> + + + + diff --git a/module/project/view/start.html.php b/module/project/view/start.html.php new file mode 100644 index 0000000000..2170db29da --- /dev/null +++ b/module/project/view/start.html.php @@ -0,0 +1,50 @@ + + * @package project + * @version $Id: prjstart.html.php 4769 2013-05-05 07:24:21Z wwccss $ + * @link http://www.zentao.net + */ +?> + + +
+
+

+ id;?> + name'>" . $project->name . '') : html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name, '_blank');?> + + arrow . $lang->project->start;?> + +

+
+
+ + + + + + + + + + + + + + + +
project->realBegan;?>
comment;?>
+ project->start);?> +
+
+
+
+ +
+
+ diff --git a/module/project/view/view.html.php b/module/project/view/view.html.php new file mode 100644 index 0000000000..a020719652 --- /dev/null +++ b/module/project/view/view.html.php @@ -0,0 +1,235 @@ + + * @package project + * @version $Id: view.html.php 4594 2013-03-13 06:16:02Z wyd621@gmail.com $ + * @link http://www.zentao.net + */ +?> + + +
+
+
+
+
+
+
project->latestDynamic;?>
+ +
+
+
    + +
  • major) echo "class='active'";?>> +
    + date;?> + actor) . ' ' . "{$action->actionLabel}" . $action->objectLabel . ' ' . html::a($action->objectLink, $action->objectName, '', "title='$action->objectName'");?> +
    +
  • + +
+
+
+
+
+
+
+
project->relatedMember;?>
+ +
+
+
+ + PM):?> + + PM]);?> +
PM);?> (project->PRJPM;?>)
+ + PO):?> + + PO]);?> +
PO);?> (project->PO;?>)
+ + QD):?> + + QD]);?> +
QD);?> (project->QD;?>)
+ + RD):?> + + RD]);?> +
RD);?> (project->RD;?>)
+ + + + $i) break;?> +
account);?>
+ + +
+ id", "  " . $lang->project->manageMembers, '', "class='text-muted'");?> +
+
+
+
+
+
+ + createLink('action', 'comment', "objectType=project&objectID=$project->id");?> + +
+
+
+
+ id"; + common::printBack(inlink('prjbrowse')); + if(!$project->deleted) + { + echo "
"; + common::printIcon('project', 'PRJStart', "projectID=$project->id", $project, 'button', 'play', '', 'iframe', true, '', $lang->project->start); + common::printIcon('project', 'PRJActivate', "projectID=$project->id", $project, 'button', 'magic', '', 'iframe', true, '', $lang->project->activate); + common::printIcon('project', 'PRJSuspend', "projectID=$project->id", $project, 'button', 'pause', '', 'iframe', true, '', $lang->project->suspend); + common::printIcon('project', 'PRJClose', "projectID=$project->id", $project, 'button', 'off', '', 'iframe', true, '', $lang->close); + + echo $this->buildOperateMenu($project, 'view'); + + echo "
"; + common::printIcon('project', 'PRJEdit', $params, $project, 'button', 'edit', '', '', '', '', $lang->edit); + common::printIcon('project', 'PRJDelete', $params, $project, 'button', 'trash', 'hiddenwin', '', '', '', $lang->delete); + } + ?> +
+
+
+
+
+
+
+
+

id;?> code;?> name;?>

+
+

desc;?>

+

+ deleted):?> + project->deleted;?> + + project->PRJLifeTimeList, $project->lifetime);?> + delay)):?> + project->delayed;?> + + processStatus('project', $project);?> + +

+
+
+
+
+ project->manageProducts;?> + id", '', '', "class='btn btn-link pull-right muted'");?> +
+
+
+ $product):?> + branch]) ? '/' . $branchGroups[$productID][$product->branch] : '';?> +
+ createLink('product', 'browse', "productID=$productID&branch=$product->branch"), " " . $product->name . $branchName);?> +
+ +
+
+
+
+
project->linkPlan;?>
+
+
+ $product):?> + plan])):?> +
createLink('productplan', 'view', "planID={$product->plan}"), $product->name . '/' . $planGroups[$productID][$product->plan]);?>
+ + +
+
+
+
+
project->lblStats;?>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ totalConsumed + $workhour->totalLeft) ? floor($workhour->totalConsumed / ($workhour->totalConsumed + $workhour->totalLeft) * 1000) / 1000 * 100 : 0;?> + project->progress;?> percent;?>   +
+
+
+
project->begin;?>begin;?>project->totalEstimate;?>totalEstimate . $lang->project->workHour;?>
project->end;?>end;?>project->totalConsumed;?>totalConsumed . $lang->project->workHour;?>
project->totalDays;?>days;?>project->totalLeft;?>totalLeft . $lang->project->workHour;?>
project->totalHours;?>totalHours . $lang->project->workHour;?>
+
+
+
+
project->basicInfo;?>
+
+ + + + + + + + + + + +
story->common;?>storyCount;?>task->common;?>taskCount;?>bug->common;?>bugCount;?>
+
+
+
+
project->acl;?>
+
+

project->PGMPRJAclList[$project->acl];?>

+
+
+ printExtendFields($project, 'div', "position=right&inForm=0&inCell=1");?> +
+
+
+
+
+ +
+ +