This commit is contained in:
hufangzhou
2021-03-02 13:13:21 +08:00
19 changed files with 83 additions and 64 deletions
+1 -1
View File
@@ -544,7 +544,7 @@ class customModel extends model
$this->app->loadLang('custom');
$lang = $this->app->getClientLang();
$langData = $this->dao->select('`key`, `value`, system')->from(TABLE_LANG)
$langData = $this->dao->select('`key`, `value`, `system`')->from(TABLE_LANG)
->where('lang')->eq($lang)
->andWhere('module')->eq('custom')
->andWhere('section')->eq('URSRList')
+1 -1
View File
@@ -26,7 +26,7 @@ $lang->group->confirmDelete = 'Möchten Sie die Gruppe löschen?';
$lang->group->successSaved = 'Gespeichert!';
$lang->group->errorNotSaved = 'Fehlgeschlagen. Bitte aktion und Gruppe wählen.';
$lang->group->viewList = 'Anzeige ist zulässig.';
$lang->group->PRJ = 'Manage Project';
$lang->group->manageProject = 'Manage Project';
$lang->group->programList = 'Access Program';
$lang->group->productList = 'Produkte sind zugänglich.';
$lang->group->projectList = 'Projekte sind zugänglich.';
+1 -1
View File
@@ -26,7 +26,7 @@ $lang->group->confirmDelete = 'Do you want to delete this user group?';
$lang->group->successSaved = 'Saved.';
$lang->group->errorNotSaved = 'Failed. Please select actions and groups.';
$lang->group->viewList = 'Access Sight';
$lang->group->PRJ = 'Manage Project';
$lang->group->manageProject = 'Manage Project';
$lang->group->programList = 'Access Program';
$lang->group->productList = 'Access Product';
$lang->group->projectList = 'Access Project';
+1 -1
View File
@@ -26,7 +26,7 @@ $lang->group->confirmDelete = "Voulez-vous supprimer ce groupe d'utilisateu
$lang->group->successSaved = 'Sauvé.';
$lang->group->errorNotSaved = 'Echec. Veuillez sélectionner actions et groupes.';
$lang->group->viewList = 'Accès Consultation';
$lang->group->PRJ = 'Manage Project';
$lang->group->manageProject = 'Manage Project';
$lang->group->programList = 'Accè Programs';
$lang->group->productList = 'Accès ' . $lang->productCommon . 's';
$lang->group->projectList = 'Accès ' . $lang->executionCommon . 's';
+4 -4
View File
@@ -989,8 +989,8 @@ $lang->job->methodOrder[25] = 'exec';
$lang->resource->doc = new stdclass();
$lang->resource->doc->index = 'index';
$lang->resource->doc->browse = 'browse';
$lang->resource->doc->createlib = 'createLib';
$lang->resource->doc->editlib = 'editLib';
$lang->resource->doc->createlib = 'createlib';
$lang->resource->doc->editlib = 'editlib';
$lang->resource->doc->deleteLib = 'deleteLib';
$lang->resource->doc->create = 'create';
$lang->resource->doc->view = 'view';
@@ -1006,9 +1006,9 @@ $lang->resource->doc->collect = 'collect';
$lang->doc->methodOrder[0] = 'index';
$lang->doc->methodOrder[5] = 'browse';
$lang->doc->methodOrder[10] = 'createLib';
$lang->doc->methodOrder[10] = 'createlib';
$lang->doc->methodOrder[15] = 'editLib';
$lang->doc->methodOrder[20] = 'deleteLib';
$lang->doc->methodOrder[20] = 'deletelib';
$lang->doc->methodOrder[25] = 'create';
$lang->doc->methodOrder[30] = 'view';
$lang->doc->methodOrder[35] = 'edit';
+1 -1
View File
@@ -26,7 +26,7 @@ $lang->group->confirmDelete = 'Bạn có muốn xóa người dùng này gr
$lang->group->successSaved = 'Đã lưu.';
$lang->group->errorNotSaved = 'Thất bại. Vui lòng select actions and groups.';
$lang->group->viewList = 'Truy cập Sight';
$lang->group->PRJ = 'Manage Project';
$lang->group->manageProject = 'Manage Project';
$lang->group->programList = 'Truy cập Program';
$lang->group->productList = 'Truy cập Product';
$lang->group->projectList = 'Truy cập Project';
+1 -1
View File
@@ -26,7 +26,7 @@ $lang->group->confirmDelete = '您确定删除该用户分组吗?';
$lang->group->successSaved = '成功保存';
$lang->group->errorNotSaved = '没有保存,请确认选择了权限数据。';
$lang->group->viewList = '可访问视图';
$lang->group->PRJ = '可管理项目';
$lang->group->manageProject = '可管理项目';
$lang->group->programList = '可访问项目集';
$lang->group->productList = '可访问' . $lang->productCommon;
$lang->group->projectList = '可访问项目';
+1 -1
View File
@@ -26,7 +26,7 @@ $lang->group->confirmDelete = '您確定刪除該用戶分組嗎?';
$lang->group->successSaved = '成功保存';
$lang->group->errorNotSaved = '沒有保存,請確認選擇了權限數據。';
$lang->group->viewList = '可訪問視圖';
$lang->group->PRJ = '可管理目';
$lang->group->manageProject = '可管理目';
$lang->group->programList = '可訪問項目集';
$lang->group->productList = '可訪問' . $lang->productCommon;
$lang->group->projectList = '可訪問項目';
+2 -2
View File
@@ -39,7 +39,7 @@
</td>
<td class='pv-10px' colspan='2'>
<div class='input-group'>
<span class='input-group-addon'> <?php echo $lang->group->PRJ;?></span>
<span class='input-group-addon'> <?php echo $lang->group->manageProject;?></span>
<?php echo html::select("program[$account][]", $programs, $program, "class='form-control chosen' multiple");?>
</div>
</td>
@@ -58,7 +58,7 @@
</td>
<td class='pv-10px' colspan='2'>
<div class='input-group'>
<span class='input-group-addon'> <?php echo $lang->group->PRJ;?></span>
<span class='input-group-addon'> <?php echo $lang->group->manageProject;?></span>
<?php echo html::select('program[0][]', $programs, '', "class='form-control chosen' multiple");?>
</div>
</td>
+8 -2
View File
@@ -110,6 +110,9 @@ class program extends control
*/
public function PGMProduct($programID = 0, $browseType = 'noclosed', $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
{
$programID = $this->program->savePGMState($programID, $this->program->getPGMPairs());
setCookie("lastPGM", $programID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
$program = $this->program->getPGMByID($programID);
if(empty($program) || $program->type != 'program') die(js::error($this->lang->notFound) . js::locate('back'));
@@ -958,6 +961,7 @@ class program extends control
$this->app->loadLang('custom');
$this->app->loadLang('project');
$this->loadModel('productplan');
$this->loadModel('action');
$project = $this->program->getPRJByID($projectID);
$programID = $project->parent;
@@ -988,7 +992,7 @@ class program extends control
if($changes)
{
$actionID = $this->loadModel('action')->create('project', $projectID, 'edited');
$actionID = $this->action->create('project', $projectID, 'edited');
$this->action->logHistory($actionID, $changes);
}
@@ -1056,6 +1060,8 @@ class program extends control
*/
public function PRJBatchEdit($from = 'prjbrowse', $programID = 0)
{
$this->loadModel('action');
/* Navigation stay in program when enter from program list. */
if($from == 'pgmproject')
{
@@ -1078,7 +1084,7 @@ class program extends control
{
if(empty($changes)) continue;
$actionID = $this->loadModel('action')->create('project', $projectID, 'Edited');
$actionID = $this->action->create('project', $projectID, 'Edited');
$this->action->logHistory($actionID, $changes);
}
}
+32 -21
View File
@@ -1744,17 +1744,7 @@ class programModel extends model
if(!dao::isError())
{
/* Product belonging program set processing. */
$oldTopPGM = $this->getTopPGMByID($oldProject->parent);
$newTopPGM = $this->getTopPGMByID($project->parent);
if($oldTopPGM != $newTopPGM)
{
foreach($_POST['products'] as $productID => $product)
{
$this->dao->update(TABLE_PRODUCT)->set('program')->eq((int)$newTopPGM)->where('id')->eq((int)$productID)->exec();
}
}
$this->updateProductPGM($oldProject->parent, $project->parent, $_POST['products']);
$this->loadModel('project')->updateProducts($projectID, $_POST['products']);
$this->file->updateObjectID($this->post->uid, $projectID, 'project');
@@ -1814,17 +1804,9 @@ class programModel extends model
if(dao::isError()) die(js::error('project#' . $projectID . dao::getError(true)));
if(!dao::isError())
{
/* Product belonging program set processing. */
$oldTopPGM = $this->getTopPGMByID($oldProject->parent);
$newTopPGM = $this->getTopPGMByID($project->parent);
$linkedProducts = $this->dao->select('product')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($projectID)->fetchPairs();
if($oldTopPGM != $newTopPGM)
{
foreach($linkedProducts as $productID => $product)
{
$this->dao->update(TABLE_PRODUCT)->set('program')->eq($newTopPGM)->where('id')->eq((int)$productID)->exec();
}
}
$this->updateProductPGM($oldProject->parent, $project->parent, $linkedProducts);
if($oldProject->parent != $project->parent) $this->processNode($projectID, $project->parent, $oldProject->path, $oldProject->grade);
}
$allChanges[$projectID] = common::createChanges($oldProject, $project);
@@ -1832,6 +1814,35 @@ class programModel extends model
return $allChanges;
}
/**
* Update the program set of the product.
*
* @param int $oldProgram
* @param int $newProgram
* @param array $products
* @access public
* @return void
*/
public function updateProductPGM($oldProgram, $newProgram, $products)
{
$this->loadModel('action');
/* Product belonging program set processing. */
$oldTopPGM = $this->getTopPGMByID($oldProgram);
$newTopPGM = $this->getTopPGMByID($newProgram);
if($oldTopPGM != $newTopPGM)
{
foreach($products as $productID => $product)
{
$oldProduct = $this->dao->findById($productID)->from(TABLE_PRODUCT)->fetch();
$this->dao->update(TABLE_PRODUCT)->set('program')->eq((int)$newTopPGM)->where('id')->eq((int)$productID)->exec();
$newProduct = $this->dao->findById($productID)->from(TABLE_PRODUCT)->fetch();
$changes = common::createChanges($oldProduct, $newProduct);
$actionID = $this->action->create('product', $productID, 'edited');
$this->action->logHistory($actionID, $changes);
}
}
}
/**
* Print datatable cell.
*
+4 -4
View File
@@ -178,23 +178,23 @@
<th><?php echo $lang->project->begin;?></th>
<td><?php echo $project->begin;?></td>
<th><?php echo $lang->project->totalEstimate;?></th>
<td><em><?php echo (float)$workhour->totalEstimate;?></em></td>
<td><em><?php echo (float)$workhour->totalEstimate . $lang->project->workHour;?></em></td>
</tr>
<tr>
<th><?php echo $lang->project->end;?></th>
<td><?php echo $project->end;?></td>
<th><?php echo $lang->project->totalConsumed;?></th>
<td><em><?php echo (float)$workhour->totalConsumed;?></em></td>
<td><em><?php echo (float)$workhour->totalConsumed . $lang->project->workHour;?></em></td>
</tr>
<tr>
<th><?php echo $lang->project->totalDays;?></th>
<td><?php echo $project->days;?></td>
<th><?php echo $lang->project->totalLeft;?></th>
<td><em><?php echo (float)$workhour->totalLeft;?></em></td>
<td><em><?php echo (float)$workhour->totalLeft . $lang->project->workHour;?></em></td>
</tr>
<tr>
<th><?php echo $lang->project->totalHours;?></th>
<td><em><?php echo (float)$workhour->totalHours;?></em></td>
<td><em><?php echo (float)$workhour->totalHours . $lang->project->workHour;?></em></td>
</tr>
</tbody>
</table>
+5 -4
View File
@@ -1,8 +1,9 @@
<?php
$lang->projectstory->common = 'Anforderungen an Projekte';
$lang->projectstory->index = 'Fordern Sie Homepage';
$lang->projectstory->view = 'Story Detail';
$lang->projectstory->track = 'Matrix der Verfolgung';
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+4 -3
View File
@@ -1,7 +1,8 @@
<?php
$lang->projectstory->common = 'Project Requirements';
$lang->projectstory->index = 'Request Home';
$lang->projectstory->view = 'Story Detail';
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+5 -4
View File
@@ -1,8 +1,9 @@
<?php
$lang->projectstory->common = 'Exigences du projet';
$lang->projectstory->index = 'Exigences Accueil';
$lang->projectstory->view = 'Story Detail';
$lang->projectstory->track = 'Matrice de suivi';
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+5 -4
View File
@@ -1,8 +1,9 @@
<?php
$lang->projectstory->common = 'Yêu cầu dự án';
$lang->projectstory->index = 'Yêu cầu trang nhà';
$lang->projectstory->view = 'Story Detail';
$lang->projectstory->track = 'Theo dõi ma trận';
$lang->projectstory->common = "Project {$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon} Home";
$lang->projectstory->view = "{$lang->SRCommon} Detail";
$lang->projectstory->story = "{$lang->SRCommon} List";
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+4 -3
View File
@@ -1,7 +1,8 @@
<?php
$lang->projectstory->common = '项目需求';
$lang->projectstory->index = '需求主页';
$lang->projectstory->view = '需求详情';
$lang->projectstory->common = "项目{$lang->SRCommon}";
$lang->projectstory->index = "{$lang->SRCommon}主页";
$lang->projectstory->view = "{$lang->SRCommon}详情";
$lang->projectstory->story = "{$lang->SRCommon}列表";
$lang->projectstory->track = '矩阵';
$lang->projectstory->linkStory = '关联' . $lang->SRCommon;
$lang->projectstory->unlinkStory = '移除' . $lang->SRCommon;
+3 -4
View File
@@ -3993,7 +3993,7 @@ class upgradeModel extends model
$data = fixer::input('post')->get();
$account = isset($this->app->user->account) ? $this->app->user->account : '';
if(!isset($data->programs) && $data->programID == '')
if(isset($data->newProgram))
{
/* Insert program. */
$program = new stdclass();
@@ -4009,7 +4009,7 @@ class upgradeModel extends model
$this->app->loadLang('program');
$this->app->loadLang('project');
$this->lang->project->name = $this->lang->program->PGMName;
$this->lang->project->name = $this->lang->program->PGMName;
$this->dao->insert(TABLE_PROJECT)->data($program)
->batchcheck('name,begin', 'notempty')
@@ -4066,7 +4066,7 @@ class upgradeModel extends model
if(!isset($data->sprints)) return array($programID, 0, $lineID);
if(!isset($data->projects))
if(isset($data->newProject))
{
if(!$this->post->longTime and !$this->post->end) die(js::alert(sprintf($this->lang->error->notempty, $this->lang->program->end)));
@@ -4201,7 +4201,6 @@ class upgradeModel extends model
$data = new stdClass();
$data->realBegan = $minRealBegan ? substr($minRealBegan, 0, 10) : '0000-00-00';
$data->status = $PRJStatus;
$PRJStatus = $this->dao->select('status')->from(TABLE_PROJECT)->where('id')->eq($projectID)->fetch('status');
if($PRJStatus == 'closed')
@@ -9,14 +9,12 @@
<div class='input-group'>
<?php echo html::select("programs", $programs, $programID, "class='form-control hidden pgm-exist' onchange='getProjectByProgram(this)'");?>
<?php echo html::input("PGMName", isset($programName) ? $programName : '', "class='form-control pgm-no-exist'");?>
<?php if(count($programs)):?>
<span class='input-group-addon'>
<div class="checkbox-primary">
<input type="checkbox" name="newProgram" value="0" checked onchange="toggleProgram(this)" id="newProgram0" />
<label for="newProgram0"><?php echo $lang->upgrade->newProgram;?></label>
</div>
</span>
<?php endif;?>
</div>
<?php echo html::hidden('programID', '');?>
</td>