Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -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
@@ -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]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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|';
|
||||
|
||||
@@ -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
@@ -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
@@ -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|';
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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"');?>
|
||||
|
||||
@@ -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;?>
|
||||
+117
-76
@@ -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;?>
|
||||
@@ -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>
|
||||
|
||||
@@ -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;?>
|
||||
|
||||
+1
-1
@@ -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();
|
||||
@@ -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)
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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', '');
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
|
||||
|
||||
@@ -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){}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user