Merge branch 'master' of git@github.com:easysoft/zentaopms
This commit is contained in:
+1
-1
@@ -17,7 +17,7 @@ if(!function_exists('getWebRoot')){function getWebRoot(){}}
|
||||
|
||||
/* Basic settings. */
|
||||
$config = new config();
|
||||
$config->version = '4.2.beta'; // The version of zentaopms. Don't change it.
|
||||
$config->version = '4.3.beta'; // The version of zentaopms. Don't change it.
|
||||
$config->charset = 'UTF-8'; // The charset of zentaopms.
|
||||
$config->cookieLife = time() + 2592000; // The cookie life time.
|
||||
$config->timezone = 'Asia/Shanghai'; // The time zone setting, for more see http://www.php.net/manual/en/timezones.php
|
||||
|
||||
@@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS `zt_bug` (
|
||||
`product` mediumint(8) unsigned NOT NULL default '0',
|
||||
`module` mediumint(8) unsigned NOT NULL default '0',
|
||||
`project` mediumint(8) unsigned NOT NULL default '0',
|
||||
`plan` mediumint(8) unsigned NOT NULL default '0',
|
||||
`story` mediumint(8) unsigned NOT NULL default '0',
|
||||
`storyVersion` smallint(6) NOT NULL default '1',
|
||||
`task` mediumint(8) unsigned NOT NULL default '0',
|
||||
|
||||
@@ -20,10 +20,11 @@ $lang->action->action = 'Action';
|
||||
$lang->action->actionID = 'ActionID';
|
||||
$lang->action->date = 'Date';
|
||||
|
||||
$lang->action->trash = 'Trash';
|
||||
$lang->action->undelete = 'Undelete';
|
||||
$lang->action->hideOne = 'Hide';
|
||||
$lang->action->hideAll = 'Hide all';
|
||||
$lang->action->trash = 'Trash';
|
||||
$lang->action->undelete = 'Undelete';
|
||||
$lang->action->hideOne = 'Hide';
|
||||
$lang->action->hideAll = 'Hide all';
|
||||
$lang->action->editComment = 'Edit comment';
|
||||
|
||||
$lang->action->trashTips = "Tips:The deleting actions in zentao are all logic";
|
||||
$lang->action->textDiff = 'Text mode';
|
||||
|
||||
@@ -20,10 +20,11 @@ $lang->action->action = '动作';
|
||||
$lang->action->actionID = '记录ID';
|
||||
$lang->action->date = '日期';
|
||||
|
||||
$lang->action->trash = '回收站';
|
||||
$lang->action->undelete = '还原';
|
||||
$lang->action->hideOne = '隐藏';
|
||||
$lang->action->hideAll = '全部隐藏';
|
||||
$lang->action->trash = '回收站';
|
||||
$lang->action->undelete = '还原';
|
||||
$lang->action->hideOne = '隐藏';
|
||||
$lang->action->hideAll = '全部隐藏';
|
||||
$lang->action->editComment = '修改备注';
|
||||
|
||||
$lang->action->trashTips = '提示:为了保证系统的完整性,禅道系统的删除都是标记删除。';
|
||||
$lang->action->textDiff = '文本格式';
|
||||
|
||||
@@ -20,10 +20,11 @@ $lang->action->action = '動作';
|
||||
$lang->action->actionID = '記錄ID';
|
||||
$lang->action->date = '日期';
|
||||
|
||||
$lang->action->trash = '資源回收筒';
|
||||
$lang->action->undelete = '還原';
|
||||
$lang->action->hideOne = '隱藏';
|
||||
$lang->action->hideAll = '全部隱藏';
|
||||
$lang->action->trash = '資源回收筒';
|
||||
$lang->action->undelete = '還原';
|
||||
$lang->action->hideOne = '隱藏';
|
||||
$lang->action->hideAll = '全部隱藏';
|
||||
$lang->action->editComment = '修改備註';
|
||||
|
||||
$lang->action->trashTips = '提示:為了保證系統的完整性,禪道系統的刪除都是標記刪除。';
|
||||
$lang->action->textDiff = '文本格式';
|
||||
@@ -77,6 +78,7 @@ $lang->action->desc->commented = '$date, 由 <strong>$actor</strong> 添加
|
||||
$lang->action->desc->activated = '$date, 由 <strong>$actor</strong> 激活。' . "\n";
|
||||
$lang->action->desc->moved = '$date, 由 <strong>$actor</strong> 移動,之前為 "$extra"。' . "\n";
|
||||
$lang->action->desc->confirmed = '$date, 由 <strong>$actor</strong> 確認需求變動,最新版本為<strong>#$extra</strong>。' . "\n";
|
||||
$lang->action->desc->caseconfirmed = '$date, 由 <strong>$actor</strong> 確認用例變動,最新版本為<strong>#$extra</strong>。' . "\n";
|
||||
$lang->action->desc->bugconfirmed = '$date, 由 <strong>$actor</strong> 確認Bug。' . "\n";
|
||||
$lang->action->desc->frombug = '$date, 由 <strong>$actor</strong> Bug轉化而來,Bug編號為 <strong>$extra</strong>。';
|
||||
$lang->action->desc->started = '$date, 由 <strong>$actor</strong> 啟動。' . "\n";
|
||||
|
||||
@@ -9,6 +9,7 @@ $config->url->extension = 'http://www.zentao.net/extension-browse.html';
|
||||
$config->url->donation = 'http://www.zentao.net/help-donation.html';
|
||||
$config->url->service = 'http://www.cnezsoft.com/article-browse-1078.html';
|
||||
|
||||
$config->win2Unix = new stdclass();
|
||||
$config->win2Unix->renameTables = array(
|
||||
'zt_casestep' => 'zt_caseStep' ,
|
||||
'zt_doclib' => 'zt_docLib' ,
|
||||
|
||||
@@ -192,12 +192,9 @@ class admin extends control
|
||||
{
|
||||
if($_POST)
|
||||
{
|
||||
if($this->post->flow != 'full') die(js::locate($this->createLink('extension', 'install', "extension={$this->post->flow}"), 'parent'));
|
||||
|
||||
if($this->post->flow != 'full')
|
||||
{
|
||||
$this->loadModel('setting')->setItem('system.common.global.flow', 'full');
|
||||
die(js::locate($this->createLink('extension', 'install', "extension={$this->post->flow}"), 'parent'));
|
||||
}
|
||||
$this->loadModel('setting')->setItem('system.common.global.flow', 'full');
|
||||
die(js::reload( 'parent.parent'));
|
||||
}
|
||||
$this->display();
|
||||
|
||||
@@ -58,9 +58,9 @@ $lang->admin->bind->success = "關聯賬戶成功";
|
||||
|
||||
$lang->admin->selectFlow = '您計劃如何使用禪道?';
|
||||
|
||||
$lang->admin->flowList['full'] = '所有功能(包括產品、項目、需求、計劃、發佈、任務、Bug、用例、測試任務和文檔等功能。)';
|
||||
$lang->admin->flowList['onlyTest'] = '僅測試管理(包括產品、版本、Bug、用例、測試任務和文檔管理等功能。)';
|
||||
$lang->admin->flowList['onlyTask'] = '僅任務管理(包括項目、任務和文檔管理。)';
|
||||
$lang->admin->flowList['onlyStory'] = '僅需求管理(包括產品、需求、計劃、發佈和文檔管理等功能。)';
|
||||
$lang->admin->flowList['full'] = '所有功能(包括產品、項目、需求、計劃、發佈、任務、Bug、用例、測試任務和文檔等功能。)';
|
||||
$lang->admin->flowList['zentaotest'] = '僅測試管理(包括產品、版本、Bug、用例、測試任務和文檔管理等功能。)';
|
||||
$lang->admin->flowList['zentaotask'] = '僅任務管理(包括項目、任務和文檔管理。)';
|
||||
$lang->admin->flowList['zentaostory'] = '僅需求管理(包括產品、需求、計劃、發佈和文檔管理等功能。)';
|
||||
|
||||
$lang->admin->flowNotice = "<span class='red'>註:如果您使用的不是所有功能,後續可以到“管理->插件”中,卸載相應的插件,即可重新使用禪道所有功能。</span>";
|
||||
|
||||
@@ -6,9 +6,21 @@
|
||||
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package api
|
||||
* @version $Id: zh-tw.php 4344 2013-02-06 04:10:55Z wwccss $
|
||||
* @version $Id: zh-tw.php 5129 2013-07-15 00:16:07Z zhujinyonging@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->api = new stdclass();
|
||||
$lang->api->common = 'API介面';
|
||||
$lang->api->getModel = '超級model調用介面';
|
||||
|
||||
$lang->api->position = '位置';
|
||||
$lang->api->startLine = "%s,%s行";
|
||||
$lang->api->desc = '描述';
|
||||
$lang->api->debug = '調試';
|
||||
$lang->api->submit = '提交';
|
||||
$lang->api->url = '請求地址';
|
||||
$lang->api->result = '返回結果';
|
||||
$lang->api->status = '狀態';
|
||||
$lang->api->data = '內容';
|
||||
$lang->api->noParam = 'GET方式調試不需要輸入參數,';
|
||||
$lang->api->post = 'POST方式調試請參照頁面表單';
|
||||
|
||||
@@ -353,7 +353,7 @@ class bug extends control
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$actions = $this->bug->batchCreate($productID);
|
||||
foreach($actions as $bugID => $action) $this->sendmail($bugID, $actionID);
|
||||
foreach($actions as $bugID => $actionID) $this->sendmail($bugID, $actionID);
|
||||
die(js::locate($this->session->bugList, 'parent'));
|
||||
}
|
||||
|
||||
@@ -377,7 +377,6 @@ class bug extends control
|
||||
$this->view->position[] = html::a($this->createLink('bug', 'browse', "productID=$productID"), $this->products[$productID]);
|
||||
$this->view->position[] = $this->lang->bug->batchCreate;
|
||||
|
||||
$this->view->projectBuilds = $projectBuilds;
|
||||
$this->view->productID = $productID;
|
||||
$this->view->stories = $stories;
|
||||
$this->view->builds = $builds;
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
$lang->bug->common = 'Bug';
|
||||
$lang->bug->id = 'Bug編號';
|
||||
$lang->bug->product = '所屬產品';
|
||||
$lang->bug->productplan = '所屬計劃';
|
||||
$lang->bug->module = '所屬模組';
|
||||
$lang->bug->path = '模組路徑';
|
||||
$lang->bug->project = '所屬項目';
|
||||
@@ -25,6 +26,7 @@ $lang->bug->severityAB = '級別';
|
||||
$lang->bug->pri = '優先順序';
|
||||
$lang->bug->type = 'Bug類型';
|
||||
$lang->bug->os = '操作系統';
|
||||
$lang->bug->plan = '所屬計劃';
|
||||
$lang->bug->hardware = '硬件平台';
|
||||
$lang->bug->browser = '瀏覽器';
|
||||
$lang->bug->machine = '機器硬件';
|
||||
@@ -69,6 +71,7 @@ $lang->bug->toCase = '生成用例';
|
||||
/* 方法列表。*/
|
||||
$lang->bug->index = '首頁';
|
||||
$lang->bug->create = '提Bug';
|
||||
$lang->bug->batchCreate = '批量添加';
|
||||
$lang->bug->confirmBug = '確認';
|
||||
$lang->bug->edit = '編輯';
|
||||
$lang->bug->batchEdit = '批量編輯';
|
||||
@@ -352,9 +355,11 @@ $lang->bug->report->bugHistories->graph->xAxisName = '處理步驟';
|
||||
|
||||
/* 操作記錄。*/
|
||||
$lang->bug->action = new stdclass();
|
||||
$lang->bug->action->resolved = array('main' => '$date, 由 <strong>$actor</strong> 解決,方案為 <strong>$extra</strong>。', 'extra' => $lang->bug->resolutionList);
|
||||
$lang->bug->action->tostory = array('main' => '$date, 由 <strong>$actor</strong> 轉為<strong>需求</strong>,編號為 <strong>$extra</strong>。');
|
||||
$lang->bug->action->totask = array('main' => '$date, 由 <strong>$actor</strong> 導入為<strong>任務</strong>,編號為 <strong>$extra</strong>。');
|
||||
$lang->bug->action->resolved = array('main' => '$date, 由 <strong>$actor</strong> 解決,方案為 <strong>$extra</strong>。', 'extra' => $lang->bug->resolutionList);
|
||||
$lang->bug->action->tostory = array('main' => '$date, 由 <strong>$actor</strong> 轉為<strong>需求</strong>,編號為 <strong>$extra</strong>。');
|
||||
$lang->bug->action->totask = array('main' => '$date, 由 <strong>$actor</strong> 導入為<strong>任務</strong>,編號為 <strong>$extra</strong>。');
|
||||
$lang->bug->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 關聯到計劃 <strong>$extra</strong>。');
|
||||
$lang->bug->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 從計劃 <strong>$extra</strong> 移除。');
|
||||
|
||||
$lang->bug->placeholder = new stdclass();
|
||||
$lang->bug->placeholder->mailto = '輸入用戶名自動選擇';
|
||||
$lang->bug->placeholder->chooseBuilds = '選擇相關版本...';
|
||||
|
||||
@@ -286,6 +286,7 @@ class bugModel extends model
|
||||
{
|
||||
$oldBug = $this->getByID($bugID);
|
||||
|
||||
$bug = new stdclass();
|
||||
$bug->lastEditedBy = $this->app->user->account;
|
||||
$bug->lastEditedDate = $now;
|
||||
$bug->type = $this->post->types[$bugID];
|
||||
|
||||
@@ -38,5 +38,3 @@ $lang->build->bugs = '已關聯Bug';
|
||||
|
||||
$lang->build->finishStories = '本次共完成需求%s個';
|
||||
$lang->build->resolvedBugs = '本次共解決Bug%s個';
|
||||
|
||||
$lang->build->notice = '版本請到[項目視圖]-[版本]創建。';
|
||||
|
||||
@@ -113,6 +113,7 @@ class buildModel extends model
|
||||
*/
|
||||
public function create($projectID)
|
||||
{
|
||||
$build = new stdclass();
|
||||
$build->stories = '';
|
||||
$build->bugs = '';
|
||||
|
||||
@@ -169,16 +170,20 @@ class buildModel extends model
|
||||
*/
|
||||
public function updateLinkedBug($build)
|
||||
{
|
||||
$bugs = $this->dao->select('*')->from(TABLE_BUG)->where('id')->in($build->bugs)->fetchAll();
|
||||
$bugs = empty($build->bugs) ? '' : $this->dao->select('*')->from(TABLE_BUG)->where('id')->in($build->bugs)->fetchAll();
|
||||
$now = helper::now();
|
||||
|
||||
$resolvedPairs = array();
|
||||
foreach($this->post->bugs as $key => $bugID)
|
||||
if(isset($_POST['bugs']))
|
||||
{
|
||||
if(isset($_POST['resolvedBy'][$key]))$resolvedPairs[$bugID] = $this->post->resolvedBy[$key];
|
||||
foreach($this->post->bugs as $key => $bugID)
|
||||
{
|
||||
if(isset($_POST['resolvedBy'][$key]))$resolvedPairs[$bugID] = $this->post->resolvedBy[$key];
|
||||
}
|
||||
}
|
||||
|
||||
$this->loadModel('action');
|
||||
if(!$bugs) return false;
|
||||
foreach($bugs as $bug)
|
||||
{
|
||||
if($bug->status == 'resolved') continue;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package ZenTaoPMS
|
||||
* @version $Id: zh-tw.php 5029 2013-07-06 03:00:01Z chencongzhi520@gmail.com $
|
||||
* @version $Id: zh-tw.php 5116 2013-07-12 06:37:48Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->arrow = '<span class="icon-arrow"> </span>';
|
||||
@@ -15,6 +15,7 @@ $lang->comma = ',';
|
||||
$lang->dot = '。';
|
||||
$lang->at = ' 于 ';
|
||||
$lang->downArrow = '↓';
|
||||
$lang->null = '空';
|
||||
|
||||
$lang->zentaoPMS = '禪道管理';
|
||||
$lang->welcome = "歡迎使用『%s』{$lang->colon} {$lang->zentaoPMS}";
|
||||
@@ -27,6 +28,7 @@ $lang->todayIs = '今天是%s,';
|
||||
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>時間: %s 毫秒, 內存: %s KB, 查詢: %s. </div></div>";
|
||||
|
||||
$lang->reset = '重填';
|
||||
$lang->refresh = '刷新';
|
||||
$lang->edit = '編輯';
|
||||
$lang->copy = '複製';
|
||||
$lang->delete = '刪除';
|
||||
@@ -137,10 +139,10 @@ $lang->my->menu = new stdclass();
|
||||
$lang->my->menu->account = '<span id="mybg"> </span>%s' . $lang->arrow;
|
||||
$lang->my->menu->index = '首頁|my|index';
|
||||
$lang->my->menu->todo = array('link' => '待辦|my|todo|', 'subModule' => 'todo');
|
||||
$lang->my->menu->task = '任務|my|task|';
|
||||
$lang->my->menu->bug = 'Bug|my|bug|';
|
||||
$lang->my->menu->testtask = array('link' => '測試|my|testtask|', 'alias' => 'testcase');
|
||||
$lang->my->menu->story = '需求|my|story|';
|
||||
$lang->my->menu->task = array('link' => '任務|my|task|', 'subModule' => 'task');
|
||||
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
|
||||
$lang->my->menu->testtask = array('link' => '測試|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
|
||||
$lang->my->menu->story = array('link' => '需求|my|story|', 'subModule' => 'story');
|
||||
$lang->my->menu->myProject = '項目|my|project|';
|
||||
$lang->my->menu->dynamic = '動態|my|dynamic|';
|
||||
$lang->my->menu->profile = array('link' => '檔案|my|profile|', 'alias' => 'editprofile');
|
||||
@@ -202,7 +204,7 @@ $lang->bug = new stdclass();
|
||||
$lang->bug->menu = new stdclass();
|
||||
|
||||
$lang->bug->menu->product = '%s';
|
||||
$lang->bug->menu->bug = array('link' => 'Bug|bug|browse|productID=%s', 'alias' => 'view,create,edit,resolve,close,activate,report,batchedit,confirmbug,assignto', 'subModule' => 'tree');
|
||||
$lang->bug->menu->bug = array('link' => 'Bug|bug|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,resolve,close,activate,report,batchedit,confirmbug,assignto', 'subModule' => 'tree');
|
||||
$lang->bug->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,edit');
|
||||
$lang->bug->menu->testtask = array('link' => '測試任務|testtask|browse|productID=%s');
|
||||
|
||||
@@ -211,7 +213,7 @@ $lang->testcase->menu = new stdclass();
|
||||
|
||||
$lang->testcase->menu->product = '%s';
|
||||
$lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
|
||||
$lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit', 'subModule' => 'tree');
|
||||
$lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport', 'subModule' => 'tree');
|
||||
$lang->testcase->menu->testtask = array('link' => '測試任務|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun');
|
||||
|
||||
$lang->testtask = new stdclass();
|
||||
@@ -254,7 +256,7 @@ $lang->company->menu->browseGroup = array('link' => '權限|group|browse', 'sub
|
||||
$lang->company->menu->view = array('link' => '公司|company|view', 'alias' => 'edit');
|
||||
$lang->company->menu->dynamic = '動態|company|dynamic|';
|
||||
$lang->company->menu->addGroup = array('link' => '<span class="icon-add"> </span>添加分組|group|create', 'float' => 'right');
|
||||
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-add"> </span>批量添加|user|batchCreate', 'subModule' => 'user', 'float' => 'right');
|
||||
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-add"> </span>批量添加|user|batchCreate|dept=%s', 'subModule' => 'user', 'float' => 'right');
|
||||
$lang->company->menu->addUser = array('link' => '<span class="icon-add"> </span>添加用戶|user|create|dept=%s', 'subModule' => 'user', 'float' => 'right');
|
||||
|
||||
$lang->dept = new stdclass();
|
||||
@@ -269,12 +271,12 @@ $lang->user->menu = $lang->company->menu;
|
||||
$lang->admin = new stdclass();
|
||||
$lang->admin->menu = new stdclass();
|
||||
$lang->admin->menu->index = array('link' => '首頁|admin|index');
|
||||
$lang->admin->menu->extension = array('link' => '插件|extension|browse', 'subModule' => 'extension');
|
||||
$lang->admin->menu->editor = array('link' => '擴展編輯器|editor|index', 'subModule' => 'editor');
|
||||
$lang->admin->menu->extension = array('link' => '擴展|extension|browse', 'subModule' => 'extension,editor');
|
||||
$lang->admin->menu->mail = array('link' => '發信|mail|index', 'subModule' => 'mail');
|
||||
$lang->admin->menu->clearData = array('link' => '清除數據|admin|cleardata');
|
||||
$lang->admin->menu->convert = array('link' => '導入|convert|index', 'subModule' => 'convert');
|
||||
$lang->admin->menu->trashes = array('link' => '資源回收筒|action|trash', 'subModule' => 'action');
|
||||
$lang->admin->menu->sso = array('link' => '單點登錄|sso|browse', 'subModule' => 'sso');
|
||||
|
||||
$lang->convert = new stdclass();
|
||||
$lang->upgrade = new stdclass();
|
||||
@@ -282,6 +284,7 @@ $lang->action = new stdclass();
|
||||
$lang->extension = new stdclass();
|
||||
$lang->editor = new stdclass();
|
||||
$lang->mail = new stdclass();
|
||||
$lang->sso = new stdclass();
|
||||
|
||||
$lang->convert->menu = $lang->admin->menu;
|
||||
$lang->upgrade->menu = $lang->admin->menu;
|
||||
@@ -289,6 +292,7 @@ $lang->action->menu = $lang->admin->menu;
|
||||
$lang->extension->menu = $lang->admin->menu;
|
||||
$lang->editor->menu = $lang->admin->menu;
|
||||
$lang->mail->menu = $lang->admin->menu;
|
||||
$lang->sso->menu = $lang->admin->menu;
|
||||
|
||||
/* 菜單分組。*/
|
||||
$lang->menugroup = new stdclass();
|
||||
@@ -311,6 +315,7 @@ $lang->menugroup->action = 'admin';
|
||||
$lang->menugroup->extension = 'admin';
|
||||
$lang->menugroup->editor = 'admin';
|
||||
$lang->menugroup->mail = 'admin';
|
||||
$lang->menugroup->sso = 'admin';
|
||||
|
||||
/* 錯誤提示信息。*/
|
||||
$lang->error = new stdclass();
|
||||
@@ -331,6 +336,7 @@ $lang->error->account = "『%s』應當為合法的用戶名。";
|
||||
$lang->error->passwordsame = "兩次密碼應當相等。";
|
||||
$lang->error->passwordrule = "密碼應該符合規則,長度至少為六位。";
|
||||
$lang->error->accessDenied = '您沒有訪問權限';
|
||||
$lang->error->noData = '沒有數據';
|
||||
|
||||
/* 分頁信息。*/
|
||||
$lang->pager = new stdclass();
|
||||
@@ -343,15 +349,16 @@ $lang->pager->last = "末頁";
|
||||
$lang->pager->locate = "GO!";
|
||||
|
||||
$lang->zentaoSite = "官方網站";
|
||||
$lang->chinaScrum = "<a href='http://www.zentao.net/goto.php?item=chinascrum' target='_blank'>Scrum社區</a> ";
|
||||
$lang->agileTraining = "<a href='http://www.zentao.net/goto.php?item=agiletrain' target='_blank'>培訓</a> ";
|
||||
$lang->donate = "<a href='http://www.zentao.net/goto.php?item=donate' target='_blank'>捐贈</a> ";
|
||||
$lang->proVersion = "<a href='http://www.zentao.net/goto.php?item=proversion&from=footer' target='_blank' class='red'>購買專業版(特惠)!</a> ";
|
||||
$lang->chinaScrum = "<a href='http://api.zentao.net/goto.php?item=chinascrum' target='_blank'>Scrum社區</a> ";
|
||||
$lang->agileTraining = "<a href='http://api.zentao.net/goto.php?item=agiletrain' target='_blank'>培訓</a> ";
|
||||
$lang->donate = "<a href='http://api.zentao.net/goto.php?item=donate' target='_blank'>捐贈</a> ";
|
||||
$lang->proVersion = "<a href='http://api.zentao.net/goto.php?item=proversion&from=footer' target='_blank' class='red'>購買專業版(特惠)!</a> ";
|
||||
$lang->downNotify = "下載桌面提醒";
|
||||
|
||||
$lang->suhosinInfo = "警告:數據太多,請在php.ini中修改<font color=red>sohusin.post.max_vars</font>和<font color=red>sohusin.request.max_vars</font>(設置更大的數)。 保存並重新啟動apache,否則會造成部分數據無法保存。";
|
||||
|
||||
$lang->noResultsMatch = "沒有匹配結果";
|
||||
$lang->noResultsMatch = "沒有匹配結果";
|
||||
$lang->chooseUsersToMail = "選擇要發信通知的用戶...";
|
||||
|
||||
/* 時間格式設置。*/
|
||||
define('DT_DATETIME1', 'Y-m-d H:i:s');
|
||||
|
||||
@@ -21,3 +21,7 @@ $lang->dept->users = "成員列表";
|
||||
|
||||
$lang->dept->saveButton = " 保存 (S) ";
|
||||
$lang->dept->confirmDelete = " 您確定刪除該部門嗎?";
|
||||
|
||||
$lang->dept->error = new stdclass();
|
||||
$lang->dept->error->hasSons = '該部門有子部門,不能刪除!';
|
||||
$lang->dept->error->hasUsers = '該部門有職員,不能刪除!';
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
<?php
|
||||
$lang->editor->common = '擴展編輯器';
|
||||
$lang->editor->common = '編輯器';
|
||||
$lang->editor->api = 'API';
|
||||
$lang->editor->index = '首頁';
|
||||
$lang->editor->newMethod = '新增方法';
|
||||
$lang->editor->extend = '擴展';
|
||||
$lang->editor->api = 'API';
|
||||
$lang->editor->newLang = '新增語言';
|
||||
$lang->editor->newConfig = '新增配置';
|
||||
$lang->editor->newHook = '新增鈎子';
|
||||
@@ -33,20 +35,9 @@ $lang->editor->notWritable = "無法寫入,可能沒有權限。請嘗試執
|
||||
$lang->editor->notDelete = '無法刪除,請檢查權限!';
|
||||
$lang->editor->emptyFileName = '請寫入一個檔案名!';
|
||||
|
||||
$lang->editor->translate['config.php'] = '配置檔案';
|
||||
$lang->editor->translate['config'] = '配置擴展';
|
||||
$lang->editor->translate['control.php'] = '控制檔案';
|
||||
$lang->editor->translate['control'] = '控制擴展';
|
||||
$lang->editor->translate['model.php'] = '模型檔案';
|
||||
$lang->editor->translate['model'] = '模型擴展';
|
||||
$lang->editor->translate['view'] = '模板檔案';
|
||||
$lang->editor->translate['lang'] = '語言檔案';
|
||||
$lang->editor->translate['en'] = '英文';
|
||||
$lang->editor->translate['zh-tw'] = '中文簡體';
|
||||
$lang->editor->translate['zh-tw'] = '中文繁體';
|
||||
$lang->editor->translate['js'] = 'JS腳本';
|
||||
$lang->editor->translate['css'] = 'CSS樣式';
|
||||
$lang->editor->translate['ext'] = '擴展檔案';
|
||||
$lang->editor->translate['config.php'] = 'config';
|
||||
$lang->editor->translate['control.php'] = 'control';
|
||||
$lang->editor->translate['model.php'] = 'model';
|
||||
|
||||
$lang->editor->modules['action'] = '系統日誌';
|
||||
$lang->editor->modules['admin'] = '後台管理';
|
||||
|
||||
@@ -63,6 +63,7 @@ $lang->extension->bySearch = 'Search';
|
||||
$lang->extension->byCategory = 'By Category';
|
||||
|
||||
$lang->extension->installFailed = '%s failed, the reason is:';
|
||||
$lang->extension->uninstallFailed = 'Uninstall failed, the reason is:';
|
||||
$lang->extension->installFinished = 'Good, the extension has been %s successfully.';
|
||||
$lang->extension->refreshPage = 'Refresh';
|
||||
$lang->extension->uninstallFinished = 'Extension has been successfully uninstalled.';
|
||||
@@ -97,3 +98,7 @@ $lang->extension->errorPackageNotFound = 'The package file <strong>%s </
|
||||
$lang->extension->errorTargetPathNotWritable = 'Target path <strong>%s </strong>not writable.';
|
||||
$lang->extension->errorTargetPathNotExists = 'Target path <strong>%s </strong>not exists';
|
||||
$lang->extension->errorInstallDB = 'Execute database sql failed, the error is: %s';
|
||||
$lang->extension->errorConflicts = 'With plug-in "%s" Conflict!';
|
||||
$lang->extension->errorDepends = 'The following dependency plugin is not installed or the version is incorrect:<br /><br /> %s';
|
||||
$lang->extension->errorIncompatible = 'The plug-in with your ZenTao incompatible version';
|
||||
$lang->extension->errorUninstallDepends = 'Plugin "%s" relying on the plug-in, can not uninstall';
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang->extension->name = '名稱';
|
||||
$lang->extension->code = '插件代號';
|
||||
$lang->extension->version = '版本';
|
||||
$lang->extension->compatible = '適用版本';
|
||||
$lang->extension->latest = '<small>最新版本<strong><a href="%s" target="_blank" class="extension">%s</a></strong>,兼容禪道<a href="http://www.zentao.net/goto.php?item=latest" target="_blank"><strong>%s</strong></small>';
|
||||
$lang->extension->latest = '<small>最新版本<strong><a href="%s" target="_blank" class="extension">%s</a></strong>,兼容禪道<a href="http://api.zentao.net/goto.php?item=latest" target="_blank"><strong>%s</strong></small>';
|
||||
$lang->extension->author = '作者';
|
||||
$lang->extension->license = '授權';
|
||||
$lang->extension->intro = '詳情';
|
||||
@@ -48,6 +48,7 @@ $lang->extension->downloads = '下載量';
|
||||
$lang->extension->public = '下載方式';
|
||||
$lang->extension->compatible = '兼容性';
|
||||
$lang->extension->grade = '評分';
|
||||
$lang->extension->depends = '依賴';
|
||||
|
||||
$lang->extension->publicList[0] = '手工下載';
|
||||
$lang->extension->publicList[1] = '直接下載';
|
||||
@@ -62,6 +63,7 @@ $lang->extension->bySearch = '搜索';
|
||||
$lang->extension->byCategory = '分類瀏覽';
|
||||
|
||||
$lang->extension->installFailed = '%s失敗,錯誤原因如下:';
|
||||
$lang->extension->uninstallFailed = '卸載失敗,錯誤原因如下:';
|
||||
$lang->extension->installFinished = '恭喜您,插件順利的%s成功!';
|
||||
$lang->extension->refreshPage = '刷新頁面';
|
||||
$lang->extension->uninstallFinished = '插件已經成功卸載';
|
||||
@@ -96,3 +98,7 @@ $lang->extension->errorPackageNotFound = '包檔案 <strong>%s </strong>
|
||||
$lang->extension->errorTargetPathNotWritable = '目標路徑 <strong>%s </strong>不可寫。';
|
||||
$lang->extension->errorTargetPathNotExists = '目標路徑 <strong>%s </strong>不存在。';
|
||||
$lang->extension->errorInstallDB = '執行資料庫語句失敗。錯誤信息如下:%s';
|
||||
$lang->extension->errorConflicts = '與插件“%s”衝突!';
|
||||
$lang->extension->errorDepends = '以下依賴插件沒有安裝或版本不正確:<br /><br /> %s';
|
||||
$lang->extension->errorIncompatible = '該插件與您的禪道版本不兼容';
|
||||
$lang->extension->errorUninstallDepends = '插件“%s”依賴該插件,不能卸載';
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
echo "{$lang->extension->compatible}: {$lang->extension->compatibleList[$currentRelease->compatible]} ";
|
||||
echo "{$lang->extension->grade}: ", html::printStars($extension->stars);
|
||||
echo " {$lang->extension->depends}: ";
|
||||
if($currentRelease->depends)
|
||||
if(!empty($currentRelease->depends))
|
||||
{
|
||||
foreach(json_decode($currentRelease->depends) as $code => $limit)
|
||||
{
|
||||
|
||||
@@ -159,6 +159,8 @@ $lang->resource->story->batchClose = 'batchClose';
|
||||
$lang->resource->story->activate = 'lblActivate';
|
||||
$lang->resource->story->tasks = 'tasks';
|
||||
$lang->resource->story->report = 'reportChart';
|
||||
$lang->resource->story->batchChangePlan = 'batchChangePlan';
|
||||
$lang->resource->story->batchChangeStage = 'batchChangeStage';
|
||||
|
||||
$lang->story->methodOrder[5] = 'create';
|
||||
$lang->story->methodOrder[10] = 'batchCreate';
|
||||
@@ -398,6 +400,9 @@ $lang->resource->testcase->edit = 'edit';
|
||||
$lang->resource->testcase->batchEdit = 'batchEdit';
|
||||
$lang->resource->testcase->delete = 'delete';
|
||||
$lang->resource->testcase->export = 'export';
|
||||
$lang->resource->testcase->exportTemplet = 'exportTemplet';
|
||||
$lang->resource->testcase->import = 'import';
|
||||
$lang->resource->testcase->showImport = 'showImport';
|
||||
$lang->resource->testcase->confirmChange = 'confirmChange';
|
||||
$lang->resource->testcase->confirmStoryChange = 'confirmStoryChange';
|
||||
|
||||
@@ -750,6 +755,7 @@ $lang->resource->action->trash = 'trash';
|
||||
$lang->resource->action->undelete = 'undelete';
|
||||
$lang->resource->action->hideOne = 'hideOne';
|
||||
$lang->resource->action->hideAll = 'hideAll';
|
||||
$lang->resource->action->editComment = 'editComment';
|
||||
|
||||
$lang->action->methodOrder[5] = 'trash';
|
||||
$lang->action->methodOrder[10] = 'undelete';
|
||||
|
||||
@@ -224,7 +224,8 @@ class groupModel extends model
|
||||
{
|
||||
foreach($moduleActions as $actionName)
|
||||
{
|
||||
$data->group = $groupID;
|
||||
$data = new stdclass();
|
||||
$data->group = $groupID;
|
||||
$data->module = $moduleName;
|
||||
$data->method = $actionName;
|
||||
$this->dao->replace(TABLE_GROUPPRIV)->data($data)->exec();
|
||||
@@ -244,7 +245,8 @@ class groupModel extends model
|
||||
{
|
||||
foreach($moduleActions as $actionName)
|
||||
{
|
||||
$data->group = $groupID;
|
||||
$data = new stdclass();
|
||||
$data->group = $groupID;
|
||||
$data->module = $moduleName;
|
||||
$data->method = $actionName;
|
||||
$this->dao->insert(TABLE_GROUPPRIV)->data($data)->exec();
|
||||
@@ -268,6 +270,7 @@ class groupModel extends model
|
||||
{
|
||||
foreach($this->post->groups as $group)
|
||||
{
|
||||
$data = new stdclass();
|
||||
$data->group = $group;
|
||||
$data->module = $this->post->module;
|
||||
$data->method = $action;
|
||||
@@ -293,6 +296,7 @@ class groupModel extends model
|
||||
if($this->post->members == false) return;
|
||||
foreach($this->post->members as $account)
|
||||
{
|
||||
$data = new stdclass();
|
||||
$data->account = $account;
|
||||
$data->group = $groupID;
|
||||
$this->dao->insert(TABLE_USERGROUP)->data($data)->exec();
|
||||
|
||||
@@ -102,8 +102,6 @@ $lang->install->errorNotSaveConfig = '還沒有保存配置檔案';
|
||||
|
||||
$lang->install->getPriv = '設置帳號';
|
||||
$lang->install->company = '公司名稱';
|
||||
$lang->install->pms = 'PMS地址';
|
||||
$lang->install->pmsNote = '即通過什麼地址可以訪問到禪道項目管理,設置域名或者IP地址即可,不需要http';
|
||||
$lang->install->account = '管理員帳號';
|
||||
$lang->install->password = '管理員密碼';
|
||||
$lang->install->errorEmptyPassword = '密碼不能為空';
|
||||
|
||||
@@ -5,6 +5,7 @@ $lang->mail->detect = '檢測';
|
||||
$lang->mail->edit = '編輯配置';
|
||||
$lang->mail->save = '成功保存';
|
||||
$lang->mail->test = '測試發信';
|
||||
$lang->mail->reset = '重置';
|
||||
|
||||
$lang->mail->turnon = '是否打開';
|
||||
$lang->mail->fromAddress = '發信郵箱';
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package misc
|
||||
* @version $Id: zh-tw.php 4129 2013-01-18 01:58:14Z wwccss $
|
||||
* @version $Id: zh-tw.php 5128 2013-07-13 08:59:49Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->misc = new stdclass();
|
||||
@@ -46,4 +46,5 @@ $lang->misc->zentao->service['install'] = '禪道安裝服務';
|
||||
$lang->misc->zentao->service['fixissue'] = '禪道問題解決';
|
||||
$lang->misc->zentao->service['servicemore']= '更多服務...';
|
||||
|
||||
$lang->misc->noGDLib = "找不到GD庫,請用手機瀏覽器直接訪問:%s";
|
||||
$lang->misc->copyright = "版權所有 ©2009-2013 <a href='http://www.cnezsoft.com' target='_blank'>青島易軟天創網絡科技有限公司</a>";
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<td><?php echo $users[$case->lastRunner];?></td>
|
||||
<td><?php if(!helper::isZeroDate($case->lastRunDate)) echo date(DT_MONTHTIME1, strtotime($case->lastRunDate));?></td>
|
||||
<td class='<?php echo $case->lastRunResult;?>'><?php if($case->lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?></td>
|
||||
<td class='<?php echo $run->status;?>'><?php echo $lang->testcase->statusList[$case->status];?></td>
|
||||
<td class='<?php if(isset($run)) echo $run->status;?>'><?php echo $lang->testcase->statusList[$case->status];?></td>
|
||||
<td>
|
||||
<?php
|
||||
common::printIcon('testtask', 'runCase', "runID=0&caseID=$case->id&version=$case->version", '', 'list', '', '', 'iframe');
|
||||
|
||||
@@ -6,23 +6,24 @@
|
||||
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package product
|
||||
* @version $Id: zh-tw.php 5029 2013-07-06 03:00:01Z chencongzhi520@gmail.com $
|
||||
* @version $Id: zh-tw.php 5091 2013-07-10 06:06:46Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->product->common = '產品視圖';
|
||||
$lang->product->index = "產品首頁";
|
||||
$lang->product->browse = "瀏覽產品";
|
||||
$lang->product->dynamic= "動態";
|
||||
$lang->product->view = "產品信息";
|
||||
$lang->product->edit = "編輯產品";
|
||||
$lang->product->create = "新增產品";
|
||||
$lang->product->read = "產品詳情";
|
||||
$lang->product->delete = "刪除產品";
|
||||
$lang->product->close = "關閉";
|
||||
$lang->product->select = '--請選擇產品--';
|
||||
$lang->product->mine = '我負責:';
|
||||
$lang->product->other = '其他:';
|
||||
$lang->product->closed = '已關閉»';
|
||||
$lang->product->common = '產品視圖';
|
||||
$lang->product->index = "產品首頁";
|
||||
$lang->product->browse = "瀏覽產品";
|
||||
$lang->product->dynamic = "動態";
|
||||
$lang->product->view = "產品信息";
|
||||
$lang->product->edit = "編輯產品";
|
||||
$lang->product->batchEdit = "批量編輯";
|
||||
$lang->product->create = "新增產品";
|
||||
$lang->product->read = "產品詳情";
|
||||
$lang->product->delete = "刪除產品";
|
||||
$lang->product->close = "關閉";
|
||||
$lang->product->select = '--請選擇產品--';
|
||||
$lang->product->mine = '我負責:';
|
||||
$lang->product->other = '其他:';
|
||||
$lang->product->closed = '已關閉»';
|
||||
|
||||
$lang->product->basicInfo = '基本信息';
|
||||
$lang->product->otherInfo = '其他信息';
|
||||
@@ -86,5 +87,5 @@ $lang->product->aclList['open'] = '預設設置(有產品視圖權限,即
|
||||
$lang->product->aclList['private'] = '私有產品(只有項目團隊成員才能訪問)';
|
||||
$lang->product->aclList['custom'] = '自定義白名單(團隊成員和白名單的成員可以訪問)';
|
||||
|
||||
$lang->product->storySummary = "本頁共 <strong>%s</strong> 個需求,預計 <strong>%s</strong> 個工時。";
|
||||
$lang->product->noMatchedProduct = '找不到與"%s"相關的產品';
|
||||
$lang->product->storySummary = "本頁共 <strong>%s</strong> 個需求,預計 <strong>%s</strong> 個工時,用例覆蓋率<strong>%s</strong>。";
|
||||
$lang->product->noMatched = '找不到包含"%s"的產品';
|
||||
|
||||
@@ -604,8 +604,9 @@ class productModel extends model
|
||||
}
|
||||
|
||||
$cases = $this->dao->select('DISTINCT story')->from(TABLE_CASE)->where('story')->in($storyIDs)->fetchAll();
|
||||
$rate = count($stories) == 0 ? 0 : round(count($cases) / count($stories), 2);
|
||||
|
||||
return sprintf($this->lang->product->storySummary, count($stories), $totalEstimate, round(count($cases) / count($stories), 2) * 100 . "%");
|
||||
return sprintf($this->lang->product->storySummary, count($stories), $totalEstimate, $rate * 100 . "%");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -9,23 +9,32 @@
|
||||
* @version $Id: zh-tw.php 4659 2013-04-17 06:45:08Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->productplan->common = '產品計劃';
|
||||
$lang->productplan->browse = "瀏覽計劃";
|
||||
$lang->productplan->index = "計劃列表";
|
||||
$lang->productplan->create = "創建計劃";
|
||||
$lang->productplan->edit = "編輯計劃";
|
||||
$lang->productplan->delete = "刪除計劃";
|
||||
$lang->productplan->view = "計劃詳情";
|
||||
$lang->productplan->common = '產品計劃';
|
||||
$lang->productplan->browse = "瀏覽計劃";
|
||||
$lang->productplan->index = "計劃列表";
|
||||
$lang->productplan->create = "創建計劃";
|
||||
$lang->productplan->edit = "編輯計劃";
|
||||
$lang->productplan->delete = "刪除計劃";
|
||||
$lang->productplan->view = "計劃詳情";
|
||||
$lang->productplan->bugSummary = "本頁共 <strong>%s</strong> 個Bug";
|
||||
$lang->productplan->basicInfo = '基本信息';
|
||||
|
||||
$lang->productplan->batchUnlink = "批量移除";
|
||||
$lang->productplan->linkStory = "關聯需求";
|
||||
$lang->productplan->unlinkStory = "移除需求";
|
||||
$lang->productplan->batchUnlinkStory = "批量移除";
|
||||
$lang->productplan->batchUnlinkStory = "批量移除需求";
|
||||
$lang->productplan->linkedStories = '已關聯需求列表';
|
||||
$lang->productplan->unlinkedStories = '未關聯需求列表';
|
||||
|
||||
$lang->productplan->linkBug = "關聯Bug";
|
||||
$lang->productplan->unlinkBug = "移除Bug";
|
||||
$lang->productplan->batchUnlinkBug = "批量移除Bug";
|
||||
$lang->productplan->linkedBugs = '已關聯Bug列表';
|
||||
$lang->productplan->unlinkedBugs = '未關聯Bug列表';
|
||||
|
||||
$lang->productplan->confirmDelete = "您確認刪除該計劃嗎?";
|
||||
$lang->productplan->confirmUnlinkStory = "您確認移除該需求嗎?";
|
||||
|
||||
$lang->productplan->basicInfo ='基本信息';
|
||||
$lang->productplan->confirmUnlinkBug = "您確認移除該Bug嗎?";
|
||||
|
||||
$lang->productplan->id = '編號';
|
||||
$lang->productplan->product = '產品';
|
||||
|
||||
@@ -713,7 +713,7 @@ class project extends control
|
||||
$baselineJSON = '[]';
|
||||
if($projectInfo->days <= $maxDays)
|
||||
{
|
||||
$firstBurn = reset($sets);
|
||||
$firstBurn = empty($sets) ? 0 : reset($sets);
|
||||
$firstTime = isset($firstBurn->value) ? $firstBurn->value : 0;
|
||||
$days = count($dateList) - 1;
|
||||
$rate = $firstTime / $days;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package project
|
||||
* @version $Id: zh-tw.php 5029 2013-07-06 03:00:01Z chencongzhi520@gmail.com $
|
||||
* @version $Id: zh-tw.php 5094 2013-07-10 08:46:15Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
/* 欄位列表。*/
|
||||
@@ -118,6 +118,7 @@ $lang->project->copy = "複製項目";
|
||||
$lang->project->delete = "刪除項目";
|
||||
$lang->project->browse = "瀏覽項目";
|
||||
$lang->project->edit = "編輯項目";
|
||||
$lang->project->batchEdit = "批量編輯";
|
||||
$lang->project->manageMembers = '團隊管理';
|
||||
$lang->project->unlinkMember = '移除成員';
|
||||
$lang->project->unlinkStory = '移除需求';
|
||||
@@ -162,23 +163,23 @@ $lang->project->aboveAllProduct = '以上所有產品';
|
||||
$lang->project->aboveAllProject = '以上所有項目';
|
||||
|
||||
/* 頁面提示。*/
|
||||
$lang->project->selectProject = "請選擇項目";
|
||||
$lang->project->beginAndEnd = '起止時間';
|
||||
$lang->project->lblStats = '工時統計';
|
||||
$lang->project->stats = '可用工時<strong>%s</strong>工時<br />總共預計<strong>%s</strong>工時<br />已經消耗<strong>%s</strong>工時<br />預計剩餘<strong>%s</strong>工時';
|
||||
$lang->project->oneLineStats = "項目<strong>%s</strong>, 代號為<strong>%s</strong>, 相關產品為<strong>%s</strong>,<strong>%s</strong>開始,<strong>%s</strong>結束,總預計<strong>%s</strong>工時,已消耗<strong>%s</strong>工時,預計剩餘<strong>%s</strong>工時。";
|
||||
$lang->project->taskSummary = "本頁共 <strong>%s</strong> 個任務,未開始<strong>%s</strong>,進行中<strong>%s</strong>,總預計<strong>%s</strong>工時,已消耗<strong>%s</strong>工時,剩餘<strong>%s</strong>工時。";
|
||||
$lang->project->memberHours = "%s共有 <strong>%s</strong> 個可用工時,";
|
||||
$lang->project->groupSummary = "本組共 <strong>%s</strong> 個任務,未開始<strong>%s</strong>,進行中<strong>%s</strong>,總預計<strong>%s</strong>工時,已消耗<strong>%s</strong>工時,剩餘<strong>%s</strong>工時。";
|
||||
$lang->project->wbs = "分解任務";
|
||||
$lang->project->batchWBS = "批量分解";
|
||||
$lang->project->largeBurnChart = '點擊查看大圖';
|
||||
$lang->project->howToUpdateBurn = "<a href='http://www.zentao.net/goto.php?item=burndown&lang=zh-tw' target='_blank'>如何更新?</a>";
|
||||
$lang->project->whyNoStories = "看起來沒有需求可以關聯。請檢查下項目關聯的產品中有沒有需求,而且要確保它們已經審核通過。";
|
||||
$lang->project->doneProjects = '已結束';
|
||||
$lang->project->unDoneProjects = '未結束';
|
||||
$lang->project->copyTeam = '複製團隊';
|
||||
$lang->product->noMatchedProject = '找不到與"%s"相關的項目';
|
||||
$lang->project->selectProject = "請選擇項目";
|
||||
$lang->project->beginAndEnd = '起止時間';
|
||||
$lang->project->lblStats = '工時統計';
|
||||
$lang->project->stats = '可用工時<strong>%s</strong>工時<br />總共預計<strong>%s</strong>工時<br />已經消耗<strong>%s</strong>工時<br />預計剩餘<strong>%s</strong>工時';
|
||||
$lang->project->oneLineStats = "項目<strong>%s</strong>, 代號為<strong>%s</strong>, 相關產品為<strong>%s</strong>,<strong>%s</strong>開始,<strong>%s</strong>結束,總預計<strong>%s</strong>工時,已消耗<strong>%s</strong>工時,預計剩餘<strong>%s</strong>工時。";
|
||||
$lang->project->taskSummary = "本頁共 <strong>%s</strong> 個任務,未開始<strong>%s</strong>,進行中<strong>%s</strong>,總預計<strong>%s</strong>工時,已消耗<strong>%s</strong>工時,剩餘<strong>%s</strong>工時。";
|
||||
$lang->project->memberHours = "%s共有 <strong>%s</strong> 個可用工時,";
|
||||
$lang->project->groupSummary = "本組共 <strong>%s</strong> 個任務,未開始<strong>%s</strong>,進行中<strong>%s</strong>,總預計<strong>%s</strong>工時,已消耗<strong>%s</strong>工時,剩餘<strong>%s</strong>工時。";
|
||||
$lang->project->wbs = "分解任務";
|
||||
$lang->project->batchWBS = "批量分解";
|
||||
$lang->project->largeBurnChart = '點擊查看大圖';
|
||||
$lang->project->howToUpdateBurn = "<a href='http://api.zentao.net/goto.php?item=burndown&lang=zh-tw' target='_blank'>如何更新?</a>";
|
||||
$lang->project->whyNoStories = "看起來沒有需求可以關聯。請檢查下項目關聯的產品中有沒有需求,而且要確保它們已經審核通過。";
|
||||
$lang->project->doneProjects = '已結束';
|
||||
$lang->project->unDoneProjects = '未結束';
|
||||
$lang->project->copyTeam = '複製團隊';
|
||||
$lang->product->noMatched = '找不到包含"%s"的項目';
|
||||
|
||||
/* 交互提示。*/
|
||||
$lang->project->confirmDelete = '您確定刪除項目[%s]嗎?';
|
||||
@@ -191,7 +192,10 @@ $lang->project->afterInfo = '項目添加成功,您現在可以進
|
||||
$lang->project->setTeam = '設置團隊';
|
||||
$lang->project->linkStory = '關聯需求';
|
||||
$lang->project->createTask = '添加任務';
|
||||
$lang->project->goback = '返回項目首頁(5秒後將自動跳轉)';
|
||||
$lang->project->goback = '返回項目首頁';
|
||||
$lang->project->linkProduct = '選擇產品關聯...';
|
||||
$lang->project->withWeekend = '顯示周末';
|
||||
$lang->project->noWeekend = '去除周末';
|
||||
|
||||
/* 統計。*/
|
||||
$lang->project->charts = new stdclass();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php include '../../common/view/dropmenu.html.php';?>
|
||||
<?php include $this->app->getModuleRoot() . 'common/view/dropmenu.html.php';?>
|
||||
<div id='featurebar'>
|
||||
<div class='f-left'>
|
||||
<?php
|
||||
|
||||
@@ -9,5 +9,6 @@
|
||||
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->qa = new stdclass();
|
||||
$lang->qa->common = 'Test';
|
||||
$lang->qa->index = "Index";
|
||||
|
||||
@@ -9,5 +9,6 @@
|
||||
* @version $Id: zh-cn.php 4129 2013-01-18 01:58:14Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->qa = new stdclass();
|
||||
$lang->qa->common = '测试视图';
|
||||
$lang->qa->index = "测试首页";
|
||||
|
||||
@@ -9,5 +9,6 @@
|
||||
* @version $Id: zh-tw.php 4129 2013-01-18 01:58:14Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->qa = new stdclass();
|
||||
$lang->qa->common = '測試視圖';
|
||||
$lang->qa->index = "測試首頁";
|
||||
|
||||
@@ -98,7 +98,7 @@ class releaseModel extends model
|
||||
|
||||
$this->dao->insert(TABLE_RELEASE)->data($release)->autoCheck()->batchCheck($this->config->release->create->requiredFields, 'notempty')->check('name','unique')->exec();
|
||||
$releaseID = $this->dao->lastInsertID();
|
||||
$this->dao->update(TABLE_STORY)->set('stage')->eq('released')->where('id')->in($release->stories)->exec();
|
||||
if($release->stories) $this->dao->update(TABLE_STORY)->set('stage')->eq('released')->where('id')->in($release->stories)->exec();
|
||||
if(!dao::isError()) return $releaseID;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package report
|
||||
* @version $Id: zh-tw.php 4955 2013-07-02 01:47:21Z chencongzhi520@gmail.com $
|
||||
* @version $Id: zh-tw.php 5080 2013-07-10 00:46:59Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->report->common = '統計視圖';
|
||||
@@ -69,7 +69,7 @@ $lang->report->taskTotal = "總任務數";
|
||||
$lang->report->manhourTotal = "總工時";
|
||||
$lang->report->bugTotal = "共%s個Bug";
|
||||
$lang->report->validRate = "有效率";
|
||||
$lang->report->validRateTips = "方案為已解決或延期/狀態為已解決";
|
||||
$lang->report->validRateTips = "方案為已解決或延期/狀態為已解決或已關閉";
|
||||
$lang->report->unplanned = '未計劃';
|
||||
|
||||
/* daily reminder. */
|
||||
@@ -84,4 +84,4 @@ $lang->report->mailtitle->bug = " Bugs(%s),";
|
||||
$lang->report->mailtitle->task = " 任務(%s),";
|
||||
$lang->report->mailtitle->todo = " 待辦(%s),";
|
||||
|
||||
$lang->report->proVersion = '<a href="http://www.zentao.net/goto.php?item=proversion&from=reportpage" target="_blank">更多精彩,盡在專業版!</a>';
|
||||
$lang->report->proVersion = '<a href="http://api.zentao.net/goto.php?item=proversion&from=reportpage" target="_blank">更多精彩,盡在專業版!</a>';
|
||||
|
||||
@@ -288,6 +288,7 @@ EOT;
|
||||
{
|
||||
if($bug->project)
|
||||
{
|
||||
$projects[$bug->project] = new stdclass();
|
||||
$projects[$bug->project]->bugs = isset($projects[$bug->project]->bugs) ? $projects[$bug->project]->bugs + 1 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
<?php
|
||||
$config->sso->create = new stdclass();
|
||||
$config->sso->create->requiredFields = 'title,code,key,ip';
|
||||
$config->sso->edit = new stdclass();
|
||||
$config->sso->edit->requiredFields = 'title,key,ip';
|
||||
|
||||
@@ -9,7 +9,7 @@ class sso extends control
|
||||
*/
|
||||
public function browse()
|
||||
{
|
||||
$this->view->title = $this->lang->sso->common . $lang->colon . $this->lang->sso->browse;
|
||||
$this->view->title = $this->lang->sso->common . $this->lang->colon . $this->lang->sso->browse;
|
||||
$this->view->position[] = $this->lang->sso->common;
|
||||
$this->view->position[] = $this->lang->sso->browse;
|
||||
$this->view->auths = $this->sso->getAuths();
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
.instruction {margin-top:20px; padding:0 30px;}
|
||||
+27
-8
@@ -1,20 +1,20 @@
|
||||
<?php
|
||||
$lang->sso->common = 'SSO';
|
||||
$lang->sso->browse = 'Auth list';
|
||||
$lang->sso->create = 'Create auth';
|
||||
$lang->sso->edit = 'Edit auth';
|
||||
$lang->sso->delete = 'Delete auth';
|
||||
$lang->sso->browse = 'App list';
|
||||
$lang->sso->create = 'Create App';
|
||||
$lang->sso->edit = 'Edit App';
|
||||
$lang->sso->delete = 'Delete App';
|
||||
$lang->sso->code = 'Code';
|
||||
$lang->sso->title = 'Name';
|
||||
$lang->sso->key = 'Key';
|
||||
$lang->sso->ip = 'IP list';
|
||||
$lang->sso->createKey = 'Get new key';
|
||||
$lang->sso->createKey = 'New one';
|
||||
|
||||
$lang->sso->confirmDelete = 'Are you sure to delete this auth?';
|
||||
$lang->sso->confirmDelete = 'Are you sure to delete this App?';
|
||||
|
||||
$lang->sso->note = new stdClass();
|
||||
$lang->sso->note->title = 'site name';
|
||||
$lang->sso->note->code = 'site code';
|
||||
$lang->sso->note->title = 'app name';
|
||||
$lang->sso->note->code = 'app code';
|
||||
$lang->sso->note->ip = "Use comma between two IPs, and support IP segment, for example 192.168.1.*";
|
||||
|
||||
$lang->sso->error = new stdClass();
|
||||
@@ -22,3 +22,22 @@ $lang->sso->error->title = 'Please input name';
|
||||
$lang->sso->error->code = 'Please input code';
|
||||
$lang->sso->error->key = 'Please input key';
|
||||
$lang->sso->error->ip = 'Please input IP';
|
||||
|
||||
$lang->sso->instruction = <<<EOT
|
||||
<p><strong>Example</strong>:Name is 'Test'", Code is 'test', Key is '20c8eb0d522d2e1a09d4ea18e4df3a59',IP list is "192.168.11.*,127.0.0.1"。</p>
|
||||
<p><strong>1.User Auth</strong></p>
|
||||
<p>Application request API of user auth, check if the account and password is correct, to realize single sign-on (SSO).</p>
|
||||
<p>The API is from sso module, auth method. POST data is account and encrypted string [md5(md5(password) + key)]. Return user info(json) if success, return fail if fail.</p>
|
||||
<p>Example: url is 'http:://www.demo.com/sso-auth-test',POST string is 'account=admin&authcode=c44c577432230ad8e67160d3f9f0b91c'.</p>
|
||||
<p> Note: 'test' is App code, 'c44c577432230ad8e67160d3f9f0b91' is md5(md5('123456') + '20c8eb0d522d2e1a09d4ea18e4df3a59')</p>
|
||||
<p><strong>2.Get User List</strong></p>
|
||||
<p>Application request API of user list, get all user info of zentao.</p>
|
||||
<p>The API if from sso module, users method. POST data is key. Return user list (json) if success, return fail if fail.</p>
|
||||
<p>Example:url is 'http:://www.demo.com/sso-users-test', POST string is 'key=20c8eb0d522d2e1a09d4ea18e4df3a59'.</p>
|
||||
<p> Note: 'test' is App code, '20c8eb0d522d2e1a09d4ea18e4df3a59' is App key.</p>
|
||||
<p><strong>3.Get Dept List</strong></p>
|
||||
<p>Application request API of dept list, get all dept info of zentao.</p>
|
||||
<p>The API if from sso module, depts method. POST data is key. Return dept list (json) if success, return fail if fail.</p>
|
||||
<p>Example:url is 'http:://www.demo.com/sso-depts-test', POST string is 'key=20c8eb0d522d2e1a09d4ea18e4df3a59'.</p>
|
||||
<p> Note: 'test' is App code, '20c8eb0d522d2e1a09d4ea18e4df3a59' is App key.</p>
|
||||
EOT;
|
||||
|
||||
@@ -1,24 +1,43 @@
|
||||
<?php
|
||||
$lang->sso->common = '单点登录';
|
||||
$lang->sso->browse = '授权列表';
|
||||
$lang->sso->create = '创建授权';
|
||||
$lang->sso->edit = '编辑授权';
|
||||
$lang->sso->delete = '删除授权';
|
||||
$lang->sso->browse = '应用列表';
|
||||
$lang->sso->create = '添加应用';
|
||||
$lang->sso->edit = '编辑应用';
|
||||
$lang->sso->delete = '删除应用';
|
||||
$lang->sso->code = '代号';
|
||||
$lang->sso->title = '名称';
|
||||
$lang->sso->key = '密钥';
|
||||
$lang->sso->ip = 'IP列表';
|
||||
$lang->sso->createKey = '重新生成密钥';
|
||||
|
||||
$lang->sso->confirmDelete = '您确定删除该授权吗?';
|
||||
$lang->sso->confirmDelete = '您确定删除该应用吗?';
|
||||
|
||||
$lang->sso->note = new stdClass();
|
||||
$lang->sso->note->title = '授权站点名称';
|
||||
$lang->sso->note->code = '授权站点代号';
|
||||
$lang->sso->note->ip = "允许该站点使用这些ip访问,多个ip使用逗号隔开。支持IP段,如192.168.1.*";
|
||||
$lang->sso->note->title = '授权应用名称';
|
||||
$lang->sso->note->code = '授权应用代号';
|
||||
$lang->sso->note->ip = "允许该应用使用这些ip访问,多个ip使用逗号隔开。支持IP段,如192.168.1.*";
|
||||
|
||||
$lang->sso->error = new stdClass();
|
||||
$lang->sso->error->title = '名称不能为空';
|
||||
$lang->sso->error->code = '代号不能为空';
|
||||
$lang->sso->error->key = '密钥不能为空';
|
||||
$lang->sso->error->ip = 'IP列表不能为空';
|
||||
|
||||
$lang->sso->instruction = <<<EOT
|
||||
<p><strong>示例应用</strong>:名称为"测试",代号为"test",密钥为"20c8eb0d522d2e1a09d4ea18e4df3a59",IP列表为"192.168.11.*,127.0.0.1"。</p>
|
||||
<p><strong>1.用户验证</strong></p>
|
||||
<p>授权应用请求禅道的用户验证API,检查用户在该应用输入的用户名和密码是否正确,实现单点登录。</p>
|
||||
<p>API地址为sso模块的auth方法,POST数据为登录用户的用户名account和密码与密钥形成的加密字符串md5(md5(password) + key),成功则返回用户信息(json格式),失败则返回fail。</p>
|
||||
<p>示例:请求地址 http:://www.demo.com/sso-auth-test,POST字符串 account=admin&authcode=c44c577432230ad8e67160d3f9f0b91c。</p>
|
||||
<p> 注:test为应用代号,c44c577432230ad8e67160d3f9f0b91为md5(md5('123456') + '20c8eb0d522d2e1a09d4ea18e4df3a59')</p>
|
||||
<p><strong>2.获取用户列表</strong></p>
|
||||
<p>授权应用访问禅道的用户列表API,获取禅道所有用户信息。</p>
|
||||
<p>API地址为sso模块的users方法,POST数据为应用密钥,成功返回用户列表(json格式),失败返回fail。</p>
|
||||
<p>示例:请求地址 http:://www.demo.com/sso-users-test,POST字符串 key=20c8eb0d522d2e1a09d4ea18e4df3a59。</p>
|
||||
<p> 注:test为应用代号,20c8eb0d522d2e1a09d4ea18e4df3a59为应用密钥</p>
|
||||
<p><strong>3.获取部门列表</strong></p>
|
||||
<p>授权应用访问禅道的部门列表API,获取禅道所有部门信息。</p>
|
||||
<p>API地址为sso模块的depts方法,POST数据为应用密钥,成功返回用户列表(json格式),失败返回fail。</p>
|
||||
<p>示例:请求地址 http:://www.demo.com/sso-depts-test,POST字符串 key=20c8eb0d522d2e1a09d4ea18e4df3a59。</p>
|
||||
<p> 注:test为应用代号,20c8eb0d522d2e1a09d4ea18e4df3a59为应用密钥</p>
|
||||
EOT;
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
$lang->sso->common = '單點登錄';
|
||||
$lang->sso->browse = '應用列表';
|
||||
$lang->sso->create = '添加應用';
|
||||
$lang->sso->edit = '編輯應用';
|
||||
$lang->sso->delete = '刪除應用';
|
||||
$lang->sso->code = '代號';
|
||||
$lang->sso->title = '名稱';
|
||||
$lang->sso->key = '密鑰';
|
||||
$lang->sso->ip = 'IP列表';
|
||||
$lang->sso->createKey = '重新生成密鑰';
|
||||
|
||||
$lang->sso->confirmDelete = '您確定刪除該應用嗎?';
|
||||
|
||||
$lang->sso->note = new stdClass();
|
||||
$lang->sso->note->title = '授權應用名稱';
|
||||
$lang->sso->note->code = '授權應用代號';
|
||||
$lang->sso->note->ip = "允許該應用使用這些ip訪問,多個ip使用逗號隔開。支持IP段,如192.168.1.*";
|
||||
|
||||
$lang->sso->error = new stdClass();
|
||||
$lang->sso->error->title = '名稱不能為空';
|
||||
$lang->sso->error->code = '代號不能為空';
|
||||
$lang->sso->error->key = '密鑰不能為空';
|
||||
$lang->sso->error->ip = 'IP列表不能為空';
|
||||
|
||||
$lang->sso->instruction = <<<EOT
|
||||
<p><strong>示例應用</strong>:名稱為"測試",代號為"test",密鑰為"20c8eb0d522d2e1a09d4ea18e4df3a59",IP列表為"192.168.11.*,127.0.0.1"。</p>
|
||||
<p><strong>1.用戶驗證</strong></p>
|
||||
<p>授權應用請求禪道的用戶驗證API,檢查用戶在該應用輸入的用戶名和密碼是否正確,實現單點登錄。</p>
|
||||
<p>API地址為sso模組的auth方法,POST數據為登錄用戶的用戶名account和密碼與密鑰形成的加密字元串md5(md5(password) + key),成功則返回用戶信息(json格式),失敗則返回fail。</p>
|
||||
<p>示例:請求地址 http:://www.demo.com/sso-auth-test,POST字元串 account=admin&authcode=c44c577432230ad8e67160d3f9f0b91c。</p>
|
||||
<p> 註:test為應用代號,c44c577432230ad8e67160d3f9f0b91為md5(md5('123456') + '20c8eb0d522d2e1a09d4ea18e4df3a59')</p>
|
||||
<p><strong>2.獲取用戶列表</strong></p>
|
||||
<p>授權應用訪問禪道的用戶列表API,獲取禪道所有用戶信息。</p>
|
||||
<p>API地址為sso模組的users方法,POST數據為應用密鑰,成功返回用戶列表(json格式),失敗返回fail。</p>
|
||||
<p>示例:請求地址 http:://www.demo.com/sso-users-test,POST字元串 key=20c8eb0d522d2e1a09d4ea18e4df3a59。</p>
|
||||
<p> 註:test為應用代號,20c8eb0d522d2e1a09d4ea18e4df3a59為應用密鑰</p>
|
||||
<p><strong>3.獲取部門列表</strong></p>
|
||||
<p>授權應用訪問禪道的部門列表API,獲取禪道所有部門信息。</p>
|
||||
<p>API地址為sso模組的depts方法,POST數據為應用密鑰,成功返回用戶列表(json格式),失敗返回fail。</p>
|
||||
<p>示例:請求地址 http:://www.demo.com/sso-depts-test,POST字元串 key=20c8eb0d522d2e1a09d4ea18e4df3a59。</p>
|
||||
<p> 註:test為應用代號,20c8eb0d522d2e1a09d4ea18e4df3a59為應用密鑰</p>
|
||||
EOT;
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($auths as $code => $auth):?>
|
||||
<tr class='a-center'>
|
||||
<tr class='a-left'>
|
||||
<td><?php echo $auth->title?></td>
|
||||
<td><?php echo $code?></td>
|
||||
<td><?php echo $auth->key?></td>
|
||||
<td><?php echo $auth->ip?></td>
|
||||
<td>
|
||||
<td class='a-center'>
|
||||
<?php
|
||||
common::printIcon('sso', 'edit', "code=$code");
|
||||
common::printIcon('sso', 'delete', "code=$code", '', 'list', '', 'hiddenwin');
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
<th class='rowhead'><?php echo $lang->sso->ip;?></th>
|
||||
<td><?php echo html::input('ip', '', "class='text-5' placeholder='{$lang->sso->note->ip}'");?></td>
|
||||
</tr>
|
||||
<tr><td colspan='2' class='a-center'><?php echo html::submitButton() . html::backButton();?></td></tr>
|
||||
<tr><td></td><td colspan='2' class='a-left'><?php echo html::submitButton() . html::backButton();?></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
<div class="instruction"><?php echo $lang->sso->instruction;?></div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -30,6 +30,8 @@ $lang->story->bugs = "Bug";
|
||||
$lang->story->linkStory = 'Related story';
|
||||
$lang->story->export = "Export";
|
||||
$lang->story->reportChart = "Report";
|
||||
$lang->story->batchChangePlan = "Batch change plan";
|
||||
$lang->story->batchChangeStage = "Batch change stage";
|
||||
|
||||
$lang->story->common = 'Story';
|
||||
$lang->story->id = 'ID';
|
||||
|
||||
@@ -30,6 +30,8 @@ $lang->story->bugs = "Bug";
|
||||
$lang->story->linkStory = '关联需求';
|
||||
$lang->story->export = "导出";
|
||||
$lang->story->reportChart = "统计报表";
|
||||
$lang->story->batchChangePlan = "批量修改计划";
|
||||
$lang->story->batchChangeStage = "批量修改阶段";
|
||||
|
||||
$lang->story->common = '需求';
|
||||
$lang->story->id = '编号';
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package story
|
||||
* @version $Id: zh-tw.php 4684 2013-04-27 05:49:28Z chencongzhi520@gmail.com $
|
||||
* @version $Id: zh-tw.php 5141 2013-07-15 05:57:15Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->story->browse = "需求列表";
|
||||
@@ -16,6 +16,7 @@ $lang->story->batchCreate = "批量添加";
|
||||
$lang->story->change = "變更";
|
||||
$lang->story->changed = '需求變更';
|
||||
$lang->story->review = '評審';
|
||||
$lang->story->batchReview = '批量評審';
|
||||
$lang->story->edit = "編輯";
|
||||
$lang->story->batchEdit = "批量編輯";
|
||||
$lang->story->close = '關閉';
|
||||
@@ -29,6 +30,8 @@ $lang->story->bugs = "Bug";
|
||||
$lang->story->linkStory = '關聯需求';
|
||||
$lang->story->export = "導出";
|
||||
$lang->story->reportChart = "統計報表";
|
||||
$lang->story->batchChangePlan = "批量修改計劃";
|
||||
$lang->story->batchChangeStage = "批量修改階段";
|
||||
|
||||
$lang->story->common = '需求';
|
||||
$lang->story->id = '編號';
|
||||
@@ -194,6 +197,7 @@ $lang->story->report = new stdclass();
|
||||
$lang->story->report->common = '報表';
|
||||
$lang->story->report->select = '請選擇報表類型';
|
||||
$lang->story->report->create = '生成報表';
|
||||
$lang->story->report->value = '需求數';
|
||||
|
||||
$lang->story->report->charts['storysPerProduct'] = '產品需求數量';
|
||||
$lang->story->report->charts['storysPerModule'] = '模組需求數量';
|
||||
@@ -236,6 +240,19 @@ $lang->story->report->storysPerClosedReason = new stdclass();
|
||||
$lang->story->report->storysPerEstimate = new stdclass();
|
||||
$lang->story->report->storysPerChange = new stdclass();
|
||||
|
||||
$lang->story->report->storysPerProduct->item = '產品';
|
||||
$lang->story->report->storysPerModule->item = '模組';
|
||||
$lang->story->report->storysPerSource->item = '來源';
|
||||
$lang->story->report->storysPerPlan->item = '計劃';
|
||||
$lang->story->report->storysPerStatus->item = '狀態';
|
||||
$lang->story->report->storysPerStage->item = '階段';
|
||||
$lang->story->report->storysPerPri->item = '優先順序';
|
||||
$lang->story->report->storysPerOpenedBy->item = '用戶';
|
||||
$lang->story->report->storysPerAssignedTo->item = '用戶';
|
||||
$lang->story->report->storysPerClosedReason->item = '原因';
|
||||
$lang->story->report->storysPerEstimate->item = '預計工時';
|
||||
$lang->story->report->storysPerChange->item = '變更次數';
|
||||
|
||||
$lang->story->report->storysPerProduct->graph = new stdclass();
|
||||
$lang->story->report->storysPerModule->graph = new stdclass();
|
||||
$lang->story->report->storysPerSource->graph = new stdclass();
|
||||
@@ -264,4 +281,6 @@ $lang->story->report->storysPerChange->graph->xAxisName = '變更次數';
|
||||
|
||||
$lang->story->placeholder = new stdclass();
|
||||
$lang->story->placeholder->estimate = "完成該需求的工作量";
|
||||
$lang->story->placeholder->mailto = '輸入用戶名自動完成';
|
||||
|
||||
$lang->story->chosen = new stdClass();
|
||||
$lang->story->chosen->reviewedBy = '選擇評審人...';
|
||||
|
||||
@@ -222,6 +222,7 @@ class storyModel extends model
|
||||
$storyID = $this->dao->lastInsertID();
|
||||
$this->setStage($storyID);
|
||||
|
||||
$specData[$i] = new stdclass();
|
||||
$specData[$i]->story = $storyID;
|
||||
$specData[$i]->version = 1;
|
||||
$specData[$i]->title = htmlspecialchars($stories->title[$i]);
|
||||
@@ -230,6 +231,7 @@ class storyModel extends model
|
||||
|
||||
$this->loadModel('action');
|
||||
$actionID = $this->action->create('story', $storyID, 'Opened', '');
|
||||
$mails[$i] = new stdclass();
|
||||
$mails[$i]->storyID = $storyID;
|
||||
$mails[$i]->actionID = $actionID;
|
||||
}
|
||||
|
||||
@@ -616,6 +616,7 @@ class task extends control
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
$this->sendmail($taskID, $actionID);
|
||||
}
|
||||
if(isonlybody()) die(js::closeColorbox('parent.parent'));
|
||||
die(js::locate($this->createLink('task', 'view', "taskID=$taskID"), 'parent'));
|
||||
}
|
||||
|
||||
|
||||
@@ -155,6 +155,7 @@ $lang->task->report = new stdclass();
|
||||
$lang->task->report->common = '報表';
|
||||
$lang->task->report->select = '請選擇報表類型';
|
||||
$lang->task->report->create = '生成報表';
|
||||
$lang->task->report->value = '任務數';
|
||||
|
||||
$lang->task->report->charts['tasksPerProject'] = '項目任務數統計';
|
||||
$lang->task->report->charts['tasksPerModule'] = '模組任務數統計';
|
||||
@@ -199,6 +200,20 @@ $lang->task->report->tasksPerFinishedBy = new stdclass();
|
||||
$lang->task->report->tasksPerClosedReason = new stdclass();
|
||||
$lang->task->report->finishedTasksPerDay = new stdclass();
|
||||
|
||||
$lang->task->report->tasksPerProject->item ='項目';
|
||||
$lang->task->report->tasksPerModule->item ='模組';
|
||||
$lang->task->report->tasksPerAssignedTo->item ='用戶';
|
||||
$lang->task->report->tasksPerType->item ='類型';
|
||||
$lang->task->report->tasksPerPri->item ='優先順序';
|
||||
$lang->task->report->tasksPerStatus->item ='狀態';
|
||||
$lang->task->report->tasksPerDeadline->item ='日期';
|
||||
$lang->task->report->tasksPerEstimate->item ='預計';
|
||||
$lang->task->report->tasksPerLeft->item ='剩餘';
|
||||
$lang->task->report->tasksPerConsumed->item ='消耗';
|
||||
$lang->task->report->tasksPerFinishedBy->item ='用戶';
|
||||
$lang->task->report->tasksPerClosedReason->item ='原因';
|
||||
$lang->task->report->finishedTasksPerDay->item ='日期';
|
||||
|
||||
$lang->task->report->tasksPerProject->graph = new stdclass();
|
||||
$lang->task->report->tasksPerModule->graph = new stdclass();
|
||||
$lang->task->report->tasksPerAssignedTo->graph = new stdclass();
|
||||
@@ -233,4 +248,3 @@ $lang->task->report->finishedTasksPerDay->graph->rotateNames = '1';
|
||||
|
||||
$lang->task->placeholder = new stdclass();
|
||||
$lang->task->placeholder->estimate = '對該任務最初的預計';
|
||||
$lang->task->placeholder->mailto = '輸入用戶名進行選擇';
|
||||
|
||||
@@ -196,6 +196,7 @@ class taskModel extends model
|
||||
$this->dao->update(TABLE_TASK)->data($task)
|
||||
->autoCheck()
|
||||
->batchCheckIF($task->status != 'cancel', $this->config->task->edit->requiredFields, 'notempty')
|
||||
->checkIF($task->deadline != '', 'deadline', 'ge', $task->estStarted)
|
||||
|
||||
->checkIF($task->estimate != false, 'estimate', 'float')
|
||||
->checkIF($task->left != false, 'left', 'float')
|
||||
@@ -238,6 +239,7 @@ class taskModel extends model
|
||||
{
|
||||
$oldTask = $this->getById($taskID);
|
||||
|
||||
$task = new stdclass();
|
||||
$task->name = htmlspecialchars($this->post->names[$taskID]);
|
||||
$task->module = isset($this->post->modules[$taskID]) ? $this->post->modules[$taskID] : 0;
|
||||
$task->type = $this->post->types[$taskID];
|
||||
@@ -438,6 +440,7 @@ class taskModel extends model
|
||||
{
|
||||
if(!$record->consumed[$id]) die(js::alert($this->lang->task->error->consumedThisTime));
|
||||
if($record->left[$id] === '') die(js::alert($this->lang->task->error->left));
|
||||
$estimates[$id] = new stdclass();
|
||||
$estimates[$id]->date = $record->dates[$id];
|
||||
$estimates[$id]->task = $taskID;
|
||||
$estimates[$id]->consumed = $record->consumed[$id];
|
||||
|
||||
@@ -66,7 +66,6 @@ $lang->testcase->importID = "Linenum";
|
||||
$lang->testcase->showImport = "Show import";
|
||||
$lang->testcase->exportTemplet = "Export templet";
|
||||
$lang->testcase->export = "Export";
|
||||
$lang->testcase->export = "Export";
|
||||
$lang->testcase->confirmChange = 'Confirm case change';
|
||||
$lang->testcase->confirmStoryChange = 'Confirm story change';
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ $lang->testcase->lastEditedBy = '最後修改者';
|
||||
$lang->testcase->lastEditedDate = '最後修改日期';
|
||||
$lang->testcase->version = '用例版本';
|
||||
$lang->testcase->result = '測試結果';
|
||||
$lang->testcase->lastRunResult = '結果';
|
||||
$lang->testcase->real = '實際情況';
|
||||
$lang->testcase->keywords = '關鍵詞';
|
||||
$lang->testcase->files = '附件';
|
||||
@@ -43,6 +44,7 @@ $lang->testcase->lastEditedDateAB = '修改日期';
|
||||
$lang->testcase->allProduct = '所有產品';
|
||||
$lang->testcase->fromBug = '來源Bug';
|
||||
$lang->testcase->toBug = '生成Bug';
|
||||
$lang->testcase->changed = '用例變更';
|
||||
$lang->case = $lang->testcase; // 用於DAO檢查時使用。因為case是系統關鍵字,所以無法定義該模組為case,只能使用testcase,但表還是使用的case。
|
||||
|
||||
$lang->testcase->stepID = '編號';
|
||||
@@ -59,10 +61,19 @@ $lang->testcase->edit = "編輯";
|
||||
$lang->testcase->batchEdit = "批量編輯 ";
|
||||
$lang->testcase->delete = "刪除";
|
||||
$lang->testcase->browse = "用例列表";
|
||||
$lang->testcase->import = "導入用例";
|
||||
$lang->testcase->import = "導入";
|
||||
$lang->testcase->importID = "行號";
|
||||
$lang->testcase->showImport = "顯示導入內容";
|
||||
$lang->testcase->exportTemplet = "導出模板";
|
||||
$lang->testcase->export = "導出";
|
||||
$lang->testcase->confirmChange = '確認用例變動';
|
||||
$lang->testcase->confirmStoryChange = '確認需求變動';
|
||||
|
||||
$lang->testcase->editHaved = '修改已有用例';
|
||||
$lang->testcase->addNew = '添加新用例';
|
||||
|
||||
$lang->testcase->num = '導入用例個數:';
|
||||
|
||||
$lang->testcase->deleteStep = '刪除';
|
||||
$lang->testcase->insertBefore = '之前添加';
|
||||
$lang->testcase->insertAfter = '之後添加';
|
||||
@@ -143,3 +154,5 @@ $lang->testcase->resultList['blocked'] = '阻塞';
|
||||
|
||||
$lang->testcase->buttonEdit = '編輯';
|
||||
$lang->testcase->buttonToList = '返回';
|
||||
|
||||
$lang->testcase->errorEncode = '無數據,請選擇正確的編碼重新上傳!';
|
||||
|
||||
@@ -285,14 +285,15 @@ class testcaseModel extends model
|
||||
/* Initialize cases from the post data.*/
|
||||
foreach($caseIDList as $caseID)
|
||||
{
|
||||
$case = new stdclass();
|
||||
$case->lastEditedBy = $this->app->user->account;
|
||||
$caee->lastEditedDate = $now;
|
||||
$case->lastEditedDate = $now;
|
||||
$case->pri = $this->post->pris[$caseID];
|
||||
$case->status = $this->post->statuses[$caseID];
|
||||
$case->module = $this->post->modules[$caseID];
|
||||
$case->title = htmlspecialchars($this->post->titles[$caseID]);
|
||||
$case->type = $this->post->types[$caseID];
|
||||
$case->stage = implode(',', $this->post->stages[$caseID]);
|
||||
$case->stage = empty($this->post->stages[$caseID]) ? '' : implode(',', $this->post->stages[$caseID]);
|
||||
|
||||
$cases[$caseID] = $case;
|
||||
unset($case);
|
||||
|
||||
@@ -49,6 +49,10 @@ $lang->testtask->lastRunTime = '執行時間';
|
||||
$lang->testtask->lastRunResult = '結果';
|
||||
$lang->testtask->report = '測試總結';
|
||||
|
||||
$lang->testtask->legendDesc = '任務描述';
|
||||
$lang->testtask->legendReport = '測試總結';
|
||||
$lang->testtask->legendBasicInfo = '基本信息';
|
||||
|
||||
$lang->testtask->statusList['wait'] = '未開始';
|
||||
$lang->testtask->statusList['doing'] = '進行中';
|
||||
$lang->testtask->statusList['done'] = '已完成';
|
||||
@@ -64,11 +68,13 @@ $lang->testtask->unlinkedCases = '未關聯';
|
||||
$lang->testtask->linkedCases = '已關聯';
|
||||
$lang->testtask->linkByStory = '按需求關聯';
|
||||
$lang->testtask->linkByBug = '按Bug關聯';
|
||||
$lang->testtask->confirmDelete = '您確認要刪除該測試任務嗎?';
|
||||
$lang->testtask->passAll = '全部通過';
|
||||
$lang->testtask->pass = '通過';
|
||||
$lang->testtask->fail = '失敗';
|
||||
|
||||
$lang->testtask->confirmDelete = '您確認要刪除該測試任務嗎?';
|
||||
$lang->testtask->confirmUnlinkCase = '您確認要移除該用例嗎?';
|
||||
|
||||
$lang->testtask->byModule = '按模組';
|
||||
$lang->testtask->assignedToMe = '指派給我';
|
||||
$lang->testtask->allCases = '所有用例';
|
||||
|
||||
@@ -44,7 +44,13 @@ class testtaskModel extends model
|
||||
$task = fixer::input('post')
|
||||
->stripTags('name')
|
||||
->get();
|
||||
$this->dao->insert(TABLE_TESTTASK)->data($task)->autoCheck()->batchcheck($this->config->testtask->create->requiredFields, 'notempty')->exec();
|
||||
$this->dao->insert(TABLE_TESTTASK)->data($task)
|
||||
->autoCheck($skipFields = 'begin,end')
|
||||
->batchcheck($this->config->testtask->create->requiredFields, 'notempty')
|
||||
->checkIF($task->begin != '', 'begin', 'date')
|
||||
->checkIF($task->end != '', 'end', 'date')
|
||||
->checkIF($task->end != '', 'end', 'gt', $task->begin)
|
||||
->exec();
|
||||
if(!dao::isError()) return $this->dao->lastInsertID();
|
||||
}
|
||||
|
||||
@@ -143,7 +149,12 @@ class testtaskModel extends model
|
||||
{
|
||||
$oldTask = $this->getById($taskID);
|
||||
$task = fixer::input('post')->stripTags('name')->get();
|
||||
$this->dao->update(TABLE_TESTTASK)->data($task)->autoCheck()->batchcheck($this->config->testtask->edit->requiredFields, 'notempty')->where('id')->eq($taskID)->exec();
|
||||
$this->dao->update(TABLE_TESTTASK)->data($task)
|
||||
->autoCheck()
|
||||
->batchcheck($this->config->testtask->edit->requiredFields, 'notempty')
|
||||
->checkIF($task->end != '', 'end', 'ge', $task->begin)
|
||||
->where('id')->eq($taskID)
|
||||
->exec();
|
||||
if(!dao::isError()) return common::createChanges($oldTask, $task);
|
||||
}
|
||||
|
||||
|
||||
@@ -35,9 +35,9 @@
|
||||
?>
|
||||
<tr>
|
||||
<th><?php echo $i;?></th>
|
||||
<td><?php echo nl2br($stepResult['desc']);?></td>
|
||||
<td><?php echo nl2br($stepResult['expect']);?></td>
|
||||
<?php if(!empty($result->stepResults)):?>
|
||||
<td><?php if(isset($stepResult['desc'])) echo nl2br($stepResult['desc']);?></td>
|
||||
<td><?php if(isset($stepResult['expect'])) echo nl2br($stepResult['expect']);?></td>
|
||||
<?php if(!empty($stepResult['result'])):?>
|
||||
<td class='<?php echo $stepResult['result'];?> a-center'><?php echo $lang->testcase->resultList[$stepResult['result']];?></td>
|
||||
<td><?php echo $stepResult['real'];?></td>
|
||||
</tr>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<div id='titlebar'>
|
||||
<div id='main' <?php if($task->deleted) echo "class='deleted'";?>>TESTTASK #<?php echo $task->id . ' ' . $task->title;?></div>
|
||||
<div id='main' <?php if($task->deleted) echo "class='deleted'";?>>TESTTASK #<?php echo $task->id . ' ' . $task->name;?></div>
|
||||
<div>
|
||||
<?php
|
||||
$browseLink = $this->session->testtaskList ? $this->session->testtaskList : $this->createLink('testtask', 'browse', "productID=$task->product");
|
||||
|
||||
@@ -59,7 +59,7 @@ class todo extends control
|
||||
$this->view->position[] = $this->lang->todo->common;
|
||||
$this->view->position[] = $this->lang->todo->create;
|
||||
$this->view->date = strftime("%Y-%m-%d", strtotime($date));
|
||||
$this->view->time = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
|
||||
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
|
||||
$this->view->time = date::now();
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ $lang->todo->export = "導出";
|
||||
$lang->todo->delete = "刪除待辦";
|
||||
$lang->todo->browse = "瀏覽待辦";
|
||||
$lang->todo->import2Today = "導入到今天";
|
||||
$lang->todo->import = "導入到";
|
||||
$lang->todo->changeStatus = "更改";
|
||||
|
||||
$lang->todo->id = '編號';
|
||||
|
||||
@@ -38,6 +38,7 @@ $lang->upgrade->toVersion = 'To version';
|
||||
$lang->upgrade->confirm = 'Confirm the sql to executed.';
|
||||
$lang->upgrade->sureExecute = 'Execute';
|
||||
$lang->upgrade->forbiddenExt = 'Because it is incompatible with this version, the following extension automatically disabled, :';
|
||||
$lang->upgrade->checkExtension = 'Checking plugin compatibility, please wait ...';
|
||||
|
||||
$lang->upgrade->fromVersions['0_3beta'] = '0.3 BETA';
|
||||
$lang->upgrade->fromVersions['0_4beta'] = '0.4 BETA';
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package upgrade
|
||||
* @version $Id: zh-tw.php 4989 2013-07-03 07:05:45Z zhujinyonging@gmail.com $
|
||||
* @version $Id: zh-tw.php 5119 2013-07-12 08:06:42Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->upgrade->common = '升級';
|
||||
@@ -37,6 +37,8 @@ $lang->upgrade->fromVersion = '原來的版本';
|
||||
$lang->upgrade->toVersion = '升級到';
|
||||
$lang->upgrade->confirm = '確認要執行的SQL語句';
|
||||
$lang->upgrade->sureExecute = '確認執行';
|
||||
$lang->upgrade->forbiddenExt = '以下插件與新版本不兼容,已經自動禁用:';
|
||||
$lang->upgrade->checkExtension = '正在檢查插件的兼容性,請稍後 ...';
|
||||
|
||||
$lang->upgrade->fromVersions['0_3beta'] = '0.3 BETA';
|
||||
$lang->upgrade->fromVersions['0_4beta'] = '0.4 BETA';
|
||||
@@ -69,3 +71,4 @@ $lang->upgrade->fromVersions['4_0_beta2'] = '4.0 BETA2';
|
||||
$lang->upgrade->fromVersions['4_0'] = '4.0';
|
||||
$lang->upgrade->fromVersions['4_0_1'] = '4.0.1';
|
||||
$lang->upgrade->fromVersions['4_1'] = '4.1';
|
||||
$lang->upgrade->fromVersions['4_2_beta'] = '4.2.beta';
|
||||
|
||||
@@ -142,6 +142,7 @@ class upgradeModel extends model
|
||||
case '4_0': $confirmContent .= file_get_contents($this->getUpgradeFile('4.0'));
|
||||
case '4_0_1': $confirmContent .= file_get_contents($this->getUpgradeFile('4.0.1'));
|
||||
case '4_1': $confirmContent .= file_get_contents($this->getUpgradeFile('4.1'));
|
||||
case '4_2_beta': $confirmContent .= file_get_contents($this->getUpgradeFile('4.2'));
|
||||
}
|
||||
return str_replace('zt_', $this->config->db->prefix, $confirmContent);
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
.todoheader {margin-bottom:5px;}
|
||||
.todoheader .active{color:#009900; font-weight:bold;}
|
||||
@@ -124,6 +124,8 @@ $lang->user->loginWithDemoUser = '使用demo賬號登錄:';
|
||||
$lang->user->placeholder = new stdclass();
|
||||
$lang->user->placeholder->account = '英文、數字和下劃線的組合,三位以上';
|
||||
$lang->user->placeholder->password1 = '六位以上';
|
||||
$lang->user->placeholder->role = '角色影響內容和用戶列表的順序。';
|
||||
$lang->user->placeholder->group = '分組決定用戶的權限列表。';
|
||||
$lang->user->placeholder->join = '入職日期';
|
||||
$lang->user->placeholder->commiter = '版本控制系統(subversion)中的帳號';
|
||||
|
||||
|
||||
@@ -329,6 +329,7 @@ class userModel extends model
|
||||
$this->dao->delete()->from(TABLE_USERGROUP)->where('account')->eq($oldUser->account)->exec();
|
||||
foreach($this->post->groups as $groupID)
|
||||
{
|
||||
$data = new stdclass();
|
||||
$data->account = $this->post->account;
|
||||
$data->group = $groupID;
|
||||
$this->dao->insert(TABLE_USERGROUP)->data($data)->exec();
|
||||
|
||||
@@ -13,52 +13,47 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/tablesorter.html.php';?>
|
||||
<?php include './featurebar.html.php';?>
|
||||
<table class='cont-lt1 fixed'>
|
||||
<tr valign='top'>
|
||||
<td class='side'>
|
||||
<div class='box-title'><?php echo $lang->user->dynamic;?></div>
|
||||
<div class='box-content'>
|
||||
<?php
|
||||
echo html::a(inLink('dynamic', "period=today&account=$account"), $lang->action->dynamic->today) . '<br />';
|
||||
echo html::a(inLink('dynamic', "period=yesterday&account=$account"), $lang->action->dynamic->yesterday) . '<br />';
|
||||
echo html::a(inLink('dynamic', "period=twodaysago&account=$account"), $lang->action->dynamic->twoDaysAgo) . '<br />';
|
||||
echo html::a(inLink('dynamic', "period=thisweek&account=$account"), $lang->action->dynamic->thisWeek) . '<br />';
|
||||
echo html::a(inLink('dynamic', "period=lastweek&account=$account"), $lang->action->dynamic->lastWeek) . '<br />';
|
||||
echo html::a(inLink('dynamic', "period=thismonth&account=$account"), $lang->action->dynamic->thisMonth) . '<br />';
|
||||
echo html::a(inLink('dynamic', "period=lastmonth&account=$account"), $lang->action->dynamic->lastMonth) . '<br />';
|
||||
echo html::a(inLink('dynamic', "period=all&account=$account"), $lang->action->dynamic->all) . '<br />';
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
<td class='divider'></td>
|
||||
<td>
|
||||
<table class='table-1 colored tablesorter'>
|
||||
<thead>
|
||||
<tr class='colhead'>
|
||||
<th class='w-150px'><?php echo $lang->action->date;?></th>
|
||||
<th class='w-user'> <?php echo $lang->action->actor;?></th>
|
||||
<th class='w-100px'><?php echo $lang->action->action;?></th>
|
||||
<th class='w-80px'> <?php echo $lang->action->objectType;?></th>
|
||||
<th class='w-id'> <?php echo $lang->idAB;?></th>
|
||||
<th><?php echo $lang->action->objectName;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($actions as $action):?>
|
||||
<?php $module = $action->objectType == 'case' ? 'testcase' : $action->objectType;?>
|
||||
<tr class='a-center'>
|
||||
<td><?php echo $action->date;?></td>
|
||||
<td><?php echo $users[$action->actor];?></td>
|
||||
<td><?php echo $action->actionLabel;?></td>
|
||||
<td><?php echo $lang->action->objectTypes[$action->objectType];?></td>
|
||||
<td><?php echo $action->objectID;?></td>
|
||||
<td class='a-left'><?php echo html::a($action->objectLink, $action->objectName);?></td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
<tfoot><tr><td colspan='6'><?php $pager->show();?></td></tr></tfoot>
|
||||
</table>
|
||||
</td>
|
||||
<div id='featurebar'>
|
||||
<div class='f-left'>
|
||||
<?php
|
||||
echo "<span id='today'>" . html::a(inLink('dynamic', "period=today&account=$account"), $lang->action->dynamic->today) . '</span>';
|
||||
echo "<span id='yesterday'>" . html::a(inLink('dynamic', "period=yesterday&account=$account"), $lang->action->dynamic->yesterday) . '</span>';
|
||||
echo "<span id='twodaysago'>" . html::a(inLink('dynamic', "period=twodaysago&account=$account"), $lang->action->dynamic->twoDaysAgo) . '</span>';
|
||||
echo "<span id='thisweek'>" . html::a(inLink('dynamic', "period=thisweek&account=$account"), $lang->action->dynamic->thisWeek) . '</span>';
|
||||
echo "<span id='lastweek'>" . html::a(inLink('dynamic', "period=lastweek&account=$account"), $lang->action->dynamic->lastWeek) . '</span>';
|
||||
echo "<span id='thismonth'>" . html::a(inLink('dynamic', "period=thismonth&account=$account"), $lang->action->dynamic->thisMonth) . '</span>';
|
||||
echo "<span id='lastmonth'>" . html::a(inLink('dynamic', "period=lastmonth&account=$account"), $lang->action->dynamic->lastMonth) . '</span>';
|
||||
echo "<span id='all'>" . html::a(inLink('dynamic', "period=all&account=$account"), $lang->action->dynamic->all) . '</span>';
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<table class='table-1 colored tablesorter'>
|
||||
<thead>
|
||||
<tr class='colhead'>
|
||||
<th class='w-150px'><?php echo $lang->action->date;?></th>
|
||||
<th class='w-user'> <?php echo $lang->action->actor;?></th>
|
||||
<th class='w-100px'><?php echo $lang->action->action;?></th>
|
||||
<th class='w-80px'> <?php echo $lang->action->objectType;?></th>
|
||||
<th class='w-id'> <?php echo $lang->idAB;?></th>
|
||||
<th><?php echo $lang->action->objectName;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($actions as $action):?>
|
||||
<?php $module = $action->objectType == 'case' ? 'testcase' : $action->objectType;?>
|
||||
<tr class='a-center'>
|
||||
<td><?php echo $action->date;?></td>
|
||||
<td><?php echo $users[$action->actor];?></td>
|
||||
<td><?php echo $action->actionLabel;?></td>
|
||||
<td><?php echo $lang->action->objectTypes[$action->objectType];?></td>
|
||||
<td><?php echo $action->objectID;?></td>
|
||||
<td class='a-left'><?php echo html::a($action->objectLink, $action->objectName);?></td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
<tfoot><tr><td colspan='6'><?php $pager->show();?></td></tr></tfoot>
|
||||
</table>
|
||||
<script type='text/javascript'>
|
||||
$(function(){$('#<?php echo $period?>').addClass('active');})
|
||||
</script>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -14,15 +14,17 @@
|
||||
<?php include "../../common/view/datepicker.html.php"; ?>
|
||||
<?php include './featurebar.html.php';?>
|
||||
<script language='Javascript'>var account='<?php echo $account;?>'</script>
|
||||
<div class='todoheader'>
|
||||
<div id='featurebar'>
|
||||
<div class='f-left'>
|
||||
<?php
|
||||
foreach($lang->todo->periods as $period => $label)
|
||||
{
|
||||
$vars = "account={$account}&date=$period";
|
||||
if($period == 'before') $vars .= "&status=undone";
|
||||
echo "<span id='$period'>" . html::a(inlink('todo', $vars), $label) . '</span> ';
|
||||
}
|
||||
?>
|
||||
foreach($lang->todo->periods as $period => $label)
|
||||
{
|
||||
$vars = "account={$account}&date=$period";
|
||||
if($period == 'before') $vars .= "&status=undone";
|
||||
echo "<span id='$period'>" . html::a(inlink('todo', $vars), $label) . '</span> ';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<form method='post' target='hiddenwin' action='<?php echo $this->createLink('todo', 'import2Today');?>' id='todoform'>
|
||||
<table class='table-1 tablesorter'>
|
||||
@@ -57,8 +59,6 @@
|
||||
</table>
|
||||
</form>
|
||||
<script type='text/javascript'>
|
||||
$(function(){
|
||||
$('#<?php echo $type?>').find('a').addClass('active');
|
||||
})
|
||||
$(function(){$('#<?php echo $type?>').addClass('active');})
|
||||
</script>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
+3
-3
@@ -111,8 +111,8 @@ foreach(glob($moduleRoot . '*') as $modulePath)
|
||||
|
||||
/* checking actions of every module. */
|
||||
echo '-------------lang checking-----------------' . "\n";
|
||||
include '../../module/common/lang/zh-cn.php';
|
||||
include '../../config/config.php';
|
||||
include '../module/common/lang/zh-cn.php';
|
||||
include '../config/config.php';
|
||||
foreach(glob($moduleRoot . '*') as $modulePath)
|
||||
{
|
||||
unset($lang);
|
||||
@@ -142,7 +142,7 @@ foreach(glob($moduleRoot . '*') as $modulePath)
|
||||
$key = trim($key);
|
||||
$lineNO = $lineNO + 1;
|
||||
echo "module $moduleName need checking, command is:";
|
||||
echo " vim -O +$lineNO ../../module/$moduleName/lang/zh-cn.php +$lineNO ../../module/$moduleName/lang/en.php \n";
|
||||
echo " vim -O +$lineNO ../module/$moduleName/lang/zh-cn.php +$lineNO ../module/$moduleName/lang/en.php \n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -801,6 +801,8 @@ function setModal4List(colorboxClass, replaceID, callback)
|
||||
|
||||
$('.colored').colorize();
|
||||
$('tfoot td').css('background', 'white').unbind('click').unbind('hover');
|
||||
$(".date").datePicker({createButton:true, startDate:startDate})
|
||||
.dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_RIGHT)
|
||||
if(typeof(callback) == 'function') callback();
|
||||
$.cookie('selfClose', 0);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user