Merge branch '20.x' of github.com:easysoft/zentaopms into 20.x
This commit is contained in:
@@ -1585,8 +1585,8 @@ class block extends control
|
||||
*/
|
||||
public function printScrumoverallBlock()
|
||||
{
|
||||
$programID = $this->session->program;
|
||||
$totalData = $this->loadModel('program')->getUserPrograms('all','id_desc',15,$programID);
|
||||
$programID = $this->session->program;
|
||||
$totalData = $this->loadModel('program')->getUserPrograms('all', 'id_desc', 15, $programID);
|
||||
|
||||
$this->view->totalData = $totalData;
|
||||
$this->view->programID = $programID;
|
||||
|
||||
@@ -83,6 +83,13 @@ $lang->block->totalStory = '总' . $lang->storyCommon;
|
||||
$lang->block->totalBug = '总Bug';
|
||||
$lang->block->totalRelease = '发布次数';
|
||||
|
||||
$lang->block->totalInvestment = '总投入';
|
||||
$lang->block->totalPeople = '总人数';
|
||||
$lang->block->spent = '已花费';
|
||||
$lang->block->budget = '预算';
|
||||
$lang->block->left = '剩余';
|
||||
|
||||
|
||||
$lang->block->default['cmmi']['program']['1']['title'] = '项目周报';
|
||||
$lang->block->default['cmmi']['program']['1']['block'] = 'cmmireport';
|
||||
$lang->block->default['cmmi']['program']['1']['source'] = 'program';
|
||||
|
||||
@@ -14,71 +14,76 @@
|
||||
<div class='empty-tip'><?php common::printLink('project', 'create', '', "<i class='icon-plus'></i> " . $lang->project->create, '', "class='btn btn-primary'")?></div>
|
||||
<?php else:?>
|
||||
<style>
|
||||
#toal-investment{padding-bottom: 5px;}
|
||||
.over-title{font-size: 14px; color: #838a9d;}
|
||||
.extra-title{font-size: 12px; color: #a1a7b7;}
|
||||
#totalInvestment{padding-bottom: 5px;}
|
||||
.overview-title{font-size: 14px; color: #838a9d;}
|
||||
.extra-tips{font-size: 12px; color: #a1a7b7;}
|
||||
.progress{margin-bottom: 8px;}
|
||||
.total-div{padding: 0px 25px;}
|
||||
.extra-div{position: relative; padding: 0px 5px 5px; display: table-cell;text-align: center;}
|
||||
.extra-div > small {display: block; color: #A6AAB8;}
|
||||
.extra-div > span {display: block; color: #3c4353; font-weight: bold;}
|
||||
.total-block{padding: 0px 25px;}
|
||||
.hours-statistics{position: relative; padding: 0px 5px 5px; display: table-cell;text-align: center;}
|
||||
.hours-statistics > small {display: block; color: #A6AAB8;}
|
||||
.hours-statistics > span {display: block; color: #3c4353; font-weight: bold;}
|
||||
</style>
|
||||
<div class="panel-body conatiner-fluid">
|
||||
<div class="table-row">
|
||||
<div class="col-6 tile">
|
||||
<div class="text-left" id="toal-investment"><strong>总投入</strong></div>
|
||||
<div class="text-left" id="totalInvestment"><strong><?php echo $lang->block->totalInvestment;?></strong></div>
|
||||
<div class="table-row">
|
||||
<div class="col-4 tile">
|
||||
<div class="over-title"><i class="icon-program-group icon-group"></i> 我的任务</div>
|
||||
<div class="tile-amount"><a href="/my-task-assignedTo.html">96</a>
|
||||
<div class="overview-title"><i class="icon-program-group icon-group"></i><?php echo $lang->block->totalPeople;?></div>
|
||||
<div class="tile-amount">
|
||||
<?php echo $totalData[$programID]->teamCount ? html::a($this->createLink('program', 'manageMembers', 'programID=' . $programID), $totalData[$programID]->teamCount) : 0;?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 tile">
|
||||
<div class="over-title"><i class="icon icon-time"></i> 已消耗工时</div>
|
||||
<div class="tile-amount"><a href="/my-task-assignedTo.html">96</a>
|
||||
<div class="overview-title"><i class="icon icon-time"></i><?php echo $lang->block->consumedHours;?></div>
|
||||
<div class="tile-amount"><a href="/my-task-assignedTo.html"><?php echo $totalData[$programID]->consumed;?></a>
|
||||
</div>
|
||||
<div class="tile-info">
|
||||
<span class="extra-title">总预计 10</span>
|
||||
<span class="extra-tips"><?php echo $lang->block->estimatedHours;?> <?php echo $totalData[$programID]->estimate;?></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 tile">
|
||||
<div class="over-title"><i class="icon icon-circle"></i> 已花费</div>
|
||||
<div class="tile-amount"><a href="/my-task-assignedTo.html">¥200,00</a>
|
||||
<div class="overview-title"><i class="icon icon-circle"></i><?php echo $lang->block->spent;?></div>
|
||||
<div class="tile-amount"><a href="/my-task-assignedTo.html">¥0</a>
|
||||
</div>
|
||||
<div class="tile-info">
|
||||
<span class="extra-title">预算 ¥1000,00</span>
|
||||
<span class="extra-tips"><?php echo $lang->block->budget;?> ¥<?php echo $totalData[$programID]->budget;?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3 total-div">
|
||||
<div><strong>总需求</strong></div>
|
||||
<div class="tile-amount"><a href="/my-task-assignedTo.html">80</a></div>
|
||||
<div class="col-3 total-block">
|
||||
<div><strong><?php echo $lang->block->totalStory;?></strong></div>
|
||||
<div class="tile-amount">
|
||||
<?php echo $totalData[$programID]->allStories ? html::a($this->createLink('project', 'story', 'projectID=' . $programID), $totalData[$programID]->allStories) : 0;?>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%"></div>
|
||||
<div class="progress-bar" role="progressbar" aria-valuenow="<?php echo $totalData[$programID]->doneStories;?>" aria-valuemin="0" aria-valuemax="<?php echo $totalData[$programID]->allStories;?>" style="width: <?php echo floor(($totalData[$programID]->doneStories/$totalData[$programID]->allStories)*100).'%';?>"></div>
|
||||
</div>
|
||||
<div class="extra-div">
|
||||
<small>已完成</small>
|
||||
<span>0</span>
|
||||
<div class="hours-statistics">
|
||||
<small><?php echo $lang->block->done;?></small>
|
||||
<span><?php echo $totalData[$programID]->doneStories;?></span>
|
||||
</div>
|
||||
<div class="extra-div">
|
||||
<small>剩余</small>
|
||||
<span>0</span>
|
||||
<div class="hours-statistics">
|
||||
<small><?php echo $lang->block->left;?></small>
|
||||
<span><?php echo $totalData[$programID]->leftStories;?></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3 total-div">
|
||||
<div><strong>总Bug</strong></div>
|
||||
<div class="tile-amount"><a href="/my-task-assignedTo.html">80</a></div>
|
||||
<div class="col-3 total-block">
|
||||
<div><strong><?php echo $lang->block->totalBug;?></strong></div>
|
||||
<div class="tile-amount">
|
||||
<?php echo $totalData[$programID]->allBugs ? html::a($this->createLink('qa', 'index', 'pgm=' . $programID), $totalData[$programID]->allBugs) : 0;?>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%"></div>
|
||||
<div class="progress-bar" role="progressbar" aria-valuenow="<?php echo $totalData[$programID]->doneBugs;?>" aria-valuemin="0" aria-valuemax="<?php echo $totalData[$programID]->allBugs;?>" style="width: <?php echo floor(($totalData[$programID]->doneBugs/$totalData[$programID]->allBugs)*100).'%';?>"></div>
|
||||
</div>
|
||||
<div class="extra-div">
|
||||
<small>已完成</small>
|
||||
<span>0</span>
|
||||
<div class="hours-statistics">
|
||||
<small><?php echo $lang->block->done;?></small>
|
||||
<span><?php echo $totalData[$programID]->doneBugs;?></span>
|
||||
</div>
|
||||
<div class="extra-div">
|
||||
<small>剩余</small>
|
||||
<span>0</span>
|
||||
<div class="hours-statistics">
|
||||
<small><?php echo $lang->block->left;?></small>
|
||||
<span><?php echo $totalData[$programID]->leftBugs;?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+26
-42
@@ -35,17 +35,6 @@ $lang->program->begin = 'Begin';
|
||||
$lang->program->end = 'End';
|
||||
$lang->program->status = 'Status';
|
||||
$lang->program->PM = 'Project Manager';
|
||||
$lang->program->create = 'Create';
|
||||
$lang->program->createGuide = 'Select the project template';
|
||||
$lang->program->browse = 'Program List';
|
||||
$lang->program->edit = 'Edit';
|
||||
$lang->program->all = 'All';
|
||||
$lang->program->start = 'Start';
|
||||
$lang->program->finish = 'Finish';
|
||||
$lang->program->suspend = 'Suspend';
|
||||
$lang->program->delete = 'Delete';
|
||||
$lang->program->close = 'Close';
|
||||
$lang->program->activate = 'Activate';
|
||||
$lang->program->budget = 'Budget';
|
||||
$lang->program->dateRange = 'Date Range';
|
||||
$lang->program->to = ' to ';
|
||||
@@ -69,19 +58,12 @@ $lang->program->doneStories = 'Done stories';
|
||||
$lang->program->leftStories = 'Left stories';
|
||||
$lang->program->allInput = 'All Input';
|
||||
$lang->program->weekly = 'Program Weekly';
|
||||
|
||||
|
||||
$lang->program->pv = 'PV';
|
||||
$lang->program->ev = 'EV';
|
||||
$lang->program->sv = 'SV%';
|
||||
$lang->program->ac = 'AC';
|
||||
$lang->program->cv = 'CV%';
|
||||
$lang->program->pm = 'PM';
|
||||
|
||||
$lang->program->manageGroupMember = 'Manage Group Members';
|
||||
$lang->program->durationEstimation = 'Workload estimate';
|
||||
$lang->program->noProgram = 'No projects';
|
||||
$lang->program->accessDenied = 'You do not have access to this project!';
|
||||
$lang->program->teamCount = 'The Number Of Team';
|
||||
|
||||
$lang->program->unitList[''] = '';
|
||||
@@ -112,27 +94,29 @@ $lang->program->statusList['doing'] = 'Doing';
|
||||
$lang->program->statusList['suspended'] = 'Suspended';
|
||||
$lang->program->statusList['closed'] = 'Closed';
|
||||
|
||||
$lang->program->noProgram = 'No Program';
|
||||
$lang->program->accessDenied = 'Has No Access To The Program';
|
||||
$lang->program->chooseProgramType = 'Choose management type';
|
||||
$lang->program->nextStep = 'Next step';
|
||||
$lang->program->hoursUnit = '%s hours';
|
||||
$lang->program->membersUnit = '%s members';
|
||||
$lang->program->lastIteration = 'Latest iterations';
|
||||
$lang->program->ongoingStage = 'Ongoing stage';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->scrumTitle = 'Scrum development full process project management';
|
||||
$lang->program->scrumDesc = '<strong>Introduction: </strong>Iterate in small steps, release quickly<br><strong>Contains function points: </strong>Project overview, iterations, plans, stories, etc.';
|
||||
$lang->program->cmmi = 'CMMI';
|
||||
$lang->program->cmmiTitle = 'CMMI management';
|
||||
$lang->program->cmmiDesc = '<strong>Introduction: </strong>Standardized management by stages<br><strong>Contains function points: </strong>Estimate, plan, stage, report, etc.';
|
||||
$lang->program->cannotCreateChild = 'The project already has actual content and can not add subprojects directly. You can create a parent project for the current project and then add a child project under the new parent project.';
|
||||
$lang->program->hasChildren = 'This project has a subproject and can not be deleted.';
|
||||
$lang->program->confirmDelete = 'Do you want to delete this project?';
|
||||
$lang->program->emptyPM = 'No program manager';
|
||||
$lang->program->hasChildren = 'This project has a subproject and can not be deleted.';
|
||||
$lang->program->confirmDelete = "Are you sure you want to delete the item [% s ] ?";
|
||||
$lang->program->cannotChangeToCat = "The project already has the actual content and can not be modified as a parent project";
|
||||
$lang->program->cannotCancelCat = "There are already children under this project. You can not unmark the parent project";
|
||||
$lang->program->cannotChangeToCat = "The project already has the actual content and can not be modified as a parent project";
|
||||
$lang->program->cannotCancelCat = "There are already children under this project. You can not unmark the parent project";
|
||||
$lang->program->noProgram = 'No Program';
|
||||
$lang->program->accessDenied = 'Has No Access To The Program';
|
||||
$lang->program->chooseProgramType = 'Choose management type';
|
||||
$lang->program->nextStep = 'Next step';
|
||||
$lang->program->hoursUnit = '%s hours';
|
||||
$lang->program->membersUnit = '%s members';
|
||||
$lang->program->lastIteration = 'Latest iterations';
|
||||
$lang->program->ongoingStage = 'Ongoing stage';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->scrumTitle = 'Scrum development full process project management';
|
||||
$lang->program->scrumDesc = '<strong>Introduction: </strong>Iterate in small steps, release quickly<br><strong>Contains function points: </strong>Project overview, iterations, plans, stories, etc.';
|
||||
$lang->program->cmmi = 'CMMI';
|
||||
$lang->program->cmmiTitle = 'CMMI management';
|
||||
$lang->program->cmmiDesc = '<strong>Introduction: </strong>Standardized management by stages<br><strong>Contains function points: </strong>Estimate, plan, stage, report, etc.';
|
||||
$lang->program->cannotCreateChild = 'The project already has actual content and can not add subprojects directly. You can create a parent project for the current project and then add a child project under the new parent project.';
|
||||
$lang->program->hasChildren = 'This project has a subproject and can not be deleted.';
|
||||
$lang->program->confirmDelete = 'Do you want to delete this project?';
|
||||
$lang->program->emptyPM = 'No program manager';
|
||||
$lang->program->cannotChangeToCat = "The project already has the actual content and can not be modified as a parent project";
|
||||
$lang->program->cannotCancelCat = "There are already children under this project. You can not unmark the parent project";
|
||||
$lang->program->parentBeginEnd = "Begin and end date of parent project: %s ~ %s";
|
||||
$lang->program->parentBudget = "Parent project budget: %s";
|
||||
$lang->program->beginLetterParent = "Begin date of parent project: %s, Begin date cannot be less than the begin date of parent project.";
|
||||
$lang->program->endGreaterParent = "End date of parent project: %s, End date cannot be greater than the end date of parent project.";
|
||||
$lang->program->beginGreateChild = "Minimum begin date of child project: %s, the begin date of parent project cannot be greater than the minimum begin date of child project.";
|
||||
$lang->program->endLetterChild = "Maximum end date of child project: %s, the end date of parent project cannot be less than the maximum end date of child project.";
|
||||
|
||||
@@ -353,10 +353,10 @@ class programModel extends model
|
||||
->get();
|
||||
$program = $this->loadModel('file')->processImgURL($program, $this->config->program->editor->edit['id'], $this->post->uid);
|
||||
|
||||
if(!empty($program->isCat) and $this->checkHasContent($programID)) dao::$errors['isCat'] = $this->lang->program->cannotChangeToCat;
|
||||
if(empty($program->isCat) and $this->checkHasChildren($programID)) dao::$errors['isCat'] = $this->lang->program->cannotCancelCat;
|
||||
if(!$oldProgram->isCat and !empty($program->isCat) and $this->checkHasContent($programID)) dao::$errors['isCat'] = $this->lang->program->cannotChangeToCat;
|
||||
if($oldProgram->isCat and empty($program->isCat) and $this->checkHasChildren($programID)) dao::$errors['isCat'] = $this->lang->program->cannotCancelCat;
|
||||
|
||||
if($program->isCat)
|
||||
if(!empty($program->isCat))
|
||||
{
|
||||
$minChildBegin = $this->dao->select('min(begin) as minBegin')->from(TABLE_PROJECT)->where('id')->ne($programID)->andWhere('deleted')->eq(0)->andWhere('path')->like("%,{$programID},%")->fetch('minBegin');
|
||||
$maxChildEnd = $this->dao->select('max(end) as maxEnd')->from(TABLE_PROJECT)->where('id')->ne($programID)->andWhere('deleted')->eq(0)->andWhere('path')->like("%,{$programID},%")->fetch('maxEnd');
|
||||
|
||||
@@ -15,6 +15,9 @@ class risk extends control
|
||||
*/
|
||||
public function browse($browseType = 'all', $param = '', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
{
|
||||
$uri = $this->app->getURI(true);
|
||||
$this->session->set('riskList', $uri);
|
||||
|
||||
$queryID = ($browseType == 'bysearch') ? (int)$param : 0;
|
||||
/* Build the search form. */
|
||||
$actionURL = $this->createLink('risk', 'browse', "browseType=bysearch&queryID=myQueryID");
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
$(function()
|
||||
{
|
||||
$('#riskindex').attr('readonly', true);
|
||||
$('#pri').attr('disabled', true);
|
||||
computeIndex();
|
||||
function computeIndex()
|
||||
{
|
||||
var impact = $('#impact').val();
|
||||
var probability = $('#probability').val();
|
||||
var riskindex = parseInt(impact * probability);
|
||||
var pri = '';
|
||||
if(0 < riskindex && riskindex <= 5) pri = 'low';
|
||||
if(5 < riskindex && riskindex <= 12) pri = 'middle';
|
||||
if(15 <= riskindex && riskindex <= 25) pri = 'high';
|
||||
|
||||
$('#riskindex').val(riskindex);
|
||||
$('#pri').val(pri);
|
||||
$('#pri').trigger("chosen:updated")
|
||||
$('#pri').chosen();
|
||||
$('#pri').attr('disabled', true);
|
||||
$('input[name="pri"]').remove();
|
||||
$('#pri').after("<input type='hidden' name='pri' value='" + pri + "'/>");
|
||||
}
|
||||
|
||||
$('#impact, #probability').change(function(){computeIndex()});
|
||||
})
|
||||
@@ -8,7 +8,7 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='w-50px'><?php echo $lang->risk->id;?></th>
|
||||
<th><?php echo $lang->risk->name;?></th>
|
||||
<th class='required'><?php echo $lang->risk->name;?></th>
|
||||
<th class='w-200px'><?php echo $lang->risk->source;?></th>
|
||||
<th class='w-200px'><?php echo $lang->risk->category;?></th>
|
||||
<th class='w-200px'><?php echo $lang->risk->strategy;?></th>
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->strategy;?></th>
|
||||
<td><?php echo zget($lang->risk->strategy, $risk->strategy);?></td>
|
||||
<td><?php echo zget($lang->risk->strategyList, $risk->strategy);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->status;?></th>
|
||||
@@ -86,11 +86,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->impact;?></th>
|
||||
<td><?php echo zget($lang->risk->impact, $risk->impact);?></td>
|
||||
<td><?php echo zget($lang->risk->impactList, $risk->impact);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->probability;?></th>
|
||||
<td><?php echo zget($lang->risk->probability, $risk->probability);?></td>
|
||||
<td><?php echo zget($lang->risk->probabilityList, $risk->probability);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->riskindex;?></th>
|
||||
|
||||
+16
-12
@@ -55,6 +55,7 @@ $lang->task->allModule = 'All Module';
|
||||
|
||||
$lang->task->common = 'Aufgabe';
|
||||
$lang->task->id = 'ID';
|
||||
$lang->task->program = 'Program';
|
||||
$lang->task->project = $lang->projectCommon;
|
||||
$lang->task->module = 'Modul';
|
||||
$lang->task->moduleAB = 'Modul';
|
||||
@@ -152,6 +153,7 @@ $lang->task->statusList['closed'] = 'Geschlossen';
|
||||
$lang->task->typeList[''] = '';
|
||||
$lang->task->typeList['design'] = 'Design';
|
||||
$lang->task->typeList['devel'] = 'Entwicklung';
|
||||
$lang->task->typeList['request'] = 'Request';
|
||||
$lang->task->typeList['test'] = 'Test';
|
||||
$lang->task->typeList['study'] = 'Studie';
|
||||
$lang->task->typeList['discuss'] = 'Diskusion';
|
||||
@@ -198,18 +200,20 @@ $lang->task->createDenied = 'Aufgben erstellen it in diesem Projekt ges
|
||||
$lang->task->cannotDeleteParent = 'Cannot delete parent task';
|
||||
|
||||
$lang->task->error = new stdclass();
|
||||
$lang->task->error->consumedNumber = '"Verbraucht" muss eine Zahl sein.';
|
||||
$lang->task->error->estimateNumber = '"Stunden" müss eine Zahl sein.';
|
||||
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
|
||||
$lang->task->error->consumedSmall = '"Genutzt" muss larger than before.';
|
||||
$lang->task->error->consumedThisTime = 'Bitte geben Sie die Stunden an';
|
||||
$lang->task->error->left = 'Bitte geben Sie die verbleibenden Stunden an"';
|
||||
$lang->task->error->work = '"Bemerkung" muss kleiner als %d Zeichen sein.';
|
||||
$lang->task->error->skipClose = 'Aufgabe: %s ist nicht “Erledigt” oder “Abgebrochen”. Möchten Sie die Aufgabe jetzt schließen?';
|
||||
$lang->task->error->consumed = 'Aufgabe: %s Hour must be more than 0. Ignore changes to this Task.';
|
||||
$lang->task->error->assignedTo = 'Mehere Tasks können nicht zugewisen werden, da die Benutzer nicht teil des Teams sind.';
|
||||
$lang->task->error->consumedEmpty = '"Current Cost" should not be empty.';
|
||||
$lang->task->error->deadlineSmall = '"Deadline" must be greater than "StartDate".';
|
||||
$lang->task->error->consumedNumber = '"Verbraucht" muss eine Zahl sein.';
|
||||
$lang->task->error->estimateNumber = '"Stunden" müss eine Zahl sein.';
|
||||
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
|
||||
$lang->task->error->consumedSmall = '"Genutzt" muss larger than before.';
|
||||
$lang->task->error->consumedThisTime = 'Bitte geben Sie die Stunden an';
|
||||
$lang->task->error->left = 'Bitte geben Sie die verbleibenden Stunden an"';
|
||||
$lang->task->error->work = '"Bemerkung" muss kleiner als %d Zeichen sein.';
|
||||
$lang->task->error->skipClose = 'Aufgabe: %s ist nicht “Erledigt” oder “Abgebrochen”. Möchten Sie die Aufgabe jetzt schließen?';
|
||||
$lang->task->error->consumed = 'Aufgabe: %s Hour must be more than 0. Ignore changes to this Task.';
|
||||
$lang->task->error->assignedTo = 'Mehere Tasks können nicht zugewisen werden, da die Benutzer nicht teil des Teams sind.';
|
||||
$lang->task->error->consumedEmpty = '"Current Cost" should not be empty.';
|
||||
$lang->task->error->deadlineSmall = '"Deadline" must be greater than "StartDate".';
|
||||
$lang->task->error->realStartedEmpty = '"Real Started" should not be empty.';
|
||||
$lang->task->error->finishedDateEmpty = '"Finished Date" should not be empty.';
|
||||
|
||||
/* Report. */
|
||||
$lang->task->report = new stdclass();
|
||||
|
||||
+16
-12
@@ -55,6 +55,7 @@ $lang->task->allModule = 'All Module';
|
||||
|
||||
$lang->task->common = 'Tâche';
|
||||
$lang->task->id = 'ID';
|
||||
$lang->task->program = 'Program';
|
||||
$lang->task->project = $lang->projectCommon;
|
||||
$lang->task->module = 'Module';
|
||||
$lang->task->moduleAB = 'Module';
|
||||
@@ -152,6 +153,7 @@ $lang->task->statusList['closed'] = 'Fermée';
|
||||
$lang->task->typeList[''] = '';
|
||||
$lang->task->typeList['design'] = 'Design';
|
||||
$lang->task->typeList['devel'] = 'Développement';
|
||||
$lang->task->typeList['request'] = 'Request';
|
||||
$lang->task->typeList['test'] = 'Test';
|
||||
$lang->task->typeList['study'] = 'Analyse';
|
||||
$lang->task->typeList['discuss'] = 'Discussion';
|
||||
@@ -198,18 +200,20 @@ $lang->task->createDenied = 'La création de tâches est interdite dans
|
||||
$lang->task->cannotDeleteParent = 'Cannot delete parent task';
|
||||
|
||||
$lang->task->error = new stdclass();
|
||||
$lang->task->error->consumedNumber = '"Coût" doit être numérique.';
|
||||
$lang->task->error->estimateNumber = '"Estimé" doit être numérique.';
|
||||
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
|
||||
$lang->task->error->consumedSmall = '"Coût Total" doit être > au dernier chiffre.';
|
||||
$lang->task->error->consumedThisTime = 'Entrez le "Coût en Heures"';
|
||||
$lang->task->error->left = 'Entrez les "Heures Restantes"';
|
||||
$lang->task->error->work = '"Commentaire" doit être < %d caractères.';
|
||||
$lang->task->error->skipClose = 'Tâche: %s non “Finie” ou “Annulée”. Voulez-vous la fermer malgré tout ?';
|
||||
$lang->task->error->consumed = 'Tâche: %s heures doivent être < 0. Ignorer changements de cette tâche.';
|
||||
$lang->task->error->assignedTo = "Tâche Multi-user dans le statut courant ne peut pas être assignée à un membre qui ne fait pas partie de l'équipe.";
|
||||
$lang->task->error->consumedEmpty = '"Coût Actuel" ne devrait pas être vide.';
|
||||
$lang->task->error->deadlineSmall = '"Deadline" must be greater than "StartDate".';
|
||||
$lang->task->error->consumedNumber = '"Coût" doit être numérique.';
|
||||
$lang->task->error->estimateNumber = '"Estimé" doit être numérique.';
|
||||
$lang->task->error->recordMinus = 'Work hours should not be negative number.';
|
||||
$lang->task->error->consumedSmall = '"Coût Total" doit être > au dernier chiffre.';
|
||||
$lang->task->error->consumedThisTime = 'Entrez le "Coût en Heures"';
|
||||
$lang->task->error->left = 'Entrez les "Heures Restantes"';
|
||||
$lang->task->error->work = '"Commentaire" doit être < %d caractères.';
|
||||
$lang->task->error->skipClose = 'Tâche: %s non “Finie” ou “Annulée”. Voulez-vous la fermer malgré tout ?';
|
||||
$lang->task->error->consumed = 'Tâche: %s heures doivent être < 0. Ignorer changements de cette tâche.';
|
||||
$lang->task->error->assignedTo = "Tâche Multi-user dans le statut courant ne peut pas être assignée à un membre qui ne fait pas partie de l'équipe.";
|
||||
$lang->task->error->consumedEmpty = '"Coût Actuel" ne devrait pas être vide.';
|
||||
$lang->task->error->deadlineSmall = '"Deadline" must be greater than "StartDate".';
|
||||
$lang->task->error->realStartedEmpty = '"Real Started" should not be empty.';
|
||||
$lang->task->error->finishedDateEmpty = '"Finished Date" should not be empty.';
|
||||
|
||||
/* Report. */
|
||||
$lang->task->report = new stdclass();
|
||||
|
||||
+16
-12
@@ -55,6 +55,7 @@ $lang->task->allModule = 'Tất cả Module';
|
||||
|
||||
$lang->task->common = 'Nhiệm vụ';
|
||||
$lang->task->id = 'ID';
|
||||
$lang->task->program = 'Program';
|
||||
$lang->task->project = $lang->projectCommon;
|
||||
$lang->task->module = 'Module';
|
||||
$lang->task->moduleAB = 'Module';
|
||||
@@ -152,6 +153,7 @@ $lang->task->statusList['closed'] = 'Đã đóng';
|
||||
$lang->task->typeList[''] = '';
|
||||
$lang->task->typeList['design'] = 'Thiết kế';
|
||||
$lang->task->typeList['devel'] = 'Phát triển';
|
||||
$lang->task->typeList['request'] = 'Request';
|
||||
$lang->task->typeList['test'] = 'Đang test';
|
||||
$lang->task->typeList['study'] = 'Study';
|
||||
$lang->task->typeList['discuss'] = 'Thảo luận';
|
||||
@@ -198,18 +200,20 @@ $lang->task->createDenied = 'Tạo nhiệm vụ bị từ chối trong
|
||||
$lang->task->cannotDeleteParent = 'Không thể xóa nhiệm vụ cha';
|
||||
|
||||
$lang->task->error = new stdclass();
|
||||
$lang->task->error->consumedNumber = '"Giờ làm" phải là số.';
|
||||
$lang->task->error->estimateNumber = '"Dự tính" phải là số.';
|
||||
$lang->task->error->recordMinus = 'Giờ làm không nên là số âm';
|
||||
$lang->task->error->consumedSmall = '"Tổng giờ làm" phải là > số cuối cùng.';
|
||||
$lang->task->error->consumedThisTime = 'Vui lòng nhập "Số giờ làm"';
|
||||
$lang->task->error->left = 'Vui lòng nhập "Giờ còn lại"';
|
||||
$lang->task->error->work = '"Nhận xét" phải là < %d ký tự.';
|
||||
$lang->task->error->skipClose = 'Nhiệm vụ: %s không là "Kết thúc” hoặc “Đã hủy”. Bạn có muốn đóng nó?';
|
||||
$lang->task->error->consumed = 'Nhiệm vụ: %s giờ phải là < 0. Bỏ qua thay đổi cho nhiệm vụ này.';
|
||||
$lang->task->error->assignedTo = 'Nhiệm vụ nhiều người dùng trong tình trạng hiện tại không thể giao cho một thành viên người không trong Nhóm nhiệm vụ.';
|
||||
$lang->task->error->consumedEmpty = '"Giờ làm" không nên trống.';
|
||||
$lang->task->error->deadlineSmall = '"Hạn chót" phải lớn hơn "Ngày bắt đầu".';
|
||||
$lang->task->error->consumedNumber = '"Giờ làm" phải là số.';
|
||||
$lang->task->error->estimateNumber = '"Dự tính" phải là số.';
|
||||
$lang->task->error->recordMinus = 'Giờ làm không nên là số âm';
|
||||
$lang->task->error->consumedSmall = '"Tổng giờ làm" phải là > số cuối cùng.';
|
||||
$lang->task->error->consumedThisTime = 'Vui lòng nhập "Số giờ làm"';
|
||||
$lang->task->error->left = 'Vui lòng nhập "Giờ còn lại"';
|
||||
$lang->task->error->work = '"Nhận xét" phải là < %d ký tự.';
|
||||
$lang->task->error->skipClose = 'Nhiệm vụ: %s không là "Kết thúc” hoặc “Đã hủy”. Bạn có muốn đóng nó?';
|
||||
$lang->task->error->consumed = 'Nhiệm vụ: %s giờ phải là < 0. Bỏ qua thay đổi cho nhiệm vụ này.';
|
||||
$lang->task->error->assignedTo = 'Nhiệm vụ nhiều người dùng trong tình trạng hiện tại không thể giao cho một thành viên người không trong Nhóm nhiệm vụ.';
|
||||
$lang->task->error->consumedEmpty = '"Giờ làm" không nên trống.';
|
||||
$lang->task->error->deadlineSmall = '"Hạn chót" phải lớn hơn "Ngày bắt đầu".';
|
||||
$lang->task->error->realStartedEmpty = '"Real Started" should not be empty.';
|
||||
$lang->task->error->finishedDateEmpty = '"Finished Date" should not be empty.';
|
||||
|
||||
/* Report. */
|
||||
$lang->task->report = new stdclass();
|
||||
|
||||
Reference in New Issue
Block a user