- remove the long desc of license.

This commit is contained in:
wangchunsheng
2010-11-09 06:14:34 +00:00
parent 5db0af50da
commit 2651d13d50
342 changed files with 31432 additions and 35878 deletions

View File

@@ -1,77 +1,64 @@
<?php
/**
* The control file of common module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chen congzhi <congzhi@cnezsoft.com>
* @package common
* @version $Id$
* @link http://www.zentao.net
*/
include '../config/config.php';
if(!isset($argv[1]))
{
die("Please input the directory path of 'module'! For example, c:\zentao\home\zentao\module\ \n");
}
$modules = array();
$moduleRoot = $argv[1];
if(is_dir($moduleRoot))
{
if($dh = opendir($moduleRoot))
{
while($module = readdir($dh))
{
if(strpos(basename($module), '.') === false) $modules[] = $module;
}
closedir($dh);
}
}
else
{
die("The module you input does not exist. \n");
}
foreach($modules as $module)
{
/* 设定各个目录。*/
$optRoot = $moduleRoot . DIRECTORY_SEPARATOR. $module . DIRECTORY_SEPARATOR . 'opt';
$optControl = $optRoot . DIRECTORY_SEPARATOR . 'control';
$optModel = $optRoot . DIRECTORY_SEPARATOR . 'model';
$optView = $optRoot . DIRECTORY_SEPARATOR . 'view';
$optConfig = $optRoot . DIRECTORY_SEPARATOR . 'config';
$optLang = $optRoot . DIRECTORY_SEPARATOR . 'lang' . DIRECTORY_SEPARATOR;
/* 建立各个扩展目录 */
if(!file_exists($optRoot)) mkdir($optRoot, 0777);
if(!file_exists($optControl)) mkdir($optControl, 0777);
if(!file_exists($optModel)) mkdir($optModel, 0777);
if(!file_exists($optView)) mkdir($optView, 0777);
if(!file_exists($optConfig)) mkdir($optConfig, 0777);
if(!file_exists($optLang)) mkdir($optLang, 0777);
/* 创建语言目录。*/
$langs = array_keys($config->langs);
foreach($langs as $lang)
{
$langPath = $optLang . $lang;
if(!file_exists($langPath)) mkdir($langPath, 0777);
}
echo "init $module ... \n";
}
<?php
/**
* The control file of common module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chen congzhi <congzhi@cnezsoft.com>
* @package common
* @version $Id$
* @link http://www.zentao.net
*/
include '../config/config.php';
if(!isset($argv[1]))
{
die("Please input the directory path of 'module'! For example, c:\zentao\home\zentao\module\ \n");
}
$modules = array();
$moduleRoot = $argv[1];
if(is_dir($moduleRoot))
{
if($dh = opendir($moduleRoot))
{
while($module = readdir($dh))
{
if(strpos(basename($module), '.') === false) $modules[] = $module;
}
closedir($dh);
}
}
else
{
die("The module you input does not exist. \n");
}
foreach($modules as $module)
{
/* 设定各个目录。*/
$optRoot = $moduleRoot . DIRECTORY_SEPARATOR. $module . DIRECTORY_SEPARATOR . 'opt';
$optControl = $optRoot . DIRECTORY_SEPARATOR . 'control';
$optModel = $optRoot . DIRECTORY_SEPARATOR . 'model';
$optView = $optRoot . DIRECTORY_SEPARATOR . 'view';
$optConfig = $optRoot . DIRECTORY_SEPARATOR . 'config';
$optLang = $optRoot . DIRECTORY_SEPARATOR . 'lang' . DIRECTORY_SEPARATOR;
/* 建立各个扩展目录 */
if(!file_exists($optRoot)) mkdir($optRoot, 0777);
if(!file_exists($optControl)) mkdir($optControl, 0777);
if(!file_exists($optModel)) mkdir($optModel, 0777);
if(!file_exists($optView)) mkdir($optView, 0777);
if(!file_exists($optConfig)) mkdir($optConfig, 0777);
if(!file_exists($optLang)) mkdir($optLang, 0777);
/* 创建语言目录。*/
$langs = array_keys($config->langs);
foreach($langs as $lang)
{
$langPath = $optLang . $lang;
if(!file_exists($langPath)) mkdir($langPath, 0777);
}
echo "init $module ... \n";
}

View File

@@ -1,118 +1,105 @@
<?php
/**
* The config file of ZenTaoMS
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoMS
* @version $Id$
* @link http://www.zentao.net
*/
/* 基本参数设定。*/
$config->version = '1.3'; // 版本号,切勿修改
$config->encoding = 'UTF-8'; // 网站的编码。
$config->cookiePath = '/'; // cookie的有效路径。
$config->cookieLife = time() + 2592000; // cookie的生命周期
$config->timezone = 'Asia/Shanghai'; // 时区设置,详细的列表,请访问 http://www.php.net/manual/en/timezones.php
/* 请求方式设置。*/
$config->requestType = 'PATH_INFO'; // 如何获取当前请求的信息可选值PATH_INFO|GET
$config->pathType = 'clean'; // requestType=PATH_INFO: 请求url的格式可选值为full|cleanfull格式会带有参数名称clean则只有取值。
$config->requestFix = '-'; // requestType=PATH_INFO: 请求url的分隔符可选值为斜线、减号。后面两种形式有助于SEO。
$config->moduleVar = 'm'; // requestType=GET: 模块变量名。
$config->methodVar = 'f'; // requestType=GET: 方法变量名。
$config->viewVar = 't'; // requestType=GET: 模板变量名。
$config->sessionVar = 'sid'; // requestType=GET: session变量名。
/* 视图和主题。*/
$config->views = ',html,json,csv,'; // 支持的视图列表
$config->themes = 'default,blue'; // 支持的主题列表
/* 支持的语言列表。*/
$config->langs['zh-cn'] = '中文简体';
$config->langs['zh-tw'] = '中文繁體';
$config->langs['en'] = 'English';
$config->langs['ja'] = 'Japanese';
$config->langs['ko'] = 'Korean';
/* 默认参数设定。*/
$config->default->view = 'html'; // 默认的视图格式
$config->default->lang = 'zh-cn'; // 默认的语言
$config->default->theme = 'default'; // 默认的主题
$config->default->module = 'index'; // 默认的模块。当请求中没有指定模块时,加载该模块。
$config->default->method = 'index'; // 默认的方法。当请求中没有指定方法或者指定的方法不存在时,调用该方法。
/* 上传附件参数设定。*/
$config->file->dangers = 'php,jsp,py,rb,asp,'; // 不允许上传的文件类型列表。
$config->file->maxSize = 1024 * 1024; // 允许上传的文件大小,单位为字节。
/* 数据库参数设定。*/
$config->db->persistant = false; // 是否打开持久连接。
$config->db->driver = 'mysql'; // pdo的驱动类型目前暂时只支持mysql。
$config->db->dao = true; // 是否使用DAO。
$config->db->encoding = 'UTF8'; // 数据库的编码。
$config->db->strictMode = false; // 关闭MySQL的严格模式。
/* 通过对象引用全局变量。*/
$config->super2OBJ = true;
/* 包含自定义配置文件。*/
$myConfig = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'my.php';
if(file_exists($myConfig)) include $myConfig;
if(!isset($config->db->prefix)) $config->db->prefix = 'zt_';
/* 数据表的定义。*/
define('TABLE_COMPANY', $config->db->prefix . 'company');
define('TABLE_DEPT', $config->db->prefix . 'dept');
define('TABLE_CONFIG', $config->db->prefix . 'config');
define('TABLE_USER', $config->db->prefix . 'user');
define('TABLE_TODO', $config->db->prefix . 'todo');
define('TABLE_GROUP', $config->db->prefix . 'group');
define('TABLE_GROUPPRIV', $config->db->prefix . 'groupPriv');
define('TABLE_USERGROUP', $config->db->prefix . 'userGroup');
define('TABLE_USERQUERY', $config->db->prefix . 'userQuery');
define('TABLE_BUG', $config->db->prefix . 'bug');
define('TABLE_CASE', $config->db->prefix . 'case');
define('TABLE_CASESTEP', $config->db->prefix . 'caseStep');
define('TABLE_TESTTASK', $config->db->prefix . 'testTask');
define('TABLE_TESTRUN', $config->db->prefix . 'testRun');
define('TABLE_TESTRESULT', $config->db->prefix . 'testResult');
define('TABLE_USERTPL', $config->db->prefix . 'userTPL');
define('TABLE_PRODUCT', $config->db->prefix . 'product');
define('TABLE_STORY', $config->db->prefix . 'story');
define('TABLE_STORYSPEC', $config->db->prefix . 'storySpec');
define('TABLE_PRODUCTPLAN', $config->db->prefix . 'productPlan');
define('TABLE_RELEASE', $config->db->prefix . 'release');
define('TABLE_PROJECT', $config->db->prefix . 'project');
define('TABLE_TASK', $config->db->prefix . 'task');
define('TABLE_TEAM', $config->db->prefix . 'team');
define('TABLE_PROJECTPRODUCT', $config->db->prefix . 'projectProduct');
define('TABLE_PROJECTSTORY', $config->db->prefix . 'projectStory');
define('TABLE_TASKESTIMATE', $config->db->prefix . 'taskEstimate');
define('TABLE_EFFORT', $config->db->prefix . 'effort');
define('TABLE_BURN', $config->db->prefix . 'burn');
define('TABLE_BUILD', $config->db->prefix . 'build');
define('TABLE_DOCLIB', $config->db->prefix . 'docLib');
define('TABLE_DOC', $config->db->prefix . 'doc');
define('TABLE_MODULE', $config->db->prefix . 'module');
define('TABLE_ACTION', $config->db->prefix . 'action');
define('TABLE_FILE', $config->db->prefix . 'file');
define('TABLE_HISTORY', $config->db->prefix . 'history');
<?php
/**
* The config file of ZenTaoMS
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoMS
* @version $Id$
* @link http://www.zentao.net
*/
/* 基本参数设定。*/
$config->version = '1.3'; // 版本号,切勿修改。
$config->encoding = 'UTF-8'; // 网站的编码。
$config->cookiePath = '/'; // cookie的有效路径。
$config->cookieLife = time() + 2592000; // cookie的生命周期。
$config->timezone = 'Asia/Shanghai'; // 时区设置,详细的列表,请访问 http://www.php.net/manual/en/timezones.php
/* 请求方式设置。*/
$config->requestType = 'PATH_INFO'; // 如何获取当前请求的信息可选值PATH_INFO|GET
$config->pathType = 'clean'; // requestType=PATH_INFO: 请求url的格式可选值为full|cleanfull格式会带有参数名称clean则只有取值。
$config->requestFix = '-'; // requestType=PATH_INFO: 请求url的分隔符可选值为斜线、减号。后面两种形式有助于SEO。
$config->moduleVar = 'm'; // requestType=GET: 模块变量名。
$config->methodVar = 'f'; // requestType=GET: 方法变量名。
$config->viewVar = 't'; // requestType=GET: 模板变量名。
$config->sessionVar = 'sid'; // requestType=GET: session变量名
/* 视图和主题。*/
$config->views = ',html,json,csv,'; // 支持的视图列表
$config->themes = 'default,blue'; // 支持的主题列表。
/* 支持的语言列表。*/
$config->langs['zh-cn'] = '中文简体';
$config->langs['zh-tw'] = '中文繁體';
$config->langs['en'] = 'English';
$config->langs['ja'] = 'Japanese';
$config->langs['ko'] = 'Korean';
/* 默认参数设定。*/
$config->default->view = 'html'; // 默认的视图格式。
$config->default->lang = 'zh-cn'; // 默认的语言。
$config->default->theme = 'default'; // 默认的主题
$config->default->module = 'index'; // 默认的模块。当请求中没有指定模块时,加载该模块
$config->default->method = 'index'; // 默认的方法。当请求中没有指定方法或者指定的方法不存在时,调用该方法。
/* 上传附件参数设定。*/
$config->file->dangers = 'php,jsp,py,rb,asp,'; // 不允许上传的文件类型列表。
$config->file->maxSize = 1024 * 1024; // 允许上传的文件大小,单位为字节。
/* 数据库参数设定。*/
$config->db->persistant = false; // 是否打开持久连接。
$config->db->driver = 'mysql'; // pdo的驱动类型目前暂时只支持mysql。
$config->db->dao = true; // 是否使用DAO
$config->db->encoding = 'UTF8'; // 数据库的编码
$config->db->strictMode = false; // 关闭MySQL的严格模式
/* 通过对象引用全局变量。*/
$config->super2OBJ = true;
/* 包含自定义配置文件。*/
$myConfig = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'my.php';
if(file_exists($myConfig)) include $myConfig;
if(!isset($config->db->prefix)) $config->db->prefix = 'zt_';
/* 数据表的定义。*/
define('TABLE_COMPANY', $config->db->prefix . 'company');
define('TABLE_DEPT', $config->db->prefix . 'dept');
define('TABLE_CONFIG', $config->db->prefix . 'config');
define('TABLE_USER', $config->db->prefix . 'user');
define('TABLE_TODO', $config->db->prefix . 'todo');
define('TABLE_GROUP', $config->db->prefix . 'group');
define('TABLE_GROUPPRIV', $config->db->prefix . 'groupPriv');
define('TABLE_USERGROUP', $config->db->prefix . 'userGroup');
define('TABLE_USERQUERY', $config->db->prefix . 'userQuery');
define('TABLE_BUG', $config->db->prefix . 'bug');
define('TABLE_CASE', $config->db->prefix . 'case');
define('TABLE_CASESTEP', $config->db->prefix . 'caseStep');
define('TABLE_TESTTASK', $config->db->prefix . 'testTask');
define('TABLE_TESTRUN', $config->db->prefix . 'testRun');
define('TABLE_TESTRESULT', $config->db->prefix . 'testResult');
define('TABLE_USERTPL', $config->db->prefix . 'userTPL');
define('TABLE_PRODUCT', $config->db->prefix . 'product');
define('TABLE_STORY', $config->db->prefix . 'story');
define('TABLE_STORYSPEC', $config->db->prefix . 'storySpec');
define('TABLE_PRODUCTPLAN', $config->db->prefix . 'productPlan');
define('TABLE_RELEASE', $config->db->prefix . 'release');
define('TABLE_PROJECT', $config->db->prefix . 'project');
define('TABLE_TASK', $config->db->prefix . 'task');
define('TABLE_TEAM', $config->db->prefix . 'team');
define('TABLE_PROJECTPRODUCT', $config->db->prefix . 'projectProduct');
define('TABLE_PROJECTSTORY', $config->db->prefix . 'projectStory');
define('TABLE_TASKESTIMATE', $config->db->prefix . 'taskEstimate');
define('TABLE_EFFORT', $config->db->prefix . 'effort');
define('TABLE_BURN', $config->db->prefix . 'burn');
define('TABLE_BUILD', $config->db->prefix . 'build');
define('TABLE_DOCLIB', $config->db->prefix . 'docLib');
define('TABLE_DOC', $config->db->prefix . 'doc');
define('TABLE_MODULE', $config->db->prefix . 'module');
define('TABLE_ACTION', $config->db->prefix . 'action');
define('TABLE_FILE', $config->db->prefix . 'file');
define('TABLE_HISTORY', $config->db->prefix . 'history');

File diff suppressed because it is too large Load Diff

View File

@@ -1,63 +1,50 @@
<?php
/**
* The control file of action module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
class action extends control
{
/* 已删除记录列表。*/
public function trash($orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
/* 登记session。*/
$uri = $this->app->getURI(true);
$this->session->set('productList', $uri);
$this->session->set('productPlanList', $uri);
$this->session->set('releaseList', $uri);
$this->session->set('storyList', $uri);
$this->session->set('projectList', $uri);
$this->session->set('taskList', $uri);
$this->session->set('buildList', $uri);
$this->session->set('bugList', $uri);
$this->session->set('caseList', $uri);
$this->session->set('testtaskList', $uri);
/* 设置标题和导航条。*/
$this->view->header->title = $this->lang->action->trash;
$this->view->position[] = $this->lang->action->trash;
/* 获取已删除记录。*/
$this->app->loadClass('pager', $static = true);
$pager = pager::init($recTotal, $recPerPage, $pageID);
$this->view->trashes = $this->action->getTrashes($orderBy, $pager);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->users['system'] = 'system';
$this->view->orderBy = $orderBy;
$this->view->pager = $pager;
$this->display();
}
/* 还原某一个对象。*/
public function undelete($actionID)
{
$this->action->undelete($actionID);
die(js::locate(inlink('trash'), 'parent'));
}
}
<?php
/**
* The control file of action module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
class action extends control
{
/* 已删除记录列表。*/
public function trash($orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
/* 登记session。*/
$uri = $this->app->getURI(true);
$this->session->set('productList', $uri);
$this->session->set('productPlanList', $uri);
$this->session->set('releaseList', $uri);
$this->session->set('storyList', $uri);
$this->session->set('projectList', $uri);
$this->session->set('taskList', $uri);
$this->session->set('buildList', $uri);
$this->session->set('bugList', $uri);
$this->session->set('caseList', $uri);
$this->session->set('testtaskList', $uri);
/* 设置标题和导航条。*/
$this->view->header->title = $this->lang->action->trash;
$this->view->position[] = $this->lang->action->trash;
/* 获取已删除记录。*/
$this->app->loadClass('pager', $static = true);
$pager = pager::init($recTotal, $recPerPage, $pageID);
$this->view->trashes = $this->action->getTrashes($orderBy, $pager);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->users['system'] = 'system';
$this->view->orderBy = $orderBy;
$this->view->pager = $pager;
$this->display();
}
/* 还原某一个对象。*/
public function undelete($actionID)
{
$this->action->undelete($actionID);
die(js::locate(inlink('trash'), 'parent'));
}
}

View File

@@ -1,113 +1,100 @@
<?php
/**
* The action module English file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
$lang->action->common = 'Logs';
$lang->action->trash = 'Trash';
$lang->action->undelete = 'Restore';
$lang->action->objectType = 'Object';
$lang->action->objectID = 'ID';
$lang->action->objectName = 'Name';
$lang->action->actor = 'Actor';
$lang->action->date = 'Date';
$lang->action->objectTypes['product'] = 'PRODUCT';
$lang->action->objectTypes['story'] = 'STORY';
$lang->action->objectTypes['productplan'] = 'PLAN';
$lang->action->objectTypes['release'] = 'RELEASE';
$lang->action->objectTypes['project'] = 'PROJECT';
$lang->action->objectTypes['task'] = 'TASK';
$lang->action->objectTypes['build'] = 'Build';
$lang->action->objectTypes['bug'] = 'Bug';
$lang->action->objectTypes['case'] = 'Case';
$lang->action->objectTypes['testtask'] = 'Test Task';
$lang->action->objectTypes['user'] = 'User';
$lang->action->objectTypes['doc'] = 'DOC';
$lang->action->objectTypes['doclib'] = 'DocLib';
/* 用来描述操作历史记录.*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>';
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>';
$lang->action->desc->opened = '$date, Opened by <strong>$actor</strong>.';
$lang->action->desc->created = '$date, Created by <strong>$actor</strong>.';
$lang->action->desc->changed = '$date, Changed by <strong>$actor</strong>.';
$lang->action->desc->edited = '$date, Edited by <strong>$actor</strong>.';
$lang->action->desc->closed = '$date, Closed by <strong>$actor</strong>.';
$lang->action->desc->deleted = '$date, Deleted by <strong>$actor</strong>.';
$lang->action->desc->deletedfile = '$date, Deleted file by <strong>$actor</strong>, the file is <strong><i>$extra</i></strong>';
$lang->action->desc->erased = '$date, Erased by <strong>$actor</strong>.';
$lang->action->desc->undeleted = '$date, Restored by <strong>$actor</strong>.';
$lang->action->desc->commented = '$date, Commented by <strong>$actor</strong>.';
$lang->action->desc->activated = '$date, Activated by <strong>$actor</strong>.';
$lang->action->desc->moved = '$date, Moved by <strong>$actor</strong>, previouse is "$extra"';
$lang->action->desc->confirmed = '$date, Confirmed by <strong>$actor</strong>, version is<strong>#$extra</strong>';
$lang->action->desc->started = '$date, Started by <strong>$actor</strong>.';
$lang->action->desc->canceled = '$date, Canceled by <strong>$actor</strong>.';
$lang->action->desc->finished = '$date, Finished by <strong>$actor</strong>.';
$lang->action->desc->diff1 = 'Changed <strong><i>%s</i></strong>, old is "%s", new is "%s".<br />';
$lang->action->desc->diff2 = 'Changed <strong><i>%s</i></strong>, the diff is<blockquote>%s</blockquote>';
/* 用来显示动态信息.*/
$lang->action->label->created = 'created';
$lang->action->label->opened = 'opened';
$lang->action->label->changed = 'changed';
$lang->action->label->edited = 'edited';
$lang->action->label->closed = 'closed';
$lang->action->label->deleted = 'deleted';
$lang->action->label->deletedfile = 'deleted file';
$lang->action->label->erased = 'deleted';
$lang->action->label->undeleted = 'restore';
$lang->action->label->commented = 'commented';
$lang->action->label->activated = 'activated';
$lang->action->label->resolved = 'resolved';
$lang->action->label->reviewed = 'reviewed';
$lang->action->label->moved = 'moded';
$lang->action->label->confirmed = 'confirmed,';
$lang->action->label->linked2plan = 'link to plan';
$lang->action->label->unlinkedfromplan = 'unlink from plan';
$lang->action->label->linked2project = 'link to project';
$lang->action->label->unlinkedfromproject = 'unlik from project';
$lang->action->label->marked = 'edited';
$lang->action->label->started = 'started';
$lang->action->label->canceled = 'canceled';
$lang->action->label->finished = 'finished';
$lang->action->label->login = 'login';
$lang->action->label->logout = "logout";
/* 用来生成相应对象的链接.*/
$lang->action->label->product = 'product|product|view|productID=%s';
$lang->action->label->productplan = 'plan|productplan|view|productID=%s';
$lang->action->label->release = 'release|release|view|productID=%s';
$lang->action->label->story = 'story|story|view|storyID=%s';
$lang->action->label->project = 'project|project|view|projectID=%s';
$lang->action->label->task = 'task|task|view|taskID=%s';
$lang->action->label->build = 'build|build|view|buildID=%s';
$lang->action->label->bug = 'bug|bug|view|bugID=%s';
$lang->action->label->case = 'case|testcase|view|caseID=%s';
$lang->action->label->testtask = 'test task|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = 'doc library|doc|browse|libID=%s';
$lang->action->label->doc = 'doc|doc|view|docID=%s';
$lang->action->label->user = 'user';
$lang->action->label->space = ' ';
<?php
/**
* The action module English file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
$lang->action->common = 'Logs';
$lang->action->trash = 'Trash';
$lang->action->undelete = 'Restore';
$lang->action->objectType = 'Object';
$lang->action->objectID = 'ID';
$lang->action->objectName = 'Name';
$lang->action->actor = 'Actor';
$lang->action->date = 'Date';
$lang->action->objectTypes['product'] = 'PRODUCT';
$lang->action->objectTypes['story'] = 'STORY';
$lang->action->objectTypes['productplan'] = 'PLAN';
$lang->action->objectTypes['release'] = 'RELEASE';
$lang->action->objectTypes['project'] = 'PROJECT';
$lang->action->objectTypes['task'] = 'TASK';
$lang->action->objectTypes['build'] = 'Build';
$lang->action->objectTypes['bug'] = 'Bug';
$lang->action->objectTypes['case'] = 'Case';
$lang->action->objectTypes['testtask'] = 'Test Task';
$lang->action->objectTypes['user'] = 'User';
$lang->action->objectTypes['doc'] = 'DOC';
$lang->action->objectTypes['doclib'] = 'DocLib';
/* 用来描述操作历史记录.*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>';
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>';
$lang->action->desc->opened = '$date, Opened by <strong>$actor</strong>.';
$lang->action->desc->created = '$date, Created by <strong>$actor</strong>.';
$lang->action->desc->changed = '$date, Changed by <strong>$actor</strong>.';
$lang->action->desc->edited = '$date, Edited by <strong>$actor</strong>.';
$lang->action->desc->closed = '$date, Closed by <strong>$actor</strong>.';
$lang->action->desc->deleted = '$date, Deleted by <strong>$actor</strong>.';
$lang->action->desc->deletedfile = '$date, Deleted file by <strong>$actor</strong>, the file is <strong><i>$extra</i></strong>';
$lang->action->desc->erased = '$date, Erased by <strong>$actor</strong>.';
$lang->action->desc->undeleted = '$date, Restored by <strong>$actor</strong>.';
$lang->action->desc->commented = '$date, Commented by <strong>$actor</strong>.';
$lang->action->desc->activated = '$date, Activated by <strong>$actor</strong>.';
$lang->action->desc->moved = '$date, Moved by <strong>$actor</strong>, previouse is "$extra"';
$lang->action->desc->confirmed = '$date, Confirmed by <strong>$actor</strong>, version is<strong>#$extra</strong>';
$lang->action->desc->started = '$date, Started by <strong>$actor</strong>.';
$lang->action->desc->canceled = '$date, Canceled by <strong>$actor</strong>.';
$lang->action->desc->finished = '$date, Finished by <strong>$actor</strong>.';
$lang->action->desc->diff1 = 'Changed <strong><i>%s</i></strong>, old is "%s", new is "%s".<br />';
$lang->action->desc->diff2 = 'Changed <strong><i>%s</i></strong>, the diff is<blockquote>%s</blockquote>';
/* 用来显示动态信息.*/
$lang->action->label->created = 'created';
$lang->action->label->opened = 'opened';
$lang->action->label->changed = 'changed';
$lang->action->label->edited = 'edited';
$lang->action->label->closed = 'closed';
$lang->action->label->deleted = 'deleted';
$lang->action->label->deletedfile = 'deleted file';
$lang->action->label->erased = 'deleted';
$lang->action->label->undeleted = 'restore';
$lang->action->label->commented = 'commented';
$lang->action->label->activated = 'activated';
$lang->action->label->resolved = 'resolved';
$lang->action->label->reviewed = 'reviewed';
$lang->action->label->moved = 'moded';
$lang->action->label->confirmed = 'confirmed,';
$lang->action->label->linked2plan = 'link to plan';
$lang->action->label->unlinkedfromplan = 'unlink from plan';
$lang->action->label->linked2project = 'link to project';
$lang->action->label->unlinkedfromproject = 'unlik from project';
$lang->action->label->marked = 'edited';
$lang->action->label->started = 'started';
$lang->action->label->canceled = 'canceled';
$lang->action->label->finished = 'finished';
$lang->action->label->login = 'login';
$lang->action->label->logout = "logout";
/* 用来生成相应对象的链接.*/
$lang->action->label->product = 'product|product|view|productID=%s';
$lang->action->label->productplan = 'plan|productplan|view|productID=%s';
$lang->action->label->release = 'release|release|view|productID=%s';
$lang->action->label->story = 'story|story|view|storyID=%s';
$lang->action->label->project = 'project|project|view|projectID=%s';
$lang->action->label->task = 'task|task|view|taskID=%s';
$lang->action->label->build = 'build|build|view|buildID=%s';
$lang->action->label->bug = 'bug|bug|view|bugID=%s';
$lang->action->label->case = 'case|testcase|view|caseID=%s';
$lang->action->label->testtask = 'test task|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = 'doc library|doc|browse|libID=%s';
$lang->action->label->doc = 'doc|doc|view|docID=%s';
$lang->action->label->user = 'user';
$lang->action->label->space = ' ';

View File

@@ -1,113 +1,100 @@
<?php
/**
* The action module Japanese file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id: en.php 1000 2010-08-03 01:49:25Z yuren_@126.com $
* @link http://www.zentao.net
*/
$lang->action->common = 'ログ';
$lang->action->trash = 'ごみ';
$lang->action->undelete = '復元';
$lang->action->objectType = 'オブジェクト';
$lang->action->objectID = 'IDは';
$lang->action->objectName = '名';
$lang->action->actor = '俳優';
$lang->action->date = '日付';
$lang->action->objectTypes['product'] = '製品';
$lang->action->objectTypes['story'] = '話';
$lang->action->objectTypes['productplan'] = 'プラン';
$lang->action->objectTypes['release'] = 'リリース';
$lang->action->objectTypes['project'] = 'プロジェクト';
$lang->action->objectTypes['task'] = 'TASKを';
$lang->action->objectTypes['build'] = 'ビルド';
$lang->action->objectTypes['bug'] = 'バグ';
$lang->action->objectTypes['case'] = 'ケース';
$lang->action->objectTypes['testtask'] = 'テストタスク';
$lang->action->objectTypes['user'] = 'ユーザー';
$lang->action->objectTypes['doc'] = 'ドキュメント';
$lang->action->objectTypes['doclib'] = 'DocLib';
/* 用来描述操作历史记录.*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>';
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>';
$lang->action->desc->opened = '$date, Opened by <strong>$actor</strong>.';
$lang->action->desc->created = '$date, Created by <strong>$actor</strong>.';
$lang->action->desc->changed = '$date, Changed by <strong>$actor</strong>.';
$lang->action->desc->edited = '$date, Edited by <strong>$actor</strong>.';
$lang->action->desc->closed = '$date, Closed by <strong>$actor</strong>.';
$lang->action->desc->deleted = '$date, Deleted by <strong>$actor</strong>.';
$lang->action->desc->deletedfile = '$date, Deleted file by <strong>$actor</strong>, the file is <strong><i>$extra</i></strong>';
$lang->action->desc->erased = '$date, Erased by <strong>$actor</strong>.';
$lang->action->desc->undeleted = '$date, Restored by <strong>$actor</strong>.';
$lang->action->desc->commented = '$date, Commented by <strong>$actor</strong>.';
$lang->action->desc->activated = '$date, Activated by <strong>$actor</strong>.';
$lang->action->desc->moved = '$date, Moved by <strong>$actor</strong>, previouse is "$extra"';
$lang->action->desc->confirmed = '$date, Confirmed by <strong>$actor</strong>, version is<strong>#$extra</strong>';
$lang->action->desc->started = '$date, Started by <strong>$actor</strong>.';
$lang->action->desc->canceled = '$date, Canceled by <strong>$actor</strong>.';
$lang->action->desc->finished = '$date, Finished by <strong>$actor</strong>.';
$lang->action->desc->diff1 = 'Changed <strong><i>%s</i></strong>, old is "%s", new is "%s".<br />';
$lang->action->desc->diff2 = 'Changed <strong><i>%s</i></strong>, the diff is<blockquote>%s</blockquote>';
/* 用来显示动态信息.*/
$lang->action->label->created = '作成';
$lang->action->label->opened = 'オープン';
$lang->action->label->changed = '変更';
$lang->action->label->edited = '編集';
$lang->action->label->closed = '閉じた';
$lang->action->label->deleted = '削除された';
$lang->action->label->deletedfile = 'ファイルを削除';
$lang->action->label->erased = '削除された';
$lang->action->label->undeleted = '復元する';
$lang->action->label->commented = 'コメント';
$lang->action->label->activated = '活性化';
$lang->action->label->resolved = '解決';
$lang->action->label->reviewed = '見直し';
$lang->action->label->moved = '恥ずかしい';
$lang->action->label->confirmed = '、確認';
$lang->action->label->linked2plan = 'リンクを計画する';
$lang->action->label->unlinkedfromplan = 'プランからリンク解除';
$lang->action->label->linked2project = 'リンクがプロジェクトに';
$lang->action->label->unlinkedfromproject = 'プロジェクトからunlik';
$lang->action->label->marked = '編集';
$lang->action->label->started = '開始';
$lang->action->label->canceled = 'キャンセル';
$lang->action->label->finished = '終えた';
$lang->action->label->login = 'ログイン';
$lang->action->label->logout = "ログアウト";
/* 用来生成相应对象的链接.*/
$lang->action->label->product = 'product|product|view|productID=%s';
$lang->action->label->productplan = 'plan|productplan|view|productID=%s';
$lang->action->label->release = 'release|release|view|productID=%s';
$lang->action->label->story = 'story|story|view|storyID=%s';
$lang->action->label->project = 'project|project|view|projectID=%s';
$lang->action->label->task = 'task|task|view|taskID=%s';
$lang->action->label->build = 'build|build|view|buildID=%s';
$lang->action->label->bug = 'bug|bug|view|bugID=%s';
$lang->action->label->case = 'case|testcase|view|caseID=%s';
$lang->action->label->testtask = 'test task|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = 'doc library|doc|browse|libID=%s';
$lang->action->label->doc = 'doc|doc|view|docID=%s';
$lang->action->label->user = 'ユーザー';
$lang->action->label->space ='';
<?php
/**
* The action module Japanese file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id: en.php 1000 2010-08-03 01:49:25Z yuren_@126.com $
* @link http://www.zentao.net
*/
$lang->action->common = 'ログ';
$lang->action->trash = 'ごみ';
$lang->action->undelete = '復元';
$lang->action->objectType = 'オブジェクト';
$lang->action->objectID = 'IDは';
$lang->action->objectName = '名';
$lang->action->actor = '俳優';
$lang->action->date = '日付';
$lang->action->objectTypes['product'] = '製品';
$lang->action->objectTypes['story'] = '話';
$lang->action->objectTypes['productplan'] = 'プラン';
$lang->action->objectTypes['release'] = 'リリース';
$lang->action->objectTypes['project'] = 'プロジェクト';
$lang->action->objectTypes['task'] = 'TASKを';
$lang->action->objectTypes['build'] = 'ビルド';
$lang->action->objectTypes['bug'] = 'バグ';
$lang->action->objectTypes['case'] = 'ケース';
$lang->action->objectTypes['testtask'] = 'テストタスク';
$lang->action->objectTypes['user'] = 'ユーザー';
$lang->action->objectTypes['doc'] = 'ドキュメント';
$lang->action->objectTypes['doclib'] = 'DocLib';
/* 用来描述操作历史记录.*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>';
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>';
$lang->action->desc->opened = '$date, Opened by <strong>$actor</strong>.';
$lang->action->desc->created = '$date, Created by <strong>$actor</strong>.';
$lang->action->desc->changed = '$date, Changed by <strong>$actor</strong>.';
$lang->action->desc->edited = '$date, Edited by <strong>$actor</strong>.';
$lang->action->desc->closed = '$date, Closed by <strong>$actor</strong>.';
$lang->action->desc->deleted = '$date, Deleted by <strong>$actor</strong>.';
$lang->action->desc->deletedfile = '$date, Deleted file by <strong>$actor</strong>, the file is <strong><i>$extra</i></strong>';
$lang->action->desc->erased = '$date, Erased by <strong>$actor</strong>.';
$lang->action->desc->undeleted = '$date, Restored by <strong>$actor</strong>.';
$lang->action->desc->commented = '$date, Commented by <strong>$actor</strong>.';
$lang->action->desc->activated = '$date, Activated by <strong>$actor</strong>.';
$lang->action->desc->moved = '$date, Moved by <strong>$actor</strong>, previouse is "$extra"';
$lang->action->desc->confirmed = '$date, Confirmed by <strong>$actor</strong>, version is<strong>#$extra</strong>';
$lang->action->desc->started = '$date, Started by <strong>$actor</strong>.';
$lang->action->desc->canceled = '$date, Canceled by <strong>$actor</strong>.';
$lang->action->desc->finished = '$date, Finished by <strong>$actor</strong>.';
$lang->action->desc->diff1 = 'Changed <strong><i>%s</i></strong>, old is "%s", new is "%s".<br />';
$lang->action->desc->diff2 = 'Changed <strong><i>%s</i></strong>, the diff is<blockquote>%s</blockquote>';
/* 用来显示动态信息.*/
$lang->action->label->created = '作成';
$lang->action->label->opened = 'オープン';
$lang->action->label->changed = '変更';
$lang->action->label->edited = '編集';
$lang->action->label->closed = '閉じた';
$lang->action->label->deleted = '削除された';
$lang->action->label->deletedfile = 'ファイルを削除';
$lang->action->label->erased = '削除された';
$lang->action->label->undeleted = '復元する';
$lang->action->label->commented = 'コメント';
$lang->action->label->activated = '活性化';
$lang->action->label->resolved = '解決';
$lang->action->label->reviewed = '見直し';
$lang->action->label->moved = '恥ずかしい';
$lang->action->label->confirmed = '、確認';
$lang->action->label->linked2plan = 'リンクを計画する';
$lang->action->label->unlinkedfromplan = 'プランからリンク解除';
$lang->action->label->linked2project = 'リンクがプロジェクトに';
$lang->action->label->unlinkedfromproject = 'プロジェクトからunlik';
$lang->action->label->marked = '編集';
$lang->action->label->started = '開始';
$lang->action->label->canceled = 'キャンセル';
$lang->action->label->finished = '終えた';
$lang->action->label->login = 'ログイン';
$lang->action->label->logout = "ログアウト";
/* 用来生成相应对象的链接.*/
$lang->action->label->product = 'product|product|view|productID=%s';
$lang->action->label->productplan = 'plan|productplan|view|productID=%s';
$lang->action->label->release = 'release|release|view|productID=%s';
$lang->action->label->story = 'story|story|view|storyID=%s';
$lang->action->label->project = 'project|project|view|projectID=%s';
$lang->action->label->task = 'task|task|view|taskID=%s';
$lang->action->label->build = 'build|build|view|buildID=%s';
$lang->action->label->bug = 'bug|bug|view|bugID=%s';
$lang->action->label->case = 'case|testcase|view|caseID=%s';
$lang->action->label->testtask = 'test task|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = 'doc library|doc|browse|libID=%s';
$lang->action->label->doc = 'doc|doc|view|docID=%s';
$lang->action->label->user = 'ユーザー';
$lang->action->label->space ='';

View File

@@ -1,113 +1,100 @@
<?php
/**
* The action module Korean file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id: en.php 1000 2010-08-03 01:49:25Z yuren_@126.com $
* @link http://www.zentao.net
*/
$lang->action->common = '로그';
$lang->action->trash = '휴지통';
$lang->action->undelete = '복원';
$lang->action->objectType = '대상';
$lang->action->objectID = '신분증';
$lang->action->objectName = '이름';
$lang->action->actor = '배우';
$lang->action->date = '날짜';
$lang->action->objectTypes['product'] = '제품';
$lang->action->objectTypes['story'] = '이야기';
$lang->action->objectTypes['productplan'] = '플랑';
$lang->action->objectTypes['release'] = '공개 동의서';
$lang->action->objectTypes['project'] = '프로젝트';
$lang->action->objectTypes['task'] = '작업 내용';
$lang->action->objectTypes['build'] = '빌드';
$lang->action->objectTypes['bug'] = '곤충';
$lang->action->objectTypes['case'] = '케이스';
$lang->action->objectTypes['testtask'] = '테스트 작업';
$lang->action->objectTypes['user'] = '사용자';
$lang->action->objectTypes['doc'] = '덕';
$lang->action->objectTypes['doclib'] = 'DocLib';
/* 用来描述操作历史记录.*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>';
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>';
$lang->action->desc->opened = '$date, Opened by <strong>$actor</strong>.';
$lang->action->desc->created = '$date, Created by <strong>$actor</strong>.';
$lang->action->desc->changed = '$date, Changed by <strong>$actor</strong>.';
$lang->action->desc->edited = '$date, Edited by <strong>$actor</strong>.';
$lang->action->desc->closed = '$date, Closed by <strong>$actor</strong>.';
$lang->action->desc->deleted = '$date, Deleted by <strong>$actor</strong>.';
$lang->action->desc->deletedfile = '$date, Deleted file by <strong>$actor</strong>, the file is <strong><i>$extra</i></strong>';
$lang->action->desc->erased = '$date, Erased by <strong>$actor</strong>.';
$lang->action->desc->undeleted = '$date, Restored by <strong>$actor</strong>.';
$lang->action->desc->commented = '$date, Commented by <strong>$actor</strong>.';
$lang->action->desc->activated = '$date, Activated by <strong>$actor</strong>.';
$lang->action->desc->moved = '$date, Moved by <strong>$actor</strong>, previouse is "$extra"';
$lang->action->desc->confirmed = '$date, Confirmed by <strong>$actor</strong>, version is<strong>#$extra</strong>';
$lang->action->desc->started = '$date, Started by <strong>$actor</strong>.';
$lang->action->desc->canceled = '$date, Canceled by <strong>$actor</strong>.';
$lang->action->desc->finished = '$date, Finished by <strong>$actor</strong>.';
$lang->action->desc->diff1 = 'Changed <strong><i>%s</i></strong>, old is "%s", new is "%s".<br />';
$lang->action->desc->diff2 = 'Changed <strong><i>%s</i></strong>, the diff is<blockquote>%s</blockquote>';
/* 用来显示动态信息.*/
$lang->action->label->created = '생성';
$lang->action->label->opened = '오픈';
$lang->action->label->changed = '변경됨';
$lang->action->label->edited = '편집';
$lang->action->label->closed = '폐쇄';
$lang->action->label->deleted = '삭제';
$lang->action->label->deletedfile = '파일을 삭제';
$lang->action->label->erased = '삭제';
$lang->action->label->undeleted = '복원';
$lang->action->label->commented = '논평';
$lang->action->label->activated = '활성화';
$lang->action->label->resolved = '해결';
$lang->action->label->reviewed = '검토';
$lang->action->label->moved = 'moded';
$lang->action->label->confirmed = ', 확인';
$lang->action->label->linked2plan = '링크 계획';
$lang->action->label->unlinkedfromplan = '계획에서 연결을 해제';
$lang->action->label->linked2project = '링크는 프로젝트에';
$lang->action->label->unlinkedfromproject = '프로젝트에서 unlik';
$lang->action->label->marked = '편집';
$lang->action->label->started = '시작';
$lang->action->label->canceled = '취소';
$lang->action->label->finished = '완료';
$lang->action->label->login = '로그인';
$lang->action->label->logout = "로그아웃";
/* 用来生成相应对象的链接.*/
$lang->action->label->product = 'product|product|view|productID=%s';
$lang->action->label->productplan = 'plan|productplan|view|productID=%s';
$lang->action->label->release = 'release|release|view|productID=%s';
$lang->action->label->story = 'story|story|view|storyID=%s';
$lang->action->label->project = 'project|project|view|projectID=%s';
$lang->action->label->task = 'task|task|view|taskID=%s';
$lang->action->label->build = 'build|build|view|buildID=%s';
$lang->action->label->bug = 'bug|bug|view|bugID=%s';
$lang->action->label->case = 'case|testcase|view|caseID=%s';
$lang->action->label->testtask = 'test task|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = 'doc library|doc|browse|libID=%s';
$lang->action->label->doc = 'doc|doc|view|docID=%s';
$lang->action->label->user = '사용자';
$lang->action->label->space = ' ';
<?php
/**
* The action module Korean file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id: en.php 1000 2010-08-03 01:49:25Z yuren_@126.com $
* @link http://www.zentao.net
*/
$lang->action->common = '로그';
$lang->action->trash = '휴지통';
$lang->action->undelete = '복원';
$lang->action->objectType = '대상';
$lang->action->objectID = '신분증';
$lang->action->objectName = '이름';
$lang->action->actor = '배우';
$lang->action->date = '날짜';
$lang->action->objectTypes['product'] = '제품';
$lang->action->objectTypes['story'] = '이야기';
$lang->action->objectTypes['productplan'] = '플랑';
$lang->action->objectTypes['release'] = '공개 동의서';
$lang->action->objectTypes['project'] = '프로젝트';
$lang->action->objectTypes['task'] = '작업 내용';
$lang->action->objectTypes['build'] = '빌드';
$lang->action->objectTypes['bug'] = '곤충';
$lang->action->objectTypes['case'] = '케이스';
$lang->action->objectTypes['testtask'] = '테스트 작업';
$lang->action->objectTypes['user'] = '사용자';
$lang->action->objectTypes['doc'] = '';
$lang->action->objectTypes['doclib'] = 'DocLib';
/* 用来描述操作历史记录.*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>';
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>';
$lang->action->desc->opened = '$date, Opened by <strong>$actor</strong>.';
$lang->action->desc->created = '$date, Created by <strong>$actor</strong>.';
$lang->action->desc->changed = '$date, Changed by <strong>$actor</strong>.';
$lang->action->desc->edited = '$date, Edited by <strong>$actor</strong>.';
$lang->action->desc->closed = '$date, Closed by <strong>$actor</strong>.';
$lang->action->desc->deleted = '$date, Deleted by <strong>$actor</strong>.';
$lang->action->desc->deletedfile = '$date, Deleted file by <strong>$actor</strong>, the file is <strong><i>$extra</i></strong>';
$lang->action->desc->erased = '$date, Erased by <strong>$actor</strong>.';
$lang->action->desc->undeleted = '$date, Restored by <strong>$actor</strong>.';
$lang->action->desc->commented = '$date, Commented by <strong>$actor</strong>.';
$lang->action->desc->activated = '$date, Activated by <strong>$actor</strong>.';
$lang->action->desc->moved = '$date, Moved by <strong>$actor</strong>, previouse is "$extra"';
$lang->action->desc->confirmed = '$date, Confirmed by <strong>$actor</strong>, version is<strong>#$extra</strong>';
$lang->action->desc->started = '$date, Started by <strong>$actor</strong>.';
$lang->action->desc->canceled = '$date, Canceled by <strong>$actor</strong>.';
$lang->action->desc->finished = '$date, Finished by <strong>$actor</strong>.';
$lang->action->desc->diff1 = 'Changed <strong><i>%s</i></strong>, old is "%s", new is "%s".<br />';
$lang->action->desc->diff2 = 'Changed <strong><i>%s</i></strong>, the diff is<blockquote>%s</blockquote>';
/* 用来显示动态信息.*/
$lang->action->label->created = '생성';
$lang->action->label->opened = '오픈';
$lang->action->label->changed = '변경됨';
$lang->action->label->edited = '편집';
$lang->action->label->closed = '폐쇄';
$lang->action->label->deleted = '삭제';
$lang->action->label->deletedfile = '파일을 삭제';
$lang->action->label->erased = '삭제';
$lang->action->label->undeleted = '복원';
$lang->action->label->commented = '논평';
$lang->action->label->activated = '활성화';
$lang->action->label->resolved = '해결';
$lang->action->label->reviewed = '검토';
$lang->action->label->moved = 'moded';
$lang->action->label->confirmed = ', 확인';
$lang->action->label->linked2plan = '링크 계획';
$lang->action->label->unlinkedfromplan = '계획에서 연결을 해제';
$lang->action->label->linked2project = '링크는 프로젝트에';
$lang->action->label->unlinkedfromproject = '프로젝트에서 unlik';
$lang->action->label->marked = '편집';
$lang->action->label->started = '시작';
$lang->action->label->canceled = '취소';
$lang->action->label->finished = '완료';
$lang->action->label->login = '로그인';
$lang->action->label->logout = "로그아웃";
/* 用来生成相应对象的链接.*/
$lang->action->label->product = 'product|product|view|productID=%s';
$lang->action->label->productplan = 'plan|productplan|view|productID=%s';
$lang->action->label->release = 'release|release|view|productID=%s';
$lang->action->label->story = 'story|story|view|storyID=%s';
$lang->action->label->project = 'project|project|view|projectID=%s';
$lang->action->label->task = 'task|task|view|taskID=%s';
$lang->action->label->build = 'build|build|view|buildID=%s';
$lang->action->label->bug = 'bug|bug|view|bugID=%s';
$lang->action->label->case = 'case|testcase|view|caseID=%s';
$lang->action->label->testtask = 'test task|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = 'doc library|doc|browse|libID=%s';
$lang->action->label->doc = 'doc|doc|view|docID=%s';
$lang->action->label->user = '사용자';
$lang->action->label->space = ' ';

View File

@@ -1,113 +1,100 @@
<?php
/**
* The action module zh-cn file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
$lang->action->common = '系统日志';
$lang->action->trash = '回收站';
$lang->action->undelete = '还原';
$lang->action->objectType = '对象类型';
$lang->action->objectID = '对象ID';
$lang->action->objectName = '对象名称';
$lang->action->actor = '操作者';
$lang->action->date = '日期';
$lang->action->objectTypes['product'] = '产品';
$lang->action->objectTypes['story'] = '需求';
$lang->action->objectTypes['productplan'] = '产品计划';
$lang->action->objectTypes['release'] = '发布';
$lang->action->objectTypes['project'] = '项目';
$lang->action->objectTypes['task'] = '任务';
$lang->action->objectTypes['build'] = 'Build';
$lang->action->objectTypes['bug'] = 'Bug';
$lang->action->objectTypes['case'] = '用例';
$lang->action->objectTypes['testtask'] = '测试任务';
$lang->action->objectTypes['user'] = '用户';
$lang->action->objectTypes['doc'] = '文档';
$lang->action->objectTypes['doclib'] = '文档库';
/* 用来描述操作历史记录。*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>' . "\n";
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>' . "\n";
$lang->action->desc->opened = '$date, 由 <strong>$actor</strong> 创建。' . "\n";
$lang->action->desc->created = '$date, 由 <strong>$actor</strong> 创建。' . "\n";
$lang->action->desc->changed = '$date, 由 <strong>$actor</strong> 变更。' . "\n";
$lang->action->desc->edited = '$date, 由 <strong>$actor</strong> 编辑。' . "\n";
$lang->action->desc->closed = '$date, 由 <strong>$actor</strong> 关闭。' . "\n";
$lang->action->desc->deleted = '$date, 由 <strong>$actor</strong> 删除。' . "\n";
$lang->action->desc->deletedfile = '$date, 由 <strong>$actor</strong> 删除了附件:<strong><i>$extra</i></strong>' . "\n";
$lang->action->desc->erased = '$date, 由 <strong>$actor</strong> 删除。' . "\n";
$lang->action->desc->undeleted = '$date, 由 <strong>$actor</strong> 还原。' . "\n";
$lang->action->desc->commented = '$date, 由 <strong>$actor</strong> 发表评论。' . "\n";
$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->started = '$date, 由 <strong>$actor</strong> 启动。' . "\n";
$lang->action->desc->canceled = '$date, 由 <strong>$actor</strong> 取消。' . "\n";
$lang->action->desc->finished = '$date, 由 <strong>$actor</strong> 完成。' . "\n";
$lang->action->desc->diff1 = '修改了 <strong><i>%s</i></strong>,旧值为 "%s",新值为 "%s"。<br />' . "\n";
$lang->action->desc->diff2 = '修改了 <strong><i>%s</i></strong>,区别为:' . "\n" . '<blockquote>%s</blockquote>' . "\n";
/* 用来显示动态信息。*/
$lang->action->label->created = '创建了';
$lang->action->label->opened = '创建了';
$lang->action->label->changed = '变更了';
$lang->action->label->edited = '编辑了';
$lang->action->label->closed = '关闭了';
$lang->action->label->deleted = '删除了';
$lang->action->label->deletedfile = '删除附件';
$lang->action->label->erased = '删除了';
$lang->action->label->undeleted = '还原了';
$lang->action->label->commented = '评论了';
$lang->action->label->activated = '激活了';
$lang->action->label->resolved = '解决了';
$lang->action->label->reviewed = '评审了';
$lang->action->label->moved = '移动了';
$lang->action->label->confirmed = '确认了需求,';
$lang->action->label->linked2plan = '关联计划';
$lang->action->label->unlinkedfromplan = '移除计划';
$lang->action->label->linked2project = '关联项目';
$lang->action->label->unlinkedfromproject = '移除项目';
$lang->action->label->marked = '编辑了';
$lang->action->label->started = '开始了';
$lang->action->label->canceled = '取消了';
$lang->action->label->finished = '完成了';
$lang->action->label->login = '登录系统';
$lang->action->label->logout = "退出登录";
/* 用来生成相应对象的链接。*/
$lang->action->label->product = '产品|product|view|productID=%s';
$lang->action->label->productplan = '计划|productplan|view|productID=%s';
$lang->action->label->release = '发布|release|view|productID=%s';
$lang->action->label->story = '需求|story|view|storyID=%s';
$lang->action->label->project = '项目|project|view|projectID=%s';
$lang->action->label->task = '任务|task|view|taskID=%s';
$lang->action->label->build = 'Build|build|view|buildID=%s';
$lang->action->label->bug = 'Bug|bug|view|bugID=%s';
$lang->action->label->case = '用例|testcase|view|caseID=%s';
$lang->action->label->testtask = '测试任务|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = '文档库|doc|browse|libID=%s';
$lang->action->label->doc = '文档|doc|view|docID=%s';
$lang->action->label->user = '用户';
$lang->action->label->space = ' ';
<?php
/**
* The action module zh-cn file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
$lang->action->common = '系统日志';
$lang->action->trash = '回收站';
$lang->action->undelete = '还原';
$lang->action->objectType = '对象类型';
$lang->action->objectID = '对象ID';
$lang->action->objectName = '对象名称';
$lang->action->actor = '操作者';
$lang->action->date = '日期';
$lang->action->objectTypes['product'] = '产品';
$lang->action->objectTypes['story'] = '需求';
$lang->action->objectTypes['productplan'] = '产品计划';
$lang->action->objectTypes['release'] = '发布';
$lang->action->objectTypes['project'] = '项目';
$lang->action->objectTypes['task'] = '任务';
$lang->action->objectTypes['build'] = 'Build';
$lang->action->objectTypes['bug'] = 'Bug';
$lang->action->objectTypes['case'] = '用例';
$lang->action->objectTypes['testtask'] = '测试任务';
$lang->action->objectTypes['user'] = '用户';
$lang->action->objectTypes['doc'] = '文档';
$lang->action->objectTypes['doclib'] = '文档库';
/* 用来描述操作历史记录。*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>' . "\n";
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>' . "\n";
$lang->action->desc->opened = '$date, 由 <strong>$actor</strong> 创建。' . "\n";
$lang->action->desc->created = '$date, 由 <strong>$actor</strong> 创建。' . "\n";
$lang->action->desc->changed = '$date, 由 <strong>$actor</strong> 变更。' . "\n";
$lang->action->desc->edited = '$date, 由 <strong>$actor</strong> 编辑。' . "\n";
$lang->action->desc->closed = '$date, 由 <strong>$actor</strong> 关闭。' . "\n";
$lang->action->desc->deleted = '$date, 由 <strong>$actor</strong> 删除。' . "\n";
$lang->action->desc->deletedfile = '$date, 由 <strong>$actor</strong> 删除了附件:<strong><i>$extra</i></strong>' . "\n";
$lang->action->desc->erased = '$date, 由 <strong>$actor</strong> 删除。' . "\n";
$lang->action->desc->undeleted = '$date, 由 <strong>$actor</strong> 还原。' . "\n";
$lang->action->desc->commented = '$date, 由 <strong>$actor</strong> 发表评论。' . "\n";
$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->started = '$date, 由 <strong>$actor</strong> 启动。' . "\n";
$lang->action->desc->canceled = '$date, 由 <strong>$actor</strong> 取消。' . "\n";
$lang->action->desc->finished = '$date, 由 <strong>$actor</strong> 完成。' . "\n";
$lang->action->desc->diff1 = '修改了 <strong><i>%s</i></strong>,旧值为 "%s",新值为 "%s"。<br />' . "\n";
$lang->action->desc->diff2 = '修改了 <strong><i>%s</i></strong>,区别为:' . "\n" . '<blockquote>%s</blockquote>' . "\n";
/* 用来显示动态信息。*/
$lang->action->label->created = '创建了';
$lang->action->label->opened = '创建了';
$lang->action->label->changed = '变更了';
$lang->action->label->edited = '编辑了';
$lang->action->label->closed = '关闭了';
$lang->action->label->deleted = '删除了';
$lang->action->label->deletedfile = '删除附件';
$lang->action->label->erased = '删除了';
$lang->action->label->undeleted = '还原了';
$lang->action->label->commented = '评论了';
$lang->action->label->activated = '激活了';
$lang->action->label->resolved = '解决了';
$lang->action->label->reviewed = '评审了';
$lang->action->label->moved = '移动了';
$lang->action->label->confirmed = '确认了需求,';
$lang->action->label->linked2plan = '关联计划';
$lang->action->label->unlinkedfromplan = '移除计划';
$lang->action->label->linked2project = '关联项目';
$lang->action->label->unlinkedfromproject = '移除项目';
$lang->action->label->marked = '编辑了';
$lang->action->label->started = '开始了';
$lang->action->label->canceled = '取消了';
$lang->action->label->finished = '完成了';
$lang->action->label->login = '登录系统';
$lang->action->label->logout = "退出登录";
/* 用来生成相应对象的链接。*/
$lang->action->label->product = '产品|product|view|productID=%s';
$lang->action->label->productplan = '计划|productplan|view|productID=%s';
$lang->action->label->release = '发布|release|view|productID=%s';
$lang->action->label->story = '需求|story|view|storyID=%s';
$lang->action->label->project = '项目|project|view|projectID=%s';
$lang->action->label->task = '任务|task|view|taskID=%s';
$lang->action->label->build = 'Build|build|view|buildID=%s';
$lang->action->label->bug = 'Bug|bug|view|bugID=%s';
$lang->action->label->case = '用例|testcase|view|caseID=%s';
$lang->action->label->testtask = '测试任务|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = '文档库|doc|browse|libID=%s';
$lang->action->label->doc = '文档|doc|view|docID=%s';
$lang->action->label->user = '用户';
$lang->action->label->space = ' ';

View File

@@ -1,113 +1,100 @@
<?php
/**
* The action module zh-tw file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id: zh-tw.php 1111 2010-09-14 03:16:08Z yuren_@126.com $
* @link http://www.zentao.net
*/
$lang->action->common = '系統日誌';
$lang->action->trash = '資源回收筒';
$lang->action->undelete = '還原';
$lang->action->objectType = '對象類型';
$lang->action->objectID = '對象ID';
$lang->action->objectName = '對象名稱';
$lang->action->actor = '操作者';
$lang->action->date = '日期';
$lang->action->objectTypes['product'] = '產品';
$lang->action->objectTypes['story'] = '需求';
$lang->action->objectTypes['productplan'] = '產品計劃';
$lang->action->objectTypes['release'] = '發佈';
$lang->action->objectTypes['project'] = '項目';
$lang->action->objectTypes['task'] = '任務';
$lang->action->objectTypes['build'] = 'Build';
$lang->action->objectTypes['bug'] = 'Bug';
$lang->action->objectTypes['case'] = '用例';
$lang->action->objectTypes['testtask'] = '測試任務';
$lang->action->objectTypes['user'] = '用戶';
$lang->action->objectTypes['doc'] = '文檔';
$lang->action->objectTypes['doclib'] = '文檔庫';
/* 用來描述操作歷史記錄。*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>';
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>';
$lang->action->desc->opened = '$date, 由 <strong>$actor</strong> 創建。';
$lang->action->desc->created = '$date, 由 <strong>$actor</strong> 創建。';
$lang->action->desc->changed = '$date, 由 <strong>$actor</strong> 變更。';
$lang->action->desc->edited = '$date, 由 <strong>$actor</strong> 編輯。';
$lang->action->desc->closed = '$date, 由 <strong>$actor</strong> 關閉。';
$lang->action->desc->deleted = '$date, 由 <strong>$actor</strong> 刪除。';
$lang->action->desc->deletedfile = '$date, 由 <strong>$actor</strong> 刪除了附件:<strong><i>$extra</i></strong>';
$lang->action->desc->erased = '$date, 由 <strong>$actor</strong> 刪除。';
$lang->action->desc->undeleted = '$date, 由 <strong>$actor</strong> 還原。';
$lang->action->desc->commented = '$date, 由 <strong>$actor</strong> 發表評論。';
$lang->action->desc->activated = '$date, 由 <strong>$actor</strong> 激活。';
$lang->action->desc->moved = '$date, 由 <strong>$actor</strong> 移動,之前為 "$extra"';
$lang->action->desc->confirmed = '$date, 由 <strong>$actor</strong> 確認需求變動,最新版本為<strong>#$extra</strong>';
$lang->action->desc->started = '$date, 由 <strong>$actor</strong> 啟動。';
$lang->action->desc->canceled = '$date, 由 <strong>$actor</strong> 取消。';
$lang->action->desc->finished = '$date, 由 <strong>$actor</strong> 完成。';
$lang->action->desc->diff1 = '修改了 <strong><i>%s</i></strong>,舊值為 "%s",新值為 "%s"。<br />';
$lang->action->desc->diff2 = '修改了 <strong><i>%s</i></strong>,區別為:<blockquote>%s</blockquote>';
/* 用來顯示動態信息。*/
$lang->action->label->created = '創建了';
$lang->action->label->opened = '創建了';
$lang->action->label->changed = '變更了';
$lang->action->label->edited = '編輯了';
$lang->action->label->closed = '關閉了';
$lang->action->label->deleted = '刪除了';
$lang->action->label->deletedfile = '刪除附件';
$lang->action->label->erased = '刪除了';
$lang->action->label->undeleted = '還原了';
$lang->action->label->commented = '評論了';
$lang->action->label->activated = '激活了';
$lang->action->label->resolved = '解決了';
$lang->action->label->reviewed = '評審了';
$lang->action->label->moved = '移動了';
$lang->action->label->confirmed = '確認了需求,';
$lang->action->label->linked2plan = '關聯計劃';
$lang->action->label->unlinkedfromplan = '移除計劃';
$lang->action->label->linked2project = '關聯項目';
$lang->action->label->unlinkedfromproject = '移除項目';
$lang->action->label->marked = '編輯了';
$lang->action->label->started = '開始了';
$lang->action->label->canceled = '取消了';
$lang->action->label->finished = '完成了';
$lang->action->label->login = '登錄系統';
$lang->action->label->logout = "退出登錄";
/* 用來生成相應對象的連結。*/
$lang->action->label->product = '產品|product|view|productID=%s';
$lang->action->label->productplan = '計劃|productplan|view|productID=%s';
$lang->action->label->release = '發佈|release|view|productID=%s';
$lang->action->label->story = '需求|story|view|storyID=%s';
$lang->action->label->project = '項目|project|view|projectID=%s';
$lang->action->label->task = '任務|task|view|taskID=%s';
$lang->action->label->build = 'Build|build|view|buildID=%s';
$lang->action->label->bug = 'Bug|bug|view|bugID=%s';
$lang->action->label->case = '用例|testcase|view|caseID=%s';
$lang->action->label->testtask = '測試任務|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = '文檔庫|doc|browse|libID=%s';
$lang->action->label->doc = '文檔|doc|view|docID=%s';
$lang->action->label->user = '用戶';
$lang->action->label->space = ' ';
<?php
/**
* The action module zh-tw file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id: zh-tw.php 1111 2010-09-14 03:16:08Z yuren_@126.com $
* @link http://www.zentao.net
*/
$lang->action->common = '系統日誌';
$lang->action->trash = '資源回收筒';
$lang->action->undelete = '還原';
$lang->action->objectType = '對象類型';
$lang->action->objectID = '對象ID';
$lang->action->objectName = '對象名稱';
$lang->action->actor = '操作者';
$lang->action->date = '日期';
$lang->action->objectTypes['product'] = '產品';
$lang->action->objectTypes['story'] = '需求';
$lang->action->objectTypes['productplan'] = '產品計劃';
$lang->action->objectTypes['release'] = '發佈';
$lang->action->objectTypes['project'] = '項目';
$lang->action->objectTypes['task'] = '任務';
$lang->action->objectTypes['build'] = 'Build';
$lang->action->objectTypes['bug'] = 'Bug';
$lang->action->objectTypes['case'] = '用例';
$lang->action->objectTypes['testtask'] = '測試任務';
$lang->action->objectTypes['user'] = '用戶';
$lang->action->objectTypes['doc'] = '文檔';
$lang->action->objectTypes['doclib'] = '文檔庫';
/* 用來描述操作歷史記錄。*/
$lang->action->desc->common = '$date, <strong>$action</strong> by <strong>$actor</strong>';
$lang->action->desc->extra = '$date, <strong>$action</strong> as <strong>$extra</strong> by <strong>$actor</strong>';
$lang->action->desc->opened = '$date, 由 <strong>$actor</strong> 創建。';
$lang->action->desc->created = '$date, 由 <strong>$actor</strong> 創建。';
$lang->action->desc->changed = '$date, 由 <strong>$actor</strong> 變更。';
$lang->action->desc->edited = '$date, 由 <strong>$actor</strong> 編輯。';
$lang->action->desc->closed = '$date, 由 <strong>$actor</strong> 關閉。';
$lang->action->desc->deleted = '$date, 由 <strong>$actor</strong> 刪除。';
$lang->action->desc->deletedfile = '$date, 由 <strong>$actor</strong> 刪除了附件:<strong><i>$extra</i></strong>';
$lang->action->desc->erased = '$date, 由 <strong>$actor</strong> 刪除。';
$lang->action->desc->undeleted = '$date, 由 <strong>$actor</strong> 還原。';
$lang->action->desc->commented = '$date, 由 <strong>$actor</strong> 發表評論。';
$lang->action->desc->activated = '$date, 由 <strong>$actor</strong> 激活。';
$lang->action->desc->moved = '$date, <strong>$actor</strong> 移動,之前為 "$extra"';
$lang->action->desc->confirmed = '$date, <strong>$actor</strong> 確認需求變動,最新版本為<strong>#$extra</strong>';
$lang->action->desc->started = '$date, 由 <strong>$actor</strong> 啟動。';
$lang->action->desc->canceled = '$date, 由 <strong>$actor</strong> 取消。';
$lang->action->desc->finished = '$date, 由 <strong>$actor</strong> 完成。';
$lang->action->desc->diff1 = '修改了 <strong><i>%s</i></strong>,舊值為 "%s",新值為 "%s"。<br />';
$lang->action->desc->diff2 = '修改了 <strong><i>%s</i></strong>,區別為:<blockquote>%s</blockquote>';
/* 用來顯示動態信息。*/
$lang->action->label->created = '創建了';
$lang->action->label->opened = '創建了';
$lang->action->label->changed = '變更了';
$lang->action->label->edited = '編輯了';
$lang->action->label->closed = '關閉了';
$lang->action->label->deleted = '刪除了';
$lang->action->label->deletedfile = '刪除附件';
$lang->action->label->erased = '刪除了';
$lang->action->label->undeleted = '還原了';
$lang->action->label->commented = '評論了';
$lang->action->label->activated = '激活了';
$lang->action->label->resolved = '解決了';
$lang->action->label->reviewed = '評審了';
$lang->action->label->moved = '移動了';
$lang->action->label->confirmed = '確認了需求,';
$lang->action->label->linked2plan = '關聯計劃';
$lang->action->label->unlinkedfromplan = '移除計劃';
$lang->action->label->linked2project = '關聯項目';
$lang->action->label->unlinkedfromproject = '移除項目';
$lang->action->label->marked = '編輯了';
$lang->action->label->started = '開始了';
$lang->action->label->canceled = '取消了';
$lang->action->label->finished = '完成了';
$lang->action->label->login = '登錄系統';
$lang->action->label->logout = "退出登錄";
/* 用來生成相應對象的連結。*/
$lang->action->label->product = '產品|product|view|productID=%s';
$lang->action->label->productplan = '計劃|productplan|view|productID=%s';
$lang->action->label->release = '發佈|release|view|productID=%s';
$lang->action->label->story = '需求|story|view|storyID=%s';
$lang->action->label->project = '項目|project|view|projectID=%s';
$lang->action->label->task = '任務|task|view|taskID=%s';
$lang->action->label->build = 'Build|build|view|buildID=%s';
$lang->action->label->bug = 'Bug|bug|view|bugID=%s';
$lang->action->label->case = '用例|testcase|view|caseID=%s';
$lang->action->label->testtask = '測試任務|testtask|view|caseID=%s';
$lang->action->label->todo = 'todo|todo|view|todoID=%s';
$lang->action->label->doclib = '文檔庫|doc|browse|libID=%s';
$lang->action->label->doc = '文檔|doc|view|docID=%s';
$lang->action->label->user = '用戶';
$lang->action->label->space = ' ';

View File

@@ -1,240 +1,227 @@
<?php
/**
* The model file of action module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class actionModel extends model
{
const CAN_UNDELETED = 1; // 标记extra字段为可以还原。
const BE_UNDELETED = 0; // 标记extra字段为已经还原。
/* 创建一条action动作。*/
public function create($objectType, $objectID, $actionType, $comment = '', $extra = '')
{
$action->objectType = strtolower($objectType);
$action->objectID = $objectID;
$action->actor = $this->app->user->account;
$action->action = strtolower($actionType);
$action->date = helper::now();
$action->comment = htmlspecialchars($comment);
$action->extra = $extra;
$this->dao->insert(TABLE_ACTION)->data($action)->autoCheck()->exec();
return $this->dbh->lastInsertID();
}
/* 返回某一个对象的所有action列表。*/
public function getList($objectType, $objectID)
{
$actions = $this->dao->select('*')->from(TABLE_ACTION)
->where('objectType')->eq($objectType)
->andWhere('objectID')->eq($objectID)
->orderBy('id')->fetchAll('id');
$histories = $this->getHistory(array_keys($actions));
foreach($actions as $actionID => $action)
{
$action->history = isset($histories[$actionID]) ? $histories[$actionID] : array();
$actions[$actionID] = $action;
}
return $actions;
}
/* 获得action信息。*/
public function getById($actionID)
{
return $this->dao->findById((int)$actionID)->from(TABLE_ACTION)->fetch();
}
/* 获得所有的删除记录列表。*/
public function getTrashes($orderBy, $pager)
{
$trashes = $this->dao->select('*')->from(TABLE_ACTION)
->where('action')->eq('deleted')
->andWhere('extra')->eq(self::CAN_UNDELETED)
->orderBy($orderBy)->page($pager)->fetchAll();
if(!$trashes) return array();
/* 将对象按照类型分开,然后查找其对应的名称。*/
foreach($trashes as $object) $typeTrashes[$object->objectType][] = $object->objectID;
foreach($typeTrashes as $objectType => $objectIds)
{
$objectIds = array_unique($objectIds);
$table = $this->config->action->objectTables[$objectType];
$field = $this->config->action->objectNameFields[$objectType];
$objectNames[$objectType] = $this->dao->select("id, $field AS name")->from($table)->where('id')->in($objectIds)->fetchPairs();
}
/* 将name字段添加到trashes中。*/
foreach($trashes as $trash) $trash->objectName = $objectNames[$trash->objectType][$trash->objectID];
return $trashes;
}
/* 返回某一个action所对应的字段修改记录。*/
public function getHistory($actionID)
{
return $this->dao->select()->from(TABLE_HISTORY)->where('action')->in($actionID)->orderBy('id')->fetchGroup('action');
}
/* 记录历史。*/
public function logHistory($actionID, $changes)
{
foreach($changes as $change)
{
$change['action'] = $actionID;
$this->dao->insert(TABLE_HISTORY)->data($change)->exec();
}
}
/* 打印action标题显示在每一个对象的详情界面。*/
public function printAction($action)
{
$objectType = $action->objectType;
$actionType = strtolower($action->action);
/**
* 判断使用哪一种描述。如果该模块有对应的描述则取之然后则取action模块中对应的方法的描述。
* 如果还没有则判断当前action是否有extra信息如果有则取action模块的extra描述最后使用通用的描述。
*/
if(isset($this->lang->$objectType->action->$actionType))
{
$desc = $this->lang->$objectType->action->$actionType;
}
elseif(isset($this->lang->action->desc->$actionType))
{
$desc = $this->lang->action->desc->$actionType;
}
else
{
$desc = $action->extra ? $this->lang->action->desc->extra : $this->lang->action->desc->common;
}
/* 循环替换desc中对应的标签。*/
foreach($action as $key => $value)
{
if($key == 'history') continue;
/* desc可能是数组也有可能是一个字符串。*/
if(is_array($desc))
{
if($key == 'extra') continue;
$desc['main'] = str_replace('$' . $key, $value, $desc['main']);
}
else
{
$desc = str_replace('$' . $key, $value, $desc);
}
}
/* 如果desc是数组再处理extra变量。例子参考bug模块的语言设置。*/
if(is_array($desc))
{
$extra = strtolower($action->extra);
if(isset($desc['extra'][$extra]))
{
echo str_replace('$extra', $desc['extra'][$extra], $desc['main']);
}
else
{
echo str_replace('$extra', $action->extra, $desc['main']);
}
}
else
{
echo $desc;
}
}
/* 打印动态信息。*/
public function getDynamic($objectType = 'all', $count = 30)
{
$actions = $this->dao->select('*')->from(TABLE_ACTION)
->beginIF($objectType != 'all')->where('objectType')->eq($objectType)->fi()
->orderBy('id desc')->limit($count)->fetchAll();
if(!$actions) return array();
foreach($actions as $action)
{
$actionType = strtolower($action->action);
$objectType = strtolower($action->objectType);
$action->date = date(DT_MONTHTIME2, strtotime($action->date));
$action->actionLabel = isset($this->lang->action->label->$actionType) ? $this->lang->action->label->$actionType : $action->action;
$action->objectLabel = isset($this->lang->action->label->$objectType) ? $this->lang->action->label->$objectType : $objectType;
/* 处理login和logout动作。*/
if($actionType == 'login' or $actionType == 'logout')
{
$action->objectLink = '';
$action->objectLabel = '';
continue;
}
/* 其他的动作生成相应的链接。*/
if(strpos($action->objectLabel, '|') !== false)
{
list($objectLabel, $moduleName, $methodName, $vars) = explode('|', $action->objectLabel);
$action->objectLink = html::a(helper::createLink($moduleName, $methodName, sprintf($vars, $action->objectID)), '#' . $action->objectID);
$action->objectLabel = $objectLabel;
}
else
{
$action->objectLink = '#' . $action->objectID;
}
}
return $actions;
}
/* 打印修改记录。*/
public function printChanges($objectType, $histories)
{
if(empty($histories)) return;
/* 计算字段的最大长度并将历史记录根据是否有diff分开以保证含有diff的字段显示在最后面。*/
$maxLength = 0;
$historiesWithDiff = array();
$historiesWithoutDiff = array();
foreach($histories as $history)
{
$fieldName = $history->field;
$history->fieldLabel = isset($this->lang->$objectType->$fieldName) ? $this->lang->$objectType->$fieldName : $fieldName;
if(($length = strlen($history->fieldLabel)) > $maxLength) $maxLength = $length;
$history->diff ? $historiesWithDiff[] = $history : $historiesWithoutDiff[] = $history;
}
$histories = array_merge($historiesWithoutDiff, $historiesWithDiff);
foreach($histories as $history)
{
$history->fieldLabel = str_pad($history->fieldLabel, $maxLength, $this->lang->action->label->space);
if($history->diff != '')
{
$history->diff = str_replace(array('<ins>', '</ins>', '<del>', '</del>'), array('[ins]', '[/ins]', '[del]', '[/del]'), $history->diff);
$history->diff = htmlspecialchars($history->diff);
$history->diff = str_replace(array('[ins]', '[/ins]', '[del]', '[/del]'), array('<ins>', '</ins>', '<del>', '</del>'), $history->diff);
$history->diff = nl2br($history->diff);
printf($this->lang->action->desc->diff2, $history->fieldLabel, $history->diff);
}
else
{
printf($this->lang->action->desc->diff1, $history->fieldLabel, $history->old, $history->new);
}
}
}
}
<?php
/**
* The model file of action module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class actionModel extends model
{
const CAN_UNDELETED = 1; // 标记extra字段为可以还原。
const BE_UNDELETED = 0; // 标记extra字段为已经还原。
/* 创建一条action动作。*/
public function create($objectType, $objectID, $actionType, $comment = '', $extra = '')
{
$action->objectType = strtolower($objectType);
$action->objectID = $objectID;
$action->actor = $this->app->user->account;
$action->action = strtolower($actionType);
$action->date = helper::now();
$action->comment = htmlspecialchars($comment);
$action->extra = $extra;
$this->dao->insert(TABLE_ACTION)->data($action)->autoCheck()->exec();
return $this->dbh->lastInsertID();
}
/* 返回某一个对象的所有action列表。*/
public function getList($objectType, $objectID)
{
$actions = $this->dao->select('*')->from(TABLE_ACTION)
->where('objectType')->eq($objectType)
->andWhere('objectID')->eq($objectID)
->orderBy('id')->fetchAll('id');
$histories = $this->getHistory(array_keys($actions));
foreach($actions as $actionID => $action)
{
$action->history = isset($histories[$actionID]) ? $histories[$actionID] : array();
$actions[$actionID] = $action;
}
return $actions;
}
/* 获得action信息。*/
public function getById($actionID)
{
return $this->dao->findById((int)$actionID)->from(TABLE_ACTION)->fetch();
}
/* 获得所有的删除记录列表。*/
public function getTrashes($orderBy, $pager)
{
$trashes = $this->dao->select('*')->from(TABLE_ACTION)
->where('action')->eq('deleted')
->andWhere('extra')->eq(self::CAN_UNDELETED)
->orderBy($orderBy)->page($pager)->fetchAll();
if(!$trashes) return array();
/* 将对象按照类型分开,然后查找其对应的名称。*/
foreach($trashes as $object) $typeTrashes[$object->objectType][] = $object->objectID;
foreach($typeTrashes as $objectType => $objectIds)
{
$objectIds = array_unique($objectIds);
$table = $this->config->action->objectTables[$objectType];
$field = $this->config->action->objectNameFields[$objectType];
$objectNames[$objectType] = $this->dao->select("id, $field AS name")->from($table)->where('id')->in($objectIds)->fetchPairs();
}
/* 将name字段添加到trashes中。*/
foreach($trashes as $trash) $trash->objectName = $objectNames[$trash->objectType][$trash->objectID];
return $trashes;
}
/* 返回某一个action所对应的字段修改记录。*/
public function getHistory($actionID)
{
return $this->dao->select()->from(TABLE_HISTORY)->where('action')->in($actionID)->orderBy('id')->fetchGroup('action');
}
/* 记录历史。*/
public function logHistory($actionID, $changes)
{
foreach($changes as $change)
{
$change['action'] = $actionID;
$this->dao->insert(TABLE_HISTORY)->data($change)->exec();
}
}
/* 打印action标题显示在每一个对象的详情界面。*/
public function printAction($action)
{
$objectType = $action->objectType;
$actionType = strtolower($action->action);
/**
* 判断使用哪一种描述。如果该模块有对应的描述则取之然后则取action模块中对应的方法的描述。
* 如果还没有则判断当前action是否有extra信息如果有则取action模块的extra描述最后使用通用的描述。
*/
if(isset($this->lang->$objectType->action->$actionType))
{
$desc = $this->lang->$objectType->action->$actionType;
}
elseif(isset($this->lang->action->desc->$actionType))
{
$desc = $this->lang->action->desc->$actionType;
}
else
{
$desc = $action->extra ? $this->lang->action->desc->extra : $this->lang->action->desc->common;
}
/* 循环替换desc中对应的标签。*/
foreach($action as $key => $value)
{
if($key == 'history') continue;
/* desc可能是数组也有可能是一个字符串。*/
if(is_array($desc))
{
if($key == 'extra') continue;
$desc['main'] = str_replace('$' . $key, $value, $desc['main']);
}
else
{
$desc = str_replace('$' . $key, $value, $desc);
}
}
/* 如果desc是数组再处理extra变量。例子参考bug模块的语言设置。*/
if(is_array($desc))
{
$extra = strtolower($action->extra);
if(isset($desc['extra'][$extra]))
{
echo str_replace('$extra', $desc['extra'][$extra], $desc['main']);
}
else
{
echo str_replace('$extra', $action->extra, $desc['main']);
}
}
else
{
echo $desc;
}
}
/* 打印动态信息。*/
public function getDynamic($objectType = 'all', $count = 30)
{
$actions = $this->dao->select('*')->from(TABLE_ACTION)
->beginIF($objectType != 'all')->where('objectType')->eq($objectType)->fi()
->orderBy('id desc')->limit($count)->fetchAll();
if(!$actions) return array();
foreach($actions as $action)
{
$actionType = strtolower($action->action);
$objectType = strtolower($action->objectType);
$action->date = date(DT_MONTHTIME2, strtotime($action->date));
$action->actionLabel = isset($this->lang->action->label->$actionType) ? $this->lang->action->label->$actionType : $action->action;
$action->objectLabel = isset($this->lang->action->label->$objectType) ? $this->lang->action->label->$objectType : $objectType;
/* 处理login和logout动作。*/
if($actionType == 'login' or $actionType == 'logout')
{
$action->objectLink = '';
$action->objectLabel = '';
continue;
}
/* 其他的动作生成相应的链接。*/
if(strpos($action->objectLabel, '|') !== false)
{
list($objectLabel, $moduleName, $methodName, $vars) = explode('|', $action->objectLabel);
$action->objectLink = html::a(helper::createLink($moduleName, $methodName, sprintf($vars, $action->objectID)), '#' . $action->objectID);
$action->objectLabel = $objectLabel;
}
else
{
$action->objectLink = '#' . $action->objectID;
}
}
return $actions;
}
/* 打印修改记录。*/
public function printChanges($objectType, $histories)
{
if(empty($histories)) return;
/* 计算字段的最大长度并将历史记录根据是否有diff分开以保证含有diff的字段显示在最后面。*/
$maxLength = 0;
$historiesWithDiff = array();
$historiesWithoutDiff = array();
foreach($histories as $history)
{
$fieldName = $history->field;
$history->fieldLabel = isset($this->lang->$objectType->$fieldName) ? $this->lang->$objectType->$fieldName : $fieldName;
if(($length = strlen($history->fieldLabel)) > $maxLength) $maxLength = $length;
$history->diff ? $historiesWithDiff[] = $history : $historiesWithoutDiff[] = $history;
}
$histories = array_merge($historiesWithoutDiff, $historiesWithDiff);
foreach($histories as $history)
{
$history->fieldLabel = str_pad($history->fieldLabel, $maxLength, $this->lang->action->label->space);
if($history->diff != '')
{
$history->diff = str_replace(array('<ins>', '</ins>', '<del>', '</del>'), array('[ins]', '[/ins]', '[del]', '[/del]'), $history->diff);
$history->diff = htmlspecialchars($history->diff);
$history->diff = str_replace(array('[ins]', '[/ins]', '[del]', '[/del]'), array('<ins>', '</ins>', '<del>', '</del>'), $history->diff);
$history->diff = nl2br($history->diff);
printf($this->lang->action->desc->diff2, $history->fieldLabel, $history->diff);
}
else
{
printf($this->lang->action->desc->diff1, $history->fieldLabel, $history->old, $history->new);
}
}
}
}

View File

@@ -1,56 +1,43 @@
<?php
/**
* The trash view file of action module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/colorize.html.php';?>
<div class='yui-d0'>
<table class='table-1 colored tablesorter'>
<?php $vars = "orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
<thead>
<tr class='colhead'>
<th class='w-80px'><?php common::printOrderLink('objectType', $orderBy, $vars, $lang->action->objectType);?></th>
<th class='w-id'><?php common::printOrderLink('objectID', $orderBy, $vars, $lang->idAB);?></th>
<th><?php echo $lang->action->objectName;?></th>
<th class='w-100px'><?php common::printOrderLink('actor', $orderBy, $vars, $lang->action->actor);?></th>
<th class='w-150px'><?php common::printOrderLink('date', $orderBy, $vars, $lang->action->date);?></th>
<th class='w-80px'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php foreach($trashes as $action):?>
<?php $module = $action->objectType == 'case' ? 'testcase' : $action->objectType;?>
<tr class='a-center'>
<td><?php echo $lang->action->objectTypes[$action->objectType];?></td>
<td><?php echo $action->objectID;?></td>
<td class='a-left'><?php echo html::a($this->createLink($module, 'view', "id=$action->objectID"), $action->objectName);?></td>
<td><?php echo $users[$action->actor];?></td>
<td><?php echo $action->date;?></td>
<td><?php common::printLink('action', 'undelete', "actionid=$action->id", $lang->action->undelete, 'hiddenwin');?>
</tr>
<?php endforeach;?>
</tbody>
</table>
<div class='a-right'><?php $pager->show();?></div>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The trash view file of action module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package action
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/colorize.html.php';?>
<div class='yui-d0'>
<table class='table-1 colored tablesorter'>
<?php $vars = "orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
<thead>
<tr class='colhead'>
<th class='w-80px'><?php common::printOrderLink('objectType', $orderBy, $vars, $lang->action->objectType);?></th>
<th class='w-id'><?php common::printOrderLink('objectID', $orderBy, $vars, $lang->idAB);?></th>
<th><?php echo $lang->action->objectName;?></th>
<th class='w-100px'><?php common::printOrderLink('actor', $orderBy, $vars, $lang->action->actor);?></th>
<th class='w-150px'><?php common::printOrderLink('date', $orderBy, $vars, $lang->action->date);?></th>
<th class='w-80px'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php foreach($trashes as $action):?>
<?php $module = $action->objectType == 'case' ? 'testcase' : $action->objectType;?>
<tr class='a-center'>
<td><?php echo $lang->action->objectTypes[$action->objectType];?></td>
<td><?php echo $action->objectID;?></td>
<td class='a-left'><?php echo html::a($this->createLink($module, 'view', "id=$action->objectID"), $action->objectName);?></td>
<td><?php echo $users[$action->actor];?></td>
<td><?php echo $action->date;?></td>
<td><?php common::printLink('action', 'undelete', "actionid=$action->id", $lang->action->undelete, 'hiddenwin');?>
</tr>
<?php endforeach;?>
</tbody>
</table>
<div class='a-right'><?php $pager->show();?></div>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,31 +1,18 @@
<?php
/**
* The control file of admin module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
class admin extends control
{
/* 首页。*/
public function index($tab = 'index')
{
$this->locate($this->createLink('action', 'trash'));
}
}
<?php
/**
* The control file of admin module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
class admin extends control
{
/* 首页。*/
public function index($tab = 'index')
{
$this->locate($this->createLink('action', 'trash'));
}
}

View File

@@ -1,31 +1,18 @@
<?php
/**
* The admin module English file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
$lang->admin->common = 'Admin';
$lang->admin->index = 'Index';
$lang->admin->company = 'Company';
$lang->admin->user = 'User';
$lang->admin->group = 'Group';
$lang->admin->welcome = 'Welcome to ZenTaoPMS.';
$lang->admin->browseCompany = 'Browse Company';
<?php
/**
* The admin module English file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
$lang->admin->common = 'Admin';
$lang->admin->index = 'Index';
$lang->admin->company = 'Company';
$lang->admin->user = 'User';
$lang->admin->group = 'Group';
$lang->admin->welcome = 'Welcome to ZenTaoPMS.';
$lang->admin->browseCompany = 'Browse Company';

View File

@@ -1,31 +1,18 @@
<?php
/**
* The admin module Japanese file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->admin->common = '管理者';
$lang->admin->index = 'インデックス';
$lang->admin->company = '会社';
$lang->admin->user = 'ユーザー';
$lang->admin->group = 'グループ';
$lang->admin->welcome = 'ようこそZenTaoPMSする。';
$lang->admin->browseCompany = '閲覧会社';
<?php
/**
* The admin module Japanese file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->admin->common = '管理者';
$lang->admin->index = 'インデックス';
$lang->admin->company = '会社';
$lang->admin->user = 'ユーザー';
$lang->admin->group = 'グループ';
$lang->admin->welcome = 'ようこそZenTaoPMSする。';
$lang->admin->browseCompany = '閲覧会社';

View File

@@ -1,31 +1,18 @@
<?php
/**
* The admin module Korean file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->admin->common = '관리자';
$lang->admin->index = '색인';
$lang->admin->company = '회사';
$lang->admin->user = '사용자';
$lang->admin->group = '그룹';
$lang->admin->welcome = 'ZenTaoPMS 오신 것을 환영합니다.';
$lang->admin->browseCompany = '브라 우즈 회사 소개';
<?php
/**
* The admin module Korean file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->admin->common = '관리자';
$lang->admin->index = '색인';
$lang->admin->company = '회사';
$lang->admin->user = '사용자';
$lang->admin->group = '그룹';
$lang->admin->welcome = 'ZenTaoPMS 오신 것을 환영합니다.';
$lang->admin->browseCompany = '브라 우즈 회사 소개';

View File

@@ -1,31 +1,18 @@
<?php
/**
* The admin module zh-cn file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
$lang->admin->common = '后台管理';
$lang->admin->index = '后台管理首页';
$lang->admin->company = '公司管理';
$lang->admin->user = '用户管理';
$lang->admin->group = '分组管理';
$lang->admin->welcome = '欢迎使用禅道管理软件后台管理系统';
$lang->admin->browseCompany = '浏览公司';
<?php
/**
* The admin module zh-cn file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
$lang->admin->common = '后台管理';
$lang->admin->index = '后台管理首页';
$lang->admin->company = '公司管理';
$lang->admin->user = '用户管理';
$lang->admin->group = '分组管理';
$lang->admin->welcome = '欢迎使用禅道管理软件后台管理系统';
$lang->admin->browseCompany = '浏览公司';

View File

@@ -1,31 +1,18 @@
<?php
/**
* The admin module zh-tw file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->admin->common = '後台管理';
$lang->admin->index = '後台管理首頁';
$lang->admin->company = '公司管理';
$lang->admin->user = '用戶管理';
$lang->admin->group = '分組管理';
$lang->admin->welcome = '歡迎使用禪道管理軟件後台管理系統';
$lang->admin->browseCompany = '瀏覽公司';
<?php
/**
* The admin module zh-tw file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->admin->common = '後台管理';
$lang->admin->index = '後台管理首頁';
$lang->admin->company = '公司管理';
$lang->admin->user = '用戶管理';
$lang->admin->group = '分組管理';
$lang->admin->welcome = '歡迎使用禪道管理軟件後台管理系統';
$lang->admin->browseCompany = '瀏覽公司';

View File

@@ -1,44 +1,31 @@
<?php
/**
* The model file of admin module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class adminModel extends model
{
/* 获得整个pms系统的统计信息。*/
public function getStatOfPMS()
{
$sql = "SHOW TABLE STATUS";
$tables = $this->dbh->query($sql)->fetchALL();
}
/* 获得某一个公司的统计信息。*/
public function getStatOfCompany($companyID)
{
}
/* 获得系统的运行信息。*/
public function getStatOfSys()
{
}
}
<?php
/**
* The model file of admin module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class adminModel extends model
{
/* 获得整个pms系统的统计信息。*/
public function getStatOfPMS()
{
$sql = "SHOW TABLE STATUS";
$tables = $this->dbh->query($sql)->fetchALL();
}
/* 获得某一个公司的统计信息。*/
public function getStatOfCompany($companyID)
{
}
/* 获得系统的运行信息。*/
public function getStatOfSys()
{
}
}

View File

@@ -1,61 +1,48 @@
<?php
/**
* The browse company view file of admin module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<table align='center' class='table-1'>
<tr class='colhead'>
<th><?php echo $lang->company->id;?></th>
<th><?php echo $lang->company->name;?></th>
<th><?php echo $lang->company->phone;?></th>
<th><?php echo $lang->company->fax;?></th>
<th><?php echo $lang->company->address;?></th>
<th><?php echo $lang->company->zipcode;?></th>
<th><?php echo $lang->company->website;?></th>
<th><?php echo $lang->company->backyard;?></th>
<th><?php echo $lang->company->pms;?></th>
<th><?php echo $lang->company->guest;?></th>
<th><?php echo $lang->actions;?></th>
</tr>
<?php foreach($companies as $company):?>
<tr>
<td class='a-center'><?php echo $company->id;?></td>
<td><?php echo $company->name;?></td>
<td><?php echo $company->phone;?></td>
<td><?php echo $company->fax;?></td>
<td><?php echo $company->address;?></td>
<td><?php echo $company->zipcode;?></td>
<td><?php echo html::a($company->website, $company->website, '_blank');?></td>
<td><?php echo html::a($company->backyard,$company->backyard, '_blank');?></td>
<td><?php echo html::a('http://' . $company->pms, $company->pms, '_blank');?></td>
<td><?php echo $lang->company->guestList[(int)$company->guest];?></td>
<td>
<?php echo html::a($this->createLink('company', 'edit', "companyID=$company->id"), $this->lang->company->edit);?>
<?php echo html::a($this->createLink('company', 'delete', "companyID=$company->id"), $this->lang->company->delete, "hiddenwin");?>
</td>
</tr>
<?php endforeach;?>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The browse company view file of admin module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<table align='center' class='table-1'>
<tr class='colhead'>
<th><?php echo $lang->company->id;?></th>
<th><?php echo $lang->company->name;?></th>
<th><?php echo $lang->company->phone;?></th>
<th><?php echo $lang->company->fax;?></th>
<th><?php echo $lang->company->address;?></th>
<th><?php echo $lang->company->zipcode;?></th>
<th><?php echo $lang->company->website;?></th>
<th><?php echo $lang->company->backyard;?></th>
<th><?php echo $lang->company->pms;?></th>
<th><?php echo $lang->company->guest;?></th>
<th><?php echo $lang->actions;?></th>
</tr>
<?php foreach($companies as $company):?>
<tr>
<td class='a-center'><?php echo $company->id;?></td>
<td><?php echo $company->name;?></td>
<td><?php echo $company->phone;?></td>
<td><?php echo $company->fax;?></td>
<td><?php echo $company->address;?></td>
<td><?php echo $company->zipcode;?></td>
<td><?php echo html::a($company->website, $company->website, '_blank');?></td>
<td><?php echo html::a($company->backyard,$company->backyard, '_blank');?></td>
<td><?php echo html::a('http://' . $company->pms, $company->pms, '_blank');?></td>
<td><?php echo $lang->company->guestList[(int)$company->guest];?></td>
<td>
<?php echo html::a($this->createLink('company', 'edit', "companyID=$company->id"), $this->lang->company->edit);?>
<?php echo html::a($this->createLink('company', 'delete', "companyID=$company->id"), $this->lang->company->delete, "hiddenwin");?>
</td>
</tr>
<?php endforeach;?>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,49 +1,36 @@
<?php
/**
* The control file of api of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id$
* @link http://www.zentao.net
*/
class api extends control
{
/* 获得sessionid。*/
public function getSessionID()
{
$this->session->set('rand', mt_rand(0, 10000));
$this->view->sessionName = session_name();
$this->view->sessionID = session_id();
$this->view->rand = $this->session->rand;
$this->display();
}
/* 获得某一个model某一个方法的结果。params的传递方式param1=value1,param2=value2。*/
public function getModel($moduleName, $methodName, $params = '')
{
parse_str(str_replace(',', '&', $params), $params);
$module = $this->loadModel($moduleName);
$result = call_user_func_array(array(&$module, $methodName), $params);
if(dao::isError()) die(json_encode(dao::getError()));
$output['status'] = $result ? 'success' : 'fail';
$output['data'] = json_encode($result);
$output['md5'] = md5($output['data']);
$this->output = json_encode($output);
die($this->output);
}
}
<?php
/**
* The control file of api of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id$
* @link http://www.zentao.net
*/
class api extends control
{
/* 获得sessionid。*/
public function getSessionID()
{
$this->session->set('rand', mt_rand(0, 10000));
$this->view->sessionName = session_name();
$this->view->sessionID = session_id();
$this->view->rand = $this->session->rand;
$this->display();
}
/* 获得某一个model某一个方法的结果。params的传递方式param1=value1,param2=value2。*/
public function getModel($moduleName, $methodName, $params = '')
{
parse_str(str_replace(',', '&', $params), $params);
$module = $this->loadModel($moduleName);
$result = call_user_func_array(array(&$module, $methodName), $params);
if(dao::isError()) die(json_encode(dao::getError()));
$output['status'] = $result ? 'success' : 'fail';
$output['data'] = json_encode($result);
$output['md5'] = md5($output['data']);
$this->output = json_encode($output);
die($this->output);
}
}

View File

@@ -1,25 +1,12 @@
<?php
/**
* The api module English file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id: English.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
$lang->api->common = 'API';
$lang->api->getModel = 'Super Model API';
<?php
/**
* The api module English file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id: English.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
$lang->api->common = 'API';
$lang->api->getModel = 'Super Model API';

View File

@@ -1,25 +1,12 @@
<?php
/**
* The api module Japanese file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id: Japanese.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
$lang->api->common = 'APIの';
$lang->api->getModel = 'スーパーモデルのAPI';
<?php
/**
* The api module Japanese file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id: Japanese.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
$lang->api->common = 'APIの';
$lang->api->getModel = 'スーパーモデルのAPI';

View File

@@ -1,25 +1,12 @@
<?php
/**
* The api module Korean file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id: Korean.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
$lang->api->common = 'API를';
$lang->api->getModel = '슈퍼 모델 API를';
<?php
/**
* The api module Korean file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id: Korean.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
$lang->api->common = 'API를';
$lang->api->getModel = '슈퍼 모델 API를';

View File

@@ -1,25 +1,12 @@
<?php
/**
* The api module zh-cn file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id$
* @link http://www.zentao.net
*/
$lang->api->common = 'API接口';
$lang->api->getModel = '超级model调用接口';
<?php
/**
* The api module zh-cn file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id$
* @link http://www.zentao.net
*/
$lang->api->common = 'API接口';
$lang->api->getModel = '超级model调用接口';

View File

@@ -1,25 +1,12 @@
<?php
/**
* The api module zh-tw file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->api->common = 'API介面';
$lang->api->getModel = '超級model調用介面';
<?php
/**
* The api module zh-tw file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->api->common = 'API介面';
$lang->api->getModel = '超級model調用介面';

File diff suppressed because it is too large Load Diff

View File

@@ -1,286 +1,273 @@
<?php
/**
* The bug module English file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->bug->common = 'Bug';
$lang->bug->id = 'ID';
$lang->bug->product = 'Product';
$lang->bug->module = 'Module';
$lang->bug->path = 'Path';
$lang->bug->project = 'Project';
$lang->bug->story = 'Story';
$lang->bug->storyVersion = 'Story Version';
$lang->bug->task = 'Task';
$lang->bug->title = 'Title';
$lang->bug->severity = 'Severity';
$lang->bug->severityAB = 'S';
$lang->bug->pri = 'Priority';
$lang->bug->type = 'Type';
$lang->bug->os = 'OS';
$lang->bug->hardware = 'Hardware';
$lang->bug->browser = 'Browser';
$lang->bug->machine = 'Machine';
$lang->bug->found = 'How found';
$lang->bug->steps = 'Steps';
$lang->bug->status = 'Status';
$lang->bug->mailto = 'Mailto';
$lang->bug->openedBy = 'Opened By';
$lang->bug->openedByAB = 'Opened';
$lang->bug->openedDate = 'Opened date';
$lang->bug->openedBuild = 'Opened Build';
$lang->bug->assignedTo = 'Assigned';
$lang->bug->assignedDate = 'Assigned Date';
$lang->bug->resolvedBy = 'Resolved By';
$lang->bug->resolvedByAB = 'Resolve';
$lang->bug->resolution = 'Resolution';
$lang->bug->resolutionAB = 'Resolution';
$lang->bug->resolvedBuild = 'Resolved Build';
$lang->bug->resolvedDate = 'Resolved Date';
$lang->bug->closedBy = 'Closed By';
$lang->bug->closedDate = 'Closed Date';
$lang->bug->duplicateBug = 'Duplicate';
$lang->bug->lastEditedBy = 'Last Edited By';
$lang->bug->lastEditedDate = 'Last Edited Date';
$lang->bug->linkBug = 'Related';
$lang->bug->case = 'Case';
$lang->bug->files = 'Files';
$lang->bug->keywords = 'Keywords';
$lang->bug->lastEditedByAB = 'Edited';
$lang->bug->lastEditedDateAB = 'Edited Date';
/* 方法列表。*/
$lang->bug->index = 'Index';
$lang->bug->create = 'Create Bug';
$lang->bug->edit = 'Edit Bug';
$lang->bug->browse = 'Browse Bug';
$lang->bug->view = 'Bug Info';
$lang->bug->resolve = 'Resolve Bug';
$lang->bug->close = 'Close Bug';
$lang->bug->activate = 'Activate Bug';
$lang->bug->reportChart = 'Report';
$lang->bug->delete = 'Delete Bug';
$lang->bug->saveTemplate = 'Save template';
$lang->bug->deleteTemplate = 'Delete template';
$lang->bug->customFields = 'Custom Field';
$lang->bug->restoreDefault = 'Default';
$lang->bug->ajaxGetUserBugs = 'API: My Bugs';
$lang->bug->ajaxGetModuleOwner = 'API: Get module default owner';
$lang->bug->confirmStoryChange = 'Confirm Story Change';
/* 查询条件列表。*/
$lang->bug->selectProduct = 'Select product';
$lang->bug->byModule = 'ByModule';
$lang->bug->assignToMe = 'Tome';
$lang->bug->openedByMe = 'MyOpen';
$lang->bug->resolvedByMe = 'MyResolve';
$lang->bug->assignToNull = 'Assign null';
$lang->bug->longLifeBugs = 'Long life';
$lang->bug->postponedBugs = 'Postponed';
$lang->bug->allBugs = 'All bug';
$lang->bug->moduleBugs = 'By module';
$lang->bug->byQuery = 'Search';
$lang->bug->needConfirm = 'Story changed';
$lang->bug->allProduct = 'All products';
/* 页面标签。*/
$lang->bug->lblProductAndModule = 'Product&Module';
$lang->bug->lblProjectAndTask = 'Project&Task';
$lang->bug->lblStory = 'Story';
$lang->bug->lblTypeAndSeverity = 'Type&Severity';
$lang->bug->lblSystemBrowserAndHardware = 'OS&Browser';
$lang->bug->lblAssignedTo = 'Assigned to';
$lang->bug->lblMailto = 'Mailto';
$lang->bug->lblLastEdited = 'Last edited';
$lang->bug->lblResolved = 'Resolved';
$lang->bug->lblAllFields = 'All Fields';
$lang->bug->lblCustomFields = 'Custom Fields';
/* legend列表。*/
$lang->bug->legendBasicInfo = 'Basic info';
$lang->bug->legendMailto = 'Mailto';
$lang->bug->legendAttatch = 'Files';
$lang->bug->legendLinkBugs = 'Related bug';
$lang->bug->legendPrjStoryTask= 'Project, story & task';
$lang->bug->legendCases = 'Related case';
$lang->bug->legendSteps = 'Steps';
$lang->bug->legendAction = 'Action';
$lang->bug->legendHistory = 'History';
$lang->bug->legendComment = 'Comment';
$lang->bug->legendLife = 'Lifetime';
$lang->bug->legendMisc = 'Misc';
/* 功能按钮。*/
$lang->bug->buttonCopy = 'Copy';
$lang->bug->buttonEdit = 'Edit';
$lang->bug->buttonActivate = 'Activate';
$lang->bug->buttonResolve = 'Resolve';
$lang->bug->buttonClose = 'Close';
$lang->bug->buttonToList = 'Back';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = 'Change product will change project, task and story also, are you sure?';
$lang->bug->confirmDelete = 'Are you sure to delete this bug?';
$lang->bug->setTemplateTitle = 'Please input the template title:';
/* 模板。*/
$lang->bug->tplStep = "<p>[Steps]</p>";
$lang->bug->tplResult = "<p>[Result]</p>";
$lang->bug->tplExpect = "<p>[Expect]</p>";
/* 各个字段取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = 'All';
$lang->bug->osList['windows'] = 'Windows';
$lang->bug->osList['winxp'] = 'Windows XP';
$lang->bug->osList['win7'] = 'Windows 7';
$lang->bug->osList['vista'] = 'Windows Vista';
$lang->bug->osList['win2000'] = 'Windows 2000';
$lang->bug->osList['winnt'] = 'Windows NT';
$lang->bug->osList['win98'] = 'Windows 98';
$lang->bug->osList['linux'] = 'Linux';
$lang->bug->osList['freebsd'] = 'FreeBSD';
$lang->bug->osList['unix'] = 'Unix';
$lang->bug->osList['others'] = 'Others';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = 'All';
$lang->bug->browserList['ie'] = 'IE';
$lang->bug->browserList['ie6'] = 'IE6';
$lang->bug->browserList['ie7'] = 'IE7';
$lang->bug->browserList['ie8'] = 'IE8';
$lang->bug->browserList['firefox'] = 'Firefox';
$lang->bug->browserList['firefox2'] = 'Firefox2';
$lang->bug->browserList['firefx3'] = 'Firefox3';
$lang->bug->browserList['opera'] = 'opera';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = 'safari';
$lang->bug->browserList['chrome'] = 'chrome';
$lang->bug->browserList['other'] = 'Others';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = 'Code error';
$lang->bug->typeList['interface'] = 'Interface';
$lang->bug->typeList['designchange'] = 'Design change';
$lang->bug->typeList['newfeature'] = 'New feature';
$lang->bug->typeList['designdefect'] = 'Design defect';
$lang->bug->typeList['config'] = 'Config';
$lang->bug->typeList['install'] = 'Install';
$lang->bug->typeList['security'] = 'Security';
$lang->bug->typeList['performance'] = 'Performance';
$lang->bug->typeList['standard'] = 'Standard';
$lang->bug->typeList['automation'] = 'Automation';
$lang->bug->typeList['trackthings'] = 'Tracking';
$lang->bug->typeList['Others'] = 'Others';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = 'Active';
$lang->bug->statusList['resolved'] = 'Resolved';
$lang->bug->statusList['closed'] = 'Closed';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = 'By design';
$lang->bug->resolutionList['duplicate'] = 'Duplicate';
$lang->bug->resolutionList['external'] = 'External';
$lang->bug->resolutionList['fixed'] = 'Fixed';
$lang->bug->resolutionList['notrepro'] = 'Not reproduce';
$lang->bug->resolutionList['postponed'] = 'Postponed';
$lang->bug->resolutionList['willnotfix'] = "Won't fix";
/* 统计报表。*/
$lang->bug->report->common = 'Report';
$lang->bug->report->select = 'Select';
$lang->bug->report->create = 'Create';
$lang->bug->report->selectAll = 'All';
$lang->bug->report->selectReverse = 'Reverse';
$lang->bug->report->charts['bugsPerProject'] = 'Project bugs';
$lang->bug->report->charts['bugsPerModule'] = 'Module bugs';
$lang->bug->report->charts['openedBugsPerDay'] = 'Opened bugs per day';
$lang->bug->report->charts['resolvedBugsPerDay'] = 'Resolved bugs per day';
$lang->bug->report->charts['closedBugsPerDay'] = 'Closed bugs per day';
$lang->bug->report->charts['openedBugsPerUser'] = 'Opened bugs per user';
$lang->bug->report->charts['resolvedBugsPerUser']= 'Resolved bugs per user';
$lang->bug->report->charts['closedBugsPerUser'] = 'Closed bugs per user';
$lang->bug->report->charts['bugsPerSeverity'] = 'Severity';
$lang->bug->report->charts['bugsPerResolution'] = 'Resolution';
$lang->bug->report->charts['bugsPerStatus'] = 'Status';
$lang->bug->report->charts['bugsPerType'] = 'Type';
//$lang->bug->report->charts['bugLiveDays'] = 'Bug处理时间统计';
//$lang->bug->report->charts['bugHistories'] = 'Bug处理步骤统计';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = 'auto';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNT';
$lang->bug->report->options->graph->pieRadius = 100; // 饼图直径。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否显示柱状图阴影。
$lang->bug->report->bugsPerProject->graph->xAxisName = 'Project';
$lang->bug->report->bugsPerModule->graph->xAxisName = 'Module';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = 'Date';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = 'Date';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = 'Date';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = 'User';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= 'User';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = 'User';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = 'Severity';
$lang->bug->report->bugsPerResolution->graph->xAxisName = 'Resolution';
$lang->bug->report->bugsPerStatus->graph->xAxisName = 'Status';
$lang->bug->report->bugsPerType->graph->xAxisName = 'Type';
$lang->bug->report->bugLiveDays->graph->xAxisName = 'Live days';
$lang->bug->report->bugHistories->graph->xAxisName = 'Histories';
/* 操作记录。*/
$lang->bug->action->resolved = array('main' => '$date, Resolved by <strong>$actor</strong>, resolution is <strong>$extra</strong>.', 'extra' => $lang->bug->resolutionList);
<?php
/**
* The bug module English file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->bug->common = 'Bug';
$lang->bug->id = 'ID';
$lang->bug->product = 'Product';
$lang->bug->module = 'Module';
$lang->bug->path = 'Path';
$lang->bug->project = 'Project';
$lang->bug->story = 'Story';
$lang->bug->storyVersion = 'Story Version';
$lang->bug->task = 'Task';
$lang->bug->title = 'Title';
$lang->bug->severity = 'Severity';
$lang->bug->severityAB = 'S';
$lang->bug->pri = 'Priority';
$lang->bug->type = 'Type';
$lang->bug->os = 'OS';
$lang->bug->hardware = 'Hardware';
$lang->bug->browser = 'Browser';
$lang->bug->machine = 'Machine';
$lang->bug->found = 'How found';
$lang->bug->steps = 'Steps';
$lang->bug->status = 'Status';
$lang->bug->mailto = 'Mailto';
$lang->bug->openedBy = 'Opened By';
$lang->bug->openedByAB = 'Opened';
$lang->bug->openedDate = 'Opened date';
$lang->bug->openedBuild = 'Opened Build';
$lang->bug->assignedTo = 'Assigned';
$lang->bug->assignedDate = 'Assigned Date';
$lang->bug->resolvedBy = 'Resolved By';
$lang->bug->resolvedByAB = 'Resolve';
$lang->bug->resolution = 'Resolution';
$lang->bug->resolutionAB = 'Resolution';
$lang->bug->resolvedBuild = 'Resolved Build';
$lang->bug->resolvedDate = 'Resolved Date';
$lang->bug->closedBy = 'Closed By';
$lang->bug->closedDate = 'Closed Date';
$lang->bug->duplicateBug = 'Duplicate';
$lang->bug->lastEditedBy = 'Last Edited By';
$lang->bug->lastEditedDate = 'Last Edited Date';
$lang->bug->linkBug = 'Related';
$lang->bug->case = 'Case';
$lang->bug->files = 'Files';
$lang->bug->keywords = 'Keywords';
$lang->bug->lastEditedByAB = 'Edited';
$lang->bug->lastEditedDateAB = 'Edited Date';
/* 方法列表。*/
$lang->bug->index = 'Index';
$lang->bug->create = 'Create Bug';
$lang->bug->edit = 'Edit Bug';
$lang->bug->browse = 'Browse Bug';
$lang->bug->view = 'Bug Info';
$lang->bug->resolve = 'Resolve Bug';
$lang->bug->close = 'Close Bug';
$lang->bug->activate = 'Activate Bug';
$lang->bug->reportChart = 'Report';
$lang->bug->delete = 'Delete Bug';
$lang->bug->saveTemplate = 'Save template';
$lang->bug->deleteTemplate = 'Delete template';
$lang->bug->customFields = 'Custom Field';
$lang->bug->restoreDefault = 'Default';
$lang->bug->ajaxGetUserBugs = 'API: My Bugs';
$lang->bug->ajaxGetModuleOwner = 'API: Get module default owner';
$lang->bug->confirmStoryChange = 'Confirm Story Change';
/* 查询条件列表。*/
$lang->bug->selectProduct = 'Select product';
$lang->bug->byModule = 'ByModule';
$lang->bug->assignToMe = 'Tome';
$lang->bug->openedByMe = 'MyOpen';
$lang->bug->resolvedByMe = 'MyResolve';
$lang->bug->assignToNull = 'Assign null';
$lang->bug->longLifeBugs = 'Long life';
$lang->bug->postponedBugs = 'Postponed';
$lang->bug->allBugs = 'All bug';
$lang->bug->moduleBugs = 'By module';
$lang->bug->byQuery = 'Search';
$lang->bug->needConfirm = 'Story changed';
$lang->bug->allProduct = 'All products';
/* 页面标签。*/
$lang->bug->lblProductAndModule = 'Product&Module';
$lang->bug->lblProjectAndTask = 'Project&Task';
$lang->bug->lblStory = 'Story';
$lang->bug->lblTypeAndSeverity = 'Type&Severity';
$lang->bug->lblSystemBrowserAndHardware = 'OS&Browser';
$lang->bug->lblAssignedTo = 'Assigned to';
$lang->bug->lblMailto = 'Mailto';
$lang->bug->lblLastEdited = 'Last edited';
$lang->bug->lblResolved = 'Resolved';
$lang->bug->lblAllFields = 'All Fields';
$lang->bug->lblCustomFields = 'Custom Fields';
/* legend列表。*/
$lang->bug->legendBasicInfo = 'Basic info';
$lang->bug->legendMailto = 'Mailto';
$lang->bug->legendAttatch = 'Files';
$lang->bug->legendLinkBugs = 'Related bug';
$lang->bug->legendPrjStoryTask= 'Project, story & task';
$lang->bug->legendCases = 'Related case';
$lang->bug->legendSteps = 'Steps';
$lang->bug->legendAction = 'Action';
$lang->bug->legendHistory = 'History';
$lang->bug->legendComment = 'Comment';
$lang->bug->legendLife = 'Lifetime';
$lang->bug->legendMisc = 'Misc';
/* 功能按钮。*/
$lang->bug->buttonCopy = 'Copy';
$lang->bug->buttonEdit = 'Edit';
$lang->bug->buttonActivate = 'Activate';
$lang->bug->buttonResolve = 'Resolve';
$lang->bug->buttonClose = 'Close';
$lang->bug->buttonToList = 'Back';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = 'Change product will change project, task and story also, are you sure?';
$lang->bug->confirmDelete = 'Are you sure to delete this bug?';
$lang->bug->setTemplateTitle = 'Please input the template title:';
/* 模板。*/
$lang->bug->tplStep = "<p>[Steps]</p>";
$lang->bug->tplResult = "<p>[Result]</p>";
$lang->bug->tplExpect = "<p>[Expect]</p>";
/* 各个字段取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = 'All';
$lang->bug->osList['windows'] = 'Windows';
$lang->bug->osList['winxp'] = 'Windows XP';
$lang->bug->osList['win7'] = 'Windows 7';
$lang->bug->osList['vista'] = 'Windows Vista';
$lang->bug->osList['win2000'] = 'Windows 2000';
$lang->bug->osList['winnt'] = 'Windows NT';
$lang->bug->osList['win98'] = 'Windows 98';
$lang->bug->osList['linux'] = 'Linux';
$lang->bug->osList['freebsd'] = 'FreeBSD';
$lang->bug->osList['unix'] = 'Unix';
$lang->bug->osList['others'] = 'Others';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = 'All';
$lang->bug->browserList['ie'] = 'IE';
$lang->bug->browserList['ie6'] = 'IE6';
$lang->bug->browserList['ie7'] = 'IE7';
$lang->bug->browserList['ie8'] = 'IE8';
$lang->bug->browserList['firefox'] = 'Firefox';
$lang->bug->browserList['firefox2'] = 'Firefox2';
$lang->bug->browserList['firefx3'] = 'Firefox3';
$lang->bug->browserList['opera'] = 'opera';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = 'safari';
$lang->bug->browserList['chrome'] = 'chrome';
$lang->bug->browserList['other'] = 'Others';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = 'Code error';
$lang->bug->typeList['interface'] = 'Interface';
$lang->bug->typeList['designchange'] = 'Design change';
$lang->bug->typeList['newfeature'] = 'New feature';
$lang->bug->typeList['designdefect'] = 'Design defect';
$lang->bug->typeList['config'] = 'Config';
$lang->bug->typeList['install'] = 'Install';
$lang->bug->typeList['security'] = 'Security';
$lang->bug->typeList['performance'] = 'Performance';
$lang->bug->typeList['standard'] = 'Standard';
$lang->bug->typeList['automation'] = 'Automation';
$lang->bug->typeList['trackthings'] = 'Tracking';
$lang->bug->typeList['Others'] = 'Others';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = 'Active';
$lang->bug->statusList['resolved'] = 'Resolved';
$lang->bug->statusList['closed'] = 'Closed';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = 'By design';
$lang->bug->resolutionList['duplicate'] = 'Duplicate';
$lang->bug->resolutionList['external'] = 'External';
$lang->bug->resolutionList['fixed'] = 'Fixed';
$lang->bug->resolutionList['notrepro'] = 'Not reproduce';
$lang->bug->resolutionList['postponed'] = 'Postponed';
$lang->bug->resolutionList['willnotfix'] = "Won't fix";
/* 统计报表。*/
$lang->bug->report->common = 'Report';
$lang->bug->report->select = 'Select';
$lang->bug->report->create = 'Create';
$lang->bug->report->selectAll = 'All';
$lang->bug->report->selectReverse = 'Reverse';
$lang->bug->report->charts['bugsPerProject'] = 'Project bugs';
$lang->bug->report->charts['bugsPerModule'] = 'Module bugs';
$lang->bug->report->charts['openedBugsPerDay'] = 'Opened bugs per day';
$lang->bug->report->charts['resolvedBugsPerDay'] = 'Resolved bugs per day';
$lang->bug->report->charts['closedBugsPerDay'] = 'Closed bugs per day';
$lang->bug->report->charts['openedBugsPerUser'] = 'Opened bugs per user';
$lang->bug->report->charts['resolvedBugsPerUser']= 'Resolved bugs per user';
$lang->bug->report->charts['closedBugsPerUser'] = 'Closed bugs per user';
$lang->bug->report->charts['bugsPerSeverity'] = 'Severity';
$lang->bug->report->charts['bugsPerResolution'] = 'Resolution';
$lang->bug->report->charts['bugsPerStatus'] = 'Status';
$lang->bug->report->charts['bugsPerType'] = 'Type';
//$lang->bug->report->charts['bugLiveDays'] = 'Bug处理时间统计';
//$lang->bug->report->charts['bugHistories'] = 'Bug处理步骤统计';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = 'auto';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNT';
$lang->bug->report->options->graph->pieRadius = 100; // 饼图直径。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否显示柱状图阴影。
$lang->bug->report->bugsPerProject->graph->xAxisName = 'Project';
$lang->bug->report->bugsPerModule->graph->xAxisName = 'Module';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = 'Date';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = 'Date';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = 'Date';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = 'User';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= 'User';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = 'User';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = 'Severity';
$lang->bug->report->bugsPerResolution->graph->xAxisName = 'Resolution';
$lang->bug->report->bugsPerStatus->graph->xAxisName = 'Status';
$lang->bug->report->bugsPerType->graph->xAxisName = 'Type';
$lang->bug->report->bugLiveDays->graph->xAxisName = 'Live days';
$lang->bug->report->bugHistories->graph->xAxisName = 'Histories';
/* 操作记录。*/
$lang->bug->action->resolved = array('main' => '$date, Resolved by <strong>$actor</strong>, resolution is <strong>$extra</strong>.', 'extra' => $lang->bug->resolutionList);

View File

@@ -1,286 +1,273 @@
<?php
/**
* The bug module Japanese file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id: en.php 1033 2010-08-07 02:12:20Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->bug->common = 'バグ';
$lang->bug->id = 'IDは';
$lang->bug->product = '製品';
$lang->bug->module = 'モジュール';
$lang->bug->path = 'パス';
$lang->bug->project = 'プロジェクト';
$lang->bug->story = 'ストーリー';
$lang->bug->storyVersion = '小説版';
$lang->bug->task = 'タスク';
$lang->bug->title = 'タイトル';
$lang->bug->severity = '重大度';
$lang->bug->severityAB = 'のS';
$lang->bug->pri = '優先順位';
$lang->bug->type = 'タイプ';
$lang->bug->os = 'OSの';
$lang->bug->hardware = 'ハードウェア';
$lang->bug->browser = 'ブラウザ';
$lang->bug->machine = 'マシン';
$lang->bug->found = 'どのように発見';
$lang->bug->steps = '手順';
$lang->bug->status = 'ステータス';
$lang->bug->mailto = 'MAILTOが';
$lang->bug->openedBy = 'でオープン';
$lang->bug->openedByAB = 'オープン';
$lang->bug->openedDate = 'オープン日';
$lang->bug->openedBuild = 'オープンビルド';
$lang->bug->assignedTo = '割り当て';
$lang->bug->assignedDate = '割り当て日';
$lang->bug->resolvedBy = '解決で';
$lang->bug->resolvedByAB = '解決で';
$lang->bug->resolution = '解像度';
$lang->bug->resolutionAB = '解像度';
$lang->bug->resolvedBuild = '解決ビルド';
$lang->bug->resolvedDate = '解決日';
$lang->bug->closedBy = 'で休館';
$lang->bug->closedDate = 'クローズド日';
$lang->bug->duplicateBug = '重複';
$lang->bug->lastEditedBy = '編集で最後に';
$lang->bug->lastEditedDate = '最終編集日';
$lang->bug->linkBug = '関連した';
$lang->bug->case = 'ケース';
$lang->bug->files = 'ファイル';
$lang->bug->keywords = 'キーワード';
$lang->bug->lastEditedByAB = '編集';
$lang->bug->lastEditedDateAB = '編集日';
/* 方法列表。*/
$lang->bug->index = 'インデックス';
$lang->bug->create = '作成バグ';
$lang->bug->edit = '[編集]バグ';
$lang->bug->browse = 'ブラウズバグ';
$lang->bug->view = 'バグ情報';
$lang->bug->resolve = '解決バグ';
$lang->bug->close = '閉じるバグ';
$lang->bug->activate = 'アクティブバグ';
$lang->bug->reportChart = 'レポート';
$lang->bug->delete = '削除バグ';
$lang->bug->saveTemplate = '保存テンプレートを';
$lang->bug->deleteTemplate = '削除テンプレートを';
$lang->bug->customFields = 'Custome';
$lang->bug->restoreDefault = 'デフォルト';
$lang->bug->ajaxGetUserBugs = 'APIはのバグ';
$lang->bug->ajaxGetModuleOwner = 'APIはモジュールのデフォルトの所有者を取得する';
$lang->bug->confirmStoryChange = '確認ストーリーの変更';
/* 查询条件列表。*/
$lang->bug->selectProduct = '製品を選択';
$lang->bug->byModule = 'モジュールで';
$lang->bug->assignToMe = '私に割り当てられた';
$lang->bug->openedByMe = '私のオープン';
$lang->bug->resolvedByMe = '私の解決';
$lang->bug->assignToNull = '空の割り当て';
$lang->bug->longLifeBugs = '長寿命';
$lang->bug->postponedBugs = '延期';
$lang->bug->allBugs = 'すべてのバグ';
$lang->bug->moduleBugs = 'モジュールで';
$lang->bug->byQuery = '検索';
$lang->bug->needConfirm = '変更';
$lang->bug->allProduct = 'すべての製品';
/* 页面标签。*/
$lang->bug->lblProductAndModule = '製品&モジュール';
$lang->bug->lblProjectAndTask = 'プロジェクト&タスク';
$lang->bug->lblStory = 'ストーリー';
$lang->bug->lblTypeAndSeverity = 'タイプと重大度';
$lang->bug->lblSystemBrowserAndHardware = 'OSのブラウザ';
$lang->bug->lblAssignedTo = 'に割り当て';
$lang->bug->lblMailto = 'MAILTOが';
$lang->bug->lblLastEdited = '最後の編集';
$lang->bug->lblResolved = '解決';
$lang->bug->lblAllFields = 'すべてのフィールド';
$lang->bug->lblCustomFields = 'カスタムフィールド';
/* legend列表。*/
$lang->bug->legendBasicInfo = '基本的な情報をもっと見る';
$lang->bug->legendMailto = 'MAILTOが';
$lang->bug->legendAttatch = 'ファイル';
$lang->bug->legendLinkBugs = '関連バグ';
$lang->bug->legendPrjStoryTask= 'プロジェクトストーリー&タスク';
$lang->bug->legendCases = '関連ケース';
$lang->bug->legendSteps = '手順';
$lang->bug->legendAction = 'アクション';
$lang->bug->legendHistory = '歴史';
$lang->bug->legendComment = 'コメント';
$lang->bug->legendLife = '';
$lang->bug->legendMisc = 'その他';
/* 功能按钮。*/
$lang->bug->buttonCopy = 'コピー';
$lang->bug->buttonEdit = '[編集]';
$lang->bug->buttonActivate = 'アクティブ';
$lang->bug->buttonResolve = '解決';
$lang->bug->buttonClose = 'クローズ';
$lang->bug->buttonToList = 'バック';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = '変更製品は、タスクやストーリーを、プロジェクトを変更する場合はよろしいですか?';
$lang->bug->confirmDelete = 'あなたはこのバグを?削除しますか';
$lang->bug->setTemplateTitle = '入力してくださいタイトルテンプレート:';
/* 模板。*/
$lang->bug->tplStep = "<p>[手順]</p>";
$lang->bug->tplResult = "<p>[結果]</p>";
$lang->bug->tplExpect = "<p>[期待]</p>";
/* 各个字段取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = 'すべて';
$lang->bug->osList['windows'] = 'Windowsの';
$lang->bug->osList['winxp'] = 'Windows XPの';
$lang->bug->osList['win7'] = 'Windows 7の';
$lang->bug->osList['vista'] = 'Windows Vistaの';
$lang->bug->osList['win2000'] = 'Windows 2000の';
$lang->bug->osList['winnt'] = 'Windows NTの';
$lang->bug->osList['win98'] = 'Windows 98の';
$lang->bug->osList['linux'] = 'リナックス';
$lang->bug->osList['freebsd'] = 'FreeBSDの';
$lang->bug->osList['unix'] = 'Unixの';
$lang->bug->osList['others'] = '他人';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = 'すべて';
$lang->bug->browserList['ie'] = 'IEの';
$lang->bug->browserList['ie6'] = 'IE6の';
$lang->bug->browserList['ie7'] = 'IE7の';
$lang->bug->browserList['ie8'] = 'IE8の';
$lang->bug->browserList['firefox'] = 'Firefoxの';
$lang->bug->browserList['firefox2'] = 'Firefox2';
$lang->bug->browserList['firefx3'] = 'Firefox3の';
$lang->bug->browserList['opera'] = 'オペラ';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = 'サファリ';
$lang->bug->browserList['chrome'] = 'クロム';
$lang->bug->browserList['other'] = '他人';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = 'コードエラー';
$lang->bug->typeList['interface'] = 'インターフェイス';
$lang->bug->typeList['designchange'] = 'デザインの変更';
$lang->bug->typeList['newfeature'] = '新機能';
$lang->bug->typeList['designdefect'] = 'デザイン欠陥';
$lang->bug->typeList['config'] = '構成';
$lang->bug->typeList['install'] = 'インストール';
$lang->bug->typeList['security'] = 'セキュリティー';
$lang->bug->typeList['performance'] = 'パフォーマンス';
$lang->bug->typeList['standard'] = 'スタンダード';
$lang->bug->typeList['automation'] = '自動化';
$lang->bug->typeList['trackthings'] = 'トラッキング';
$lang->bug->typeList['Others'] = '他人';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = 'アクティブ';
$lang->bug->statusList['resolved'] = '解決';
$lang->bug->statusList['closed'] = 'クローズド';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = 'デザインで';
$lang->bug->resolutionList['duplicate'] = '重複';
$lang->bug->resolutionList['external'] = '外部';
$lang->bug->resolutionList['fixed'] = '固定';
$lang->bug->resolutionList['notrepro'] = 'まだ再現';
$lang->bug->resolutionList['postponed'] = '延期';
$lang->bug->resolutionList['willnotfix'] = "ウィル解決しない";
/* 统计报表。*/
$lang->bug->report->common = 'レポート';
$lang->bug->report->select = '選択';
$lang->bug->report->create = '作成';
$lang->bug->report->selectAll = 'すべて';
$lang->bug->report->selectReverse = '';
$lang->bug->report->charts['bugsPerProject'] = 'プロジェクトのバグ';
$lang->bug->report->charts['bugsPerModule'] = 'モジュールのバグ';
$lang->bug->report->charts['openedBugsPerDay'] = '1日あたりのオープンバグ';
$lang->bug->report->charts['resolvedBugsPerDay'] = '1日あたりの解決済みのバグ';
$lang->bug->report->charts['closedBugsPerDay'] = '1日あたりのクローズドバグ';
$lang->bug->report->charts['openedBugsPerUser'] = 'ユーザーごとのオープンバグ';
$lang->bug->report->charts['resolvedBugsPerUser']= 'ユーザーごとの解決済みのバグ';
$lang->bug->report->charts['closedBugsPerUser'] = 'ユーザーごとのクローズドバグ';
$lang->bug->report->charts['bugsPerSeverity'] = '重大度';
$lang->bug->report->charts['bugsPerResolution'] = '解像度';
$lang->bug->report->charts['bugsPerStatus'] = 'ステータス';
$lang->bug->report->charts['bugsPerType'] = 'タイプ';
//$lang->bug->report->charts['bugLiveDays'] = 'バグ处理时间统计';
//$lang->bug->report->charts['bugHistories'] = 'バグ处理步骤统计';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = 'オート';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNTは';
$lang->bug->report->options->graph->pieRadius = 100; // 饼图直径。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否显示柱状图阴影。
$lang->bug->report->bugsPerProject->graph->xAxisName = 'プロジェクト';
$lang->bug->report->bugsPerModule->graph->xAxisName = 'モジュール';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = '日付';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = '日付';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = '日付';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = 'ユーザー';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= 'ユーザー';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = 'ユーザー';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = '重大度';
$lang->bug->report->bugsPerResolution->graph->xAxisName = '解像度';
$lang->bug->report->bugsPerStatus->graph->xAxisName = 'ステータス';
$lang->bug->report->bugsPerType->graph->xAxisName = 'タイプ';
$lang->bug->report->bugLiveDays->graph->xAxisName = 'ライブ日';
$lang->bug->report->bugHistories->graph->xAxisName = '履歴';
/* 操作记录。*/
$lang->bug->action->resolved = array('main' => '$date, Resolved by <strong>$actor</strong>, resolution is <strong>$extra</strong>.', 'extra' => $lang->bug->resolutionList);
<?php
/**
* The bug module Japanese file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id: en.php 1033 2010-08-07 02:12:20Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->bug->common = 'バグ';
$lang->bug->id = 'IDは';
$lang->bug->product = '製品';
$lang->bug->module = 'モジュール';
$lang->bug->path = 'パス';
$lang->bug->project = 'プロジェクト';
$lang->bug->story = 'ストーリー';
$lang->bug->storyVersion = '小説版';
$lang->bug->task = 'タスク';
$lang->bug->title = 'タイトル';
$lang->bug->severity = '重大度';
$lang->bug->severityAB = 'のS';
$lang->bug->pri = '優先順位';
$lang->bug->type = 'タイプ';
$lang->bug->os = 'OSの';
$lang->bug->hardware = 'ハードウェア';
$lang->bug->browser = 'ブラウザ';
$lang->bug->machine = 'マシン';
$lang->bug->found = 'どのように発見';
$lang->bug->steps = '手順';
$lang->bug->status = 'ステータス';
$lang->bug->mailto = 'MAILTOが';
$lang->bug->openedBy = 'でオープン';
$lang->bug->openedByAB = 'オープン';
$lang->bug->openedDate = 'オープン日';
$lang->bug->openedBuild = 'オープンビルド';
$lang->bug->assignedTo = '割り当て';
$lang->bug->assignedDate = '割り当て日';
$lang->bug->resolvedBy = '解決で';
$lang->bug->resolvedByAB = '解決で';
$lang->bug->resolution = '解像度';
$lang->bug->resolutionAB = '解像度';
$lang->bug->resolvedBuild = '解決ビルド';
$lang->bug->resolvedDate = '解決日';
$lang->bug->closedBy = 'で休館';
$lang->bug->closedDate = 'クローズド日';
$lang->bug->duplicateBug = '重複';
$lang->bug->lastEditedBy = '編集で最後に';
$lang->bug->lastEditedDate = '最終編集日';
$lang->bug->linkBug = '関連した';
$lang->bug->case = 'ケース';
$lang->bug->files = 'ファイル';
$lang->bug->keywords = 'キーワード';
$lang->bug->lastEditedByAB = '編集';
$lang->bug->lastEditedDateAB = '編集日';
/* 方法列表。*/
$lang->bug->index = 'インデックス';
$lang->bug->create = '作成バグ';
$lang->bug->edit = '[編集]バグ';
$lang->bug->browse = 'ブラウズバグ';
$lang->bug->view = 'バグ情報';
$lang->bug->resolve = '解決バグ';
$lang->bug->close = '閉じるバグ';
$lang->bug->activate = 'アクティブバグ';
$lang->bug->reportChart = 'レポート';
$lang->bug->delete = '削除バグ';
$lang->bug->saveTemplate = '保存テンプレートを';
$lang->bug->deleteTemplate = '削除テンプレートを';
$lang->bug->customFields = 'Custome';
$lang->bug->restoreDefault = 'デフォルト';
$lang->bug->ajaxGetUserBugs = 'APIは私のバグ';
$lang->bug->ajaxGetModuleOwner = 'APIはモジュールのデフォルトの所有者を取得する';
$lang->bug->confirmStoryChange = '確認ストーリーの変更';
/* 查询条件列表。*/
$lang->bug->selectProduct = '製品を選択';
$lang->bug->byModule = 'モジュールで';
$lang->bug->assignToMe = '私に割り当てられた';
$lang->bug->openedByMe = '私のオープン';
$lang->bug->resolvedByMe = '私の解決';
$lang->bug->assignToNull = '空の割り当て';
$lang->bug->longLifeBugs = '長寿命';
$lang->bug->postponedBugs = '延期';
$lang->bug->allBugs = 'すべてのバグ';
$lang->bug->moduleBugs = 'モジュールで';
$lang->bug->byQuery = '検索';
$lang->bug->needConfirm = '変更';
$lang->bug->allProduct = 'すべての製品';
/* 页面标签。*/
$lang->bug->lblProductAndModule = '製品&モジュール';
$lang->bug->lblProjectAndTask = 'プロジェクト&タスク';
$lang->bug->lblStory = 'ストーリー';
$lang->bug->lblTypeAndSeverity = 'タイプと重大度';
$lang->bug->lblSystemBrowserAndHardware = 'OSのブラウザ';
$lang->bug->lblAssignedTo = 'に割り当て';
$lang->bug->lblMailto = 'MAILTOが';
$lang->bug->lblLastEdited = '最後の編集';
$lang->bug->lblResolved = '解決';
$lang->bug->lblAllFields = 'すべてのフィールド';
$lang->bug->lblCustomFields = 'カスタムフィールド';
/* legend列表。*/
$lang->bug->legendBasicInfo = '基本的な情報をもっと見る';
$lang->bug->legendMailto = 'MAILTOが';
$lang->bug->legendAttatch = 'ファイル';
$lang->bug->legendLinkBugs = '関連バグ';
$lang->bug->legendPrjStoryTask= 'プロジェクトストーリー&タスク';
$lang->bug->legendCases = '関連ケース';
$lang->bug->legendSteps = '手順';
$lang->bug->legendAction = 'アクション';
$lang->bug->legendHistory = '歴史';
$lang->bug->legendComment = 'コメント';
$lang->bug->legendLife = '';
$lang->bug->legendMisc = 'その他';
/* 功能按钮。*/
$lang->bug->buttonCopy = 'コピー';
$lang->bug->buttonEdit = '[編集]';
$lang->bug->buttonActivate = 'アクティブ';
$lang->bug->buttonResolve = '解決';
$lang->bug->buttonClose = 'クローズ';
$lang->bug->buttonToList = 'バック';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = '変更製品は、タスクやストーリーを、プロジェクトを変更する場合はよろしいですか?';
$lang->bug->confirmDelete = 'あなたはこのバグを?削除しますか';
$lang->bug->setTemplateTitle = '入力してくださいタイトルテンプレート:';
/* 模板。*/
$lang->bug->tplStep = "<p>[手順]</p>";
$lang->bug->tplResult = "<p>[結果]</p>";
$lang->bug->tplExpect = "<p>[期待]</p>";
/* 各个字段取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = 'すべて';
$lang->bug->osList['windows'] = 'Windowsの';
$lang->bug->osList['winxp'] = 'Windows XPの';
$lang->bug->osList['win7'] = 'Windows 7の';
$lang->bug->osList['vista'] = 'Windows Vistaの';
$lang->bug->osList['win2000'] = 'Windows 2000の';
$lang->bug->osList['winnt'] = 'Windows NTの';
$lang->bug->osList['win98'] = 'Windows 98の';
$lang->bug->osList['linux'] = 'リナックス';
$lang->bug->osList['freebsd'] = 'FreeBSDの';
$lang->bug->osList['unix'] = 'Unixの';
$lang->bug->osList['others'] = '他人';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = 'すべて';
$lang->bug->browserList['ie'] = 'IEの';
$lang->bug->browserList['ie6'] = 'IE6の';
$lang->bug->browserList['ie7'] = 'IE7の';
$lang->bug->browserList['ie8'] = 'IE8の';
$lang->bug->browserList['firefox'] = 'Firefoxの';
$lang->bug->browserList['firefox2'] = 'Firefox2';
$lang->bug->browserList['firefx3'] = 'Firefox3の';
$lang->bug->browserList['opera'] = 'オペラ';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = 'サファリ';
$lang->bug->browserList['chrome'] = 'クロム';
$lang->bug->browserList['other'] = '他人';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = 'コードエラー';
$lang->bug->typeList['interface'] = 'インターフェイス';
$lang->bug->typeList['designchange'] = 'デザインの変更';
$lang->bug->typeList['newfeature'] = '新機能';
$lang->bug->typeList['designdefect'] = 'デザイン欠陥';
$lang->bug->typeList['config'] = '構成';
$lang->bug->typeList['install'] = 'インストール';
$lang->bug->typeList['security'] = 'セキュリティー';
$lang->bug->typeList['performance'] = 'パフォーマンス';
$lang->bug->typeList['standard'] = 'スタンダード';
$lang->bug->typeList['automation'] = '自動化';
$lang->bug->typeList['trackthings'] = 'トラッキング';
$lang->bug->typeList['Others'] = '他人';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = 'アクティブ';
$lang->bug->statusList['resolved'] = '解決';
$lang->bug->statusList['closed'] = 'クローズド';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = 'デザインで';
$lang->bug->resolutionList['duplicate'] = '重複';
$lang->bug->resolutionList['external'] = '外部';
$lang->bug->resolutionList['fixed'] = '固定';
$lang->bug->resolutionList['notrepro'] = 'まだ再現';
$lang->bug->resolutionList['postponed'] = '延期';
$lang->bug->resolutionList['willnotfix'] = "ウィル解決しない";
/* 统计报表。*/
$lang->bug->report->common = 'レポート';
$lang->bug->report->select = '選択';
$lang->bug->report->create = '作成';
$lang->bug->report->selectAll = 'すべて';
$lang->bug->report->selectReverse = '';
$lang->bug->report->charts['bugsPerProject'] = 'プロジェクトのバグ';
$lang->bug->report->charts['bugsPerModule'] = 'モジュールのバグ';
$lang->bug->report->charts['openedBugsPerDay'] = '1日あたりのオープンバグ';
$lang->bug->report->charts['resolvedBugsPerDay'] = '1日あたりの解決済みのバグ';
$lang->bug->report->charts['closedBugsPerDay'] = '1日あたりのクローズドバグ';
$lang->bug->report->charts['openedBugsPerUser'] = 'ユーザーごとのオープンバグ';
$lang->bug->report->charts['resolvedBugsPerUser']= 'ユーザーごとの解決済みのバグ';
$lang->bug->report->charts['closedBugsPerUser'] = 'ユーザーごとのクローズドバグ';
$lang->bug->report->charts['bugsPerSeverity'] = '重大度';
$lang->bug->report->charts['bugsPerResolution'] = '解像度';
$lang->bug->report->charts['bugsPerStatus'] = 'ステータス';
$lang->bug->report->charts['bugsPerType'] = 'タイプ';
//$lang->bug->report->charts['bugLiveDays'] = 'バグ处理时间统计';
//$lang->bug->report->charts['bugHistories'] = 'バグ处理步骤统计';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = 'オート';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNTは';
$lang->bug->report->options->graph->pieRadius = 100; // 饼图直径。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否显示柱状图阴影。
$lang->bug->report->bugsPerProject->graph->xAxisName = 'プロジェクト';
$lang->bug->report->bugsPerModule->graph->xAxisName = 'モジュール';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = '日付';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = '日付';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = '日付';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = 'ユーザー';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= 'ユーザー';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = 'ユーザー';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = '重大度';
$lang->bug->report->bugsPerResolution->graph->xAxisName = '解像度';
$lang->bug->report->bugsPerStatus->graph->xAxisName = 'ステータス';
$lang->bug->report->bugsPerType->graph->xAxisName = 'タイプ';
$lang->bug->report->bugLiveDays->graph->xAxisName = 'ライブ日';
$lang->bug->report->bugHistories->graph->xAxisName = '履歴';
/* 操作记录。*/
$lang->bug->action->resolved = array('main' => '$date, Resolved by <strong>$actor</strong>, resolution is <strong>$extra</strong>.', 'extra' => $lang->bug->resolutionList);

View File

@@ -1,286 +1,273 @@
<?php
/**
* The bug module Korean file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id: en.php 1033 2010-08-07 02:12:20Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->bug->common = '곤충';
$lang->bug->id = '신분증';
$lang->bug->product = '제품';
$lang->bug->module = '모듈';
$lang->bug->path = '경로';
$lang->bug->project = '프로젝트';
$lang->bug->story = '이야기';
$lang->bug->storyVersion = '스토리 버전';
$lang->bug->task = '태스크';
$lang->bug->title = '제목';
$lang->bug->severity = '심각도';
$lang->bug->severityAB = 'S';
$lang->bug->pri = '우선';
$lang->bug->type = '유형';
$lang->bug->os = '운영 체제';
$lang->bug->hardware = '하드웨어';
$lang->bug->browser = '브라우저';
$lang->bug->machine = '기계';
$lang->bug->found = '어떻게 발견';
$lang->bug->steps = '단계';
$lang->bug->status = '지위';
$lang->bug->mailto = '흔한';
$lang->bug->openedBy = '에 의해 개설';
$lang->bug->openedByAB = '개설';
$lang->bug->openedDate = '개설 날짜';
$lang->bug->openedBuild = '오픈 빌드';
$lang->bug->assignedTo = '할당';
$lang->bug->assignedDate = '지정된 날짜';
$lang->bug->resolvedBy = '해결된으로';
$lang->bug->resolvedByAB = 'Resolve';
$lang->bug->resolution = '해결';
$lang->bug->resolutionAB = '해결';
$lang->bug->resolvedBuild = '해결된 빌드';
$lang->bug->resolvedDate = '해결된 날짜';
$lang->bug->closedBy = '하여 종료';
$lang->bug->closedDate = '닫기 날짜';
$lang->bug->duplicateBug = '복제';
$lang->bug->lastEditedBy = '마지막으로 수정됨';
$lang->bug->lastEditedDate = '마지막으로 편집한 날짜';
$lang->bug->linkBug = '관련';
$lang->bug->case = '케이스';
$lang->bug->files = '파일';
$lang->bug->keywords = '키워드';
$lang->bug->lastEditedByAB = '수정됨';
$lang->bug->lastEditedDateAB = '날짜 수정됨';
/* 方法列表。*/
$lang->bug->index = '색인';
$lang->bug->create = '생성 버그';
$lang->bug->edit = '버그 수정';
$lang->bug->browse = '브라 우즈 버그';
$lang->bug->view = '버그 정보';
$lang->bug->resolve = '버그 해결';
$lang->bug->close = '닫기 버그';
$lang->bug->activate = '활성화 버그';
$lang->bug->reportChart = '보고서';
$lang->bug->delete = '삭제 버그';
$lang->bug->saveTemplate = '저장 템플릿';
$lang->bug->deleteTemplate = '삭제 템플릿';
$lang->bug->customFields = '사용자 정의 필드';
$lang->bug->restoreDefault = '기';
$lang->bug->ajaxGetUserBugs = 'API가 : 내 버그';
$lang->bug->ajaxGetModuleOwner = 'API가 : 모듈의 기본 소유자 가져오기';
$lang->bug->confirmStoryChange = '확인 스토리 변경';
/* 查询条件列表。*/
$lang->bug->selectProduct = '선택 제품';
$lang->bug->byModule = '모듈';
$lang->bug->assignToMe = '나에게 할당';
$lang->bug->openedByMe = '내 개설';
$lang->bug->resolvedByMe = '제 해결';
$lang->bug->assignToNull = '빈 할당';
$lang->bug->longLifeBugs = '긴 수명';
$lang->bug->postponedBugs = '연기';
$lang->bug->allBugs = '모든 버그';
$lang->bug->moduleBugs = '모듈로';
$lang->bug->byQuery = '수색';
$lang->bug->needConfirm = '스토리가 변경됨';
$lang->bug->allProduct = '모든 제품';
/* 页面标签。*/
$lang->bug->lblProductAndModule = '제품 및 모듈';
$lang->bug->lblProjectAndTask = '프로젝트 및 작업';
$lang->bug->lblStory = '이야기';
$lang->bug->lblTypeAndSeverity = '유형 및 심각도';
$lang->bug->lblSystemBrowserAndHardware = '운영 체제 &amp; 브라우저';
$lang->bug->lblAssignedTo = '에 할당된';
$lang->bug->lblMailto = '흔한';
$lang->bug->lblLastEdited = '최종 편집';
$lang->bug->lblResolved = '해결';
$lang->bug->lblAllFields = '전체 분야';
$lang->bug->lblCustomFields = '사용자 정의 필드';
/* legend列表。*/
$lang->bug->legendBasicInfo = '기본 정보';
$lang->bug->legendMailto = '흔한';
$lang->bug->legendAttatch = '파일';
$lang->bug->legendLinkBugs = '관련 버그';
$lang->bug->legendPrjStoryTask= '프로젝트 이야기 &amp; 작업';
$lang->bug->legendCases = '관련 사건';
$lang->bug->legendSteps = '단계';
$lang->bug->legendAction = '행동';
$lang->bug->legendHistory = '역사';
$lang->bug->legendComment = '논평';
$lang->bug->legendLife = '일생';
$lang->bug->legendMisc = '기타';
/* 功能按钮。*/
$lang->bug->buttonCopy = '복사';
$lang->bug->buttonEdit = '편집';
$lang->bug->buttonActivate = '활성화';
$lang->bug->buttonResolve = '해결';
$lang->bug->buttonClose = '가까운';
$lang->bug->buttonToList = '뒤로';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = '변경 제품, 작업 및 이야기도 프로젝트를 변경할 것입니다 당신이 확실 해요?';
$lang->bug->confirmDelete = '이 버그를? 삭제하시겠습니까';
$lang->bug->setTemplateTitle = '제목 입력하십시오 템플릿을 :';
/* 模板。*/
$lang->bug->tplStep = "<p>[단계]</p>";
$lang->bug->tplResult = "<p>[결과]</p>";
$lang->bug->tplExpect = "<p>[기대]</p>";
/* 各个字段取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = '모든';
$lang->bug->osList['windows'] = '윈도우';
$lang->bug->osList['winxp'] = '윈도우 XP';
$lang->bug->osList['win7'] = '윈도우 7';
$lang->bug->osList['vista'] = '윈도우 비스타';
$lang->bug->osList['win2000'] = 'Windows 2000에서';
$lang->bug->osList['winnt'] = '윈도우 NT를';
$lang->bug->osList['win98'] = '윈도우 98';
$lang->bug->osList['linux'] = '리눅스';
$lang->bug->osList['freebsd'] = 'FreeBSD의';
$lang->bug->osList['unix'] = '유닉스';
$lang->bug->osList['others'] = '기타';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = '모든';
$lang->bug->browserList['ie'] = 'IE를';
$lang->bug->browserList['ie6'] = '6으로';
$lang->bug->browserList['ie7'] = 'IE7을';
$lang->bug->browserList['ie8'] = 'IE8';
$lang->bug->browserList['firefox'] = '파이어 폭스';
$lang->bug->browserList['firefox2'] = 'Firefox2';
$lang->bug->browserList['firefx3'] = 'Firefox3';
$lang->bug->browserList['opera'] = '오페라';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = '원정 여행';
$lang->bug->browserList['chrome'] = '크롬';
$lang->bug->browserList['other'] = '기타';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = '코드 오류';
$lang->bug->typeList['interface'] = '인터페이스';
$lang->bug->typeList['designchange'] = '디자인 변경';
$lang->bug->typeList['newfeature'] = '새로운 기능';
$lang->bug->typeList['designdefect'] = '설계 결함';
$lang->bug->typeList['config'] = '설정';
$lang->bug->typeList['install'] = '설치';
$lang->bug->typeList['security'] = '보안';
$lang->bug->typeList['performance'] = '공연';
$lang->bug->typeList['standard'] = '표준';
$lang->bug->typeList['automation'] = '오토메이션';
$lang->bug->typeList['trackthings'] = '추적';
$lang->bug->typeList['Others'] = '기';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = '활동적인';
$lang->bug->statusList['resolved'] = '해결';
$lang->bug->statusList['closed'] = '휴관일';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = '디자인으로';
$lang->bug->resolutionList['duplicate'] = '복제';
$lang->bug->resolutionList['external'] = '외부';
$lang->bug->resolutionList['fixed'] = '고정된';
$lang->bug->resolutionList['notrepro'] = '복제하지';
$lang->bug->resolutionList['postponed'] = '연기';
$lang->bug->resolutionList['willnotfix'] = "윌 해결되지";
/* 统计报表。*/
$lang->bug->report->common = '보고서';
$lang->bug->report->select = '선택';
$lang->bug->report->create = '만들기';
$lang->bug->report->selectAll = '모든';
$lang->bug->report->selectReverse = '';
$lang->bug->report->charts['bugsPerProject'] = '프로젝트 버그';
$lang->bug->report->charts['bugsPerModule'] = '모듈 버그';
$lang->bug->report->charts['openedBugsPerDay'] = '하루에 개설 버그';
$lang->bug->report->charts['resolvedBugsPerDay'] = '하루에 해결된 버그';
$lang->bug->report->charts['closedBugsPerDay'] = '하루 휴관일 버그';
$lang->bug->report->charts['openedBugsPerUser'] = '사용 자당 개관 버그';
$lang->bug->report->charts['resolvedBugsPerUser']= '사용 자당 해결된 버그';
$lang->bug->report->charts['closedBugsPerUser'] = '사용 자당 휴관일 버그';
$lang->bug->report->charts['bugsPerSeverity'] = '심각도';
$lang->bug->report->charts['bugsPerResolution'] = '해결';
$lang->bug->report->charts['bugsPerStatus'] = '지위';
$lang->bug->report->charts['bugsPerType'] = '유형';
//$lang->bug->report->charts['bugLiveDays'] = '버그 处理 时间 统计';
//$lang->bug->report->charts['bugHistories'] = '버그 处理 步骤 统计';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = '자동';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNT 개의';
$lang->bug->report->options->graph->pieRadius = 100; // 饼图直径。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否显示柱状图阴影。
$lang->bug->report->bugsPerProject->graph->xAxisName = '프로젝트';
$lang->bug->report->bugsPerModule->graph->xAxisName = '모듈';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = '날짜';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = '날짜';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = '날짜';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = '사용자';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= '사용자';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = '사용자';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = '심각도';
$lang->bug->report->bugsPerResolution->graph->xAxisName = '해결';
$lang->bug->report->bugsPerStatus->graph->xAxisName = '지위';
$lang->bug->report->bugsPerType->graph->xAxisName = '유형';
$lang->bug->report->bugLiveDays->graph->xAxisName = '라이브 일';
$lang->bug->report->bugHistories->graph->xAxisName = '역사';
/* 操作记录。*/
$lang->bug->action->resolved = array('main' => '$date, Resolved by <strong>$actor</strong>, resolution is <strong>$extra</strong>.', 'extra' => $lang->bug->resolutionList);
<?php
/**
* The bug module Korean file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id: en.php 1033 2010-08-07 02:12:20Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->bug->common = '곤충';
$lang->bug->id = '신분증';
$lang->bug->product = '제품';
$lang->bug->module = '모듈';
$lang->bug->path = '경로';
$lang->bug->project = '프로젝트';
$lang->bug->story = '이야기';
$lang->bug->storyVersion = '스토리 버전';
$lang->bug->task = '태스크';
$lang->bug->title = '제목';
$lang->bug->severity = '심각도';
$lang->bug->severityAB = 'S';
$lang->bug->pri = '우선';
$lang->bug->type = '유형';
$lang->bug->os = '운영 체제';
$lang->bug->hardware = '하드웨어';
$lang->bug->browser = '브라우저';
$lang->bug->machine = '기계';
$lang->bug->found = '어떻게 발견';
$lang->bug->steps = '단계';
$lang->bug->status = '지위';
$lang->bug->mailto = '흔한';
$lang->bug->openedBy = '에 의해 개설';
$lang->bug->openedByAB = '개설';
$lang->bug->openedDate = '개설 날짜';
$lang->bug->openedBuild = '오픈 빌드';
$lang->bug->assignedTo = '할당';
$lang->bug->assignedDate = '지정된 날짜';
$lang->bug->resolvedBy = '해결된으로';
$lang->bug->resolvedByAB = 'Resolve';
$lang->bug->resolution = '해결';
$lang->bug->resolutionAB = '해결';
$lang->bug->resolvedBuild = '해결된 빌드';
$lang->bug->resolvedDate = '해결된 날짜';
$lang->bug->closedBy = '하여 종료';
$lang->bug->closedDate = '닫기 날짜';
$lang->bug->duplicateBug = '복제';
$lang->bug->lastEditedBy = '마지막으로 수정됨';
$lang->bug->lastEditedDate = '마지막으로 편집한 날짜';
$lang->bug->linkBug = '관련';
$lang->bug->case = '케이스';
$lang->bug->files = '파일';
$lang->bug->keywords = '키워드';
$lang->bug->lastEditedByAB = '수정됨';
$lang->bug->lastEditedDateAB = '날짜 수정됨';
/* 方法列表。*/
$lang->bug->index = '색인';
$lang->bug->create = '생성 버그';
$lang->bug->edit = '버그 수정';
$lang->bug->browse = '브라 우즈 버그';
$lang->bug->view = '버그 정보';
$lang->bug->resolve = '버그 해결';
$lang->bug->close = '닫기 버그';
$lang->bug->activate = '활성화 버그';
$lang->bug->reportChart = '보고서';
$lang->bug->delete = '삭제 버그';
$lang->bug->saveTemplate = '저장 템플릿';
$lang->bug->deleteTemplate = '삭제 템플릿';
$lang->bug->customFields = '사용자 정의 필드';
$lang->bug->restoreDefault = '기본';
$lang->bug->ajaxGetUserBugs = 'API가 : 내 버그';
$lang->bug->ajaxGetModuleOwner = 'API가 : 모듈의 기본 소유자 가져오기';
$lang->bug->confirmStoryChange = '확인 스토리 변경';
/* 查询条件列表。*/
$lang->bug->selectProduct = '선택 제품';
$lang->bug->byModule = '모듈';
$lang->bug->assignToMe = '나에게 할당';
$lang->bug->openedByMe = '내 개설';
$lang->bug->resolvedByMe = '제 해결';
$lang->bug->assignToNull = '빈 할당';
$lang->bug->longLifeBugs = '긴 수명';
$lang->bug->postponedBugs = '기';
$lang->bug->allBugs = '모든 버그';
$lang->bug->moduleBugs = '모듈로';
$lang->bug->byQuery = '수색';
$lang->bug->needConfirm = '스토리가 변경됨';
$lang->bug->allProduct = '모든 제품';
/* 页面标签。*/
$lang->bug->lblProductAndModule = '제품 및 모듈';
$lang->bug->lblProjectAndTask = '프로젝트 및 작업';
$lang->bug->lblStory = '이야기';
$lang->bug->lblTypeAndSeverity = '유형 및 심각도';
$lang->bug->lblSystemBrowserAndHardware = '운영 체제 &amp; 브라우저';
$lang->bug->lblAssignedTo = '에 할당된';
$lang->bug->lblMailto = '흔한';
$lang->bug->lblLastEdited = '최종 편집';
$lang->bug->lblResolved = '해결';
$lang->bug->lblAllFields = '전체 분야';
$lang->bug->lblCustomFields = '사용자 정의 필드';
/* legend列表。*/
$lang->bug->legendBasicInfo = '기본 정보';
$lang->bug->legendMailto = '흔한';
$lang->bug->legendAttatch = '파일';
$lang->bug->legendLinkBugs = '관련 버그';
$lang->bug->legendPrjStoryTask= '프로젝트 이야기 &amp; 작업';
$lang->bug->legendCases = '관련 사건';
$lang->bug->legendSteps = '단계';
$lang->bug->legendAction = '행동';
$lang->bug->legendHistory = '역사';
$lang->bug->legendComment = '논평';
$lang->bug->legendLife = '일생';
$lang->bug->legendMisc = '기타';
/* 功能按钮。*/
$lang->bug->buttonCopy = '복사';
$lang->bug->buttonEdit = '편집';
$lang->bug->buttonActivate = '활성화';
$lang->bug->buttonResolve = '해결';
$lang->bug->buttonClose = '가까운';
$lang->bug->buttonToList = '뒤로';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = '변경 제품, 작업 및 이야기도 프로젝트를 변경할 것입니다 당신이 확실 해요?';
$lang->bug->confirmDelete = '이 버그를? 삭제하시겠습니까';
$lang->bug->setTemplateTitle = '제목 입력하십시오 템플릿을 :';
/* 模板。*/
$lang->bug->tplStep = "<p>[단계]</p>";
$lang->bug->tplResult = "<p>[결과]</p>";
$lang->bug->tplExpect = "<p>[기대]</p>";
/* 各个字段取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = '모든';
$lang->bug->osList['windows'] = '윈도우';
$lang->bug->osList['winxp'] = '윈도우 XP';
$lang->bug->osList['win7'] = '윈도우 7';
$lang->bug->osList['vista'] = '윈도우 비스타';
$lang->bug->osList['win2000'] = 'Windows 2000에서';
$lang->bug->osList['winnt'] = '윈도우 NT를';
$lang->bug->osList['win98'] = '윈도우 98';
$lang->bug->osList['linux'] = '리눅스';
$lang->bug->osList['freebsd'] = 'FreeBSD의';
$lang->bug->osList['unix'] = '유닉스';
$lang->bug->osList['others'] = '기타';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = '모든';
$lang->bug->browserList['ie'] = 'IE를';
$lang->bug->browserList['ie6'] = '6으로';
$lang->bug->browserList['ie7'] = 'IE7을';
$lang->bug->browserList['ie8'] = 'IE8';
$lang->bug->browserList['firefox'] = '파이어 폭스';
$lang->bug->browserList['firefox2'] = 'Firefox2';
$lang->bug->browserList['firefx3'] = 'Firefox3';
$lang->bug->browserList['opera'] = '오페라';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = '원정 여행';
$lang->bug->browserList['chrome'] = '크롬';
$lang->bug->browserList['other'] = '기타';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = '코드 오류';
$lang->bug->typeList['interface'] = '인터페이스';
$lang->bug->typeList['designchange'] = '디자인 변경';
$lang->bug->typeList['newfeature'] = '새로운 기능';
$lang->bug->typeList['designdefect'] = '설계 결함';
$lang->bug->typeList['config'] = '설정';
$lang->bug->typeList['install'] = '설치';
$lang->bug->typeList['security'] = '보안';
$lang->bug->typeList['performance'] = '공연';
$lang->bug->typeList['standard'] = '표준';
$lang->bug->typeList['automation'] = '오토메이션';
$lang->bug->typeList['trackthings'] = '추적';
$lang->bug->typeList['Others'] = '기타';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = '활동적인';
$lang->bug->statusList['resolved'] = '해결';
$lang->bug->statusList['closed'] = '휴관일';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = '디자인으로';
$lang->bug->resolutionList['duplicate'] = '복제';
$lang->bug->resolutionList['external'] = '외부';
$lang->bug->resolutionList['fixed'] = '고정된';
$lang->bug->resolutionList['notrepro'] = '복제하지';
$lang->bug->resolutionList['postponed'] = '기';
$lang->bug->resolutionList['willnotfix'] = "윌 해결되지";
/* 统计报表。*/
$lang->bug->report->common = '보고서';
$lang->bug->report->select = '선택';
$lang->bug->report->create = '만들기';
$lang->bug->report->selectAll = '모든';
$lang->bug->report->selectReverse = '';
$lang->bug->report->charts['bugsPerProject'] = '프로젝트 버그';
$lang->bug->report->charts['bugsPerModule'] = '모듈 버그';
$lang->bug->report->charts['openedBugsPerDay'] = '하루에 개설 버그';
$lang->bug->report->charts['resolvedBugsPerDay'] = '하루에 해결된 버그';
$lang->bug->report->charts['closedBugsPerDay'] = '하루 휴관일 버그';
$lang->bug->report->charts['openedBugsPerUser'] = '사용 자당 개관 버그';
$lang->bug->report->charts['resolvedBugsPerUser']= '사용 자당 해결된 버그';
$lang->bug->report->charts['closedBugsPerUser'] = '사용 자당 휴관일 버그';
$lang->bug->report->charts['bugsPerSeverity'] = '심각도';
$lang->bug->report->charts['bugsPerResolution'] = '해결';
$lang->bug->report->charts['bugsPerStatus'] = '지위';
$lang->bug->report->charts['bugsPerType'] = '유형';
//$lang->bug->report->charts['bugLiveDays'] = '버그 处理 时间 统计';
//$lang->bug->report->charts['bugHistories'] = '버그 处理 步骤 统计';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = '자동';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNT 개의';
$lang->bug->report->options->graph->pieRadius = 100; // 饼图直径。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否显示柱状图阴影。
$lang->bug->report->bugsPerProject->graph->xAxisName = '프로젝트';
$lang->bug->report->bugsPerModule->graph->xAxisName = '모듈';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = '날짜';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = '날짜';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = '날짜';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = '사용자';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= '사용자';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = '사용자';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = '심각도';
$lang->bug->report->bugsPerResolution->graph->xAxisName = '해결';
$lang->bug->report->bugsPerStatus->graph->xAxisName = '지위';
$lang->bug->report->bugsPerType->graph->xAxisName = '유형';
$lang->bug->report->bugLiveDays->graph->xAxisName = '라이브 일';
$lang->bug->report->bugHistories->graph->xAxisName = '역사';
/* 操作记录。*/
$lang->bug->action->resolved = array('main' => '$date, Resolved by <strong>$actor</strong>, resolution is <strong>$extra</strong>.', 'extra' => $lang->bug->resolutionList);

View File

@@ -1,286 +1,273 @@
<?php
/**
* The bug module zh-cn file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->bug->common = '缺陷管理';
$lang->bug->id = 'Bug编号';
$lang->bug->product = '所属产品';
$lang->bug->module = '所属模块';
$lang->bug->path = '模块路径';
$lang->bug->project = '所属项目';
$lang->bug->story = '相关需求';
$lang->bug->storyVersion = '需求版本';
$lang->bug->task = '相关任务';
$lang->bug->title = 'Bug标题';
$lang->bug->severity = '严重程度';
$lang->bug->severityAB = '级别';
$lang->bug->pri = '优先级';
$lang->bug->type = 'Bug类型';
$lang->bug->os = '操作系统';
$lang->bug->hardware = '硬件平台';
$lang->bug->browser = '浏览器';
$lang->bug->machine = '机器硬件';
$lang->bug->found = '如何发现';
$lang->bug->steps = '重现步骤';
$lang->bug->status = 'Bug状态';
$lang->bug->mailto = '抄送给';
$lang->bug->openedBy = '由谁创建';
$lang->bug->openedByAB = '创建';
$lang->bug->openedDate = '创建日期';
$lang->bug->openedBuild = '影响版本';
$lang->bug->assignedTo = '指派给';
$lang->bug->assignedDate = '指派日期';
$lang->bug->resolvedBy = '解决者';
$lang->bug->resolvedByAB = '解决';
$lang->bug->resolution = '解决方案';
$lang->bug->resolutionAB = '方案';
$lang->bug->resolvedBuild = '解决版本';
$lang->bug->resolvedDate = '解决日期';
$lang->bug->closedBy = '由谁关闭';
$lang->bug->closedDate = '关闭日期';
$lang->bug->duplicateBug = '重复Bug';
$lang->bug->lastEditedBy = '最后修改者';
$lang->bug->lastEditedDate = '最后修改日期';
$lang->bug->linkBug = '相关Bug';
$lang->bug->case = '相关用例';
$lang->bug->files = '附件';
$lang->bug->keywords = '关键词';
$lang->bug->lastEditedByAB = '修改者';
$lang->bug->lastEditedDateAB = '修改日期';
/* 方法列表。*/
$lang->bug->index = '首页';
$lang->bug->create = '创建Bug';
$lang->bug->edit = '编辑Bug';
$lang->bug->browse = 'Bug列表';
$lang->bug->view = 'Bug详情';
$lang->bug->resolve = '解决Bug';
$lang->bug->close = '关闭Bug';
$lang->bug->activate = '激活Bug';
$lang->bug->reportChart = '报表统计';
$lang->bug->delete = '删除Bug';
$lang->bug->saveTemplate = '保存模板';
$lang->bug->deleteTemplate = '删除模板';
$lang->bug->customFields = '自定义字段';
$lang->bug->restoreDefault = '恢复默认';
$lang->bug->ajaxGetUserBugs = '接口:我的Bug';
$lang->bug->ajaxGetModuleOwner = '接口:获得模块的默认指派人';
$lang->bug->confirmStoryChange = '确认需求变动';
/* 查询条件列表。*/
$lang->bug->selectProduct = '请选择产品';
$lang->bug->byModule = '按模块';
$lang->bug->assignToMe = '指派给我';
$lang->bug->openedByMe = '由我创建';
$lang->bug->resolvedByMe = '由我解决';
$lang->bug->assignToNull = '未指派';
$lang->bug->longLifeBugs = '久未处理';
$lang->bug->postponedBugs = '被延期';
$lang->bug->allBugs = '所有Bug';
$lang->bug->moduleBugs = '按模块浏览';
$lang->bug->byQuery = '搜索';
$lang->bug->needConfirm = '需求有变动的Bug';
$lang->bug->allProduct = '所有产品';
/* 页面标签。*/
$lang->bug->lblProductAndModule = '产品模块';
$lang->bug->lblProjectAndTask = '项目任务';
$lang->bug->lblStory = '相关需求';
$lang->bug->lblTypeAndSeverity = '类型/严重程度';
$lang->bug->lblSystemBrowserAndHardware = '系统/浏览器';
$lang->bug->lblAssignedTo = '当前指派';
$lang->bug->lblMailto = '抄送给';
$lang->bug->lblLastEdited = '最后修改';
$lang->bug->lblResolved = '由谁解决';
$lang->bug->lblAllFields = '所有字段';
$lang->bug->lblCustomFields = '自定义字段';
/* legend列表。*/
$lang->bug->legendBasicInfo = '基本信息';
$lang->bug->legendMailto = '抄送给';
$lang->bug->legendAttatch = '附件';
$lang->bug->legendLinkBugs = '相关Bug';
$lang->bug->legendPrjStoryTask= '项目/需求/任务';
$lang->bug->legendCases = '相关用例';
$lang->bug->legendSteps = '重现步骤';
$lang->bug->legendAction = '操作';
$lang->bug->legendHistory = '历史记录';
$lang->bug->legendComment = '备注';
$lang->bug->legendLife = 'BUG的一生';
$lang->bug->legendMisc = '其相关他';
/* 功能按钮。*/
$lang->bug->buttonCopy = '复制';
$lang->bug->buttonEdit = '编辑';
$lang->bug->buttonActivate = '激活';
$lang->bug->buttonResolve = '解决';
$lang->bug->buttonClose = '关闭';
$lang->bug->buttonToList = '返回';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = '修改产品会导致相应的项目、需求和任务发生变化,确定吗?';
$lang->bug->confirmDelete = '您确认要删除该Bug吗';
$lang->bug->setTemplateTitle = '请输入bug模板标题保存之前请先填写bug重现步骤';
/* 模板。*/
$lang->bug->tplStep = "<p>[步骤]</p>";
$lang->bug->tplResult = "<p>[结果]</p>";
$lang->bug->tplExpect = "<p>[期望]</p>";
/* 各个字段取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = '全部';
$lang->bug->osList['windows'] = 'Windows';
$lang->bug->osList['winxp'] = 'Windows XP';
$lang->bug->osList['win7'] = 'Windows 7';
$lang->bug->osList['vista'] = 'Windows Vista';
$lang->bug->osList['win2000'] = 'Windows 2000';
$lang->bug->osList['winnt'] = 'Windows NT';
$lang->bug->osList['win98'] = 'Windows 98';
$lang->bug->osList['linux'] = 'Linux';
$lang->bug->osList['freebsd'] = 'FreeBSD';
$lang->bug->osList['unix'] = 'Unix';
$lang->bug->osList['others'] = '其他';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = '全部';
$lang->bug->browserList['ie'] = 'IE系列';
$lang->bug->browserList['ie6'] = 'IE6';
$lang->bug->browserList['ie7'] = 'IE7';
$lang->bug->browserList['ie8'] = 'IE8';
$lang->bug->browserList['firefox'] = 'firefox系列';
$lang->bug->browserList['firefox2'] = 'firefox2';
$lang->bug->browserList['firefx3'] = 'firefox3';
$lang->bug->browserList['opera'] = 'opera系列';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = 'safari';
$lang->bug->browserList['chrome'] = 'chrome';
$lang->bug->browserList['other'] = '其他';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = '代码错误';
$lang->bug->typeList['interface'] = '界面优化';
$lang->bug->typeList['designchange'] = '设计变更';
$lang->bug->typeList['newfeature'] = '新增需求';
$lang->bug->typeList['designdefect'] = '设计缺陷';
$lang->bug->typeList['config'] = '配置相关';
$lang->bug->typeList['install'] = '安装部署';
$lang->bug->typeList['security'] = '安全相关';
$lang->bug->typeList['performance'] = '性能问题';
$lang->bug->typeList['standard'] = '标准规范';
$lang->bug->typeList['automation'] = '测试脚本';
$lang->bug->typeList['trackthings'] = '事务跟踪';
$lang->bug->typeList['Others'] = '其他';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = '激活';
$lang->bug->statusList['resolved'] = '已解决';
$lang->bug->statusList['closed'] = '已关闭';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = '设计如此';
$lang->bug->resolutionList['duplicate'] = '重复Bug';
$lang->bug->resolutionList['external'] = '外部原因';
$lang->bug->resolutionList['fixed'] = '已解决';
$lang->bug->resolutionList['notrepro'] = '无法重现';
$lang->bug->resolutionList['postponed'] = '延期处理';
$lang->bug->resolutionList['willnotfix'] = "不予解决";
/* 统计报表。*/
$lang->bug->report->common = '统计报表';
$lang->bug->report->select = '请选择报表类型';
$lang->bug->report->create = '生成报表';
$lang->bug->report->selectAll = '全选';
$lang->bug->report->selectReverse = '反选';
$lang->bug->report->charts['bugsPerProject'] = '项目Bug数量';
$lang->bug->report->charts['bugsPerModule'] = '模块Bug数量';
$lang->bug->report->charts['openedBugsPerDay'] = '每天新增Bug数';
$lang->bug->report->charts['resolvedBugsPerDay'] = '每天解决Bug数';
$lang->bug->report->charts['closedBugsPerDay'] = '每天关闭的Bug数';
$lang->bug->report->charts['openedBugsPerUser'] = '每人提交的Bug数';
$lang->bug->report->charts['resolvedBugsPerUser']= '每人解决的Bug数';
$lang->bug->report->charts['closedBugsPerUser'] = '每人关闭的Bug数';
$lang->bug->report->charts['bugsPerSeverity'] = 'Bug严重程度统计';
$lang->bug->report->charts['bugsPerResolution'] = 'Bug解决方案统计';
$lang->bug->report->charts['bugsPerStatus'] = 'Bug状态统计';
$lang->bug->report->charts['bugsPerType'] = 'Bug类型统计';
//$lang->bug->report->charts['bugLiveDays'] = 'Bug处理时间统计';
//$lang->bug->report->charts['bugHistories'] = 'Bug处理步骤统计';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = 'auto';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNT';
$lang->bug->report->options->graph->pieRadius = 100; // 饼图直径。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否显示柱状图阴影。
$lang->bug->report->bugsPerProject->graph->xAxisName = '项目';
$lang->bug->report->bugsPerModule->graph->xAxisName = '模块';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = '用户';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= '用户';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = '用户';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = '严重程度';
$lang->bug->report->bugsPerResolution->graph->xAxisName = '解决方案';
$lang->bug->report->bugsPerStatus->graph->xAxisName = '状态';
$lang->bug->report->bugsPerType->graph->xAxisName = '类型';
$lang->bug->report->bugLiveDays->graph->xAxisName = '处理时间';
$lang->bug->report->bugHistories->graph->xAxisName = '处理步骤';
/* 操作记录。*/
$lang->bug->action->resolved = array('main' => '$date, 由 <strong>$actor</strong> 解决,方案为 <strong>$extra</strong>。', 'extra' => $lang->bug->resolutionList);
<?php
/**
* The bug module zh-cn file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->bug->common = '缺陷管理';
$lang->bug->id = 'Bug编号';
$lang->bug->product = '所属产品';
$lang->bug->module = '所属模块';
$lang->bug->path = '模块路径';
$lang->bug->project = '所属项目';
$lang->bug->story = '相关需求';
$lang->bug->storyVersion = '需求版本';
$lang->bug->task = '相关任务';
$lang->bug->title = 'Bug标题';
$lang->bug->severity = '严重程度';
$lang->bug->severityAB = '级别';
$lang->bug->pri = '优先级';
$lang->bug->type = 'Bug类型';
$lang->bug->os = '操作系统';
$lang->bug->hardware = '硬件平台';
$lang->bug->browser = '浏览器';
$lang->bug->machine = '机器硬件';
$lang->bug->found = '如何发现';
$lang->bug->steps = '重现步骤';
$lang->bug->status = 'Bug状态';
$lang->bug->mailto = '抄送给';
$lang->bug->openedBy = '由谁创建';
$lang->bug->openedByAB = '创建';
$lang->bug->openedDate = '创建日期';
$lang->bug->openedBuild = '影响版本';
$lang->bug->assignedTo = '指派给';
$lang->bug->assignedDate = '指派日期';
$lang->bug->resolvedBy = '解决者';
$lang->bug->resolvedByAB = '解决';
$lang->bug->resolution = '解决方案';
$lang->bug->resolutionAB = '方案';
$lang->bug->resolvedBuild = '解决版本';
$lang->bug->resolvedDate = '解决日期';
$lang->bug->closedBy = '由谁关闭';
$lang->bug->closedDate = '关闭日期';
$lang->bug->duplicateBug = '重复Bug';
$lang->bug->lastEditedBy = '最后修改者';
$lang->bug->lastEditedDate = '最后修改日期';
$lang->bug->linkBug = '相关Bug';
$lang->bug->case = '相关用例';
$lang->bug->files = '附件';
$lang->bug->keywords = '关键词';
$lang->bug->lastEditedByAB = '修改者';
$lang->bug->lastEditedDateAB = '修改日期';
/* 方法列表。*/
$lang->bug->index = '首页';
$lang->bug->create = '创建Bug';
$lang->bug->edit = '编辑Bug';
$lang->bug->browse = 'Bug列表';
$lang->bug->view = 'Bug详情';
$lang->bug->resolve = '解决Bug';
$lang->bug->close = '关闭Bug';
$lang->bug->activate = '激活Bug';
$lang->bug->reportChart = '报表统计';
$lang->bug->delete = '删除Bug';
$lang->bug->saveTemplate = '保存模板';
$lang->bug->deleteTemplate = '删除模板';
$lang->bug->customFields = '自定义字段';
$lang->bug->restoreDefault = '恢复默认';
$lang->bug->ajaxGetUserBugs = '接口:我的Bug';
$lang->bug->ajaxGetModuleOwner = '接口:获得模块的默认指派人';
$lang->bug->confirmStoryChange = '确认需求变动';
/* 查询条件列表。*/
$lang->bug->selectProduct = '请选择产品';
$lang->bug->byModule = '按模块';
$lang->bug->assignToMe = '指派给我';
$lang->bug->openedByMe = '由我创建';
$lang->bug->resolvedByMe = '由我解决';
$lang->bug->assignToNull = '未指派';
$lang->bug->longLifeBugs = '久未处理';
$lang->bug->postponedBugs = '被延期';
$lang->bug->allBugs = '所有Bug';
$lang->bug->moduleBugs = '按模块浏览';
$lang->bug->byQuery = '搜索';
$lang->bug->needConfirm = '需求有变动的Bug';
$lang->bug->allProduct = '所有产品';
/* 页面标签。*/
$lang->bug->lblProductAndModule = '产品模块';
$lang->bug->lblProjectAndTask = '项目任务';
$lang->bug->lblStory = '相关需求';
$lang->bug->lblTypeAndSeverity = '类型/严重程度';
$lang->bug->lblSystemBrowserAndHardware = '系统/浏览器';
$lang->bug->lblAssignedTo = '当前指派';
$lang->bug->lblMailto = '抄送给';
$lang->bug->lblLastEdited = '最后修改';
$lang->bug->lblResolved = '由谁解决';
$lang->bug->lblAllFields = '所有字段';
$lang->bug->lblCustomFields = '自定义字段';
/* legend列表。*/
$lang->bug->legendBasicInfo = '基本信息';
$lang->bug->legendMailto = '抄送给';
$lang->bug->legendAttatch = '附件';
$lang->bug->legendLinkBugs = '相关Bug';
$lang->bug->legendPrjStoryTask= '项目/需求/任务';
$lang->bug->legendCases = '相关用例';
$lang->bug->legendSteps = '重现步骤';
$lang->bug->legendAction = '操作';
$lang->bug->legendHistory = '历史记录';
$lang->bug->legendComment = '备注';
$lang->bug->legendLife = 'BUG的一生';
$lang->bug->legendMisc = '其相关他';
/* 功能按钮。*/
$lang->bug->buttonCopy = '复制';
$lang->bug->buttonEdit = '编辑';
$lang->bug->buttonActivate = '激活';
$lang->bug->buttonResolve = '解决';
$lang->bug->buttonClose = '关闭';
$lang->bug->buttonToList = '返回';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = '修改产品会导致相应的项目、需求和任务发生变化,确定吗?';
$lang->bug->confirmDelete = '您确认要删除该Bug吗';
$lang->bug->setTemplateTitle = '请输入bug模板标题保存之前请先填写bug重现步骤';
/* 模板。*/
$lang->bug->tplStep = "<p>[步骤]</p>";
$lang->bug->tplResult = "<p>[结果]</p>";
$lang->bug->tplExpect = "<p>[期望]</p>";
/* 各个字段取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = '全部';
$lang->bug->osList['windows'] = 'Windows';
$lang->bug->osList['winxp'] = 'Windows XP';
$lang->bug->osList['win7'] = 'Windows 7';
$lang->bug->osList['vista'] = 'Windows Vista';
$lang->bug->osList['win2000'] = 'Windows 2000';
$lang->bug->osList['winnt'] = 'Windows NT';
$lang->bug->osList['win98'] = 'Windows 98';
$lang->bug->osList['linux'] = 'Linux';
$lang->bug->osList['freebsd'] = 'FreeBSD';
$lang->bug->osList['unix'] = 'Unix';
$lang->bug->osList['others'] = '其他';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = '全部';
$lang->bug->browserList['ie'] = 'IE系列';
$lang->bug->browserList['ie6'] = 'IE6';
$lang->bug->browserList['ie7'] = 'IE7';
$lang->bug->browserList['ie8'] = 'IE8';
$lang->bug->browserList['firefox'] = 'firefox系列';
$lang->bug->browserList['firefox2'] = 'firefox2';
$lang->bug->browserList['firefx3'] = 'firefox3';
$lang->bug->browserList['opera'] = 'opera系列';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = 'safari';
$lang->bug->browserList['chrome'] = 'chrome';
$lang->bug->browserList['other'] = '其他';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = '代码错误';
$lang->bug->typeList['interface'] = '界面优化';
$lang->bug->typeList['designchange'] = '设计变更';
$lang->bug->typeList['newfeature'] = '新增需求';
$lang->bug->typeList['designdefect'] = '设计缺陷';
$lang->bug->typeList['config'] = '配置相关';
$lang->bug->typeList['install'] = '安装部署';
$lang->bug->typeList['security'] = '安全相关';
$lang->bug->typeList['performance'] = '性能问题';
$lang->bug->typeList['standard'] = '标准规范';
$lang->bug->typeList['automation'] = '测试脚本';
$lang->bug->typeList['trackthings'] = '事务跟踪';
$lang->bug->typeList['Others'] = '其他';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = '激活';
$lang->bug->statusList['resolved'] = '已解决';
$lang->bug->statusList['closed'] = '已关闭';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = '设计如此';
$lang->bug->resolutionList['duplicate'] = '重复Bug';
$lang->bug->resolutionList['external'] = '外部原因';
$lang->bug->resolutionList['fixed'] = '已解决';
$lang->bug->resolutionList['notrepro'] = '无法重现';
$lang->bug->resolutionList['postponed'] = '延期处理';
$lang->bug->resolutionList['willnotfix'] = "不予解决";
/* 统计报表。*/
$lang->bug->report->common = '统计报表';
$lang->bug->report->select = '请选择报表类型';
$lang->bug->report->create = '生成报表';
$lang->bug->report->selectAll = '全选';
$lang->bug->report->selectReverse = '反选';
$lang->bug->report->charts['bugsPerProject'] = '项目Bug数量';
$lang->bug->report->charts['bugsPerModule'] = '模块Bug数量';
$lang->bug->report->charts['openedBugsPerDay'] = '每天新增Bug数';
$lang->bug->report->charts['resolvedBugsPerDay'] = '每天解决Bug数';
$lang->bug->report->charts['closedBugsPerDay'] = '每天关闭的Bug数';
$lang->bug->report->charts['openedBugsPerUser'] = '每人提交的Bug数';
$lang->bug->report->charts['resolvedBugsPerUser']= '每人解决的Bug数';
$lang->bug->report->charts['closedBugsPerUser'] = '每人关闭的Bug数';
$lang->bug->report->charts['bugsPerSeverity'] = 'Bug严重程度统计';
$lang->bug->report->charts['bugsPerResolution'] = 'Bug解决方案统计';
$lang->bug->report->charts['bugsPerStatus'] = 'Bug状态统计';
$lang->bug->report->charts['bugsPerType'] = 'Bug类型统计';
//$lang->bug->report->charts['bugLiveDays'] = 'Bug处理时间统计';
//$lang->bug->report->charts['bugHistories'] = 'Bug处理步骤统计';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = 'auto';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNT';
$lang->bug->report->options->graph->pieRadius = 100; // 饼图直径。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否显示柱状图阴影。
$lang->bug->report->bugsPerProject->graph->xAxisName = '项目';
$lang->bug->report->bugsPerModule->graph->xAxisName = '模块';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = '用户';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= '用户';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = '用户';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = '严重程度';
$lang->bug->report->bugsPerResolution->graph->xAxisName = '解决方案';
$lang->bug->report->bugsPerStatus->graph->xAxisName = '状态';
$lang->bug->report->bugsPerType->graph->xAxisName = '类型';
$lang->bug->report->bugLiveDays->graph->xAxisName = '处理时间';
$lang->bug->report->bugHistories->graph->xAxisName = '处理步骤';
/* 操作记录。*/
$lang->bug->action->resolved = array('main' => '$date, 由 <strong>$actor</strong> 解决,方案为 <strong>$extra</strong>。', 'extra' => $lang->bug->resolutionList);

View File

@@ -1,286 +1,273 @@
<?php
/**
* The bug module zh-tw file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id: zh-tw.php 1069 2010-09-11 07:26:25Z yuren_@126.com $
* @link http://www.zentao.net
*/
/* 欄位列表。*/
$lang->bug->common = '缺陷管理';
$lang->bug->id = 'Bug編號';
$lang->bug->product = '所屬產品';
$lang->bug->module = '所屬模組';
$lang->bug->path = '模組路徑';
$lang->bug->project = '所屬項目';
$lang->bug->story = '相關需求';
$lang->bug->storyVersion = '需求版本';
$lang->bug->task = '相關任務';
$lang->bug->title = 'Bug標題';
$lang->bug->severity = '嚴重程度';
$lang->bug->severityAB = '級別';
$lang->bug->pri = '優先順序';
$lang->bug->type = 'Bug類型';
$lang->bug->os = '操作系統';
$lang->bug->hardware = '硬件平台';
$lang->bug->browser = '瀏覽器';
$lang->bug->machine = '機器硬件';
$lang->bug->found = '如何發現';
$lang->bug->steps = '重現步驟';
$lang->bug->status = 'Bug狀態';
$lang->bug->mailto = '抄送給';
$lang->bug->openedBy = '由誰創建';
$lang->bug->openedByAB = '創建';
$lang->bug->openedDate = '創建日期';
$lang->bug->openedBuild = '影響版本';
$lang->bug->assignedTo = '指派給';
$lang->bug->assignedDate = '指派日期';
$lang->bug->resolvedBy = '解決者';
$lang->bug->resolvedByAB = '解決';
$lang->bug->resolution = '解決方案';
$lang->bug->resolutionAB = '方案';
$lang->bug->resolvedBuild = '解決版本';
$lang->bug->resolvedDate = '解決日期';
$lang->bug->closedBy = '由誰關閉';
$lang->bug->closedDate = '關閉日期';
$lang->bug->duplicateBug = '重複Bug';
$lang->bug->lastEditedBy = '最後修改者';
$lang->bug->lastEditedDate = '最後修改日期';
$lang->bug->linkBug = '相關Bug';
$lang->bug->case = '相關用例';
$lang->bug->files = '附件';
$lang->bug->keywords = '關鍵詞';
$lang->bug->lastEditedByAB = '修改者';
$lang->bug->lastEditedDateAB = '修改日期';
/* 方法列表。*/
$lang->bug->index = '首頁';
$lang->bug->create = '創建Bug';
$lang->bug->edit = '編輯Bug';
$lang->bug->browse = 'Bug列表';
$lang->bug->view = 'Bug詳情';
$lang->bug->resolve = '解決Bug';
$lang->bug->close = '關閉Bug';
$lang->bug->activate = '激活Bug';
$lang->bug->reportChart = '報表統計';
$lang->bug->delete = '刪除Bug';
$lang->bug->saveTemplate = '保存模板';
$lang->bug->deleteTemplate = '刪除模板';
$lang->bug->customFields = '自定義欄位';
$lang->bug->restoreDefault = '恢復預設';
$lang->bug->ajaxGetUserBugs = '介面:我的Bug';
$lang->bug->ajaxGetModuleOwner = '介面:獲得模組的預設指派人';
$lang->bug->confirmStoryChange = '確認需求變動';
/* 查詢條件列表。*/
$lang->bug->selectProduct = '請選擇產品';
$lang->bug->byModule = '按模組';
$lang->bug->assignToMe = '指派給我';
$lang->bug->openedByMe = '由我創建';
$lang->bug->resolvedByMe = '由我解決';
$lang->bug->assignToNull = '未指派';
$lang->bug->longLifeBugs = '久未處理';
$lang->bug->postponedBugs = '被延期';
$lang->bug->allBugs = '所有Bug';
$lang->bug->moduleBugs = '按模組瀏覽';
$lang->bug->byQuery = '搜索';
$lang->bug->needConfirm = '需求有變動的Bug';
$lang->bug->allProduct = '所有產品';
/* 頁面標籤。*/
$lang->bug->lblProductAndModule = '產品模組';
$lang->bug->lblProjectAndTask = '項目任務';
$lang->bug->lblStory = '相關需求';
$lang->bug->lblTypeAndSeverity = '類型/嚴重程度';
$lang->bug->lblSystemBrowserAndHardware = '系統/瀏覽器';
$lang->bug->lblAssignedTo = '當前指派';
$lang->bug->lblMailto = '抄送給';
$lang->bug->lblLastEdited = '最後修改';
$lang->bug->lblResolved = '由誰解決';
$lang->bug->lblAllFields = '所有欄位';
$lang->bug->lblCustomFields = '自定義欄位';
/* legend列表。*/
$lang->bug->legendBasicInfo = '基本信息';
$lang->bug->legendMailto = '抄送給';
$lang->bug->legendAttatch = '附件';
$lang->bug->legendLinkBugs = '相關Bug';
$lang->bug->legendPrjStoryTask= '項目/需求/任務';
$lang->bug->legendCases = '相關用例';
$lang->bug->legendSteps = '重現步驟';
$lang->bug->legendAction = '操作';
$lang->bug->legendHistory = '歷史記錄';
$lang->bug->legendComment = '備註';
$lang->bug->legendLife = 'BUG的一生';
$lang->bug->legendMisc = '其相關他';
/* 功能按鈕。*/
$lang->bug->buttonCopy = '複製';
$lang->bug->buttonEdit = '編輯';
$lang->bug->buttonActivate = '激活';
$lang->bug->buttonResolve = '解決';
$lang->bug->buttonClose = '關閉';
$lang->bug->buttonToList = '返回';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = '修改產品會導致相應的項目、需求和任務發生變化,確定嗎?';
$lang->bug->confirmDelete = '您確認要刪除該Bug嗎';
$lang->bug->setTemplateTitle = '請輸入bug模板標題保存之前請先填寫bug重現步驟';
/* 模板。*/
$lang->bug->tplStep = "<p>[步驟]</p>";
$lang->bug->tplResult = "<p>[結果]</p>";
$lang->bug->tplExpect = "<p>[期望]</p>";
/* 各個欄位取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = '全部';
$lang->bug->osList['windows'] = 'Windows';
$lang->bug->osList['winxp'] = 'Windows XP';
$lang->bug->osList['win7'] = 'Windows 7';
$lang->bug->osList['vista'] = 'Windows Vista';
$lang->bug->osList['win2000'] = 'Windows 2000';
$lang->bug->osList['winnt'] = 'Windows NT';
$lang->bug->osList['win98'] = 'Windows 98';
$lang->bug->osList['linux'] = 'Linux';
$lang->bug->osList['freebsd'] = 'FreeBSD';
$lang->bug->osList['unix'] = 'Unix';
$lang->bug->osList['others'] = '其他';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = '全部';
$lang->bug->browserList['ie'] = 'IE系列';
$lang->bug->browserList['ie6'] = 'IE6';
$lang->bug->browserList['ie7'] = 'IE7';
$lang->bug->browserList['ie8'] = 'IE8';
$lang->bug->browserList['firefox'] = 'firefox系列';
$lang->bug->browserList['firefox2'] = 'firefox2';
$lang->bug->browserList['firefx3'] = 'firefox3';
$lang->bug->browserList['opera'] = 'opera系列';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = 'safari';
$lang->bug->browserList['chrome'] = 'chrome';
$lang->bug->browserList['other'] = '其他';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = '代碼錯誤';
$lang->bug->typeList['interface'] = '界面優化';
$lang->bug->typeList['designchange'] = '設計變更';
$lang->bug->typeList['newfeature'] = '新增需求';
$lang->bug->typeList['designdefect'] = '設計缺陷';
$lang->bug->typeList['config'] = '配置相關';
$lang->bug->typeList['install'] = '安裝部署';
$lang->bug->typeList['security'] = '安全相關';
$lang->bug->typeList['performance'] = '性能問題';
$lang->bug->typeList['standard'] = '標準規範';
$lang->bug->typeList['automation'] = '測試腳本';
$lang->bug->typeList['trackthings'] = '事務跟蹤';
$lang->bug->typeList['Others'] = '其他';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = '激活';
$lang->bug->statusList['resolved'] = '已解決';
$lang->bug->statusList['closed'] = '已關閉';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = '設計如此';
$lang->bug->resolutionList['duplicate'] = '重複Bug';
$lang->bug->resolutionList['external'] = '外部原因';
$lang->bug->resolutionList['fixed'] = '已解決';
$lang->bug->resolutionList['notrepro'] = '無法重現';
$lang->bug->resolutionList['postponed'] = '延期處理';
$lang->bug->resolutionList['willnotfix'] = "不予解決";
/* 統計報表。*/
$lang->bug->report->common = '統計報表';
$lang->bug->report->select = '請選擇報表類型';
$lang->bug->report->create = '生成報表';
$lang->bug->report->selectAll = '全選';
$lang->bug->report->selectReverse = '反選';
$lang->bug->report->charts['bugsPerProject'] = '項目Bug數量';
$lang->bug->report->charts['bugsPerModule'] = '模組Bug數量';
$lang->bug->report->charts['openedBugsPerDay'] = '每天新增Bug數';
$lang->bug->report->charts['resolvedBugsPerDay'] = '每天解決Bug數';
$lang->bug->report->charts['closedBugsPerDay'] = '每天關閉的Bug數';
$lang->bug->report->charts['openedBugsPerUser'] = '每人提交的Bug數';
$lang->bug->report->charts['resolvedBugsPerUser']= '每人解決的Bug數';
$lang->bug->report->charts['closedBugsPerUser'] = '每人關閉的Bug數';
$lang->bug->report->charts['bugsPerSeverity'] = 'Bug嚴重程度統計';
$lang->bug->report->charts['bugsPerResolution'] = 'Bug解決方案統計';
$lang->bug->report->charts['bugsPerStatus'] = 'Bug狀態統計';
$lang->bug->report->charts['bugsPerType'] = 'Bug類型統計';
//$lang->bug->report->charts['bugLiveDays'] = 'Bug處理時間統計';
//$lang->bug->report->charts['bugHistories'] = 'Bug處理步驟統計';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = 'auto';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNT';
$lang->bug->report->options->graph->pieRadius = 100; // 餅圖直徑。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否顯示柱狀圖陰影。
$lang->bug->report->bugsPerProject->graph->xAxisName = '項目';
$lang->bug->report->bugsPerModule->graph->xAxisName = '模組';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = '用戶';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= '用戶';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = '用戶';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = '嚴重程度';
$lang->bug->report->bugsPerResolution->graph->xAxisName = '解決方案';
$lang->bug->report->bugsPerStatus->graph->xAxisName = '狀態';
$lang->bug->report->bugsPerType->graph->xAxisName = '類型';
$lang->bug->report->bugLiveDays->graph->xAxisName = '處理時間';
$lang->bug->report->bugHistories->graph->xAxisName = '處理步驟';
/* 操作記錄。*/
$lang->bug->action->resolved = array('main' => '$date, 由 <strong>$actor</strong> 解決,方案為 <strong>$extra</strong>。', 'extra' => $lang->bug->resolutionList);
<?php
/**
* The bug module zh-tw file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id: zh-tw.php 1069 2010-09-11 07:26:25Z yuren_@126.com $
* @link http://www.zentao.net
*/
/* 欄位列表。*/
$lang->bug->common = '缺陷管理';
$lang->bug->id = 'Bug編號';
$lang->bug->product = '所屬產品';
$lang->bug->module = '所屬模組';
$lang->bug->path = '模組路徑';
$lang->bug->project = '所屬項目';
$lang->bug->story = '相關需求';
$lang->bug->storyVersion = '需求版本';
$lang->bug->task = '相關任務';
$lang->bug->title = 'Bug標題';
$lang->bug->severity = '嚴重程度';
$lang->bug->severityAB = '級別';
$lang->bug->pri = '優先順序';
$lang->bug->type = 'Bug類型';
$lang->bug->os = '操作系統';
$lang->bug->hardware = '硬件平台';
$lang->bug->browser = '瀏覽器';
$lang->bug->machine = '機器硬件';
$lang->bug->found = '如何發現';
$lang->bug->steps = '重現步驟';
$lang->bug->status = 'Bug狀態';
$lang->bug->mailto = '抄送給';
$lang->bug->openedBy = '由誰創建';
$lang->bug->openedByAB = '創建';
$lang->bug->openedDate = '創建日期';
$lang->bug->openedBuild = '影響版本';
$lang->bug->assignedTo = '指派給';
$lang->bug->assignedDate = '指派日期';
$lang->bug->resolvedBy = '解決者';
$lang->bug->resolvedByAB = '解決';
$lang->bug->resolution = '解決方案';
$lang->bug->resolutionAB = '方案';
$lang->bug->resolvedBuild = '解決版本';
$lang->bug->resolvedDate = '解決日期';
$lang->bug->closedBy = '由誰關閉';
$lang->bug->closedDate = '關閉日期';
$lang->bug->duplicateBug = '重複Bug';
$lang->bug->lastEditedBy = '最後修改者';
$lang->bug->lastEditedDate = '最後修改日期';
$lang->bug->linkBug = '相關Bug';
$lang->bug->case = '相關用例';
$lang->bug->files = '附件';
$lang->bug->keywords = '關鍵詞';
$lang->bug->lastEditedByAB = '修改者';
$lang->bug->lastEditedDateAB = '修改日期';
/* 方法列表。*/
$lang->bug->index = '首頁';
$lang->bug->create = '創建Bug';
$lang->bug->edit = '編輯Bug';
$lang->bug->browse = 'Bug列表';
$lang->bug->view = 'Bug詳情';
$lang->bug->resolve = '解決Bug';
$lang->bug->close = '關閉Bug';
$lang->bug->activate = '激活Bug';
$lang->bug->reportChart = '報表統計';
$lang->bug->delete = '刪除Bug';
$lang->bug->saveTemplate = '保存模板';
$lang->bug->deleteTemplate = '刪除模板';
$lang->bug->customFields = '自定義欄位';
$lang->bug->restoreDefault = '恢復預設';
$lang->bug->ajaxGetUserBugs = '介面:我的Bug';
$lang->bug->ajaxGetModuleOwner = '介面:獲得模組的預設指派人';
$lang->bug->confirmStoryChange = '確認需求變動';
/* 查詢條件列表。*/
$lang->bug->selectProduct = '請選擇產品';
$lang->bug->byModule = '按模組';
$lang->bug->assignToMe = '指派給我';
$lang->bug->openedByMe = '由我創建';
$lang->bug->resolvedByMe = '由我解決';
$lang->bug->assignToNull = '未指派';
$lang->bug->longLifeBugs = '久未處理';
$lang->bug->postponedBugs = '被延期';
$lang->bug->allBugs = '所有Bug';
$lang->bug->moduleBugs = '按模組瀏覽';
$lang->bug->byQuery = '搜索';
$lang->bug->needConfirm = '需求有變動的Bug';
$lang->bug->allProduct = '所有產品';
/* 頁面標籤。*/
$lang->bug->lblProductAndModule = '產品模組';
$lang->bug->lblProjectAndTask = '項目任務';
$lang->bug->lblStory = '相關需求';
$lang->bug->lblTypeAndSeverity = '類型/嚴重程度';
$lang->bug->lblSystemBrowserAndHardware = '系統/瀏覽器';
$lang->bug->lblAssignedTo = '當前指派';
$lang->bug->lblMailto = '抄送給';
$lang->bug->lblLastEdited = '最後修改';
$lang->bug->lblResolved = '由誰解決';
$lang->bug->lblAllFields = '所有欄位';
$lang->bug->lblCustomFields = '自定義欄位';
/* legend列表。*/
$lang->bug->legendBasicInfo = '基本信息';
$lang->bug->legendMailto = '抄送給';
$lang->bug->legendAttatch = '附件';
$lang->bug->legendLinkBugs = '相關Bug';
$lang->bug->legendPrjStoryTask= '項目/需求/任務';
$lang->bug->legendCases = '相關用例';
$lang->bug->legendSteps = '重現步驟';
$lang->bug->legendAction = '操作';
$lang->bug->legendHistory = '歷史記錄';
$lang->bug->legendComment = '備註';
$lang->bug->legendLife = 'BUG的一生';
$lang->bug->legendMisc = '其相關他';
/* 功能按鈕。*/
$lang->bug->buttonCopy = '複製';
$lang->bug->buttonEdit = '編輯';
$lang->bug->buttonActivate = '激活';
$lang->bug->buttonResolve = '解決';
$lang->bug->buttonClose = '關閉';
$lang->bug->buttonToList = '返回';
/* 交互提示。*/
$lang->bug->confirmChangeProduct = '修改產品會導致相應的項目、需求和任務發生變化,確定嗎?';
$lang->bug->confirmDelete = '您確認要刪除該Bug嗎';
$lang->bug->setTemplateTitle = '請輸入bug模板標題保存之前請先填寫bug重現步驟';
/* 模板。*/
$lang->bug->tplStep = "<p>[步驟]</p>";
$lang->bug->tplResult = "<p>[結果]</p>";
$lang->bug->tplExpect = "<p>[期望]</p>";
/* 各個欄位取值列表。*/
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[3] = '3';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = '全部';
$lang->bug->osList['windows'] = 'Windows';
$lang->bug->osList['winxp'] = 'Windows XP';
$lang->bug->osList['win7'] = 'Windows 7';
$lang->bug->osList['vista'] = 'Windows Vista';
$lang->bug->osList['win2000'] = 'Windows 2000';
$lang->bug->osList['winnt'] = 'Windows NT';
$lang->bug->osList['win98'] = 'Windows 98';
$lang->bug->osList['linux'] = 'Linux';
$lang->bug->osList['freebsd'] = 'FreeBSD';
$lang->bug->osList['unix'] = 'Unix';
$lang->bug->osList['others'] = '其他';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = '全部';
$lang->bug->browserList['ie'] = 'IE系列';
$lang->bug->browserList['ie6'] = 'IE6';
$lang->bug->browserList['ie7'] = 'IE7';
$lang->bug->browserList['ie8'] = 'IE8';
$lang->bug->browserList['firefox'] = 'firefox系列';
$lang->bug->browserList['firefox2'] = 'firefox2';
$lang->bug->browserList['firefx3'] = 'firefox3';
$lang->bug->browserList['opera'] = 'opera系列';
$lang->bug->browserList['opera9'] = 'opera9';
$lang->bug->browserList['oprea10'] = 'opera10';
$lang->bug->browserList['safari'] = 'safari';
$lang->bug->browserList['chrome'] = 'chrome';
$lang->bug->browserList['other'] = '其他';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = '代碼錯誤';
$lang->bug->typeList['interface'] = '界面優化';
$lang->bug->typeList['designchange'] = '設計變更';
$lang->bug->typeList['newfeature'] = '新增需求';
$lang->bug->typeList['designdefect'] = '設計缺陷';
$lang->bug->typeList['config'] = '配置相關';
$lang->bug->typeList['install'] = '安裝部署';
$lang->bug->typeList['security'] = '安全相關';
$lang->bug->typeList['performance'] = '性能問題';
$lang->bug->typeList['standard'] = '標準規範';
$lang->bug->typeList['automation'] = '測試腳本';
$lang->bug->typeList['trackthings'] = '事務跟蹤';
$lang->bug->typeList['Others'] = '其他';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = '激活';
$lang->bug->statusList['resolved'] = '已解決';
$lang->bug->statusList['closed'] = '已關閉';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = '設計如此';
$lang->bug->resolutionList['duplicate'] = '重複Bug';
$lang->bug->resolutionList['external'] = '外部原因';
$lang->bug->resolutionList['fixed'] = '已解決';
$lang->bug->resolutionList['notrepro'] = '無法重現';
$lang->bug->resolutionList['postponed'] = '延期處理';
$lang->bug->resolutionList['willnotfix'] = "不予解決";
/* 統計報表。*/
$lang->bug->report->common = '統計報表';
$lang->bug->report->select = '請選擇報表類型';
$lang->bug->report->create = '生成報表';
$lang->bug->report->selectAll = '全選';
$lang->bug->report->selectReverse = '反選';
$lang->bug->report->charts['bugsPerProject'] = '項目Bug數量';
$lang->bug->report->charts['bugsPerModule'] = '模組Bug數量';
$lang->bug->report->charts['openedBugsPerDay'] = '每天新增Bug數';
$lang->bug->report->charts['resolvedBugsPerDay'] = '每天解決Bug數';
$lang->bug->report->charts['closedBugsPerDay'] = '每天關閉的Bug數';
$lang->bug->report->charts['openedBugsPerUser'] = '每人提交的Bug數';
$lang->bug->report->charts['resolvedBugsPerUser']= '每人解決的Bug數';
$lang->bug->report->charts['closedBugsPerUser'] = '每人關閉的Bug數';
$lang->bug->report->charts['bugsPerSeverity'] = 'Bug嚴重程度統計';
$lang->bug->report->charts['bugsPerResolution'] = 'Bug解決方案統計';
$lang->bug->report->charts['bugsPerStatus'] = 'Bug狀態統計';
$lang->bug->report->charts['bugsPerType'] = 'Bug類型統計';
//$lang->bug->report->charts['bugLiveDays'] = 'Bug處理時間統計';
//$lang->bug->report->charts['bugHistories'] = 'Bug處理步驟統計';
$lang->bug->report->options->swf = 'pie2d';
$lang->bug->report->options->width = 'auto';
$lang->bug->report->options->height = 300;
$lang->bug->report->options->graph->baseFontSize = 12;
$lang->bug->report->options->graph->showNames = 1;
$lang->bug->report->options->graph->formatNumber = 1;
$lang->bug->report->options->graph->decimalPrecision = 0;
$lang->bug->report->options->graph->animation = 0;
$lang->bug->report->options->graph->rotateNames = 0;
$lang->bug->report->options->graph->yAxisName = 'COUNT';
$lang->bug->report->options->graph->pieRadius = 100; // 餅圖直徑。
$lang->bug->report->options->graph->showColumnShadow = 0; // 是否顯示柱狀圖陰影。
$lang->bug->report->bugsPerProject->graph->xAxisName = '項目';
$lang->bug->report->bugsPerModule->graph->xAxisName = '模組';
$lang->bug->report->openedBugsPerDay->swf = 'column2d';
$lang->bug->report->openedBugsPerDay->height = 400;
$lang->bug->report->openedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->openedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->resolvedBugsPerDay->swf = 'column2d';
$lang->bug->report->resolvedBugsPerDay->height = 400;
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->resolvedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->closedBugsPerDay->swf = 'column2d';
$lang->bug->report->closedBugsPerDay->height = 400;
$lang->bug->report->closedBugsPerDay->graph->xAxisName = '日期';
$lang->bug->report->closedBugsPerDay->graph->rotateNames = 1;
$lang->bug->report->openedBugsPerUser->graph->xAxisName = '用戶';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName= '用戶';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = '用戶';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = '嚴重程度';
$lang->bug->report->bugsPerResolution->graph->xAxisName = '解決方案';
$lang->bug->report->bugsPerStatus->graph->xAxisName = '狀態';
$lang->bug->report->bugsPerType->graph->xAxisName = '類型';
$lang->bug->report->bugLiveDays->graph->xAxisName = '處理時間';
$lang->bug->report->bugHistories->graph->xAxisName = '處理步驟';
/* 操作記錄。*/
$lang->bug->action->resolved = array('main' => '$date, 由 <strong>$actor</strong> 解決,方案為 <strong>$extra</strong>。', 'extra' => $lang->bug->resolutionList);

View File

@@ -1,476 +1,463 @@
<?php
/**
* The model file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class bugModel extends model
{
/* 设置菜单。*/
public function setMenu($products, $productID)
{
$selectHtml = html::select('productID', $products, $productID, "onchange=\"switchProduct(this.value, 'bug', 'browse');\"");
foreach($this->lang->bug->menu as $key => $menu)
{
if($key == 'product')
{
common::setMenuVars($this->lang->bug->menu, 'product', $selectHtml . $this->lang->arrow);
}
else
{
common::setMenuVars($this->lang->bug->menu, $key, $productID);
}
}
}
/* 创建一个Bug。*/
public function create()
{
$now = helper::now();
$bug = fixer::input('post')
->add('openedBy', $this->app->user->account)
->add('openedDate', $now)
->setDefault('project,story,task', 0)
->setDefault('openedBuild', '')
->setIF($this->post->assignedTo != '', 'assignedDate', $now)
->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story))
->specialChars('title,keyword')
->cleanInt('product, module, severity')
->join('openedBuild', ',')
->remove('files, labels')
->get();
$this->dao->insert(TABLE_BUG)->data($bug)->autoCheck()->batchCheck($this->config->bug->create->requiredFields, 'notempty')->exec();
if(!dao::isError())
{
$bugID = $this->dao->lastInsertID();
$this->loadModel('file')->saveUpload('bug', $bugID);
return $bugID;
}
return false;
}
/* 获得某一个产品某一个模块下面的所有bug。*/
public function getModuleBugs($productID, $moduleIds = 0, $orderBy = 'id_desc', $pager = null)
{
return $this->dao->select('*')->from(TABLE_BUG)
->where('product')->eq((int)$productID)
->beginIF(!empty($moduleIds))->andWhere('module')->in($moduleIds)->fi()
->andWhere('deleted')->eq(0)
->orderBy($orderBy)->page($pager)->fetchAll();
}
/* 获取一个bug的详细信息。*/
public function getById($bugID)
{
$bug = $this->dao->select('t1.*, t2.name AS projectName, t3.title AS storyTitle, t3.status AS storyStatus, t3.version AS latestStoryVersion, t4.name AS taskName')
->from(TABLE_BUG)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->leftJoin(TABLE_STORY)->alias('t3')->on('t1.story = t3.id')
->leftJoin(TABLE_TASK)->alias('t4')->on('t1.task = t4.id')
->where('t1.id')->eq((int)$bugID)->fetch();
if(!$bug) return false;
foreach($bug as $key => $value) if(strpos($key, 'Date') !== false and !(int)substr($value, 0, 4)) $bug->$key = '';
if($bug->mailto)
{
$bug->mailto = ltrim(trim($bug->mailto), ','); // 去掉开始的,。
$bug->mailto = str_replace(' ', '', $bug->mailto);
$bug->mailto = rtrim($bug->mailto, ',') . ',';
$bug->mailto = str_replace(',', ', ', $bug->mailto);
}
if($bug->duplicateBug) $bug->duplicateBugTitle = $this->dao->findById($bug->duplicateBug)->from(TABLE_BUG)->fields('title')->fetch('title');
if($bug->case) $bug->caseTitle = $this->dao->findById($bug->case)->from(TABLE_CASE)->fields('title')->fetch('title');
if($bug->linkBug) $bug->linkBugTitles = $this->dao->select('id,title')->from(TABLE_BUG)->where('id')->in($bug->linkBug)->fetchPairs();
$bug->files = $this->loadModel('file')->getByObject('bug', $bugID);
return $bug;
}
/* 更新bug信息。*/
public function update($bugID)
{
$oldBug = $this->getById($bugID);
$now = helper::now();
$bug = fixer::input('post')
->cleanInt('product,module,severity,project,story,task')
->specialChars('title,keyword')
->remove('comment,files,labels')
->setDefault('project,module,project,story,task,duplicateBug', 0)
->setDefault('openedBuild', '')
->add('lastEditedBy', $this->app->user->account)
->add('lastEditedDate', $now)
->join('openedBuild', ',')
->setIF($this->post->assignedTo != $oldBug->assignedTo, 'assignedDate', $now)
->setIF($this->post->resolvedBy != '' and $this->post->resolvedDate == '', 'resolvedDate', $now)
->setIF($this->post->resolution != '' and $this->post->resolvedDate == '', 'resolvedDate', $now)
->setIF($this->post->resolution != '' and $this->post->resolvedBy == '', 'resolvedBy', $this->app->user->account)
->setIF($this->post->closedBy != '' and $this->post->closedDate == '', 'closedDate', $now)
->setIF($this->post->closedDate != '' and $this->post->closedBy == '', 'closedBy', $this->app->user->account)
->setIF($this->post->closedBy != '' or $this->post->closedDate != '', 'assignedTo', 'closed')
->setIF($this->post->closedBy != '' or $this->post->closedDate != '', 'assignedDate', $now)
->setIF($this->post->resolution != '' or $this->post->resolvedDate != '', 'status', 'resolved')
->setIF($this->post->closedBy != '' or $this->post->closedDate != '', 'status', 'closed')
->setIF(($this->post->resolution != '' or $this->post->resolvedDate != '') and $this->post->assignedTo == '', 'assignedTo', $oldBug->openedBy)
->setIF(($this->post->resolution != '' or $this->post->resolvedDate != '') and $this->post->assignedTo == '', 'assignedDate', $now)
->setIF($this->post->resolution == '' and $this->post->resolvedDate =='', 'status', 'active')
->setIF($this->post->story != false and $this->post->story != $oldBug->story, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story))
->get();
$this->dao->update(TABLE_BUG)->data($bug)
->autoCheck()
->batchCheck($this->config->bug->edit->requiredFields, 'notempty')
->checkIF($bug->resolvedBy, 'resolution', 'notempty')
->checkIF($bug->closedBy, 'resolution', 'notempty')
->checkIF($bug->resolution == 'duplicate', 'duplicateBug', 'notempty')
->where('id')->eq((int)$bugID)
->exec();
if(!dao::isError()) return common::createChanges($oldBug, $bug);
}
/* 解决Bug。*/
public function resolve($bugID)
{
$oldBug = $this->getById($bugID);
$now = helper::now();
$bug = fixer::input('post')
->add('resolvedBy', $this->app->user->account)
->add('resolvedDate', $now)
->add('status', 'resolved')
->add('assignedDate', $now)
->add('lastEditedBy', $this->app->user->account)
->add('lastEditedDate', $now)
->setDefault('duplicateBug', 0)
->setDefault('assignedTo', $oldBug->openedBy)
->remove('comment')
->get();
$this->dao->update(TABLE_BUG)->data($bug)
->autoCheck()
->batchCheck($this->config->bug->resolve->requiredFields, 'notempty')
->checkIF($bug->resolution == 'duplicate', 'duplicateBug', 'notempty')
->where('id')->eq((int)$bugID)
->exec();
}
/* 激活Bug。*/
public function activate($bugID)
{
$oldBug = $this->getById($bugID);
$now = helper::now();
$bug = fixer::input('post')
->setDefault('assignedTo', $oldBug->resolvedBy)
->add('assignedDate', $now)
->add('resolution', '')
->add('status', 'active')
->add('resolvedDate', '0000-00-00')
->add('resolvedBy', '')
->add('resolvedBuild', '')
->add('closedBy', '')
->add('closedDate', '0000-00-00')
->add('duplicateBug', 0)
->add('lastEditedBy', $this->app->user->account)
->add('lastEditedDate', $now)
->remove('comment,files,labels')
->get();
$this->dao->update(TABLE_BUG)->data($bug)->autoCheck()->where('id')->eq((int)$bugID)->exec();
}
/* 关闭Bug。*/
public function close($bugID)
{
$oldBug = $this->getById($bugID);
$now = helper::now();
$bug = fixer::input('post')
->add('assignedTo', 'closed')
->add('assignedDate', $now)
->add('status', 'closed')
->add('closedBy', $this->app->user->account)
->add('closedDate', $now)
->add('lastEditedBy', $this->app->user->account)
->add('lastEditedDate', $now)
->remove('comment')
->get();
$this->dao->update(TABLE_BUG)->data($bug)->autoCheck()->where('id')->eq((int)$bugID)->exec();
}
/* 从bug列表中提取所有出现过的账户。*/
public function extractAccountsFromList($bugs)
{
$accounts = array();
foreach($bugs as $bug)
{
if(!empty($bug->openedBy)) $accounts[] = $bug->openedBy;
if(!empty($bug->assignedTo)) $accounts[] = $bug->assignedTo;
if(!empty($bug->resolvedBy)) $accounts[] = $bug->resolvedBy;
if(!empty($bug->closedBy)) $accounts[] = $bug->closedBy;
if(!empty($bug->lastEditedBy)) $accounts[] = $bug->lastEditedBy;
}
return array_unique($accounts);
}
/* 从一条bug中提取所有出现过的账户。*/
public function extractAccountsFromSingle($bug)
{
$accounts = array();
if(!empty($bug->openedBy)) $accounts[] = $bug->openedBy;
if(!empty($bug->assignedTo)) $accounts[] = $bug->assignedTo;
if(!empty($bug->resolvedBy)) $accounts[] = $bug->resolvedBy;
if(!empty($bug->closedBy)) $accounts[] = $bug->closedBy;
if(!empty($bug->lastEditedBy)) $accounts[] = $bug->lastEditedBy;
return array_unique($accounts);
}
/* 获得用户的Bug id=>title列表。*/
public function getUserBugPairs($account)
{
$bugs = array();
$stmt = $this->dao->select('t1.id, t1.title, t2.name as product')
->from(TABLE_BUG)->alias('t1')
->leftJoin(TABLE_PRODUCT)->alias('t2')
->on('t1.product=t2.id')
->where('t1.assignedTo')->eq($account)
->andWhere('t1.deleted')->eq(0)
->query();
while($bug = $stmt->fetch())
{
$bug->title = $bug->product . ' / ' . $bug->title;
$bugs[$bug->id] = $bug->title;
}
return $bugs;
}
/* 获得某个项目的bug列表。*/
public function getProjectBugs($projectID, $orderBy = 'id_desc', $pager = null)
{
return $this->dao->select('*')->from(TABLE_BUG)
->where('project')->eq((int)$projectID)
->andWhere('deleted')->eq(0)
->orderBy($orderBy)->page($pager)->fetchAll();
}
/* 通过某一次测试结果获得bug的标题和步骤。*/
public function getBugInfoFromResult($resultID)
{
$title = '';
$bugSteps = '';
$result = $this->dao->findById($resultID)->from(TABLE_TESTRESULT)->fetch();
$run = $this->loadModel('testtask')->getRunById($result->run);
if($result and $result->caseResult == 'fail')
{
$title = $run->case->title;
$caseSteps = $run->case->steps;
$stepResults = unserialize($result->stepResults);
$bugSteps = $this->lang->bug->tplStep;
foreach($caseSteps as $key => $step)
{
$bugSteps .= ($key + 1) . '. ' .$step->desc . "\n";
if($stepResults[$step->id]['result'] == 'fail')
{
$bugSteps .= $this->lang->bug->tplResult;
$bugSteps .= $stepResults[$step->id]['real'] . "\n";
$bugSteps .= $this->lang->bug->tplExpect;
$bugSteps .= $step->expect;
break;
}
}
}
return array('title' => $title, 'steps' => $bugSteps, 'storyID' => $run->case->story);
}
/* 按项目统计bug数。*/
public function getDataOfBugsPerProject()
{
$datas = $this->dao->select('project as name, count(project) as value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('project')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
$projects = $this->loadModel('project')->getPairs();
foreach($datas as $projectID => $data) $data->name = isset($projects[$projectID]) ? $projects[$projectID] : $this->lang->report->undefined;
return $datas;
}
/* 按产品模块统计bug数。*/
public function getDataOfBugsPerModule()
{
$datas = $this->dao->select('module as name, count(module) as value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('module')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
$modules = $this->dao->select('id, name')->from(TABLE_MODULE)->where('id')->in(array_keys($datas))->fetchPairs();
foreach($datas as $moduleID => $data) $data->name = isset($modules[$moduleID]) ? $modules[$moduleID] : '/';
return $datas;
}
/* 按bug创建日期统计。*/
public function getDataOfOpenedBugsPerDay()
{
return $this->dao->select('DATE_FORMAT(openedDate, "%Y-%m-%d") AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('openedDate')->fetchAll();
}
/* 按bug解决日期统计。*/
public function getDataOfResolvedBugsPerDay()
{
return $this->dao->select('DATE_FORMAT(resolvedDate, "%Y-%m-%d") AS name, COUNT(*) AS value')->from(TABLE_BUG)
->where($this->session->bugReportCondition)->groupBy('name')
->having('name != 0000-00-00')
->orderBy('resolvedDate')
->fetchAll();
}
/* 按bug关闭日期统计。*/
public function getDataOfClosedBugsPerDay()
{
return $this->dao->select('DATE_FORMAT(closedDate, "%Y-%m-%d") AS name, COUNT(*) AS value')->from(TABLE_BUG)
->where($this->session->bugReportCondition)->groupBy('name')
->having('name != 0000-00-00')
->orderBy('closedDate')->fetchAll();
}
/* 按bug创建者统计。*/
public function getDataOfOpenedBugsPerUser()
{
$datas = $this->dao->select('openedBy AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
if(!isset($this->users)) $this->users = $this->loadModel('user')->getPairs('noletter');
foreach($datas as $account => $data) if(isset($this->users[$account])) $data->name = $this->users[$account];
return $datas;
}
/* 按bug解决者统计。*/
public function getDataOfResolvedBugsPerUser()
{
$datas = $this->dao->select('resolvedBy AS name, COUNT(*) AS value')
->from(TABLE_BUG)->where($this->session->bugReportCondition)
->andWhere('resolvedBy')->ne('')
->groupBy('name')
->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
if(!isset($this->users)) $this->users = $this->loadModel('user')->getPairs('noletter');
foreach($datas as $account => $data) if(isset($this->users[$account])) $data->name = $this->users[$account];
return $datas;
}
/* 按bug关闭者统计。*/
public function getDataOfClosedBugsPerUser()
{
$datas = $this->dao->select('closedBy AS name, COUNT(*) AS value')
->from(TABLE_BUG)
->where($this->session->bugReportCondition)
->andWhere('closedBy')->ne('')
->groupBy('name')
->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
if(!isset($this->users)) $this->users = $this->loadModel('user')->getPairs('noletter');
foreach($datas as $account => $data) if(isset($this->users[$account])) $data->name = $this->users[$account];
return $datas;
}
/* 按bug严重程度统计。*/
public function getDataOfBugsPerSeverity()
{
$datas = $this->dao->select('severity AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
foreach($datas as $severity => $data) if(isset($this->lang->bug->severityList[$severity])) $data->name = $this->lang->bug->severityList[$severity];
return $datas;
}
/* 按bug解决方案统计。*/
public function getDataOfBugsPerResolution()
{
$datas = $this->dao->select('resolution AS name, COUNT(*) AS value')
->from(TABLE_BUG)
->where($this->session->bugReportCondition)
->andWhere('resolution')->ne('')
->groupBy('name')->orderBy('value DESC')
->fetchAll('name');
if(!$datas) return array();
foreach($datas as $resolution => $data) if(isset($this->lang->bug->resolutionList[$resolution])) $data->name = $this->lang->bug->resolutionList[$resolution];
return $datas;
}
/* 按bug状态统计。*/
public function getDataOfBugsPerStatus()
{
$datas = $this->dao->select('status AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
foreach($datas as $status => $data) if(isset($this->lang->bug->statusList[$status])) $data->name = $this->lang->bug->statusList[$status];
return $datas;
}
/* 按bug类型统计。*/
public function getDataOfBugsPerType()
{
$datas = $this->dao->select('type AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
foreach($datas as $type => $data) if(isset($this->lang->bug->typeList[$type])) $data->name = $this->lang->bug->typeList[$type];
return $datas;
}
/* 合并公共的chart设置和当前chart的设置。*/
public function mergeChartOption($chartType)
{
$chartOption = $this->lang->bug->report->$chartType;
$commonOption = $this->lang->bug->report->options;
/* 设置图表的标题和展示方式。*/
$chartOption->graph->caption = $this->lang->bug->report->charts[$chartType];
if(!isset($chartOption->swf)) $chartOption->swf = $commonOption->swf;
if(!isset($chartOption->width)) $chartOption->width = $commonOption->width;
if(!isset($chartOption->height)) $chartOption->height = $commonOption->height;
/* 合并配置。*/
foreach($commonOption->graph as $key => $value) if(!isset($chartOption->graph->$key)) $chartOption->graph->$key = $value;
}
/* 获得用户的Bug模板列表。*/
public function getUserBugTemplates($account)
{
$templates = $this->dao->select('id, title, content')
->from(TABLE_USERTPL)
->where('account')->eq($account)
->orderBy('id')
->fetchAll();
return $templates;
}
/* 保存用户的BUG模板。*/
public function saveUserBugTemplate()
{
$template = fixer::input('post')
->specialChars('title')
->add('account', $this->app->user->account)
->add('type', 'bug')
->get();
$this->dao->insert(TABLE_USERTPL)->data($template)->autoCheck('title, content', 'notempty')->check('title', 'unique')->exec();
}
/* 给一个字段的列表,返回字段和相应语言解释的键值对。*/
public function getFieldPairs($fields)
{
$fields = explode(',', $fields);
foreach($fields as $key => $field)
{
$field = trim($field);
$fields[$field] = $this->lang->bug->$field;
unset($fields[$key]);
}
return $fields;
}
}
<?php
/**
* The model file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class bugModel extends model
{
/* 设置菜单。*/
public function setMenu($products, $productID)
{
$selectHtml = html::select('productID', $products, $productID, "onchange=\"switchProduct(this.value, 'bug', 'browse');\"");
foreach($this->lang->bug->menu as $key => $menu)
{
if($key == 'product')
{
common::setMenuVars($this->lang->bug->menu, 'product', $selectHtml . $this->lang->arrow);
}
else
{
common::setMenuVars($this->lang->bug->menu, $key, $productID);
}
}
}
/* 创建一个Bug。*/
public function create()
{
$now = helper::now();
$bug = fixer::input('post')
->add('openedBy', $this->app->user->account)
->add('openedDate', $now)
->setDefault('project,story,task', 0)
->setDefault('openedBuild', '')
->setIF($this->post->assignedTo != '', 'assignedDate', $now)
->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story))
->specialChars('title,keyword')
->cleanInt('product, module, severity')
->join('openedBuild', ',')
->remove('files, labels')
->get();
$this->dao->insert(TABLE_BUG)->data($bug)->autoCheck()->batchCheck($this->config->bug->create->requiredFields, 'notempty')->exec();
if(!dao::isError())
{
$bugID = $this->dao->lastInsertID();
$this->loadModel('file')->saveUpload('bug', $bugID);
return $bugID;
}
return false;
}
/* 获得某一个产品某一个模块下面的所有bug。*/
public function getModuleBugs($productID, $moduleIds = 0, $orderBy = 'id_desc', $pager = null)
{
return $this->dao->select('*')->from(TABLE_BUG)
->where('product')->eq((int)$productID)
->beginIF(!empty($moduleIds))->andWhere('module')->in($moduleIds)->fi()
->andWhere('deleted')->eq(0)
->orderBy($orderBy)->page($pager)->fetchAll();
}
/* 获取一个bug的详细信息。*/
public function getById($bugID)
{
$bug = $this->dao->select('t1.*, t2.name AS projectName, t3.title AS storyTitle, t3.status AS storyStatus, t3.version AS latestStoryVersion, t4.name AS taskName')
->from(TABLE_BUG)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->leftJoin(TABLE_STORY)->alias('t3')->on('t1.story = t3.id')
->leftJoin(TABLE_TASK)->alias('t4')->on('t1.task = t4.id')
->where('t1.id')->eq((int)$bugID)->fetch();
if(!$bug) return false;
foreach($bug as $key => $value) if(strpos($key, 'Date') !== false and !(int)substr($value, 0, 4)) $bug->$key = '';
if($bug->mailto)
{
$bug->mailto = ltrim(trim($bug->mailto), ','); // 去掉开始的,。
$bug->mailto = str_replace(' ', '', $bug->mailto);
$bug->mailto = rtrim($bug->mailto, ',') . ',';
$bug->mailto = str_replace(',', ', ', $bug->mailto);
}
if($bug->duplicateBug) $bug->duplicateBugTitle = $this->dao->findById($bug->duplicateBug)->from(TABLE_BUG)->fields('title')->fetch('title');
if($bug->case) $bug->caseTitle = $this->dao->findById($bug->case)->from(TABLE_CASE)->fields('title')->fetch('title');
if($bug->linkBug) $bug->linkBugTitles = $this->dao->select('id,title')->from(TABLE_BUG)->where('id')->in($bug->linkBug)->fetchPairs();
$bug->files = $this->loadModel('file')->getByObject('bug', $bugID);
return $bug;
}
/* 更新bug信息。*/
public function update($bugID)
{
$oldBug = $this->getById($bugID);
$now = helper::now();
$bug = fixer::input('post')
->cleanInt('product,module,severity,project,story,task')
->specialChars('title,keyword')
->remove('comment,files,labels')
->setDefault('project,module,project,story,task,duplicateBug', 0)
->setDefault('openedBuild', '')
->add('lastEditedBy', $this->app->user->account)
->add('lastEditedDate', $now)
->join('openedBuild', ',')
->setIF($this->post->assignedTo != $oldBug->assignedTo, 'assignedDate', $now)
->setIF($this->post->resolvedBy != '' and $this->post->resolvedDate == '', 'resolvedDate', $now)
->setIF($this->post->resolution != '' and $this->post->resolvedDate == '', 'resolvedDate', $now)
->setIF($this->post->resolution != '' and $this->post->resolvedBy == '', 'resolvedBy', $this->app->user->account)
->setIF($this->post->closedBy != '' and $this->post->closedDate == '', 'closedDate', $now)
->setIF($this->post->closedDate != '' and $this->post->closedBy == '', 'closedBy', $this->app->user->account)
->setIF($this->post->closedBy != '' or $this->post->closedDate != '', 'assignedTo', 'closed')
->setIF($this->post->closedBy != '' or $this->post->closedDate != '', 'assignedDate', $now)
->setIF($this->post->resolution != '' or $this->post->resolvedDate != '', 'status', 'resolved')
->setIF($this->post->closedBy != '' or $this->post->closedDate != '', 'status', 'closed')
->setIF(($this->post->resolution != '' or $this->post->resolvedDate != '') and $this->post->assignedTo == '', 'assignedTo', $oldBug->openedBy)
->setIF(($this->post->resolution != '' or $this->post->resolvedDate != '') and $this->post->assignedTo == '', 'assignedDate', $now)
->setIF($this->post->resolution == '' and $this->post->resolvedDate =='', 'status', 'active')
->setIF($this->post->story != false and $this->post->story != $oldBug->story, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story))
->get();
$this->dao->update(TABLE_BUG)->data($bug)
->autoCheck()
->batchCheck($this->config->bug->edit->requiredFields, 'notempty')
->checkIF($bug->resolvedBy, 'resolution', 'notempty')
->checkIF($bug->closedBy, 'resolution', 'notempty')
->checkIF($bug->resolution == 'duplicate', 'duplicateBug', 'notempty')
->where('id')->eq((int)$bugID)
->exec();
if(!dao::isError()) return common::createChanges($oldBug, $bug);
}
/* 解决Bug。*/
public function resolve($bugID)
{
$oldBug = $this->getById($bugID);
$now = helper::now();
$bug = fixer::input('post')
->add('resolvedBy', $this->app->user->account)
->add('resolvedDate', $now)
->add('status', 'resolved')
->add('assignedDate', $now)
->add('lastEditedBy', $this->app->user->account)
->add('lastEditedDate', $now)
->setDefault('duplicateBug', 0)
->setDefault('assignedTo', $oldBug->openedBy)
->remove('comment')
->get();
$this->dao->update(TABLE_BUG)->data($bug)
->autoCheck()
->batchCheck($this->config->bug->resolve->requiredFields, 'notempty')
->checkIF($bug->resolution == 'duplicate', 'duplicateBug', 'notempty')
->where('id')->eq((int)$bugID)
->exec();
}
/* 激活Bug。*/
public function activate($bugID)
{
$oldBug = $this->getById($bugID);
$now = helper::now();
$bug = fixer::input('post')
->setDefault('assignedTo', $oldBug->resolvedBy)
->add('assignedDate', $now)
->add('resolution', '')
->add('status', 'active')
->add('resolvedDate', '0000-00-00')
->add('resolvedBy', '')
->add('resolvedBuild', '')
->add('closedBy', '')
->add('closedDate', '0000-00-00')
->add('duplicateBug', 0)
->add('lastEditedBy', $this->app->user->account)
->add('lastEditedDate', $now)
->remove('comment,files,labels')
->get();
$this->dao->update(TABLE_BUG)->data($bug)->autoCheck()->where('id')->eq((int)$bugID)->exec();
}
/* 关闭Bug。*/
public function close($bugID)
{
$oldBug = $this->getById($bugID);
$now = helper::now();
$bug = fixer::input('post')
->add('assignedTo', 'closed')
->add('assignedDate', $now)
->add('status', 'closed')
->add('closedBy', $this->app->user->account)
->add('closedDate', $now)
->add('lastEditedBy', $this->app->user->account)
->add('lastEditedDate', $now)
->remove('comment')
->get();
$this->dao->update(TABLE_BUG)->data($bug)->autoCheck()->where('id')->eq((int)$bugID)->exec();
}
/* 从bug列表中提取所有出现过的账户。*/
public function extractAccountsFromList($bugs)
{
$accounts = array();
foreach($bugs as $bug)
{
if(!empty($bug->openedBy)) $accounts[] = $bug->openedBy;
if(!empty($bug->assignedTo)) $accounts[] = $bug->assignedTo;
if(!empty($bug->resolvedBy)) $accounts[] = $bug->resolvedBy;
if(!empty($bug->closedBy)) $accounts[] = $bug->closedBy;
if(!empty($bug->lastEditedBy)) $accounts[] = $bug->lastEditedBy;
}
return array_unique($accounts);
}
/* 从一条bug中提取所有出现过的账户。*/
public function extractAccountsFromSingle($bug)
{
$accounts = array();
if(!empty($bug->openedBy)) $accounts[] = $bug->openedBy;
if(!empty($bug->assignedTo)) $accounts[] = $bug->assignedTo;
if(!empty($bug->resolvedBy)) $accounts[] = $bug->resolvedBy;
if(!empty($bug->closedBy)) $accounts[] = $bug->closedBy;
if(!empty($bug->lastEditedBy)) $accounts[] = $bug->lastEditedBy;
return array_unique($accounts);
}
/* 获得用户的Bug id=>title列表。*/
public function getUserBugPairs($account)
{
$bugs = array();
$stmt = $this->dao->select('t1.id, t1.title, t2.name as product')
->from(TABLE_BUG)->alias('t1')
->leftJoin(TABLE_PRODUCT)->alias('t2')
->on('t1.product=t2.id')
->where('t1.assignedTo')->eq($account)
->andWhere('t1.deleted')->eq(0)
->query();
while($bug = $stmt->fetch())
{
$bug->title = $bug->product . ' / ' . $bug->title;
$bugs[$bug->id] = $bug->title;
}
return $bugs;
}
/* 获得某个项目的bug列表。*/
public function getProjectBugs($projectID, $orderBy = 'id_desc', $pager = null)
{
return $this->dao->select('*')->from(TABLE_BUG)
->where('project')->eq((int)$projectID)
->andWhere('deleted')->eq(0)
->orderBy($orderBy)->page($pager)->fetchAll();
}
/* 通过某一次测试结果获得bug的标题和步骤。*/
public function getBugInfoFromResult($resultID)
{
$title = '';
$bugSteps = '';
$result = $this->dao->findById($resultID)->from(TABLE_TESTRESULT)->fetch();
$run = $this->loadModel('testtask')->getRunById($result->run);
if($result and $result->caseResult == 'fail')
{
$title = $run->case->title;
$caseSteps = $run->case->steps;
$stepResults = unserialize($result->stepResults);
$bugSteps = $this->lang->bug->tplStep;
foreach($caseSteps as $key => $step)
{
$bugSteps .= ($key + 1) . '. ' .$step->desc . "\n";
if($stepResults[$step->id]['result'] == 'fail')
{
$bugSteps .= $this->lang->bug->tplResult;
$bugSteps .= $stepResults[$step->id]['real'] . "\n";
$bugSteps .= $this->lang->bug->tplExpect;
$bugSteps .= $step->expect;
break;
}
}
}
return array('title' => $title, 'steps' => $bugSteps, 'storyID' => $run->case->story);
}
/* 按项目统计bug数。*/
public function getDataOfBugsPerProject()
{
$datas = $this->dao->select('project as name, count(project) as value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('project')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
$projects = $this->loadModel('project')->getPairs();
foreach($datas as $projectID => $data) $data->name = isset($projects[$projectID]) ? $projects[$projectID] : $this->lang->report->undefined;
return $datas;
}
/* 按产品模块统计bug数。*/
public function getDataOfBugsPerModule()
{
$datas = $this->dao->select('module as name, count(module) as value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('module')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
$modules = $this->dao->select('id, name')->from(TABLE_MODULE)->where('id')->in(array_keys($datas))->fetchPairs();
foreach($datas as $moduleID => $data) $data->name = isset($modules[$moduleID]) ? $modules[$moduleID] : '/';
return $datas;
}
/* 按bug创建日期统计。*/
public function getDataOfOpenedBugsPerDay()
{
return $this->dao->select('DATE_FORMAT(openedDate, "%Y-%m-%d") AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('openedDate')->fetchAll();
}
/* 按bug解决日期统计。*/
public function getDataOfResolvedBugsPerDay()
{
return $this->dao->select('DATE_FORMAT(resolvedDate, "%Y-%m-%d") AS name, COUNT(*) AS value')->from(TABLE_BUG)
->where($this->session->bugReportCondition)->groupBy('name')
->having('name != 0000-00-00')
->orderBy('resolvedDate')
->fetchAll();
}
/* 按bug关闭日期统计。*/
public function getDataOfClosedBugsPerDay()
{
return $this->dao->select('DATE_FORMAT(closedDate, "%Y-%m-%d") AS name, COUNT(*) AS value')->from(TABLE_BUG)
->where($this->session->bugReportCondition)->groupBy('name')
->having('name != 0000-00-00')
->orderBy('closedDate')->fetchAll();
}
/* 按bug创建者统计。*/
public function getDataOfOpenedBugsPerUser()
{
$datas = $this->dao->select('openedBy AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
if(!isset($this->users)) $this->users = $this->loadModel('user')->getPairs('noletter');
foreach($datas as $account => $data) if(isset($this->users[$account])) $data->name = $this->users[$account];
return $datas;
}
/* 按bug解决者统计。*/
public function getDataOfResolvedBugsPerUser()
{
$datas = $this->dao->select('resolvedBy AS name, COUNT(*) AS value')
->from(TABLE_BUG)->where($this->session->bugReportCondition)
->andWhere('resolvedBy')->ne('')
->groupBy('name')
->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
if(!isset($this->users)) $this->users = $this->loadModel('user')->getPairs('noletter');
foreach($datas as $account => $data) if(isset($this->users[$account])) $data->name = $this->users[$account];
return $datas;
}
/* 按bug关闭者统计。*/
public function getDataOfClosedBugsPerUser()
{
$datas = $this->dao->select('closedBy AS name, COUNT(*) AS value')
->from(TABLE_BUG)
->where($this->session->bugReportCondition)
->andWhere('closedBy')->ne('')
->groupBy('name')
->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
if(!isset($this->users)) $this->users = $this->loadModel('user')->getPairs('noletter');
foreach($datas as $account => $data) if(isset($this->users[$account])) $data->name = $this->users[$account];
return $datas;
}
/* 按bug严重程度统计。*/
public function getDataOfBugsPerSeverity()
{
$datas = $this->dao->select('severity AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
foreach($datas as $severity => $data) if(isset($this->lang->bug->severityList[$severity])) $data->name = $this->lang->bug->severityList[$severity];
return $datas;
}
/* 按bug解决方案统计。*/
public function getDataOfBugsPerResolution()
{
$datas = $this->dao->select('resolution AS name, COUNT(*) AS value')
->from(TABLE_BUG)
->where($this->session->bugReportCondition)
->andWhere('resolution')->ne('')
->groupBy('name')->orderBy('value DESC')
->fetchAll('name');
if(!$datas) return array();
foreach($datas as $resolution => $data) if(isset($this->lang->bug->resolutionList[$resolution])) $data->name = $this->lang->bug->resolutionList[$resolution];
return $datas;
}
/* 按bug状态统计。*/
public function getDataOfBugsPerStatus()
{
$datas = $this->dao->select('status AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
foreach($datas as $status => $data) if(isset($this->lang->bug->statusList[$status])) $data->name = $this->lang->bug->statusList[$status];
return $datas;
}
/* 按bug类型统计。*/
public function getDataOfBugsPerType()
{
$datas = $this->dao->select('type AS name, COUNT(*) AS value')->from(TABLE_BUG)->where($this->session->bugReportCondition)->groupBy('name')->orderBy('value DESC')->fetchAll('name');
if(!$datas) return array();
foreach($datas as $type => $data) if(isset($this->lang->bug->typeList[$type])) $data->name = $this->lang->bug->typeList[$type];
return $datas;
}
/* 合并公共的chart设置和当前chart的设置。*/
public function mergeChartOption($chartType)
{
$chartOption = $this->lang->bug->report->$chartType;
$commonOption = $this->lang->bug->report->options;
/* 设置图表的标题和展示方式。*/
$chartOption->graph->caption = $this->lang->bug->report->charts[$chartType];
if(!isset($chartOption->swf)) $chartOption->swf = $commonOption->swf;
if(!isset($chartOption->width)) $chartOption->width = $commonOption->width;
if(!isset($chartOption->height)) $chartOption->height = $commonOption->height;
/* 合并配置。*/
foreach($commonOption->graph as $key => $value) if(!isset($chartOption->graph->$key)) $chartOption->graph->$key = $value;
}
/* 获得用户的Bug模板列表。*/
public function getUserBugTemplates($account)
{
$templates = $this->dao->select('id, title, content')
->from(TABLE_USERTPL)
->where('account')->eq($account)
->orderBy('id')
->fetchAll();
return $templates;
}
/* 保存用户的BUG模板。*/
public function saveUserBugTemplate()
{
$template = fixer::input('post')
->specialChars('title')
->add('account', $this->app->user->account)
->add('type', 'bug')
->get();
$this->dao->insert(TABLE_USERTPL)->data($template)->autoCheck('title, content', 'notempty')->check('title', 'unique')->exec();
}
/* 给一个字段的列表,返回字段和相应语言解释的键值对。*/
public function getFieldPairs($fields)
{
$fields = explode(',', $fields);
foreach($fields as $key => $field)
{
$field = trim($field);
$fields[$field] = $this->lang->bug->$field;
unset($fields[$key]);
}
return $fields;
}
}

View File

@@ -1,56 +1,43 @@
<?php
/**
* The activate file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<div class='yui-d0'>
<table class='table-1'>
<caption><?php echo $bug->title;?></caption>
<tr>
<td class='rowhead'><?php echo $lang->bug->assignedTo;?></td>
<td><?php echo html::select('assignedTo', $users, $bug->resolvedBy, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->openedBuild;?></td>
<td><?php echo html::select('openedBuild', $builds, $bug->resolvedBuild, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->comment;?></td>
<td><?php echo html::textarea('comment', '', "rows='6' class='area-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->files;?></th>
<td class='a-left'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton();?>
<input type='button' value='<?php echo $lang->bug->buttonToList;?>' class='button-s'
onclick='location.href="<?php echo $this->session->bugList;?>"' />
</td>
</tr>
</table>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The activate file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<div class='yui-d0'>
<table class='table-1'>
<caption><?php echo $bug->title;?></caption>
<tr>
<td class='rowhead'><?php echo $lang->bug->assignedTo;?></td>
<td><?php echo html::select('assignedTo', $users, $bug->resolvedBy, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->openedBuild;?></td>
<td><?php echo html::select('openedBuild', $builds, $bug->resolvedBuild, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->comment;?></td>
<td><?php echo html::textarea('comment', '', "rows='6' class='area-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->files;?></th>
<td class='a-left'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton();?>
<input type='button' value='<?php echo $lang->bug->buttonToList;?>' class='button-s'
onclick='location.href="<?php echo $this->session->bugList;?>"' />
</td>
</tr>
</table>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,155 +1,142 @@
<?php
/**
* The browse view file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/treeview.html.php';?>
<?php include '../../common/view/colorize.html.php';?>
<?php include '../../common/view/table2csv.html.php';?>
<script language='Javascript'>
/* 通过模块浏览。*/
function browseByModule(active)
{
$('#mainbox').addClass('yui-t1');
$('#treebox').removeClass('hidden');
$('#bymoduleTab').addClass('active');
$('#querybox').addClass('hidden');
$('#' + active + 'Tab').removeClass('active');
}
/* 搜索。*/
function browseBySearch(active)
{
$('#mainbox').removeClass('yui-t1');
$('#treebox').addClass('hidden');
$('#querybox').removeClass('hidden');
$('#bymoduleTab').removeClass('active');
$('#' + active + 'Tab').removeClass('active');
$('#bysearchTab').addClass('active');
}
$(document).ready(function()
{
$("a.iframe").colorbox({width:640, height:420, iframe:true, transition:'none'});
});
</script>
<div class='yui-d0'>
<div id='featurebar'>
<div class='f-left'>
<?php
echo "<span id='bymoduleTab' onclick=\"browseByModule('$browseType')\"><a href='#'>" . $lang->bug->moduleBugs . "</a></span> ";
echo "<span id='assigntomeTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=assignToMe&param=0"), $lang->bug->assignToMe) . "</span>";
echo "<span id='openedbymeTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=openedByMe&param=0"), $lang->bug->openedByMe) . "</span>";
echo "<span id='resolvedbymeTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=resolvedByMe&param=0"), $lang->bug->resolvedByMe) . "</span>";
echo "<span id='assigntonullTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=assignToNull&param=0"), $lang->bug->assignToNull) . "</span>";
echo "<span id='longlifebugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=longLifeBugs&param=0"), $lang->bug->longLifeBugs) . "</span>";
echo "<span id='postponedbugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=postponedBugs&param=0"), $lang->bug->postponedBugs) . "</span>";
echo "<span id='bysearchTab' onclick=\"browseBySearch('$browseType')\"><a href='#'>{$lang->bug->byQuery}</a></span> ";
echo "<span id='allTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=all&param=0&orderBy=$orderBy&recTotal=0&recPerPage=200"), $lang->bug->allBugs) . "</span>";
echo "<span id='needconfirmTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=needconfirm&param=0"), $lang->bug->needConfirm) . "</span>";
?>
</div>
<div class='f-right'>
<?php common::printLink('bug', 'customFields', '', $lang->bug->customFields, '', "class='iframe'"); ?>
<?php echo html::export2csv($lang->exportCSV, $lang->setFileName);?>
<?php common::printLink('bug', 'report', "productID=$productID&browseType=$browseType&moduleID=$moduleID", $lang->bug->report->common); ?>
<?php common::printLink('bug', 'create', "productID=$productID&extra=moduleID=$moduleID", $lang->bug->create); ?>
</div>
</div>
<div id='querybox' class='<?php if($browseType !='bysearch') echo 'hidden';?>'><?php echo $searchForm;?></div>
</div>
<?php if($customed){include 'browse.custom.html.php'; exit;}?>
<div class='yui-d0 <?php if($browseType == 'bymodule') echo 'yui-t1';?>' id='mainbox'>
<div class="yui-main">
<div class="yui-b">
<?php $vars = "productID=$productID&browseType=$browseType&param=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
<table class='table-1 fixed colored tablesorter datatable'>
<thead>
<tr class='colhead'>
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th class='w-severity'><?php common::printOrderLink('severity', $orderBy, $vars, $lang->bug->severityAB);?></th>
<th class='w-pri'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
<th><?php common::printOrderLink('title', $orderBy, $vars, $lang->bug->title);?></th>
<?php if($browseType == 'needconfirm'):?>
<th class='w-p40'><?php common::printOrderLink('story', $orderBy, $vars, $lang->bug->story);?></th>
<th class='w-50px'><?php echo $lang->actions;?></th>
<?php else:?>
<th class='w-user'><?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
<th class='w-user'><?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->assignedToAB);?></th>
<th class='w-user'><?php common::printOrderLink('resolvedBy', $orderBy, $vars, $lang->bug->resolvedByAB);?></th>
<th class='w-resolution'><?php common::printOrderLink('resolution', $orderBy, $vars, $lang->bug->resolutionAB);?></th>
<th class='w-120px {sorter:false}'><?php echo $lang->actions;?></th>
<?php endif;?>
</tr>
</thead>
<tbody>
<?php foreach($bugs as $bug):?>
<?php $bugLink = inlink('view', "bugID=$bug->id");?>
<tr class='a-center'>
<td class='linkbox'><?php echo html::a($bugLink, sprintf('%03d', $bug->id));?></td>
<td><?php echo $lang->bug->severityList[$bug->severity]?></td>
<td><?php echo $lang->bug->priList[$bug->pri]?></td>
<td class='a-left nobr'><?php echo html::a($bugLink, $bug->title);?></td>
<?php if($browseType == 'needconfirm'):?>
<td class='a-left nobr'><?php echo html::a($this->createLink('story', 'view', "stoyID=$bug->story"), $bug->storyTitle, '_blank');?></td>
<td><?php echo html::a(inlink('confirmStoryChange', "bugID=$bug->id"), $lang->confirm, 'hiddenwin')?></td>
<?php else:?>
<td><?php echo $users[$bug->openedBy];?></td>
<td <?php if($bug->assignedTo == $this->app->user->account) echo 'class="red"';?>><?php echo $users[$bug->assignedTo];?></td>
<td><?php echo $users[$bug->resolvedBy];?></td>
<td><?php echo $lang->bug->resolutionList[$bug->resolution];?></td>
<td>
<?php
$params = "bugID=$bug->id";
if(!($bug->status == 'active' and common::printLink('bug', 'resolve', $params, $lang->bug->buttonResolve))) echo $lang->bug->buttonResolve . ' ';
if(!($bug->status == 'resolved' and common::printLink('bug', 'close', $params, $lang->bug->buttonClose))) echo $lang->bug->buttonClose . ' ';
common::printLink('bug', 'edit', $params, $lang->bug->buttonEdit);
?>
</td>
<?php endif;?>
</tr>
<?php endforeach;?>
</tbody>
</table>
<?php $pager->show();?>
</div>
</div>
<div class='yui-b <?php if($browseType != 'bymodule') echo 'hidden';?>' id='treebox'>
<div class='box-title'><?php echo $productName;?></div>
<div class='box-content'>
<?php echo $moduleTree;?>
<div class='a-right'>
<?php if(common::hasPriv('tree', 'browse')) echo html::a($this->createLink('tree', 'browse', "productID=$productID&view=bug"), $lang->tree->manage);?>
</div>
</div>
</div>
</div>
<script language='javascript'>
$("#<?php echo $browseType;?>Tab").addClass('active');
$("#module<?php echo $moduleID;?>").addClass('active');
</script>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The browse view file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/treeview.html.php';?>
<?php include '../../common/view/colorize.html.php';?>
<?php include '../../common/view/table2csv.html.php';?>
<script language='Javascript'>
/* 通过模块浏览。*/
function browseByModule(active)
{
$('#mainbox').addClass('yui-t1');
$('#treebox').removeClass('hidden');
$('#bymoduleTab').addClass('active');
$('#querybox').addClass('hidden');
$('#' + active + 'Tab').removeClass('active');
}
/* 搜索。*/
function browseBySearch(active)
{
$('#mainbox').removeClass('yui-t1');
$('#treebox').addClass('hidden');
$('#querybox').removeClass('hidden');
$('#bymoduleTab').removeClass('active');
$('#' + active + 'Tab').removeClass('active');
$('#bysearchTab').addClass('active');
}
$(document).ready(function()
{
$("a.iframe").colorbox({width:640, height:420, iframe:true, transition:'none'});
});
</script>
<div class='yui-d0'>
<div id='featurebar'>
<div class='f-left'>
<?php
echo "<span id='bymoduleTab' onclick=\"browseByModule('$browseType')\"><a href='#'>" . $lang->bug->moduleBugs . "</a></span> ";
echo "<span id='assigntomeTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=assignToMe&param=0"), $lang->bug->assignToMe) . "</span>";
echo "<span id='openedbymeTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=openedByMe&param=0"), $lang->bug->openedByMe) . "</span>";
echo "<span id='resolvedbymeTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=resolvedByMe&param=0"), $lang->bug->resolvedByMe) . "</span>";
echo "<span id='assigntonullTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=assignToNull&param=0"), $lang->bug->assignToNull) . "</span>";
echo "<span id='longlifebugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=longLifeBugs&param=0"), $lang->bug->longLifeBugs) . "</span>";
echo "<span id='postponedbugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=postponedBugs&param=0"), $lang->bug->postponedBugs) . "</span>";
echo "<span id='bysearchTab' onclick=\"browseBySearch('$browseType')\"><a href='#'>{$lang->bug->byQuery}</a></span> ";
echo "<span id='allTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=all&param=0&orderBy=$orderBy&recTotal=0&recPerPage=200"), $lang->bug->allBugs) . "</span>";
echo "<span id='needconfirmTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=needconfirm&param=0"), $lang->bug->needConfirm) . "</span>";
?>
</div>
<div class='f-right'>
<?php common::printLink('bug', 'customFields', '', $lang->bug->customFields, '', "class='iframe'"); ?>
<?php echo html::export2csv($lang->exportCSV, $lang->setFileName);?>
<?php common::printLink('bug', 'report', "productID=$productID&browseType=$browseType&moduleID=$moduleID", $lang->bug->report->common); ?>
<?php common::printLink('bug', 'create', "productID=$productID&extra=moduleID=$moduleID", $lang->bug->create); ?>
</div>
</div>
<div id='querybox' class='<?php if($browseType !='bysearch') echo 'hidden';?>'><?php echo $searchForm;?></div>
</div>
<?php if($customed){include 'browse.custom.html.php'; exit;}?>
<div class='yui-d0 <?php if($browseType == 'bymodule') echo 'yui-t1';?>' id='mainbox'>
<div class="yui-main">
<div class="yui-b">
<?php $vars = "productID=$productID&browseType=$browseType&param=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
<table class='table-1 fixed colored tablesorter datatable'>
<thead>
<tr class='colhead'>
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th class='w-severity'><?php common::printOrderLink('severity', $orderBy, $vars, $lang->bug->severityAB);?></th>
<th class='w-pri'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
<th><?php common::printOrderLink('title', $orderBy, $vars, $lang->bug->title);?></th>
<?php if($browseType == 'needconfirm'):?>
<th class='w-p40'><?php common::printOrderLink('story', $orderBy, $vars, $lang->bug->story);?></th>
<th class='w-50px'><?php echo $lang->actions;?></th>
<?php else:?>
<th class='w-user'><?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
<th class='w-user'><?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->assignedToAB);?></th>
<th class='w-user'><?php common::printOrderLink('resolvedBy', $orderBy, $vars, $lang->bug->resolvedByAB);?></th>
<th class='w-resolution'><?php common::printOrderLink('resolution', $orderBy, $vars, $lang->bug->resolutionAB);?></th>
<th class='w-120px {sorter:false}'><?php echo $lang->actions;?></th>
<?php endif;?>
</tr>
</thead>
<tbody>
<?php foreach($bugs as $bug):?>
<?php $bugLink = inlink('view', "bugID=$bug->id");?>
<tr class='a-center'>
<td class='linkbox'><?php echo html::a($bugLink, sprintf('%03d', $bug->id));?></td>
<td><?php echo $lang->bug->severityList[$bug->severity]?></td>
<td><?php echo $lang->bug->priList[$bug->pri]?></td>
<td class='a-left nobr'><?php echo html::a($bugLink, $bug->title);?></td>
<?php if($browseType == 'needconfirm'):?>
<td class='a-left nobr'><?php echo html::a($this->createLink('story', 'view', "stoyID=$bug->story"), $bug->storyTitle, '_blank');?></td>
<td><?php echo html::a(inlink('confirmStoryChange', "bugID=$bug->id"), $lang->confirm, 'hiddenwin')?></td>
<?php else:?>
<td><?php echo $users[$bug->openedBy];?></td>
<td <?php if($bug->assignedTo == $this->app->user->account) echo 'class="red"';?>><?php echo $users[$bug->assignedTo];?></td>
<td><?php echo $users[$bug->resolvedBy];?></td>
<td><?php echo $lang->bug->resolutionList[$bug->resolution];?></td>
<td>
<?php
$params = "bugID=$bug->id";
if(!($bug->status == 'active' and common::printLink('bug', 'resolve', $params, $lang->bug->buttonResolve))) echo $lang->bug->buttonResolve . ' ';
if(!($bug->status == 'resolved' and common::printLink('bug', 'close', $params, $lang->bug->buttonClose))) echo $lang->bug->buttonClose . ' ';
common::printLink('bug', 'edit', $params, $lang->bug->buttonEdit);
?>
</td>
<?php endif;?>
</tr>
<?php endforeach;?>
</tbody>
</table>
<?php $pager->show();?>
</div>
</div>
<div class='yui-b <?php if($browseType != 'bymodule') echo 'hidden';?>' id='treebox'>
<div class='box-title'><?php echo $productName;?></div>
<div class='box-content'>
<?php echo $moduleTree;?>
<div class='a-right'>
<?php if(common::hasPriv('tree', 'browse')) echo html::a($this->createLink('tree', 'browse', "productID=$productID&view=bug"), $lang->tree->manage);?>
</div>
</div>
</div>
</div>
<script language='javascript'>
$("#<?php echo $browseType;?>Tab").addClass('active');
$("#module<?php echo $moduleID;?>").addClass('active');
</script>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,44 +1,31 @@
<?php
/**
* The close file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<form method='post' target='hiddenwin'>
<div class='yui-d0'>
<table class='table-1'>
<caption><?php echo $bug->title;?></caption>
<tr>
<td class='rowhead'><?php echo $lang->comment;?></td>
<td><?php echo html::textarea('comment', '', "rows='6' class='area-1'");?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton();?>
<input type='button' value='<?php echo $lang->bug->buttonToList;?>' class='button-s'
onclick='location.href="<?php echo $this->session->bugList;?>"' />
</td>
</tr>
</table>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The close file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<form method='post' target='hiddenwin'>
<div class='yui-d0'>
<table class='table-1'>
<caption><?php echo $bug->title;?></caption>
<tr>
<td class='rowhead'><?php echo $lang->comment;?></td>
<td><?php echo html::textarea('comment', '', "rows='6' class='area-1'");?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton();?>
<input type='button' value='<?php echo $lang->bug->buttonToList;?>' class='button-s'
onclick='location.href="<?php echo $this->session->bugList;?>"' />
</td>
</tr>
</table>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,218 +1,205 @@
<?php
/**
* The create view of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/autocomplete.html.php';?>
<?php include '../../common/view/alert.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<style>
#project, #product {width:200px}
#module, #task {width:400px}
#severity, #browser {width:113px}
#story{width:605px}
#steps{width:100%}
.text-1 {width: 85%}
</style>
<script language='Javascript'>
/* 当选择产品时,触发这个方法。*/
function loadAll(productID)
{
$('#taskIdBox').get(0).innerHTML = '<select id="task"></select>'; // 将taskID内容复位。
loadModuleMenu(productID); // 加载产品的模块列表。
loadProductStories(productID); // 加载产品的需求列表。
loadProductProjects(productID); // 加载项目列表。
loadProductBuilds(productID); // 加载build列表。
setAssignedTo(); // 设置默认指派人。
}
/* 加载模块列表。*/
function loadModuleMenu(productID)
{
link = createLink('tree', 'ajaxGetOptionMenu', 'productID=' + productID + '&viewtype=bug');
$('#moduleIdBox').load(link);
}
/* 加载产品的需求列表。*/
function loadProductStories(productID)
{
link = createLink('story', 'ajaxGetProductStories', 'productID=' + productID);
$('#storyIdBox').load(link);
}
/* 加载项目列表。*/
function loadProductProjects(productID)
{
link = createLink('product', 'ajaxGetProjects', 'productID=' + productID);
$('#projectIdBox').load(link);
}
/* 加载产品build列表。*/
function loadProductBuilds(productID)
{
link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=openedBuild');
$('#buildBox').load(link);
}
/* 加载项目的任务列表和需求列表。*/
function loadProjectRelated(projectID)
{
if(projectID)
{
loadProjectTasks(projectID);
loadProjectStories(projectID);
loadProjectBuilds(projectID);
}
else
{
$('#taskIdBox').get(0).innerHTML = '';
loadProductStories($('#product').get(0).value);
loadProductBuilds($('#product').get(0).value);
}
}
/* 加载项目的任务列表。*/
function loadProjectTasks(projectID)
{
link = createLink('task', 'ajaxGetProjectTasks', 'projectID=' + projectID);
$('#taskIdBox').load(link);
}
/* 加载项目的需求列表。*/
function loadProjectStories(projectID)
{
productID = $('#product').get(0).value;
link = createLink('story', 'ajaxGetProjectStories', 'projectID=' + projectID + '&productID=' + productID);
$('#storyIdBox').load(link);
}
/* 设置默认指派者。*/
function setAssignedTo()
{
link = createLink('bug', 'ajaxGetModuleOwner', 'moduleID=' + $('#module').val() + '&productID=' + $('#product').val());
$.get(link, function(owner)
{
$('#assignedTo').val(owner);
});
}
/* 加载项目的build列表。*/
function loadProjectBuilds(projectID)
{
link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + $('#product').val() + '&varName=openedBuild');
$('#buildBox').load(link);
}
var userList = "<?php echo join(',', array_keys($users));?>".split(',');
$(function() {
$("#mailto").autocomplete(userList, { multiple: true, mustMatch: true});
setAssignedTo();
KE.show({id:'steps',items:bugTools, filterMode:true, imageUploadJson: createLink('file', 'ajaxUpload')});
})
</script>
<div class='yui-d0'>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->bug->create;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblProductAndModule;?></th>
<td>
<?php echo html::select('product', $products, $productID, "onchange='loadAll(this.value)' class='select-2'");?>
<span id='moduleIdBox'><?php echo html::select('module', $moduleOptionMenu, $moduleID, "onchange='setAssignedTo()' class='select-3'");?></span>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblProjectAndTask;?></th>
<td>
<span id='projectIdBox'><?php echo html::select('project', $projects, $projectID, 'onchange=loadProjectRelated(this.value)');?></span>
<span id='taskIdBox'><?php echo html::select('task', $tasks, $taskID);?></span>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblStory;?></th>
<td>
<span id='storyIdBox'><?php echo html::select('story', $stories, $storyID);?></span>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->openedBuild;?></th>
<td>
<span id='buildBox'><?php echo html::select('openedBuild[]', $builds, $buildID, 'size=3 multiple=multiple class=select-3');?></span>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblTypeAndSeverity;?></th>
<td>
<?php echo html::select('type', $lang->bug->typeList, 'codeerror', 'class=select-2');?>
<?php echo html::select('severity', $lang->bug->severityList, '', 'class=select-2');?>
</td>
</tr>
<tr>
<th class='rowhead'><nobr><?php echo $lang->bug->lblSystemBrowserAndHardware;?></nobr></th>
<td>
<?php echo html::select('os', $lang->bug->osList, $os, 'class=select-2');?>
<?php echo html::select('browser', $lang->bug->browserList, $browser, 'class=select-2');?>
</td>
</tr>
<tr>
<th class='rowhead'><nobr><?php echo $lang->bug->lblAssignedTo;?></nobr></th>
<td> <?php echo html::select('assignedTo', $users, $assignedTo, 'class=select-3');?></td>
</tr>
<tr>
<th class='rowhead'><nobr><?php echo $lang->bug->lblMailto;?></nobr></th>
<td> <?php echo html::input('mailto', $mailto, 'class=text-1');?> </td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->title;?></th>
<td><?php echo html::input('title', $title, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->steps;?></th>
<td>
<table class='w-p100 bd-none'>
<tr class='bd-none' valign='top'>
<td class='w-p85 bd-none padding-zero'><?php echo html::textarea('steps', $steps, "rows='10'");?></td>
<td class='bd-none pl-10px' id='tplBox'><?php echo $this->fetch('bug', 'buildTemplates');?></td>
</tr>
</table>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->keywords;?></th>
<td><?php echo html::input('keywords', $keywords, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->files;?></th>
<td><?php echo $this->fetch('file', 'buildform', 'fileCount=2&percent=0.85');?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton() . html::resetButton() . html::hidden('case', $caseID);?>
</td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The create view of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/autocomplete.html.php';?>
<?php include '../../common/view/alert.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<style>
#project, #product {width:200px}
#module, #task {width:400px}
#severity, #browser {width:113px}
#story{width:605px}
#steps{width:100%}
.text-1 {width: 85%}
</style>
<script language='Javascript'>
/* 当选择产品时,触发这个方法。*/
function loadAll(productID)
{
$('#taskIdBox').get(0).innerHTML = '<select id="task"></select>'; // 将taskID内容复位。
loadModuleMenu(productID); // 加载产品的模块列表。
loadProductStories(productID); // 加载产品的需求列表。
loadProductProjects(productID); // 加载项目列表。
loadProductBuilds(productID); // 加载build列表。
setAssignedTo(); // 设置默认指派人。
}
/* 加载模块列表。*/
function loadModuleMenu(productID)
{
link = createLink('tree', 'ajaxGetOptionMenu', 'productID=' + productID + '&viewtype=bug');
$('#moduleIdBox').load(link);
}
/* 加载产品的需求列表。*/
function loadProductStories(productID)
{
link = createLink('story', 'ajaxGetProductStories', 'productID=' + productID);
$('#storyIdBox').load(link);
}
/* 加载项目列表。*/
function loadProductProjects(productID)
{
link = createLink('product', 'ajaxGetProjects', 'productID=' + productID);
$('#projectIdBox').load(link);
}
/* 加载产品build列表。*/
function loadProductBuilds(productID)
{
link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=openedBuild');
$('#buildBox').load(link);
}
/* 加载项目的任务列表和需求列表。*/
function loadProjectRelated(projectID)
{
if(projectID)
{
loadProjectTasks(projectID);
loadProjectStories(projectID);
loadProjectBuilds(projectID);
}
else
{
$('#taskIdBox').get(0).innerHTML = '';
loadProductStories($('#product').get(0).value);
loadProductBuilds($('#product').get(0).value);
}
}
/* 加载项目的任务列表。*/
function loadProjectTasks(projectID)
{
link = createLink('task', 'ajaxGetProjectTasks', 'projectID=' + projectID);
$('#taskIdBox').load(link);
}
/* 加载项目的需求列表。*/
function loadProjectStories(projectID)
{
productID = $('#product').get(0).value;
link = createLink('story', 'ajaxGetProjectStories', 'projectID=' + projectID + '&productID=' + productID);
$('#storyIdBox').load(link);
}
/* 设置默认指派者。*/
function setAssignedTo()
{
link = createLink('bug', 'ajaxGetModuleOwner', 'moduleID=' + $('#module').val() + '&productID=' + $('#product').val());
$.get(link, function(owner)
{
$('#assignedTo').val(owner);
});
}
/* 加载项目的build列表。*/
function loadProjectBuilds(projectID)
{
link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + $('#product').val() + '&varName=openedBuild');
$('#buildBox').load(link);
}
var userList = "<?php echo join(',', array_keys($users));?>".split(',');
$(function() {
$("#mailto").autocomplete(userList, { multiple: true, mustMatch: true});
setAssignedTo();
KE.show({id:'steps',items:bugTools, filterMode:true, imageUploadJson: createLink('file', 'ajaxUpload')});
})
</script>
<div class='yui-d0'>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->bug->create;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblProductAndModule;?></th>
<td>
<?php echo html::select('product', $products, $productID, "onchange='loadAll(this.value)' class='select-2'");?>
<span id='moduleIdBox'><?php echo html::select('module', $moduleOptionMenu, $moduleID, "onchange='setAssignedTo()' class='select-3'");?></span>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblProjectAndTask;?></th>
<td>
<span id='projectIdBox'><?php echo html::select('project', $projects, $projectID, 'onchange=loadProjectRelated(this.value)');?></span>
<span id='taskIdBox'><?php echo html::select('task', $tasks, $taskID);?></span>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblStory;?></th>
<td>
<span id='storyIdBox'><?php echo html::select('story', $stories, $storyID);?></span>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->openedBuild;?></th>
<td>
<span id='buildBox'><?php echo html::select('openedBuild[]', $builds, $buildID, 'size=3 multiple=multiple class=select-3');?></span>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblTypeAndSeverity;?></th>
<td>
<?php echo html::select('type', $lang->bug->typeList, 'codeerror', 'class=select-2');?>
<?php echo html::select('severity', $lang->bug->severityList, '', 'class=select-2');?>
</td>
</tr>
<tr>
<th class='rowhead'><nobr><?php echo $lang->bug->lblSystemBrowserAndHardware;?></nobr></th>
<td>
<?php echo html::select('os', $lang->bug->osList, $os, 'class=select-2');?>
<?php echo html::select('browser', $lang->bug->browserList, $browser, 'class=select-2');?>
</td>
</tr>
<tr>
<th class='rowhead'><nobr><?php echo $lang->bug->lblAssignedTo;?></nobr></th>
<td> <?php echo html::select('assignedTo', $users, $assignedTo, 'class=select-3');?></td>
</tr>
<tr>
<th class='rowhead'><nobr><?php echo $lang->bug->lblMailto;?></nobr></th>
<td> <?php echo html::input('mailto', $mailto, 'class=text-1');?> </td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->title;?></th>
<td><?php echo html::input('title', $title, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->steps;?></th>
<td>
<table class='w-p100 bd-none'>
<tr class='bd-none' valign='top'>
<td class='w-p85 bd-none padding-zero'><?php echo html::textarea('steps', $steps, "rows='10'");?></td>
<td class='bd-none pl-10px' id='tplBox'><?php echo $this->fetch('bug', 'buildTemplates');?></td>
</tr>
</table>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->keywords;?></th>
<td><?php echo html::input('keywords', $keywords, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->files;?></th>
<td><?php echo $this->fetch('file', 'buildform', 'fileCount=2&percent=0.85');?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton() . html::resetButton() . html::hidden('case', $caseID);?>
</td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,72 +1,59 @@
<?php
/**
* The custom seting fields view of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.lite.html.php';?>
<style>
body{background:white}
.button-c {width:60px}
</style>
<script language='Javascript'>
function restoreDefault()
{
$('#customFields option').remove();
$('#defaultFields option').clone().appendTo('#customFields');
}
</script>
<div id='yui-d0' style='margin-top:20px'>
<form method='post'>
<table class='table-1'>
<caption class='caption-tl'><?php echo $lang->bug->customFields;?></caption>
<tr class='colhead'>
<th><?php echo $lang->bug->lblAllFields;?></th>
<th></th>
<th><?php echo $lang->bug->lblCustomFields;?></th>
<th></th>
</tr>
<tr>
<td>
<?php
echo html::select('allFields[]', $allFields, '', 'class=select-2 size=10 multiple');
echo html::select('defaultFields[]', $defaultFields, '', 'class=hidden');
?>
</td>
<td>
<?php
echo html::commonButton('>', "onclick=\"addItem('allFields', 'customFields')\"") . '<br />';
echo html::commonButton('<', "onclick=delItem('customFields')") . '<br />';
?>
</td>
<td><?php echo html::select('customFields[]', $customFields, '', 'class=select-2 size=10 multiple');?></td>
<td>
<?php
echo html::commonButton('+', "onclick=upItem('customFields')") . '<br />';
echo html::commonButton('-', "onclick=downItem('customFields')") . '<br />';
echo html::commonButton($lang->bug->restoreDefault, "onclick=restoreDefault()") . '<br />';
?>
</td>
</tr>
<tr><td colspan='4' class='a-center'><?php echo html::submitButton('', 'onclick=selectItem("customFields")');?></td></tr>
</table>
</form>
</div>
<?php
/**
* The custom seting fields view of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.lite.html.php';?>
<style>
body{background:white}
.button-c {width:60px}
</style>
<script language='Javascript'>
function restoreDefault()
{
$('#customFields option').remove();
$('#defaultFields option').clone().appendTo('#customFields');
}
</script>
<div id='yui-d0' style='margin-top:20px'>
<form method='post'>
<table class='table-1'>
<caption class='caption-tl'><?php echo $lang->bug->customFields;?></caption>
<tr class='colhead'>
<th><?php echo $lang->bug->lblAllFields;?></th>
<th></th>
<th><?php echo $lang->bug->lblCustomFields;?></th>
<th></th>
</tr>
<tr>
<td>
<?php
echo html::select('allFields[]', $allFields, '', 'class=select-2 size=10 multiple');
echo html::select('defaultFields[]', $defaultFields, '', 'class=hidden');
?>
</td>
<td>
<?php
echo html::commonButton('>', "onclick=\"addItem('allFields', 'customFields')\"") . '<br />';
echo html::commonButton('<', "onclick=delItem('customFields')") . '<br />';
?>
</td>
<td><?php echo html::select('customFields[]', $customFields, '', 'class=select-2 size=10 multiple');?></td>
<td>
<?php
echo html::commonButton('+', "onclick=upItem('customFields')") . '<br />';
echo html::commonButton('-', "onclick=downItem('customFields')") . '<br />';
echo html::commonButton($lang->bug->restoreDefault, "onclick=restoreDefault()") . '<br />';
?>
</td>
</tr>
<tr><td colspan='4' class='a-center'><?php echo html::submitButton('', 'onclick=selectItem("customFields")');?></td></tr>
</table>
</form>
</div>

View File

@@ -1,330 +1,317 @@
<?php
/**
* The edit file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/autocomplete.html.php';?>
<?php include '../../common/view/alert.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<style>
#product, #module, #project, #story, #task, #resolvedBuild{width:220px}
#steps {width:100%}
.select-3 {width:220px}
.text-3 {width:215px}
</style>
<script language='Javascript'>
changeProductConfirmed = false;
changeProjectConfirmed = false;
oldProjectID = '<?php echo $bug->project;?>';
oldStoryID = '<?php echo $bug->story;?>';
oldTaskID = '<?php echo $bug->task;?>';
oldOpenedBuild = '<?php echo $bug->openedBuild;?>';
oldResolvedBuild = '<?php echo $bug->resolvedBuild;?>';
emptySelect = "<select name='task' id='task'><option value=''></option></select>";
/* 当选择产品时,触发这个方法。*/
function loadAll(productID)
{
if(!changeProductConfirmed)
{
firstChoice = confirm('<?php echo $lang->bug->confirmChangeProduct;?>');
changeProductConfirmed = true; // 已经提示过,下次就不再提示了。
}
if(changeProductConfirmed || firstChoice)
{
$('#taskIdBox').get(0).innerHTML = emptySelect;
loadModuleMenu(productID); // 加载产品的模块列表。
loadProductStories(productID); // 加载产品的需求列表。
loadProductProjects(productID); // 加载项目列表。
loadProductBuilds(productID); // 加载build列表。
}
}
/* 加载模块列表。*/
function loadModuleMenu(productID)
{
link = createLink('tree', 'ajaxGetOptionMenu', 'productID=' + productID + '&viewtype=bug');
$('#moduleIdBox').load(link);
}
/* 加载产品的需求列表。*/
function loadProductStories(productID)
{
link = createLink('story', 'ajaxGetProductStories', 'productID=' + productID + '&moduleId=0&storyID=' + oldStoryID);
$('#storyIdBox').load(link);
}
/* 加载项目列表。*/
function loadProductProjects(productID)
{
link = createLink('product', 'ajaxGetProjects', 'productID=' + productID + '&projectID=' + oldProjectID);
$('#projectIdBox').load(link);
}
/* 加载产品build列表。*/
function loadProductBuilds(productID)
{
link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild);
$('#openedBuildBox').load(link);
link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild);
$('#resolvedBuildBox').load(link);
}
/* 加载项目的任务列表和需求列表。*/
function loadProjectRelated(projectID)
{
if(projectID)
{
loadProjectTasks(projectID);
loadProjectStories(projectID);
loadProjectBuilds(projectID);
}
else
{
$('#taskIdBox').get(0).innerHTML = emptySelect;
loadProductStories($('#product').get(0).value);
}
}
/* 加载项目的任务列表。*/
function loadProjectTasks(projectID)
{
link = createLink('task', 'ajaxGetProjectTasks', 'projectID=' + projectID + '&taskID=' + oldTaskID);
$('#taskIdBox').load(link);
}
/* 加载项目的需求列表。*/
function loadProjectStories(projectID)
{
productID = $('#product').get(0).value;
link = createLink('story', 'ajaxGetProjectStories', 'projectID=' + projectID + '&productID=' + productID + '&storyID=' + oldStoryID);
$('#storyIdBox').load(link);
}
/* 加载项目的build列表。*/
function loadProjectBuilds(projectID)
{
productID = $('#product').val();
link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild);
$('#openedBuildBox').load(link);
link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild);
$('#resolvedBuildBox').load(link);
}
/* 设置重复bug的显示。*/
function setDuplicate(resolution)
{
if(resolution == 'duplicate')
{
$('#duplicateBugBox').show();
}
else
{
$('#duplicateBugBox').hide();
}
}
var userList = "<?php echo join(',', array_keys($users));?>".split(',');
$(function() {
$("#mailto").autocomplete(userList, { multiple: true, mustMatch: true});
$("#searchStories").colorbox({width:680, height:400, iframe:true, transition:'none'});
$("#searchTasks").colorbox({width:680, height:400, iframe:true, transition:'none'});
KE.show({id:'steps', items:simpleTools, filterMode:true, imageUploadJson: createLink('file', 'ajaxUpload')});
});
</script>
<form method='post' target='hiddenwin' enctype='multipart/form-data'>
<div class='yui-d0'>
<div id='titlebar'>
<div id='main'>
BUG #<?php echo $bug->id . $lang->colon;?>
<?php echo html::input('title', str_replace("'","&#039;",$bug->title), 'class=text-1');?>
</div>
<div><?php echo html::submitButton()?></div>
</div>
</div>
<div class='yui-d0 yui-t8'>
<div class='yui-main'>
<div class='yui-b'>
<table class='table-1 bd-none'>
<tr class='bd-none'><td class='bd-none'>
<fieldset>
<legend><?php echo $lang->bug->legendSteps;?></legend>
<div class='w-p90'><?php echo html::textarea('steps', htmlspecialchars($bug->steps), "rows='12'");?></div>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendComment;?></legend>
<?php echo html::textarea('comment', '', "rows='6' class='area-1'");?>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendAttatch;?></legend>
<?php echo $this->fetch('file', 'buildform', 'filecount=2');?>
</fieldset>
<div class='a-center'>
<?php
echo html::submitButton();
$browseLink = $app->session->bugList != false ? $app->session->bugList : inlink('browse', "productID=$bug->product");
echo html::linkButton($lang->goback, $browseLink);
?>
</div>
</td></tr>
</table>
<?php include '../../common/view/action.html.php';?>
</div>
</div>
<div class='yui-b'>
<fieldset>
<legend><?php echo $lang->bug->legendBasicInfo;?></legend>
<table class='table-1 a-left' cellpadding='0' cellspacing='0'>
<tr>
<td class='rowhead w-p20'><?php echo $lang->bug->product;?></td>
<td>
<?php echo html::select('product', $products, $productID, "onchange=loadAll(this.value);");?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->module;?></td>
<td>
<span id='moduleIdBox'><?php echo html::select('module', $moduleOptionMenu, $currentModuleID);?></span>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->type;?></td>
<td><?php echo html::select('type', $lang->bug->typeList, $bug->type, 'class=select-3');?>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->severity;?></td>
<td><?php echo html::select('severity', $lang->bug->severityList, $bug->severity, 'class=select-3');?>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->pri;?></td>
<td><?php echo html::select('pri', $lang->bug->priList, $bug->pri, 'class=select-3');?>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->status;?></td>
<td><?php echo html::select('status', $lang->bug->statusList, $bug->status, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->assignedTo;?></td>
<td><?php echo html::select('assignedTo', $users, $bug->assignedTo, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->os;?></td>
<td><?php echo html::select('os', $lang->bug->osList, $bug->os, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->browser;?></td>
<td><?php echo html::select('browser', $lang->bug->browserList, $bug->browser, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->keywords;?></td>
<td><?php echo html::input('keywords', $bug->keywords, 'class="text-3"');?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendPrjStoryTask;?></legend>
<table class='table-1 a-left'>
<tr>
<td class='rowhead w-p20'><?php echo $lang->bug->project;?></td>
<td><span id='projectIdBox'><?php echo html::select('project', $projects, $bug->project, 'class=select-3 onchange=loadProjectRelated(this.value)');?></span></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->story;?></td>
<td><div id='storyIdBox' class='searchleft'><?php echo html::select('story', $stories, $bug->story, "class=select-3");?></div>
<?php echo html::a($this->createLink('search', 'select', "productID=$productID&projectID=$bug->project&module=story&storyID=$bug->story"), $lang->go, "_blank", "class='search' id='searchStories'");?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->task;?></td>
<td><div id='taskIdBox' class='searchleft'><?php echo html::select('task', $tasks, $bug->task, 'class=select-3');?></div>
<?php echo html::a($this->createLink('search', 'select', "productID=$productID&projectID=$bug->project&module=task&taskID=$bug->task"), $lang->go, "_blank", "class='search' id='searchTasks'");?>
</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendLife;?></legend>
<table class='table-1 a-left'>
<tr>
<td class='rowhead w-p20'><?php echo $lang->bug->openedBy;?></td>
<td><?php echo $users[$bug->openedBy];?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->openedBuild;?></td>
<td><span id='openedBuildBox'><?php echo html::select('openedBuild[]', $openedBuilds, $bug->openedBuild, 'size=4 multiple=multiple class=select-3');?></span></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedBy;?></td>
<td><?php echo html::select('resolvedBy', $users, $bug->resolvedBy, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedDate;?></td>
<td><?php echo html::input('resolvedDate', $bug->resolvedDate, 'class=text-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedBuild;?></td>
<td><span id='resolvedBuildBox'><?php echo html::select('resolvedBuild', $resolvedBuilds, $bug->resolvedBuild, 'class=select-3');?></span></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolution;?></td>
<td><?php echo html::select('resolution', $lang->bug->resolutionList, $bug->resolution, 'class=select-3 onchange=setDuplicate(this.value)');?></td>
</tr>
<tr id='duplicateBugBox' <?php if($bug->resolution != 'duplicate') echo "style='display:none'";?>>
<td class='rowhead'><?php echo $lang->bug->duplicateBug;?></td>
<td><?php echo html::input('duplicateBug', $bug->duplicateBug, 'class=text-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->closedBy;?></td>
<td><?php echo html::select('closedBy', $users, $bug->closedBy, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->closedDate;?></td>
<td><?php echo html::input('closedDate', $bug->closedDate, 'class=text-3');?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendMisc;?></legend>
<table class='table-1 a-left'>
<tr>
<td class='rowhead w-p20'><?php echo $lang->bug->mailto;?></td>
<td><?php echo html::input('mailto', $bug->mailto, 'class="text-3"');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->linkBug;?></td>
<td><?php echo html::input('linkBug', $bug->linkBug, 'class="text-3"');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->case;?></td>
<td><?php echo html::input('case', $bug->case, 'class="text-3"');?></td>
</tr>
</table>
</fieldset>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The edit file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/autocomplete.html.php';?>
<?php include '../../common/view/alert.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<style>
#product, #module, #project, #story, #task, #resolvedBuild{width:220px}
#steps {width:100%}
.select-3 {width:220px}
.text-3 {width:215px}
</style>
<script language='Javascript'>
changeProductConfirmed = false;
changeProjectConfirmed = false;
oldProjectID = '<?php echo $bug->project;?>';
oldStoryID = '<?php echo $bug->story;?>';
oldTaskID = '<?php echo $bug->task;?>';
oldOpenedBuild = '<?php echo $bug->openedBuild;?>';
oldResolvedBuild = '<?php echo $bug->resolvedBuild;?>';
emptySelect = "<select name='task' id='task'><option value=''></option></select>";
/* 当选择产品时,触发这个方法。*/
function loadAll(productID)
{
if(!changeProductConfirmed)
{
firstChoice = confirm('<?php echo $lang->bug->confirmChangeProduct;?>');
changeProductConfirmed = true; // 已经提示过,下次就不再提示了。
}
if(changeProductConfirmed || firstChoice)
{
$('#taskIdBox').get(0).innerHTML = emptySelect;
loadModuleMenu(productID); // 加载产品的模块列表。
loadProductStories(productID); // 加载产品的需求列表。
loadProductProjects(productID); // 加载项目列表。
loadProductBuilds(productID); // 加载build列表。
}
}
/* 加载模块列表。*/
function loadModuleMenu(productID)
{
link = createLink('tree', 'ajaxGetOptionMenu', 'productID=' + productID + '&viewtype=bug');
$('#moduleIdBox').load(link);
}
/* 加载产品的需求列表。*/
function loadProductStories(productID)
{
link = createLink('story', 'ajaxGetProductStories', 'productID=' + productID + '&moduleId=0&storyID=' + oldStoryID);
$('#storyIdBox').load(link);
}
/* 加载项目列表。*/
function loadProductProjects(productID)
{
link = createLink('product', 'ajaxGetProjects', 'productID=' + productID + '&projectID=' + oldProjectID);
$('#projectIdBox').load(link);
}
/* 加载产品build列表。*/
function loadProductBuilds(productID)
{
link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild);
$('#openedBuildBox').load(link);
link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild);
$('#resolvedBuildBox').load(link);
}
/* 加载项目的任务列表和需求列表。*/
function loadProjectRelated(projectID)
{
if(projectID)
{
loadProjectTasks(projectID);
loadProjectStories(projectID);
loadProjectBuilds(projectID);
}
else
{
$('#taskIdBox').get(0).innerHTML = emptySelect;
loadProductStories($('#product').get(0).value);
}
}
/* 加载项目的任务列表。*/
function loadProjectTasks(projectID)
{
link = createLink('task', 'ajaxGetProjectTasks', 'projectID=' + projectID + '&taskID=' + oldTaskID);
$('#taskIdBox').load(link);
}
/* 加载项目的需求列表。*/
function loadProjectStories(projectID)
{
productID = $('#product').get(0).value;
link = createLink('story', 'ajaxGetProjectStories', 'projectID=' + projectID + '&productID=' + productID + '&storyID=' + oldStoryID);
$('#storyIdBox').load(link);
}
/* 加载项目的build列表。*/
function loadProjectBuilds(projectID)
{
productID = $('#product').val();
link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild);
$('#openedBuildBox').load(link);
link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild);
$('#resolvedBuildBox').load(link);
}
/* 设置重复bug的显示。*/
function setDuplicate(resolution)
{
if(resolution == 'duplicate')
{
$('#duplicateBugBox').show();
}
else
{
$('#duplicateBugBox').hide();
}
}
var userList = "<?php echo join(',', array_keys($users));?>".split(',');
$(function() {
$("#mailto").autocomplete(userList, { multiple: true, mustMatch: true});
$("#searchStories").colorbox({width:680, height:400, iframe:true, transition:'none'});
$("#searchTasks").colorbox({width:680, height:400, iframe:true, transition:'none'});
KE.show({id:'steps', items:simpleTools, filterMode:true, imageUploadJson: createLink('file', 'ajaxUpload')});
});
</script>
<form method='post' target='hiddenwin' enctype='multipart/form-data'>
<div class='yui-d0'>
<div id='titlebar'>
<div id='main'>
BUG #<?php echo $bug->id . $lang->colon;?>
<?php echo html::input('title', str_replace("'","&#039;",$bug->title), 'class=text-1');?>
</div>
<div><?php echo html::submitButton()?></div>
</div>
</div>
<div class='yui-d0 yui-t8'>
<div class='yui-main'>
<div class='yui-b'>
<table class='table-1 bd-none'>
<tr class='bd-none'><td class='bd-none'>
<fieldset>
<legend><?php echo $lang->bug->legendSteps;?></legend>
<div class='w-p90'><?php echo html::textarea('steps', htmlspecialchars($bug->steps), "rows='12'");?></div>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendComment;?></legend>
<?php echo html::textarea('comment', '', "rows='6' class='area-1'");?>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendAttatch;?></legend>
<?php echo $this->fetch('file', 'buildform', 'filecount=2');?>
</fieldset>
<div class='a-center'>
<?php
echo html::submitButton();
$browseLink = $app->session->bugList != false ? $app->session->bugList : inlink('browse', "productID=$bug->product");
echo html::linkButton($lang->goback, $browseLink);
?>
</div>
</td></tr>
</table>
<?php include '../../common/view/action.html.php';?>
</div>
</div>
<div class='yui-b'>
<fieldset>
<legend><?php echo $lang->bug->legendBasicInfo;?></legend>
<table class='table-1 a-left' cellpadding='0' cellspacing='0'>
<tr>
<td class='rowhead w-p20'><?php echo $lang->bug->product;?></td>
<td>
<?php echo html::select('product', $products, $productID, "onchange=loadAll(this.value);");?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->module;?></td>
<td>
<span id='moduleIdBox'><?php echo html::select('module', $moduleOptionMenu, $currentModuleID);?></span>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->type;?></td>
<td><?php echo html::select('type', $lang->bug->typeList, $bug->type, 'class=select-3');?>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->severity;?></td>
<td><?php echo html::select('severity', $lang->bug->severityList, $bug->severity, 'class=select-3');?>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->pri;?></td>
<td><?php echo html::select('pri', $lang->bug->priList, $bug->pri, 'class=select-3');?>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->status;?></td>
<td><?php echo html::select('status', $lang->bug->statusList, $bug->status, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->assignedTo;?></td>
<td><?php echo html::select('assignedTo', $users, $bug->assignedTo, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->os;?></td>
<td><?php echo html::select('os', $lang->bug->osList, $bug->os, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->browser;?></td>
<td><?php echo html::select('browser', $lang->bug->browserList, $bug->browser, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->keywords;?></td>
<td><?php echo html::input('keywords', $bug->keywords, 'class="text-3"');?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendPrjStoryTask;?></legend>
<table class='table-1 a-left'>
<tr>
<td class='rowhead w-p20'><?php echo $lang->bug->project;?></td>
<td><span id='projectIdBox'><?php echo html::select('project', $projects, $bug->project, 'class=select-3 onchange=loadProjectRelated(this.value)');?></span></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->story;?></td>
<td><div id='storyIdBox' class='searchleft'><?php echo html::select('story', $stories, $bug->story, "class=select-3");?></div>
<?php echo html::a($this->createLink('search', 'select', "productID=$productID&projectID=$bug->project&module=story&storyID=$bug->story"), $lang->go, "_blank", "class='search' id='searchStories'");?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->task;?></td>
<td><div id='taskIdBox' class='searchleft'><?php echo html::select('task', $tasks, $bug->task, 'class=select-3');?></div>
<?php echo html::a($this->createLink('search', 'select', "productID=$productID&projectID=$bug->project&module=task&taskID=$bug->task"), $lang->go, "_blank", "class='search' id='searchTasks'");?>
</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendLife;?></legend>
<table class='table-1 a-left'>
<tr>
<td class='rowhead w-p20'><?php echo $lang->bug->openedBy;?></td>
<td><?php echo $users[$bug->openedBy];?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->openedBuild;?></td>
<td><span id='openedBuildBox'><?php echo html::select('openedBuild[]', $openedBuilds, $bug->openedBuild, 'size=4 multiple=multiple class=select-3');?></span></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedBy;?></td>
<td><?php echo html::select('resolvedBy', $users, $bug->resolvedBy, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedDate;?></td>
<td><?php echo html::input('resolvedDate', $bug->resolvedDate, 'class=text-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedBuild;?></td>
<td><span id='resolvedBuildBox'><?php echo html::select('resolvedBuild', $resolvedBuilds, $bug->resolvedBuild, 'class=select-3');?></span></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolution;?></td>
<td><?php echo html::select('resolution', $lang->bug->resolutionList, $bug->resolution, 'class=select-3 onchange=setDuplicate(this.value)');?></td>
</tr>
<tr id='duplicateBugBox' <?php if($bug->resolution != 'duplicate') echo "style='display:none'";?>>
<td class='rowhead'><?php echo $lang->bug->duplicateBug;?></td>
<td><?php echo html::input('duplicateBug', $bug->duplicateBug, 'class=text-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->closedBy;?></td>
<td><?php echo html::select('closedBy', $users, $bug->closedBy, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->closedDate;?></td>
<td><?php echo html::input('closedDate', $bug->closedDate, 'class=text-3');?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendMisc;?></legend>
<table class='table-1 a-left'>
<tr>
<td class='rowhead w-p20'><?php echo $lang->bug->mailto;?></td>
<td><?php echo html::input('mailto', $bug->mailto, 'class="text-3"');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->linkBug;?></td>
<td><?php echo html::input('linkBug', $bug->linkBug, 'class="text-3"');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->case;?></td>
<td><?php echo html::input('case', $bug->case, 'class="text-3"');?></td>
</tr>
</table>
</fieldset>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,28 +1,15 @@
<?php
/**
* The index view file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='doc3'>
</div>
<?php
/**
* The index view file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='doc3'>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,99 +1,86 @@
<?php
/**
* The report view file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<style>span {display:block}</style>
<script language='javascript'>
/* 全选 */
function checkAll()
{
var checkOBJ = $('input');
for(var i = 0; i < checkOBJ.length; i++)
{
checkOBJ.get(i).checked = true;
}
}
/* 反选 */
function checkReverse()
{
var checkOBJ = $('input');
for(var i = 0; i < checkOBJ.length; i++)
{
checkOBJ.get(i).checked = !checkOBJ.get(i).checked;
}
return;
}
</script>
<div class='yui-d0'>
<div id='featurebar'>
<div class='f-left'><?php echo $lang->bug->report->common;?></div>
<div class='f-right'><?php common::printLink('bug', 'browse', "productID=$productID&browseType=$browseType&moduleID=$moduleID", $lang->goback); ?></div>
</div>
</div>
<div class='yui-d0 yui-t1'>
<div class='yui-b'>
<div class='box-title'><?php echo $lang->bug->report->select;?></div>
<div class='box-content'>
<form method='post'>
<?php echo html::checkBox('charts', $lang->bug->report->charts, $checkedCharts);?>
<input type='button' value='<?php echo $lang->bug->report->selectAll;?>' onclick='checkAll()' />
<input type='button' value='<?php echo $lang->bug->report->selectReverse;?>' onclick='checkReverse()' />
<br /><br />
<?php echo html::submitButton($lang->bug->report->create);?>
</div>
</div>
<div class="yui-main">
<div class="yui-b">
<table class='table-1'>
<caption><?php echo $lang->bug->report->common;?></caption>
<?php foreach($charts as $chartType => $chartContent):?>
<tr valign='top'>
<td><?php echo $chartContent;?></td>
<td width='300'>
<table class='table-1'>
<tr>
<th><?php echo $lang->report->item;?></th>
<th><?php echo $lang->report->value;?></th>
<th><?php echo $lang->report->percent;?></th>
</tr>
<?php foreach($datas[$chartType] as $key => $data):?>
<tr class='a-center'>
<td><?php echo $data->name;?></td>
<td><?php echo $data->value;?></td>
<td><?php echo ($data->percent * 100) . '%';?></td>
</tr>
<?php endforeach;?>
</table>
</td>
</tr>
<?php endforeach;?>
</table>
</div>
</div>
</div>
<?php echo $rendJS;?>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The report view file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<style>span {display:block}</style>
<script language='javascript'>
/* 全选 */
function checkAll()
{
var checkOBJ = $('input');
for(var i = 0; i < checkOBJ.length; i++)
{
checkOBJ.get(i).checked = true;
}
}
/* 反选 */
function checkReverse()
{
var checkOBJ = $('input');
for(var i = 0; i < checkOBJ.length; i++)
{
checkOBJ.get(i).checked = !checkOBJ.get(i).checked;
}
return;
}
</script>
<div class='yui-d0'>
<div id='featurebar'>
<div class='f-left'><?php echo $lang->bug->report->common;?></div>
<div class='f-right'><?php common::printLink('bug', 'browse', "productID=$productID&browseType=$browseType&moduleID=$moduleID", $lang->goback); ?></div>
</div>
</div>
<div class='yui-d0 yui-t1'>
<div class='yui-b'>
<div class='box-title'><?php echo $lang->bug->report->select;?></div>
<div class='box-content'>
<form method='post'>
<?php echo html::checkBox('charts', $lang->bug->report->charts, $checkedCharts);?>
<input type='button' value='<?php echo $lang->bug->report->selectAll;?>' onclick='checkAll()' />
<input type='button' value='<?php echo $lang->bug->report->selectReverse;?>' onclick='checkReverse()' />
<br /><br />
<?php echo html::submitButton($lang->bug->report->create);?>
</div>
</div>
<div class="yui-main">
<div class="yui-b">
<table class='table-1'>
<caption><?php echo $lang->bug->report->common;?></caption>
<?php foreach($charts as $chartType => $chartContent):?>
<tr valign='top'>
<td><?php echo $chartContent;?></td>
<td width='300'>
<table class='table-1'>
<tr>
<th><?php echo $lang->report->item;?></th>
<th><?php echo $lang->report->value;?></th>
<th><?php echo $lang->report->percent;?></th>
</tr>
<?php foreach($datas[$chartType] as $key => $data):?>
<tr class='a-center'>
<td><?php echo $data->name;?></td>
<td><?php echo $data->value;?></td>
<td><?php echo ($data->percent * 100) . '%';?></td>
</tr>
<?php endforeach;?>
</table>
</td>
</tr>
<?php endforeach;?>
</table>
</div>
</div>
</div>
<?php echo $rendJS;?>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,73 +1,60 @@
<?php
/**
* The resolve file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<script language='Javascript'>
function setDuplicate(resolution)
{
if(resolution == 'duplicate')
{
$('#duplicateBugBox').show();
}
else
{
$('#duplicateBugBox').hide();
}
}
</script>
<form method='post' target='hiddenwin'>
<div class='yui-d0'>
<table class='table-1'>
<caption><?php echo $bug->title;?></caption>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolution;?></td>
<td><?php echo html::select('resolution', $lang->bug->resolutionList, '', 'class=select-3 onchange=setDuplicate(this.value)');?></td>
</tr>
<tr id='duplicateBugBox' style='display:none'>
<td class='rowhead'><?php echo $lang->bug->duplicateBug;?></td>
<td><?php echo html::input('duplicateBug', '', 'class=text-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedBuild;?></td>
<td><?php echo html::select('resolvedBuild', $builds, '', 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->assignedTo;?></td>
<td><?php echo html::select('assignedTo', $users, $bug->openedBy, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->comment;?></td>
<td><?php echo html::textarea('comment', '', "rows='6' class='area-1'");?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton();?>
<input type='button' value='<?php echo $lang->bug->buttonToList;?>' class='button-s'
onclick='location.href="<?php echo $this->session->bugList;?>"' />
</td>
</tr>
</table>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The resolve file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<script language='Javascript'>
function setDuplicate(resolution)
{
if(resolution == 'duplicate')
{
$('#duplicateBugBox').show();
}
else
{
$('#duplicateBugBox').hide();
}
}
</script>
<form method='post' target='hiddenwin'>
<div class='yui-d0'>
<table class='table-1'>
<caption><?php echo $bug->title;?></caption>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolution;?></td>
<td><?php echo html::select('resolution', $lang->bug->resolutionList, '', 'class=select-3 onchange=setDuplicate(this.value)');?></td>
</tr>
<tr id='duplicateBugBox' style='display:none'>
<td class='rowhead'><?php echo $lang->bug->duplicateBug;?></td>
<td><?php echo html::input('duplicateBug', '', 'class=text-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedBuild;?></td>
<td><?php echo html::select('resolvedBuild', $builds, '', 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->assignedTo;?></td>
<td><?php echo html::select('assignedTo', $users, $bug->openedBy, 'class=select-3');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->comment;?></td>
<td><?php echo html::textarea('comment', '', "rows='6' class='area-1'");?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton();?>
<input type='button' value='<?php echo $lang->bug->buttonToList;?>' class='button-s'
onclick='location.href="<?php echo $this->session->bugList;?>"' />
</td>
</tr>
</table>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,34 +1,21 @@
<?php
/**
* The mail file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<table width='98%' align='center'>
<tr class='header'>
<td>
BUG #<?php echo $bug->id . "=>$bug->assignedTo " . html::a(common::getSysURL() . $this->createLink('bug', 'view', "bugID=$bug->id"), $bug->title);?>
</td>
</tr>
<tr>
<td><?php include '../../common/view/mail.html.php';?></td>
</tr>
</table>
<?php
/**
* The mail file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<table width='98%' align='center'>
<tr class='header'>
<td>
BUG #<?php echo $bug->id . "=>$bug->assignedTo " . html::a(common::getSysURL() . $this->createLink('bug', 'view', "bugID=$bug->id"), $bug->title);?>
</td>
</tr>
<tr>
<td><?php include '../../common/view/mail.html.php';?></td>
</tr>
</table>

View File

@@ -1,238 +1,225 @@
<?php
/**
* The view file of bug module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../file/view/download.html.php';?>
<div class='yui-d0'>
<div id='titlebar'>
<div id='main' <?php if($bug->deleted) echo "class='deleted'";?>>BUG #<?php echo $bug->id . $lang->colon . $bug->title;?></div>
<div>
<?php
$browseLink = $app->session->bugList != false ? $app->session->bugList : inlink('browse', "productID=$bug->product");
$params = "bugID=$bug->id";
$copyParams = "productID=$productID&extra=bugID=$bug->id";
if(!$bug->deleted)
{
common::printLink('bug', 'edit', $params, $lang->bug->buttonEdit);
if(!($bug->status == 'active' and common::printLink('bug', 'resolve', $params, $lang->bug->buttonResolve))) echo $lang->bug->buttonResolve . ' ';
if(!($bug->status == 'resolved' and common::printLink('bug', 'close', $params, $lang->bug->buttonClose))) echo $lang->bug->buttonClose . ' ';
if(!(($bug->status == 'closed' or $bug->status == 'resolved') and common::printLink('bug', 'activate', $params, $lang->bug->buttonActivate))) echo $lang->bug->buttonActivate . ' ';
common::printLink('bug', 'create', $copyParams, $lang->bug->buttonCopy);
common::printLink('bug', 'delete', $params, $lang->delete, 'hiddenwin');
}
echo html::a($browseLink, $lang->goback);
?>
</div>
</div>
</div>
<div class='yui-d0 yui-t8'>
<div class='yui-main'>
<div class='yui-b'>
<fieldset>
<legend><?php echo $lang->bug->legendSteps;?></legend>
<div class='content'><?php echo $bug->steps;?></div>
</fieldset>
<?php echo $this->fetch('file', 'printFiles', array('files' => $bug->files, 'fieldset' => 'true'));?>
<?php include '../../common/view/action.html.php';?>
<div class='a-center' style='font-size:16px; font-weight:bold'>
<?php
if(!$bug->deleted)
{
common::printLink('bug', 'edit', $params, $lang->bug->buttonEdit);
if(!($bug->status == 'active' and common::printLink('bug', 'resolve', $params, $lang->bug->buttonResolve))) echo $lang->bug->buttonResolve . ' ';
if(!($bug->status == 'resolved' and common::printLink('bug', 'close', $params, $lang->bug->buttonClose))) echo $lang->bug->buttonClose . ' ';
if(!(($bug->status == 'closed' or $bug->status == 'resolved') and common::printLink('bug', 'activate', $params, $lang->bug->buttonActivate))) echo $lang->bug->buttonActivate . ' ';
common::printLink('bug', 'create', $copyParams, $lang->bug->buttonCopy);
common::printLink('bug', 'delete', $params, $lang->delete, 'hiddenwin');
}
echo html::a($browseLink, $lang->goback);
?>
</div>
</div>
</div>
<div class='yui-b'>
<fieldset>
<legend><?php echo $lang->bug->legendBasicInfo;?></legend>
<table class='table-1 a-left'>
<tr valign='middle'>
<th class='rowhead'><?php echo $lang->bug->product;?></th>
<td><?php if(!common::printLink('bug', 'browse', "productID=$bug->product", $productName)) echo $productName;?>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->module;?></th>
<td>
<?php
foreach($modulePath as $key => $module)
{
if(!common::printLink('bug', 'browse', "productID=$bug->product&browseType=byModule&param=$module->id", $module->name)) echo $module->name;
if(isset($modulePath[$key + 1])) echo $lang->arrow;
}
?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->type;?></td>
<td><?php if(isset($lang->bug->typeList[$bug->type])) echo $lang->bug->typeList[$bug->type]; else echo $bug->type;?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->severity;?></td>
<td><strong><?php echo $lang->bug->severityList[$bug->severity];?></strong></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->pri;?></td>
<td><strong><?php echo $lang->bug->priList[$bug->pri];?></strong></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->status;?></td>
<td><strong><?php echo $lang->bug->statusList[$bug->status];?></strong></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->lblAssignedTo;?></td>
<td><?php if($bug->assignedTo) echo $users[$bug->assignedTo] . $lang->at . $bug->assignedDate;?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->os;?></td>
<td><?php echo $lang->bug->osList[$bug->os];?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->browser;?></td>
<td><?php echo $lang->bug->browserList[$bug->browser];?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->keywords;?></td>
<td><?php echo $bug->keywords;?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendLife;?></legend>
<table class='table-1 a-left fixed'>
<tr>
<th class='rowhead'><?php echo $lang->bug->openedBy;?></th>
<td> <?php echo $users[$bug->openedBy] . $lang->at . $bug->openedDate;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->openedBuild;?></th>
<td>
<?php
if($bug->openedBuild)
{
$openedBuilds = explode(',', $bug->openedBuild);
foreach($openedBuilds as $openedBuild) isset($builds[$openedBuild]) ? print($builds[$openedBuild] . '<br />') : print($openedBuild . '<br />');
}
else
{
echo $bug->openedBuild;
}
?>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblResolved;?></th>
<td><?php if($bug->resolvedBy) echo $users[$bug->resolvedBy] . $lang->at . $bug->resolvedDate;?>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->resolvedBuild;?></th>
<td><?php if(isset($builds[$bug->resolvedBuild])) echo $builds[$bug->resolvedBuild]; else echo $bug->resolvedBuild;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->resolution;?></th>
<td>
<?php
echo $lang->bug->resolutionList[$bug->resolution];
if(isset($bug->duplicateBugTitle)) echo " #$bug->duplicateBug:" . html::a($this->createLink('bug', 'view', "bugID=$bug->duplicateBug"), $bug->duplicateBugTitle);
?>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->closedBy;?></th>
<td><?php if($bug->closedBy) echo $users[$bug->closedBy] . $lang->at . $bug->closedDate;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblLastEdited;?></th>
<td><?php if($bug->lastEditedBy) echo $users[$bug->lastEditedBy] . $lang->at . $bug->lastEditedDate?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendPrjStoryTask;?></legend>
<table class='table-1 a-left fixed'>
<tr>
<td class='rowhead'><?php echo $lang->bug->project;?></td>
<td><?php if($bug->project) echo html::a($this->createLink('project', 'browse', "projectid=$bug->project"), $bug->projectName);?></td>
</tr>
<tr class='nofixed'>
<td class='rowhead'><?php echo $lang->bug->story;?></td>
<td>
<?php
if($bug->story) echo html::a($this->createLink('story', 'view', "storyID=$bug->story"), $bug->storyTitle);
if($bug->storyStatus == 'active' and $bug->latestStoryVersion > $bug->storyVersion)
{
echo "(<span class='warning'>{$lang->story->changed}</span> ";
echo html::a($this->createLink('bug', 'confirmStoryChange', "bugID=$bug->id"), $lang->confirm, 'hiddenwin');
echo ")";
}
?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->task;?></td>
<td><?php if($bug->task) echo html::a($this->createLink('task', 'view', "taskID=$bug->task"), $bug->taskName);?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendMisc;?></legend>
<table class='table-1 a-left fixed'>
<tr>
<td class='rowhead'><?php echo $lang->bug->mailto;?></td>
<td><?php $mailto = explode(',', str_replace(' ', '', $bug->mailto)); foreach($mailto as $account) echo ' ' . $users[$account]; ?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->linkBug;?></td>
<td>
<?php
if(isset($bug->linkBugTitles))
{
foreach($bug->linkBugTitles as $linkBugID => $linkBugTitle)
{
echo html::a($this->createLink('bug', 'view', "bugID=$linkBugID"), "#$linkBugID $linkBugTitle", '_blank') . '<br />';
}
}
?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->case;?></td>
<td><?php if(isset($bug->caseTitle)) echo html::a($this->createLink('testcase', 'view', "caseID=$bug->case"), "#$bug->case $bug->caseTitle", '_blank');?></td>
</tr>
</table>
</fieldset>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The view file of bug module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../file/view/download.html.php';?>
<div class='yui-d0'>
<div id='titlebar'>
<div id='main' <?php if($bug->deleted) echo "class='deleted'";?>>BUG #<?php echo $bug->id . $lang->colon . $bug->title;?></div>
<div>
<?php
$browseLink = $app->session->bugList != false ? $app->session->bugList : inlink('browse', "productID=$bug->product");
$params = "bugID=$bug->id";
$copyParams = "productID=$productID&extra=bugID=$bug->id";
if(!$bug->deleted)
{
common::printLink('bug', 'edit', $params, $lang->bug->buttonEdit);
if(!($bug->status == 'active' and common::printLink('bug', 'resolve', $params, $lang->bug->buttonResolve))) echo $lang->bug->buttonResolve . ' ';
if(!($bug->status == 'resolved' and common::printLink('bug', 'close', $params, $lang->bug->buttonClose))) echo $lang->bug->buttonClose . ' ';
if(!(($bug->status == 'closed' or $bug->status == 'resolved') and common::printLink('bug', 'activate', $params, $lang->bug->buttonActivate))) echo $lang->bug->buttonActivate . ' ';
common::printLink('bug', 'create', $copyParams, $lang->bug->buttonCopy);
common::printLink('bug', 'delete', $params, $lang->delete, 'hiddenwin');
}
echo html::a($browseLink, $lang->goback);
?>
</div>
</div>
</div>
<div class='yui-d0 yui-t8'>
<div class='yui-main'>
<div class='yui-b'>
<fieldset>
<legend><?php echo $lang->bug->legendSteps;?></legend>
<div class='content'><?php echo $bug->steps;?></div>
</fieldset>
<?php echo $this->fetch('file', 'printFiles', array('files' => $bug->files, 'fieldset' => 'true'));?>
<?php include '../../common/view/action.html.php';?>
<div class='a-center' style='font-size:16px; font-weight:bold'>
<?php
if(!$bug->deleted)
{
common::printLink('bug', 'edit', $params, $lang->bug->buttonEdit);
if(!($bug->status == 'active' and common::printLink('bug', 'resolve', $params, $lang->bug->buttonResolve))) echo $lang->bug->buttonResolve . ' ';
if(!($bug->status == 'resolved' and common::printLink('bug', 'close', $params, $lang->bug->buttonClose))) echo $lang->bug->buttonClose . ' ';
if(!(($bug->status == 'closed' or $bug->status == 'resolved') and common::printLink('bug', 'activate', $params, $lang->bug->buttonActivate))) echo $lang->bug->buttonActivate . ' ';
common::printLink('bug', 'create', $copyParams, $lang->bug->buttonCopy);
common::printLink('bug', 'delete', $params, $lang->delete, 'hiddenwin');
}
echo html::a($browseLink, $lang->goback);
?>
</div>
</div>
</div>
<div class='yui-b'>
<fieldset>
<legend><?php echo $lang->bug->legendBasicInfo;?></legend>
<table class='table-1 a-left'>
<tr valign='middle'>
<th class='rowhead'><?php echo $lang->bug->product;?></th>
<td><?php if(!common::printLink('bug', 'browse', "productID=$bug->product", $productName)) echo $productName;?>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->module;?></th>
<td>
<?php
foreach($modulePath as $key => $module)
{
if(!common::printLink('bug', 'browse', "productID=$bug->product&browseType=byModule&param=$module->id", $module->name)) echo $module->name;
if(isset($modulePath[$key + 1])) echo $lang->arrow;
}
?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->type;?></td>
<td><?php if(isset($lang->bug->typeList[$bug->type])) echo $lang->bug->typeList[$bug->type]; else echo $bug->type;?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->severity;?></td>
<td><strong><?php echo $lang->bug->severityList[$bug->severity];?></strong></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->pri;?></td>
<td><strong><?php echo $lang->bug->priList[$bug->pri];?></strong></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->status;?></td>
<td><strong><?php echo $lang->bug->statusList[$bug->status];?></strong></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->lblAssignedTo;?></td>
<td><?php if($bug->assignedTo) echo $users[$bug->assignedTo] . $lang->at . $bug->assignedDate;?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->os;?></td>
<td><?php echo $lang->bug->osList[$bug->os];?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->browser;?></td>
<td><?php echo $lang->bug->browserList[$bug->browser];?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->keywords;?></td>
<td><?php echo $bug->keywords;?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendLife;?></legend>
<table class='table-1 a-left fixed'>
<tr>
<th class='rowhead'><?php echo $lang->bug->openedBy;?></th>
<td> <?php echo $users[$bug->openedBy] . $lang->at . $bug->openedDate;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->openedBuild;?></th>
<td>
<?php
if($bug->openedBuild)
{
$openedBuilds = explode(',', $bug->openedBuild);
foreach($openedBuilds as $openedBuild) isset($builds[$openedBuild]) ? print($builds[$openedBuild] . '<br />') : print($openedBuild . '<br />');
}
else
{
echo $bug->openedBuild;
}
?>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblResolved;?></th>
<td><?php if($bug->resolvedBy) echo $users[$bug->resolvedBy] . $lang->at . $bug->resolvedDate;?>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->resolvedBuild;?></th>
<td><?php if(isset($builds[$bug->resolvedBuild])) echo $builds[$bug->resolvedBuild]; else echo $bug->resolvedBuild;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->resolution;?></th>
<td>
<?php
echo $lang->bug->resolutionList[$bug->resolution];
if(isset($bug->duplicateBugTitle)) echo " #$bug->duplicateBug:" . html::a($this->createLink('bug', 'view', "bugID=$bug->duplicateBug"), $bug->duplicateBugTitle);
?>
</td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->closedBy;?></th>
<td><?php if($bug->closedBy) echo $users[$bug->closedBy] . $lang->at . $bug->closedDate;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->bug->lblLastEdited;?></th>
<td><?php if($bug->lastEditedBy) echo $users[$bug->lastEditedBy] . $lang->at . $bug->lastEditedDate?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendPrjStoryTask;?></legend>
<table class='table-1 a-left fixed'>
<tr>
<td class='rowhead'><?php echo $lang->bug->project;?></td>
<td><?php if($bug->project) echo html::a($this->createLink('project', 'browse', "projectid=$bug->project"), $bug->projectName);?></td>
</tr>
<tr class='nofixed'>
<td class='rowhead'><?php echo $lang->bug->story;?></td>
<td>
<?php
if($bug->story) echo html::a($this->createLink('story', 'view', "storyID=$bug->story"), $bug->storyTitle);
if($bug->storyStatus == 'active' and $bug->latestStoryVersion > $bug->storyVersion)
{
echo "(<span class='warning'>{$lang->story->changed}</span> ";
echo html::a($this->createLink('bug', 'confirmStoryChange', "bugID=$bug->id"), $lang->confirm, 'hiddenwin');
echo ")";
}
?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->task;?></td>
<td><?php if($bug->task) echo html::a($this->createLink('task', 'view', "taskID=$bug->task"), $bug->taskName);?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendMisc;?></legend>
<table class='table-1 a-left fixed'>
<tr>
<td class='rowhead'><?php echo $lang->bug->mailto;?></td>
<td><?php $mailto = explode(',', str_replace(' ', '', $bug->mailto)); foreach($mailto as $account) echo ' ' . $users[$account]; ?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->linkBug;?></td>
<td>
<?php
if(isset($bug->linkBugTitles))
{
foreach($bug->linkBugTitles as $linkBugID => $linkBugTitle)
{
echo html::a($this->createLink('bug', 'view', "bugID=$linkBugID"), "#$linkBugID $linkBugTitle", '_blank') . '<br />';
}
}
?>
</td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->case;?></td>
<td><?php if(isset($bug->caseTitle)) echo html::a($this->createLink('testcase', 'view', "caseID=$bug->case"), "#$bug->case $bug->caseTitle", '_blank');?></td>
</tr>
</table>
</fieldset>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,122 +1,109 @@
<?php
/**
* The control file of build module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
class build extends control
{
/* 添加build。*/
public function create($projectID)
{
if(!empty($_POST))
{
$buildID = $this->build->create($projectID);
if(dao::isError()) die(js::error(dao::getError()));
$this->loadModel('action')->create('build', $buildID, 'opened');
die(js::locate($this->createLink('project', 'build', "project=$projectID"), 'parent'));
}
/* 设置菜单。*/
$this->loadModel('project')->setMenu($this->project->getPairs(), $projectID);
/* 赋值。*/
$this->view->header->title = $this->lang->build->create;
$this->view->products = $this->project->getProducts($projectID);
$this->view->users = $this->loadModel('user')->getPairs();
$this->display();
}
/* 编辑build。*/
public function edit($buildID)
{
if(!empty($_POST))
{
$changes = $this->build->update($buildID);
if(dao::isError()) die(js::error(dao::getError()));
if($changes)
{
$actionID = $this->loadModel('action')->create('build', $buildID, 'edited');
$this->action->logHistory($actionID, $changes);
}
die(js::locate(inlink('view', "buildID=$buildID"), 'parent'));
}
/* 设置菜单。*/
$build = $this->build->getById((int)$buildID);
$this->loadModel('project')->setMenu($this->project->getPairs(), $build->project);
/* 赋值。*/
$this->view->header->title = $this->lang->build->edit;
$this->view->position[] = $this->lang->build->edit;
$this->view->products = $this->project->getProducts($build->project);
$this->view->users = $this->loadModel('user')->getPairs();
$this->view->build = $build;
$this->display();
}
/* 查看build。*/
public function view($buildID)
{
/* 设置菜单。*/
$build = $this->build->getById((int)$buildID);
if(!$build) die(js::error($this->lang->notFound) . js::locate('back'));
$this->loadModel('project')->setMenu($this->project->getPairs(), $build->project);
/* 赋值。*/
$this->view->header->title = $this->lang->build->view;
$this->view->position[] = $this->lang->build->view;
$this->view->products = $this->project->getProducts($build->project);
$this->view->users = $this->loadModel('user')->getPairs();
$this->view->build = $build;
$this->view->actions = $this->loadModel('action')->getList('build', $buildID);
$this->display();
}
/* 删除build。*/
public function delete($buildID, $confirm = 'no')
{
if($confirm == 'no')
{
die(js::confirm($this->lang->build->confirmDelete, $this->createLink('build', 'delete', "buildID=$buildID&confirm=yes")));
}
else
{
$build = $this->build->getById($buildID);
$this->build->delete(TABLE_BUILD, $buildID);
die(js::locate($this->createLink('project', 'build', "projectID=$build->project"), 'parent'));
}
}
/* AJAX接口获得产品的build列表。*/
public function ajaxGetProductBuilds($productID, $varName, $build = '')
{
if($varName == 'openedBuild') die(html::select($varName . '[]', $this->build->getProductBuildPairs($productID, 'noempty'), $build, 'size=4 class=select-3 multiple'));
if($varName == 'resolvedBuild') die(html::select($varName, $this->build->getProductBuildPairs($productID, 'noempty'), $build, 'class=select-3'));
}
/* AJAX接口获得项目的build列表。*/
public function ajaxGetProjectBuilds($projectID, $productID, $varName, $build = '')
{
if($varName == 'openedBuild') die(html::select($varName . '[]', $this->build->getProjectBuildPairs($projectID, $productID, 'noempty'), $build, 'size=4 class=select-3 multiple'));
if($varName == 'resolvedBuild') die(html::select($varName, $this->build->getProjectBuildPairs($projectID, $productID, 'noempty'), $build, 'class=select-3'));
}
}
<?php
/**
* The control file of build module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
class build extends control
{
/* 添加build。*/
public function create($projectID)
{
if(!empty($_POST))
{
$buildID = $this->build->create($projectID);
if(dao::isError()) die(js::error(dao::getError()));
$this->loadModel('action')->create('build', $buildID, 'opened');
die(js::locate($this->createLink('project', 'build', "project=$projectID"), 'parent'));
}
/* 设置菜单。*/
$this->loadModel('project')->setMenu($this->project->getPairs(), $projectID);
/* 赋值。*/
$this->view->header->title = $this->lang->build->create;
$this->view->products = $this->project->getProducts($projectID);
$this->view->users = $this->loadModel('user')->getPairs();
$this->display();
}
/* 编辑build。*/
public function edit($buildID)
{
if(!empty($_POST))
{
$changes = $this->build->update($buildID);
if(dao::isError()) die(js::error(dao::getError()));
if($changes)
{
$actionID = $this->loadModel('action')->create('build', $buildID, 'edited');
$this->action->logHistory($actionID, $changes);
}
die(js::locate(inlink('view', "buildID=$buildID"), 'parent'));
}
/* 设置菜单。*/
$build = $this->build->getById((int)$buildID);
$this->loadModel('project')->setMenu($this->project->getPairs(), $build->project);
/* 赋值。*/
$this->view->header->title = $this->lang->build->edit;
$this->view->position[] = $this->lang->build->edit;
$this->view->products = $this->project->getProducts($build->project);
$this->view->users = $this->loadModel('user')->getPairs();
$this->view->build = $build;
$this->display();
}
/* 查看build。*/
public function view($buildID)
{
/* 设置菜单。*/
$build = $this->build->getById((int)$buildID);
if(!$build) die(js::error($this->lang->notFound) . js::locate('back'));
$this->loadModel('project')->setMenu($this->project->getPairs(), $build->project);
/* 赋值。*/
$this->view->header->title = $this->lang->build->view;
$this->view->position[] = $this->lang->build->view;
$this->view->products = $this->project->getProducts($build->project);
$this->view->users = $this->loadModel('user')->getPairs();
$this->view->build = $build;
$this->view->actions = $this->loadModel('action')->getList('build', $buildID);
$this->display();
}
/* 删除build。*/
public function delete($buildID, $confirm = 'no')
{
if($confirm == 'no')
{
die(js::confirm($this->lang->build->confirmDelete, $this->createLink('build', 'delete', "buildID=$buildID&confirm=yes")));
}
else
{
$build = $this->build->getById($buildID);
$this->build->delete(TABLE_BUILD, $buildID);
die(js::locate($this->createLink('project', 'build', "projectID=$build->project"), 'parent'));
}
}
/* AJAX接口获得产品的build列表。*/
public function ajaxGetProductBuilds($productID, $varName, $build = '')
{
if($varName == 'openedBuild') die(html::select($varName . '[]', $this->build->getProductBuildPairs($productID, 'noempty'), $build, 'size=4 class=select-3 multiple'));
if($varName == 'resolvedBuild') die(html::select($varName, $this->build->getProductBuildPairs($productID, 'noempty'), $build, 'class=select-3'));
}
/* AJAX接口获得项目的build列表。*/
public function ajaxGetProjectBuilds($projectID, $productID, $varName, $build = '')
{
if($varName == 'openedBuild') die(html::select($varName . '[]', $this->build->getProjectBuildPairs($projectID, $productID, 'noempty'), $build, 'size=4 class=select-3 multiple'));
if($varName == 'resolvedBuild') die(html::select($varName, $this->build->getProjectBuildPairs($projectID, $productID, 'noempty'), $build, 'class=select-3'));
}
}

View File

@@ -1,42 +1,29 @@
<?php
/**
* The build module English file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
$lang->build->common = 'Build';
$lang->build->create = "Create";
$lang->build->edit = "Edit";
$lang->build->delete = "Delete";
$lang->build->view = "Info";
$lang->build->ajaxGetProductBuilds = 'API:Product builds';
$lang->build->ajaxGetProjectBuilds = 'API:Project builds';
$lang->build->confirmDelete = "Are sure to delete this build?";
$lang->build->id = 'ID';
$lang->build->product = 'Product';
$lang->build->project = 'Project';
$lang->build->name = 'Name';
$lang->build->date = 'Build date';
$lang->build->builder = 'Builder';
$lang->build->scmPath = 'Source code path';
$lang->build->filePath = 'Package file path';
$lang->build->desc = 'Desc';
<?php
/**
* The build module English file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
$lang->build->common = 'Build';
$lang->build->create = "Create";
$lang->build->edit = "Edit";
$lang->build->delete = "Delete";
$lang->build->view = "Info";
$lang->build->ajaxGetProductBuilds = 'API:Product builds';
$lang->build->ajaxGetProjectBuilds = 'API:Project builds';
$lang->build->confirmDelete = "Are sure to delete this build?";
$lang->build->id = 'ID';
$lang->build->product = 'Product';
$lang->build->project = 'Project';
$lang->build->name = 'Name';
$lang->build->date = 'Build date';
$lang->build->builder = 'Builder';
$lang->build->scmPath = 'Source code path';
$lang->build->filePath = 'Package file path';
$lang->build->desc = 'Desc';

View File

@@ -1,42 +1,29 @@
<?php
/**
* The build module Japanese file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->build->common = 'ビルド';
$lang->build->create = "作成";
$lang->build->edit = "[編集]";
$lang->build->delete = "削除";
$lang->build->view = "情報";
$lang->build->ajaxGetProductBuilds = 'APIは製品のビルド';
$lang->build->ajaxGetProjectBuilds = 'APIはプロジェクトのビルド';
$lang->build->confirmDelete = "よろしいですか、このビルドを削除するには?";
$lang->build->id = 'IDは';
$lang->build->product = '製品';
$lang->build->project = 'プロジェクト';
$lang->build->name = '名';
$lang->build->date = 'ビルド日';
$lang->build->builder = 'ビルダー';
$lang->build->scmPath = 'ソースコードのパス';
$lang->build->filePath = 'パッケージファイルのパス';
$lang->build->desc = '降順';
<?php
/**
* The build module Japanese file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->build->common = 'ビルド';
$lang->build->create = "作成";
$lang->build->edit = "[編集]";
$lang->build->delete = "削除";
$lang->build->view = "情報";
$lang->build->ajaxGetProductBuilds = 'APIは製品のビルド';
$lang->build->ajaxGetProjectBuilds = 'APIはプロジェクトのビルド';
$lang->build->confirmDelete = "よろしいですか、このビルドを削除するには?";
$lang->build->id = 'IDは';
$lang->build->product = '製品';
$lang->build->project = 'プロジェクト';
$lang->build->name = '';
$lang->build->date = 'ビルド日';
$lang->build->builder = 'ビルダー';
$lang->build->scmPath = 'ソースコードのパス';
$lang->build->filePath = 'パッケージファイルのパス';
$lang->build->desc = '降順';

View File

@@ -1,42 +1,29 @@
<?php
/**
* The build module Korean file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->build->common = '빌드';
$lang->build->create = "만들기";
$lang->build->edit = "편집";
$lang->build->delete = "삭제";
$lang->build->view = "정보";
$lang->build->ajaxGetProductBuilds = 'API는 : 제품 빌드';
$lang->build->ajaxGetProjectBuilds = 'API가 : 프로젝트 빌드';
$lang->build->confirmDelete = "확실이 빌드 삭제?";
$lang->build->id = '신분증';
$lang->build->product = '제품';
$lang->build->project = '프로젝트';
$lang->build->name = '이름';
$lang->build->date = '작성 날짜';
$lang->build->builder = '건축업자';
$lang->build->scmPath = '소스 코드 경로';
$lang->build->filePath = '패키지 파일 경로';
$lang->build->desc = '내림차순';
<?php
/**
* The build module Korean file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->build->common = '빌드';
$lang->build->create = "만들기";
$lang->build->edit = "편집";
$lang->build->delete = "삭제";
$lang->build->view = "정보";
$lang->build->ajaxGetProductBuilds = 'API는 : 제품 빌드';
$lang->build->ajaxGetProjectBuilds = 'API가 : 프로젝트 빌드';
$lang->build->confirmDelete = "확실이 빌드 삭제?";
$lang->build->id = '신분증';
$lang->build->product = '제품';
$lang->build->project = '프로젝트';
$lang->build->name = '이름';
$lang->build->date = '작성 날짜';
$lang->build->builder = '건축업자';
$lang->build->scmPath = '소스 코드 경로';
$lang->build->filePath = '패키지 파일 경로';
$lang->build->desc = '내림차순';

View File

@@ -1,42 +1,29 @@
<?php
/**
* The build module zh-cn file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
$lang->build->common = 'Build';
$lang->build->create = "创建Build";
$lang->build->edit = "编辑Build";
$lang->build->delete = "删除Build";
$lang->build->view = "Build详情";
$lang->build->ajaxGetProductBuilds = '接口:产品Build列表';
$lang->build->ajaxGetProjectBuilds = '接口:项目Build列表';
$lang->build->confirmDelete = "您确认删除该build吗";
$lang->build->id = 'ID';
$lang->build->product = '产品';
$lang->build->project = '项目';
$lang->build->name = '名称编号';
$lang->build->date = 'Build日期';
$lang->build->builder = '构建者';
$lang->build->scmPath = '源代码地址';
$lang->build->filePath = '存储地址';
$lang->build->desc = '描述';
<?php
/**
* The build module zh-cn file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
$lang->build->common = 'Build';
$lang->build->create = "创建Build";
$lang->build->edit = "编辑Build";
$lang->build->delete = "删除Build";
$lang->build->view = "Build详情";
$lang->build->ajaxGetProductBuilds = '接口:产品Build列表';
$lang->build->ajaxGetProjectBuilds = '接口:项目Build列表';
$lang->build->confirmDelete = "您确认删除该build吗";
$lang->build->id = 'ID';
$lang->build->product = '产品';
$lang->build->project = '项目';
$lang->build->name = '名称编号';
$lang->build->date = 'Build日期';
$lang->build->builder = '构建者';
$lang->build->scmPath = '源代码地址';
$lang->build->filePath = '存储地址';
$lang->build->desc = '描述';

View File

@@ -1,42 +1,29 @@
<?php
/**
* The build module zh-tw file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->build->common = 'Build';
$lang->build->create = "創建Build";
$lang->build->edit = "編輯Build";
$lang->build->delete = "刪除Build";
$lang->build->view = "Build詳情";
$lang->build->ajaxGetProductBuilds = '介面:產品Build列表';
$lang->build->ajaxGetProjectBuilds = '介面:項目Build列表';
$lang->build->confirmDelete = "您確認刪除該build嗎";
$lang->build->id = 'ID';
$lang->build->product = '產品';
$lang->build->project = '項目';
$lang->build->name = '名稱編號';
$lang->build->date = 'Build日期';
$lang->build->builder = '構建者';
$lang->build->scmPath = '原始碼地址';
$lang->build->filePath = '存儲地址';
$lang->build->desc = '描述';
<?php
/**
* The build module zh-tw file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->build->common = 'Build';
$lang->build->create = "創建Build";
$lang->build->edit = "編輯Build";
$lang->build->delete = "刪除Build";
$lang->build->view = "Build詳情";
$lang->build->ajaxGetProductBuilds = '介面:產品Build列表';
$lang->build->ajaxGetProjectBuilds = '介面:項目Build列表';
$lang->build->confirmDelete = "您確認刪除該build嗎";
$lang->build->id = 'ID';
$lang->build->product = '產品';
$lang->build->project = '項目';
$lang->build->name = '名稱編號';
$lang->build->date = 'Build日期';
$lang->build->builder = '構建者';
$lang->build->scmPath = '原始碼地址';
$lang->build->filePath = '存儲地址';
$lang->build->desc = '描述';

View File

@@ -1,117 +1,104 @@
<?php
/**
* The model file of build module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class buildModel extends model
{
/* 获取build详细信息。*/
public function getByID($buildID)
{
return $this->dao->select('t1.*, t2.name as projectName, t3.name as productName')
->from(TABLE_BUILD)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t1.product = t3.id')
->where('t1.id')->eq((int)$buildID)
->orderBy('t1.id DESC')
->fetch();
}
/* 查找项目中的build列表。*/
public function getProjectBuilds($projectID)
{
return $this->dao->select('t1.*, t2.name as projectName, t3.name as productName')
->from(TABLE_BUILD)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t1.product = t3.id')
->where('t1.project')->eq((int)$projectID)
->andWhere('t1.deleted')->eq(0)
->orderBy('t1.id DESC')
->fetchAll();
}
/* 查找项目中的build列表。params='noempty|notrunk' */
public function getProjectBuildPairs($projectID, $productID, $params = '')
{
$sysBuilds = array();
if(strpos($params, 'noempty') === false) $sysBuilds = array('' => '');
if(strpos($params, 'notrunk') === false) $sysBuilds = $sysBuilds + array('trunk' => 'Trunk');
$builds = $this->dao->select('id,name')->from(TABLE_BUILD)
->where('project')->eq((int)$projectID)
->beginIF($productID)->andWhere('product')->eq((int)$productID)->fi()
->andWhere('deleted')->eq(0)
->orderBy('id desc')->fetchPairs();
if(!$builds) return $sysBuilds;
$releases = $this->dao->select('build,name')->from(TABLE_RELEASE)
->where('build')->in(array_keys($builds))
->andWhere('deleted')->eq(0)
->fetchPairs();
foreach($releases as $buildID => $releaseName) $builds[$buildID] = $releaseName;
return $sysBuilds + $builds;
}
/* 查找产品中的build列表。params='noempty|notrunk' */
public function getProductBuildPairs($productID, $params = '')
{
$sysBuilds = array();
if(strpos($params, 'noempty') === false) $sysBuilds = array('' => '');
if(strpos($params, 'notrunk') === false) $sysBuilds = $sysBuilds + array('trunk' => 'Trunk');
$builds = $this->dao->select('id,name')->from(TABLE_BUILD)
->where('product')->eq((int)$productID)
->andWhere('deleted')->eq(0)
->orderBy('id desc')->fetchPairs();
if(!$builds) return $sysBuilds;
$releases = $this->dao->select('build,name')->from(TABLE_RELEASE)
->where('build')->in(array_keys($builds))
->andWhere('deleted')->eq(0)
->fetchPairs();
foreach($releases as $buildID => $releaseName) $builds[$buildID] = $releaseName;
return $sysBuilds + $builds;
}
/* 创建。*/
public function create($projectID)
{
$build = fixer::input('post')
->stripTags('name')
->specialChars('desc')
->add('project', (int)$projectID)
->get();
$this->dao->insert(TABLE_BUILD)->data($build)->autoCheck()->batchCheck($this->config->build->create->requiredFields, 'notempty')->check('name','unique')->exec();
if(!dao::isError()) return $this->dao->lastInsertID();
}
/* 编辑。*/
public function update($buildID)
{
$oldBuild = $this->getByID($buildID);
$build = fixer::input('post')
->stripTags('name')
->specialChars('desc')
->get();
$this->dao->update(TABLE_BUILD)->data($build)->autoCheck()->batchCheck($this->config->build->edit->requiredFields, 'notempty')->where('id')->eq((int)$buildID)->exec();
if(!dao::isError()) return common::createChanges($oldBuild, $build);
}
}
<?php
/**
* The model file of build module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class buildModel extends model
{
/* 获取build详细信息。*/
public function getByID($buildID)
{
return $this->dao->select('t1.*, t2.name as projectName, t3.name as productName')
->from(TABLE_BUILD)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t1.product = t3.id')
->where('t1.id')->eq((int)$buildID)
->orderBy('t1.id DESC')
->fetch();
}
/* 查找项目中的build列表。*/
public function getProjectBuilds($projectID)
{
return $this->dao->select('t1.*, t2.name as projectName, t3.name as productName')
->from(TABLE_BUILD)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t1.product = t3.id')
->where('t1.project')->eq((int)$projectID)
->andWhere('t1.deleted')->eq(0)
->orderBy('t1.id DESC')
->fetchAll();
}
/* 查找项目中的build列表。params='noempty|notrunk' */
public function getProjectBuildPairs($projectID, $productID, $params = '')
{
$sysBuilds = array();
if(strpos($params, 'noempty') === false) $sysBuilds = array('' => '');
if(strpos($params, 'notrunk') === false) $sysBuilds = $sysBuilds + array('trunk' => 'Trunk');
$builds = $this->dao->select('id,name')->from(TABLE_BUILD)
->where('project')->eq((int)$projectID)
->beginIF($productID)->andWhere('product')->eq((int)$productID)->fi()
->andWhere('deleted')->eq(0)
->orderBy('id desc')->fetchPairs();
if(!$builds) return $sysBuilds;
$releases = $this->dao->select('build,name')->from(TABLE_RELEASE)
->where('build')->in(array_keys($builds))
->andWhere('deleted')->eq(0)
->fetchPairs();
foreach($releases as $buildID => $releaseName) $builds[$buildID] = $releaseName;
return $sysBuilds + $builds;
}
/* 查找产品中的build列表。params='noempty|notrunk' */
public function getProductBuildPairs($productID, $params = '')
{
$sysBuilds = array();
if(strpos($params, 'noempty') === false) $sysBuilds = array('' => '');
if(strpos($params, 'notrunk') === false) $sysBuilds = $sysBuilds + array('trunk' => 'Trunk');
$builds = $this->dao->select('id,name')->from(TABLE_BUILD)
->where('product')->eq((int)$productID)
->andWhere('deleted')->eq(0)
->orderBy('id desc')->fetchPairs();
if(!$builds) return $sysBuilds;
$releases = $this->dao->select('build,name')->from(TABLE_RELEASE)
->where('build')->in(array_keys($builds))
->andWhere('deleted')->eq(0)
->fetchPairs();
foreach($releases as $buildID => $releaseName) $builds[$buildID] = $releaseName;
return $sysBuilds + $builds;
}
/* 创建。*/
public function create($projectID)
{
$build = fixer::input('post')
->stripTags('name')
->specialChars('desc')
->add('project', (int)$projectID)
->get();
$this->dao->insert(TABLE_BUILD)->data($build)->autoCheck()->batchCheck($this->config->build->create->requiredFields, 'notempty')->check('name','unique')->exec();
if(!dao::isError()) return $this->dao->lastInsertID();
}
/* 编辑。*/
public function update($buildID)
{
$oldBuild = $this->getByID($buildID);
$build = fixer::input('post')
->stripTags('name')
->specialChars('desc')
->get();
$this->dao->update(TABLE_BUILD)->data($build)->autoCheck()->batchCheck($this->config->build->edit->requiredFields, 'notempty')->where('id')->eq((int)$buildID)->exec();
if(!dao::isError()) return common::createChanges($oldBuild, $build);
}
}

View File

@@ -1,63 +1,50 @@
<?php
/**
* The create view of build module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<div class='yui-d0'>
<form method='post' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->build->create;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->build->product;?></th>
<td><?php echo html::select('product', $products, '', "class='select-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->name;?></th>
<td><?php echo html::input('name', '', "class='text-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->builder;?></th>
<td><?php echo html::select('builder', $users, $app->user->account, 'class="select-3"');?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->date;?></th>
<td><?php echo html::input('date', helper::today(), "class='text-3 date'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->scmPath;?></th>
<td><?php echo html::input('scmPath', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->filePath;?></th>
<td><?php echo html::input('filePath', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->desc;?></th>
<td><?php echo html::textarea('desc', '', "rows='5' class='area-1'");?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php echo html::submitButton() . html::resetButton();?></td></tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The create view of build module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<div class='yui-d0'>
<form method='post' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->build->create;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->build->product;?></th>
<td><?php echo html::select('product', $products, '', "class='select-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->name;?></th>
<td><?php echo html::input('name', '', "class='text-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->builder;?></th>
<td><?php echo html::select('builder', $users, $app->user->account, 'class="select-3"');?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->date;?></th>
<td><?php echo html::input('date', helper::today(), "class='text-3 date'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->scmPath;?></th>
<td><?php echo html::input('scmPath', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->filePath;?></th>
<td><?php echo html::input('filePath', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->desc;?></th>
<td><?php echo html::textarea('desc', '', "rows='5' class='area-1'");?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php echo html::submitButton() . html::resetButton();?></td></tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,63 +1,50 @@
<?php
/**
* The edit view of build module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<div class='yui-d0'>
<form method='post' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->build->edit;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->build->product;?></th>
<td><?php echo html::select('product', $products, $build->product, "class='select-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->name;?></th>
<td><?php echo html::input('name', $build->name, "class='text-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->builder;?></th>
<td><?php echo html::select('builder', $users, $app->user->account, 'class="select-3"');?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->date;?></th>
<td><?php echo html::input('date', $build->date, "class='text-3 date'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->scmPath;?></th>
<td><?php echo html::input('scmPath', $build->scmPath, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->filePath;?></th>
<td><?php echo html::input('filePath', $build->filePath, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->desc;?></th>
<td><?php echo html::textarea('desc', $build->desc, "rows='5' class='area-1'");?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php echo html::submitButton() . html::resetButton() .html::hidden('project', $build->project);?></td></tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The edit view of build module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<div class='yui-d0'>
<form method='post' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->build->edit;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->build->product;?></th>
<td><?php echo html::select('product', $products, $build->product, "class='select-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->name;?></th>
<td><?php echo html::input('name', $build->name, "class='text-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->builder;?></th>
<td><?php echo html::select('builder', $users, $app->user->account, 'class="select-3"');?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->date;?></th>
<td><?php echo html::input('date', $build->date, "class='text-3 date'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->scmPath;?></th>
<td><?php echo html::input('scmPath', $build->scmPath, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->filePath;?></th>
<td><?php echo html::input('filePath', $build->filePath, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->desc;?></th>
<td><?php echo html::textarea('desc', $build->desc, "rows='5' class='area-1'");?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php echo html::submitButton() . html::resetButton() .html::hidden('project', $build->project);?></td></tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,72 +1,59 @@
<?php
/**
* The view file of build module's view method of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<table class='table-1'>
<caption><?php echo $lang->build->view;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->build->product;?></th>
<td><?php echo $build->productName;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->name;?></th>
<td class='<?php if($build->deleted) echo 'deleted';?>'><?php echo $build->name;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->builder;?></th>
<td><?php echo $users[$build->builder];?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->date;?></th>
<td><?php echo $build->date;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->scmPath;?></th>
<td><?php strpos($build->scmPath, 'http') === 0 ? printf(html::a($build->scmPath)) : printf($build->scmPath);?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->filePath;?></th>
<td><?php strpos($build->filePath, 'http') === 0 ? printf(html::a($build->filePath)) : printf($build->filePath);?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->desc;?></th>
<td><?php echo nl2br($build->desc);?></td>
</tr>
</table>
<div class='a-center f-16px strong'>
<?php
$browseLink = $this->session->buildList ? $this->session->buildList : $this->createLink('project', 'build', "projectID=$build->project");
if(!$build->deleted)
{
common::printLink('build', 'edit', "buildID=$build->id", $lang->edit);
common::printLink('build', 'delete', "buildID=$build->id", $lang->delete, 'hiddenwin');
}
echo html::a($browseLink, $lang->goback);
?>
</div>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The view file of build module's view method of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<table class='table-1'>
<caption><?php echo $lang->build->view;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->build->product;?></th>
<td><?php echo $build->productName;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->name;?></th>
<td class='<?php if($build->deleted) echo 'deleted';?>'><?php echo $build->name;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->builder;?></th>
<td><?php echo $users[$build->builder];?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->date;?></th>
<td><?php echo $build->date;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->scmPath;?></th>
<td><?php strpos($build->scmPath, 'http') === 0 ? printf(html::a($build->scmPath)) : printf($build->scmPath);?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->filePath;?></th>
<td><?php strpos($build->filePath, 'http') === 0 ? printf(html::a($build->filePath)) : printf($build->filePath);?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->build->desc;?></th>
<td><?php echo nl2br($build->desc);?></td>
</tr>
</table>
<div class='a-center f-16px strong'>
<?php
$browseLink = $this->session->buildList ? $this->session->buildList : $this->createLink('project', 'build', "projectID=$build->project");
if(!$build->deleted)
{
common::printLink('build', 'edit', "buildID=$build->id", $lang->edit);
common::printLink('build', 'delete', "buildID=$build->id", $lang->delete, 'hiddenwin');
}
echo html::a($browseLink, $lang->goback);
?>
</div>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>

File diff suppressed because it is too large Load Diff

View File

@@ -1,118 +1,105 @@
<?php
/**
* The control file of company module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
class company extends control
{
/* 构造函数。*/
public function __construct()
{
parent::__construct();
$this->loadModel('dept');
$this->app->loadLang('user');
$this->company->setMenu();
}
/* 公司首页。*/
public function index()
{
$this->locate($this->createLink('company', 'browse'));
}
/* 浏览某一个公司。*/
public function browse($deptID = 0)
{
$this->lang->set('menugroup.company', 'company');
$childDeptIds = $this->dept->getAllChildID($deptID);
$this->company->setMenu($deptID);
$header['title'] = $this->lang->company->index . $this->lang->colon . $this->lang->dept->common;
$position[] = $this->lang->dept->common;
$this->view->header = $header;
$this->view->position = $position;
$this->view->users = $this->dept->getUsers($childDeptIds);
$this->view->deptTree = $this->dept->getTreeMenu($rooteDeptID = 0, array('deptModel', 'createMemberLink'));
$this->view->parentDepts = $this->dept->getParents($deptID);
$this->view->deptID = $deptID;
$this->display();
}
/* 新增一个公司。*/
public function create()
{
if(!empty($_POST))
{
$this->company->create();
if(dao::isError()) die(js::error(dao::getError()));
die(js::locate($this->createLink('admin', 'browsecompany'), 'parent'));
}
$this->lang->set('menugroup.company', 'admin');
$this->lang->company->menu = $this->lang->admin->menu;
$header['title'] = $this->lang->admin->common . $this->lang->colon . $this->lang->company->create;
$position[] = html::a($this->createLink('admin', 'browsecompany'), $this->lang->admin->company);
$position[] = $this->lang->company->create;
$this->view->header = $header;
$this->view->position = $position;
$this->display();
}
/* 编辑一个公司。*/
public function edit()
{
if(!empty($_POST))
{
$this->company->update();
if(dao::isError()) die(js::error(dao::getError()));
die(js::alert($this->lang->company->successSaved));
}
$header['title'] = $this->lang->company->common . $this->lang->colon . $this->lang->company->edit;
$position[] = $this->lang->company->edit;
$this->view->header = $header;
$this->view->position = $position;
$this->view->company = $this->company->getById($this->app->company->id);
$this->display();
}
/* 删除公司。*/
public function delete($companyID, $confirm = 'no')
{
if($confirm == 'no')
{
echo js::confirm($this->lang->company->confirmDelete, $this->createLink('company', 'delete', "companyID=$companyID&confirm=yes"));
exit;
}
else
{
$this->company->delete($companyID);
echo js::locate($this->createLink('admin', 'browseCompany'), 'parent');
exit;
}
}
}
<?php
/**
* The control file of company module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
class company extends control
{
/* 构造函数。*/
public function __construct()
{
parent::__construct();
$this->loadModel('dept');
$this->app->loadLang('user');
$this->company->setMenu();
}
/* 公司首页。*/
public function index()
{
$this->locate($this->createLink('company', 'browse'));
}
/* 浏览某一个公司。*/
public function browse($deptID = 0)
{
$this->lang->set('menugroup.company', 'company');
$childDeptIds = $this->dept->getAllChildID($deptID);
$this->company->setMenu($deptID);
$header['title'] = $this->lang->company->index . $this->lang->colon . $this->lang->dept->common;
$position[] = $this->lang->dept->common;
$this->view->header = $header;
$this->view->position = $position;
$this->view->users = $this->dept->getUsers($childDeptIds);
$this->view->deptTree = $this->dept->getTreeMenu($rooteDeptID = 0, array('deptModel', 'createMemberLink'));
$this->view->parentDepts = $this->dept->getParents($deptID);
$this->view->deptID = $deptID;
$this->display();
}
/* 新增一个公司。*/
public function create()
{
if(!empty($_POST))
{
$this->company->create();
if(dao::isError()) die(js::error(dao::getError()));
die(js::locate($this->createLink('admin', 'browsecompany'), 'parent'));
}
$this->lang->set('menugroup.company', 'admin');
$this->lang->company->menu = $this->lang->admin->menu;
$header['title'] = $this->lang->admin->common . $this->lang->colon . $this->lang->company->create;
$position[] = html::a($this->createLink('admin', 'browsecompany'), $this->lang->admin->company);
$position[] = $this->lang->company->create;
$this->view->header = $header;
$this->view->position = $position;
$this->display();
}
/* 编辑一个公司。*/
public function edit()
{
if(!empty($_POST))
{
$this->company->update();
if(dao::isError()) die(js::error(dao::getError()));
die(js::alert($this->lang->company->successSaved));
}
$header['title'] = $this->lang->company->common . $this->lang->colon . $this->lang->company->edit;
$position[] = $this->lang->company->edit;
$this->view->header = $header;
$this->view->position = $position;
$this->view->company = $this->company->getById($this->app->company->id);
$this->display();
}
/* 删除公司。*/
public function delete($companyID, $confirm = 'no')
{
if($confirm == 'no')
{
echo js::confirm($this->lang->company->confirmDelete, $this->createLink('company', 'delete', "companyID=$companyID&confirm=yes"));
exit;
}
else
{
$this->company->delete($companyID);
echo js::locate($this->createLink('admin', 'browseCompany'), 'parent');
exit;
}
}
}

View File

@@ -1,50 +1,37 @@
<?php
/**
* The company module English file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
$lang->company->common = 'Company';
$lang->company->index = "Index";
$lang->company->create = "Create";
$lang->company->edit = "Edit";
$lang->company->read = "Info";
$lang->company->update = "Update";
$lang->company->delete = "Delete";
$lang->company->browse = "User";
$lang->company->depts = "Dept";
$lang->company->orgView = 'Company';
$lang->company->confirmDelete = "Are you sure to delete this company?";
$lang->company->successSaved = "Success saved";
$lang->company->id = 'ID';
$lang->company->name = 'Name';
$lang->company->phone = 'Phone';
$lang->company->fax = 'Fax';
$lang->company->address = 'Address';
$lang->company->zipcode = 'Zipcode';
$lang->company->website = 'Web site';
$lang->company->backyard = 'Internal Site';
$lang->company->pms = 'ZenTaoPMS Site';
$lang->company->guest = 'Guest visit';
$lang->company->guestList[0] = 'Deny';
$lang->company->guestList[1] = 'Allow';
<?php
/**
* The company module English file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
$lang->company->common = 'Company';
$lang->company->index = "Index";
$lang->company->create = "Create";
$lang->company->edit = "Edit";
$lang->company->read = "Info";
$lang->company->update = "Update";
$lang->company->delete = "Delete";
$lang->company->browse = "User";
$lang->company->depts = "Dept";
$lang->company->orgView = 'Company';
$lang->company->confirmDelete = "Are you sure to delete this company?";
$lang->company->successSaved = "Success saved";
$lang->company->id = 'ID';
$lang->company->name = 'Name';
$lang->company->phone = 'Phone';
$lang->company->fax = 'Fax';
$lang->company->address = 'Address';
$lang->company->zipcode = 'Zipcode';
$lang->company->website = 'Web site';
$lang->company->backyard = 'Internal Site';
$lang->company->pms = 'ZenTaoPMS Site';
$lang->company->guest = 'Guest visit';
$lang->company->guestList[0] = 'Deny';
$lang->company->guestList[1] = 'Allow';

View File

@@ -1,50 +1,37 @@
<?php
/**
* The company module Japanese file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->company->common = '会社';
$lang->company->index = "インデックス";
$lang->company->create = "作成";
$lang->company->edit = "[編集]";
$lang->company->read = "情報";
$lang->company->update = "更新";
$lang->company->delete = "削除";
$lang->company->browse = "ユーザー";
$lang->company->depts = "";
$lang->company->orgView = '会社';
$lang->company->confirmDelete = "あなたがこの会社を削除しますか?";
$lang->company->successSaved = "成功を保存";
$lang->company->id = 'IDは';
$lang->company->name = '名';
$lang->company->phone = '電話';
$lang->company->fax = 'ファックス';
$lang->company->address = 'アドレス';
$lang->company->zipcode = '郵便番号';
$lang->company->website = 'ウェブサイト';
$lang->company->backyard = '内部部位';
$lang->company->pms = 'ZenTaoPMSサイト';
$lang->company->guest = 'ユーザー訪問';
$lang->company->guestList[0] = '許可';
$lang->company->guestList[1] = '拒否';
<?php
/**
* The company module Japanese file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->company->common = '会社';
$lang->company->index = "インデックス";
$lang->company->create = "作成";
$lang->company->edit = "[編集]";
$lang->company->read = "情報";
$lang->company->update = "更新";
$lang->company->delete = "削除";
$lang->company->browse = "ユーザー";
$lang->company->depts = "";
$lang->company->orgView = '会社';
$lang->company->confirmDelete = "あなたがこの会社を削除しますか?";
$lang->company->successSaved = "成功を保存";
$lang->company->id = 'IDは';
$lang->company->name = '名';
$lang->company->phone = '電話';
$lang->company->fax = 'ファックス';
$lang->company->address = 'アドレス';
$lang->company->zipcode = '郵便番号';
$lang->company->website = 'ウェブサイト';
$lang->company->backyard = '内部部位';
$lang->company->pms = 'ZenTaoPMSサイト';
$lang->company->guest = 'ユーザー訪問';
$lang->company->guestList[0] = '許可';
$lang->company->guestList[1] = '拒否';

View File

@@ -1,50 +1,37 @@
<?php
/**
* The company module Korean file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->company->common = '회사';
$lang->company->index = "색인";
$lang->company->create = "만들기";
$lang->company->edit = "편집";
$lang->company->read = "정보";
$lang->company->update = "업데이트";
$lang->company->delete = "삭제";
$lang->company->browse = "사용자";
$lang->company->depts = "학과";
$lang->company->orgView = '회사';
$lang->company->confirmDelete = "당신이이 회사를 삭제하시겠습니까?";
$lang->company->successSaved = "성공 저장";
$lang->company->id = '신분증';
$lang->company->name = '이름';
$lang->company->phone = '전화';
$lang->company->fax = '팩스';
$lang->company->address = '주소';
$lang->company->zipcode = '우편 번호';
$lang->company->website = '웹 사이트';
$lang->company->backyard = '내부 사이트';
$lang->company->pms = 'ZenTaoPMS 사이트';
$lang->company->guest = '손님 방문';
$lang->company->guestList[0] = '허용';
$lang->company->guestList[1] = '거부';
<?php
/**
* The company module Korean file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->company->common = '회사';
$lang->company->index = "색인";
$lang->company->create = "만들기";
$lang->company->edit = "편집";
$lang->company->read = "정보";
$lang->company->update = "업데이트";
$lang->company->delete = "삭제";
$lang->company->browse = "사용자";
$lang->company->depts = "학과";
$lang->company->orgView = '회사';
$lang->company->confirmDelete = "당신이이 회사를 삭제하시겠습니까?";
$lang->company->successSaved = "성공 저장";
$lang->company->id = '신분증';
$lang->company->name = '이름';
$lang->company->phone = '전화';
$lang->company->fax = '팩스';
$lang->company->address = '주소';
$lang->company->zipcode = '우편 번호';
$lang->company->website = '웹 사이트';
$lang->company->backyard = '내부 사이트';
$lang->company->pms = 'ZenTaoPMS 사이트';
$lang->company->guest = '손님 방문';
$lang->company->guestList[0] = '허용';
$lang->company->guestList[1] = '거부';

View File

@@ -1,50 +1,37 @@
<?php
/**
* The company module zh-cn file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
$lang->company->common = '组织视图';
$lang->company->index = "组织视图首页";
$lang->company->create = "新增公司";
$lang->company->edit = "编辑公司";
$lang->company->read = "公司信息";
$lang->company->update = "更新公司";
$lang->company->delete = "删除公司";
$lang->company->browse = "用户列表";
$lang->company->depts = "部门列表";
$lang->company->orgView = '组织视图';
$lang->company->confirmDelete = "您确定删除该公司吗?";
$lang->company->successSaved = "成功保存";
$lang->company->id = '编号';
$lang->company->name = '公司名称';
$lang->company->phone = '联系电话';
$lang->company->fax = '传真';
$lang->company->address = '通讯地址';
$lang->company->zipcode = '邮政编码';
$lang->company->website = '公司网站';
$lang->company->backyard = '公司内网';
$lang->company->pms = 'PMS网站';
$lang->company->guest = '匿名登录';
$lang->company->guestList[0] = '不允许';
$lang->company->guestList[1] = '允许';
<?php
/**
* The company module zh-cn file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
$lang->company->common = '组织视图';
$lang->company->index = "组织视图首页";
$lang->company->create = "新增公司";
$lang->company->edit = "编辑公司";
$lang->company->read = "公司信息";
$lang->company->update = "更新公司";
$lang->company->delete = "删除公司";
$lang->company->browse = "用户列表";
$lang->company->depts = "部门列表";
$lang->company->orgView = '组织视图';
$lang->company->confirmDelete = "您确定删除该公司吗?";
$lang->company->successSaved = "成功保存";
$lang->company->id = '编号';
$lang->company->name = '公司名称';
$lang->company->phone = '联系电话';
$lang->company->fax = '传真';
$lang->company->address = '通讯地址';
$lang->company->zipcode = '邮政编码';
$lang->company->website = '公司网站';
$lang->company->backyard = '公司内网';
$lang->company->pms = 'PMS网站';
$lang->company->guest = '匿名登录';
$lang->company->guestList[0] = '不允许';
$lang->company->guestList[1] = '允许';

View File

@@ -1,50 +1,37 @@
<?php
/**
* The company module zh-tw file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->company->common = '組織視圖';
$lang->company->index = "組織視圖首頁";
$lang->company->create = "新增公司";
$lang->company->edit = "編輯公司";
$lang->company->read = "公司信息";
$lang->company->update = "更新公司";
$lang->company->delete = "刪除公司";
$lang->company->browse = "用戶列表";
$lang->company->depts = "部門列表";
$lang->company->orgView = '組織視圖';
$lang->company->confirmDelete = "您確定刪除該公司嗎?";
$lang->company->successSaved = "成功保存";
$lang->company->id = '編號';
$lang->company->name = '公司名稱';
$lang->company->phone = '聯繫電話';
$lang->company->fax = '傳真';
$lang->company->address = '通訊地址';
$lang->company->zipcode = '郵政編碼';
$lang->company->website = '公司網站';
$lang->company->backyard = '公司內網';
$lang->company->pms = 'PMS網站';
$lang->company->guest = '匿名登錄';
$lang->company->guestList[0] = '不允許';
$lang->company->guestList[1] = '允許';
<?php
/**
* The company module zh-tw file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->company->common = '組織視圖';
$lang->company->index = "組織視圖首頁";
$lang->company->create = "新增公司";
$lang->company->edit = "編輯公司";
$lang->company->read = "公司信息";
$lang->company->update = "更新公司";
$lang->company->delete = "刪除公司";
$lang->company->browse = "用戶列表";
$lang->company->depts = "部門列表";
$lang->company->orgView = '組織視圖';
$lang->company->confirmDelete = "您確定刪除該公司嗎?";
$lang->company->successSaved = "成功保存";
$lang->company->id = '編號';
$lang->company->name = '公司名稱';
$lang->company->phone = '聯繫電話';
$lang->company->fax = '傳真';
$lang->company->address = '通訊地址';
$lang->company->zipcode = '郵政編碼';
$lang->company->website = '公司網站';
$lang->company->backyard = '公司內網';
$lang->company->pms = 'PMS網站';
$lang->company->guest = '匿名登錄';
$lang->company->guestList[0] = '不允許';
$lang->company->guestList[1] = '允許';

View File

@@ -1,97 +1,84 @@
<?php
/**
* The model file of company module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class companyModel extends model
{
/* 设置菜单。*/
public function setMenu($dept = 0)
{
common::setMenuVars($this->lang->company->menu, 'name', array($this->app->company->name));
common::setMenuVars($this->lang->company->menu, 'addUser', array($dept));
}
/* 获得公司列表。*/
public function getList()
{
return $this->dao->select('*')->from(TABLE_COMPANY)->fetchAll();
}
/* 获得第一个公司。*/
public function getFirst()
{
return $this->dao->select('*')->from(TABLE_COMPANY)->orderBy('id')->limit(1)->fetch();
}
/**
* 通过域名查找公司信息。
*
* @param string $domain 访问的域名如果为空则取HTTP_HOST变量。
* @access public
* @return object
*/
public function getByDomain($domain = '')
{
if(empty($domain)) $domain = $_SERVER['HTTP_HOST'];
return $this->dao->findByPMS($domain)->from(TABLE_COMPANY)->fetch();
}
/* 通过id获取公司信息。*/
public function getByID($companyID = '')
{
return $this->dao->findById((int)$companyID)->from(TABLE_COMPANY)->fetch();
}
/* 新增一个公司。*/
public function create()
{
$company = fixer::input('post')->get();
$this->dao->insert(TABLE_COMPANY)
->data($company)
->autoCheck()
->batchCheck($this->config->company->create->requiredFields, 'notempty')
->batchCheck('name,pms', 'unique')
->exec();
}
/* 更新一个公司信息。*/
public function update()
{
$company = fixer::input('post')->get();
$companyID = $this->app->company->id;
$this->dao->update(TABLE_COMPANY)
->data($company)
->autoCheck()
->batchCheck($this->config->company->edit->requiredFields, 'notempty')
->batchCheck('name,pms', 'unique', "id != '$companyID'")
->where('id')->eq($companyID)
->exec();
}
/* 删除一个公司。*/
public function delete($companyID)
{
return $this->dao->delete()->from(TABLE_COMPANY)->where('id')->eq((int)$companyID)->limit(1)->exec();
}
}
<?php
/**
* The model file of company module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class companyModel extends model
{
/* 设置菜单。*/
public function setMenu($dept = 0)
{
common::setMenuVars($this->lang->company->menu, 'name', array($this->app->company->name));
common::setMenuVars($this->lang->company->menu, 'addUser', array($dept));
}
/* 获得公司列表。*/
public function getList()
{
return $this->dao->select('*')->from(TABLE_COMPANY)->fetchAll();
}
/* 获得第一个公司。*/
public function getFirst()
{
return $this->dao->select('*')->from(TABLE_COMPANY)->orderBy('id')->limit(1)->fetch();
}
/**
* 通过域名查找公司信息。
*
* @param string $domain 访问的域名如果为空则取HTTP_HOST变量。
* @access public
* @return object
*/
public function getByDomain($domain = '')
{
if(empty($domain)) $domain = $_SERVER['HTTP_HOST'];
return $this->dao->findByPMS($domain)->from(TABLE_COMPANY)->fetch();
}
/* 通过id获取公司信息。*/
public function getByID($companyID = '')
{
return $this->dao->findById((int)$companyID)->from(TABLE_COMPANY)->fetch();
}
/* 新增一个公司。*/
public function create()
{
$company = fixer::input('post')->get();
$this->dao->insert(TABLE_COMPANY)
->data($company)
->autoCheck()
->batchCheck($this->config->company->create->requiredFields, 'notempty')
->batchCheck('name,pms', 'unique')
->exec();
}
/* 更新一个公司信息。*/
public function update()
{
$company = fixer::input('post')->get();
$companyID = $this->app->company->id;
$this->dao->update(TABLE_COMPANY)
->data($company)
->autoCheck()
->batchCheck($this->config->company->edit->requiredFields, 'notempty')
->batchCheck('name,pms', 'unique', "id != '$companyID'")
->where('id')->eq($companyID)
->exec();
}
/* 删除一个公司。*/
public function delete($companyID)
{
return $this->dao->delete()->from(TABLE_COMPANY)->where('id')->eq((int)$companyID)->limit(1)->exec();
}
}

View File

@@ -1,89 +1,76 @@
<?php
/**
* The browse view file of product dept of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
include '../../common/view/header.html.php';
include '../../common/view/treeview.html.php';
include '../../common/view/tablesorter.html.php';
?>
<div class="yui-d0 yui-t1">
<div class="yui-main">
<div class="yui-b">
<table class='table-1 tablesorter'>
<thead>
<tr class='colhead'>
<th class='w-id'><?php echo $lang->idAB;?></th>
<th><?php echo $lang->user->realname;?></th>
<th><?php echo $lang->user->account;?></th>
<?php // echo $lang->user->nickname;?>
<th><?php echo $lang->user->email;?></th>
<th><?php echo $lang->user->gendar;?></th>
<th><?php echo $lang->user->phone;?></th>
<th><?php echo $lang->user->join;?></th>
<th><?php echo $lang->user->visits;?></th>
<th><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php foreach($users as $user):?>
<tr class='a-center'>
<td><?php echo $user->id;?></td>
<td><?php if(!common::printLink('user', 'view', "account=$user->account", $user->realname)) echo $user->realname;?></td>
<td><?php echo $user->account;?></td>
<?php // echo $user->nickname;?>
<td><?php echo html::mailto($user->email);?></td>
<td><?php if(isset($lang->user->gendarList->{$user->gendar})) echo $lang->user->gendarList->{$user->gendar};?></td>
<td><?php echo $user->phone;?></td>
<td><?php echo $user->join;?></td>
<td><?php echo $user->visits;?></td>
<td>
<?php
common::printLink('user', 'edit', "userID=$user->id&from=company", $lang->edit);
common::printLink('user', 'delete', "userID=$user->id", $lang->delete, "hiddenwin");
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
</div>
<div class="yui-b">
<div class='box-title'><?php echo $lang->dept->common;?></div>
<div class='box-content'>
<?php echo $deptTree;?>
<div class='a-right'>
<?php
common::printLink('user', 'create', "dept=$deptID&from=company", $lang->user->create);echo '<br />';
common::printLink('company', 'browse', '', $lang->user->allUsers); echo '<br />';
common::printLink('dept', 'browse', '', $lang->dept->manage);
?>
</div>
</div>
</div>
</div>
<script lanugage='Javascript'>$('#dept<?php echo $deptID;?>').addClass('active');</script>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The browse view file of product dept of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
include '../../common/view/header.html.php';
include '../../common/view/treeview.html.php';
include '../../common/view/tablesorter.html.php';
?>
<div class="yui-d0 yui-t1">
<div class="yui-main">
<div class="yui-b">
<table class='table-1 tablesorter'>
<thead>
<tr class='colhead'>
<th class='w-id'><?php echo $lang->idAB;?></th>
<th><?php echo $lang->user->realname;?></th>
<th><?php echo $lang->user->account;?></th>
<?php // echo $lang->user->nickname;?>
<th><?php echo $lang->user->email;?></th>
<th><?php echo $lang->user->gendar;?></th>
<th><?php echo $lang->user->phone;?></th>
<th><?php echo $lang->user->join;?></th>
<th><?php echo $lang->user->visits;?></th>
<th><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php foreach($users as $user):?>
<tr class='a-center'>
<td><?php echo $user->id;?></td>
<td><?php if(!common::printLink('user', 'view', "account=$user->account", $user->realname)) echo $user->realname;?></td>
<td><?php echo $user->account;?></td>
<?php // echo $user->nickname;?>
<td><?php echo html::mailto($user->email);?></td>
<td><?php if(isset($lang->user->gendarList->{$user->gendar})) echo $lang->user->gendarList->{$user->gendar};?></td>
<td><?php echo $user->phone;?></td>
<td><?php echo $user->join;?></td>
<td><?php echo $user->visits;?></td>
<td>
<?php
common::printLink('user', 'edit', "userID=$user->id&from=company", $lang->edit);
common::printLink('user', 'delete', "userID=$user->id", $lang->delete, "hiddenwin");
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
</div>
<div class="yui-b">
<div class='box-title'><?php echo $lang->dept->common;?></div>
<div class='box-content'>
<?php echo $deptTree;?>
<div class='a-right'>
<?php
common::printLink('user', 'create', "dept=$deptID&from=company", $lang->user->create);echo '<br />';
common::printLink('company', 'browse', '', $lang->user->allUsers); echo '<br />';
common::printLink('dept', 'browse', '', $lang->dept->manage);
?>
</div>
</div>
</div>
</div>
<script lanugage='Javascript'>$('#dept<?php echo $deptID;?>').addClass('active');</script>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,70 +1,57 @@
<?php
/**
* The create view of company module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' target='hiddenwin'>
<table align='center' class='table-5'>
<caption><?php echo $lang->company->create;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->company->name;?></th>
<td><?php echo html::input('name', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->phone;?></th>
<td><?php echo html::input('phone', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->fax;?></th>
<td><?php echo html::input('fax', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->address;?></th>
<td><?php echo html::input('address', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->zipcode;?></th>
<td><?php echo html::input('zipcode', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->website;?></th>
<td><?php echo html::input('website', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->backyard;?></th>
<td><?php echo html::input('backyard', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->pms;?></th>
<td><?php echo html::input('pms', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->guest;?></th>
<td><?php echo html::radio('guest', $lang->company->guestList);?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php echo html::submitButton();?></td></tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The create view of company module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' target='hiddenwin'>
<table align='center' class='table-5'>
<caption><?php echo $lang->company->create;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->company->name;?></th>
<td><?php echo html::input('name', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->phone;?></th>
<td><?php echo html::input('phone', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->fax;?></th>
<td><?php echo html::input('fax', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->address;?></th>
<td><?php echo html::input('address', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->zipcode;?></th>
<td><?php echo html::input('zipcode', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->website;?></th>
<td><?php echo html::input('website', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->backyard;?></th>
<td><?php echo html::input('backyard', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->pms;?></th>
<td><?php echo html::input('pms', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->guest;?></th>
<td><?php echo html::radio('guest', $lang->company->guestList);?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php echo html::submitButton();?></td></tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,70 +1,57 @@
<?php
/**
* The edit view of company module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' target='hiddenwin'>
<table align='center' class='table-5'>
<caption><?php echo $lang->company->edit;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->company->name;?></th>
<td><?php echo html::input('name', $company->name, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->phone;?></th>
<td><?php echo html::input('phone', $company->phone, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->fax;?></th>
<td><?php echo html::input('fax', $company->fax, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->address;?></th>
<td><?php echo html::input('address', $company->address, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->zipcode;?></th>
<td><?php echo html::input('zipcode', $company->zipcode, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->website;?></th>
<td><?php echo html::input('website', $company->website, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->backyard;?></th>
<td><?php echo html::input('backyard', $company->backyard, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->pms;?></th>
<td><?php echo html::input('pms', $company->pms, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->guest;?></th>
<td><?php echo html::radio('guest', $lang->company->guestList, $company->guest);?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php echo html::submitButton();?></td></tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The edit view of company module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' target='hiddenwin'>
<table align='center' class='table-5'>
<caption><?php echo $lang->company->edit;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->company->name;?></th>
<td><?php echo html::input('name', $company->name, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->phone;?></th>
<td><?php echo html::input('phone', $company->phone, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->fax;?></th>
<td><?php echo html::input('fax', $company->fax, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->address;?></th>
<td><?php echo html::input('address', $company->address, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->zipcode;?></th>
<td><?php echo html::input('zipcode', $company->zipcode, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->website;?></th>
<td><?php echo html::input('website', $company->website, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->backyard;?></th>
<td><?php echo html::input('backyard', $company->backyard, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->pms;?></th>
<td><?php echo html::input('pms', $company->pms, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->guest;?></th>
<td><?php echo html::radio('guest', $lang->company->guestList, $company->guest);?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php echo html::submitButton();?></td></tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,125 +1,112 @@
<?php
/**
* The control file of convert currentModule of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
class convert extends control
{
/* 安装程序首页。*/
public function index()
{
$this->convert->saveState();
$this->view->header->title = $this->lang->convert->common;
$this->display();
}
/* 选择系统。*/
public function selectSource()
{
$this->view->header->title = $this->lang->convert->common . $this->lang->colon;
$this->display();
}
/* 转换参数设置。*/
public function setConfig()
{
if(!$this->post->source)
{
echo js::alert($this->lang->convert->mustSelectSource);
die(js::locate('back'));
}
list($sourceName, $version) = explode('_', $this->post->source);
$setFunc = "set$sourceName";
$this->view->header->title = $this->lang->convert->setting;
$this->view->source = $sourceName;
$this->view->version = $version;
$this->view->setting = $this->fetch('convert', $setFunc, "version=$version");
$this->display();
}
/* BugFree的设置界面。*/
public function setBugFree($version)
{
$this->view->source = 'BugFree';
$this->view->version = $version;
$this->view->tablePrefix = $version > 1 ? 'bf_' : '';
$this->view->dbName = $version > 1 ? 'bugfree2' : 'BugFree';
$this->view->dbCharset = 'utf8';
$this->display();
}
/* 检查配置。*/
public function checkConfig()
{
$checkFunc = 'check' . $this->post->source;
$this->view->header->title = $this->lang->convert->checkConfig;
$this->view->source = $this->post->source;
$this->view->checkResult = $this->fetch('convert', $checkFunc, "version={$this->post->version}");
$this->display();
}
/* 检查BugFree的设置。*/
public function checkBugFree($version)
{
helper::import('./converter/bugfree.php');
$converter = new bugfreeConvertModel();
/* 分别检查数据库、表和安装路径。*/
$checkInfo['db'] = $converter->connectDB();
//if(is_object($checkInfo['db'])) $checkInfo['table'] = $converter->checkTables();
$checkInfo['path'] = $converter->checkPath();
/* 计算检查结果。*/
$result = 'pass';
if(!is_object($checkInfo['db']) or !$checkInfo['path']) $result = 'fail';
/* 赋值。*/
$this->view->version = $version;
$this->view->source = 'bugfree';
$this->view->result = $result;
$this->view->checkInfo = $checkInfo;
$this->display();
}
/* 执行转换。*/
public function execute()
{
$convertFunc = 'convert' . $this->post->source;
$this->view->header->title = $this->lang->convert->execute;
$this->view->source = $this->post->source;
$this->view->version = $this->post->version;
$this->view->executeResult = $this->fetch('convert', $convertFunc, "version={$this->post->version}");
$this->display();
}
/* 转换BugFree。*/
public function convertBugFree($version)
{
helper::import('./converter/bugfree.php');
helper::import("./converter/bugfree$version.php");
$className = "bugfree{$version}ConvertModel";
$converter = new $className();
$this->view->version = $version;
$this->view->result = $converter->execute($version);
$this->view->info = bugfreeConvertModel::$info;
$this->display();
}
}
<?php
/**
* The control file of convert currentModule of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
class convert extends control
{
/* 安装程序首页。*/
public function index()
{
$this->convert->saveState();
$this->view->header->title = $this->lang->convert->common;
$this->display();
}
/* 选择系统。*/
public function selectSource()
{
$this->view->header->title = $this->lang->convert->common . $this->lang->colon;
$this->display();
}
/* 转换参数设置。*/
public function setConfig()
{
if(!$this->post->source)
{
echo js::alert($this->lang->convert->mustSelectSource);
die(js::locate('back'));
}
list($sourceName, $version) = explode('_', $this->post->source);
$setFunc = "set$sourceName";
$this->view->header->title = $this->lang->convert->setting;
$this->view->source = $sourceName;
$this->view->version = $version;
$this->view->setting = $this->fetch('convert', $setFunc, "version=$version");
$this->display();
}
/* BugFree的设置界面。*/
public function setBugFree($version)
{
$this->view->source = 'BugFree';
$this->view->version = $version;
$this->view->tablePrefix = $version > 1 ? 'bf_' : '';
$this->view->dbName = $version > 1 ? 'bugfree2' : 'BugFree';
$this->view->dbCharset = 'utf8';
$this->display();
}
/* 检查配置。*/
public function checkConfig()
{
$checkFunc = 'check' . $this->post->source;
$this->view->header->title = $this->lang->convert->checkConfig;
$this->view->source = $this->post->source;
$this->view->checkResult = $this->fetch('convert', $checkFunc, "version={$this->post->version}");
$this->display();
}
/* 检查BugFree的设置。*/
public function checkBugFree($version)
{
helper::import('./converter/bugfree.php');
$converter = new bugfreeConvertModel();
/* 分别检查数据库、表和安装路径。*/
$checkInfo['db'] = $converter->connectDB();
//if(is_object($checkInfo['db'])) $checkInfo['table'] = $converter->checkTables();
$checkInfo['path'] = $converter->checkPath();
/* 计算检查结果。*/
$result = 'pass';
if(!is_object($checkInfo['db']) or !$checkInfo['path']) $result = 'fail';
/* 赋值。*/
$this->view->version = $version;
$this->view->source = 'bugfree';
$this->view->result = $result;
$this->view->checkInfo = $checkInfo;
$this->display();
}
/* 执行转换。*/
public function execute()
{
$convertFunc = 'convert' . $this->post->source;
$this->view->header->title = $this->lang->convert->execute;
$this->view->source = $this->post->source;
$this->view->version = $this->post->version;
$this->view->executeResult = $this->fetch('convert', $convertFunc, "version={$this->post->version}");
$this->display();
}
/* 转换BugFree。*/
public function convertBugFree($version)
{
helper::import('./converter/bugfree.php');
helper::import("./converter/bugfree$version.php");
$className = "bugfree{$version}ConvertModel";
$converter = new $className();
$this->view->version = $version;
$this->view->result = $converter->execute($version);
$this->view->info = bugfreeConvertModel::$info;
$this->display();
}
}

View File

@@ -1,69 +1,56 @@
<?php
/**
* The baisc model file of bugfree convert of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
class bugfreeConvertModel extends convertModel
{
public $map = array();
public $filePath = '';
static public $info = array();
/* 构造函数,连接到数据库。*/
public function __construct()
{
parent::__construct();
parent::connectDB();
}
/* 检查Tables。*/
public function checkTables()
{
return true;
}
/* 检查安装路径。*/
public function checkPath()
{
$this->setPath();
return file_exists($this->filePath);
}
/* 设置附件路径。*/
public function setPath()
{
$this->filePath = realpath($this->post->installPath) . $this->app->getPathFix() . 'BugFile' . $this->app->getPathFix();
}
/* 执行转换。*/
public function execute($version)
{
}
/* 清空导入之后的数据。*/
public function clear()
{
foreach($this->session->state as $table => $maxID)
{
$this->dao->dbh($this->dbh)->delete()->from($table)->where('id')->gt($maxID)->exec();
}
}
}
<?php
/**
* The baisc model file of bugfree convert of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
class bugfreeConvertModel extends convertModel
{
public $map = array();
public $filePath = '';
static public $info = array();
/* 构造函数,连接到数据库。*/
public function __construct()
{
parent::__construct();
parent::connectDB();
}
/* 检查Tables。*/
public function checkTables()
{
return true;
}
/* 检查安装路径。*/
public function checkPath()
{
$this->setPath();
return file_exists($this->filePath);
}
/* 设置附件路径。*/
public function setPath()
{
$this->filePath = realpath($this->post->installPath) . $this->app->getPathFix() . 'BugFile' . $this->app->getPathFix();
}
/* 执行转换。*/
public function execute($version)
{
}
/* 清空导入之后的数据。*/
public function clear()
{
foreach($this->session->state as $table => $maxID)
{
$this->dao->dbh($this->dbh)->delete()->from($table)->where('id')->gt($maxID)->exec();
}
}
}

View File

@@ -1,290 +1,277 @@
<?php
/**
* The model file of bugfree version 1 convert of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
class bugfree1ConvertModel extends bugfreeConvertModel
{
/* 执行转换。*/
public function execute()
{
$this->clear();
$this->convertGroup();
$result['users'] = $this->convertUser();
$result['projects'] = $this->convertProject();
$result['modules'] = $this->convertModule();
$result['bugs'] = $this->convertBug();
$result['actions'] = $this->convertAction();
$result['files'] = $this->convertFile();
$this->dao->dbh($this->dbh);
$this->loadModel('tree')->fixModulePath();
return $result;
}
/* 转换用户分组。*/
public function convertGroup()
{
$groups = $this->dao->dbh($this->sourceDBH)
->select("groupID AS id, groupName AS name, groupUser AS users")
->from('BugGroup')
->fetchAll('id', $autoCompany = false);
foreach($groups as $groupID => $group)
{
/* 将分组用户拆分成数组。*/
$groupUsers = explode(',', $group->users);
unset($group->id);
unset($group->users);
/* 插入到group表中。*/
$this->dao->dbh($this->dbh)->insert(TABLE_GROUP)->data($group)->exec();
$zentaoGroupID = $this->dao->lastInsertId();
/* 设置账户和group的对应关系。*/
foreach($groupUsers as $account)
{
if(empty($account)) continue;
$this->dao->dbh($this->dbh)->insert(TABLE_USERGROUP)->set('`group`')->eq($zentaoGroupID)->set('account')->eq($account)->exec();
}
}
}
/* 转换用户。*/
public function convertUser()
{
/* 查询当前系统中存在的用户。*/
$activeUsers = $this->dao
->dbh($this->sourceDBH)
->select("username AS account, userpassword AS password, realname, email")
->from('BugUser')
->orderBy('userID ASC')
->fetchAll('account', $autoCompany = false);
/* 查找曾经出现过的用户。*/
$allUsers = $this->dao->select("distinct(username) AS account")->from('BugHistory')->fetchPairs('', '', $autoCompany = false);
/* 合并二者。*/
foreach($allUsers as $key => $account)
{
if(isset($activeUsers[$account]))
{
$allUsers[$key] = $activeUsers[$account];
}
else
{
$allUsers[$key] = array('account' => $account, 'realname' => $account, 'deleted' => '1');
}
}
foreach($activeUsers as $account => $user) if(!isset($allUsers[$account])) $allUsers[$account] = $user;
/* 导入到zentao数据库中。*/
$convertCount = 0;
foreach($allUsers as $account => $user)
{
if(!$this->dao->dbh($this->dbh)->findByAccount($account)->from(TABLE_USER)->fetch('account'))
{
$this->dao->dbh($this->dbh)->insert(TABLE_USER)->data($user)->exec();
$convertCount ++;
}
else
{
self::$info['users'][] = sprintf($this->lang->convert->errorUserExists, $account);
}
}
return $convertCount;
}
/* 转换项目为产品。*/
public function convertProject()
{
$projects = $this->dao->dbh($this->sourceDBH)->select("projectID AS id, projectName AS name")->from('BugProject')->fetchAll('id', $autoCompany = false);
foreach($projects as $projectID => $project)
{
unset($project->id);
$this->dao->dbh($this->dbh)->insert(TABLE_PRODUCT)->data($project)->exec();
$this->map['product'][$projectID] = $this->dao->lastInsertID();
}
return count($projects);
}
/* 转换原来的模块为Bug视图模块。*/
public function convertModule()
{
$this->map['module'][0] = 0;
$modules = $this->dao
->dbh($this->sourceDBH)
->select(
'moduleID AS id,
projectID AS root,
moduleName AS name,
moduleGrade AS grade,
parentID AS parent,
"bug" AS type')
->from('BugModule')
->orderBy('id ASC')
->fetchAll('id', $autoCompany = false);
foreach($modules as $moduleID => $module)
{
$module->root = $this->map['product'][$module->root];
unset($module->id);
$this->dao->dbh($this->dbh)->insert(TABLE_MODULE)->data($module)->exec();
$this->map['module'][$moduleID] = $this->dao->lastInsertID();
}
/* 更新parent。*/
foreach($modules as $oldModuleID => $module)
{
$newModuleID = $this->map['module'][$oldModuleID];
$newParentID = $this->map['module'][$module->parent];
$this->dao->dbh($this->dbh)->update(TABLE_MODULE)->set('parent')->eq($newParentID)->where('id')->eq($newModuleID)->exec();
}
return count($modules);
}
/* 转换Bug。*/
public function convertBug()
{
$bugs = $this->dao
->dbh($this->sourceDBH)
->select('
bugID AS id,
projectID AS product,
moduleID AS module,
bugTitle AS title,
bugSeverity AS severity,
bugType AS type,
bugOS AS os,
bugStatus AS status,
mailto,
openedBy, openedDate, openedBuild,
assignedTo, assignedDate,
resolvedBy, resolution, resolvedBuild, resolvedDate,
closedBy, closedDate,
lastEditedBy, lastEditedDate,
linkID as duplicateBug
')
->from('BugInfo')
->orderBy('bugID')
->fetchAll('id', $autoCompany = false);
foreach($bugs as $bugID => $bug)
{
/* 修正Bug数据。*/
$bugID = (int)$bugID;
unset($bug->id);
if($bug->assignedTo == 'Closed') $bug->assignedTo = 'closed';
$bug->type = strtolower($bug->type);
$bug->os = strtolower($bug->os);
$bug->browser = 'all';
$bug->resolution = str_replace(' ','', strtolower($bug->resolution));
$bug->product = $this->map['product'][$bug->product];
$bug->module = $this->map['module'][$bug->module];
$this->dao->dbh($this->dbh)->insert(TABLE_BUG)->data($bug)->exec();
$this->map['bug'][$bugID] = $this->dao->lastInsertID();
}
/* 更新duplicateBug。 */
foreach($this->map['bug'] as $oldBugID => $newBugID)
{
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('duplicateBug')->eq($newBugID)->where('duplicateBug')->eq($oldBugID)->exec();
}
return count($bugs);
}
/* 转换历史记录。*/
public function convertAction()
{
$actions = $this->dao
->dbh($this->sourceDBH)
->select("
'bug' AS objectType,
bugID AS objectID,
userName AS actor,
action,
fullInfo AS comment,
actionDate AS date")
->from('BugHistory')
->orderBy('bugID, historyID')
->fetchGroup('objectID', '', $autoCompany = false);
$convertCount = 0;
foreach($actions as $bugID => $bugActions)
{
/* 获得转换之后的bugID。*/
$bugID = (int)$bugID;
$zentaoBugID = $this->map['bug'][$bugID];
/* 处理action。*/
foreach($bugActions as $key => $action)
{
$action->objectID = $zentaoBugID;
if($key == 0)
{
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('steps')->eq($action->comment)->where('id')->eq($zentaoBugID)->exec();
$action->comment = '';
}
$this->dao->dbh($this->dbh)->insert(TABLE_ACTION)->data($action)->exec();
$convertCount ++;
}
}
return $convertCount;
}
/* 转换附件。*/
public function convertFile()
{
$this->setPath();
$files = $this->dao->dbh($this->sourceDBH)
->select("
fileName AS pathname,
fileTitle AS title,
fileType AS extension,
fileSize AS size,
'bug' AS objectType,
bugID AS objectID,
addUser AS addedBy,
addDate AS addedDate
")
->from('BugFile')
->orderBy('fileID')
->fetchAll('', $autoCompany = false);
foreach($files as $file)
{
$file->objectID = $this->map['bug'][(int)$file->objectID];
if(strpos($file->size, 'KB')) $file->size = (int)(str_replace('KB', '', $file->size) * 1024);
if(strpos($file->size, 'MB')) $file->size = (int)(str_replace('MB', '', $file->size) * 1024 * 1024);
$this->dao->dbh($this->dbh)->insert(TABLE_FILE)->data($file)->exec();
/* 拷贝文件。*/
$soureFile = $this->filePath . $file->pathname;
if(!file_exists($soureFile))
{
self::$info['files'][] = sprintf($this->lang->convert->errorFileNotExits, $soureFile);
continue;
}
$targetFile = $this->app->getAppRoot() . "www/data/upload/{$this->app->company->id}/" . $file->pathname;
$targetPath = dirname($targetFile);
if(!is_dir($targetPath)) mkdir($targetPath, 0777, true);
if(!copy($soureFile, $targetFile))
{
self::$info['files'][] = sprintf($this->lang->convert->errorCopyFailed, $targetFile);
}
}
return count($files);
}
}
<?php
/**
* The model file of bugfree version 1 convert of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
class bugfree1ConvertModel extends bugfreeConvertModel
{
/* 执行转换。*/
public function execute()
{
$this->clear();
$this->convertGroup();
$result['users'] = $this->convertUser();
$result['projects'] = $this->convertProject();
$result['modules'] = $this->convertModule();
$result['bugs'] = $this->convertBug();
$result['actions'] = $this->convertAction();
$result['files'] = $this->convertFile();
$this->dao->dbh($this->dbh);
$this->loadModel('tree')->fixModulePath();
return $result;
}
/* 转换用户分组。*/
public function convertGroup()
{
$groups = $this->dao->dbh($this->sourceDBH)
->select("groupID AS id, groupName AS name, groupUser AS users")
->from('BugGroup')
->fetchAll('id', $autoCompany = false);
foreach($groups as $groupID => $group)
{
/* 将分组用户拆分成数组。*/
$groupUsers = explode(',', $group->users);
unset($group->id);
unset($group->users);
/* 插入到group表中。*/
$this->dao->dbh($this->dbh)->insert(TABLE_GROUP)->data($group)->exec();
$zentaoGroupID = $this->dao->lastInsertId();
/* 设置账户和group的对应关系。*/
foreach($groupUsers as $account)
{
if(empty($account)) continue;
$this->dao->dbh($this->dbh)->insert(TABLE_USERGROUP)->set('`group`')->eq($zentaoGroupID)->set('account')->eq($account)->exec();
}
}
}
/* 转换用户。*/
public function convertUser()
{
/* 查询当前系统中存在的用户。*/
$activeUsers = $this->dao
->dbh($this->sourceDBH)
->select("username AS account, userpassword AS password, realname, email")
->from('BugUser')
->orderBy('userID ASC')
->fetchAll('account', $autoCompany = false);
/* 查找曾经出现过的用户。*/
$allUsers = $this->dao->select("distinct(username) AS account")->from('BugHistory')->fetchPairs('', '', $autoCompany = false);
/* 合并二者。*/
foreach($allUsers as $key => $account)
{
if(isset($activeUsers[$account]))
{
$allUsers[$key] = $activeUsers[$account];
}
else
{
$allUsers[$key] = array('account' => $account, 'realname' => $account, 'deleted' => '1');
}
}
foreach($activeUsers as $account => $user) if(!isset($allUsers[$account])) $allUsers[$account] = $user;
/* 导入到zentao数据库中。*/
$convertCount = 0;
foreach($allUsers as $account => $user)
{
if(!$this->dao->dbh($this->dbh)->findByAccount($account)->from(TABLE_USER)->fetch('account'))
{
$this->dao->dbh($this->dbh)->insert(TABLE_USER)->data($user)->exec();
$convertCount ++;
}
else
{
self::$info['users'][] = sprintf($this->lang->convert->errorUserExists, $account);
}
}
return $convertCount;
}
/* 转换项目为产品。*/
public function convertProject()
{
$projects = $this->dao->dbh($this->sourceDBH)->select("projectID AS id, projectName AS name")->from('BugProject')->fetchAll('id', $autoCompany = false);
foreach($projects as $projectID => $project)
{
unset($project->id);
$this->dao->dbh($this->dbh)->insert(TABLE_PRODUCT)->data($project)->exec();
$this->map['product'][$projectID] = $this->dao->lastInsertID();
}
return count($projects);
}
/* 转换原来的模块为Bug视图模块。*/
public function convertModule()
{
$this->map['module'][0] = 0;
$modules = $this->dao
->dbh($this->sourceDBH)
->select(
'moduleID AS id,
projectID AS root,
moduleName AS name,
moduleGrade AS grade,
parentID AS parent,
"bug" AS type')
->from('BugModule')
->orderBy('id ASC')
->fetchAll('id', $autoCompany = false);
foreach($modules as $moduleID => $module)
{
$module->root = $this->map['product'][$module->root];
unset($module->id);
$this->dao->dbh($this->dbh)->insert(TABLE_MODULE)->data($module)->exec();
$this->map['module'][$moduleID] = $this->dao->lastInsertID();
}
/* 更新parent。*/
foreach($modules as $oldModuleID => $module)
{
$newModuleID = $this->map['module'][$oldModuleID];
$newParentID = $this->map['module'][$module->parent];
$this->dao->dbh($this->dbh)->update(TABLE_MODULE)->set('parent')->eq($newParentID)->where('id')->eq($newModuleID)->exec();
}
return count($modules);
}
/* 转换Bug。*/
public function convertBug()
{
$bugs = $this->dao
->dbh($this->sourceDBH)
->select('
bugID AS id,
projectID AS product,
moduleID AS module,
bugTitle AS title,
bugSeverity AS severity,
bugType AS type,
bugOS AS os,
bugStatus AS status,
mailto,
openedBy, openedDate, openedBuild,
assignedTo, assignedDate,
resolvedBy, resolution, resolvedBuild, resolvedDate,
closedBy, closedDate,
lastEditedBy, lastEditedDate,
linkID as duplicateBug
')
->from('BugInfo')
->orderBy('bugID')
->fetchAll('id', $autoCompany = false);
foreach($bugs as $bugID => $bug)
{
/* 修正Bug数据。*/
$bugID = (int)$bugID;
unset($bug->id);
if($bug->assignedTo == 'Closed') $bug->assignedTo = 'closed';
$bug->type = strtolower($bug->type);
$bug->os = strtolower($bug->os);
$bug->browser = 'all';
$bug->resolution = str_replace(' ','', strtolower($bug->resolution));
$bug->product = $this->map['product'][$bug->product];
$bug->module = $this->map['module'][$bug->module];
$this->dao->dbh($this->dbh)->insert(TABLE_BUG)->data($bug)->exec();
$this->map['bug'][$bugID] = $this->dao->lastInsertID();
}
/* 更新duplicateBug。 */
foreach($this->map['bug'] as $oldBugID => $newBugID)
{
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('duplicateBug')->eq($newBugID)->where('duplicateBug')->eq($oldBugID)->exec();
}
return count($bugs);
}
/* 转换历史记录。*/
public function convertAction()
{
$actions = $this->dao
->dbh($this->sourceDBH)
->select("
'bug' AS objectType,
bugID AS objectID,
userName AS actor,
action,
fullInfo AS comment,
actionDate AS date")
->from('BugHistory')
->orderBy('bugID, historyID')
->fetchGroup('objectID', '', $autoCompany = false);
$convertCount = 0;
foreach($actions as $bugID => $bugActions)
{
/* 获得转换之后的bugID。*/
$bugID = (int)$bugID;
$zentaoBugID = $this->map['bug'][$bugID];
/* 处理action。*/
foreach($bugActions as $key => $action)
{
$action->objectID = $zentaoBugID;
if($key == 0)
{
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('steps')->eq($action->comment)->where('id')->eq($zentaoBugID)->exec();
$action->comment = '';
}
$this->dao->dbh($this->dbh)->insert(TABLE_ACTION)->data($action)->exec();
$convertCount ++;
}
}
return $convertCount;
}
/* 转换附件。*/
public function convertFile()
{
$this->setPath();
$files = $this->dao->dbh($this->sourceDBH)
->select("
fileName AS pathname,
fileTitle AS title,
fileType AS extension,
fileSize AS size,
'bug' AS objectType,
bugID AS objectID,
addUser AS addedBy,
addDate AS addedDate
")
->from('BugFile')
->orderBy('fileID')
->fetchAll('', $autoCompany = false);
foreach($files as $file)
{
$file->objectID = $this->map['bug'][(int)$file->objectID];
if(strpos($file->size, 'KB')) $file->size = (int)(str_replace('KB', '', $file->size) * 1024);
if(strpos($file->size, 'MB')) $file->size = (int)(str_replace('MB', '', $file->size) * 1024 * 1024);
$this->dao->dbh($this->dbh)->insert(TABLE_FILE)->data($file)->exec();
/* 拷贝文件。*/
$soureFile = $this->filePath . $file->pathname;
if(!file_exists($soureFile))
{
self::$info['files'][] = sprintf($this->lang->convert->errorFileNotExits, $soureFile);
continue;
}
$targetFile = $this->app->getAppRoot() . "www/data/upload/{$this->app->company->id}/" . $file->pathname;
$targetPath = dirname($targetFile);
if(!is_dir($targetPath)) mkdir($targetPath, 0777, true);
if(!copy($soureFile, $targetFile))
{
self::$info['files'][] = sprintf($this->lang->convert->errorCopyFailed, $targetFile);
}
}
return count($files);
}
}

View File

@@ -1,459 +1,446 @@
<?php
/**
* The model file of bugfree2 convert of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
class bugfree2ConvertModel extends bugfreeConvertModel
{
/* 执行转换。*/
public function execute()
{
$this->clear();
$this->setTable();
$this->convertGroup();
$result['users'] = $this->convertUser();
$result['projects'] = $this->convertProject();
$result['modules'] = $this->convertModule();
$result['bugs'] = $this->convertBug();
$result['cases'] = $this->convertCase();
$result['results'] = $this->convertResult();
$result['actions'] = $this->convertAction();
$result['files'] = $this->convertFile();
$this->dao->dbh($this->dbh);
$this->loadModel('tree')->fixModulePath();
return $result;
}
/* 设置表名。*/
public function setTable()
{
$dbPrefix = $this->post->dbPrefix;
define('BUGFREE_TABLE_USER', $dbPrefix . 'TestUser');
define('BUGFREE_TABLE_PROJECT', $dbPrefix . 'TestProject');
define('BUGFREE_TABLE_MODULE', $dbPrefix . 'TestModule');
define('BUGFREE_TABLE_BUGINFO', $dbPrefix . 'BugInfo');
define('BUGFREE_TABLE_CASEINFO', $dbPrefix . 'CaseInfo');
define('BUGFREE_TABLE_RESULTINFO', $dbPrefix . 'ResultInfo');
define('BUGFREE_TABLE_ACTION', $dbPrefix . 'TestAction');
define('BUGFREE_TABLE_FILE', $dbPrefix . 'TestFile');
define('BUGFREE_TABLE_HISTORY', $dbPrefix . 'TestHistory');
define('BUGFREE_TABLE_GROUP', $dbPrefix . 'TestGroup');
}
/* 转换用户。*/
public function convertUser()
{
/* 获得所有的用户列表。*/
$users = $this->dao
->dbh($this->sourceDBH)
->select("username AS account, userpassword AS password, realname, email, isDroped AS deleted")
->from(BUGFREE_TABLE_USER)
->orderBy('userID ASC')
->fetchAll('account', $autoCompany = false);
/* 导入到zentao数据库中。*/
$convertCount = 0;
foreach($users as $account => $user)
{
if(!$this->dao->dbh($this->dbh)->findByAccount($account)->from(TABLE_USER)->fetch('account'))
{
$this->dao->dbh($this->dbh)->insert(TABLE_USER)->data($user)->exec();
$convertCount ++;
}
else
{
self::$info['users'][] = sprintf($this->lang->convert->errorUserExists, $account);
}
}
return $convertCount;
}
/* 转换用户分组。*/
public function convertGroup()
{
$groups = $this->dao->dbh($this->sourceDBH)
->select("groupID AS id, groupName AS name, groupUser AS users")
->from(BUGFREE_TABLE_GROUP)
->fetchAll('id', $autoCompany = false);
foreach($groups as $groupID => $group)
{
/* 处理group数据。*/
if($group->name == '[All Users]') continue;
$groupUsers = explode(',', $group->users);
unset($group->id);
unset($group->users);
/* 插入到group表。*/
$this->dao->dbh($this->dbh)->insert(TABLE_GROUP)->data($group)->exec();
$zentaoGroupID = $this->dao->lastInsertId();
/* 插入到userGroup表。*/
foreach($groupUsers as $account)
{
if(empty($account)) continue;
$this->dao->dbh($this->dbh)->insert(TABLE_USERGROUP)
->set('`group`')->eq($zentaoGroupID)
->set('account')->eq($account)
->exec();
}
}
}
/* 转换项目为产品。*/
public function convertProject()
{
$projects = $this->dao->dbh($this->sourceDBH)
->select("projectID AS id, projectName AS name, isDroped AS deleted")
->from(BUGFREE_TABLE_PROJECT)
->fetchAll('id', $autoComapny = false);
foreach($projects as $projectID => $project)
{
unset($project->id);
$this->dao->dbh($this->dbh)->insert(TABLE_PRODUCT)->data($project)->exec();
$this->map['product'][$projectID] = $this->dao->lastInsertID();
}
return count($projects);
}
/* 转换原来的模块为Bug视图模块。*/
public function convertModule()
{
$this->map['module'][0] = 0;
$modules = $this->dao
->dbh($this->sourceDBH)
->select(
'moduleID AS id,
moduleType as type,
projectID AS root,
moduleName AS name,
moduleGrade AS grade,
parentID AS parent,
displayOrder AS `order`')
->from(BUGFREE_TABLE_MODULE)
->orderBy('id ASC')
->fetchAll('id', $autoCompany = false);
foreach($modules as $moduleID => $module)
{
$module->root = $this->map['product'][$module->root];
$module->type = strtolower($module->type);
unset($module->id);
$this->dao->dbh($this->dbh)->insert(TABLE_MODULE)->data($module)->exec();
$this->map['module'][$moduleID] = $this->dao->lastInsertID();
}
/* 更新parent。*/
foreach($modules as $oldModuleID => $module)
{
$newModuleID = $this->map['module'][$oldModuleID];
$newParentID = $this->map['module'][$module->parent];
$this->dao->dbh($this->dbh)->update(TABLE_MODULE)->set('parent')->eq($newParentID)->where('id')->eq($newModuleID)->exec();
}
return count($modules);
}
/* 转换Bug。*/
public function convertBug()
{
$bugs = $this->dao
->dbh($this->sourceDBH)
->select('
bugID AS id,
projectID AS product,
moduleID AS module,
bugTitle AS title,
bugSeverity AS severity,
bugPriority AS pri,
bugType AS type,
bugOS AS os,
bugBrowser AS browser,
bugMachine AS hardware,
howFound AS found,
reproSteps AS steps,
bugStatus AS status,
linkID AS linkBug,
duplicateID AS duplicateBug,
caseID AS `case`,
1 AS caseVersion,
resultID AS result,
mailto,
openedBy, openedDate, openedBuild,
assignedTo, assignedDate,
resolvedBy, resolution, resolvedBuild, resolvedDate,
closedBy, closedDate,
lastEditedBy, lastEditedDate,
bugKeyword AS keywords
')
->from(BUGFREE_TABLE_BUGINFO)
->where('isDroped')->eq(0)
->orderBy('bugID')
->fetchAll('id', $autoCompany = false);
foreach($bugs as $bugID => $bug)
{
/* 修正Bug数据。*/
$bugID = (int)$bugID;
unset($bug->id);
if($bug->assignedTo == 'Closed') $bug->assignedTo = 'closed';
if($bug->assignedTo == 'Active') $bug->assignedTo = '';
$bug->type = strtolower($bug->type);
$bug->found = strtolower($bug->found);
$bug->status = strtolower($bug->status);
$bug->os = strtolower($bug->os);
$bug->browser= strtolower($bug->browser);
if($bug->os == 'winvista') $bug->os = 'vista';
if($bug->browser == 'firefox3.0') $bug->browser = 'firefox3';
if($bug->browser == 'firefox2.0') $bug->browser = 'firefox2';
if($bug->openedBuild == 'N/A') $bug->openedBuild = '';
if(!$bug->case) $bug->caseVersion = 0;
$bug->resolution = str_replace(' ', '', strtolower($bug->resolution));
$bug->product = $this->map['product'][$bug->product];
$bug->module = $this->map['module'][$bug->module];
$this->dao->dbh($this->dbh)->insert(TABLE_BUG)->data($bug)->exec();
$this->map['bug'][$bugID] = $this->dao->lastInsertID();
}
/* 更新duplicateBug。 */
foreach($this->map['bug'] as $oldBugID => $newBugID)
{
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('duplicateBug')->eq($newBugID)->where('duplicateBug')->eq($oldBugID)->exec();
}
return count($bugs);
}
/* 转换case。*/
public function convertCase()
{
$cases = $this->dao
->dbh($this->sourceDBH)
->select('
caseID AS id,
projectID AS product,
moduleID AS module,
caseTitle AS title,
caseSteps AS step,
casePriority AS pri,
caseType AS type,
caseStatus AS status,
caseMethod AS howRun,
casePlan AS stage,
openedBy, openedDate,
lastEditedBy, lastEditedDate,
scriptedBy, scriptedDate, scriptStatus, scriptLocation,
linkID AS linkCase,
casekeyword AS keywords,
1 AS version,
bugID
')
->from(BUGFREE_TABLE_CASEINFO)
->where('isDroped')->eq(0)
->orderBy('caseID')
->fetchAll('id', $autoCompany = false);
foreach($cases as $caseID => $case)
{
/* 修正case的数据。*/
$caseID = (int)$caseID;
$step = $case->step;
$bugs = explode(',', $case->bugID);
unset($case->id);
unset($case->step);
unset($case->bugID);
$case->type = strtolower($case->type);
$case->status = strtolower($case->status);
$case->howRun = strtolower($case->howRun);
$case->stage = strtolower($case->stage);
if($case->type == 'configuration') $case->type = 'config';
if($case->type == 'setup') $case->type = 'install';
if($case->type == 'functional') $case->type = 'feature';
if($case->status == 'active') $case->status = 'normal';
/* 将产品和模块替换成禅道系统中的id。*/
$case->product = $this->map['product'][$case->product];
$case->module = $this->map['module'][$case->module];
/* 插入到case表中。*/
$this->dao->dbh($this->dbh)->insert(TABLE_CASE)->data($case)->exec();
$zentaoCaseID = $this->dao->lastInsertID();
$this->map['case'][$caseID] = $zentaoCaseID;
/* 用例步骤表。*/
$caseStep->case = $zentaoCaseID;
$caseStep->version = 1;
$caseStep->desc = $step;
$this->dao->dbh($this->dbh)->insert(TABLE_CASESTEP)->data($caseStep)->exec();
/* 更新相关bug。*/
foreach($bugs as $bugID)
{
if(!isset($this->map['bug'][$bugID])) continue;
$zentaoBugID = $this->map['bug'][$bugID];
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('`case`')->eq($zentaoCaseID)->where('id')->eq($zentaoBugID)->limit(1)->exec();
}
}
return count($cases);
}
/* 转换测试执行结果。*/
public function convertResult()
{
$results = $this->dao->dbh($this->sourceDBH)
->select('
resultID AS id,
caseID AS `case`,
resultValue AS caseResult,
1 AS version,
openedDate as date,
bugID
')
->from(BUGFREE_TABLE_RESULTINFO)
->orderBy('id')
->fetchAll('id', $autoCompany = false);
foreach($results as $resultID => $result)
{
unset($result->id);
/* 记录对应的bug信息。*/
$bugID = (int)$result->bugID;
$zentaoBugID = $this->map['bug'][$bugID];
unset($result->bugID);
/* 插入到testResult表中。*/
$this->dao->dbh($this->dbh)->insert(TABLE_TESTRESULT)->data($result)->exec();
$zentaoResultID = $this->dao->lastInsertId();
$this->map['result'][$resultID] = $zentaoResultID;
/* 更新bug表中的result字段。*/
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('result')->eq($zentaoResultID)->where('id')->eq($zentaoBugID)->limit(1)->exec();
}
return count($results);
}
/* 转换历史记录。*/
public function convertAction()
{
$actions = $this->dao
->dbh($this->sourceDBH)
->select("actionID AS id,
actionTarget AS objectType,
idValue AS objectID,
actionUser AS actor,
actionType AS action,
actionDate AS date,
actionNote AS comment
")
->from(BUGFREE_TABLE_ACTION)
->where('actionTarget' != 'Result')
->orderBy('actionID')
->fetchAll('id', $autoComapny = false);
foreach($actions as $actionID => $action)
{
$actionID = (int)$action->id;
unset($action->id);
$action->objectType = strtolower($action->objectType);
$action->action = strtolower($action->action);
$action->objectID = $this->map[$action->objectType][$action->objectID];
$this->dao->dbh($this->dbh)->insert(TABLE_ACTION)->data($action)->exec();
$this->map['action'][$actionID] = $this->dao->lastInsertID();
}
return count($actions);
}
/* 转换历史修改记录。*/
public function convertHistory()
{
$histories = $this->dao->dbh($this->sourceDBH)
->select('actioID, actionField AS field, oldValue AS old, newValue AS new')
->from(BUGFREE_TABLE_HISTORY)
->orderBy('historyID')
->fetchAll('', $autoCompany = false);
foreach($histories as $history)
{
$history->actionID = $this->map['action'][$history->actionID];
$this->dao->dbh($this->dbh)->insert(TABLE_HISTORY)->data($history)->exec();
}
}
/* 转换附件。*/
public function convertFile()
{
$this->setPath();
$files = $this->dao->dbh($this->sourceDBH)
->select("
actionID,
fileName AS pathname,
fileTitle AS title,
fileType AS extension,
fileSize AS size
")
->from(BUGFREE_TABLE_FILE)
->orderBy('fileID')
->fetchAll('', $autoCompany = false);
foreach($files as $file)
{
/* 查找对应的action信息以获得文件的相关字段。*/
$zentaoActionID = $this->map['action'][$file->actionID];
$zentaoAction = $this->dao->dbh($this->dbh)->findById($zentaoActionID)->from(TABLE_ACTION)->fetch();
$file->objectType = $zentaoAction->objectType;
$file->objectID = $zentaoAction->objectID;
$file->addedBy = $zentaoAction->actor;
$file->addedDate = $zentaoAction->date;
unset($file->actionID);
/* 处理文件大小。*/
if(strpos($file->size, 'KB')) $file->size = (int)(str_replace('KB', '', $file->size) * 1024);
if(strpos($file->size, 'MB')) $file->size = (int)(str_replace('MB', '', $file->size) * 1024 * 1024);
/* 插入到数据库。*/
$this->dao->dbh($this->dbh)->insert(TABLE_FILE)->data($file)->exec();
/* 拷贝文件。*/
$soureFile = $this->filePath . $file->pathname;
if(!file_exists($soureFile))
{
self::$info['files'][] = sprintf($this->lang->convert->errorFileNotExits, $soureFile);
continue;
}
$targetFile = $this->app->getAppRoot() . "www/data/upload/{$this->app->company->id}/" . $file->pathname;
$targetPath = dirname($targetFile);
if(!is_dir($targetPath)) mkdir($targetPath, 0777, true);
if(!copy($soureFile, $targetFile))
{
self::$info['files'][] = sprintf($this->lang->convert->errorCopyFailed, $targetFile);
}
}
return count($files);
}
/* 清空导入之后的数据。*/
public function clear()
{
foreach($this->session->state as $table => $maxID)
{
$this->dao->dbh($this->dbh)->delete()->from($table)->where('id')->gt($maxID)->exec();
}
}
}
<?php
/**
* The model file of bugfree2 convert of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
class bugfree2ConvertModel extends bugfreeConvertModel
{
/* 执行转换。*/
public function execute()
{
$this->clear();
$this->setTable();
$this->convertGroup();
$result['users'] = $this->convertUser();
$result['projects'] = $this->convertProject();
$result['modules'] = $this->convertModule();
$result['bugs'] = $this->convertBug();
$result['cases'] = $this->convertCase();
$result['results'] = $this->convertResult();
$result['actions'] = $this->convertAction();
$result['files'] = $this->convertFile();
$this->dao->dbh($this->dbh);
$this->loadModel('tree')->fixModulePath();
return $result;
}
/* 设置表名。*/
public function setTable()
{
$dbPrefix = $this->post->dbPrefix;
define('BUGFREE_TABLE_USER', $dbPrefix . 'TestUser');
define('BUGFREE_TABLE_PROJECT', $dbPrefix . 'TestProject');
define('BUGFREE_TABLE_MODULE', $dbPrefix . 'TestModule');
define('BUGFREE_TABLE_BUGINFO', $dbPrefix . 'BugInfo');
define('BUGFREE_TABLE_CASEINFO', $dbPrefix . 'CaseInfo');
define('BUGFREE_TABLE_RESULTINFO', $dbPrefix . 'ResultInfo');
define('BUGFREE_TABLE_ACTION', $dbPrefix . 'TestAction');
define('BUGFREE_TABLE_FILE', $dbPrefix . 'TestFile');
define('BUGFREE_TABLE_HISTORY', $dbPrefix . 'TestHistory');
define('BUGFREE_TABLE_GROUP', $dbPrefix . 'TestGroup');
}
/* 转换用户。*/
public function convertUser()
{
/* 获得所有的用户列表。*/
$users = $this->dao
->dbh($this->sourceDBH)
->select("username AS account, userpassword AS password, realname, email, isDroped AS deleted")
->from(BUGFREE_TABLE_USER)
->orderBy('userID ASC')
->fetchAll('account', $autoCompany = false);
/* 导入到zentao数据库中。*/
$convertCount = 0;
foreach($users as $account => $user)
{
if(!$this->dao->dbh($this->dbh)->findByAccount($account)->from(TABLE_USER)->fetch('account'))
{
$this->dao->dbh($this->dbh)->insert(TABLE_USER)->data($user)->exec();
$convertCount ++;
}
else
{
self::$info['users'][] = sprintf($this->lang->convert->errorUserExists, $account);
}
}
return $convertCount;
}
/* 转换用户分组。*/
public function convertGroup()
{
$groups = $this->dao->dbh($this->sourceDBH)
->select("groupID AS id, groupName AS name, groupUser AS users")
->from(BUGFREE_TABLE_GROUP)
->fetchAll('id', $autoCompany = false);
foreach($groups as $groupID => $group)
{
/* 处理group数据。*/
if($group->name == '[All Users]') continue;
$groupUsers = explode(',', $group->users);
unset($group->id);
unset($group->users);
/* 插入到group表。*/
$this->dao->dbh($this->dbh)->insert(TABLE_GROUP)->data($group)->exec();
$zentaoGroupID = $this->dao->lastInsertId();
/* 插入到userGroup表。*/
foreach($groupUsers as $account)
{
if(empty($account)) continue;
$this->dao->dbh($this->dbh)->insert(TABLE_USERGROUP)
->set('`group`')->eq($zentaoGroupID)
->set('account')->eq($account)
->exec();
}
}
}
/* 转换项目为产品。*/
public function convertProject()
{
$projects = $this->dao->dbh($this->sourceDBH)
->select("projectID AS id, projectName AS name, isDroped AS deleted")
->from(BUGFREE_TABLE_PROJECT)
->fetchAll('id', $autoComapny = false);
foreach($projects as $projectID => $project)
{
unset($project->id);
$this->dao->dbh($this->dbh)->insert(TABLE_PRODUCT)->data($project)->exec();
$this->map['product'][$projectID] = $this->dao->lastInsertID();
}
return count($projects);
}
/* 转换原来的模块为Bug视图模块。*/
public function convertModule()
{
$this->map['module'][0] = 0;
$modules = $this->dao
->dbh($this->sourceDBH)
->select(
'moduleID AS id,
moduleType as type,
projectID AS root,
moduleName AS name,
moduleGrade AS grade,
parentID AS parent,
displayOrder AS `order`')
->from(BUGFREE_TABLE_MODULE)
->orderBy('id ASC')
->fetchAll('id', $autoCompany = false);
foreach($modules as $moduleID => $module)
{
$module->root = $this->map['product'][$module->root];
$module->type = strtolower($module->type);
unset($module->id);
$this->dao->dbh($this->dbh)->insert(TABLE_MODULE)->data($module)->exec();
$this->map['module'][$moduleID] = $this->dao->lastInsertID();
}
/* 更新parent。*/
foreach($modules as $oldModuleID => $module)
{
$newModuleID = $this->map['module'][$oldModuleID];
$newParentID = $this->map['module'][$module->parent];
$this->dao->dbh($this->dbh)->update(TABLE_MODULE)->set('parent')->eq($newParentID)->where('id')->eq($newModuleID)->exec();
}
return count($modules);
}
/* 转换Bug。*/
public function convertBug()
{
$bugs = $this->dao
->dbh($this->sourceDBH)
->select('
bugID AS id,
projectID AS product,
moduleID AS module,
bugTitle AS title,
bugSeverity AS severity,
bugPriority AS pri,
bugType AS type,
bugOS AS os,
bugBrowser AS browser,
bugMachine AS hardware,
howFound AS found,
reproSteps AS steps,
bugStatus AS status,
linkID AS linkBug,
duplicateID AS duplicateBug,
caseID AS `case`,
1 AS caseVersion,
resultID AS result,
mailto,
openedBy, openedDate, openedBuild,
assignedTo, assignedDate,
resolvedBy, resolution, resolvedBuild, resolvedDate,
closedBy, closedDate,
lastEditedBy, lastEditedDate,
bugKeyword AS keywords
')
->from(BUGFREE_TABLE_BUGINFO)
->where('isDroped')->eq(0)
->orderBy('bugID')
->fetchAll('id', $autoCompany = false);
foreach($bugs as $bugID => $bug)
{
/* 修正Bug数据。*/
$bugID = (int)$bugID;
unset($bug->id);
if($bug->assignedTo == 'Closed') $bug->assignedTo = 'closed';
if($bug->assignedTo == 'Active') $bug->assignedTo = '';
$bug->type = strtolower($bug->type);
$bug->found = strtolower($bug->found);
$bug->status = strtolower($bug->status);
$bug->os = strtolower($bug->os);
$bug->browser= strtolower($bug->browser);
if($bug->os == 'winvista') $bug->os = 'vista';
if($bug->browser == 'firefox3.0') $bug->browser = 'firefox3';
if($bug->browser == 'firefox2.0') $bug->browser = 'firefox2';
if($bug->openedBuild == 'N/A') $bug->openedBuild = '';
if(!$bug->case) $bug->caseVersion = 0;
$bug->resolution = str_replace(' ', '', strtolower($bug->resolution));
$bug->product = $this->map['product'][$bug->product];
$bug->module = $this->map['module'][$bug->module];
$this->dao->dbh($this->dbh)->insert(TABLE_BUG)->data($bug)->exec();
$this->map['bug'][$bugID] = $this->dao->lastInsertID();
}
/* 更新duplicateBug。 */
foreach($this->map['bug'] as $oldBugID => $newBugID)
{
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('duplicateBug')->eq($newBugID)->where('duplicateBug')->eq($oldBugID)->exec();
}
return count($bugs);
}
/* 转换case。*/
public function convertCase()
{
$cases = $this->dao
->dbh($this->sourceDBH)
->select('
caseID AS id,
projectID AS product,
moduleID AS module,
caseTitle AS title,
caseSteps AS step,
casePriority AS pri,
caseType AS type,
caseStatus AS status,
caseMethod AS howRun,
casePlan AS stage,
openedBy, openedDate,
lastEditedBy, lastEditedDate,
scriptedBy, scriptedDate, scriptStatus, scriptLocation,
linkID AS linkCase,
casekeyword AS keywords,
1 AS version,
bugID
')
->from(BUGFREE_TABLE_CASEINFO)
->where('isDroped')->eq(0)
->orderBy('caseID')
->fetchAll('id', $autoCompany = false);
foreach($cases as $caseID => $case)
{
/* 修正case的数据。*/
$caseID = (int)$caseID;
$step = $case->step;
$bugs = explode(',', $case->bugID);
unset($case->id);
unset($case->step);
unset($case->bugID);
$case->type = strtolower($case->type);
$case->status = strtolower($case->status);
$case->howRun = strtolower($case->howRun);
$case->stage = strtolower($case->stage);
if($case->type == 'configuration') $case->type = 'config';
if($case->type == 'setup') $case->type = 'install';
if($case->type == 'functional') $case->type = 'feature';
if($case->status == 'active') $case->status = 'normal';
/* 将产品和模块替换成禅道系统中的id。*/
$case->product = $this->map['product'][$case->product];
$case->module = $this->map['module'][$case->module];
/* 插入到case表中。*/
$this->dao->dbh($this->dbh)->insert(TABLE_CASE)->data($case)->exec();
$zentaoCaseID = $this->dao->lastInsertID();
$this->map['case'][$caseID] = $zentaoCaseID;
/* 用例步骤表。*/
$caseStep->case = $zentaoCaseID;
$caseStep->version = 1;
$caseStep->desc = $step;
$this->dao->dbh($this->dbh)->insert(TABLE_CASESTEP)->data($caseStep)->exec();
/* 更新相关bug。*/
foreach($bugs as $bugID)
{
if(!isset($this->map['bug'][$bugID])) continue;
$zentaoBugID = $this->map['bug'][$bugID];
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('`case`')->eq($zentaoCaseID)->where('id')->eq($zentaoBugID)->limit(1)->exec();
}
}
return count($cases);
}
/* 转换测试执行结果。*/
public function convertResult()
{
$results = $this->dao->dbh($this->sourceDBH)
->select('
resultID AS id,
caseID AS `case`,
resultValue AS caseResult,
1 AS version,
openedDate as date,
bugID
')
->from(BUGFREE_TABLE_RESULTINFO)
->orderBy('id')
->fetchAll('id', $autoCompany = false);
foreach($results as $resultID => $result)
{
unset($result->id);
/* 记录对应的bug信息。*/
$bugID = (int)$result->bugID;
$zentaoBugID = $this->map['bug'][$bugID];
unset($result->bugID);
/* 插入到testResult表中。*/
$this->dao->dbh($this->dbh)->insert(TABLE_TESTRESULT)->data($result)->exec();
$zentaoResultID = $this->dao->lastInsertId();
$this->map['result'][$resultID] = $zentaoResultID;
/* 更新bug表中的result字段。*/
$this->dao->dbh($this->dbh)->update(TABLE_BUG)->set('result')->eq($zentaoResultID)->where('id')->eq($zentaoBugID)->limit(1)->exec();
}
return count($results);
}
/* 转换历史记录。*/
public function convertAction()
{
$actions = $this->dao
->dbh($this->sourceDBH)
->select("actionID AS id,
actionTarget AS objectType,
idValue AS objectID,
actionUser AS actor,
actionType AS action,
actionDate AS date,
actionNote AS comment
")
->from(BUGFREE_TABLE_ACTION)
->where('actionTarget' != 'Result')
->orderBy('actionID')
->fetchAll('id', $autoComapny = false);
foreach($actions as $actionID => $action)
{
$actionID = (int)$action->id;
unset($action->id);
$action->objectType = strtolower($action->objectType);
$action->action = strtolower($action->action);
$action->objectID = $this->map[$action->objectType][$action->objectID];
$this->dao->dbh($this->dbh)->insert(TABLE_ACTION)->data($action)->exec();
$this->map['action'][$actionID] = $this->dao->lastInsertID();
}
return count($actions);
}
/* 转换历史修改记录。*/
public function convertHistory()
{
$histories = $this->dao->dbh($this->sourceDBH)
->select('actioID, actionField AS field, oldValue AS old, newValue AS new')
->from(BUGFREE_TABLE_HISTORY)
->orderBy('historyID')
->fetchAll('', $autoCompany = false);
foreach($histories as $history)
{
$history->actionID = $this->map['action'][$history->actionID];
$this->dao->dbh($this->dbh)->insert(TABLE_HISTORY)->data($history)->exec();
}
}
/* 转换附件。*/
public function convertFile()
{
$this->setPath();
$files = $this->dao->dbh($this->sourceDBH)
->select("
actionID,
fileName AS pathname,
fileTitle AS title,
fileType AS extension,
fileSize AS size
")
->from(BUGFREE_TABLE_FILE)
->orderBy('fileID')
->fetchAll('', $autoCompany = false);
foreach($files as $file)
{
/* 查找对应的action信息以获得文件的相关字段。*/
$zentaoActionID = $this->map['action'][$file->actionID];
$zentaoAction = $this->dao->dbh($this->dbh)->findById($zentaoActionID)->from(TABLE_ACTION)->fetch();
$file->objectType = $zentaoAction->objectType;
$file->objectID = $zentaoAction->objectID;
$file->addedBy = $zentaoAction->actor;
$file->addedDate = $zentaoAction->date;
unset($file->actionID);
/* 处理文件大小。*/
if(strpos($file->size, 'KB')) $file->size = (int)(str_replace('KB', '', $file->size) * 1024);
if(strpos($file->size, 'MB')) $file->size = (int)(str_replace('MB', '', $file->size) * 1024 * 1024);
/* 插入到数据库。*/
$this->dao->dbh($this->dbh)->insert(TABLE_FILE)->data($file)->exec();
/* 拷贝文件。*/
$soureFile = $this->filePath . $file->pathname;
if(!file_exists($soureFile))
{
self::$info['files'][] = sprintf($this->lang->convert->errorFileNotExits, $soureFile);
continue;
}
$targetFile = $this->app->getAppRoot() . "www/data/upload/{$this->app->company->id}/" . $file->pathname;
$targetPath = dirname($targetFile);
if(!is_dir($targetPath)) mkdir($targetPath, 0777, true);
if(!copy($soureFile, $targetFile))
{
self::$info['files'][] = sprintf($this->lang->convert->errorCopyFailed, $targetFile);
}
}
return count($files);
}
/* 清空导入之后的数据。*/
public function clear()
{
foreach($this->session->state as $table => $maxID)
{
$this->dao->dbh($this->dbh)->delete()->from($table)->where('id')->gt($maxID)->exec();
}
}
}

View File

@@ -1,80 +1,67 @@
<?php
/**
* The convert module English file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
$lang->convert->common = 'Import';
$lang->convert->next = 'Next';
$lang->convert->pre = 'Back';
$lang->convert->reload = 'Reload';
$lang->convert->error = 'Error ';
$lang->convert->start = 'Begin import';
$lang->convert->desc = <<<EOT
<p>Welcome to use this convert wizard which will help you to import other system data to ZenTaoPMS.</p>
<strong>Importing is dangerous. Be sure to backup your database and other data files and sure nobody is using pms when importing.</strong>
EOT;
$lang->convert->selectSource = 'Select source system and version';
$lang->convert->source = 'Source system';
$lang->convert->version = 'Version';
$lang->convert->mustSelectSource = "Must select a source system";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = 'Setting';
$lang->convert->checkConfig = 'Check setting';
$lang->convert->ok = 'Check passed(√)';
$lang->convert->fail = 'Check failed(×)';
$lang->convert->settingDB = 'Set database';
$lang->convert->dbHost = 'Database server';
$lang->convert->dbPort = 'Server port';
$lang->convert->dbUser = 'Database user';
$lang->convert->dbPassword = 'Database password';
$lang->convert->dbName = '%s database';
$lang->convert->dbCharset = '%s charset';
$lang->convert->dbPrefix = '%s table prefix';
$lang->convert->installPath= '%s installed path';
$lang->convert->checkDB = 'Database';
$lang->convert->checkTable = 'Table';
$lang->convert->checkPath = 'Installed path';
$lang->convert->execute = 'Execute import';
$lang->convert->item = 'Imported items';
$lang->convert->count = 'Count';
$lang->convert->info = 'Info';
$lang->convert->bugfree->users = 'User';
$lang->convert->bugfree->projects = 'Project';
$lang->convert->bugfree->modules = 'Module';
$lang->convert->bugfree->bugs = 'Bug';
$lang->convert->bugfree->cases = 'Case';
$lang->convert->bugfree->results = 'Result';
$lang->convert->bugfree->actions = 'History';
$lang->convert->bugfree->files = 'File';
$lang->convert->errorConnectDB = 'Connect to database server failed.';
$lang->convert->errorFileNotExits = 'File %s not exits.';
$lang->convert->errorUserExists = 'User %s exits already.';
$lang->convert->errorCopyFailed = 'file %s copy failed.';
<?php
/**
* The convert module English file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
$lang->convert->common = 'Import';
$lang->convert->next = 'Next';
$lang->convert->pre = 'Back';
$lang->convert->reload = 'Reload';
$lang->convert->error = 'Error ';
$lang->convert->start = 'Begin import';
$lang->convert->desc = <<<EOT
<p>Welcome to use this convert wizard which will help you to import other system data to ZenTaoPMS.</p>
<strong>Importing is dangerous. Be sure to backup your database and other data files and sure nobody is using pms when importing.</strong>
EOT;
$lang->convert->selectSource = 'Select source system and version';
$lang->convert->source = 'Source system';
$lang->convert->version = 'Version';
$lang->convert->mustSelectSource = "Must select a source system";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = 'Setting';
$lang->convert->checkConfig = 'Check setting';
$lang->convert->ok = 'Check passed(√)';
$lang->convert->fail = 'Check failed(×)';
$lang->convert->settingDB = 'Set database';
$lang->convert->dbHost = 'Database server';
$lang->convert->dbPort = 'Server port';
$lang->convert->dbUser = 'Database user';
$lang->convert->dbPassword = 'Database password';
$lang->convert->dbName = '%s database';
$lang->convert->dbCharset = '%s charset';
$lang->convert->dbPrefix = '%s table prefix';
$lang->convert->installPath= '%s installed path';
$lang->convert->checkDB = 'Database';
$lang->convert->checkTable = 'Table';
$lang->convert->checkPath = 'Installed path';
$lang->convert->execute = 'Execute import';
$lang->convert->item = 'Imported items';
$lang->convert->count = 'Count';
$lang->convert->info = 'Info';
$lang->convert->bugfree->users = 'User';
$lang->convert->bugfree->projects = 'Project';
$lang->convert->bugfree->modules = 'Module';
$lang->convert->bugfree->bugs = 'Bug';
$lang->convert->bugfree->cases = 'Case';
$lang->convert->bugfree->results = 'Result';
$lang->convert->bugfree->actions = 'History';
$lang->convert->bugfree->files = 'File';
$lang->convert->errorConnectDB = 'Connect to database server failed.';
$lang->convert->errorFileNotExits = 'File %s not exits.';
$lang->convert->errorUserExists = 'User %s exits already.';
$lang->convert->errorCopyFailed = 'file %s copy failed.';

View File

@@ -1,80 +1,67 @@
<?php
/**
* The convert module Japanese file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->convert->common = 'インポート';
$lang->convert->next = '次の';
$lang->convert->pre = 'バック';
$lang->convert->reload = 'リロード';
$lang->convert->error = 'エラー';
$lang->convert->start = '開始のインポート';
$lang->convert->desc = <<<EOT
<p>Welcome to use this convert wizard which will help you to import other system data to ZenTaoPMS.</p>
<strong>Importing is dangerous. Be sure to backup your database and other data files and sure nobody is using pms when importing.</strong>
EOT;
$lang->convert->selectSource = '選択してソースシステムとバージョン';
$lang->convert->source = 'ソースシステム';
$lang->convert->version = 'バージョン';
$lang->convert->mustSelectSource = "システムのソースを選択してください";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = '設定';
$lang->convert->checkConfig = '設定を確認します';
$lang->convert->ok = 'チェック渡さ(√)';
$lang->convert->fail = 'チェックに失敗しました(×)';
$lang->convert->settingDB = 'Setデータベース';
$lang->convert->dbHost = 'データベースサーバー';
$lang->convert->dbPort = 'サーバーのポート';
$lang->convert->dbUser = 'データベースユーザー';
$lang->convert->dbPassword = 'データベースのパスワード';
$lang->convert->dbName = '%s database';
$lang->convert->dbCharset = '%s データベースコード ';
$lang->convert->dbPrefix = '%s table prefix';
$lang->convert->installPath= '%s installed path';
$lang->convert->checkDB = 'データベース';
$lang->convert->checkTable = 'テーブル';
$lang->convert->checkPath = 'インストールパス';
$lang->convert->execute = '実行のインポート';
$lang->convert->item = '輸入商品';
$lang->convert->count = 'カウント';
$lang->convert->info = '情報';
$lang->convert->bugfree->users = 'ユーザー';
$lang->convert->bugfree->projects = 'プロジェクト';
$lang->convert->bugfree->modules = 'モジュール';
$lang->convert->bugfree->bugs = 'バグ';
$lang->convert->bugfree->cases = 'ケース';
$lang->convert->bugfree->results = '結果';
$lang->convert->bugfree->actions = '歴史';
$lang->convert->bugfree->files = 'ファイル';
$lang->convert->errorConnectDB = 'データベースへの接続のサーバーが失敗しました。';
$lang->convert->errorFileNotExits = 'File %s not exits.';
$lang->convert->errorUserExists = 'User %s exits already.';
$lang->convert->errorCopyFailed = 'file %s copy failed.';
<?php
/**
* The convert module Japanese file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->convert->common = 'インポート';
$lang->convert->next = '次の';
$lang->convert->pre = 'バック';
$lang->convert->reload = 'リロード';
$lang->convert->error = 'エラー';
$lang->convert->start = '開始のインポート';
$lang->convert->desc = <<<EOT
<p>Welcome to use this convert wizard which will help you to import other system data to ZenTaoPMS.</p>
<strong>Importing is dangerous. Be sure to backup your database and other data files and sure nobody is using pms when importing.</strong>
EOT;
$lang->convert->selectSource = '選択してソースシステムとバージョン';
$lang->convert->source = 'ソースシステム';
$lang->convert->version = 'バージョン';
$lang->convert->mustSelectSource = "システムのソースを選択してください";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = '設定';
$lang->convert->checkConfig = '設定を確認します';
$lang->convert->ok = 'チェック渡さ(√)';
$lang->convert->fail = 'チェックに失敗しました(×)';
$lang->convert->settingDB = 'Setデータベース';
$lang->convert->dbHost = 'データベースサーバー';
$lang->convert->dbPort = 'サーバーのポート';
$lang->convert->dbUser = 'データベースユーザー';
$lang->convert->dbPassword = 'データベースのパスワード';
$lang->convert->dbName = '%s database';
$lang->convert->dbCharset = '%s データベースコード ';
$lang->convert->dbPrefix = '%s table prefix';
$lang->convert->installPath= '%s installed path';
$lang->convert->checkDB = 'データベース';
$lang->convert->checkTable = 'テーブル';
$lang->convert->checkPath = 'インストールパス';
$lang->convert->execute = '実行のインポート';
$lang->convert->item = '輸入商品';
$lang->convert->count = 'カウント';
$lang->convert->info = '情報';
$lang->convert->bugfree->users = 'ユーザー';
$lang->convert->bugfree->projects = 'プロジェクト';
$lang->convert->bugfree->modules = 'モジュール';
$lang->convert->bugfree->bugs = 'バグ';
$lang->convert->bugfree->cases = 'ース';
$lang->convert->bugfree->results = '結果';
$lang->convert->bugfree->actions = '歴史';
$lang->convert->bugfree->files = 'ファイル';
$lang->convert->errorConnectDB = 'データベースへの接続のサーバーが失敗しました。';
$lang->convert->errorFileNotExits = 'File %s not exits.';
$lang->convert->errorUserExists = 'User %s exits already.';
$lang->convert->errorCopyFailed = 'file %s copy failed.';

View File

@@ -1,80 +1,67 @@
<?php
/**
* The convert module Korean file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->convert->common = '수입';
$lang->convert->next = '다음';
$lang->convert->pre = '뒤로';
$lang->convert->reload = '새로고침';
$lang->convert->error = '오류';
$lang->convert->start = '시작 가져오기';
$lang->convert->desc = <<<EOT
<p>Welcome to use this convert wizard which will help you to import other system data to ZenTaoPMS.</p>
<strong>Importing is dangerous. Be sure to backup your database and other data files and sure nobody is using pms when importing.</strong>
EOT;
$lang->convert->selectSource = '선택 소스 시스템 및 버전';
$lang->convert->source = '소스 시스템';
$lang->convert->version = '버전';
$lang->convert->mustSelectSource = "시스템을 소스를 선택합니다";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = '설정';
$lang->convert->checkConfig = '설정 확인';
$lang->convert->ok = '확인 통과 (√)';
$lang->convert->fail = '체크 실패 (×)';
$lang->convert->settingDB = '설정 데이터베이스';
$lang->convert->dbHost = '데이터베이스 서버';
$lang->convert->dbPort = '서버 포트';
$lang->convert->dbUser = '데이터베이스 사용자';
$lang->convert->dbPassword = '데이터베이스 암호';
$lang->convert->dbName = '%s database';
$lang->convert->dbCharset = '%s 데이터베이스 코드';
$lang->convert->dbPrefix = '%s table prefix';
$lang->convert->installPath= '%s installed path';
$lang->convert->checkDB = '데이터베이스';
$lang->convert->checkTable = '테이블';
$lang->convert->checkPath = '설치 경로';
$lang->convert->execute = '가져오기 실행';
$lang->convert->item = '수입 품목';
$lang->convert->count = '카운트';
$lang->convert->info = '정보';
$lang->convert->bugfree->users = '사용자';
$lang->convert->bugfree->projects = '프로젝트';
$lang->convert->bugfree->modules = '모듈';
$lang->convert->bugfree->bugs = '곤충';
$lang->convert->bugfree->cases = '케이스';
$lang->convert->bugfree->results = '결과';
$lang->convert->bugfree->actions = '역사';
$lang->convert->bugfree->files = '파일';
$lang->convert->errorConnectDB = '연결하는 데이터베이스 서버가 실패했습니다.';
$lang->convert->errorFileNotExits = 'File %s not exits.';
$lang->convert->errorUserExists = 'User %s exits already.';
$lang->convert->errorCopyFailed = 'file %s copy failed.';
<?php
/**
* The convert module Korean file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->convert->common = '수입';
$lang->convert->next = '다음';
$lang->convert->pre = '뒤로';
$lang->convert->reload = '새로고침';
$lang->convert->error = '오류';
$lang->convert->start = '시작 가져오기';
$lang->convert->desc = <<<EOT
<p>Welcome to use this convert wizard which will help you to import other system data to ZenTaoPMS.</p>
<strong>Importing is dangerous. Be sure to backup your database and other data files and sure nobody is using pms when importing.</strong>
EOT;
$lang->convert->selectSource = '선택 소스 시스템 및 버전';
$lang->convert->source = '소스 시스템';
$lang->convert->version = '버전';
$lang->convert->mustSelectSource = "시스템을 소스를 선택합니다";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = '설정';
$lang->convert->checkConfig = '설정 확인';
$lang->convert->ok = '확인 통과 (√)';
$lang->convert->fail = '체크 실패 (×)';
$lang->convert->settingDB = '설정 데이터베이스';
$lang->convert->dbHost = '데이터베이스 서버';
$lang->convert->dbPort = '서버 포트';
$lang->convert->dbUser = '데이터베이스 사용자';
$lang->convert->dbPassword = '데이터베이스 암호';
$lang->convert->dbName = '%s database';
$lang->convert->dbCharset = '%s 데이터베이스 코드';
$lang->convert->dbPrefix = '%s table prefix';
$lang->convert->installPath= '%s installed path';
$lang->convert->checkDB = '데이터베이스';
$lang->convert->checkTable = '테이블';
$lang->convert->checkPath = '설치 경로';
$lang->convert->execute = '가져오기 실행';
$lang->convert->item = '수입 품목';
$lang->convert->count = '카운트';
$lang->convert->info = '정보';
$lang->convert->bugfree->users = '사용자';
$lang->convert->bugfree->projects = '프로젝트';
$lang->convert->bugfree->modules = '모듈';
$lang->convert->bugfree->bugs = '곤충';
$lang->convert->bugfree->cases = '이스';
$lang->convert->bugfree->results = '결과';
$lang->convert->bugfree->actions = '역사';
$lang->convert->bugfree->files = '파일';
$lang->convert->errorConnectDB = '연결하는 데이터베이스 서버가 실패했습니다.';
$lang->convert->errorFileNotExits = 'File %s not exits.';
$lang->convert->errorUserExists = 'User %s exits already.';
$lang->convert->errorCopyFailed = 'file %s copy failed.';

View File

@@ -1,80 +1,67 @@
<?php
/**
* The convert module zh-cn file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
$lang->convert->common = '从其他系统导入';
$lang->convert->next = '下一步';
$lang->convert->pre = '返回';
$lang->convert->reload = '刷新';
$lang->convert->error = '错误 ';
$lang->convert->start = '开始转换';
$lang->convert->desc = <<<EOT
<p>欢迎使用系统转换向导,本程序会帮助您将其他系统的数据转换到禅道项目管理系统中。</p>
<strong>转换存在一定的风险,转换之前,我们强烈建议您备份数据库及相应的数据文件,并保证转换的时候,没有其他人进行操作。</strong>
EOT;
$lang->convert->selectSource = '选择来源系统及版本';
$lang->convert->source = '来源系统';
$lang->convert->version = '版本';
$lang->convert->mustSelectSource = "必须选择一个来源。";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = '设置';
$lang->convert->checkConfig = '检查配置';
$lang->convert->ok = '检查通过(√)';
$lang->convert->fail = '检查失败(×)';
$lang->convert->settingDB = '设置数据库';
$lang->convert->dbHost = '数据库服务器';
$lang->convert->dbPort = '服务器端口';
$lang->convert->dbUser = '数据库用户名';
$lang->convert->dbPassword = '数据库密码';
$lang->convert->dbName = '%s使用的库';
$lang->convert->dbCharset = '%s数据库编码';
$lang->convert->dbPrefix = '%s表前缀';
$lang->convert->installPath= '%s安装的根目录';
$lang->convert->checkDB = '数据库';
$lang->convert->checkTable = '';
$lang->convert->checkPath = '安装路径';
$lang->convert->execute = '执行转换';
$lang->convert->item = '转换项';
$lang->convert->count = '转换数量';
$lang->convert->info = '转换信息';
$lang->convert->bugfree->users = '用户';
$lang->convert->bugfree->projects = '项目';
$lang->convert->bugfree->modules = '模块';
$lang->convert->bugfree->bugs = 'Bug';
$lang->convert->bugfree->cases = '测试用例';
$lang->convert->bugfree->results = '测试结果';
$lang->convert->bugfree->actions = '历史记录';
$lang->convert->bugfree->files = '附件';
$lang->convert->errorConnectDB = '数据库连接失败 ';
$lang->convert->errorFileNotExits = '文件 %s 不存在';
$lang->convert->errorUserExists = '用户 %s 已存在';
$lang->convert->errorCopyFailed = '文件 %s 拷贝失败';
<?php
/**
* The convert module zh-cn file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
$lang->convert->common = '从其他系统导入';
$lang->convert->next = '下一步';
$lang->convert->pre = '返回';
$lang->convert->reload = '刷新';
$lang->convert->error = '错误 ';
$lang->convert->start = '开始转换';
$lang->convert->desc = <<<EOT
<p>欢迎使用系统转换向导,本程序会帮助您将其他系统的数据转换到禅道项目管理系统中。</p>
<strong>转换存在一定的风险,转换之前,我们强烈建议您备份数据库及相应的数据文件,并保证转换的时候,没有其他人进行操作。</strong>
EOT;
$lang->convert->selectSource = '选择来源系统及版本';
$lang->convert->source = '来源系统';
$lang->convert->version = '版本';
$lang->convert->mustSelectSource = "必须选择一个来源。";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = '设置';
$lang->convert->checkConfig = '检查配置';
$lang->convert->ok = '检查通过(√)';
$lang->convert->fail = '检查失败(×)';
$lang->convert->settingDB = '设置数据库';
$lang->convert->dbHost = '数据库服务器';
$lang->convert->dbPort = '服务器端口';
$lang->convert->dbUser = '数据库用户名';
$lang->convert->dbPassword = '数据库密码';
$lang->convert->dbName = '%s使用的库';
$lang->convert->dbCharset = '%s数据库编码';
$lang->convert->dbPrefix = '%s表前缀';
$lang->convert->installPath= '%s安装的根目录';
$lang->convert->checkDB = '数据库';
$lang->convert->checkTable = '表';
$lang->convert->checkPath = '安装路径';
$lang->convert->execute = '执行转换';
$lang->convert->item = '转换项';
$lang->convert->count = '转换数量';
$lang->convert->info = '转换信息';
$lang->convert->bugfree->users = '用户';
$lang->convert->bugfree->projects = '项目';
$lang->convert->bugfree->modules = '模块';
$lang->convert->bugfree->bugs = 'Bug';
$lang->convert->bugfree->cases = '测试用例';
$lang->convert->bugfree->results = '测试结果';
$lang->convert->bugfree->actions = '历史记录';
$lang->convert->bugfree->files = '附件';
$lang->convert->errorConnectDB = '数据库连接失败 ';
$lang->convert->errorFileNotExits = '文件 %s 不存在';
$lang->convert->errorUserExists = '用户 %s 已存在';
$lang->convert->errorCopyFailed = '文件 %s 拷贝失败';

View File

@@ -1,80 +1,67 @@
<?php
/**
* The convert module zh-tw file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->convert->common = '從其他系統導入';
$lang->convert->next = '下一步';
$lang->convert->pre = '返回';
$lang->convert->reload = '刷新';
$lang->convert->error = '錯誤 ';
$lang->convert->start = '開始轉換';
$lang->convert->desc = <<<EOT
<p>歡迎使用系統轉換嚮導,本程序會幫助您將其他系統的數據轉換到禪道項目管理系統中。</p>
<strong>轉換存在一定的風險,轉換之前,我們強烈建議您備份資料庫及相應的數據檔案,並保證轉換的時候,沒有其他人進行操作。</strong>
EOT;
$lang->convert->selectSource = '選擇來源系統及版本';
$lang->convert->source = '來源系統';
$lang->convert->version = '版本';
$lang->convert->mustSelectSource = "必須選擇一個來源。";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = '設置';
$lang->convert->checkConfig = '檢查配置';
$lang->convert->ok = '檢查通過(√)';
$lang->convert->fail = '檢查失敗(×)';
$lang->convert->settingDB = '設置資料庫';
$lang->convert->dbHost = '資料庫伺服器';
$lang->convert->dbPort = '伺服器連接埠';
$lang->convert->dbUser = '資料庫用戶名';
$lang->convert->dbPassword = '資料庫密碼';
$lang->convert->dbName = '%s使用的庫';
$lang->convert->dbCharset = '%s資料庫編碼';
$lang->convert->dbPrefix = '%s表首碼';
$lang->convert->installPath= '%s安裝的根目錄';
$lang->convert->checkDB = '資料庫';
$lang->convert->checkTable = '';
$lang->convert->checkPath = '安裝路徑';
$lang->convert->execute = '執行轉換';
$lang->convert->item = '轉換項';
$lang->convert->count = '轉換數量';
$lang->convert->info = '轉換信息';
$lang->convert->bugfree->users = '用戶';
$lang->convert->bugfree->projects = '項目';
$lang->convert->bugfree->modules = '模組';
$lang->convert->bugfree->bugs = 'Bug';
$lang->convert->bugfree->cases = '測試用例';
$lang->convert->bugfree->results = '測試結果';
$lang->convert->bugfree->actions = '歷史記錄';
$lang->convert->bugfree->files = '附件';
$lang->convert->errorConnectDB = '資料庫連接失敗 ';
$lang->convert->errorFileNotExits = '檔案 %s 不存在';
$lang->convert->errorUserExists = '用戶 %s 已存在';
$lang->convert->errorCopyFailed = '檔案 %s 拷貝失敗';
<?php
/**
* The convert module zh-tw file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->convert->common = '從其他系統導入';
$lang->convert->next = '下一步';
$lang->convert->pre = '返回';
$lang->convert->reload = '刷新';
$lang->convert->error = '錯誤 ';
$lang->convert->start = '開始轉換';
$lang->convert->desc = <<<EOT
<p>歡迎使用系統轉換嚮導,本程序會幫助您將其他系統的數據轉換到禪道項目管理系統中。</p>
<strong>轉換存在一定的風險,轉換之前,我們強烈建議您備份資料庫及相應的數據檔案,並保證轉換的時候,沒有其他人進行操作。</strong>
EOT;
$lang->convert->selectSource = '選擇來源系統及版本';
$lang->convert->source = '來源系統';
$lang->convert->version = '版本';
$lang->convert->mustSelectSource = "必須選擇一個來源。";
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->setting = '設置';
$lang->convert->checkConfig = '檢查配置';
$lang->convert->ok = '檢查通過(√)';
$lang->convert->fail = '檢查失敗(×)';
$lang->convert->settingDB = '設置資料庫';
$lang->convert->dbHost = '資料庫伺服器';
$lang->convert->dbPort = '伺服器連接埠';
$lang->convert->dbUser = '資料庫用戶名';
$lang->convert->dbPassword = '資料庫密碼';
$lang->convert->dbName = '%s使用的庫';
$lang->convert->dbCharset = '%s資料庫編碼';
$lang->convert->dbPrefix = '%s表首碼';
$lang->convert->installPath= '%s安裝的根目錄';
$lang->convert->checkDB = '資料庫';
$lang->convert->checkTable = '表';
$lang->convert->checkPath = '安裝路徑';
$lang->convert->execute = '執行轉換';
$lang->convert->item = '轉換項';
$lang->convert->count = '轉換數量';
$lang->convert->info = '轉換信息';
$lang->convert->bugfree->users = '用戶';
$lang->convert->bugfree->projects = '項目';
$lang->convert->bugfree->modules = '模組';
$lang->convert->bugfree->bugs = 'Bug';
$lang->convert->bugfree->cases = '測試用例';
$lang->convert->bugfree->results = '測試結果';
$lang->convert->bugfree->actions = '歷史記錄';
$lang->convert->bugfree->files = '附件';
$lang->convert->errorConnectDB = '資料庫連接失敗 ';
$lang->convert->errorFileNotExits = '檔案 %s 不存在';
$lang->convert->errorUserExists = '用戶 %s 已存在';
$lang->convert->errorCopyFailed = '檔案 %s 拷貝失敗';

View File

@@ -1,79 +1,66 @@
<?php
/**
* The model file of convert module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class convertModel extends model
{
/* 连接到数据库。*/
public function connectDB()
{
$dsn = "mysql:host={$this->post->dbHost}; port={$this->post->dbPort};dbname={$this->post->dbName}";
try
{
$dbh = new PDO($dsn, $this->post->dbUser, $this->post->dbPassword);
$dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->exec("SET NAMES {$this->post->dbCharset}");
$this->sourceDBH = $dbh;
return $dbh;
}
catch (PDOException $exception)
{
return $exception->getMessage();
}
}
/* 判断数据库是否存在。*/
public function dbExists()
{
$sql = "SHOW DATABASES like '{$this->post->db->name}'";
return $this->dbh->query($sql)->fetch();
}
/* 记录当前数据库中的每个表最大id。*/
public function saveState()
{
/* 获得用户级别的常量定义列表。*/
$constants = get_defined_constants(true);
$userConstants = $constants['user'];
/* 去掉不需要保存状态的表。*/
unset($userConstants['TABLE_BURN']);
unset($userConstants['TABLE_GROUPPRIV']);
unset($userConstants['TABLE_PROJECTPRODUCT']);
unset($userConstants['TABLE_PROJECTSTORY']);
unset($userConstants['TABLE_STORYSPEC']);
unset($userConstants['TABLE_TEAM']);
unset($userConstants['TABLE_USERGROUP']);
/* 查找每个表的id字段的最大值。*/
foreach($userConstants as $key => $value)
{
if(strpos($key, 'TABLE') === false) continue;
if($key == 'TABLE_COMPANY') continue;
$state[$value] = (int)$this->dao->select('MAX(id) AS id')->from($value)->fetch('id');
}
$this->session->set('state', $state);
}
}
<?php
/**
* The model file of convert module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class convertModel extends model
{
/* 连接到数据库。*/
public function connectDB()
{
$dsn = "mysql:host={$this->post->dbHost}; port={$this->post->dbPort};dbname={$this->post->dbName}";
try
{
$dbh = new PDO($dsn, $this->post->dbUser, $this->post->dbPassword);
$dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->exec("SET NAMES {$this->post->dbCharset}");
$this->sourceDBH = $dbh;
return $dbh;
}
catch (PDOException $exception)
{
return $exception->getMessage();
}
}
/* 判断数据库是否存在。*/
public function dbExists()
{
$sql = "SHOW DATABASES like '{$this->post->db->name}'";
return $this->dbh->query($sql)->fetch();
}
/* 记录当前数据库中的每个表最大id。*/
public function saveState()
{
/* 获得用户级别的常量定义列表。*/
$constants = get_defined_constants(true);
$userConstants = $constants['user'];
/* 去掉不需要保存状态的表。*/
unset($userConstants['TABLE_BURN']);
unset($userConstants['TABLE_GROUPPRIV']);
unset($userConstants['TABLE_PROJECTPRODUCT']);
unset($userConstants['TABLE_PROJECTSTORY']);
unset($userConstants['TABLE_STORYSPEC']);
unset($userConstants['TABLE_TEAM']);
unset($userConstants['TABLE_USERGROUP']);
/* 查找每个表的id字段的最大值。*/
foreach($userConstants as $key => $value)
{
if(strpos($key, 'TABLE') === false) continue;
if($key == 'TABLE_COMPANY') continue;
$state[$value] = (int)$this->dao->select('MAX(id) AS id')->from($value)->fetch('id');
}
$this->session->set('state', $state);
}
}

View File

@@ -1,43 +1,30 @@
<?php
/**
* The html template file of check config method of convert module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' action='<?php echo inlink('execute');?>'>
<table align='center' class='table-5 f-14px'>
<caption><?php echo $lang->convert->checkConfig . $lang->colon . strtoupper($source);?></caption>
<?php echo $checkResult;?>
</table>
<?php
echo html::hidden('dbHost', $this->post->dbHost);
echo html::hidden('dbPort', $this->post->dbPort);
echo html::hidden('dbUser', $this->post->dbUser);
echo html::hidden('dbPassword', $this->post->dbPassword);
echo html::hidden('dbName', $this->post->dbName);
echo html::hidden('dbCharset', $this->post->dbCharset);
echo html::hidden('dbPrefix', $this->post->dbPrefix);
echo html::hidden('installPath',$this->post->installPath);
?>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The html template file of check config method of convert module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' action='<?php echo inlink('execute');?>'>
<table align='center' class='table-5 f-14px'>
<caption><?php echo $lang->convert->checkConfig . $lang->colon . strtoupper($source);?></caption>
<?php echo $checkResult;?>
</table>
<?php
echo html::hidden('dbHost', $this->post->dbHost);
echo html::hidden('dbPort', $this->post->dbPort);
echo html::hidden('dbUser', $this->post->dbUser);
echo html::hidden('dbPassword', $this->post->dbPassword);
echo html::hidden('dbName', $this->post->dbName);
echo html::hidden('dbCharset', $this->post->dbCharset);
echo html::hidden('dbPrefix', $this->post->dbPrefix);
echo html::hidden('installPath',$this->post->installPath);
?>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,32 +1,19 @@
<?php
/**
* The html template file of execute method of convert module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<table align='center' class='f-14px'>
<caption><?php echo $lang->convert->execute . $lang->colon . strtoupper($source);?></caption>
<?php echo $executeResult;?>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The html template file of execute method of convert module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<table align='center' class='f-14px'>
<caption><?php echo $lang->convert->execute . $lang->colon . strtoupper($source);?></caption>
<?php echo $executeResult;?>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,32 +1,19 @@
<?php
/**
* The html template file of index method of convert module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoMS
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<table align='center' class='table-5'>
<caption><?php echo $lang->convert->common;?></caption>
<tr><td><?php echo nl2br($lang->convert->desc);?></td></tr>
<tr><td><h3 class='a-center'><?php echo html::a($this->createLink('convert', 'selectsource'), $lang->convert->start);?></h3></td></tr>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The html template file of index method of convert module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoMS
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<table align='center' class='table-5'>
<caption><?php echo $lang->convert->common;?></caption>
<tr><td><?php echo nl2br($lang->convert->desc);?></td></tr>
<tr><td><h3 class='a-center'><?php echo html::a($this->createLink('convert', 'selectsource'), $lang->convert->start);?></h3></td></tr>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,45 +1,32 @@
<?php
/**
* The html template file of select source method of convert module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' action='<?php echo inlink('setConfig');?>'>
<table align='center' class='table-5 f-14px'>
<caption><?php echo $lang->convert->selectSource;?></caption>
<tr>
<th class='w-p20'><?php echo $lang->convert->source;?></th>
<th><?php echo $lang->convert->version;?></th>
</tr>
<?php foreach($lang->convert->sourceList as $name => $versions):?>
<tr>
<th class='rowhead'><?php echo $name;?></th>
<td><?php echo html::radio('source', $versions);?></td>
</tr>
<?php endforeach;?>
<tr>
<td colspan='2' class='a-center'><?php echo html::submitButton();?></td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The html template file of select source method of convert module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' action='<?php echo inlink('setConfig');?>'>
<table align='center' class='table-5 f-14px'>
<caption><?php echo $lang->convert->selectSource;?></caption>
<tr>
<th class='w-p20'><?php echo $lang->convert->source;?></th>
<th><?php echo $lang->convert->version;?></th>
</tr>
<?php foreach($lang->convert->sourceList as $name => $versions):?>
<tr>
<th class='rowhead'><?php echo $name;?></th>
<td><?php echo html::radio('source', $versions);?></td>
</tr>
<?php endforeach;?>
<tr>
<td colspan='2' class='a-center'><?php echo html::submitButton();?></td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,37 +1,24 @@
<?php
/**
* The html template file of setconfig method of convert module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' action='<?php echo inlink('checkconfig');?>'>
<table align='center' class='table-5 f-14px'>
<caption><?php echo $lang->convert->setting . $lang->colon . strtoupper($source);?></caption>
<?php echo $setting;?>
<tr>
<td colspan='2' class='a-center'><?php echo html::submitButton();?></td>
</tr>
</table>
<?php echo html::hidden('source', $source) . html::hidden('version', $version);?>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The html template file of setconfig method of convert module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id$
*/
?>
<?php include '../../common/view/header.html.php';?>
<div class='yui-d0'>
<form method='post' action='<?php echo inlink('checkconfig');?>'>
<table align='center' class='table-5 f-14px'>
<caption><?php echo $lang->convert->setting . $lang->colon . strtoupper($source);?></caption>
<?php echo $setting;?>
<tr>
<td colspan='2' class='a-center'><?php echo html::submitButton();?></td>
</tr>
</table>
<?php echo html::hidden('source', $source) . html::hidden('version', $version);?>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,99 +1,86 @@
<?php
/**
* The control file of dept module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
class dept extends control
{
const NEW_CHILD_COUNT = 5;
public function __construct()
{
parent::__construct();
$this->loadModel('company')->setMenu();
}
/* 部门列表。*/
public function browse($deptID = 0)
{
$header['title'] = $this->lang->dept->manage . $this->lang->colon . $this->app->company->name;
$position[] = $this->lang->dept->manage;
$parentDepts = $this->dept->getParents($deptID);
$this->view->header = $header;
$this->view->position = $position;
$this->view->deptID = $deptID;
$this->view->depts = $this->dept->getTreeMenu($rooteDeptID = 0, array('deptmodel', 'createManageLink'));
$this->view->parentDepts = $parentDepts;
$this->view->sons = $this->dept->getSons($deptID);
$this->display();
}
/* 编辑部门。*/
public function edit($moduleID)
{
if(!empty($_POST))
{
if($this->product->update($_POST)) die(js::locate($this->createLink($this->moduleName, 'index', "product=$_POST[id]"), 'parent'));
}
$product = $this->product->getByID($productID);
$header['title'] = $this->lang->product->edit . $this->lang->colon . $product->name;
$this->view->header = $header;
$this->view->product = $product;
$this->display();
}
/* 更新排序。*/
public function updateOrder()
{
if(!empty($_POST))
{
$this->dept->updateOrder($_POST['orders']);
die(js::reload('parent'));
}
}
/* 维护下级部门。*/
public function manageChild()
{
if(!empty($_POST))
{
$this->dept->manageChild($_POST['parentDeptID'], $_POST['depts']);
die(js::reload('parent'));
}
}
/* 删除某一个部门。*/
public function delete($deptID, $confirm = 'no')
{
if($confirm == 'no')
{
echo js::confirm($this->lang->dept->confirmDelete, $this->createLink('dept', 'delete', "deptID=$deptID&confirm=yes"));
exit;
}
else
{
$this->dept->delete($deptID);
die(js::reload('parent'));
}
}
}
<?php
/**
* The control file of dept module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
class dept extends control
{
const NEW_CHILD_COUNT = 5;
public function __construct()
{
parent::__construct();
$this->loadModel('company')->setMenu();
}
/* 部门列表。*/
public function browse($deptID = 0)
{
$header['title'] = $this->lang->dept->manage . $this->lang->colon . $this->app->company->name;
$position[] = $this->lang->dept->manage;
$parentDepts = $this->dept->getParents($deptID);
$this->view->header = $header;
$this->view->position = $position;
$this->view->deptID = $deptID;
$this->view->depts = $this->dept->getTreeMenu($rooteDeptID = 0, array('deptmodel', 'createManageLink'));
$this->view->parentDepts = $parentDepts;
$this->view->sons = $this->dept->getSons($deptID);
$this->display();
}
/* 编辑部门。*/
public function edit($moduleID)
{
if(!empty($_POST))
{
if($this->product->update($_POST)) die(js::locate($this->createLink($this->moduleName, 'index', "product=$_POST[id]"), 'parent'));
}
$product = $this->product->getByID($productID);
$header['title'] = $this->lang->product->edit . $this->lang->colon . $product->name;
$this->view->header = $header;
$this->view->product = $product;
$this->display();
}
/* 更新排序。*/
public function updateOrder()
{
if(!empty($_POST))
{
$this->dept->updateOrder($_POST['orders']);
die(js::reload('parent'));
}
}
/* 维护下级部门。*/
public function manageChild()
{
if(!empty($_POST))
{
$this->dept->manageChild($_POST['parentDeptID'], $_POST['depts']);
die(js::reload('parent'));
}
}
/* 删除某一个部门。*/
public function delete($deptID, $confirm = 'no')
{
if($confirm == 'no')
{
echo js::confirm($this->lang->dept->confirmDelete, $this->createLink('dept', 'delete', "deptID=$deptID&confirm=yes"));
exit;
}
else
{
$this->dept->delete($deptID);
die(js::reload('parent'));
}
}
}

View File

@@ -1,35 +1,22 @@
<?php
/**
* The dept module English file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
$lang->dept->common = 'Department';
$lang->dept->add = "Add";
$lang->dept->addChild = "Add child department";
$lang->dept->manageChild = "Child deprtment";
$lang->dept->delete = "Delete";
$lang->dept->browse = "Manage";
$lang->dept->manage = "Manage";
$lang->dept->updateOrder = "Update order";
$lang->dept->users = "Users";
$lang->dept->saveButton = " Save (S) ";
$lang->dept->confirmDelete = "Are you sure to delete this department?";
<?php
/**
* The dept module English file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
$lang->dept->common = 'Department';
$lang->dept->add = "Add";
$lang->dept->addChild = "Add child department";
$lang->dept->manageChild = "Child deprtment";
$lang->dept->delete = "Delete";
$lang->dept->browse = "Manage";
$lang->dept->manage = "Manage";
$lang->dept->updateOrder = "Update order";
$lang->dept->users = "Users";
$lang->dept->saveButton = " Save (S) ";
$lang->dept->confirmDelete = "Are you sure to delete this department?";

View File

@@ -1,35 +1,22 @@
<?php
/**
* The dept module Japanese file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->dept->common = '部門';
$lang->dept->add = "追加";
$lang->dept->addChild = "子部門を追加する";
$lang->dept->manageChild = "チャイルド表情を通じて";
$lang->dept->delete = "削除";
$lang->dept->browse = "管理";
$lang->dept->manage = "管理";
$lang->dept->updateOrder = "更新順";
$lang->dept->users = "ユーザー";
$lang->dept->saveButton = "保存S";
$lang->dept->confirmDelete = "あなたはこの部門を削除してよろしいですか?";
<?php
/**
* The dept module Japanese file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->dept->common = '部門';
$lang->dept->add = "追加";
$lang->dept->addChild = "子部門を追加する";
$lang->dept->manageChild = "チャイルド表情を通じて";
$lang->dept->delete = "削除";
$lang->dept->browse = "管理";
$lang->dept->manage = "管理";
$lang->dept->updateOrder = "更新順";
$lang->dept->users = "ユーザー";
$lang->dept->saveButton = "保存S";
$lang->dept->confirmDelete = "あなたはこの部門を削除してよろしいですか?";

View File

@@ -1,35 +1,22 @@
<?php
/**
* The dept module Korean file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->dept->common = '학부';
$lang->dept->add = "추가하기";
$lang->dept->addChild = "아동학과 추가";
$lang->dept->manageChild = "어린이 deprtment";
$lang->dept->delete = "삭제";
$lang->dept->browse = "관리";
$lang->dept->manage = "관리";
$lang->dept->updateOrder = "업데이트 순서";
$lang->dept->users = "사용자";
$lang->dept->saveButton = "저장 (S)";
$lang->dept->confirmDelete = "이 부서를 삭제하시겠습니까?";
<?php
/**
* The dept module Korean file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id: en.php 993 2010-08-02 10:20:01Z wwccss $
* @link http://www.zentao.net
*/
$lang->dept->common = '학부';
$lang->dept->add = "추가하기";
$lang->dept->addChild = "아동학과 추가";
$lang->dept->manageChild = "어린이 deprtment";
$lang->dept->delete = "삭제";
$lang->dept->browse = "관리";
$lang->dept->manage = "관리";
$lang->dept->updateOrder = "업데이트 순서";
$lang->dept->users = "사용자";
$lang->dept->saveButton = "저장 (S)";
$lang->dept->confirmDelete = "이 부서를 삭제하시겠습니까?";

View File

@@ -1,35 +1,22 @@
<?php
/**
* The dept module zh-cn file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
$lang->dept->common = '部门结构';
$lang->dept->add = "添加";
$lang->dept->addChild = "添加下级部门";
$lang->dept->manageChild = "下级部门";
$lang->dept->delete = "删除部门";
$lang->dept->browse = "部门维护";
$lang->dept->manage = "维护部门结构";
$lang->dept->updateOrder = "更新排序";
$lang->dept->users = "成员列表";
$lang->dept->saveButton = " 保存 (S) ";
$lang->dept->confirmDelete = " 您确定删除该部门吗?";
<?php
/**
* The dept module zh-cn file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
$lang->dept->common = '部门结构';
$lang->dept->add = "添加";
$lang->dept->addChild = "添加下级部门";
$lang->dept->manageChild = "下级部门";
$lang->dept->delete = "删除部门";
$lang->dept->browse = "部门维护";
$lang->dept->manage = "维护部门结构";
$lang->dept->updateOrder = "更新排序";
$lang->dept->users = "成员列表";
$lang->dept->saveButton = " 保存 (S) ";
$lang->dept->confirmDelete = " 您确定删除该部门吗?";

View File

@@ -1,35 +1,22 @@
<?php
/**
* The dept module zh-tw file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->dept->common = '部門結構';
$lang->dept->add = "添加";
$lang->dept->addChild = "添加下級部門";
$lang->dept->manageChild = "下級部門";
$lang->dept->delete = "刪除部門";
$lang->dept->browse = "部門維護";
$lang->dept->manage = "維護部門結構";
$lang->dept->updateOrder = "更新排序";
$lang->dept->users = "成員列表";
$lang->dept->saveButton = " 保存 (S) ";
$lang->dept->confirmDelete = " 您確定刪除該部門嗎?";
<?php
/**
* The dept module zh-tw file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id: zh-tw.php 1068 2010-09-11 07:11:57Z wwccss $
* @link http://www.zentao.net
*/
$lang->dept->common = '部門結構';
$lang->dept->add = "添加";
$lang->dept->addChild = "添加下級部門";
$lang->dept->manageChild = "下級部門";
$lang->dept->delete = "刪除部門";
$lang->dept->browse = "部門維護";
$lang->dept->manage = "維護部門結構";
$lang->dept->updateOrder = "更新排序";
$lang->dept->users = "成員列表";
$lang->dept->saveButton = " 保存 (S) ";
$lang->dept->confirmDelete = " 您確定刪除該部門嗎?";

View File

@@ -1,234 +1,221 @@
<?php
/**
* The model file of dept dept of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class deptModel extends model
{
/* 通过部门id获取部门信息。*/
public function getByID($deptID)
{
return $this->dao->findById($deptID)->from(TABLE_DEPT)->fetch();
}
/* 生成查询的sql语句。*/
private function buildMenuQuery($rootDeptID)
{
$rootDept = $this->getByID($rootDeptID);
if(!$rootDept) $rootDept->path = '';
return $this->dao->select('*')->from(TABLE_DEPT)
->beginIF($rootDeptID > 0)->where('path')->like($rootDept->path . '%')->fi()
->orderBy('grade desc, `order`')
->get();
}
/* 获取部门的下类列表用于生成select控件。*/
public function getOptionMenu($rootDeptID = 0)
{
$deptMenu = array();
$stmt = $this->dbh->query($this->buildMenuQuery($rootDeptID));
$depts = array();
while($dept = $stmt->fetch()) $depts[$dept->id] = $dept;
foreach($depts as $dept)
{
$parentDepts = explode(',', $dept->path);
$deptName = '/';
foreach($parentDepts as $parentDeptID)
{
if(empty($parentDeptID)) continue;
$deptName .= $depts[$parentDeptID]->name . '/';
}
$deptName = rtrim($deptName, '/');
$deptName .= "|$dept->id\n";
if(isset($deptMenu[$dept->id]) and !empty($deptMenu[$dept->id]))
{
if(isset($deptMenu[$dept->parent]))
{
$deptMenu[$dept->parent] .= $deptName;
}
else
{
$deptMenu[$dept->parent] = $deptName;;
}
$deptMenu[$dept->parent] .= $deptMenu[$dept->id];
}
else
{
if(isset($deptMenu[$dept->parent]) and !empty($deptMenu[$dept->parent]))
{
$deptMenu[$dept->parent] .= $deptName;
}
else
{
$deptMenu[$dept->parent] = $deptName;
}
}
}
$topMenu = @array_pop($deptMenu);
$topMenu = explode("\n", trim($topMenu));
$lastMenu[] = '/';
foreach($topMenu as $menu)
{
if(!strpos($menu, '|')) continue;
list($label, $deptID) = explode('|', $menu);
$lastMenu[$deptID] = $label;
}
return $lastMenu;
}
/* 获取树状的部门列表。*/
public function getTreeMenu($rootDeptID = 0, $userFunc)
{
$deptMenu = array();
$stmt = $this->dbh->query($this->buildMenuQuery($rootDeptID));
while($dept = $stmt->fetch())
{
$linkHtml = call_user_func($userFunc, $dept);
if(isset($deptMenu[$dept->id]) and !empty($deptMenu[$dept->id]))
{
if(!isset($deptMenu[$dept->parent])) $deptMenu[$dept->parent] = '';
$deptMenu[$dept->parent] .= "<li>$linkHtml";
$deptMenu[$dept->parent] .= "<ul>".$deptMenu[$dept->id]."</ul>\n";
}
else
{
if(isset($deptMenu[$dept->parent]) and !empty($deptMenu[$dept->parent]))
{
$deptMenu[$dept->parent] .= "<li>$linkHtml\n";
}
else
{
$deptMenu[$dept->parent] = "<li>$linkHtml\n";
}
}
$deptMenu[$dept->parent] .= "</li>\n";
}
$lastMenu = "<ul id='tree'>" . @array_pop($deptMenu) . "</ul>\n";
return $lastMenu;
}
/* 生成编辑链接。*/
public function createManageLink($dept)
{
$linkHtml = $dept->name;
$linkHtml .= ' ' . html::a(helper::createLink('dept', 'browse', "deptid={$dept->id}"), $this->lang->dept->manageChild);
$linkHtml .= ' ' . html::a(helper::createLink('dept', 'delete', "deptid={$dept->id}"), $this->lang->dept->delete, 'hiddenwin');
$linkHtml .= ' ' . html::input("orders[$dept->id]", $dept->order, 'style="width:30px;text-align:center"');
return $linkHtml;
}
/* 生成用户链接。*/
public function createMemberLink($dept)
{
$linkHtml = html::a(helper::createLink('company', 'browse', "dept={$dept->id}"), $dept->name, '_self', "id='dept{$dept->id}'");
return $linkHtml;
}
/* 获得某一个部门的直接下级部门。*/
public function getSons($deptID)
{
return $this->dao->select('*')->from(TABLE_DEPT)->where('parent')->eq($deptID)->orderBy('`order`')->fetchAll();
}
/* 获得一个部门的id列表。*/
public function getAllChildId($deptID)
{
if($deptID == 0) return array();
$dept = $this->getById($deptID);
$childs = $this->dao->select('id')->from(TABLE_DEPT)->where('path')->like($dept->path . '%')->fetchPairs();
return array_keys($childs);
}
/* 获得一个部门的所有上级部门。*/
public function getParents($deptID)
{
if($deptID == 0) return array();
$path = $this->dao->select('path')->from(TABLE_DEPT)->where('id')->eq($deptID)->fetch('path');
$path = substr($path, 1, -1);
if(empty($path)) return array();
return $this->dao->select('*')->from(TABLE_DEPT)->where('id')->in($path)->orderBy('grade')->fetchAll();
}
/* 更新排序信息。*/
public function updateOrder($orders)
{
foreach($orders as $deptID => $order) $this->dao->update(TABLE_DEPT)->set('`order`')->eq($order)->where('id')->eq($deptID)->exec();
}
/* 更新某一个部门的子部门。*/
public function manageChild($parentDeptID, $childs)
{
$parentDept = $this->getByID($parentDeptID);
if($parentDept)
{
$grade = $parentDept->grade + 1;
$parentPath = $parentDept->path;
}
else
{
$grade = 1;
$parentPath = ',';
}
foreach($childs as $deptID => $deptName)
{
if(empty($deptName)) continue;
if(is_numeric($deptID))
{
$dept->name = $deptName;
$dept->parent = $parentDeptID;
$dept->grade = $grade;
$this->dao->insert(TABLE_DEPT)->data($dept)->exec();
$deptID = $this->dao->lastInsertID();
$childPath = $parentPath . "$deptID,";
$this->dao->update(TABLE_DEPT)->set('path')->eq($childPath)->where('id')->eq($deptID)->exec();
}
else
{
$deptID = str_replace('id', '', $deptID);
$this->dao->update(TABLE_DEPT)->set('name')->eq($deptName)->where('id')->eq($deptID)->exec();
}
}
}
/* 获得某一个部门的成员列表。*/
public function getUsers($deptID)
{
return $this->dao->select('*')->from(TABLE_USER)
->where('deleted')->eq(0)
->beginIF($deptID)->andWhere('dept')->in($deptID)->fi()
->orderBy('id')
->fetchAll();
}
/* 删除一个部门。Todo: 需要修改下级目录的权限,还有对应的需求列表。*/
public function delete($deptID)
{
$this->dao->delete()->from(TABLE_DEPT)->where('id')->eq($deptID)->exec();
}
}
<?php
/**
* The model file of dept dept of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php
class deptModel extends model
{
/* 通过部门id获取部门信息。*/
public function getByID($deptID)
{
return $this->dao->findById($deptID)->from(TABLE_DEPT)->fetch();
}
/* 生成查询的sql语句。*/
private function buildMenuQuery($rootDeptID)
{
$rootDept = $this->getByID($rootDeptID);
if(!$rootDept) $rootDept->path = '';
return $this->dao->select('*')->from(TABLE_DEPT)
->beginIF($rootDeptID > 0)->where('path')->like($rootDept->path . '%')->fi()
->orderBy('grade desc, `order`')
->get();
}
/* 获取部门的下类列表用于生成select控件。*/
public function getOptionMenu($rootDeptID = 0)
{
$deptMenu = array();
$stmt = $this->dbh->query($this->buildMenuQuery($rootDeptID));
$depts = array();
while($dept = $stmt->fetch()) $depts[$dept->id] = $dept;
foreach($depts as $dept)
{
$parentDepts = explode(',', $dept->path);
$deptName = '/';
foreach($parentDepts as $parentDeptID)
{
if(empty($parentDeptID)) continue;
$deptName .= $depts[$parentDeptID]->name . '/';
}
$deptName = rtrim($deptName, '/');
$deptName .= "|$dept->id\n";
if(isset($deptMenu[$dept->id]) and !empty($deptMenu[$dept->id]))
{
if(isset($deptMenu[$dept->parent]))
{
$deptMenu[$dept->parent] .= $deptName;
}
else
{
$deptMenu[$dept->parent] = $deptName;;
}
$deptMenu[$dept->parent] .= $deptMenu[$dept->id];
}
else
{
if(isset($deptMenu[$dept->parent]) and !empty($deptMenu[$dept->parent]))
{
$deptMenu[$dept->parent] .= $deptName;
}
else
{
$deptMenu[$dept->parent] = $deptName;
}
}
}
$topMenu = @array_pop($deptMenu);
$topMenu = explode("\n", trim($topMenu));
$lastMenu[] = '/';
foreach($topMenu as $menu)
{
if(!strpos($menu, '|')) continue;
list($label, $deptID) = explode('|', $menu);
$lastMenu[$deptID] = $label;
}
return $lastMenu;
}
/* 获取树状的部门列表。*/
public function getTreeMenu($rootDeptID = 0, $userFunc)
{
$deptMenu = array();
$stmt = $this->dbh->query($this->buildMenuQuery($rootDeptID));
while($dept = $stmt->fetch())
{
$linkHtml = call_user_func($userFunc, $dept);
if(isset($deptMenu[$dept->id]) and !empty($deptMenu[$dept->id]))
{
if(!isset($deptMenu[$dept->parent])) $deptMenu[$dept->parent] = '';
$deptMenu[$dept->parent] .= "<li>$linkHtml";
$deptMenu[$dept->parent] .= "<ul>".$deptMenu[$dept->id]."</ul>\n";
}
else
{
if(isset($deptMenu[$dept->parent]) and !empty($deptMenu[$dept->parent]))
{
$deptMenu[$dept->parent] .= "<li>$linkHtml\n";
}
else
{
$deptMenu[$dept->parent] = "<li>$linkHtml\n";
}
}
$deptMenu[$dept->parent] .= "</li>\n";
}
$lastMenu = "<ul id='tree'>" . @array_pop($deptMenu) . "</ul>\n";
return $lastMenu;
}
/* 生成编辑链接。*/
public function createManageLink($dept)
{
$linkHtml = $dept->name;
$linkHtml .= ' ' . html::a(helper::createLink('dept', 'browse', "deptid={$dept->id}"), $this->lang->dept->manageChild);
$linkHtml .= ' ' . html::a(helper::createLink('dept', 'delete', "deptid={$dept->id}"), $this->lang->dept->delete, 'hiddenwin');
$linkHtml .= ' ' . html::input("orders[$dept->id]", $dept->order, 'style="width:30px;text-align:center"');
return $linkHtml;
}
/* 生成用户链接。*/
public function createMemberLink($dept)
{
$linkHtml = html::a(helper::createLink('company', 'browse', "dept={$dept->id}"), $dept->name, '_self', "id='dept{$dept->id}'");
return $linkHtml;
}
/* 获得某一个部门的直接下级部门。*/
public function getSons($deptID)
{
return $this->dao->select('*')->from(TABLE_DEPT)->where('parent')->eq($deptID)->orderBy('`order`')->fetchAll();
}
/* 获得一个部门的id列表。*/
public function getAllChildId($deptID)
{
if($deptID == 0) return array();
$dept = $this->getById($deptID);
$childs = $this->dao->select('id')->from(TABLE_DEPT)->where('path')->like($dept->path . '%')->fetchPairs();
return array_keys($childs);
}
/* 获得一个部门的所有上级部门。*/
public function getParents($deptID)
{
if($deptID == 0) return array();
$path = $this->dao->select('path')->from(TABLE_DEPT)->where('id')->eq($deptID)->fetch('path');
$path = substr($path, 1, -1);
if(empty($path)) return array();
return $this->dao->select('*')->from(TABLE_DEPT)->where('id')->in($path)->orderBy('grade')->fetchAll();
}
/* 更新排序信息。*/
public function updateOrder($orders)
{
foreach($orders as $deptID => $order) $this->dao->update(TABLE_DEPT)->set('`order`')->eq($order)->where('id')->eq($deptID)->exec();
}
/* 更新某一个部门的子部门。*/
public function manageChild($parentDeptID, $childs)
{
$parentDept = $this->getByID($parentDeptID);
if($parentDept)
{
$grade = $parentDept->grade + 1;
$parentPath = $parentDept->path;
}
else
{
$grade = 1;
$parentPath = ',';
}
foreach($childs as $deptID => $deptName)
{
if(empty($deptName)) continue;
if(is_numeric($deptID))
{
$dept->name = $deptName;
$dept->parent = $parentDeptID;
$dept->grade = $grade;
$this->dao->insert(TABLE_DEPT)->data($dept)->exec();
$deptID = $this->dao->lastInsertID();
$childPath = $parentPath . "$deptID,";
$this->dao->update(TABLE_DEPT)->set('path')->eq($childPath)->where('id')->eq($deptID)->exec();
}
else
{
$deptID = str_replace('id', '', $deptID);
$this->dao->update(TABLE_DEPT)->set('name')->eq($deptName)->where('id')->eq($deptID)->exec();
}
}
}
/* 获得某一个部门的成员列表。*/
public function getUsers($deptID)
{
return $this->dao->select('*')->from(TABLE_USER)
->where('deleted')->eq(0)
->beginIF($deptID)->andWhere('dept')->in($deptID)->fi()
->orderBy('id')
->fetchAll();
}
/* 删除一个部门。Todo: 需要修改下级目录的权限,还有对应的需求列表。*/
public function delete($deptID)
{
$this->dao->delete()->from(TABLE_DEPT)->where('id')->eq($deptID)->exec();
}
}

View File

@@ -1,80 +1,67 @@
<?php
/**
* The browse view file of dept module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/treeview.html.php';?>
<div class="yui-d0 yui-t3">
<div class="yui-main">
<div class="yui-b">
<form method='post' target='hiddenwin' action='<?php echo $this->createLink('dept', 'manageChild');?>'>
<table align='center' class='table-1'>
<caption><?php echo $lang->dept->manageChild;?></caption>
<tr>
<td width='10%'>
<nobr>
<?php
echo html::a($this->createLink('dept', 'browse'), $this->app->company->name);
echo $lang->arrow;
foreach($parentDepts as $dept)
{
echo html::a($this->createLink('dept', 'browse', "deptID=$dept->id"), $dept->name);
echo $lang->arrow;
}
?>
</nobr>
</td>
<td>
<?php
foreach($sons as $sonDept) echo html::input("depts[id$sonDept->id]", $sonDept->name) . '<br />';
for($i = 0; $i < DEPT::NEW_CHILD_COUNT ; $i ++) echo html::input("depts[]") . '<br />';
?>
</td>
</tr>
<tr>
<td class='a-center' colspan='2'>
<?php echo html::submitButton() . html::resetButton();?>
<input type='hidden' value='<?php echo $deptID;?>' name='parentDeptID' />
</td>
</tr>
</table>
</form>
</div>
</div>
<div class="yui-b">
<form method='post' target='hiddenwin' action='<?php echo $this->createLink('dept', 'updateOrder');?>'>
<table class='table-1'>
<caption><?php echo $header->title;?></caption>
<tr>
<td>
<div id='main'><?php echo $depts;?></div>
<div class='a-center'><?php echo html::submitButton($lang->dept->updateOrder);?></div>
</td>
</tr>
</table>
</form>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The browse view file of dept module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/treeview.html.php';?>
<div class="yui-d0 yui-t3">
<div class="yui-main">
<div class="yui-b">
<form method='post' target='hiddenwin' action='<?php echo $this->createLink('dept', 'manageChild');?>'>
<table align='center' class='table-1'>
<caption><?php echo $lang->dept->manageChild;?></caption>
<tr>
<td width='10%'>
<nobr>
<?php
echo html::a($this->createLink('dept', 'browse'), $this->app->company->name);
echo $lang->arrow;
foreach($parentDepts as $dept)
{
echo html::a($this->createLink('dept', 'browse', "deptID=$dept->id"), $dept->name);
echo $lang->arrow;
}
?>
</nobr>
</td>
<td>
<?php
foreach($sons as $sonDept) echo html::input("depts[id$sonDept->id]", $sonDept->name) . '<br />';
for($i = 0; $i < DEPT::NEW_CHILD_COUNT ; $i ++) echo html::input("depts[]") . '<br />';
?>
</td>
</tr>
<tr>
<td class='a-center' colspan='2'>
<?php echo html::submitButton() . html::resetButton();?>
<input type='hidden' value='<?php echo $deptID;?>' name='parentDeptID' />
</td>
</tr>
</table>
</form>
</div>
</div>
<div class="yui-b">
<form method='post' target='hiddenwin' action='<?php echo $this->createLink('dept', 'updateOrder');?>'>
<table class='table-1'>
<caption><?php echo $header->title;?></caption>
<tr>
<td>
<div id='main'><?php echo $depts;?></div>
<div class='a-center'><?php echo html::submitButton($lang->dept->updateOrder);?></div>
</td>
</tr>
</table>
</form>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,51 +1,38 @@
<?php
/**
* The create view of product module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='doc3'>
<form method='post' target='hiddenwin'>
<table align='center' class='table-4'>
<caption><?php echo $lang->product->create;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->product->name;?></th>
<td class='a-left'><input type='text' name='name' /></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->product->code;?></th>
<td class='a-left'><input type='text' name='code' /></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->product->desc;?></th>
<td class='a-left'><textarea name='desc' style='width:100%' rows='5'></textarea></td>
</tr>
<tr>
<td colspan='2'>
<input type='submit' value='<?php echo $lang->product->saveButton;?>' accesskey='S' />
<input type='reset' value='<?php echo $lang->reset;?>' />
</td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The create view of product module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='doc3'>
<form method='post' target='hiddenwin'>
<table align='center' class='table-4'>
<caption><?php echo $lang->product->create;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->product->name;?></th>
<td class='a-left'><input type='text' name='name' /></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->product->code;?></th>
<td class='a-left'><input type='text' name='code' /></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->product->desc;?></th>
<td class='a-left'><textarea name='desc' style='width:100%' rows='5'></textarea></td>
</tr>
<tr>
<td colspan='2'>
<input type='submit' value='<?php echo $lang->product->saveButton;?>' accesskey='S' />
<input type='reset' value='<?php echo $lang->reset;?>' />
</td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,52 +1,39 @@
<?php
/**
* The edit view of product module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='doc3'>
<form method='post' target='hiddenwin'>
<table align='center' class='table-4'>
<caption><?php echo $lang->product->edit;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->product->name;?></th>
<td class='a-left'><input type='text' name='name' value='<?php echo $product->name;?>' /></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->product->code;?></th>
<td class='a-left'><input type='text' name='code' value='<?php echo $product->code;?>' /></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->product->desc;?></th>
<td class='a-left'><textarea name='desc' style='width:100%' rows='5'><?php echo $product->desc;?></textarea></td>
</tr>
<tr>
<td colspan='2'>
<input type='submit' value='<?php echo $lang->product->saveButton;?>' accesskey='S' />
<input type='reset' value='<?php echo $lang->reset;?>' />
<input type='hidden' value='<?php echo $product->id;?>' name='id' />
</td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The edit view of product module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='doc3'>
<form method='post' target='hiddenwin'>
<table align='center' class='table-4'>
<caption><?php echo $lang->product->edit;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->product->name;?></th>
<td class='a-left'><input type='text' name='name' value='<?php echo $product->name;?>' /></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->product->code;?></th>
<td class='a-left'><input type='text' name='code' value='<?php echo $product->code;?>' /></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->product->desc;?></th>
<td class='a-left'><textarea name='desc' style='width:100%' rows='5'><?php echo $product->desc;?></textarea></td>
</tr>
<tr>
<td colspan='2'>
<input type='submit' value='<?php echo $lang->product->saveButton;?>' accesskey='S' />
<input type='reset' value='<?php echo $lang->reset;?>' />
<input type='hidden' value='<?php echo $product->id;?>' name='id' />
</td>
</tr>
</table>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,301 +1,288 @@
<?php
/**
* The control file of doc module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: control.php 933 2010-07-06 06:53:40Z wwccss $
* @link http://www.zentao.net
*/
class doc extends control
{
/* 构造函数,加载公用的模块。*/
public function __construct()
{
parent::__construct();
$this->loadModel('user');
$this->loadModel('tree');
$this->loadModel('action');
$this->libs = $this->doc->getLibs();
}
/* 首页,跳转到浏览页面。*/
public function index()
{
$this->locate(inlink('browse'));
}
/* 浏览文档。*/
public function browse($libID = 'product', $moduleID = 0, $productID = 0, $projectID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
$this->doc->setMenu($this->libs, $libID, 'doc');
$this->session->set('docList', $this->app->getURI(true));
/* 设置header和导航条信息。*/
$this->view->header->title = $this->lang->doc->index . $this->lang->colon . $this->libs[$libID];
$this->view->position[] = $this->libs[$libID];
/* 加载分页类并查询docs列表。*/
$this->app->loadClass('pager', $static = true);
$pager = new pager($recTotal, $recPerPage, $pageID);
/* 查找文档列表。*/
$modules = 0;
if($moduleID) $modules = $this->tree->getAllChildID($moduleID);
$docs = $this->doc->getDocs($libID, $productID, $projectID, $modules, $orderBy, $pager);
/* 获得树状列表。*/
if($libID == 'product' or $libID == 'project')
{
$moduleTree = $this->tree->getSystemDocTreeMenu($libID);
}
else
{
$moduleTree = $this->tree->getTreeMenu($libID, $viewType = 'customdoc', $startModuleID = 0, array('treeModel', 'createDocLink'));
}
$this->view->libID = $libID;
$this->view->libName = $this->libs[$libID];
$this->view->moduleID = $moduleID;
$this->view->moduleTree = $moduleTree;
$this->view->parentModules = $this->tree->getParents($moduleID);
$this->view->docs = $docs;
$this->view->pager = $pager;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->orderBy = $orderBy;
$this->view->productID = $productID;
$this->view->projectID = $projectID;
$this->display();
}
/* 新增文档库。*/
public function createLib()
{
if(!empty($_POST))
{
$libID = $this->doc->createLib();
if(!dao::isError())
{
$this->loadModel('action')->create('docLib', $libID, 'Created');
die(js::locate($this->createLink($this->moduleName, 'browse', "libID=$libID"), 'parent'));
}
else
{
echo js::error(dao::getError());
}
}
die($this->display());
}
/* 编辑文档库。*/
public function editLib($libID)
{
if(!empty($_POST))
{
$changes = $this->doc->updateLib($libID);
if(dao::isError()) die(js::error(dao::getError()));
if($changes)
{
$actionID = $this->loadModel('action')->create('docLib', $libID, 'edited');
$this->action->logHistory($actionID, $changes);
}
die(js::locate($this->createLink($this->moduleName, 'browse', "libID=$libID"), 'parent'));
}
$lib = $this->doc->getLibByID($libID);
$this->view->libName = empty($lib) ? $libID : $lib->name;
$this->view->libID = $libID;
die($this->display());
}
/* 删除文档库。*/
public function deleteLib($libID, $confirm = 'no')
{
if($libID == 'product' or $libID == 'project') die();
if($confirm == 'no')
{
die(js::confirm($this->lang->doc->confirmDeleteLib, $this->createLink('doc', 'deleteLib', "libID=$libID&confirm=yes")));
}
else
{
$this->doc->delete(TABLE_DOCLIB, $libID);
die(js::locate($this->createLink('doc', 'browse'), 'parent'));
}
}
/* 创建文档。*/
public function create($libID, $moduleID = 0, $productID = 0, $projectID = 0, $from = 'doc')
{
$projectID = (int)$projectID;
if(!empty($_POST))
{
$docID = $this->doc->create();
if(dao::isError()) die(js::error(dao::getError()));
$this->action->create('doc', $docID, 'Created');
if($from == 'product') $link = $this->createLink('product', 'doc', "productID={$this->post->product}");
if($from == 'project') $link = $this->createLink('project', 'doc', "projectID={$this->post->project}");
if($from == 'doc')
{
$productID = intval($this->post->product);
$projectID = intval($this->post->project);
$vars = "libID=$libID&moduleID={$this->post->module}&productID=$productID&projectID=$projectID";
$link = $this->createLink('doc', 'browse', $vars);
}
die(js::locate($link, 'parent'));
}
$this->loadModel('product');
$this->loadModel('project');
/* 设置当前的文档库,设置菜单。*/
if($from == 'product')
{
$this->lang->doc->menu = $this->lang->product->menu;
$this->product->setMenu($this->product->getPairs(), $productID);
$this->lang->set('menugroup.doc', 'product');
}
elseif($from == 'project')
{
$this->lang->doc->menu = $this->lang->project->menu;
$this->project->setMenu($this->project->getPairs(), $projectID);
$this->lang->set('menugroup.doc', 'project');
}
else
{
$this->doc->setMenu($this->libs, $libID);
}
/* 获得子模块列表。*/
if($libID == 'product' or $libID == 'project')
{
$moduleOptionMenu = $this->tree->getOptionMenu(0, $libID . 'doc', $startModuleID = 0);
}
else
{
$moduleOptionMenu = $this->tree->getOptionMenu($libID, 'customdoc', $startModuleID = 0);
}
/* 位置信息。*/
$this->view->header->title = $this->libs[$libID] . $this->lang->colon . $this->lang->doc->create;
$this->view->position[] = html::a($this->createLink('doc', 'browse', "libID=$libID"), $this->libs[$libID]);
$this->view->position[] = $this->lang->doc->create;
$this->view->libID = $libID;
$this->view->moduleOptionMenu = $moduleOptionMenu;
$this->view->moduleID = $moduleID;
$this->view->productID = $productID;
$this->view->projectID = $projectID;
$this->view->products = $projectID == 0 ? $this->product->getPairs() : $this->project->getProducts($projectID);
$this->view->projects = $this->loadModel('project')->getPairs();
$this->display();
}
/* 编辑文档。*/
public function edit($docID)
{
/* 更新文档信息。*/
if(!empty($_POST))
{
$changes = $this->doc->update($docID);
if(dao::isError()) die(js::error(dao::getError()));
$files = $this->loadModel('file')->saveUpload('doc', $docID);
if(!empty($changes) or !empty($files))
{
$action = !empty($changes) ? 'Edited' : 'Commented';
$fileAction = '';
if(!empty($files)) $fileAction = $this->lang->addFiles . join(',', $files) . "\n" ;
$actionID = $this->action->create('doc', $docID, $action, $fileAction);
$this->action->logHistory($actionID, $changes);
}
die(js::locate($this->createLink('doc', 'view', "docID=$docID"), 'parent'));
}
/* 查找当前文档信息。*/
$doc = $this->doc->getById($docID);
/* 设置菜单。*/
$libID = $doc->lib;
$this->doc->setMenu($this->libs, $libID);
/* 获得子模块列表。*/
if($libID == 'product' or $libID == 'project')
{
$moduleOptionMenu = $this->tree->getOptionMenu(0, $libID . 'doc', $startModuleID = 0);
}
else
{
$moduleOptionMenu = $this->tree->getOptionMenu($libID, 'customdoc', $startModuleID = 0);
}
/* 位置信息。*/
$this->view->header->title = $this->libs[$libID] . $this->lang->colon . $this->lang->doc->create;
$this->view->position[] = html::a($this->createLink('doc', 'browse', "libID=$libID"), $this->libs[$libID]);
$this->view->position[] = $this->lang->doc->create;
$this->view->doc = $doc;
$this->view->libID = $libID;
$this->view->users = $this->user->getPairs('noclosed,nodeleted');
$this->view->moduleOptionMenu = $moduleOptionMenu;
$this->display();
}
/* 查看一个文档。*/
public function view($docID)
{
/* 查找文档信息。*/
$doc = $this->doc->getById($docID);
if(!$doc) die(js::error($this->lang->notFound) . js::locate('back'));
/* 文档库名称。*/
$lib = $doc->libName;
if($doc->lib == 'product') $lib = $doc->productName;
if($doc->lib == 'project') $lib = $doc->productName . $this->lang->arrow . $doc->projectName;
/* 设置菜单。*/
$this->doc->setMenu($this->libs, $doc->lib);
/* 位置信息。*/
$this->view->header->title = $this->libs[$doc->lib] . $this->lang->colon . $this->lang->doc->create;
$this->view->position[] = html::a($this->createLink('doc', 'browse', "libID=$doc->lib"), $this->libs[$doc->lib]);
$this->view->position[] = $this->lang->doc->create;
$this->view->doc = $doc;
$this->view->lib = $lib;
$this->view->actions = $this->loadModel('action')->getList('doc', $docID);
$this->view->users = $this->user->getPairs('noclosed,nodeleted');
$this->display();
}
/* 删除文档。*/
public function delete($docID, $confirm = 'no')
{
if($confirm == 'no')
{
die(js::confirm($this->lang->doc->confirmDelete, inlink('delete', "docID=$docID&confirm=yes")));
}
else
{
$this->doc->delete(TABLE_DOC, $docID);
die(js::locate($this->session->docList, 'parent'));
}
}
}
<?php
/**
* The control file of doc module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: control.php 933 2010-07-06 06:53:40Z wwccss $
* @link http://www.zentao.net
*/
class doc extends control
{
/* 构造函数,加载公用的模块。*/
public function __construct()
{
parent::__construct();
$this->loadModel('user');
$this->loadModel('tree');
$this->loadModel('action');
$this->libs = $this->doc->getLibs();
}
/* 首页,跳转到浏览页面。*/
public function index()
{
$this->locate(inlink('browse'));
}
/* 浏览文档。*/
public function browse($libID = 'product', $moduleID = 0, $productID = 0, $projectID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
$this->doc->setMenu($this->libs, $libID, 'doc');
$this->session->set('docList', $this->app->getURI(true));
/* 设置header和导航条信息。*/
$this->view->header->title = $this->lang->doc->index . $this->lang->colon . $this->libs[$libID];
$this->view->position[] = $this->libs[$libID];
/* 加载分页类并查询docs列表。*/
$this->app->loadClass('pager', $static = true);
$pager = new pager($recTotal, $recPerPage, $pageID);
/* 查找文档列表。*/
$modules = 0;
if($moduleID) $modules = $this->tree->getAllChildID($moduleID);
$docs = $this->doc->getDocs($libID, $productID, $projectID, $modules, $orderBy, $pager);
/* 获得树状列表。*/
if($libID == 'product' or $libID == 'project')
{
$moduleTree = $this->tree->getSystemDocTreeMenu($libID);
}
else
{
$moduleTree = $this->tree->getTreeMenu($libID, $viewType = 'customdoc', $startModuleID = 0, array('treeModel', 'createDocLink'));
}
$this->view->libID = $libID;
$this->view->libName = $this->libs[$libID];
$this->view->moduleID = $moduleID;
$this->view->moduleTree = $moduleTree;
$this->view->parentModules = $this->tree->getParents($moduleID);
$this->view->docs = $docs;
$this->view->pager = $pager;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->orderBy = $orderBy;
$this->view->productID = $productID;
$this->view->projectID = $projectID;
$this->display();
}
/* 新增文档库。*/
public function createLib()
{
if(!empty($_POST))
{
$libID = $this->doc->createLib();
if(!dao::isError())
{
$this->loadModel('action')->create('docLib', $libID, 'Created');
die(js::locate($this->createLink($this->moduleName, 'browse', "libID=$libID"), 'parent'));
}
else
{
echo js::error(dao::getError());
}
}
die($this->display());
}
/* 编辑文档库。*/
public function editLib($libID)
{
if(!empty($_POST))
{
$changes = $this->doc->updateLib($libID);
if(dao::isError()) die(js::error(dao::getError()));
if($changes)
{
$actionID = $this->loadModel('action')->create('docLib', $libID, 'edited');
$this->action->logHistory($actionID, $changes);
}
die(js::locate($this->createLink($this->moduleName, 'browse', "libID=$libID"), 'parent'));
}
$lib = $this->doc->getLibByID($libID);
$this->view->libName = empty($lib) ? $libID : $lib->name;
$this->view->libID = $libID;
die($this->display());
}
/* 删除文档库。*/
public function deleteLib($libID, $confirm = 'no')
{
if($libID == 'product' or $libID == 'project') die();
if($confirm == 'no')
{
die(js::confirm($this->lang->doc->confirmDeleteLib, $this->createLink('doc', 'deleteLib', "libID=$libID&confirm=yes")));
}
else
{
$this->doc->delete(TABLE_DOCLIB, $libID);
die(js::locate($this->createLink('doc', 'browse'), 'parent'));
}
}
/* 创建文档。*/
public function create($libID, $moduleID = 0, $productID = 0, $projectID = 0, $from = 'doc')
{
$projectID = (int)$projectID;
if(!empty($_POST))
{
$docID = $this->doc->create();
if(dao::isError()) die(js::error(dao::getError()));
$this->action->create('doc', $docID, 'Created');
if($from == 'product') $link = $this->createLink('product', 'doc', "productID={$this->post->product}");
if($from == 'project') $link = $this->createLink('project', 'doc', "projectID={$this->post->project}");
if($from == 'doc')
{
$productID = intval($this->post->product);
$projectID = intval($this->post->project);
$vars = "libID=$libID&moduleID={$this->post->module}&productID=$productID&projectID=$projectID";
$link = $this->createLink('doc', 'browse', $vars);
}
die(js::locate($link, 'parent'));
}
$this->loadModel('product');
$this->loadModel('project');
/* 设置当前的文档库,设置菜单。*/
if($from == 'product')
{
$this->lang->doc->menu = $this->lang->product->menu;
$this->product->setMenu($this->product->getPairs(), $productID);
$this->lang->set('menugroup.doc', 'product');
}
elseif($from == 'project')
{
$this->lang->doc->menu = $this->lang->project->menu;
$this->project->setMenu($this->project->getPairs(), $projectID);
$this->lang->set('menugroup.doc', 'project');
}
else
{
$this->doc->setMenu($this->libs, $libID);
}
/* 获得子模块列表。*/
if($libID == 'product' or $libID == 'project')
{
$moduleOptionMenu = $this->tree->getOptionMenu(0, $libID . 'doc', $startModuleID = 0);
}
else
{
$moduleOptionMenu = $this->tree->getOptionMenu($libID, 'customdoc', $startModuleID = 0);
}
/* 位置信息。*/
$this->view->header->title = $this->libs[$libID] . $this->lang->colon . $this->lang->doc->create;
$this->view->position[] = html::a($this->createLink('doc', 'browse', "libID=$libID"), $this->libs[$libID]);
$this->view->position[] = $this->lang->doc->create;
$this->view->libID = $libID;
$this->view->moduleOptionMenu = $moduleOptionMenu;
$this->view->moduleID = $moduleID;
$this->view->productID = $productID;
$this->view->projectID = $projectID;
$this->view->products = $projectID == 0 ? $this->product->getPairs() : $this->project->getProducts($projectID);
$this->view->projects = $this->loadModel('project')->getPairs();
$this->display();
}
/* 编辑文档。*/
public function edit($docID)
{
/* 更新文档信息。*/
if(!empty($_POST))
{
$changes = $this->doc->update($docID);
if(dao::isError()) die(js::error(dao::getError()));
$files = $this->loadModel('file')->saveUpload('doc', $docID);
if(!empty($changes) or !empty($files))
{
$action = !empty($changes) ? 'Edited' : 'Commented';
$fileAction = '';
if(!empty($files)) $fileAction = $this->lang->addFiles . join(',', $files) . "\n" ;
$actionID = $this->action->create('doc', $docID, $action, $fileAction);
$this->action->logHistory($actionID, $changes);
}
die(js::locate($this->createLink('doc', 'view', "docID=$docID"), 'parent'));
}
/* 查找当前文档信息。*/
$doc = $this->doc->getById($docID);
/* 设置菜单。*/
$libID = $doc->lib;
$this->doc->setMenu($this->libs, $libID);
/* 获得子模块列表。*/
if($libID == 'product' or $libID == 'project')
{
$moduleOptionMenu = $this->tree->getOptionMenu(0, $libID . 'doc', $startModuleID = 0);
}
else
{
$moduleOptionMenu = $this->tree->getOptionMenu($libID, 'customdoc', $startModuleID = 0);
}
/* 位置信息。*/
$this->view->header->title = $this->libs[$libID] . $this->lang->colon . $this->lang->doc->create;
$this->view->position[] = html::a($this->createLink('doc', 'browse', "libID=$libID"), $this->libs[$libID]);
$this->view->position[] = $this->lang->doc->create;
$this->view->doc = $doc;
$this->view->libID = $libID;
$this->view->users = $this->user->getPairs('noclosed,nodeleted');
$this->view->moduleOptionMenu = $moduleOptionMenu;
$this->display();
}
/* 查看一个文档。*/
public function view($docID)
{
/* 查找文档信息。*/
$doc = $this->doc->getById($docID);
if(!$doc) die(js::error($this->lang->notFound) . js::locate('back'));
/* 文档库名称。*/
$lib = $doc->libName;
if($doc->lib == 'product') $lib = $doc->productName;
if($doc->lib == 'project') $lib = $doc->productName . $this->lang->arrow . $doc->projectName;
/* 设置菜单。*/
$this->doc->setMenu($this->libs, $doc->lib);
/* 位置信息。*/
$this->view->header->title = $this->libs[$doc->lib] . $this->lang->colon . $this->lang->doc->create;
$this->view->position[] = html::a($this->createLink('doc', 'browse', "libID=$doc->lib"), $this->libs[$doc->lib]);
$this->view->position[] = $this->lang->doc->create;
$this->view->doc = $doc;
$this->view->lib = $lib;
$this->view->actions = $this->loadModel('action')->getList('doc', $docID);
$this->view->users = $this->user->getPairs('noclosed,nodeleted');
$this->display();
}
/* 删除文档。*/
public function delete($docID, $confirm = 'no')
{
if($confirm == 'no')
{
die(js::confirm($this->lang->doc->confirmDelete, inlink('delete', "docID=$docID&confirm=yes")));
}
else
{
$this->doc->delete(TABLE_DOC, $docID);
die(js::locate($this->session->docList, 'parent'));
}
}
}

View File

@@ -1,67 +1,54 @@
<?php
/**
* The doc module english file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: en.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->doc->common = 'Doc';
$lang->doc->id = 'ID';
$lang->doc->product = 'Product';
$lang->doc->project = 'Project';
$lang->doc->lib = 'Library';
$lang->doc->module = 'Module';
$lang->doc->title = 'Title';
$lang->doc->digest = 'Digest';
$lang->doc->type = 'Type';
$lang->doc->content = 'Content';
$lang->doc->keywords = 'Keywords';
$lang->doc->url = 'URL';
$lang->doc->files = 'File';
$lang->doc->views = 'Views';
$lang->doc->addedBy = 'Added by';
$lang->doc->addedDate = 'Added date';
$lang->doc->editedBy = 'Edited by';
$lang->doc->editedDate = 'Edited date';
$lang->doc->moduleName = 'Module name';
$lang->doc->moduleOrder = 'Module order';
/* 方法列表。*/
$lang->doc->index = 'Index';
$lang->doc->create = 'Create doc';
$lang->doc->edit = 'Edit doc';
$lang->doc->delete = 'Delete doc';
$lang->doc->browse = 'Browse doc';
$lang->doc->view = 'View doc';
$lang->doc->createLib = 'Create library';
$lang->doc->editLib = 'Edit library';
$lang->doc->deleteLib = 'Delete library';
$lang->doc->libName = 'Library name';
$lang->doc->systemLibs['product'] = 'Product doc';
$lang->doc->systemLibs['project'] = 'Project doc';
$lang->doc->types['file'] = 'File';
$lang->doc->types['url'] = 'Link';
$lang->doc->types['text'] = 'Html';
$lang->doc->confirmDeleteLib = " Are you sure to delete this doc library?";
$lang->doc->errorEditSystemDoc = "System doc library needn't edit";
<?php
/**
* The doc module english file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: en.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->doc->common = 'Doc';
$lang->doc->id = 'ID';
$lang->doc->product = 'Product';
$lang->doc->project = 'Project';
$lang->doc->lib = 'Library';
$lang->doc->module = 'Module';
$lang->doc->title = 'Title';
$lang->doc->digest = 'Digest';
$lang->doc->type = 'Type';
$lang->doc->content = 'Content';
$lang->doc->keywords = 'Keywords';
$lang->doc->url = 'URL';
$lang->doc->files = 'File';
$lang->doc->views = 'Views';
$lang->doc->addedBy = 'Added by';
$lang->doc->addedDate = 'Added date';
$lang->doc->editedBy = 'Edited by';
$lang->doc->editedDate = 'Edited date';
$lang->doc->moduleName = 'Module name';
$lang->doc->moduleOrder = 'Module order';
/* 方法列表。*/
$lang->doc->index = 'Index';
$lang->doc->create = 'Create doc';
$lang->doc->edit = 'Edit doc';
$lang->doc->delete = 'Delete doc';
$lang->doc->browse = 'Browse doc';
$lang->doc->view = 'View doc';
$lang->doc->createLib = 'Create library';
$lang->doc->editLib = 'Edit library';
$lang->doc->deleteLib = 'Delete library';
$lang->doc->libName = 'Library name';
$lang->doc->systemLibs['product'] = 'Product doc';
$lang->doc->systemLibs['project'] = 'Project doc';
$lang->doc->types['file'] = 'File';
$lang->doc->types['url'] = 'Link';
$lang->doc->types['text'] = 'Html';
$lang->doc->confirmDeleteLib = " Are you sure to delete this doc library?";
$lang->doc->errorEditSystemDoc = "System doc library needn't edit";

View File

@@ -1,67 +1,54 @@
<?php
/**
* The doc module english file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: en.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->doc->common = 'ドク';
$lang->doc->id = 'IDは';
$lang->doc->product = '製品';
$lang->doc->project = 'プロジェクト';
$lang->doc->lib = '図書館';
$lang->doc->module = 'モジュール';
$lang->doc->title = 'タイトル';
$lang->doc->digest = 'ダイジェスト';
$lang->doc->type = 'タイプ';
$lang->doc->content = 'コンテンツ';
$lang->doc->keywords = 'キーワード';
$lang->doc->url = 'のURL';
$lang->doc->files = 'ファイル';
$lang->doc->views = '再生';
$lang->doc->addedBy = 'を追加';
$lang->doc->addedDate = '追加日';
$lang->doc->editedBy = 'かれ';
$lang->doc->editedDate = '編集';
$lang->doc->moduleName = 'モジュール名';
$lang->doc->moduleOrder = 'モジュールの順序';
/* 方法列表。*/
$lang->doc->index = 'インデックス';
$lang->doc->create = '作成ドキュメント';
$lang->doc->edit = '[編集]ドキュメント';
$lang->doc->delete = '削除docパッケージ';
$lang->doc->browse = '閲覧docパッケージ';
$lang->doc->view = 'プロフィールdocパッケージ';
$lang->doc->createLib = '作成ライブラリ';
$lang->doc->editLib = '[編集]ライブラリ';
$lang->doc->deleteLib = '削除ライブラリ';
$lang->doc->libName = 'ライブラリ名';
$lang->doc->systemLibs['product'] = '製品ドキュメント';
$lang->doc->systemLibs['project'] = 'プロジェクトドキュメント';
$lang->doc->types['file'] = 'ファイル';
$lang->doc->types['url'] = 'リンク';
$lang->doc->types['text'] = 'HTML形式';
$lang->doc->confirmDeleteLib = "あなたは、このドキュメントライブラリを削除しますか?";
$lang->doc->errorEditSystemDoc = "システムドキュメントライブラリは必要はない編集";
<?php
/**
* The doc module english file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: en.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->doc->common = 'ドク';
$lang->doc->id = 'IDは';
$lang->doc->product = '製品';
$lang->doc->project = 'プロジェクト';
$lang->doc->lib = '図書館';
$lang->doc->module = 'モジュール';
$lang->doc->title = 'タイトル';
$lang->doc->digest = 'ダイジェスト';
$lang->doc->type = 'タイプ';
$lang->doc->content = 'コンテンツ';
$lang->doc->keywords = 'キーワード';
$lang->doc->url = 'のURL';
$lang->doc->files = 'ファイル';
$lang->doc->views = '再生';
$lang->doc->addedBy = 'を追加';
$lang->doc->addedDate = '追加日';
$lang->doc->editedBy = 'かれ';
$lang->doc->editedDate = '編集日';
$lang->doc->moduleName = 'モジュール名';
$lang->doc->moduleOrder = 'モジュールの順序';
/* 方法列表。*/
$lang->doc->index = 'インデックス';
$lang->doc->create = '作成ドキュメント';
$lang->doc->edit = '[編集]ドキュメント';
$lang->doc->delete = '削除docパッケージ';
$lang->doc->browse = '閲覧docパッケージ';
$lang->doc->view = 'プロフィールdocパッケージ';
$lang->doc->createLib = '作成ライブラリ';
$lang->doc->editLib = '[編集]ライブラリ';
$lang->doc->deleteLib = '削除ライブラリ';
$lang->doc->libName = 'ライブラリ名';
$lang->doc->systemLibs['product'] = '製品ドキュメント';
$lang->doc->systemLibs['project'] = 'プロジェクトドキュメント';
$lang->doc->types['file'] = 'ファイル';
$lang->doc->types['url'] = 'リンク';
$lang->doc->types['text'] = 'HTML形式';
$lang->doc->confirmDeleteLib = "あなたは、このドキュメントライブラリを削除しますか?";
$lang->doc->errorEditSystemDoc = "システムドキュメントライブラリは必要はない編集";

View File

@@ -1,67 +1,54 @@
<?php
/**
* The doc module english file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: en.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->doc->common = '의사';
$lang->doc->id = '신분증';
$lang->doc->product = '제품';
$lang->doc->project = '프로젝트';
$lang->doc->lib = '도서관';
$lang->doc->module = '모듈';
$lang->doc->title = '제목';
$lang->doc->digest = '다이제스트';
$lang->doc->type = '유형';
$lang->doc->content = '콘텐츠';
$lang->doc->keywords = '키워드';
$lang->doc->url = '홈페이지';
$lang->doc->files = '파일';
$lang->doc->views = '조회';
$lang->doc->addedBy = '에 추가됨';
$lang->doc->addedDate = '추가된 날짜';
$lang->doc->editedBy = '에 의해 수정됨';
$lang->doc->editedDate = '날짜 수정됨';
$lang->doc->moduleName = '모듈 이름';
$lang->doc->moduleOrder = '모듈 명령';
/* 方法列表。*/
$lang->doc->index = '색인';
$lang->doc->create = '만들기 박사';
$lang->doc->edit = '편집 의사';
$lang->doc->delete = '삭제 박사님';
$lang->doc->browse = '브라 우즈 의사';
$lang->doc->view = '보기 박사님';
$lang->doc->createLib = '라이브러리 만들기';
$lang->doc->editLib = '수정 도서관';
$lang->doc->deleteLib = '도서관 삭제';
$lang->doc->libName = '도서관 이름';
$lang->doc->systemLibs['product'] = '제품 박사님';
$lang->doc->systemLibs['project'] = '프로젝트 의사';
$lang->doc->types['file'] = '파일';
$lang->doc->types['url'] = '링크';
$lang->doc->types['text'] = 'html로';
$lang->doc->confirmDeleteLib = "당신이 의사 라이브러리를 삭제하시겠습니까?";
$lang->doc->errorEditSystemDoc = "시스템 의사 도서관은 필요 없어 편집";
<?php
/**
* The doc module english file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: en.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->doc->common = '의사';
$lang->doc->id = '신분증';
$lang->doc->product = '제품';
$lang->doc->project = '프로젝트';
$lang->doc->lib = '도서관';
$lang->doc->module = '모듈';
$lang->doc->title = '제목';
$lang->doc->digest = '다이제스트';
$lang->doc->type = '유형';
$lang->doc->content = '콘텐츠';
$lang->doc->keywords = '키워드';
$lang->doc->url = '홈페이지';
$lang->doc->files = '파일';
$lang->doc->views = '조회';
$lang->doc->addedBy = '에 추가됨';
$lang->doc->addedDate = '추가된 날짜';
$lang->doc->editedBy = '에 의해 수정됨';
$lang->doc->editedDate = '날짜 수정됨';
$lang->doc->moduleName = '모듈 이름';
$lang->doc->moduleOrder = '모듈 명령';
/* 方法列表。*/
$lang->doc->index = '색인';
$lang->doc->create = '만들기 박사';
$lang->doc->edit = '편집 의사';
$lang->doc->delete = '삭제 박사님';
$lang->doc->browse = '브라 우즈 의사';
$lang->doc->view = '보기 박사님';
$lang->doc->createLib = '라이브러리 만들기';
$lang->doc->editLib = '수정 도서관';
$lang->doc->deleteLib = '도서관 삭제';
$lang->doc->libName = '도서관 이름';
$lang->doc->systemLibs['product'] = '제품 박사님';
$lang->doc->systemLibs['project'] = '프로젝트 의사';
$lang->doc->types['file'] = '파일';
$lang->doc->types['url'] = '링크';
$lang->doc->types['text'] = 'html로';
$lang->doc->confirmDeleteLib = "당신이 의사 라이브러리를 삭제하시겠습니까?";
$lang->doc->errorEditSystemDoc = "시스템 의사 도서관은 필요 없어 편집";

View File

@@ -1,67 +1,54 @@
<?php
/**
* The doc module zh-cn file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: zh-cn.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->doc->common = '文档视图';
$lang->doc->id = '文档编号';
$lang->doc->product = '所属产品';
$lang->doc->project = '所属项目';
$lang->doc->lib = '所属文档库';
$lang->doc->module = '所属分类';
$lang->doc->title = '文档标题';
$lang->doc->digest = '文档摘要';
$lang->doc->type = '文档类型';
$lang->doc->content = '文档正文';
$lang->doc->keywords = '关键字';
$lang->doc->url = '文档URL';
$lang->doc->files = '附件';
$lang->doc->views = '查阅次数';
$lang->doc->addedBy = '由谁添加';
$lang->doc->addedDate = '添加时间';
$lang->doc->editedBy = '由谁编辑';
$lang->doc->editedDate = '编辑时间';
$lang->doc->moduleName = '模块名称';
$lang->doc->moduleOrder = '模块排序';
/* 方法列表。*/
$lang->doc->index = '首页';
$lang->doc->create = '创建文档';
$lang->doc->edit = '编辑文档';
$lang->doc->delete = '删除文档';
$lang->doc->browse = '文档列表';
$lang->doc->view = '文档详情';
$lang->doc->createLib = '创建文档库';
$lang->doc->editLib = '编辑文档库';
$lang->doc->deleteLib = '删除文档库';
$lang->doc->libName = '文档库名称';
$lang->doc->systemLibs['product'] = '产品文档库';
$lang->doc->systemLibs['project'] = '项目文档库';
$lang->doc->types['file'] = '文件';
$lang->doc->types['url'] = '链接';
$lang->doc->types['text'] = '网页';
$lang->doc->confirmDeleteLib = " 您确定删除该文档库吗?";
$lang->doc->errorEditSystemDoc = "系统文档库无需修改。";
<?php
/**
* The doc module zh-cn file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: zh-cn.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 字段列表。*/
$lang->doc->common = '文档视图';
$lang->doc->id = '文档编号';
$lang->doc->product = '所属产品';
$lang->doc->project = '所属项目';
$lang->doc->lib = '所属文档库';
$lang->doc->module = '所属分类';
$lang->doc->title = '文档标题';
$lang->doc->digest = '文档摘要';
$lang->doc->type = '文档类型';
$lang->doc->content = '文档正文';
$lang->doc->keywords = '关键字';
$lang->doc->url = '文档URL';
$lang->doc->files = '附件';
$lang->doc->views = '查阅次数';
$lang->doc->addedBy = '由谁添加';
$lang->doc->addedDate = '添加时间';
$lang->doc->editedBy = '由谁编辑';
$lang->doc->editedDate = '编辑时间';
$lang->doc->moduleName = '模块名称';
$lang->doc->moduleOrder = '模块排序';
/* 方法列表。*/
$lang->doc->index = '首页';
$lang->doc->create = '创建文档';
$lang->doc->edit = '编辑文档';
$lang->doc->delete = '删除文档';
$lang->doc->browse = '文档列表';
$lang->doc->view = '文档详情';
$lang->doc->createLib = '创建文档库';
$lang->doc->editLib = '编辑文档库';
$lang->doc->deleteLib = '删除文档库';
$lang->doc->libName = '文档库名称';
$lang->doc->systemLibs['product'] = '产品文档库';
$lang->doc->systemLibs['project'] = '项目文档库';
$lang->doc->types['file'] = '文件';
$lang->doc->types['url'] = '链接';
$lang->doc->types['text'] = '网页';
$lang->doc->confirmDeleteLib = " 您确定删除该文档库吗?";
$lang->doc->errorEditSystemDoc = "系统文档库无需修改。";

View File

@@ -1,67 +1,54 @@
<?php
/**
* The doc module zh-tw file of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: zh-tw.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 欄位列表。*/
$lang->doc->common = '文檔視圖';
$lang->doc->id = '文檔編號';
$lang->doc->product = '所屬產品';
$lang->doc->project = '所屬項目';
$lang->doc->lib = '所屬文檔庫';
$lang->doc->module = '所屬分類';
$lang->doc->title = '文檔標題';
$lang->doc->digest = '文檔摘要';
$lang->doc->type = '文檔類型';
$lang->doc->content = '文檔正文';
$lang->doc->keywords = '關鍵字';
$lang->doc->url = '文檔URL';
$lang->doc->files = '附件';
$lang->doc->views = '查閲次數';
$lang->doc->addedBy = '由誰添加';
$lang->doc->addedDate = '添加時間';
$lang->doc->editedBy = '由誰編輯';
$lang->doc->editedDate = '編輯時間';
$lang->doc->moduleName = '模組名稱';
$lang->doc->moduleOrder = '模組排序';
/* 方法列表。*/
$lang->doc->index = '首頁';
$lang->doc->create = '創建文檔';
$lang->doc->edit = '編輯文檔';
$lang->doc->delete = '刪除文檔';
$lang->doc->browse = '文檔列表';
$lang->doc->view = '文檔詳情';
$lang->doc->createLib = '創建文檔庫';
$lang->doc->editLib = '編輯文檔庫';
$lang->doc->deleteLib = '刪除文檔庫';
$lang->doc->libName = '文檔庫名稱';
$lang->doc->systemLibs['product'] = '產品文檔庫';
$lang->doc->systemLibs['project'] = '項目文檔庫';
$lang->doc->types['file'] = '檔案';
$lang->doc->types['url'] = '連結';
$lang->doc->types['text'] = '網頁';
$lang->doc->confirmDeleteLib = " 您確定刪除該文檔庫嗎?";
$lang->doc->errorEditSystemDoc = "系統文檔庫無需修改。";
<?php
/**
* The doc module zh-tw file of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: zh-tw.php 824 2010-05-02 15:32:06Z wwccss $
* @link http://www.zentao.net
*/
/* 欄位列表。*/
$lang->doc->common = '文檔視圖';
$lang->doc->id = '文檔編號';
$lang->doc->product = '所屬產品';
$lang->doc->project = '所屬項目';
$lang->doc->lib = '所屬文檔庫';
$lang->doc->module = '所屬分類';
$lang->doc->title = '文檔標題';
$lang->doc->digest = '文檔摘要';
$lang->doc->type = '文檔類型';
$lang->doc->content = '文檔正文';
$lang->doc->keywords = '關鍵字';
$lang->doc->url = '文檔URL';
$lang->doc->files = '附件';
$lang->doc->views = '查閲次數';
$lang->doc->addedBy = '由誰添加';
$lang->doc->addedDate = '添加時間';
$lang->doc->editedBy = '由誰編輯';
$lang->doc->editedDate = '編輯時間';
$lang->doc->moduleName = '模組名稱';
$lang->doc->moduleOrder = '模組排序';
/* 方法列表。*/
$lang->doc->index = '首頁';
$lang->doc->create = '創建文檔';
$lang->doc->edit = '編輯文檔';
$lang->doc->delete = '刪除文檔';
$lang->doc->browse = '文檔列表';
$lang->doc->view = '文檔詳情';
$lang->doc->createLib = '創建文檔庫';
$lang->doc->editLib = '編輯文檔庫';
$lang->doc->deleteLib = '刪除文檔庫';
$lang->doc->libName = '文檔庫名稱';
$lang->doc->systemLibs['product'] = '產品文檔庫';
$lang->doc->systemLibs['project'] = '項目文檔庫';
$lang->doc->types['file'] = '檔';
$lang->doc->types['url'] = '連結';
$lang->doc->types['text'] = '網頁';
$lang->doc->confirmDeleteLib = " 您確定刪除該文檔庫嗎?";
$lang->doc->errorEditSystemDoc = "系統文檔庫無需修改。";

View File

@@ -1,208 +1,195 @@
<?php
/**
* The model file of doc module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: model.php 881 2010-06-22 06:50:32Z chencongzhi520 $
* @link http://www.zentao.net
*/
?>
<?php
class docModel extends model
{
/* 设置菜单。*/
public function setMenu($libs, $libID, $extra = '')
{
/* 获得当前的模块和方法传递给switchDocLib方法供页面跳转使用。*/
$currentModule = $this->app->getModuleName();
$currentMethod = $this->app->getMethodName();
$selectHtml = html::select('libID', $libs, $libID, "onchange=\"switchDocLib(this.value, '$currentModule', '$currentMethod', '$extra');\"");
common::setMenuVars($this->lang->doc->menu, 'list', $selectHtml . $this->lang->arrow);
foreach($this->lang->doc->menu as $key => $menu)
{
if($key != 'list') common::setMenuVars($this->lang->doc->menu, $key, $libID);
}
}
/* 通过ID获取文档库信息。*/
public function getLibById($libID)
{
return $this->dao->findByID($libID)->from(TABLE_DOCLIB)->fetch();
}
/* 获取文档库列表。*/
public function getLibs()
{
$libs = $this->dao->select('id, name')->from(TABLE_DOCLIB)->where('deleted')->eq(0)->fetchPairs();
return $this->lang->doc->systemLibs + $libs;
}
/* 新增文档库。*/
public function createLib()
{
/* 处理数据。*/
$lib = fixer::input('post')->stripTags('name')->get();
$this->dao->insert(TABLE_DOCLIB)
->data($lib)
->autoCheck()
->batchCheck('name', 'notempty')
->check('name', 'unique')
->exec();
return $this->dao->lastInsertID();
}
/* 编辑文档库。*/
public function updateLib($libID)
{
/* 处理数据。*/
$libID = (int)$libID;
$oldLib = $this->getLibById($libID);
$lib = fixer::input('post')->stripTags('name')->get();
$this->dao->update(TABLE_DOCLIB)
->data($lib)
->autoCheck()
->batchCheck('name', 'notempty')
->check('name', 'unique', "id != $libID")
->where('id')->eq($libID)
->exec();
if(!dao::isError()) return common::createChanges($oldLib, $lib);
}
/* 获得文档列表。*/
public function getDocs($libID, $productID, $projectID, $module, $orderBy, $pager)
{
return $this->dao->select('*')->from(TABLE_DOC)
->where('deleted')->eq(0)
->beginIF(is_numeric($libID))->andWhere('lib')->eq($libID)->fi()
->beginIF($libID == 'product')->andWhere('product')->gt(0)->fi()
->beginIF($libID == 'project')->andWhere('project')->gt(0)->fi()
->beginIF($productID > 0)->andWhere('product')->eq($productID)->fi()
->beginIF($projectID > 0)->andWhere('project')->eq($projectID)->fi()
->beginIF((string)$projectID == 'int')->andWhere('project')->gt(0)->fi()
->beginIF($module)->andWhere('module')->in($module)->fi()
->orderBy($orderBy)
->page($pager)
->fetchAll();
}
/* 获取一个文档的详细信息。*/
public function getById($docID)
{
$doc = $this->dao->select('*')
->from(TABLE_DOC)
->where('id')->eq((int)$docID)
->fetch();
if(!$doc) return false;
$doc->files = $this->loadModel('file')->getByObject('doc', $docID);
$doc->libName = '';
$doc->productName = '';
$doc->projectName = '';
$doc->moduleName = '';
if($doc->lib) $doc->libName = $this->dao->findByID($doc->lib)->from(TABLE_DOCLIB)->fetch('name');
if($doc->product) $doc->productName = $this->dao->findByID($doc->product)->from(TABLE_PRODUCT)->fetch('name');
if($doc->project) $doc->projectName = $this->dao->findByID($doc->project)->from(TABLE_PROJECT)->fetch('name');
if($doc->module) $doc->moduleName = $this->dao->findByID($doc->module)->from(TABLE_MODULE)->fetch('name');
return $doc;
}
/* 创建一个文档。*/
public function create()
{
$now = helper::now();
$doc = fixer::input('post')
->add('addedBy', $this->app->user->account)
->add('addedDate', $now)
->setDefault('product, project, module', 0)
->specialChars('title, digest, keywords')
->encodeURL('url')
->cleanInt('product, project, module')
->remove('files, labels')
->get();
$condition = "lib = '$doc->lib' AND module = $doc->module";
$this->dao->insert(TABLE_DOC)
->data($doc)
->autoCheck()
->batchCheck($this->config->doc->create->requiredFields, 'notempty')
->check('title', 'unique', $condition)
->exec();
if(!dao::isError())
{
$docID = $this->dao->lastInsertID();
$this->loadModel('file')->saveUpload('doc', $docID);
return $docID;
}
return false;
}
/* 更新文档信息。*/
public function update($docID)
{
$oldDoc = $this->getById($docID);
$now = helper::now();
$doc = fixer::input('post')
->cleanInt('module')
->setDefault('module', 0)
->specialChars('title, digest, keywords')
->encodeURL('url')
->remove('files, labels')
->add('editedBy', $this->app->user->account)
->add('editedDate', $now)
->get();
$condition = "lib = '$doc->lib' AND module = $doc->module AND id != $docID";
$this->dao->update(TABLE_DOC)->data($doc)
->autoCheck()
->batchCheck($this->config->doc->edit->requiredFields, 'notempty')
->check('title', 'unique', $condition)
->where('id')->eq((int)$docID)
->exec();
if(!dao::isError()) return common::createChanges($oldDoc, $doc);
}
/* 获得某一个产品的文档列表。*/
public function getProductDocs($productID)
{
return $this->dao->select('t1.*, t2.name as module')
->from(TABLE_DOC)->alias('t1')
->leftjoin(TABLE_MODULE)->alias('t2')->on('t1.module = t2.id')
->where('t1.product')->eq($productID)
->andWhere('t1.deleted')->eq(0)
->orderBy('t1.id_desc')
->fetchAll();
}
/* 获得某一个项目的文档列表。*/
public function getProjectDocs($projectID)
{
return $this->dao->findByProject($projectID)->from(TABLE_DOC)->andWhere('deleted')->eq(0)->orderBy('id_desc')->fetchAll();
}
/* 获得产品的文档模块列表*/
public function getProductModulePairs()
{
return $this->dao->findByType('productdoc')->from(TABLE_MODULE)->fetchPairs('id', 'name');
}
/* 获得项目的文档模块列表。*/
public function getProjectModulePairs()
{
return $this->dao->findByType('projectdoc')->from(TABLE_MODULE)->andWhere('type')->eq('projectdoc')->fetchPairs('id', 'name');
}
}
<?php
/**
* The model file of doc module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: model.php 881 2010-06-22 06:50:32Z chencongzhi520 $
* @link http://www.zentao.net
*/
?>
<?php
class docModel extends model
{
/* 设置菜单。*/
public function setMenu($libs, $libID, $extra = '')
{
/* 获得当前的模块和方法传递给switchDocLib方法供页面跳转使用。*/
$currentModule = $this->app->getModuleName();
$currentMethod = $this->app->getMethodName();
$selectHtml = html::select('libID', $libs, $libID, "onchange=\"switchDocLib(this.value, '$currentModule', '$currentMethod', '$extra');\"");
common::setMenuVars($this->lang->doc->menu, 'list', $selectHtml . $this->lang->arrow);
foreach($this->lang->doc->menu as $key => $menu)
{
if($key != 'list') common::setMenuVars($this->lang->doc->menu, $key, $libID);
}
}
/* 通过ID获取文档库信息。*/
public function getLibById($libID)
{
return $this->dao->findByID($libID)->from(TABLE_DOCLIB)->fetch();
}
/* 获取文档库列表。*/
public function getLibs()
{
$libs = $this->dao->select('id, name')->from(TABLE_DOCLIB)->where('deleted')->eq(0)->fetchPairs();
return $this->lang->doc->systemLibs + $libs;
}
/* 新增文档库。*/
public function createLib()
{
/* 处理数据。*/
$lib = fixer::input('post')->stripTags('name')->get();
$this->dao->insert(TABLE_DOCLIB)
->data($lib)
->autoCheck()
->batchCheck('name', 'notempty')
->check('name', 'unique')
->exec();
return $this->dao->lastInsertID();
}
/* 编辑文档库。*/
public function updateLib($libID)
{
/* 处理数据。*/
$libID = (int)$libID;
$oldLib = $this->getLibById($libID);
$lib = fixer::input('post')->stripTags('name')->get();
$this->dao->update(TABLE_DOCLIB)
->data($lib)
->autoCheck()
->batchCheck('name', 'notempty')
->check('name', 'unique', "id != $libID")
->where('id')->eq($libID)
->exec();
if(!dao::isError()) return common::createChanges($oldLib, $lib);
}
/* 获得文档列表。*/
public function getDocs($libID, $productID, $projectID, $module, $orderBy, $pager)
{
return $this->dao->select('*')->from(TABLE_DOC)
->where('deleted')->eq(0)
->beginIF(is_numeric($libID))->andWhere('lib')->eq($libID)->fi()
->beginIF($libID == 'product')->andWhere('product')->gt(0)->fi()
->beginIF($libID == 'project')->andWhere('project')->gt(0)->fi()
->beginIF($productID > 0)->andWhere('product')->eq($productID)->fi()
->beginIF($projectID > 0)->andWhere('project')->eq($projectID)->fi()
->beginIF((string)$projectID == 'int')->andWhere('project')->gt(0)->fi()
->beginIF($module)->andWhere('module')->in($module)->fi()
->orderBy($orderBy)
->page($pager)
->fetchAll();
}
/* 获取一个文档的详细信息。*/
public function getById($docID)
{
$doc = $this->dao->select('*')
->from(TABLE_DOC)
->where('id')->eq((int)$docID)
->fetch();
if(!$doc) return false;
$doc->files = $this->loadModel('file')->getByObject('doc', $docID);
$doc->libName = '';
$doc->productName = '';
$doc->projectName = '';
$doc->moduleName = '';
if($doc->lib) $doc->libName = $this->dao->findByID($doc->lib)->from(TABLE_DOCLIB)->fetch('name');
if($doc->product) $doc->productName = $this->dao->findByID($doc->product)->from(TABLE_PRODUCT)->fetch('name');
if($doc->project) $doc->projectName = $this->dao->findByID($doc->project)->from(TABLE_PROJECT)->fetch('name');
if($doc->module) $doc->moduleName = $this->dao->findByID($doc->module)->from(TABLE_MODULE)->fetch('name');
return $doc;
}
/* 创建一个文档。*/
public function create()
{
$now = helper::now();
$doc = fixer::input('post')
->add('addedBy', $this->app->user->account)
->add('addedDate', $now)
->setDefault('product, project, module', 0)
->specialChars('title, digest, keywords')
->encodeURL('url')
->cleanInt('product, project, module')
->remove('files, labels')
->get();
$condition = "lib = '$doc->lib' AND module = $doc->module";
$this->dao->insert(TABLE_DOC)
->data($doc)
->autoCheck()
->batchCheck($this->config->doc->create->requiredFields, 'notempty')
->check('title', 'unique', $condition)
->exec();
if(!dao::isError())
{
$docID = $this->dao->lastInsertID();
$this->loadModel('file')->saveUpload('doc', $docID);
return $docID;
}
return false;
}
/* 更新文档信息。*/
public function update($docID)
{
$oldDoc = $this->getById($docID);
$now = helper::now();
$doc = fixer::input('post')
->cleanInt('module')
->setDefault('module', 0)
->specialChars('title, digest, keywords')
->encodeURL('url')
->remove('files, labels')
->add('editedBy', $this->app->user->account)
->add('editedDate', $now)
->get();
$condition = "lib = '$doc->lib' AND module = $doc->module AND id != $docID";
$this->dao->update(TABLE_DOC)->data($doc)
->autoCheck()
->batchCheck($this->config->doc->edit->requiredFields, 'notempty')
->check('title', 'unique', $condition)
->where('id')->eq((int)$docID)
->exec();
if(!dao::isError()) return common::createChanges($oldDoc, $doc);
}
/* 获得某一个产品的文档列表。*/
public function getProductDocs($productID)
{
return $this->dao->select('t1.*, t2.name as module')
->from(TABLE_DOC)->alias('t1')
->leftjoin(TABLE_MODULE)->alias('t2')->on('t1.module = t2.id')
->where('t1.product')->eq($productID)
->andWhere('t1.deleted')->eq(0)
->orderBy('t1.id_desc')
->fetchAll();
}
/* 获得某一个项目的文档列表。*/
public function getProjectDocs($projectID)
{
return $this->dao->findByProject($projectID)->from(TABLE_DOC)->andWhere('deleted')->eq(0)->orderBy('id_desc')->fetchAll();
}
/* 获得产品的文档模块列表*/
public function getProductModulePairs()
{
return $this->dao->findByType('productdoc')->from(TABLE_MODULE)->fetchPairs('id', 'name');
}
/* 获得项目的文档模块列表。*/
public function getProjectModulePairs()
{
return $this->dao->findByType('projectdoc')->from(TABLE_MODULE)->andWhere('type')->eq('projectdoc')->fetchPairs('id', 'name');
}
}

View File

@@ -1,90 +1,77 @@
<?php
/**
* The browse view file of doc module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package lib
* @version $Id: browse.html.php 958 2010-07-22 08:09:42Z wwccss $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/treeview.html.php';?>
<?php include '../../common/view/colorize.html.php';?>
<div class='yui-d0'>
<div id='featurebar'>
<div class='f-right'>
<?php common::printLink('doc', 'create', "libID=$libID&moduleID=$moduleID&productID=$productID&projectID=$projectID&from=doc", $lang->doc->create);?>
</div>
</div>
</div>
<div class='yui-d0 yui-t1' id='mainbox'>
<div class="yui-main">
<div class="yui-b">
<table class='table-1 fixed colored tablesorter datatable'>
<thead>
<tr class='colhead'>
<?php $vars = "libID=$libID&module=$moduleID&productID=$productID&projectID=$projectID&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";?>
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th><?php common::printOrderLink('title', $orderBy, $vars, $lang->doc->title);?></th>
<th class='w-100px'><?php common::printOrderLink('type', $orderBy, $vars, $lang->doc->type);?></th>
<th class='w-100px'><?php common::printOrderLink('addedBy', $orderBy, $vars, $lang->doc->addedBy);?></th>
<th class='w-120px'><?php common::printOrderLink('addedDate', $orderBy, $vars, $lang->doc->addedDate);?></th>
<th class='w-100px {sorter:false}'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php foreach($docs as $key => $doc):?>
<?php
$viewLink = $this->createLink('doc', 'view', "docID=$doc->id");
$canView = common::hasPriv('doc', 'view');
?>
<tr class='a-center'>
<td><?php if($canView) echo html::a($viewLink, sprintf('%03d', $doc->id)); else printf('%03d', $doc->id);?></td>
<td class='a-left nobr'><nobr><?php echo html::a($viewLink, $doc->title);?></nobr></td>
<td><?php echo $lang->doc->types[$doc->type];?></td>
<td><?php echo $users[$doc->addedBy];?></td>
<td><?php echo date("m-d H:i", strtotime($doc->addedDate));?></td>
<td>
<?php
$vars = "doc={$doc->id}";
if(!common::printLink('doc', 'edit', $vars, $lang->edit)) echo $lang->edit;
if(!common::printLink('doc', 'delete', $vars, $lang->delete, 'hiddenwin')) echo $lang->delete;
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<?php $pager->show();?>
</div>
</div>
<div class='yui-b' id='treebox'>
<div class='box-title'><?php echo $libName;?></div>
<div class='box-content'>
<?php echo $moduleTree;?>
<div class='a-right'>
<?php common::printLink('tree', 'browse', "rootID=$libID&view=doc", $lang->tree->manage);?>
</div>
</div>
</div>
</div>
<?php include './footer.html.php';?>
<?php
/**
* The browse view file of doc module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package lib
* @version $Id: browse.html.php 958 2010-07-22 08:09:42Z wwccss $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/treeview.html.php';?>
<?php include '../../common/view/colorize.html.php';?>
<div class='yui-d0'>
<div id='featurebar'>
<div class='f-right'>
<?php common::printLink('doc', 'create', "libID=$libID&moduleID=$moduleID&productID=$productID&projectID=$projectID&from=doc", $lang->doc->create);?>
</div>
</div>
</div>
<div class='yui-d0 yui-t1' id='mainbox'>
<div class="yui-main">
<div class="yui-b">
<table class='table-1 fixed colored tablesorter datatable'>
<thead>
<tr class='colhead'>
<?php $vars = "libID=$libID&module=$moduleID&productID=$productID&projectID=$projectID&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";?>
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th><?php common::printOrderLink('title', $orderBy, $vars, $lang->doc->title);?></th>
<th class='w-100px'><?php common::printOrderLink('type', $orderBy, $vars, $lang->doc->type);?></th>
<th class='w-100px'><?php common::printOrderLink('addedBy', $orderBy, $vars, $lang->doc->addedBy);?></th>
<th class='w-120px'><?php common::printOrderLink('addedDate', $orderBy, $vars, $lang->doc->addedDate);?></th>
<th class='w-100px {sorter:false}'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php foreach($docs as $key => $doc):?>
<?php
$viewLink = $this->createLink('doc', 'view', "docID=$doc->id");
$canView = common::hasPriv('doc', 'view');
?>
<tr class='a-center'>
<td><?php if($canView) echo html::a($viewLink, sprintf('%03d', $doc->id)); else printf('%03d', $doc->id);?></td>
<td class='a-left nobr'><nobr><?php echo html::a($viewLink, $doc->title);?></nobr></td>
<td><?php echo $lang->doc->types[$doc->type];?></td>
<td><?php echo $users[$doc->addedBy];?></td>
<td><?php echo date("m-d H:i", strtotime($doc->addedDate));?></td>
<td>
<?php
$vars = "doc={$doc->id}";
if(!common::printLink('doc', 'edit', $vars, $lang->edit)) echo $lang->edit;
if(!common::printLink('doc', 'delete', $vars, $lang->delete, 'hiddenwin')) echo $lang->delete;
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<?php $pager->show();?>
</div>
</div>
<div class='yui-b' id='treebox'>
<div class='box-title'><?php echo $libName;?></div>
<div class='box-content'>
<?php echo $moduleTree;?>
<div class='a-right'>
<?php common::printLink('tree', 'browse', "rootID=$libID&view=doc", $lang->tree->manage);?>
</div>
</div>
</div>
</div>
<?php include './footer.html.php';?>

View File

@@ -1,111 +1,98 @@
<?php
/**
* The create view of doc module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Jia Fu <fujia@cnezsoft.com>
* @package doc
* @version $Id: create.html.php 975 2010-07-29 03:30:25Z jajacn@126.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<script language='Javascript'>
function loadProducts(project)
{
link = createLink('project', 'ajaxGetProducts', 'projectID=' + project);
$('#productBox').load(link);
}
/* 设置文档类型。*/
function setType(type)
{
if(type == 'url'){
$('#urlBox').show();
$('#fileBox').hide();
$('#contentBox').hide();
}
else if(type == 'text'){
$('#urlBox').hide();
$('#fileBox').hide();
$('#contentBox').show();
}
else{
$('#urlBox').hide();
$('#fileBox').show();
$('#contentBox').hide();
}
}
$(function() {KE.show({id:'content', items:tools, filterMode:true, imageUploadJson: createLink('file', 'ajaxUpload')});});
</script>
<div class='yui-d0'>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->doc->create;?></caption>
<?php if($libID == 'product'):?>
<tr>
<th class='rowhead'><?php echo $lang->doc->product;?></th>
<td><?php echo html::select('product', $products, $productID, "class='select-3'");?></td>
</tr>
<?php elseif($libID == 'project'):?>
<tr>
<th class='rowhead'><?php echo $lang->doc->project;?></th>
<td><?php echo html::select('project', $projects, $projectID, "class='select-3' onchange=loadProducts(this.value);");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->product;?></th>
<td><span id='productBox'><?php echo html::select('product', $products, '', "class='select-3'");?></span></td>
</tr>
<?php endif;?>
<tr>
<th class='rowhead'><?php echo $lang->doc->module;?></th>
<td><?php echo html::select('module', $moduleOptionMenu, $moduleID, "class='select-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->type;?></th>
<td><?php echo html::radio('type', $lang->doc->types, 'file', "onclick=setType(this.value)");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->title;?></th>
<td><?php echo html::input('title', '', "class='text-1'");?></td>
</tr>
<tr id='urlBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->url;?></th>
<td><?php echo html::input('url', '', "class='text-1'");?></td>
</tr>
<tr id='contentBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->content;?></th>
<td><?php echo html::textarea('content', '', "class='area-1' style='width:90%; height:200px'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->keywords;?></th>
<td><?php echo html::input('keywords', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->digest;?></th>
<td><?php echo html::textarea('digest', '', "class='text-1' rows=3");?></td>
</tr>
<tr id='fileBox'>
<th class='rowhead'><?php echo $lang->doc->files;?></th>
<td><?php echo $this->fetch('file', 'buildform', 'fileCount=2');?></td>
</tr>
<tr>
<td colspan='2' class='a-center'><?php echo html::submitButton() . html::resetButton() . html::hidden('lib', $libID);?></td>
</tr>
</table>
</form>
</div>
<?php include './footer.html.php';?>
<?php
/**
* The create view of doc module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Jia Fu <fujia@cnezsoft.com>
* @package doc
* @version $Id: create.html.php 975 2010-07-29 03:30:25Z jajacn@126.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<script language='Javascript'>
function loadProducts(project)
{
link = createLink('project', 'ajaxGetProducts', 'projectID=' + project);
$('#productBox').load(link);
}
/* 设置文档类型。*/
function setType(type)
{
if(type == 'url'){
$('#urlBox').show();
$('#fileBox').hide();
$('#contentBox').hide();
}
else if(type == 'text'){
$('#urlBox').hide();
$('#fileBox').hide();
$('#contentBox').show();
}
else{
$('#urlBox').hide();
$('#fileBox').show();
$('#contentBox').hide();
}
}
$(function() {KE.show({id:'content', items:tools, filterMode:true, imageUploadJson: createLink('file', 'ajaxUpload')});});
</script>
<div class='yui-d0'>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->doc->create;?></caption>
<?php if($libID == 'product'):?>
<tr>
<th class='rowhead'><?php echo $lang->doc->product;?></th>
<td><?php echo html::select('product', $products, $productID, "class='select-3'");?></td>
</tr>
<?php elseif($libID == 'project'):?>
<tr>
<th class='rowhead'><?php echo $lang->doc->project;?></th>
<td><?php echo html::select('project', $projects, $projectID, "class='select-3' onchange=loadProducts(this.value);");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->product;?></th>
<td><span id='productBox'><?php echo html::select('product', $products, '', "class='select-3'");?></span></td>
</tr>
<?php endif;?>
<tr>
<th class='rowhead'><?php echo $lang->doc->module;?></th>
<td><?php echo html::select('module', $moduleOptionMenu, $moduleID, "class='select-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->type;?></th>
<td><?php echo html::radio('type', $lang->doc->types, 'file', "onclick=setType(this.value)");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->title;?></th>
<td><?php echo html::input('title', '', "class='text-1'");?></td>
</tr>
<tr id='urlBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->url;?></th>
<td><?php echo html::input('url', '', "class='text-1'");?></td>
</tr>
<tr id='contentBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->content;?></th>
<td><?php echo html::textarea('content', '', "class='area-1' style='width:90%; height:200px'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->keywords;?></th>
<td><?php echo html::input('keywords', '', "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->digest;?></th>
<td><?php echo html::textarea('digest', '', "class='text-1' rows=3");?></td>
</tr>
<tr id='fileBox'>
<th class='rowhead'><?php echo $lang->doc->files;?></th>
<td><?php echo $this->fetch('file', 'buildform', 'fileCount=2');?></td>
</tr>
<tr>
<td colspan='2' class='a-center'><?php echo html::submitButton() . html::resetButton() . html::hidden('lib', $libID);?></td>
</tr>
</table>
</form>
</div>
<?php include './footer.html.php';?>

View File

@@ -1,44 +1,31 @@
<?php
/**
* The createlib view of doc module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Jia Fu <fujia@cnezsoft.com>
* @package doc
* @version $Id: createlib.html.php 975 2010-07-29 03:30:25Z jajacn@126.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.lite.html.php';?>
<style>body{background:white; margin-top:20px; padding-bottom:0}</style>
<div id='yui-d0'>
<form method='post'>
<table class='table-1'>
<caption><?php echo $lang->doc->createLib;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->doc->libName;?></th>
<td><?php echo html::input('name', '', "class='text-1'");?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton();?>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
<?php
/**
* The createlib view of doc module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Jia Fu <fujia@cnezsoft.com>
* @package doc
* @version $Id: createlib.html.php 975 2010-07-29 03:30:25Z jajacn@126.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.lite.html.php';?>
<style>body{background:white; margin-top:20px; padding-bottom:0}</style>
<div id='yui-d0'>
<form method='post'>
<table class='table-1'>
<caption><?php echo $lang->doc->createLib;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->doc->libName;?></th>
<td><?php echo html::input('name', '', "class='text-1'");?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton();?>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>

View File

@@ -1,95 +1,82 @@
<?php
/**
* The edit view of doc module of ZenTaoMS.
*
* ZenTaoMS is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ZenTaoMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with ZenTaoMS. If not, see <http://www.gnu.org/licenses/>.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Jia Fu <fujia@cnezsoft.com>
* @package doc
* @version $Id: edit.html.php 975 2010-07-29 03:30:25Z jajacn@126.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<script language='javascript'>
/* 设置文档类型。*/
var type = '<?php echo $doc->type;?>';
$(document).ready(function()
{
if(type == 'url'){
$('#urlBox').show();
$('#contentBox').hide();
$('#fileBox').hide();
}
else if(type == 'text'){
$('#urlBox').hide();
$('#contentBox').show();
$('#fileBox').hide();
}
else{
$('#urlBox').hide();
$('#contentBox').hide();
$('#fileBox').show();
}
$(function() {KE.show({id:'content', items:tools, filterMode:true, imageUploadJson: createLink('file', 'ajaxUpload')});});
});
</script>
<div class='yui-d0'>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->doc->edit;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->doc->module;?></th>
<td><?php echo html::select('module', $moduleOptionMenu, $doc->module, "class='select-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->type;?></th>
<td><?php echo $lang->doc->types[$doc->type];?></td>
</tr>
<th class='rowhead'><?php echo $lang->doc->title;?></th>
<td><?php echo html::input('title', $doc->title, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->keywords;?></th>
<td><?php echo html::input('keywords', $doc->keywords, "class='text-1'");?></td>
</tr>
<tr id='urlBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->url;?></th>
<td><?php echo html::input('url', urldecode($doc->url), "class='text-1'");?></td>
</tr>
<tr id='contentBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->content;?></th>
<td><?php echo html::textarea('content', htmlspecialchars($doc->content), "class='text-1' rows='8' style='width:90%; height:200px'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->digest;?></th>
<td><?php echo html::textarea('digest', $doc->digest, "class='text-1' rows=3");?></td>
</tr>
<tr id='fileBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->files;?></th>
<td><?php echo $this->fetch('file', 'buildform', 'fileCount=2');?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton() . html::resetButton() . html::hidden('lib', $libID);?>
<?php echo html::hidden('product', $doc->product) . html::hidden('project', $doc->project);?>
</td>
</tr>
</table>
</form>
</div>
<?php include './footer.html.php';?>
<?php
/**
* The edit view of doc module of ZenTaoMS.
*
* @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
* @author Jia Fu <fujia@cnezsoft.com>
* @package doc
* @version $Id: edit.html.php 975 2010-07-29 03:30:25Z jajacn@126.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<script language='javascript'>
/* 设置文档类型。*/
var type = '<?php echo $doc->type;?>';
$(document).ready(function()
{
if(type == 'url'){
$('#urlBox').show();
$('#contentBox').hide();
$('#fileBox').hide();
}
else if(type == 'text'){
$('#urlBox').hide();
$('#contentBox').show();
$('#fileBox').hide();
}
else{
$('#urlBox').hide();
$('#contentBox').hide();
$('#fileBox').show();
}
$(function() {KE.show({id:'content', items:tools, filterMode:true, imageUploadJson: createLink('file', 'ajaxUpload')});});
});
</script>
<div class='yui-d0'>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table-1'>
<caption><?php echo $lang->doc->edit;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->doc->module;?></th>
<td><?php echo html::select('module', $moduleOptionMenu, $doc->module, "class='select-3'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->type;?></th>
<td><?php echo $lang->doc->types[$doc->type];?></td>
</tr>
<th class='rowhead'><?php echo $lang->doc->title;?></th>
<td><?php echo html::input('title', $doc->title, "class='text-1'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->keywords;?></th>
<td><?php echo html::input('keywords', $doc->keywords, "class='text-1'");?></td>
</tr>
<tr id='urlBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->url;?></th>
<td><?php echo html::input('url', urldecode($doc->url), "class='text-1'");?></td>
</tr>
<tr id='contentBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->content;?></th>
<td><?php echo html::textarea('content', htmlspecialchars($doc->content), "class='text-1' rows='8' style='width:90%; height:200px'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->doc->digest;?></th>
<td><?php echo html::textarea('digest', $doc->digest, "class='text-1' rows=3");?></td>
</tr>
<tr id='fileBox' class='hidden'>
<th class='rowhead'><?php echo $lang->doc->files;?></th>
<td><?php echo $this->fetch('file', 'buildform', 'fileCount=2');?></td>
</tr>
<tr>
<td colspan='2' class='a-center'>
<?php echo html::submitButton() . html::resetButton() . html::hidden('lib', $libID);?>
<?php echo html::hidden('product', $doc->product) . html::hidden('project', $doc->project);?>
</td>
</tr>
</table>
</form>
</div>
<?php include './footer.html.php';?>

Some files were not shown because too many files have changed in this diff Show More