This commit is contained in:
hufangzhou
2020-12-01 14:24:11 +08:00
30 changed files with 897 additions and 786 deletions
+4
View File
@@ -1721,6 +1721,10 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'projectrelease', 'unlinkStory'),
(1, 'projectrelease', 'view'),
(1, 'projectrelease', 'changeStatus'),
(1, 'projectstory', 'requirement'),
(1, 'projectstory', 'story'),
(1, 'projectstory', 'track'),
(1, 'projectbuild', 'browse'),
(1, 'qa', 'index'),
(1, 'release', 'batchUnlinkBug'),
(1, 'release', 'batchUnlinkStory'),
+33 -31
View File
@@ -163,49 +163,51 @@ class router extends baseRouter
if($this->session->PRJ) $model = $this->dbh->query('SELECT model FROM' . TABLE_PROJECT . "WHERE id = {$this->session->PRJ}")->fetch();
if(isset($model->model) && $model->model == 'waterfall')
{
$projectIndex = 2;
{ $projectIndex = 2;
}
$config->URAndSR = $URAndSR;
$config->URSRName = $URSRName;
/* Set productCommon, projectCommon, hourCommon and planCommon. Default english lang. */
$lang->productCommon = isset($this->config->productCommonList[$this->clientLang][(int)$productIndex]) ? $this->config->productCommonList[$this->clientLang][(int)$productIndex] : $this->config->productCommonList['en'][(int)$productIndex];
$lang->projectCommon = isset($this->config->projectCommonList[$this->clientLang][(int)$projectIndex]) ? $this->config->projectCommonList[$this->clientLang][(int)$projectIndex] : $this->config->projectCommonList['en'][(int)$$projectIndex];
$lang->hourCommon = isset($this->config->hourPointCommonList[$this->clientLang][(int)$hourIndex]) ? $this->config->hourPointCommonList[$this->clientLang][(int)$hourIndex] : $this->config->hourPointCommonList['en'][(int)$hourIndex];
$lang->planCommon = isset($this->config->planCommonList[$this->clientLang][(int)$planIndex]) ? $this->config->planCommonList[$this->clientLang][(int)$planIndex] : $this->config->planCommonList['en'][(int)$planIndex];
/* Get story concept in project and product. */
$URLists = $this->dbh->query('SELECT `key`, `value` FROM' . TABLE_LANG . "WHERE module = 'custom' and section = 'URList' and lang = \"{$this->clientLang}\"")->fetchAll();
$SRLists = $this->dbh->query('SELECT `key`, `value` FROM' . TABLE_LANG . "WHERE module = 'custom' and section = 'SRList' and lang = \"{$this->clientLang}\"")->fetchAll();
$config->URAndSR = $URAndSR;
$config->URSRName = $URSRName;
$URList = array();
$SRList = array();
foreach($URLists as $pair) $URList[$pair->key] = $pair->value;
foreach($SRLists as $pair) $SRList[$pair->key] = $pair->value;
if($this->dbh and !empty($this->config->db->name) and !defined('IN_UPGRADE'))
{
/* Get story concept in project and product. */
$URLists = $this->dbh->query('SELECT `key`, `value` FROM' . TABLE_LANG . "WHERE module = 'custom' and section = 'URList' and lang = \"{$this->clientLang}\"")->fetchAll();
$SRLists = $this->dbh->query('SELECT `key`, `value` FROM' . TABLE_LANG . "WHERE module = 'custom' and section = 'SRList' and lang = \"{$this->clientLang}\"")->fetchAll();
$lang->URCommon = zget($URList, $config->URSRName, $config->URCommonList[$this->clientLang]);
$lang->SRCommon = zget($SRList, $config->URSRName, $config->SRCommonList[$this->clientLang]);
$lang->projectURCommon = $config->URCommonList[$this->clientLang];
$lang->productURCommon = $config->URCommonList[$this->clientLang];
$lang->projectSRCommon = $config->SRCommonList[$this->clientLang];
$lang->productSRCommon = $config->SRCommonList[$this->clientLang];
$URList = array();
$SRList = array();
foreach($URLists as $pair) $URList[$pair->key] = $pair->value;
foreach($SRLists as $pair) $SRList[$pair->key] = $pair->value;
$projectID = $this->session->PRJ;
if($projectID)
{
$storyConcept = $this->dbh->query('SELECT `storyConcept` FROM' . TABLE_PROJECT . "WHERE id = {$projectID}")->fetch();
$lang->projectURCommon = zget($URList, $storyConcept->storyConcept, $config->URCommonList[$this->clientLang]);
$lang->projectSRCommon = zget($SRList, $storyConcept->storyConcept, $config->SRCommonList[$this->clientLang]);
}
$lang->URCommon = zget($URList, $config->URSRName, $config->URCommonList[$this->clientLang]);
$lang->SRCommon = zget($SRList, $config->URSRName, $config->SRCommonList[$this->clientLang]);
$lang->projectURCommon = $config->URCommonList[$this->clientLang];
$lang->productURCommon = $config->URCommonList[$this->clientLang];
$lang->projectSRCommon = $config->SRCommonList[$this->clientLang];
$lang->productSRCommon = $config->SRCommonList[$this->clientLang];
$productID = $this->session->product;
if($productID)
{
$storyConcept = $this->dbh->query('SELECT `storyConcept` FROM' . TABLE_PRODUCT . "WHERE id = {$productID}")->fetch();
$lang->productURCommon = zget($URList, $storyConcept->storyConcept, $config->URCommonList[$this->clientLang]);
$lang->productSRCommon = zget($SRList, $storyConcept->storyConcept, $config->SRCommonList[$this->clientLang]);
$projectID = $this->session->PRJ;
if($projectID)
{
$storyConcept = $this->dbh->query('SELECT `storyConcept` FROM' . TABLE_PROJECT . "WHERE id = {$projectID}")->fetch();
$lang->projectURCommon = zget($URList, $storyConcept->storyConcept, $config->URCommonList[$this->clientLang]);
$lang->projectSRCommon = zget($SRList, $storyConcept->storyConcept, $config->SRCommonList[$this->clientLang]);
}
$productID = $this->session->product;
if($productID)
{
$storyConcept = $this->dbh->query('SELECT `storyConcept` FROM' . TABLE_PRODUCT . "WHERE id = {$productID}")->fetch();
$lang->productURCommon = zget($URList, $storyConcept->storyConcept, $config->URCommonList[$this->clientLang]);
$lang->productSRCommon = zget($SRList, $storyConcept->storyConcept, $config->SRCommonList[$this->clientLang]);
}
}
}
+20
View File
@@ -37,6 +37,8 @@ class GitRepo
*/
public function ls($path, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return array();
$path = ltrim($path, DIRECTORY_SEPARATOR);
$sub = '';
chdir($this->root);
@@ -99,6 +101,8 @@ class GitRepo
*/
public function tags($path, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return array();
chdir($this->root);
$cmd = escapeCmd("$this->client tag --sort=taggerdate");
$list = execCmd($cmd . ' 2>&1', 'array', $result);
@@ -166,6 +170,9 @@ class GitRepo
*/
public function log($path, $fromRevision = 0, $toRevision = 'HEAD', $count = 0)
{
if(!scm::checkRevision($fromRevision)) return array();
if(!scm::checkRevision($toRevision)) return array();
$path = ltrim($path, DIRECTORY_SEPARATOR);
$count = $count == 0 ? '' : "-n $count";
/* compatible with svn. */
@@ -206,6 +213,8 @@ class GitRepo
*/
public function blame($path, $revision)
{
if(!scm::checkRevision($revision)) return array();
$path = ltrim($path, DIRECTORY_SEPARATOR);
chdir($this->root);
$list = execCmd(escapeCmd("$this->client blame -l $revision -- $path"), 'array');
@@ -257,6 +266,9 @@ class GitRepo
*/
public function diff($path, $fromRevision, $toRevision)
{
if(!scm::checkRevision($fromRevision)) return array();
if(!scm::checkRevision($toRevision)) return array();
$path = ltrim($path, DIRECTORY_SEPARATOR);
chdir($this->root);
if($toRevision == 'HEAD' and $this->branch) $toRevision = $this->branch;
@@ -280,6 +292,8 @@ class GitRepo
*/
public function cat($entry, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return false;
chdir($this->root);
if($revision == 'HEAD' and $this->branch) $revision = $this->branch;
$cmd = escapeCmd("$this->client show $revision:$entry");
@@ -298,6 +312,8 @@ class GitRepo
*/
public function info($entry, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return false;
chdir($this->root);
if($revision == 'HEAD' and $this->branch) $revision = $this->branch;
$path = ltrim($entry, DIRECTORY_SEPARATOR);
@@ -446,6 +462,8 @@ class GitRepo
*/
public function getCommitCount($commits = 0, $lastVersion = '')
{
if(!scm::checkRevision($lastVersion)) return false;
chdir($this->root);
$revision = $this->branch ? $this->branch : 'HEAD';
return execCmd(escapeCmd("$this->client rev-list --count $revision -- ./"), 'string');
@@ -489,6 +507,8 @@ class GitRepo
*/
public function getCommits($version = '', $count = 0, $branch = '')
{
if(!scm::checkRevision($version)) return array();
if($version == 'HEAD' and $branch) $version = $branch;
$revision = empty($version) ? $revision : $version;
$revision = is_numeric($revision) ? "--skip=$revision $branch" : $revision;
+27
View File
@@ -28,6 +28,7 @@ class scm
*/
public function ls($path, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return array();
return $this->engine->ls($path, $revision);
}
@@ -42,6 +43,7 @@ class scm
*/
public function tags($path, $revision = 'HEAD', $onlyDir = true)
{
if(!scm::checkRevision($revision)) return array();
return $this->engine->tags($path, $revision, $onlyDir);
}
@@ -68,6 +70,9 @@ class scm
*/
public function log($path, $fromRevision = 0, $toRevision = 'HEAD', $count = 0)
{
if(!scm::checkRevision($fromRevision)) return array();
if(!scm::checkRevision($toRevision)) return array();
return $this->engine->log($path, $fromRevision, $toRevision);
}
@@ -81,6 +86,7 @@ class scm
*/
public function blame($path, $revision)
{
if(!scm::checkRevision($revision)) return array();
return $this->engine->blame($path, $revision);
}
@@ -109,6 +115,9 @@ class scm
*/
public function diff($path, $fromRevision = 0, $toRevision = 'HEAD', $parse = 'yes')
{
if(!scm::checkRevision($fromRevision)) return array();
if(!scm::checkRevision($toRevision)) return array();
$diffs = $this->engine->diff($path, $fromRevision, $toRevision);
if($parse != 'yes') return implode("\n", $diffs);
@@ -125,6 +134,7 @@ class scm
*/
public function cat($entry, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return false;
return $this->engine->cat($entry, $revision);
}
@@ -138,6 +148,7 @@ class scm
*/
public function info($entry, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return false;
return $this->engine->info($entry, $revision);
}
@@ -163,6 +174,7 @@ class scm
*/
public function getCommitCount($commits = 0, $lastVersion = 0)
{
if(!scm::checkRevision($lastVersion)) return false;
return $this->engine->getCommitCount($commits, $lastVersion);
}
@@ -199,8 +211,23 @@ class scm
*/
public function getCommits($version = '', $count = 0, $branch = '')
{
if(!scm::checkRevision($version)) return array();
return $this->engine->getCommits($version, $count, $branch);
}
/**
* Check revision
*
* @param int|string $revision
* @static
* @access public
* @return bool
*/
public static function checkRevision($revision)
{
if(preg_match('/[^a-z0-9\^]/i', $revision)) return false;
return true;
}
}
/**
+20
View File
@@ -46,6 +46,8 @@ class Subversion
*/
public function ls($path, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return array();
$resourcePath = $path;
$path = '"' . $this->root . '/' . str_replace(array('%2F', '+'), array('/', ' '), urlencode($path)) . '"';
$cmd = $this->replaceAuth(escapeCmd($this->buildCMD($path, 'ls', "-r $revision --xml")));
@@ -98,6 +100,8 @@ class Subversion
*/
public function tags($path, $revision = 'HEAD', $onlyDir = true)
{
if(!scm::checkRevision($revision)) return array();
$infos = $this->ls($path, $revision);
$dirs = array();
foreach($infos as $info)
@@ -195,6 +199,9 @@ class Subversion
*/
public function log($path, $fromRevision = 0, $toRevision = 'HEAD', $count = 0, $quiet = false)
{
if(!scm::checkRevision($fromRevision)) return array();
if(!scm::checkRevision($toRevision)) return array();
$resourcePath = $path;
$count = $count == 0 ? '' : "--limit $count";
$param = $quiet ? '-q' : '-v';
@@ -258,6 +265,8 @@ class Subversion
*/
public function blame($path, $revision)
{
if(!scm::checkRevision($revision)) return array();
$resourcePath = $path;
$path = '"' . $this->root . '/' . str_replace(array('%2F', '+'), array('/', ' '), urlencode($path)) . '"';
$file = $this->replaceAuth(escapeCmd($this->buildCMD($path, 'cat', "-r $revision")));
@@ -327,6 +336,9 @@ class Subversion
*/
public function diff($path, $fromRevision, $toRevision)
{
if(!scm::checkRevision($fromRevision)) return array();
if(!scm::checkRevision($toRevision)) return array();
$resourcePath = $path;
if($fromRevision == '^') $fromRevision = $toRevision - 1;
$path = '"' . $this->root . '/' . str_replace(array('%2F', '+'), array('/', ' '), urlencode($path)) . '"';
@@ -351,6 +363,8 @@ class Subversion
*/
public function cat($entry, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return false;
$resourcePath = $entry;
$entry = '"' . $this->root . '/' . str_replace(array('%2F', '+'), array('/', ' '), urlencode($entry)) . '"';
$cmd = $this->replaceAuth(escapeCmd($this->buildCMD($entry, 'cat', "-r $revision")));
@@ -374,6 +388,8 @@ class Subversion
*/
public function info($entry, $revision = 'HEAD')
{
if(!scm::checkRevision($revision)) return false;
$resourcePath = $entry;
$entry = '"' . $this->root . '/' . str_replace(array('%2F', '+'), array('/', ' '), urlencode($entry)) . '"';
$svnInfo = $this->replaceAuth(escapeCmd($this->buildCMD($entry, 'info', "-r $revision --xml")));
@@ -506,6 +522,8 @@ class Subversion
*/
public function getCommitCount($commits = 0, $lastVersion = 0)
{
if(!scm::checkRevision($lastVersion)) return false;
if(empty($commits)) $commits = 0;
if(empty($lastVersion)) $lastVersion = 0;
$lastRevision = $this->getLatestRevision();
@@ -563,6 +581,8 @@ class Subversion
*/
public function getCommits($version = '', $count = 0)
{
if(!scm::checkRevision($version)) return array();
$count = $count == 0 ? '' : "--limit $count";
$path = '"' . $this->root . '"';
if(stripos($this->root, 'https') === 0 or stripos($this->root, 'svn') === 0)
+14 -15
View File
@@ -39,7 +39,6 @@ class block extends control
$title = $id == 0 ? $this->lang->block->createBlock : $this->lang->block->editBlock;
$module = zget($this->config->block->moduleIndex, $module, $module);
if($module == 'my')
{
$modules = $this->lang->block->moduleList;
@@ -66,7 +65,7 @@ class block extends control
elseif(isset($this->lang->block->moduleList[$module]))
{
$this->get->set('mode', 'getblocklist');
if($module == 'project') $this->get->set('dashboard', 'project');
if($module == 'program') $this->get->set('dashboard', 'program');
$this->view->blocks = $this->fetch('block', 'main', "module=$module&id=$id");
$this->view->module = $module;
}
@@ -215,8 +214,8 @@ class block extends control
$commonField = 'common';
if($module == 'program')
{
$project = $this->loadModel('program')->getPRJByID($this->session->PRJ);
$commonField = $project->model . 'common';
$program = $this->loadModel('project')->getByID($this->session->PRJ);
$commonField = $program->model . 'common';
}
/* Replace the block Title saved in the database. */
@@ -430,17 +429,17 @@ class block extends control
$dashboard = $this->get->dashboard;
/* Create a project block. */
if($dashboard == 'project')
if($dashboard == 'program')
{
$project = $this->loadModel('program')->getPRJByID($this->session->PRJ);
$model = $project->model;
}
/* Edit a project block. */
if($id and $block->module == 'project')
if($id and $block->module == 'program')
{
$model = $block->type;
$dashboard = 'project';
$dashboard = 'program';
}
$blocks = $this->block->getAvailableBlocks($module, $dashboard, $model);
@@ -758,7 +757,7 @@ class block extends control
* @access public
* @return void
*/
public function printProjectBlock()
public function printProgramBlock()
{
$this->app->loadLang('project');
$this->app->loadLang('task');
@@ -817,7 +816,7 @@ class block extends control
* @access public
* @return void
*/
public function printProjectStatisticBlock()
public function printProgramStatisticBlock()
{
if(!empty($this->params->type) and preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die();
@@ -912,6 +911,7 @@ class block extends control
->beginIF($storyType)->andWhere('type')->eq($storyType)->fi()
->groupBy('product, stage')
->fetchGroup('product', 'stage');
/* Padding the stories to sure all status have records. */
foreach($stories as $product => $story)
{
@@ -1017,7 +1017,7 @@ class block extends control
* @access public
* @return void
*/
public function printExecutionStatisticBlock()
public function printProjectStatisticBlock()
{
if(!empty($this->params->type) and preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die();
@@ -1373,7 +1373,7 @@ class block extends control
* @access public
* @return void
*/
public function printProjectDynamicBlock()
public function printProgramDynamicBlock()
{
$projectID = $this->session->PRJ;
@@ -1529,7 +1529,6 @@ class block extends control
*/
public function printOverviewBlock($module = 'product')
{
if($module == 'project') $module = 'execution';
$func = 'print' . ucfirst($module) . 'OverviewBlock';
$this->view->module = $module;
$this->$func();
@@ -1569,7 +1568,7 @@ class block extends control
* @access public
* @return void
*/
public function printExecutionOverviewBlock()
public function printProjectOverviewBlock()
{
$projectID = $this->view->block->module == 'my' ? 0 : (int)$this->session->PRJ;
$executions = $this->loadModel('project')->getExecutionList($projectID);
@@ -1633,7 +1632,7 @@ class block extends control
* @access public
* @return void
*/
public function printExecutionBlock()
public function printProjectBlock()
{
$this->app->loadClass('pager', $static = true);
if(!empty($this->params->type) and preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) die();
@@ -1773,7 +1772,7 @@ class block extends control
* @access public
* @return void
*/
public function printRecentProjectBlock()
public function printRecentProgramBlock()
{
/* load pager. */
$this->app->loadClass('pager', $static = true);
+111 -110
View File
@@ -5,9 +5,9 @@
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package block
* @package block
* @version $Id$
* @link http://www.ranzhi.org
* @link http://www.zentao.net
*/
$lang->block = new stdclass();
$lang->block->common = 'InfoBlock';
@@ -42,8 +42,8 @@ $lang->block->leftToday = 'Arbeit für Heute';
$lang->block->myTask = 'Aufgaben';
$lang->block->myStory = 'Story';
$lang->block->myBug = 'Bugs';
$lang->block->myProject = '' . $lang->projectCommon;
$lang->block->myProduct = '' . $lang->productCommon;
$lang->block->myProject = 'Unclosed ' . $lang->projectCommon . 's';
$lang->block->myProduct = 'Unclosed ' . $lang->productCommon . 's';
$lang->block->delayed = 'Verspätet';
$lang->block->noData = 'Keine Daten für diesen Bericht.';
$lang->block->emptyTip = 'Keine Information';
@@ -67,6 +67,7 @@ $lang->block->consumedHours = 'Consumed Hours';
$lang->block->time = 'No';
$lang->block->week = 'Week';
$lang->block->selectProduct = 'Product selection';
$lang->block->of = ' von ';
$lang->block->params = new stdclass();
$lang->block->params->name = 'Name';
@@ -97,78 +98,78 @@ $lang->block->spent = 'Has Been Spent';
$lang->block->budget = 'Budget';
$lang->block->left = 'Residuals';
$lang->block->default['waterfall']['project']['1']['title'] = $lang->projectCommon . 'Weekly';
$lang->block->default['waterfall']['project']['1']['block'] = 'waterfallreport';
$lang->block->default['waterfall']['project']['1']['source'] = 'project';
$lang->block->default['waterfall']['project']['1']['grid'] = 8;
$lang->block->default['waterfall']['program']['1']['title'] = $lang->projectCommon . 'Weekly';
$lang->block->default['waterfall']['program']['1']['block'] = 'waterfallreport';
$lang->block->default['waterfall']['program']['1']['source'] = 'program';
$lang->block->default['waterfall']['program']['1']['grid'] = 8;
$lang->block->default['waterfall']['project']['2']['title'] = 'Estimate';
$lang->block->default['waterfall']['project']['2']['block'] = 'waterfallestimate';
$lang->block->default['waterfall']['project']['2']['source'] = 'project';
$lang->block->default['waterfall']['project']['2']['grid'] = 4;
$lang->block->default['waterfall']['program']['2']['title'] = 'Estimate';
$lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimate';
$lang->block->default['waterfall']['program']['2']['source'] = 'program';
$lang->block->default['waterfall']['program']['2']['grid'] = 4;
$lang->block->default['waterfall']['project']['3']['title'] = 'Plan Gantt Chart';
$lang->block->default['waterfall']['project']['3']['block'] = 'waterfallgantt';
$lang->block->default['waterfall']['project']['3']['source'] = 'project';
$lang->block->default['waterfall']['project']['3']['grid'] = 8;
$lang->block->default['waterfall']['program']['3']['title'] = 'Plan Gantt Chart';
$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt';
$lang->block->default['waterfall']['program']['3']['source'] = 'program';
$lang->block->default['waterfall']['program']['3']['grid'] = 8;
$lang->block->default['waterfall']['project']['4']['title'] = 'Progress Chart';
$lang->block->default['waterfall']['project']['4']['block'] = 'waterfallprogress';
$lang->block->default['waterfall']['project']['4']['grid'] = 4;
$lang->block->default['waterfall']['program']['4']['title'] = 'Progress Chart';
$lang->block->default['waterfall']['program']['4']['block'] = 'waterfallprogress';
$lang->block->default['waterfall']['program']['4']['grid'] = 4;
$lang->block->default['waterfall']['project']['5']['title'] = 'project Issue';
$lang->block->default['waterfall']['project']['5']['block'] = 'waterfallissue';
$lang->block->default['waterfall']['project']['5']['source'] = 'project';
$lang->block->default['waterfall']['project']['5']['grid'] = 8;
$lang->block->default['waterfall']['program']['5']['title'] = 'project Issue';
$lang->block->default['waterfall']['program']['5']['block'] = 'waterfallissue';
$lang->block->default['waterfall']['program']['5']['source'] = 'program';
$lang->block->default['waterfall']['program']['5']['grid'] = 8;
$lang->block->default['waterfall']['project']['5']['params']['type'] = 'all';
$lang->block->default['waterfall']['project']['5']['params']['count'] = '15';
$lang->block->default['waterfall']['project']['5']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['program']['5']['params']['type'] = 'all';
$lang->block->default['waterfall']['program']['5']['params']['count'] = '15';
$lang->block->default['waterfall']['program']['5']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['project']['6']['title'] = 'Dynamic';
$lang->block->default['waterfall']['project']['6']['block'] = 'dynamic';
$lang->block->default['waterfall']['project']['6']['grid'] = 4;
$lang->block->default['waterfall']['project']['6']['source'] = '';
$lang->block->default['waterfall']['program']['6']['title'] = 'Dynamic';
$lang->block->default['waterfall']['program']['6']['block'] = 'programdynamic';
$lang->block->default['waterfall']['program']['6']['grid'] = 4;
$lang->block->default['waterfall']['program']['6']['source'] = 'program';
$lang->block->default['waterfall']['project']['7']['title'] = $lang->projectCommon . 'Risk';
$lang->block->default['waterfall']['project']['7']['block'] = 'waterfallrisk';
$lang->block->default['waterfall']['project']['7']['source'] = 'project';
$lang->block->default['waterfall']['project']['7']['grid'] = 8;
$lang->block->default['waterfall']['program']['7']['title'] = 'Project Risk';
$lang->block->default['waterfall']['program']['7']['block'] = 'waterfallrisk';
$lang->block->default['waterfall']['program']['7']['source'] = 'program';
$lang->block->default['waterfall']['program']['7']['grid'] = 8;
$lang->block->default['waterfall']['project']['7']['params']['type'] = 'all';
$lang->block->default['waterfall']['project']['7']['params']['count'] = '15';
$lang->block->default['waterfall']['project']['7']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['program']['7']['params']['type'] = 'all';
$lang->block->default['waterfall']['program']['7']['params']['count'] = '15';
$lang->block->default['waterfall']['program']['7']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['project']['1']['title'] = $lang->projectCommon . ' Overall';
$lang->block->default['scrum']['project']['1']['block'] = 'scrumoverall';
$lang->block->default['scrum']['project']['1']['grid'] = 8;
$lang->block->default['scrum']['program']['1']['title'] = 'Project Overall';
$lang->block->default['scrum']['program']['1']['block'] = 'scrumoverview';
$lang->block->default['scrum']['program']['1']['grid'] = 8;
$lang->block->default['scrum']['project']['2']['title'] = $lang->projectCommon . ' List';
$lang->block->default['scrum']['project']['2']['block'] = 'scrumlist';
$lang->block->default['scrum']['project']['2']['grid'] = 8;
$lang->block->default['scrum']['program']['2']['title'] = $lang->projectCommon . ' List';
$lang->block->default['scrum']['program']['2']['block'] = 'scrumlist';
$lang->block->default['scrum']['program']['2']['grid'] = 8;
$lang->block->default['scrum']['project']['3']['title'] = 'Test Version';
$lang->block->default['scrum']['project']['3']['block'] = 'scrumtest';
$lang->block->default['scrum']['project']['3']['grid'] = 8;
$lang->block->default['scrum']['program']['3']['title'] = 'Test Version';
$lang->block->default['scrum']['program']['3']['block'] = 'scrumtest';
$lang->block->default['scrum']['program']['3']['grid'] = 8;
$lang->block->default['scrum']['project']['3']['params']['type'] = 'wait';
$lang->block->default['scrum']['project']['3']['params']['count'] = '15';
$lang->block->default['scrum']['project']['3']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['program']['3']['params']['type'] = 'wait';
$lang->block->default['scrum']['program']['3']['params']['count'] = '15';
$lang->block->default['scrum']['program']['3']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['project']['4']['title'] = $lang->projectCommon . ' Overview';
$lang->block->default['scrum']['project']['4']['block'] = 'sprint';
$lang->block->default['scrum']['project']['4']['grid'] = 4;
$lang->block->default['scrum']['program']['4']['title'] = $lang->projectCommon . ' Overview';
$lang->block->default['scrum']['program']['4']['block'] = 'sprint';
$lang->block->default['scrum']['program']['4']['grid'] = 4;
$lang->block->default['scrum']['project']['5']['title'] = 'Dynamic';
$lang->block->default['scrum']['project']['5']['block'] = 'scrumdynamic';
$lang->block->default['scrum']['project']['5']['grid'] = 4;
$lang->block->default['scrum']['program']['5']['title'] = 'Dynamic';
$lang->block->default['scrum']['program']['5']['block'] = 'programdynamic';
$lang->block->default['scrum']['program']['5']['grid'] = 4;
$lang->block->default['product']['1']['title'] = $lang->productCommon . ' Berichte';
$lang->block->default['product']['1']['block'] = 'statistic';
$lang->block->default['product']['1']['grid'] = 8;
$lang->block->default['product']['1']['params']['type'] = 'all';
$lang->block->default['product']['1']['params']['count'] = 5;
$lang->block->default['product']['1']['params']['count'] = '20';
$lang->block->default['product']['2']['title'] = $lang->productCommon . ' Übersicht';
$lang->block->default['product']['2']['block'] = 'overview';
@@ -245,7 +246,7 @@ $lang->block->default['qa']['3']['params']['type'] = 'assigntome';
$lang->block->default['qa']['4']['title'] = 'Ausstehende Builds';
$lang->block->default['qa']['4']['block'] = 'testtask';
$lang->block->default['qa']['4']['grid'] = 4;
$lang->block->default['qa']['4']['grid'] = 8;
$lang->block->default['qa']['4']['params']['count'] = 15;
$lang->block->default['qa']['4']['params']['orderBy'] = 'id_desc';
@@ -267,9 +268,9 @@ $lang->block->default['full']['my']['3']['grid'] = 4;
$lang->block->default['full']['my']['3']['source'] = 'todo';
$lang->block->default['full']['my']['3']['params']['count'] = '20';
$lang->block->default['full']['my']['4']['title'] = $lang->projectCommon . ' Statistic';
$lang->block->default['full']['my']['4']['title'] = 'Project Statistic';
$lang->block->default['full']['my']['4']['block'] = 'statistic';
$lang->block->default['full']['my']['4']['source'] = 'project';
$lang->block->default['full']['my']['4']['source'] = 'program';
$lang->block->default['full']['my']['4']['grid'] = 8;
$lang->block->default['full']['my']['5']['title'] = 'Personal Contribution';
@@ -277,14 +278,14 @@ $lang->block->default['full']['my']['5']['block'] = 'contribute';
$lang->block->default['full']['my']['5']['source'] = '';
$lang->block->default['full']['my']['5']['grid'] = 4;
$lang->block->default['full']['my']['6']['title'] = 'Recent ' . $lang->projectCommon;
$lang->block->default['full']['my']['6']['block'] = 'recentproject';
$lang->block->default['full']['my']['6']['source'] = 'project';
$lang->block->default['full']['my']['6']['title'] = 'Recent Project';
$lang->block->default['full']['my']['6']['block'] = 'recentprogram';
$lang->block->default['full']['my']['6']['source'] = 'program';
$lang->block->default['full']['my']['6']['grid'] = 8;
$lang->block->default['full']['my']['7']['title'] = 'Meine Aufgaben';
$lang->block->default['full']['my']['7']['block'] = 'task';
$lang->block->default['full']['my']['7']['source'] = 'execution';
$lang->block->default['full']['my']['7']['source'] = 'project';
$lang->block->default['full']['my']['7']['grid'] = 8;
$lang->block->default['full']['my']['7']['params']['orderBy'] = 'id_desc';
@@ -295,9 +296,9 @@ $lang->block->default['full']['my']['8']['title'] = 'Human Input';
$lang->block->default['full']['my']['8']['block'] = 'projectteam';
$lang->block->default['full']['my']['8']['grid'] = 8;
$lang->block->default['full']['my']['9']['title'] = $lang->projectCommon . ' List';
$lang->block->default['full']['my']['9']['block'] = 'project';
$lang->block->default['full']['my']['9']['source'] = 'project';
$lang->block->default['full']['my']['9']['title'] = 'Project List';
$lang->block->default['full']['my']['9']['block'] = 'program';
$lang->block->default['full']['my']['9']['source'] = 'program';
$lang->block->default['full']['my']['9']['grid'] = 8;
$lang->block->default['full']['my']['9']['params']['orderBy'] = 'id_desc';
@@ -323,22 +324,22 @@ $lang->block->availableBlocks->testtask = 'Testaufgaben';
$lang->block->availableBlocks->risk = 'My Risks';
$lang->block->availableBlocks->issue = 'My Issues';
$lang->block->moduleList['project'] = 'Project';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['execution'] = 'Execution';
$lang->block->moduleList['qa'] = 'QA';
$lang->block->moduleList['todo'] = 'Todos';
$lang->block->moduleList['program'] = 'Project';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['project'] = 'Execution';
$lang->block->moduleList['qa'] = 'QA';
$lang->block->moduleList['todo'] = 'Todos';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = 'Project List';
$lang->block->modules['project']->availableBlocks->recentproject = 'Recent Project';
$lang->block->modules['project']->availableBlocks->statistic = 'Project Statistic';
$lang->block->modules['project']->availableBlocks->projectteam = 'Project Human Input';
$lang->block->modules['program'] = new stdclass();
$lang->block->modules['program']->availableBlocks = new stdclass();
$lang->block->modules['program']->availableBlocks->program = 'Project List';
$lang->block->modules['program']->availableBlocks->recentprogram = 'Recent Project';
$lang->block->modules['program']->availableBlocks->statistic = 'Project Statistic';
$lang->block->modules['program']->availableBlocks->programteam = 'Project Human Input';
$lang->block->modules['scrum']['index'] = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = $lang->projectCommon . ' Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = 'Project Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumlist = $lang->projectCommon . ' List';
$lang->block->modules['scrum']['index']->availableBlocks->sprint = $lang->projectCommon . ' Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumtest = 'Test Version';
@@ -346,12 +347,12 @@ $lang->block->modules['scrum']['index']->availableBlocks->projectdynamic = 'Dyna
$lang->block->modules['waterfall']['index'] = new stdclass();
$lang->block->modules['waterfall']['index']->availableBlocks = new stdclass();
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallreport = $lang->projectCommon . ' Weekly';
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallreport = 'Project Weekly';
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallestimate = 'Estimate';
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallgantt = 'Plan Gantt Chart';
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallprogress = 'Progress Chart';
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallissue = $lang->projectCommon . ' Issue';
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallrisk = $lang->projectCommon . ' Risk';
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallissue = 'Project Issue';
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallrisk = 'Project Risk';
$lang->block->modules['waterfall']['index']->availableBlocks->projectdynamic = 'Dynamics';
$lang->block->modules['product'] = new stdclass();
@@ -363,13 +364,13 @@ $lang->block->modules['product']->availableBlocks->story = 'Story';
$lang->block->modules['product']->availableBlocks->plan = 'Plan';
$lang->block->modules['product']->availableBlocks->release = 'Release';
$lang->block->modules['execution'] = new stdclass();
$lang->block->modules['execution']->availableBlocks = new stdclass();
$lang->block->modules['execution']->availableBlocks->statistic = $lang->projectCommon . ' Berichte';
$lang->block->modules['execution']->availableBlocks->overview = $lang->projectCommon . ' Übersicht';
$lang->block->modules['execution']->availableBlocks->list = $lang->projectCommon . ' Liste';
$lang->block->modules['execution']->availableBlocks->task = 'Aufgaben';
$lang->block->modules['execution']->availableBlocks->build = 'Build';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->statistic = 'Ausführen Berichte';
$lang->block->modules['project']->availableBlocks->overview = 'Ausführen Übersicht';
$lang->block->modules['project']->availableBlocks->list = 'Ausführen Liste';
$lang->block->modules['project']->availableBlocks->task = 'Aufgaben';
$lang->block->modules['project']->availableBlocks->build = 'Build';
$lang->block->modules['qa'] = new stdclass();
$lang->block->modules['qa']->availableBlocks = new stdclass();
@@ -460,21 +461,21 @@ $lang->block->typeList->story['assignedTo'] = 'Mir zugewiesen';
$lang->block->typeList->story['openedBy'] = 'Von mir erstellt';
$lang->block->typeList->story['reviewedBy'] = 'Von mir überprüft';
$lang->block->typeList->story['closedBy'] = 'Von mir geschlossen' ;
$lang->block->typeList->product['noclosed'] = 'Offen';
$lang->block->typeList->product['closed'] = 'Geschlossen';
$lang->block->typeList->product['all'] = 'Alle';
$lang->block->typeList->product['involved'] = 'Beteiligt';
$lang->block->typeList->project['undone'] = 'Nicht abgeschlossen';
$lang->block->typeList->project['doing'] = 'In Arbeit';
$lang->block->typeList->project['all'] = 'Alle';
$lang->block->typeList->project['involved'] = 'Betieligt';
$lang->block->typeList->program['undone'] = 'Nicht abgeschlossen';
$lang->block->typeList->program['doing'] = 'In Arbeit';
$lang->block->typeList->program['all'] = 'Alle';
$lang->block->typeList->program['involved'] = 'Betieligt';
$lang->block->typeList->execution['undone'] = 'Unfinished';
$lang->block->typeList->execution['doing'] = 'Ongoing';
$lang->block->typeList->execution['all'] = 'All';
$lang->block->typeList->execution['involved'] = 'Involved';
$lang->block->typeList->project['undone'] = 'Unfinished';
$lang->block->typeList->project['doing'] = 'Ongoing';
$lang->block->typeList->project['all'] = 'All';
$lang->block->typeList->project['involved'] = 'Involved';
$lang->block->typeList->scrum['undone'] = 'Unfinished';
$lang->block->typeList->scrum['doing'] = 'Ongoing中';
@@ -487,19 +488,19 @@ $lang->block->typeList->testtask['blocked'] = 'Blockiert';
$lang->block->typeList->testtask['done'] = 'Erledigt';
$lang->block->typeList->testtask['all'] = 'Alle';
$lang->block->modules['project']->moreLinkList = new stdclass();
$lang->block->modules['project']->moreLinkList->recentproject = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->statistic = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->project = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['project']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['project']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['project']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['project']->moreLinkList->scrumlist = 'project|all|';
$lang->block->modules['project']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['project']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['project']->moreLinkList->sprint = 'project|all|';
$lang->block->modules['project']->moreLinkList->projectdynamic = 'company|dynamic|';
$lang->block->modules['program']->moreLinkList = new stdclass();
$lang->block->modules['program']->moreLinkList->recentproject = 'project|prjbrowse|';
$lang->block->modules['program']->moreLinkList->statistic = 'project|prjbrowse|';
$lang->block->modules['program']->moreLinkList->project = 'project|prjbrowse|';
$lang->block->modules['program']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['program']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['program']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['program']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['program']->moreLinkList->scrumlist = 'project|all|';
$lang->block->modules['program']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['program']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['program']->moreLinkList->sprint = 'project|all|';
$lang->block->modules['program']->moreLinkList->projectdynamic = 'company|dynamic|';
$lang->block->modules['product']->moreLinkList = new stdclass();
$lang->block->modules['product']->moreLinkList->list = 'product|all|';
+103 -103
View File
@@ -5,7 +5,7 @@
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package block
* @package block
* @version $Id$
* @link http://www.zentao.net
*/
@@ -42,8 +42,8 @@ $lang->block->leftToday = 'Remained Work';
$lang->block->myTask = 'My Tasks';
$lang->block->myStory = 'Stories';
$lang->block->myBug = 'Bugs';
$lang->block->myProject = '' . $lang->projectCommon . 's';
$lang->block->myProduct = '' . $lang->productCommon . 's';
$lang->block->myProject = 'Unclosed ' . $lang->projectCommon . 's';
$lang->block->myProduct = 'Unclosed ' . $lang->productCommon . 's';
$lang->block->delayed = 'Delayed';
$lang->block->noData = 'No data on this type of reports.';
$lang->block->emptyTip = 'No data.';
@@ -67,7 +67,7 @@ $lang->block->consumedHours = 'Consumed Hours';
$lang->block->time = 'No';
$lang->block->week = 'Week';
$lang->block->selectProduct = 'Product selection';
$lang->block->connector = ' - ';
$lang->block->of = ' of ';
$lang->block->params = new stdclass();
$lang->block->params->name = 'Name';
@@ -98,71 +98,71 @@ $lang->block->spent = 'Has Been Spent';
$lang->block->budget = 'Budget';
$lang->block->left = 'Residuals';
$lang->block->default['waterfall']['project']['1']['title'] = 'Project Weekly';
$lang->block->default['waterfall']['project']['1']['block'] = 'waterfallreport';
$lang->block->default['waterfall']['project']['1']['source'] = 'project';
$lang->block->default['waterfall']['project']['1']['grid'] = 8;
$lang->block->default['waterfall']['program']['1']['title'] = 'Project Weekly';
$lang->block->default['waterfall']['program']['1']['block'] = 'waterfallreport';
$lang->block->default['waterfall']['program']['1']['source'] = 'program';
$lang->block->default['waterfall']['program']['1']['grid'] = 8;
$lang->block->default['waterfall']['project']['2']['title'] = 'Estimate';
$lang->block->default['waterfall']['project']['2']['block'] = 'waterfallestimate';
$lang->block->default['waterfall']['project']['2']['source'] = 'project';
$lang->block->default['waterfall']['project']['2']['grid'] = 4;
$lang->block->default['waterfall']['program']['2']['title'] = 'Estimate';
$lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimate';
$lang->block->default['waterfall']['program']['2']['source'] = 'program';
$lang->block->default['waterfall']['program']['2']['grid'] = 4;
$lang->block->default['waterfall']['project']['3']['title'] = 'Plan Gantt Chart';
$lang->block->default['waterfall']['project']['3']['block'] = 'waterfallgantt';
$lang->block->default['waterfall']['project']['3']['source'] = 'project';
$lang->block->default['waterfall']['project']['3']['grid'] = 8;
$lang->block->default['waterfall']['program']['3']['title'] = 'Plan Gantt Chart';
$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt';
$lang->block->default['waterfall']['program']['3']['source'] = 'program';
$lang->block->default['waterfall']['program']['3']['grid'] = 8;
$lang->block->default['waterfall']['project']['4']['title'] = 'Progress Chart';
$lang->block->default['waterfall']['project']['4']['block'] = 'waterfallprogress';
$lang->block->default['waterfall']['project']['4']['grid'] = 4;
$lang->block->default['waterfall']['program']['4']['title'] = 'Progress Chart';
$lang->block->default['waterfall']['program']['4']['block'] = 'waterfallprogress';
$lang->block->default['waterfall']['program']['4']['grid'] = 4;
$lang->block->default['waterfall']['project']['5']['title'] = 'Program Issue';
$lang->block->default['waterfall']['project']['5']['block'] = 'waterfallissue';
$lang->block->default['waterfall']['project']['5']['source'] = 'project';
$lang->block->default['waterfall']['project']['5']['grid'] = 8;
$lang->block->default['waterfall']['program']['5']['title'] = 'Program Issue';
$lang->block->default['waterfall']['program']['5']['block'] = 'waterfallissue';
$lang->block->default['waterfall']['program']['5']['source'] = 'program';
$lang->block->default['waterfall']['program']['5']['grid'] = 8;
$lang->block->default['waterfall']['project']['5']['params']['type'] = 'all';
$lang->block->default['waterfall']['project']['5']['params']['count'] = '15';
$lang->block->default['waterfall']['project']['5']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['program']['5']['params']['type'] = 'all';
$lang->block->default['waterfall']['program']['5']['params']['count'] = '15';
$lang->block->default['waterfall']['program']['5']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['project']['6']['title'] = 'Dynamic';
$lang->block->default['waterfall']['project']['6']['block'] = 'projectdynamic';
$lang->block->default['waterfall']['project']['6']['grid'] = 4;
$lang->block->default['waterfall']['project']['6']['source'] = 'project';
$lang->block->default['waterfall']['program']['6']['title'] = 'Dynamic';
$lang->block->default['waterfall']['program']['6']['block'] = 'programdynamic';
$lang->block->default['waterfall']['program']['6']['grid'] = 4;
$lang->block->default['waterfall']['program']['6']['source'] = 'program';
$lang->block->default['waterfall']['project']['7']['title'] = 'Project Risk';
$lang->block->default['waterfall']['project']['7']['block'] = 'waterfallrisk';
$lang->block->default['waterfall']['project']['7']['source'] = 'project';
$lang->block->default['waterfall']['project']['7']['grid'] = 8;
$lang->block->default['waterfall']['program']['7']['title'] = 'Project Risk';
$lang->block->default['waterfall']['program']['7']['block'] = 'waterfallrisk';
$lang->block->default['waterfall']['program']['7']['source'] = 'program';
$lang->block->default['waterfall']['program']['7']['grid'] = 8;
$lang->block->default['waterfall']['project']['7']['params']['type'] = 'all';
$lang->block->default['waterfall']['project']['7']['params']['count'] = '15';
$lang->block->default['waterfall']['project']['7']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['program']['7']['params']['type'] = 'all';
$lang->block->default['waterfall']['program']['7']['params']['count'] = '15';
$lang->block->default['waterfall']['program']['7']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['project']['1']['title'] = 'Project Overview';
$lang->block->default['scrum']['project']['1']['block'] = 'scrumoverview';
$lang->block->default['scrum']['project']['1']['grid'] = 8;
$lang->block->default['scrum']['program']['1']['title'] = 'Project Overview';
$lang->block->default['scrum']['program']['1']['block'] = 'scrumoverview';
$lang->block->default['scrum']['program']['1']['grid'] = 8;
$lang->block->default['scrum']['project']['2']['title'] = $lang->projectCommon . ' List';
$lang->block->default['scrum']['project']['2']['block'] = 'scrumlist';
$lang->block->default['scrum']['project']['2']['grid'] = 8;
$lang->block->default['scrum']['program']['2']['title'] = $lang->projectCommon . ' List';
$lang->block->default['scrum']['program']['2']['block'] = 'scrumlist';
$lang->block->default['scrum']['program']['2']['grid'] = 8;
$lang->block->default['scrum']['project']['3']['title'] = 'Test Version';
$lang->block->default['scrum']['project']['3']['block'] = 'scrumtest';
$lang->block->default['scrum']['project']['3']['grid'] = 8;
$lang->block->default['scrum']['program']['3']['title'] = 'Test Version';
$lang->block->default['scrum']['program']['3']['block'] = 'scrumtest';
$lang->block->default['scrum']['program']['3']['grid'] = 8;
$lang->block->default['scrum']['project']['3']['params']['type'] = 'wait';
$lang->block->default['scrum']['project']['3']['params']['count'] = '15';
$lang->block->default['scrum']['project']['3']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['program']['3']['params']['type'] = 'wait';
$lang->block->default['scrum']['program']['3']['params']['count'] = '15';
$lang->block->default['scrum']['program']['3']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['project']['4']['title'] = $lang->projectCommon . ' Overview';
$lang->block->default['scrum']['project']['4']['block'] = 'sprint';
$lang->block->default['scrum']['project']['4']['grid'] = 4;
$lang->block->default['scrum']['program']['4']['title'] = $lang->projectCommon . ' Overview';
$lang->block->default['scrum']['program']['4']['block'] = 'sprint';
$lang->block->default['scrum']['program']['4']['grid'] = 4;
$lang->block->default['scrum']['project']['5']['title'] = 'Dynamic';
$lang->block->default['scrum']['project']['5']['block'] = 'projectdynamic';
$lang->block->default['scrum']['project']['5']['grid'] = 4;
$lang->block->default['scrum']['program']['5']['title'] = 'Dynamic';
$lang->block->default['scrum']['program']['5']['block'] = 'programdynamic';
$lang->block->default['scrum']['program']['5']['grid'] = 4;
$lang->block->default['product']['1']['title'] = $lang->productCommon . ' Report';
$lang->block->default['product']['1']['block'] = 'statistic';
@@ -190,18 +190,18 @@ $lang->block->default['product']['4']['params']['count'] = 15;
$lang->block->default['product']['4']['params']['orderBy'] = 'id_desc';
$lang->block->default['product']['4']['params']['type'] = 'assignedTo';
$lang->block->default['project']['1']['title'] = $lang->projectCommon . ' Report';
$lang->block->default['project']['1']['title'] = 'Execution Report';
$lang->block->default['project']['1']['block'] = 'statistic';
$lang->block->default['project']['1']['grid'] = 8;
$lang->block->default['project']['1']['params']['type'] = 'all';
$lang->block->default['project']['1']['params']['count'] = '20';
$lang->block->default['project']['2']['title'] = $lang->projectCommon . ' Overview';
$lang->block->default['project']['2']['title'] = 'Execution Overview';
$lang->block->default['project']['2']['block'] = 'overview';
$lang->block->default['project']['2']['grid'] = 4;
$lang->block->default['project']['3']['title'] = 'Active ' . $lang->projectCommon . 's';
$lang->block->default['project']['3']['title'] = 'Active ' . 'Executions';
$lang->block->default['project']['3']['block'] = 'list';
$lang->block->default['project']['3']['grid'] = 8;
@@ -268,9 +268,9 @@ $lang->block->default['full']['my']['3']['grid'] = 4;
$lang->block->default['full']['my']['3']['source'] = 'todo';
$lang->block->default['full']['my']['3']['params']['count'] = '20';
$lang->block->default['full']['my']['4']['title'] = $lang->projectCommon . ' Statistic';
$lang->block->default['full']['my']['4']['title'] = 'Project Statistic';
$lang->block->default['full']['my']['4']['block'] = 'statistic';
$lang->block->default['full']['my']['4']['source'] = 'project';
$lang->block->default['full']['my']['4']['source'] = 'program';
$lang->block->default['full']['my']['4']['grid'] = 8;
$lang->block->default['full']['my']['5']['title'] = 'Personal Contribution';
@@ -278,9 +278,9 @@ $lang->block->default['full']['my']['5']['block'] = 'contribute';
$lang->block->default['full']['my']['5']['source'] = '';
$lang->block->default['full']['my']['5']['grid'] = 4;
$lang->block->default['full']['my']['6']['title'] = 'Recent ' . $lang->projectCommon;
$lang->block->default['full']['my']['6']['block'] = 'recentproject';
$lang->block->default['full']['my']['6']['source'] = 'project';
$lang->block->default['full']['my']['6']['title'] = 'Recent Projects';
$lang->block->default['full']['my']['6']['block'] = 'recentprogram';
$lang->block->default['full']['my']['6']['source'] = 'program';
$lang->block->default['full']['my']['6']['grid'] = 8;
$lang->block->default['full']['my']['7']['title'] = 'My Tasks';
@@ -293,12 +293,12 @@ $lang->block->default['full']['my']['7']['params']['count'] = '15';
$lang->block->default['full']['my']['7']['params']['type'] = 'assignedTo';
$lang->block->default['full']['my']['8']['title'] = 'Human Input';
$lang->block->default['full']['my']['8']['block'] = 'projectteam';
$lang->block->default['full']['my']['8']['block'] = 'programteam';
$lang->block->default['full']['my']['8']['grid'] = 8;
$lang->block->default['full']['my']['9']['title'] = $lang->projectCommon . ' List';
$lang->block->default['full']['my']['9']['block'] = 'project';
$lang->block->default['full']['my']['9']['source'] = 'project';
$lang->block->default['full']['my']['9']['block'] = 'program';
$lang->block->default['full']['my']['9']['source'] = 'program';
$lang->block->default['full']['my']['9']['grid'] = 8;
$lang->block->default['full']['my']['9']['params']['orderBy'] = 'id_desc';
@@ -324,26 +324,26 @@ $lang->block->availableBlocks->testtask = 'Requests';
$lang->block->availableBlocks->risk = 'My Risks';
$lang->block->availableBlocks->issue = 'My Issues';
$lang->block->moduleList['project'] = 'Project';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['execution'] = 'Execution';
$lang->block->moduleList['qa'] = 'Test';
$lang->block->moduleList['todo'] = 'Todo';
$lang->block->moduleList['program'] = 'Project';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['project'] = 'Execution';
$lang->block->moduleList['qa'] = 'Test';
$lang->block->moduleList['todo'] = 'Todo';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = 'Project List';
$lang->block->modules['project']->availableBlocks->recentproject = 'Recent Project';
$lang->block->modules['project']->availableBlocks->statistic = 'Project Statistic';
$lang->block->modules['project']->availableBlocks->projectteam = 'Project Human Input';
$lang->block->modules['program'] = new stdclass();
$lang->block->modules['program']->availableBlocks = new stdclass();
$lang->block->modules['program']->availableBlocks->program = 'Project List';
$lang->block->modules['program']->availableBlocks->recentprogram = 'Recent Project';
$lang->block->modules['program']->availableBlocks->statistic = 'Project Statistic';
$lang->block->modules['program']->availableBlocks->programteam = 'Project Human Input';
$lang->block->modules['scrum']['index'] = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = $lang->projectCommon . ' Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumlist = $lang->projectCommon . ' List';
$lang->block->modules['scrum']['index']->availableBlocks->sprint = $lang->projectCommon . ' Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverview = 'Project Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumlist = 'Project List';
$lang->block->modules['scrum']['index']->availableBlocks->sprint = 'Project Overview';
$lang->block->modules['scrum']['index']->availableBlocks->scrumtest = 'Test Version';
$lang->block->modules['scrum']['index']->availableBlocks->projectdynamic = 'Dynamics';
$lang->block->modules['scrum']['index']->availableBlocks->programdynamic = 'Dynamics';
$lang->block->modules['waterfall']['index'] = new stdclass();
$lang->block->modules['waterfall']['index']->availableBlocks = new stdclass();
@@ -366,11 +366,11 @@ $lang->block->modules['product']->availableBlocks->release = 'Release';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->statistic = $lang->projectCommon . ' Report';
$lang->block->modules['project']->availableBlocks->overview = $lang->projectCommon . ' Overview';
$lang->block->modules['project']->availableBlocks->list = $lang->projectCommon . ' List';
$lang->block->modules['project']->availableBlocks->task = 'Task';
$lang->block->modules['project']->availableBlocks->build = 'Build';
$lang->block->modules['project']->availableBlocks->statistic = 'Execution Report';
$lang->block->modules['project']->availableBlocks->overview = 'Execution Overview';
$lang->block->modules['project']->availableBlocks->list = 'Execution List';
$lang->block->modules['project']->availableBlocks->task = 'Task';
$lang->block->modules['project']->availableBlocks->build = 'Build';
$lang->block->modules['qa'] = new stdclass();
$lang->block->modules['qa']->availableBlocks = new stdclass();
@@ -472,10 +472,10 @@ $lang->block->typeList->project['doing'] = 'Ongoing';
$lang->block->typeList->project['all'] = 'All';
$lang->block->typeList->project['involved'] = 'Involved';
$lang->block->typeList->execution['undone'] = 'Unfinished';
$lang->block->typeList->execution['doing'] = 'Ongoing';
$lang->block->typeList->execution['all'] = 'All';
$lang->block->typeList->execution['involved'] = 'Involved';
$lang->block->typeList->program['undone'] = 'Unfinished';
$lang->block->typeList->program['doing'] = 'Ongoing';
$lang->block->typeList->program['all'] = 'All';
$lang->block->typeList->program['involved'] = 'Involved';
$lang->block->typeList->scrum['undone'] = 'Unfinished';
$lang->block->typeList->scrum['doing'] = 'Ongoing中';
@@ -488,19 +488,19 @@ $lang->block->typeList->testtask['blocked'] = 'Blocked';
$lang->block->typeList->testtask['done'] = 'Done';
$lang->block->typeList->testtask['all'] = 'All';
$lang->block->modules['project']->moreLinkList = new stdclass();
$lang->block->modules['project']->moreLinkList->recentproject = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->statistic = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->project = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['project']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['project']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['project']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['project']->moreLinkList->scrumlist = 'project|all|';
$lang->block->modules['project']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['project']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['project']->moreLinkList->sprint = 'project|all|';
$lang->block->modules['project']->moreLinkList->projectdynamic = 'company|dynamic|';
$lang->block->modules['program']->moreLinkList = new stdclass();
$lang->block->modules['program']->moreLinkList->recentprogram = 'program|prjbrowse|';
$lang->block->modules['program']->moreLinkList->statistic = 'program|prjbrowse|';
$lang->block->modules['program']->moreLinkList->program = 'program|prjbrowse|';
$lang->block->modules['program']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['program']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['program']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['program']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['program']->moreLinkList->scrumlist = 'program|all|';
$lang->block->modules['program']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['program']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['program']->moreLinkList->sprint = 'program|all|';
$lang->block->modules['program']->moreLinkList->projectdynamic = 'company|dynamic|';
$lang->block->modules['product']->moreLinkList = new stdclass();
$lang->block->modules['product']->moreLinkList->list = 'product|all|';
+9 -7
View File
@@ -5,9 +5,10 @@
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package block
* @package block
* @version $Id$
* @link https://www.zentao.pm
* @link http://www.zentao.net
*/
*/
$lang->block = new stdclass();
$lang->block->common = 'Bloc';
@@ -42,8 +43,8 @@ $lang->block->leftToday = 'Reste à faire';
$lang->block->myTask = 'Mes Tâches';
$lang->block->myStory = 'Stories';
$lang->block->myBug = 'Bugs';
$lang->block->myProject = $lang->projectCommon . 's';
$lang->block->myProduct = '' . $lang->productCommon . 's';
$lang->block->myProject = 'Unclosed ' . $lang->projectCommon . 's';
$lang->block->myProduct = 'Unclosed ' . $lang->productCommon . 's';
$lang->block->delayed = 'Ajourné';
$lang->block->noData = 'Pas de données pour ce type de rapport.';
$lang->block->emptyTip = 'No data.';
@@ -67,6 +68,7 @@ $lang->block->consumedHours = 'Consumed Hours';
$lang->block->time = 'No';
$lang->block->week = 'Week';
$lang->block->selectProduct = 'Product selection';
$lang->block->of = ' di ';
$lang->block->params = new stdclass();
$lang->block->params->name = 'Nom';
@@ -365,9 +367,9 @@ $lang->block->modules['product']->availableBlocks->release = 'Release';
$lang->block->modules['execution'] = new stdclass();
$lang->block->modules['execution']->availableBlocks = new stdclass();
$lang->block->modules['execution']->availableBlocks->statistic = 'Rapport de ' . $lang->projectCommon;
$lang->block->modules['execution']->availableBlocks->overview = "Vue d'ensemble du " . $lang->projectCommon;
$lang->block->modules['execution']->availableBlocks->list = 'Liste ' . $lang->projectCommon;
$lang->block->modules['execution']->availableBlocks->statistic = 'Rapport de exécuter';
$lang->block->modules['execution']->availableBlocks->overview = "Vue d'ensemble du exécuter";
$lang->block->modules['execution']->availableBlocks->list = 'Liste exécuter';
$lang->block->modules['execution']->availableBlocks->task = 'Tâches';
$lang->block->modules['execution']->availableBlocks->build = 'Build';
+100 -99
View File
@@ -3,11 +3,11 @@
* The en file of crm block module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package block
* @version $Id$
* @link http://www.zentao.net
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package block
* @version $Id$
* @link http://www.zentao.net
*/
$lang->block = new stdclass();
$lang->block->common = 'Block';
@@ -42,8 +42,8 @@ $lang->block->leftToday = 'Việc hôm nay';
$lang->block->myTask = 'Nhiệm vụ';
$lang->block->myStory = 'Câu chuyện';
$lang->block->myBug = 'Bugs';
$lang->block->myProject = '' . $lang->projectCommon;
$lang->block->myProduct = '' . $lang->productCommon;
$lang->block->myProject = 'Unclosed ' . $lang->projectCommon . 's';
$lang->block->myProduct = 'Unclosed ' . $lang->productCommon . 's';
$lang->block->delayed = 'Tạm ngưng';
$lang->block->noData = 'Không có dữ liệu trên loại báo cáo này.';
$lang->block->emptyTip = 'Không có dữ liệu.';
@@ -67,6 +67,7 @@ $lang->block->consumedHours = 'Consumed Hours';
$lang->block->time = 'No';
$lang->block->week = 'Week';
$lang->block->selectProduct = 'Product selection';
$lang->block->of = ' thực ';
$lang->block->params = new stdclass();
$lang->block->params->name = 'Tên';
@@ -97,71 +98,71 @@ $lang->block->spent = 'Has Been Spent';
$lang->block->budget = 'Budget';
$lang->block->left = 'Residuals';
$lang->block->default['waterfall']['project']['1']['title'] = $lang->projectCommon . 'Weekly';
$lang->block->default['waterfall']['project']['1']['block'] = 'waterfallreport';
$lang->block->default['waterfall']['project']['1']['source'] = 'project';
$lang->block->default['waterfall']['project']['1']['grid'] = 8;
$lang->block->default['waterfall']['program']['1']['title'] = 'Project Weekly';
$lang->block->default['waterfall']['program']['1']['block'] = 'waterfallreport';
$lang->block->default['waterfall']['program']['1']['source'] = 'program';
$lang->block->default['waterfall']['program']['1']['grid'] = 8;
$lang->block->default['waterfall']['project']['2']['title'] = 'Estimate';
$lang->block->default['waterfall']['project']['2']['block'] = 'waterfallestimate';
$lang->block->default['waterfall']['project']['2']['source'] = 'project';
$lang->block->default['waterfall']['project']['2']['grid'] = 4;
$lang->block->default['waterfall']['program']['2']['title'] = 'Estimate';
$lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimate';
$lang->block->default['waterfall']['program']['2']['source'] = 'program';
$lang->block->default['waterfall']['program']['2']['grid'] = 4;
$lang->block->default['waterfall']['project']['3']['title'] = 'Plan Gantt Chart';
$lang->block->default['waterfall']['project']['3']['block'] = 'waterfallgantt';
$lang->block->default['waterfall']['project']['3']['source'] = 'project';
$lang->block->default['waterfall']['project']['3']['grid'] = 8;
$lang->block->default['waterfall']['program']['3']['title'] = 'Plan Gantt Chart';
$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt';
$lang->block->default['waterfall']['program']['3']['source'] = 'program';
$lang->block->default['waterfall']['program']['3']['grid'] = 8;
$lang->block->default['waterfall']['project']['4']['title'] = 'Progress Chart';
$lang->block->default['waterfall']['project']['4']['block'] = 'waterfallprogress';
$lang->block->default['waterfall']['project']['4']['grid'] = 4;
$lang->block->default['waterfall']['program']['4']['title'] = 'Progress Chart';
$lang->block->default['waterfall']['program']['4']['block'] = 'waterfallprogress';
$lang->block->default['waterfall']['program']['4']['grid'] = 4;
$lang->block->default['waterfall']['project']['5']['title'] = 'project Issue';
$lang->block->default['waterfall']['project']['5']['block'] = 'waterfallissue';
$lang->block->default['waterfall']['project']['5']['source'] = 'project';
$lang->block->default['waterfall']['project']['5']['grid'] = 8;
$lang->block->default['waterfall']['program']['5']['title'] = 'Project Issue';
$lang->block->default['waterfall']['program']['5']['block'] = 'waterfallissue';
$lang->block->default['waterfall']['program']['5']['source'] = 'program';
$lang->block->default['waterfall']['program']['5']['grid'] = 8;
$lang->block->default['waterfall']['project']['5']['params']['type'] = 'all';
$lang->block->default['waterfall']['project']['5']['params']['count'] = '15';
$lang->block->default['waterfall']['project']['5']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['program']['5']['params']['type'] = 'all';
$lang->block->default['waterfall']['program']['5']['params']['count'] = '15';
$lang->block->default['waterfall']['program']['5']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['project']['6']['title'] = 'Dynamic';
$lang->block->default['waterfall']['project']['6']['block'] = 'dynamic';
$lang->block->default['waterfall']['project']['6']['grid'] = 4;
$lang->block->default['waterfall']['project']['6']['source'] = '';
$lang->block->default['waterfall']['program']['6']['title'] = 'Dynamic';
$lang->block->default['waterfall']['program']['6']['block'] = 'dynamic';
$lang->block->default['waterfall']['program']['6']['grid'] = 4;
$lang->block->default['waterfall']['program']['6']['source'] = '';
$lang->block->default['waterfall']['project']['7']['title'] = $lang->projectCommon . 'Risk';
$lang->block->default['waterfall']['project']['7']['block'] = 'waterfallrisk';
$lang->block->default['waterfall']['project']['7']['source'] = 'project';
$lang->block->default['waterfall']['project']['7']['grid'] = 8;
$lang->block->default['waterfall']['program']['7']['title'] = 'Project Risk';
$lang->block->default['waterfall']['program']['7']['block'] = 'waterfallrisk';
$lang->block->default['waterfall']['program']['7']['source'] = 'program';
$lang->block->default['waterfall']['program']['7']['grid'] = 8;
$lang->block->default['waterfall']['project']['7']['params']['type'] = 'all';
$lang->block->default['waterfall']['project']['7']['params']['count'] = '15';
$lang->block->default['waterfall']['project']['7']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['program']['7']['params']['type'] = 'all';
$lang->block->default['waterfall']['program']['7']['params']['count'] = '15';
$lang->block->default['waterfall']['program']['7']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['project']['1']['title'] = $lang->projectCommon . ' Overall';
$lang->block->default['scrum']['project']['1']['block'] = 'scrumoverall';
$lang->block->default['scrum']['project']['1']['grid'] = 8;
$lang->block->default['scrum']['program']['1']['title'] = 'Project Overall';
$lang->block->default['scrum']['program']['1']['block'] = 'scrumoverall';
$lang->block->default['scrum']['program']['1']['grid'] = 8;
$lang->block->default['scrum']['project']['2']['title'] = $lang->projectCommon . ' List';
$lang->block->default['scrum']['project']['2']['block'] = 'scrumlist';
$lang->block->default['scrum']['project']['2']['grid'] = 8;
$lang->block->default['scrum']['program']['2']['title'] = 'Project List';
$lang->block->default['scrum']['program']['2']['block'] = 'scrumlist';
$lang->block->default['scrum']['program']['2']['grid'] = 8;
$lang->block->default['scrum']['project']['3']['title'] = 'Test Version';
$lang->block->default['scrum']['project']['3']['block'] = 'scrumtest';
$lang->block->default['scrum']['project']['3']['grid'] = 8;
$lang->block->default['scrum']['program']['3']['title'] = 'Test Version';
$lang->block->default['scrum']['program']['3']['block'] = 'scrumtest';
$lang->block->default['scrum']['program']['3']['grid'] = 8;
$lang->block->default['scrum']['project']['3']['params']['type'] = 'all';
$lang->block->default['scrum']['project']['3']['params']['count'] = '15';
$lang->block->default['scrum']['project']['3']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['program']['3']['params']['type'] = 'all';
$lang->block->default['scrum']['program']['3']['params']['count'] = '15';
$lang->block->default['scrum']['program']['3']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['project']['4']['title'] = $lang->projectCommon . ' Overview';
$lang->block->default['scrum']['project']['4']['block'] = 'sprint';
$lang->block->default['scrum']['project']['4']['grid'] = 4;
$lang->block->default['scrum']['program']['4']['title'] = 'Project Overview';
$lang->block->default['scrum']['program']['4']['block'] = 'sprint';
$lang->block->default['scrum']['program']['4']['grid'] = 4;
$lang->block->default['scrum']['project']['5']['title'] = 'Dynamic';
$lang->block->default['scrum']['project']['5']['block'] = 'scrumdynamic';
$lang->block->default['scrum']['project']['5']['grid'] = 4;
$lang->block->default['scrum']['program']['5']['title'] = 'Dynamic';
$lang->block->default['scrum']['program']['5']['block'] = 'scrumdynamic';
$lang->block->default['scrum']['program']['5']['grid'] = 4;
$lang->block->default['product']['1']['title'] = 'Báo cáo '.$lang->productCommon;
$lang->block->default['product']['1']['block'] = 'statistic';
@@ -267,9 +268,9 @@ $lang->block->default['full']['my']['3']['grid'] = 4;
$lang->block->default['full']['my']['3']['source'] = 'todo';
$lang->block->default['full']['my']['3']['params']['count'] = '20';
$lang->block->default['full']['my']['4']['title'] = $lang->projectCommon . ' Statistic';
$lang->block->default['full']['my']['4']['title'] = 'Project Statistic';
$lang->block->default['full']['my']['4']['block'] = 'statistic';
$lang->block->default['full']['my']['4']['source'] = 'project';
$lang->block->default['full']['my']['4']['source'] = 'program';
$lang->block->default['full']['my']['4']['grid'] = 8;
$lang->block->default['full']['my']['5']['title'] = 'Personal Contribution';
@@ -277,9 +278,9 @@ $lang->block->default['full']['my']['5']['block'] = 'contribute';
$lang->block->default['full']['my']['5']['source'] = '';
$lang->block->default['full']['my']['5']['grid'] = 4;
$lang->block->default['full']['my']['6']['title'] = 'Recent ' . $lang->projectCommon;
$lang->block->default['full']['my']['6']['block'] = 'recentproject';
$lang->block->default['full']['my']['6']['source'] = 'project';
$lang->block->default['full']['my']['6']['title'] = 'Recent Projects';
$lang->block->default['full']['my']['6']['block'] = 'recentprogram';
$lang->block->default['full']['my']['6']['source'] = 'program';
$lang->block->default['full']['my']['6']['grid'] = 8;
$lang->block->default['full']['my']['7']['title'] = 'Nhiệm vụ';
@@ -292,12 +293,12 @@ $lang->block->default['full']['my']['7']['params']['count'] = '15';
$lang->block->default['full']['my']['7']['params']['type'] = 'assignedTo';
$lang->block->default['full']['my']['8']['title'] = 'Human Input';
$lang->block->default['full']['my']['8']['block'] = 'projectteam';
$lang->block->default['full']['my']['8']['block'] = 'programteam';
$lang->block->default['full']['my']['8']['grid'] = 8;
$lang->block->default['full']['my']['9']['title'] = $lang->projectCommon . ' List';
$lang->block->default['full']['my']['9']['block'] = 'project';
$lang->block->default['full']['my']['9']['source'] = 'project';
$lang->block->default['full']['my']['9']['title'] = 'Project List';
$lang->block->default['full']['my']['9']['block'] = 'program';
$lang->block->default['full']['my']['9']['source'] = 'program';
$lang->block->default['full']['my']['9']['grid'] = 8;
$lang->block->default['full']['my']['9']['params']['orderBy'] = 'id_desc';
@@ -323,18 +324,18 @@ $lang->block->availableBlocks->testtask = 'Yêu cầu';
$lang->block->availableBlocks->risk = 'My Risks';
$lang->block->availableBlocks->issue = 'My Issues';
$lang->block->moduleList['project'] = $lang->projectCommon;
$lang->block->moduleList['program'] = 'Project';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['execution'] = $lang->projectCommon;
$lang->block->moduleList['project'] = 'Execution';
$lang->block->moduleList['qa'] = 'QA';
$lang->block->moduleList['todo'] = 'Việc làm';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = $lang->projectCommon . ' List';
$lang->block->modules['project']->availableBlocks->recentproject = 'Recent ' . $lang->projectCommon;
$lang->block->modules['project']->availableBlocks->statistic = $lang->projectCommon . ' Statistic';
$lang->block->modules['project']->availableBlocks->projectteam = $lang->projectCommon . 'Human Input';
$lang->block->modules['program'] = new stdclass();
$lang->block->modules['program']->availableBlocks = new stdclass();
$lang->block->modules['program']->availableBlocks->project = $lang->projectCommon . ' List';
$lang->block->modules['program']->availableBlocks->recentproject = 'Recent ' . $lang->projectCommon;
$lang->block->modules['program']->availableBlocks->statistic = $lang->projectCommon . ' Statistic';
$lang->block->modules['program']->availableBlocks->projectteam = $lang->projectCommon . 'Human Input';
$lang->block->modules['scrum']['index'] = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
@@ -363,13 +364,13 @@ $lang->block->modules['product']->availableBlocks->story = 'Câu chuyện';
$lang->block->modules['product']->availableBlocks->plan = 'Kế hoạch';
$lang->block->modules['product']->availableBlocks->release = 'Phát hành';
$lang->block->modules['execution'] = new stdclass();
$lang->block->modules['execution']->availableBlocks = new stdclass();
$lang->block->modules['execution']->availableBlocks->statistic = 'Báo cáo '.$lang->projectCommon;
$lang->block->modules['execution']->availableBlocks->overview = 'Tổng quan '.$lang->projectCommon ;
$lang->block->modules['execution']->availableBlocks->list = $lang->projectCommon . ' danh sách';
$lang->block->modules['execution']->availableBlocks->task = 'Nhiệm vụ';
$lang->block->modules['execution']->availableBlocks->build = 'Bản dựng';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->statistic = 'Báo cáo thực';
$lang->block->modules['project']->availableBlocks->overview = 'Tổng quan thực';
$lang->block->modules['project']->availableBlocks->list = 'Thực danh sách';
$lang->block->modules['project']->availableBlocks->task = 'Nhiệm vụ';
$lang->block->modules['project']->availableBlocks->build = 'Bản dựng';
$lang->block->modules['qa'] = new stdclass();
$lang->block->modules['qa']->availableBlocks = new stdclass();
@@ -471,10 +472,10 @@ $lang->block->typeList->project['doing'] = 'Đang làm';
$lang->block->typeList->project['all'] = 'Tất cả';
$lang->block->typeList->project['involved'] = 'Liên đới';
$lang->block->typeList->execution['undone'] = 'Unfinished';
$lang->block->typeList->execution['doing'] = 'Ongoing';
$lang->block->typeList->execution['all'] = 'All';
$lang->block->typeList->execution['involved'] = 'Involved';
$lang->block->typeList->program['undone'] = 'Unfinished';
$lang->block->typeList->program['doing'] = 'Ongoing';
$lang->block->typeList->program['all'] = 'All';
$lang->block->typeList->program['involved'] = 'Involved';
$lang->block->typeList->scrum['undone'] = 'Unfinished';
$lang->block->typeList->scrum['doing'] = 'Ongoing中';
@@ -487,19 +488,19 @@ $lang->block->typeList->testtask['blocked'] = 'Bị khóa';
$lang->block->typeList->testtask['done'] = 'Hoàn thành';
$lang->block->typeList->testtask['all'] = 'Tất cả';
$lang->block->modules['project']->moreLinkList = new stdclass();
$lang->block->modules['project']->moreLinkList->recentproject = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->statistic = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->project = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['project']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['project']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['project']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['project']->moreLinkList->scrumlist = 'project|all|';
$lang->block->modules['project']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['project']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['project']->moreLinkList->sprint = 'project|all|';
$lang->block->modules['project']->moreLinkList->projectdynamic = 'company|dynamic|';
$lang->block->modules['program']->moreLinkList = new stdclass();
$lang->block->modules['program']->moreLinkList->recentprogram = 'program|prjbrowse|';
$lang->block->modules['program']->moreLinkList->statistic = 'program|prjbrowse|';
$lang->block->modules['program']->moreLinkList->program = 'program|prjbrowse|';
$lang->block->modules['program']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['program']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['program']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['program']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['program']->moreLinkList->scrumlist = 'program|all|';
$lang->block->modules['program']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['program']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['program']->moreLinkList->sprint = 'program|all|';
$lang->block->modules['program']->moreLinkList->projectdynamic = 'company|dynamic|';
$lang->block->modules['product']->moreLinkList = new stdclass();
$lang->block->modules['product']->moreLinkList->list = 'product|all|';
+93 -93
View File
@@ -98,71 +98,71 @@ $lang->block->spent = '已花费';
$lang->block->budget = '预算';
$lang->block->left = '剩余';
$lang->block->default['waterfall']['project']['1']['title'] = '项目周报';
$lang->block->default['waterfall']['project']['1']['block'] = 'waterfallreport';
$lang->block->default['waterfall']['project']['1']['source'] = 'project';
$lang->block->default['waterfall']['project']['1']['grid'] = 8;
$lang->block->default['waterfall']['program']['1']['title'] = '项目周报';
$lang->block->default['waterfall']['program']['1']['block'] = 'waterfallreport';
$lang->block->default['waterfall']['program']['1']['source'] = 'program';
$lang->block->default['waterfall']['program']['1']['grid'] = 8;
$lang->block->default['waterfall']['project']['2']['title'] = '估算';
$lang->block->default['waterfall']['project']['2']['block'] = 'waterfallestimate';
$lang->block->default['waterfall']['project']['2']['source'] = 'project';
$lang->block->default['waterfall']['project']['2']['grid'] = 4;
$lang->block->default['waterfall']['program']['2']['title'] = '估算';
$lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimate';
$lang->block->default['waterfall']['program']['2']['source'] = 'program';
$lang->block->default['waterfall']['program']['2']['grid'] = 4;
$lang->block->default['waterfall']['project']['3']['title'] = "项目{$lang->planCommon}";
$lang->block->default['waterfall']['project']['3']['block'] = 'waterfallgantt';
$lang->block->default['waterfall']['project']['3']['source'] = 'project';
$lang->block->default['waterfall']['project']['3']['grid'] = 8;
$lang->block->default['waterfall']['program']['3']['title'] = "项目{$lang->planCommon}";
$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt';
$lang->block->default['waterfall']['program']['3']['source'] = 'program';
$lang->block->default['waterfall']['program']['3']['grid'] = 8;
$lang->block->default['waterfall']['project']['4']['title'] = '到目前为止项目进展趋势图';
$lang->block->default['waterfall']['project']['4']['block'] = 'waterfallprogress';
$lang->block->default['waterfall']['project']['4']['grid'] = 4;
$lang->block->default['waterfall']['program']['4']['title'] = '到目前为止项目进展趋势图';
$lang->block->default['waterfall']['program']['4']['block'] = 'waterfallprogress';
$lang->block->default['waterfall']['program']['4']['grid'] = 4;
$lang->block->default['waterfall']['project']['5']['title'] = '项目问题';
$lang->block->default['waterfall']['project']['5']['block'] = 'waterfallissue';
$lang->block->default['waterfall']['project']['5']['source'] = 'project';
$lang->block->default['waterfall']['project']['5']['grid'] = 8;
$lang->block->default['waterfall']['program']['5']['title'] = '项目问题';
$lang->block->default['waterfall']['program']['5']['block'] = 'waterfallissue';
$lang->block->default['waterfall']['program']['5']['source'] = 'program';
$lang->block->default['waterfall']['program']['5']['grid'] = 8;
$lang->block->default['waterfall']['project']['5']['params']['type'] = 'all';
$lang->block->default['waterfall']['project']['5']['params']['count'] = '15';
$lang->block->default['waterfall']['project']['5']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['program']['5']['params']['type'] = 'all';
$lang->block->default['waterfall']['program']['5']['params']['count'] = '15';
$lang->block->default['waterfall']['program']['5']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['project']['6']['title'] = '最新动态';
$lang->block->default['waterfall']['project']['6']['block'] = 'projectdynamic';
$lang->block->default['waterfall']['project']['6']['grid'] = 4;
$lang->block->default['waterfall']['project']['6']['source'] = 'project';
$lang->block->default['waterfall']['program']['6']['title'] = '最新动态';
$lang->block->default['waterfall']['program']['6']['block'] = 'programdynamic';
$lang->block->default['waterfall']['program']['6']['grid'] = 4;
$lang->block->default['waterfall']['program']['6']['source'] = 'program';
$lang->block->default['waterfall']['project']['7']['title'] = '项目风险';
$lang->block->default['waterfall']['project']['7']['block'] = 'waterfallrisk';
$lang->block->default['waterfall']['project']['7']['source'] = 'project';
$lang->block->default['waterfall']['project']['7']['grid'] = 8;
$lang->block->default['waterfall']['program']['7']['title'] = '项目风险';
$lang->block->default['waterfall']['program']['7']['block'] = 'waterfallrisk';
$lang->block->default['waterfall']['program']['7']['source'] = 'program';
$lang->block->default['waterfall']['program']['7']['grid'] = 8;
$lang->block->default['waterfall']['project']['7']['params']['type'] = 'all';
$lang->block->default['waterfall']['project']['7']['params']['count'] = '15';
$lang->block->default['waterfall']['project']['7']['params']['orderBy'] = 'id_desc';
$lang->block->default['waterfall']['program']['7']['params']['type'] = 'all';
$lang->block->default['waterfall']['program']['7']['params']['count'] = '15';
$lang->block->default['waterfall']['program']['7']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['project']['1']['title'] = '项目整体情况';
$lang->block->default['scrum']['project']['1']['block'] = 'scrumoverview';
$lang->block->default['scrum']['project']['1']['grid'] = 8;
$lang->block->default['scrum']['program']['1']['title'] = '项目整体情况';
$lang->block->default['scrum']['program']['1']['block'] = 'scrumoverview';
$lang->block->default['scrum']['program']['1']['grid'] = 8;
$lang->block->default['scrum']['project']['2']['title'] = $lang->projectCommon . '列表';
$lang->block->default['scrum']['project']['2']['block'] = 'scrumlist';
$lang->block->default['scrum']['project']['2']['grid'] = 8;
$lang->block->default['scrum']['program']['2']['title'] = $lang->projectCommon . '列表';
$lang->block->default['scrum']['program']['2']['block'] = 'scrumlist';
$lang->block->default['scrum']['program']['2']['grid'] = 8;
$lang->block->default['scrum']['project']['3']['title'] = '待测版本';
$lang->block->default['scrum']['project']['3']['block'] = 'scrumtest';
$lang->block->default['scrum']['project']['3']['grid'] = 8;
$lang->block->default['scrum']['program']['3']['title'] = '待测版本';
$lang->block->default['scrum']['program']['3']['block'] = 'scrumtest';
$lang->block->default['scrum']['program']['3']['grid'] = 8;
$lang->block->default['scrum']['project']['3']['params']['type'] = 'wait';
$lang->block->default['scrum']['project']['3']['params']['count'] = '15';
$lang->block->default['scrum']['project']['3']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['program']['3']['params']['type'] = 'wait';
$lang->block->default['scrum']['program']['3']['params']['count'] = '15';
$lang->block->default['scrum']['program']['3']['params']['orderBy'] = 'id_desc';
$lang->block->default['scrum']['project']['4']['title'] = $lang->projectCommon . '总览';
$lang->block->default['scrum']['project']['4']['block'] = 'sprint';
$lang->block->default['scrum']['project']['4']['grid'] = 4;
$lang->block->default['scrum']['program']['4']['title'] = $lang->projectCommon . '总览';
$lang->block->default['scrum']['program']['4']['block'] = 'sprint';
$lang->block->default['scrum']['program']['4']['grid'] = 4;
$lang->block->default['scrum']['project']['5']['title'] = '最新动态';
$lang->block->default['scrum']['project']['5']['block'] = 'projectdynamic';
$lang->block->default['scrum']['project']['5']['grid'] = 4;
$lang->block->default['scrum']['program']['5']['title'] = '最新动态';
$lang->block->default['scrum']['program']['5']['block'] = 'programdynamic';
$lang->block->default['scrum']['program']['5']['grid'] = 4;
$lang->block->default['product']['1']['title'] = $lang->productCommon . '统计';
$lang->block->default['product']['1']['block'] = 'statistic';
@@ -270,7 +270,7 @@ $lang->block->default['full']['my']['3']['params']['count'] = '20';
$lang->block->default['full']['my']['4']['title'] = '项目统计';
$lang->block->default['full']['my']['4']['block'] = 'statistic';
$lang->block->default['full']['my']['4']['source'] = 'project';
$lang->block->default['full']['my']['4']['source'] = 'program';
$lang->block->default['full']['my']['4']['grid'] = 8;
$lang->block->default['full']['my']['5']['title'] = '我的贡献';
@@ -279,13 +279,13 @@ $lang->block->default['full']['my']['5']['source'] = '';
$lang->block->default['full']['my']['5']['grid'] = 4;
$lang->block->default['full']['my']['6']['title'] = '我近期参与的项目';
$lang->block->default['full']['my']['6']['block'] = 'recentproject';
$lang->block->default['full']['my']['6']['source'] = 'project';
$lang->block->default['full']['my']['6']['block'] = 'recentprogram';
$lang->block->default['full']['my']['6']['source'] = 'program';
$lang->block->default['full']['my']['6']['grid'] = 8;
$lang->block->default['full']['my']['7']['title'] = '指派给我的任务';
$lang->block->default['full']['my']['7']['block'] = 'task';
$lang->block->default['full']['my']['7']['source'] = 'execution';
$lang->block->default['full']['my']['7']['source'] = 'project';
$lang->block->default['full']['my']['7']['grid'] = 8;
$lang->block->default['full']['my']['7']['params']['orderBy'] = 'id_desc';
@@ -297,8 +297,8 @@ $lang->block->default['full']['my']['8']['block'] = 'projectteam';
$lang->block->default['full']['my']['8']['grid'] = 8;
$lang->block->default['full']['my']['9']['title'] = '项目列表';
$lang->block->default['full']['my']['9']['block'] = 'project';
$lang->block->default['full']['my']['9']['source'] = 'project';
$lang->block->default['full']['my']['9']['block'] = 'program';
$lang->block->default['full']['my']['9']['source'] = 'program';
$lang->block->default['full']['my']['9']['grid'] = 8;
$lang->block->default['full']['my']['9']['params']['orderBy'] = 'id_desc';
@@ -324,18 +324,18 @@ $lang->block->availableBlocks->testtask = '测试版本列表';
$lang->block->availableBlocks->risk = '我的风险';
$lang->block->availableBlocks->issue = '我的问题';
$lang->block->moduleList['project'] = '项目';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['execution'] = '执行';
$lang->block->moduleList['qa'] = '测试';
$lang->block->moduleList['todo'] = '待办';
$lang->block->moduleList['program'] = '项目';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['project'] = '执行';
$lang->block->moduleList['qa'] = '测试';
$lang->block->moduleList['todo'] = '待办';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->project = '项目列表';
$lang->block->modules['project']->availableBlocks->recentproject = '近期项目';
$lang->block->modules['project']->availableBlocks->statistic = '项目统计';
$lang->block->modules['project']->availableBlocks->projectteam = '项目人力投入';
$lang->block->modules['program'] = new stdclass();
$lang->block->modules['program']->availableBlocks = new stdclass();
$lang->block->modules['program']->availableBlocks->program = '项目列表';
$lang->block->modules['program']->availableBlocks->recentprogram = '近期项目';
$lang->block->modules['program']->availableBlocks->statistic = '项目统计';
$lang->block->modules['program']->availableBlocks->programteam = '项目人力投入';
$lang->block->modules['scrum']['index'] = new stdclass();
$lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
@@ -364,13 +364,13 @@ $lang->block->modules['product']->availableBlocks->story = "{$lang->SRCommon
$lang->block->modules['product']->availableBlocks->plan = "{$lang->planCommon}列表";
$lang->block->modules['product']->availableBlocks->release = '发布列表';
$lang->block->modules['execution'] = new stdclass();
$lang->block->modules['execution']->availableBlocks = new stdclass();
$lang->block->modules['execution']->availableBlocks->statistic = $lang->projectCommon . '统计';
$lang->block->modules['execution']->availableBlocks->overview = $lang->projectCommon . '总览';
$lang->block->modules['execution']->availableBlocks->list = $lang->projectCommon . '列表';
$lang->block->modules['execution']->availableBlocks->task = '任务列表';
$lang->block->modules['execution']->availableBlocks->build = '版本列表';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks = new stdclass();
$lang->block->modules['project']->availableBlocks->statistic = '执行统计';
$lang->block->modules['project']->availableBlocks->overview = '执行总览';
$lang->block->modules['project']->availableBlocks->list = '执行列表';
$lang->block->modules['project']->availableBlocks->task = '任务列表';
$lang->block->modules['project']->availableBlocks->build = '版本列表';
$lang->block->modules['qa'] = new stdclass();
$lang->block->modules['qa']->availableBlocks = new stdclass();
@@ -467,16 +467,16 @@ $lang->block->typeList->product['closed'] = '已关闭';
$lang->block->typeList->product['all'] = '全部';
$lang->block->typeList->product['involved'] = '我参与';
$lang->block->typeList->program['undone'] = '未完成';
$lang->block->typeList->program['doing'] = '进行中';
$lang->block->typeList->program['all'] = '全部';
$lang->block->typeList->program['involved'] = '我参与的';
$lang->block->typeList->project['undone'] = '未完成';
$lang->block->typeList->project['doing'] = '进行中';
$lang->block->typeList->project['all'] = '全部';
$lang->block->typeList->project['involved'] = '我参与';
$lang->block->typeList->execution['undone'] = '未完成';
$lang->block->typeList->execution['doing'] = '进行中';
$lang->block->typeList->execution['all'] = '全部';
$lang->block->typeList->execution['involved'] = '我参与';
$lang->block->typeList->scrum['undone'] = '未完成';
$lang->block->typeList->scrum['doing'] = '进行中';
$lang->block->typeList->scrum['all'] = '全部';
@@ -488,19 +488,19 @@ $lang->block->typeList->testtask['blocked'] = '阻塞版本';
$lang->block->typeList->testtask['done'] = '已测版本';
$lang->block->typeList->testtask['all'] = '全部';
$lang->block->modules['project']->moreLinkList = new stdclass();
$lang->block->modules['project']->moreLinkList->recentproject = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->statistic = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->project = 'project|prjbrowse|';
$lang->block->modules['project']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['project']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['project']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['project']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['project']->moreLinkList->scrumlist = 'project|all|';
$lang->block->modules['project']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['project']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['project']->moreLinkList->sprint = 'project|all|';
$lang->block->modules['project']->moreLinkList->projectdynamic = 'company|dynamic|';
$lang->block->modules['program']->moreLinkList = new stdclass();
$lang->block->modules['program']->moreLinkList->recentproject = 'project|prjbrowse|';
$lang->block->modules['program']->moreLinkList->statistic = 'project|prjbrowse|';
$lang->block->modules['program']->moreLinkList->project = 'project|prjbrowse|';
$lang->block->modules['program']->moreLinkList->cmmireport = 'weekly|index|';
$lang->block->modules['program']->moreLinkList->cmmiestimate = 'workestimation|index|';
$lang->block->modules['program']->moreLinkList->cmmiissue = 'issue|browse|';
$lang->block->modules['program']->moreLinkList->cmmirisk = 'risk|browse|';
$lang->block->modules['program']->moreLinkList->scrumlist = 'project|all|';
$lang->block->modules['program']->moreLinkList->scrumtest = 'testtask|browse|';
$lang->block->modules['program']->moreLinkList->scrumproduct = 'product|all|';
$lang->block->modules['program']->moreLinkList->sprint = 'project|all|';
$lang->block->modules['program']->moreLinkList->projectdynamic = 'company|dynamic|';
$lang->block->modules['product']->moreLinkList = new stdclass();
$lang->block->modules['product']->moreLinkList->list = 'product|all|';
+7 -8
View File
@@ -223,7 +223,7 @@ class blockModel extends model
$account = $this->app->user->account;
if($module == 'program')
{
$blocks = $this->lang->block->default[$type]['project'];
$blocks = $this->lang->block->default[$type]['program'];
$projectID = $this->session->PRJ;
$project = $this->loadModel('program')->getPRJByID($projectID);
@@ -267,7 +267,7 @@ class blockModel extends model
public function getAvailableBlocks($module = '', $dashboard = '', $model = '')
{
$blocks = $this->lang->block->availableBlocks;
if($dashboard == 'project')
if($dashboard == 'program')
{
$blocks = $this->lang->block->modules[$model]['index']->availableBlocks;
}
@@ -445,7 +445,7 @@ class blockModel extends model
* @access public
* @return json
*/
public function getProjectParams()
public function getProgramParams()
{
$this->app->loadLang('program');
$params->type['name'] = $this->lang->block->type;
@@ -465,7 +465,7 @@ class blockModel extends model
* @access public
* @return json
*/
public function getProjectTeamParams()
public function getProgramTeamParams()
{
$this->app->loadLang('program');
$params->type['name'] = $this->lang->block->type;
@@ -516,7 +516,6 @@ class blockModel extends model
if($module == 'product') return $this->getProductStatisticParams($module);
if($module == 'project') return $this->getProjectStatisticParams($module);
if($module == 'qa') return $this->getQaStatisticParams($module);
if($module == 'execution') return $this->getExecutionStatisticParams($module);
$params = new stdclass();
$params = $this->appendCountParams($params);
@@ -593,7 +592,7 @@ class blockModel extends model
* @access public
* @return string
*/
public function getRecentProjectParams()
public function getRecentProgramParams()
{
return false;
}
@@ -704,7 +703,7 @@ class blockModel extends model
* @access public
* @return json
*/
public function getExecutionParams()
public function getProjectParams()
{
$params->type['name'] = $this->lang->block->type;
$params->type['options'] = $this->lang->block->typeList->project;
@@ -922,7 +921,7 @@ class blockModel extends model
* @access public
* @return string
*/
public function getProjectDynamicParams($module = '')
public function getProgramDynamicParams($module = '')
{
$params = $this->appendCountParams();
-73
View File
@@ -1,73 +0,0 @@
<?php
/**
* The project block view file of block module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package block
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php if(empty($executionStats)): ?>
<div class='empty-tip'><?php common::printLink('project', 'create', '', "<i class='icon-plus'></i> " . $lang->project->create, '', "class='btn btn-primary'")?></div>
<?php else:?>
<div class="panel-body has-table scrollbar-hover">
<table class='table table-borderless table-hover table-fixed table-fixed-head tablesorter block-projects tablesorter'>
<thead>
<tr class='text-center'>
<th class='c-name text-left'><?php echo $lang->project->name;?></th>
<th class="c-date"><?php echo $lang->project->end;?></th>
<?php if($longBlock):?>
<?php $thClass = common::checkNotCN() ? 'w-85px' : 'c-hours';?>
<th class="c-status"><?php echo $lang->statusAB;?></th>
<th class='<?php echo $thClass?>'><?php echo $lang->project->totalEstimate;?></th>
<th class="c-hours"><?php echo $lang->project->totalConsumed;?></th>
<th class="c-hours"><?php echo $lang->project->totalLeft;?></th>
<?php endif;?>
<th class="c-progress"><?php echo $lang->project->progress;?></th>
<?php if($longBlock):?>
<th><?php echo $lang->project->burn;?></th>
<?php endif;?>
</tr>
</thead>
<tbody class="text-center">
<?php $id = 0; ?>
<?php foreach($executionStats as $execution):?>
<?php
$appid = isset($_GET['entry']) ? "class='app-btn text-center' data-id='{$this->get->entry}'" : "class='text-center'";
$viewLink = $this->createLink('project', 'task', 'project=' . $execution->id);
?>
<tr data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<td class='c-name text-left' title='<?php echo $execution->name;?>'><nobr><?php echo html::a($this->createLink('project', 'task', 'project=' . $execution->id), $execution->name, '', "title='$execution->name'");?></nobr></td>
<td class="c-date"><?php echo $execution->end;?></td>
<?php if($longBlock):?>
<td class="w-70px">
<?php if(isset($execution->delay)):?>
<span class="status-project status-delayed" title='<?php echo $lang->project->delayed;?>'><?php echo $lang->project->delayed;?></span>
<?php else:?>
<?php $statusName = $this->processStatus('project', $execution);?>
<span class="status-project status-<?php echo $execution->status?>" title='<?php echo $statusName;?>'><?php echo $statusName;?></span>
<?php endif;?>
</td>
<td class="c-hours"><?php echo $execution->hours->totalEstimate;?></td>
<td class="c-hours"><?php echo $execution->hours->totalConsumed;?></td>
<td class="c-hours"><?php echo $execution->hours->totalLeft;?></td>
<?php endif;?>
<td class="c-progress">
<div class="progress progress-text-left">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="<?php echo $execution->hours->progress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->hours->progress;?>%">
<span class="progress-text"><?php echo $execution->hours->progress;?>%</span>
</div>
</div>
</td>
<?php if($longBlock):?>
<td id='spark-<?php echo $id++?>' class='no-padding text-left sparkline' values='<?php echo join(',', $execution->burns);?>'></td>
<?php endif;?>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
<?php endif;?>
@@ -124,7 +124,7 @@ $(function()
<div class="table-row">
<div class="col-6 text-middle">
<div class="tile">
<div class="tile-title"><?php echo $lang->story->total;?></div>
<div class="tile-title"><?php echo $product->conceptName;?></div>
<?php if($product->stories):?>
<div class="tile-amount"><?php echo array_sum($product->stories);?></div>
<?php common::printLink('product', 'browse', "productID={$product->id}&branch=&type=allstory", $lang->story->viewAll . '<span class="label label-badge label-icon"><i class="icon icon-arrow-right"></i></span>', '', 'class="btn btn-primary btn-circle btn-icon-right btn-sm"');?>
+49
View File
@@ -0,0 +1,49 @@
<?php if(empty($programs)): ?>
<div class='empty-tip'><?php echo $lang->block->emptyTip;?></div>
<?php else:?>
<style>
.block-programs .c-pri {width: 45px;text-align: center;}
.block-programs .c-status {width: 80px;}
</style>
<div class='panel-body has-table scrollbar-hover'>
<table class='table table-borderless table-hover table-fixed table-fixed-head tablesorter block-programs <?php if(!$longBlock) echo 'block-sm';?>'>
<thead>
<tr>
<th class='c-name'><?php echo $lang->program->PGMName;?></th>
<th class='w-100px'> <?php echo $lang->program->PGMPM;?></th>
<th class='w-80px'><?php echo $lang->program->PGMStatus;?></th>
<?php if($longBlock):?>
<th class='w-80px'><?php echo $lang->program->teamCount;?></th>
<th class='w-80px'><?php echo $lang->task->consumed;?></th>
<th class='w-100px'><?php echo $lang->program->PGMBudget;?></th>
<th class='w-80px'><?php echo $lang->program->leftStories;?></th>
<th class='w-80px'><?php echo $lang->program->leftTasks;?></th>
<th class='w-80px'><?php echo $lang->program->leftBugs;?></th>
<?php endif;?>
</tr>
</thead>
<tbody>
<?php foreach($programs as $program):?>
<?php
$viewLink = $this->createLink('program', 'index', "programID={$program->id}");
?>
<tr>
<td title='<?php echo $program->name?>'><?php echo html::a($viewLink, $program->name);?></td>
<td><?php echo zget($users, $program->PM, $program->PM)?></td>
<td class='c-status'>
<span class="status-program status-<?php echo $program->status?>"><?php echo zget($lang->project->statusList, $program->status);?></span>
</td>
<?php if($longBlock):?>
<td><?php echo $program->teamCount;?></td>
<td><?php echo $program->consumed;?></td>
<td><?php echo $program->budget . ' ' . zget($lang->program->unitList, $program->budgetUnit);?></td>
<td><?php echo $program->leftStories;?></td>
<td><?php echo $program->leftTasks;?></td>
<td><?php echo $program->leftBugs;?></td>
<?php endif;?>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
<?php endif;?>
@@ -55,9 +55,21 @@ html[lang="en"] .product-info .type-info {color: #A6AAB8; text-align: center; po
.block-statistic.block-sm .nav-secondary > li.active > a.btn-view {width: auto; left: 0; right: 0;}
.block-statistic.block-sm .nav-secondary > li.active > a.btn-view > i {display: none;}
.block-statistic.block-sm .nav-secondary > li.active > a.btn-view:hover {cursor: pointer; background: rgba(0,0,0,.1)}
.block-statistic .program-info .info span+span{margin-left: 15px}
.block-statistic .project-info{margin-top: 25px}
.block-statistic .project-info .col-xs-5, .block-statistic .project-info .col-xs-7{margin-top: 8px}
.block-statistic .project-info .col-xs-5{padding-left: 0px;}
.status-count{margin:auto}
.status-count tr:first-child td:last-child{color:#000;font-weight:bold}
.block-statistic .progress-group{margin-top: 20px; margin-bottom: 10px; height: 65px;}
.block-statistic .weekly-title{font-weight: bold; font-size:14px; color: #3C4253;}
.block-statistic .weekly-small{font-size:12px; color: #838A9D;}
.block-statistic .weekly-progress {font-weight: bold; font-size:24px;}
.block-statistic .weekly-name{font-size:14px; color: #838A9D;}
.block-statistic .weekly-value{font-size:14px;}
.block-statistic .col-6 .stage{margin-left: 10px}
</style>
<script>
<?php $blockNavId = 'nav-' . uniqid(); ?>
@@ -74,17 +86,17 @@ $(function()
e.preventDefault();
});
var $executionLi = $('#activeExecution');
if($executionLi.length)
var $projectLi = $('#activeProject');
if($projectLi.length)
{
var executionLi = $executionLi[0];
$(".col ul.nav").animate({scrollTop: executionLi.offsetTop}, "slow");
var projectLi = $projectLi[0];
$(".col ul.nav").animate({scrollTop: projectLi.offsetTop}, "slow");
}
});
</script>
<div class="panel-body">
<div class="table-row">
<?php if(empty($executions)):?>
<?php if(empty($projects)):?>
<div class="table-empty-tip">
<p><span class="text-muted"><?php echo $lang->block->noData;?></span></p>
</div>
@@ -92,110 +104,139 @@ $(function()
<div class="col col-nav">
<ul class="nav nav-stacked nav-secondary scrollbar-hover" id='<?php echo $blockNavId;?>'>
<li class='switch-icon prev'><a><i class='icon icon-arrow-left'></i></a></li>
<?php $selected = key($executions);?>
<?php $selected = !isset($executions[$selected]) ? key($executions) : $selected;?>
<?php foreach($executions as $execution):?>
<li <?php if($execution->id == $selected) echo "class='active' id='activeExecution'";?> executionID='<?php echo $execution->id;?>'>
<a href="###" data-target="#tab3Content<?php echo $execution->id;?>" data-toggle="tab" title='<?php echo $execution->name;?>'><?php echo $execution->name;?></a>
<?php echo html::a(helper::createLink('project', 'task', "executionID=$execution->id"), "<i class='icon-arrow-right text-primary'></i>", '', "class='btn-view' title={$lang->project->task}");?>
<?php $selected = key($projects);?>
<?php foreach($projects as $project):?>
<li <?php if($project->id == $selected) echo "class='active' id='activeProject'";?> projectID='<?php echo $project->id;?>'>
<a href="###" data-target="#tab3Content<?php echo $project->id;?>" data-toggle="tab"><?php echo $project->name;?></a>
<?php echo html::a(helper::createLink('program', 'index', "projectID=$project->id"), "<i class='icon-arrow-right text-primary'></i>", '', "class='btn-view' title={$lang->program->PGMIndex}");?>
</li>
<?php endforeach;?>
<li class='switch-icon next'><a><i class='icon icon-arrow-right'></i></a></li>
</ul>
</div>
<div class="col tab-content">
<?php foreach($executions as $execution):?>
<div class="tab-pane fade<?php if($execution->id == $selected) echo ' active in';?>" id="tab3Content<?php echo $execution->id;?>">
<?php foreach($projects as $project):?>
<div class="tab-pane fade<?php if($project->id == $selected) echo ' active in';?>" id="tab3Content<?php echo $project->id;?>">
<div class="table-row">
<?php if($project->model == 'scrum'):?>
<div class="col-5 text-middle text-center">
<div class="progress-pie inline-block space" data-value="<?php echo $execution->progress;?>" data-doughnut-size="84">
<div class="progress-pie inline-block space" data-value="<?php echo $project->progress;?>" data-doughnut-size="84">
<canvas width="120" height="120"></canvas>
<div class="progress-info">
<small><?php echo $lang->task->statusList['done'];?></small>
<strong><?php echo $execution->progress;?><small><?php echo $lang->percent;?></small></strong>
<small><?php echo $lang->story->common . $lang->program->doneStories;?></small>
<strong><?php echo $project->doneStories;?></strong>
</div>
</div>
<div class="table-row text-center small text-muted with-padding">
<div class="col-4 text-bottom">
<div><?php echo $lang->project->totalEstimate;?></div>
<div><?php echo $execution->totalEstimate;?> <span class="muted"><?php echo $lang->task->hour;?></span></div>
<div><?php echo $lang->program->allStories;?></div>
<div><?php echo $project->allStories;?></div>
</div>
<div class="col-4">
<span class="label label-dot label-primary"></span>
<div><?php echo $lang->project->totalConsumed;?></div>
<div><?php echo $execution->totalConsumed;?> <span class="muted"><?php echo $lang->task->hour;?></span></div>
<div><?php echo $lang->program->doneStories;?></div>
<div><?php echo $project->doneStories;?></div>
</div>
<div class="col-4">
<span class="label label-dot label-pale"></span>
<div><?php echo $lang->project->totalLeft;?></div>
<div><?php echo $execution->totalLeft;?> <span class="muted"><?php echo $lang->task->hour;?></span></div>
<div><?php echo $lang->program->leftStories;?></div>
<div><?php echo $project->leftStories;?></div>
</div>
</div>
</div>
<div class="col-7">
<div class="product-info">
<div class="progress-info"><i class="icon icon-check-circle text-success icon-sm"></i> <span class="text-muted"><?php echo $lang->task->yesterdayFinished;?></span> <strong><?php echo $execution->yesterdayFinished;?></strong></div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<?php echo $execution->taskProgress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->taskProgress;?>%">
</div>
</div>
<div class="type-info">
<div class="type-label">
<table class='status-count'>
<tr>
<td class='text-right'><?php echo $lang->task->allTasks;?> :</td>
<td class='text-left'><?php echo empty($execution->totalTasks) ? 0 : html::a($this->createLink('project', 'task', "executionID={$execution->id}&status=all"), $execution->totalTasks);?></td>
</tr>
<tr>
<td class='text-right'><?php echo $lang->task->noFinished;?> :</td>
<td class='text-left'><?php echo empty($execution->undoneTasks) ? 0 : html::a($this->createLink('project', 'task', "executionID={$execution->id}&status=undone"), $execution->undoneTasks);?></td>
</tr>
</table>
</div>
<div class="project-info">
<h4><?php echo $lang->program->allInput;?></h4>
<div class='info'>
<span><i class='icon icon-group'></i> <?php echo sprintf($lang->program->membersUnit, $project->teamCount);?></span>
<span><i class='icon icon-clock'></i> <?php echo sprintf($lang->program->hoursUnit, $project->estimate);?></span>
<span><i class='icon icon-cost'></i> <?php echo $project->budget . ' ' . zget($lang->program->unitList, $project->budgetUnit);?></span>
</div>
</div>
<div class="product-info">
<div class="progress-info"><i class="icon icon-check-circle text-success icon-sm"></i> <span class="text-muted"><?php echo $lang->story->released;?></span> <strong><?php echo $execution->releasedStories;?></strong></div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<?php echo $execution->storyProgress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->storyProgress;?>%"></div>
</div>
<div class="type-info">
<div class="type-label">
<table class='status-count'>
<tr>
<td class='text-right'><?php echo $lang->story->total;?> :</td>
<td class='text-left'><?php echo empty($execution->totalStories) ? 0 : html::a($this->createLink('project', 'story', "executionID={$execution->id}&orderBy=order_desc&type=all"), $execution->totalStories);?></td>
</tr>
<tr>
<td class='text-right'><?php echo $lang->story->unclosed;?> :</td>
<td class='text-left'><?php echo empty($execution->unclosedStories) ? 0 : html::a($this->createLink('project', 'story', "executionID={$execution->id}&orderBy=order_desc&type=unclosed"), $execution->unclosedStories);?></td>
</tr>
</table>
<div class="project-info">
<?php $i = 0;?>
<h4><?php echo $lang->program->lastIteration;?></h4>
<?php foreach($project->executions as $execution):?>
<?php $i ++;?>
<?php if($i > 3) break;?>
<div class='col-xs-5'><?php echo $execution->name;?></div>
<div class='col-xs-7'>
<div class='progress progress-text-left'>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="<?php echo $execution->hours->progress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->hours->progress;?>%">
<span class='progress-text'><?php echo $execution->hours->progress . '%';?></span>
</div>
</div>
</div>
<?php endforeach;?>
</div>
</div>
<?php else:?>
<div class="col-6">
<div class='table-row text-left weekly-row with-padding'>
<span class='weekly-title'><?php echo $lang->program->weekly;?></span>
<span class='stage text-muted'><?php echo $project->current;?></span>
</div>
<div class='progress-group col-10 center-block'>
<div class='progress-num text-center'>
<div class='weekly-title'><?php echo $lang->program->PRJProgress;?></div>
<div class='weekly-progress'><?php echo $project->progress . '%';?></div>
</div>
<div class='progress'>
<div class="progress-bar" role="progressbar" aria-valuenow="82" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $project->progress;?>%"></div>
</div>
</div>
<div class="product-info">
<div class="progress-info"><i class="icon icon-check-circle text-success icon-sm"></i> <span class="text-muted"><?php echo $lang->bug->yesterdayResolved;?></span> <strong><?php echo $execution->yesterdayResolved;?></strong></div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<?php echo $execution->bugProgress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->bugProgress;?>%">
</div>
<div class="table-row text-center small with-padding col-10 center-block">
<div class="col-4 text-bottom">
<div class='weekly-name'><?php echo $lang->program->pv;?></div>
<div class='weekly-value'><?php echo $project->pv;?></div>
</div>
<div class="type-info">
<div class="type-label">
<table class='status-count'>
<tr>
<td class='text-right'><?php echo $lang->bug->allBugs;?> :</td>
<td class='text-left'><?php echo empty($execution->totalBugs) ? 0 : html::a($this->createLink('project', 'bug', "executionID={$execution->id}&orderBy=status,id_desc&build=0&type=all"), $execution->totalBugs);?></td>
</tr>
<tr>
<td class='text-right'><?php echo $lang->bug->unResolved;?> :</td>
<td class='text-left'><?php echo empty($execution->activeBugs) ? 0 : html::a($this->createLink('project', 'bug', "executionID={$execution->id}&orderBy=status,id_desc&build=0&type=unresolved"), $execution->activeBugs);?></td>
</tr>
</table>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->ev;?></div>
<div class='weekly-value'><?php echo $project->ev;?></div>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->sv;?></div>
<div class='weekly-value'><?php echo $project->sv;?></div>
</div>
</div>
</div>
<div class='col-6'>
<div class='table-row weekly-row with-padding'>
<div class='col-4 text-center'>
<span class='weekly-title'><?php echo $lang->program->allInput;?></span>
</div>
<div class='col-8'></div>
</div>
<div class='progress-group'>
<div class="table-row text-center small with-padding">
<div class="col-4 text-bottom">
<div class='weekly-name'><?php echo $lang->program->PRJPM;?></div>
<div class='weekly-value'><?php echo $project->PM ? zget($users, $project->PM) : $lang->program->emptyPM;?></div>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->teamCount;?></div>
<div class='weekly-value'><?php echo $project->teamCount;?></div>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->PRJBudget;?></div>
<div class='weekly-value'><?php echo $project->budget;?></div>
</div>
</div>
</div>
<div class="table-row text-center small with-padding">
<div class="col-4 text-bottom">
<div class='weekly-name'><?php echo $lang->program->ac;?></div>
<div class='weekly-value'><?php echo $project->ac;?></div>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->cv;?></div>
<div class='weekly-value'><?php echo $project->cv;?></div>
</div>
<div>
</div>
</div>
</div>
<?php endif;?>
</div>
</div>
<?php endforeach;?>
+58 -34
View File
@@ -1,48 +1,72 @@
<?php if(empty($programs)): ?>
<div class='empty-tip'><?php echo $lang->block->emptyTip;?></div>
<?php
/**
* The project block view file of block module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package block
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php if(empty($executionStats)): ?>
<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>
.block-programs .c-pri {width: 45px;text-align: center;}
.block-programs .c-status {width: 80px;}
</style>
<div class='panel-body has-table scrollbar-hover'>
<table class='table table-borderless table-hover table-fixed table-fixed-head tablesorter block-programs <?php if(!$longBlock) echo 'block-sm';?>'>
<div class="panel-body has-table scrollbar-hover">
<table class='table table-borderless table-hover table-fixed table-fixed-head tablesorter block-projects tablesorter'>
<thead>
<tr>
<th class='c-name'><?php echo $lang->program->PGMName;?></th>
<th class='w-100px'> <?php echo $lang->program->PGMPM;?></th>
<th class='w-80px'><?php echo $lang->program->PGMStatus;?></th>
<tr class='text-center'>
<th class='c-name text-left'><?php echo $lang->project->name;?></th>
<th class="c-date"><?php echo $lang->project->end;?></th>
<?php if($longBlock):?>
<th class='w-80px'><?php echo $lang->program->teamCount;?></th>
<th class='w-80px'><?php echo $lang->task->consumed;?></th>
<th class='w-100px'><?php echo $lang->program->PGMBudget;?></th>
<th class='w-80px'><?php echo $lang->program->leftStories;?></th>
<th class='w-80px'><?php echo $lang->program->leftTasks;?></th>
<th class='w-80px'><?php echo $lang->program->leftBugs;?></th>
<?php $thClass = common::checkNotCN() ? 'w-85px' : 'c-hours';?>
<th class="c-status"><?php echo $lang->statusAB;?></th>
<th class='<?php echo $thClass?>'><?php echo $lang->project->totalEstimate;?></th>
<th class="c-hours"><?php echo $lang->project->totalConsumed;?></th>
<th class="c-hours"><?php echo $lang->project->totalLeft;?></th>
<?php endif;?>
<th class="c-progress"><?php echo $lang->project->progress;?></th>
<?php if($longBlock):?>
<th><?php echo $lang->project->burn;?></th>
<?php endif;?>
</tr>
</thead>
<tbody>
<?php foreach($programs as $program):?>
<tbody class="text-center">
<?php $id = 0; ?>
<?php foreach($executionStats as $execution):?>
<?php
$viewLink = $this->createLink('program', 'index', "programID={$program->id}");
$appid = isset($_GET['entry']) ? "class='app-btn text-center' data-id='{$this->get->entry}'" : "class='text-center'";
$viewLink = $this->createLink('project', 'task', 'project=' . $execution->id);
?>
<tr>
<td title='<?php echo $program->name?>'><?php echo html::a($viewLink, $program->name);?></td>
<td><?php echo zget($users, $program->PM, $program->PM)?></td>
<td class='c-status'>
<span class="status-program status-<?php echo $program->status?>"><?php echo zget($lang->project->statusList, $program->status);?></span>
<tr data-url='<?php echo empty($sso) ? $viewLink : $sso . $sign . 'referer=' . base64_encode($viewLink); ?>' <?php echo $appid?>>
<td class='c-name text-left' title='<?php echo $execution->name;?>'><nobr><?php echo html::a($this->createLink('project', 'task', 'project=' . $execution->id), $execution->name, '', "title='$execution->name'");?></nobr></td>
<td class="c-date"><?php echo $execution->end;?></td>
<?php if($longBlock):?>
<td class="w-70px">
<?php if(isset($execution->delay)):?>
<span class="status-project status-delayed" title='<?php echo $lang->project->delayed;?>'><?php echo $lang->project->delayed;?></span>
<?php else:?>
<?php $statusName = $this->processStatus('project', $execution);?>
<span class="status-project status-<?php echo $execution->status?>" title='<?php echo $statusName;?>'><?php echo $statusName;?></span>
<?php endif;?>
</td>
<td class="c-hours"><?php echo $execution->hours->totalEstimate;?></td>
<td class="c-hours"><?php echo $execution->hours->totalConsumed;?></td>
<td class="c-hours"><?php echo $execution->hours->totalLeft;?></td>
<?php endif;?>
<td class="c-progress">
<div class="progress progress-text-left">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="<?php echo $execution->hours->progress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->hours->progress;?>%">
<span class="progress-text"><?php echo $execution->hours->progress;?>%</span>
</div>
</div>
</td>
<?php if($longBlock):?>
<td><?php echo $program->teamCount;?></td>
<td><?php echo $program->consumed;?></td>
<td><?php echo $program->budget . ' ' . zget($lang->program->unitList, $program->budgetUnit);?></td>
<td><?php echo $program->leftStories;?></td>
<td><?php echo $program->leftTasks;?></td>
<td><?php echo $program->leftBugs;?></td>
<td id='spark-<?php echo $id++?>' class='no-padding text-left sparkline' values='<?php echo join(',', $execution->burns);?>'></td>
<?php endif;?>
</tr>
<?php endforeach;?>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
+76 -117
View File
@@ -55,21 +55,9 @@ html[lang="en"] .product-info .type-info {color: #A6AAB8; text-align: center; po
.block-statistic.block-sm .nav-secondary > li.active > a.btn-view {width: auto; left: 0; right: 0;}
.block-statistic.block-sm .nav-secondary > li.active > a.btn-view > i {display: none;}
.block-statistic.block-sm .nav-secondary > li.active > a.btn-view:hover {cursor: pointer; background: rgba(0,0,0,.1)}
.block-statistic .program-info .info span+span{margin-left: 15px}
.block-statistic .project-info{margin-top: 25px}
.block-statistic .project-info .col-xs-5, .block-statistic .project-info .col-xs-7{margin-top: 8px}
.block-statistic .project-info .col-xs-5{padding-left: 0px;}
.status-count{margin:auto}
.status-count tr:first-child td:last-child{color:#000;font-weight:bold}
.block-statistic .progress-group{margin-top: 20px; margin-bottom: 10px; height: 65px;}
.block-statistic .weekly-title{font-weight: bold; font-size:14px; color: #3C4253;}
.block-statistic .weekly-small{font-size:12px; color: #838A9D;}
.block-statistic .weekly-progress {font-weight: bold; font-size:24px;}
.block-statistic .weekly-name{font-size:14px; color: #838A9D;}
.block-statistic .weekly-value{font-size:14px;}
.block-statistic .col-6 .stage{margin-left: 10px}
</style>
<script>
<?php $blockNavId = 'nav-' . uniqid(); ?>
@@ -86,17 +74,17 @@ $(function()
e.preventDefault();
});
var $projectLi = $('#activeProject');
if($projectLi.length)
var $executionLi = $('#activeExecution');
if($executionLi.length)
{
var projectLi = $projectLi[0];
$(".col ul.nav").animate({scrollTop: projectLi.offsetTop}, "slow");
var executionLi = $executionLi[0];
$(".col ul.nav").animate({scrollTop: executionLi.offsetTop}, "slow");
}
});
</script>
<div class="panel-body">
<div class="table-row">
<?php if(empty($projects)):?>
<?php if(empty($executions)):?>
<div class="table-empty-tip">
<p><span class="text-muted"><?php echo $lang->block->noData;?></span></p>
</div>
@@ -104,139 +92,110 @@ $(function()
<div class="col col-nav">
<ul class="nav nav-stacked nav-secondary scrollbar-hover" id='<?php echo $blockNavId;?>'>
<li class='switch-icon prev'><a><i class='icon icon-arrow-left'></i></a></li>
<?php $selected = key($projects);?>
<?php foreach($projects as $project):?>
<li <?php if($project->id == $selected) echo "class='active' id='activeProject'";?> projectID='<?php echo $project->id;?>'>
<a href="###" data-target="#tab3Content<?php echo $project->id;?>" data-toggle="tab"><?php echo $project->name;?></a>
<?php echo html::a(helper::createLink('program', 'index', "projectID=$project->id"), "<i class='icon-arrow-right text-primary'></i>", '', "class='btn-view' title={$lang->program->PGMIndex}");?>
<?php $selected = key($executions);?>
<?php $selected = !isset($executions[$selected]) ? key($executions) : $selected;?>
<?php foreach($executions as $execution):?>
<li <?php if($execution->id == $selected) echo "class='active' id='activeExecution'";?> executionID='<?php echo $execution->id;?>'>
<a href="###" data-target="#tab3Content<?php echo $execution->id;?>" data-toggle="tab" title='<?php echo $execution->name;?>'><?php echo $execution->name;?></a>
<?php echo html::a(helper::createLink('project', 'task', "executionID=$execution->id"), "<i class='icon-arrow-right text-primary'></i>", '', "class='btn-view' title={$lang->project->task}");?>
</li>
<?php endforeach;?>
<li class='switch-icon next'><a><i class='icon icon-arrow-right'></i></a></li>
</ul>
</div>
<div class="col tab-content">
<?php foreach($projects as $project):?>
<div class="tab-pane fade<?php if($project->id == $selected) echo ' active in';?>" id="tab3Content<?php echo $project->id;?>">
<?php foreach($executions as $execution):?>
<div class="tab-pane fade<?php if($execution->id == $selected) echo ' active in';?>" id="tab3Content<?php echo $execution->id;?>">
<div class="table-row">
<?php if($project->model == 'scrum'):?>
<div class="col-5 text-middle text-center">
<div class="progress-pie inline-block space" data-value="<?php echo $project->progress;?>" data-doughnut-size="84">
<div class="progress-pie inline-block space" data-value="<?php echo $execution->progress;?>" data-doughnut-size="84">
<canvas width="120" height="120"></canvas>
<div class="progress-info">
<small><?php echo $lang->story->common . $lang->program->doneStories;?></small>
<strong><?php echo $project->doneStories;?></strong>
<small><?php echo $lang->task->statusList['done'];?></small>
<strong><?php echo $execution->progress;?><small><?php echo $lang->percent;?></small></strong>
</div>
</div>
<div class="table-row text-center small text-muted with-padding">
<div class="col-4 text-bottom">
<div><?php echo $lang->program->allStories;?></div>
<div><?php echo $project->allStories;?></div>
<div><?php echo $lang->project->totalEstimate;?></div>
<div><?php echo $execution->totalEstimate;?> <span class="muted"><?php echo $lang->task->hour;?></span></div>
</div>
<div class="col-4">
<span class="label label-dot label-primary"></span>
<div><?php echo $lang->program->doneStories;?></div>
<div><?php echo $project->doneStories;?></div>
<div><?php echo $lang->project->totalConsumed;?></div>
<div><?php echo $execution->totalConsumed;?> <span class="muted"><?php echo $lang->task->hour;?></span></div>
</div>
<div class="col-4">
<span class="label label-dot label-pale"></span>
<div><?php echo $lang->program->leftStories;?></div>
<div><?php echo $project->leftStories;?></div>
<div><?php echo $lang->project->totalLeft;?></div>
<div><?php echo $execution->totalLeft;?> <span class="muted"><?php echo $lang->task->hour;?></span></div>
</div>
</div>
</div>
<div class="col-7">
<div class="project-info">
<h4><?php echo $lang->program->allInput;?></h4>
<div class='info'>
<span><i class='icon icon-group'></i> <?php echo sprintf($lang->program->membersUnit, $project->teamCount);?></span>
<span><i class='icon icon-clock'></i> <?php echo sprintf($lang->program->hoursUnit, $project->estimate);?></span>
<span><i class='icon icon-cost'></i> <?php echo $project->budget . ' ' . zget($lang->program->unitList, $project->budgetUnit);?></span>
</div>
</div>
<div class="project-info">
<?php $i = 0;?>
<h4><?php echo $lang->program->lastIteration;?></h4>
<?php foreach($project->executions as $execution):?>
<?php $i ++;?>
<?php if($i > 3) break;?>
<div class='col-xs-5'><?php echo $execution->name;?></div>
<div class='col-xs-7'>
<div class='progress progress-text-left'>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="<?php echo $execution->hours->progress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->hours->progress;?>%">
<span class='progress-text'><?php echo $execution->hours->progress . '%';?></span>
</div>
<div class="product-info">
<div class="progress-info"><i class="icon icon-check-circle text-success icon-sm"></i> <span class="text-muted"><?php echo $lang->task->yesterdayFinished;?></span> <strong><?php echo $execution->yesterdayFinished;?></strong></div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<?php echo $execution->taskProgress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->taskProgress;?>%">
</div>
</div>
<?php endforeach;?>
</div>
</div>
<?php else:?>
<div class="col-6">
<div class='table-row text-left weekly-row with-padding'>
<span class='weekly-title'><?php echo $lang->program->weekly;?></span>
<span class='stage text-muted'><?php echo $project->current;?></span>
</div>
<div class='progress-group col-10 center-block'>
<div class='progress-num text-center'>
<div class='weekly-title'><?php echo $lang->program->PRJProgress;?></div>
<div class='weekly-progress'><?php echo $project->progress . '%';?></div>
</div>
<div class='progress'>
<div class="progress-bar" role="progressbar" aria-valuenow="82" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $project->progress;?>%"></div>
<div class="type-info">
<div class="type-label">
<table class='status-count'>
<tr>
<td class='text-right'><?php echo $lang->task->allTasks;?> :</td>
<td class='text-left'><?php echo empty($execution->totalTasks) ? 0 : html::a($this->createLink('project', 'task', "executionID={$execution->id}&status=all"), $execution->totalTasks);?></td>
</tr>
<tr>
<td class='text-right'><?php echo $lang->task->noFinished;?> :</td>
<td class='text-left'><?php echo empty($execution->undoneTasks) ? 0 : html::a($this->createLink('project', 'task', "executionID={$execution->id}&status=undone"), $execution->undoneTasks);?></td>
</tr>
</table>
</div>
</div>
</div>
<div class="table-row text-center small with-padding col-10 center-block">
<div class="col-4 text-bottom">
<div class='weekly-name'><?php echo $lang->program->pv;?></div>
<div class='weekly-value'><?php echo $project->pv;?></div>
<div class="product-info">
<div class="progress-info"><i class="icon icon-check-circle text-success icon-sm"></i> <span class="text-muted"><?php echo $lang->story->released;?></span> <strong><?php echo $execution->releasedStories;?></strong></div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<?php echo $execution->storyProgress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->storyProgress;?>%"></div>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->ev;?></div>
<div class='weekly-value'><?php echo $project->ev;?></div>
<div class="type-info">
<div class="type-label">
<table class='status-count'>
<tr>
<td class='text-right'><?php echo $lang->story->total;?> :</td>
<td class='text-left'><?php echo empty($execution->totalStories) ? 0 : html::a($this->createLink('project', 'story', "executionID={$execution->id}&orderBy=order_desc&type=all"), $execution->totalStories);?></td>
</tr>
<tr>
<td class='text-right'><?php echo $lang->story->unclosed;?> :</td>
<td class='text-left'><?php echo empty($execution->unclosedStories) ? 0 : html::a($this->createLink('project', 'story', "executionID={$execution->id}&orderBy=order_desc&type=unclosed"), $execution->unclosedStories);?></td>
</tr>
</table>
</div>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->sv;?></div>
<div class='weekly-value'><?php echo $project->sv;?></div>
</div>
<div class="product-info">
<div class="progress-info"><i class="icon icon-check-circle text-success icon-sm"></i> <span class="text-muted"><?php echo $lang->bug->yesterdayResolved;?></span> <strong><?php echo $execution->yesterdayResolved;?></strong></div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<?php echo $execution->bugProgress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->bugProgress;?>%">
</div>
</div>
<div class="type-info">
<div class="type-label">
<table class='status-count'>
<tr>
<td class='text-right'><?php echo $lang->bug->allBugs;?> :</td>
<td class='text-left'><?php echo empty($execution->totalBugs) ? 0 : html::a($this->createLink('project', 'bug', "executionID={$execution->id}&orderBy=status,id_desc&build=0&type=all"), $execution->totalBugs);?></td>
</tr>
<tr>
<td class='text-right'><?php echo $lang->bug->unResolved;?> :</td>
<td class='text-left'><?php echo empty($execution->activeBugs) ? 0 : html::a($this->createLink('project', 'bug', "executionID={$execution->id}&orderBy=status,id_desc&build=0&type=unresolved"), $execution->activeBugs);?></td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class='col-6'>
<div class='table-row weekly-row with-padding'>
<div class='col-4 text-center'>
<span class='weekly-title'><?php echo $lang->program->allInput;?></span>
</div>
<div class='col-8'></div>
</div>
<div class='progress-group'>
<div class="table-row text-center small with-padding">
<div class="col-4 text-bottom">
<div class='weekly-name'><?php echo $lang->program->PRJPM;?></div>
<div class='weekly-value'><?php echo $project->PM ? zget($users, $project->PM) : $lang->program->emptyPM;?></div>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->teamCount;?></div>
<div class='weekly-value'><?php echo $project->teamCount;?></div>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->PRJBudget;?></div>
<div class='weekly-value'><?php echo $project->budget;?></div>
</div>
</div>
</div>
<div class="table-row text-center small with-padding">
<div class="col-4 text-bottom">
<div class='weekly-name'><?php echo $lang->program->ac;?></div>
<div class='weekly-value'><?php echo $project->ac;?></div>
</div>
<div class="col-4">
<div class='weekly-name'><?php echo $lang->program->cv;?></div>
<div class='weekly-value'><?php echo $project->cv;?></div>
</div>
<div>
</div>
</div>
</div>
<?php endif;?>
</div>
</div>
<?php endforeach;?>
@@ -116,7 +116,7 @@
</div>
<script>
/* Auto resize stages */
$('.block-recentproject #cards .project-stages-container').each(function()
$('.block-recentprogram #cards .project-stages-container').each(function()
{
var $container = $(this);
var $row = $container.children();
+2
View File
@@ -67,6 +67,7 @@ class buildModel extends model
->leftJoin(TABLE_BRANCH)->alias('t4')->on('t1.branch = t4.id')
->where('t1.PRJ')->eq((int)$projectID)
->andWhere('t1.deleted')->eq(0)
->andWhere('t1.project')->ne(0)
->beginIF($type == 'product' and $param)->andWhere('t1.product')->eq($param)->fi()
->beginIF($type == 'bysearch')->andWhere($param)->fi()
->orderBy('t1.date DESC, t1.id desc')
@@ -97,6 +98,7 @@ class buildModel extends model
->leftJoin(TABLE_RELEASE)->alias('t3')->on('t1.id = t3.build')
->leftJoin(TABLE_BRANCH)->alias('t4')->on('t1.branch = t4.id')
->where('t1.PRJ')->eq((int)$projectID)
->andWhere('t1.project')->ne(0)
->beginIF($productID)->andWhere('t1.product')->eq((int)$productID)->fi()
->beginIF($branch)->andWhere('t1.branch')->in("0,$branch")->fi()
->andWhere('t1.deleted')->eq(0)
+2 -5
View File
@@ -862,9 +862,8 @@ $lang->icons['score'] = 'tint';
$lang->menu = new stdclass();
$lang->menu->scrum = new stdclass();
$lang->menu->scrum->program = '仪表盘|program|index|';
//$lang->menu->scrum->product = $lang->productCommon . '|product|index|locate=no';
$lang->menu->scrum->project = "$lang->projectCommon|project|index|locate=no";
$lang->menu->scrum->projectstory = array('link' => '需求|projectstory|requirement', 'subModule' => 'requirement,story,track');
$lang->menu->scrum->projectstory = array('link' => '需求|projectstory|requirement', 'alias' => 'requirement,story,track');
$lang->menu->scrum->doc = '文档|doc|index|';
$lang->menu->scrum->qa = '测试|qa|index';
$lang->menu->scrum->projectbuild = array('link' => '版本|projectbuild|browse|project={PROJECT}');
@@ -884,13 +883,11 @@ $lang->menu->waterfall->programplan = array('link' => '计划|programplan|bro
$lang->menu->waterfall->project = array('link' => $lang->projectCommon . '|project|task|executionID={EXECUTION}', 'subModule' => ',project,task,');
$lang->menu->waterfall->weekly = array('link' => '报告|weekly|index|project={PROJECT}', 'subModule' => ',milestone,');
$lang->menu->waterfall->doc = array('link' => '文档|doc|index|project={PROJECT}');
$lang->menu->waterfall->projectstory = array('link' => '需求|projectstory|requirement', 'subModule' => 'requirement,story,track');
//$lang->menu->waterfall->product = array('link' => '需求|product|browse|product={PRODUCT}', 'subModule' => ',story,');
$lang->menu->waterfall->projectstory = array('link' => '需求|projectstory|requirement', 'alias' => 'requirement,story,track');
$lang->menu->waterfall->design = '设计|design|browse|product={PRODUCT}';
$lang->menu->waterfall->ci = '代码|repo|browse|';
$lang->menu->waterfall->qa = array('link' => '测试|bug|browse|product={PRODUCT}', 'subModule' => ',testcase,testtask,testsuite,testreport,caselib,');
$lang->menu->waterfall->projectrelease = array('link' => '发布|projectrelease|browse');
//$lang->menu->waterfall->release = array('link' => '发布|release|browse|product={PRODUCT}', 'subModule' => 'release');
$lang->menu->waterfall->issue = '问题|issue|browse|';
$lang->menu->waterfall->risk = '风险|risk|browse|';
$lang->menu->waterfall->morelink = array('link' => '更多|project|morelink', 'class' => 'dropdown dropdown-hover waterfall-list', 'subModule' => 'stakeholder,workestimation,durationestimation,budget,pssp,stakeholder');
+2 -2
View File
@@ -60,8 +60,8 @@ class product extends control
if(common::hasPriv('product', 'create')) $this->lang->TRActions = html::a($this->createLink('product', 'create'), "<i class='icon icon-sm icon-plus'></i> " . $this->lang->product->create, '', "class='btn btn-primary'");
$this->view->title = $this->lang->product->index;
$this->view->position[] = $this->lang->product->index;
$this->view->title = $this->lang->product->index;
$this->view->position[] = $this->lang->product->index;
$this->display();
}
+21
View File
@@ -425,6 +425,8 @@ class productModel extends model
{
$closedProducts[$product->id] = $product;
}
$concept = $this->getStoryConceptByProduct($product->id);
$product->conceptName = $concept->SR;
}
$products = $mineProducts + $otherProducts + $closedProducts;
@@ -432,6 +434,25 @@ class productModel extends model
return array_slice($products, 0, $num, true);
}
/*
* Get the concept of requirements for product use.
*
* @param int $productID
* @access public
* @return void
*/
public function getStoryConceptByProduct($productID = 0)
{
$product = $this->getById($productID);
$URList = $this->dao->select('`key`,`value`')->from(TABLE_LANG)->where('module')->eq('custom')->andWhere('section')->eq('URList')->andWhere('lang')->eq($this->app->clientLang)->fetchPairs();
$SRList = $this->dao->select('`key`,`value`')->from(TABLE_LANG)->where('module')->eq('custom')->andWhere('section')->eq('SRList')->andWhere('lang')->eq($this->app->clientLang)->fetchPairs();
$concept = new stdClass();
$concept->UR = zget($URList, $product->storyConcept, $this->config->URCommonList[$this->app->clientLang]);
$concept->SR = zget($SRList, $product->storyConcept, $this->config->SRCommonList[$this->app->clientLang]);
return $concept;
}
/*
* Get product switcher.
*
+2 -1
View File
@@ -1918,7 +1918,8 @@ class project extends control
else
{
/* Delete project. */
$this->project->delete(TABLE_PROJECT, $projectID);
$this->dao->update(TABLE_PROJECT)->set('deleted')->eq(1)->where('id')->eq($projectID)->exec();
$this->loadModel('action')->create('execution', $projectID, 'deleted', '', $extra = ACTIONMODEL::CAN_UNDELETED);
$this->dao->update(TABLE_DOCLIB)->set('deleted')->eq(1)->where('project')->eq($projectID)->exec();
$this->project->updateUserView($projectID);
$this->session->set('project', '');
+20 -2
View File
@@ -1,6 +1,24 @@
<?php
/**
* The control file of projectBuild module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package projectBuild
* @version $Id: control.php 5094 2013-07-10 08:46:15Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
class projectBuild extends control
{
/**
* Browse builds of a project.
*
* @param int $projectID
* @param string $type all|product|bysearch
* @param int $param
* @access public
* @return void
*/
public function browse($projectID = 0, $type = 'all', $param = 0)
{
$this->loadModel('project');
@@ -28,9 +46,9 @@ class projectBuild extends control
/* Set project builds. */
$projectBuilds = array();
if(!empty($builds))
{
{
foreach($builds as $build) $projectBuilds[$build->product][] = $build;
}
}
/* Header and position. */
$this->view->title = $project->name . $this->lang->colon . $this->lang->project->build;
+1
View File
@@ -26,6 +26,7 @@
echo html::a(inlink('browse', "projectID={$projectID}&type=all"), $label, '', "class='btn btn-link $active' id='all'")
?>
<div class="input-control space w-150px"><?php echo html::select('product', $products, $product, "onchange='changeProduct(this.value)' class='form-control chosen' data-placeholder='{$lang->productCommon}'");?></div>
<a class="btn btn-link querybox-toggle" id="bysearchTab"><i class="icon icon-search muted"></i> <?php echo $lang->project->byQuery;?></a>
</div>
</div>
<div id="mainContent">
+1 -7
View File
@@ -634,13 +634,7 @@ class upgradeModel extends model
$this->appendExec('20_0_alpha');
case '20_0_alpha1':
$this->saveLogs('Execute 20_0_alpha1');
if(strpos($fromVersion, '20') !== 0)
{
$this->execSQL($this->getUpgradeFile('12.4.4'));
$this->adjustPriv12_5();
}
$this->execSQL($this->getUpgradeFile('20.0.alpha1'));
$this->appendExec('20_0_alpha1');
}
+3 -1
View File
@@ -112,7 +112,9 @@ if(strpos('|/zentao/|/pro/|/biz/|', "|{$this->config->webRoot}|") !== false)
if($database == 'zentaobiz') $webRoot = '/biz/';
if($database == 'zentaoep') $webRoot = '/biz/';
$users[$webRoot] = $this->dbh->query("select * from {$database}.`zt_user` where account = 'admin' and password='" . md5('123456') . "'")->fetch();
$user = $this->dbh->query("select * from {$database}.`zt_user` where account = 'admin' and password='" . md5('123456') . "'")->fetch();
if($user) $users[$webRoot] = true;
}
catch(Exception $e){}
}