Compare commits

...

154 Commits

Author SHA1 Message Date
xia0ta0
b33f1b46f9 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-29 13:36:29 +08:00
xia0ta0
4d2d177881 * cn2tw for 5.1. 2013-09-29 13:35:50 +08:00
wyd621
a79753bbb1 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-29 03:44:29 +00:00
wyd621
3a8434506b * fix a bug for create build. 2013-09-29 03:43:41 +00:00
azhi
c897d594ee Merge branch 'master' of git@github.com:easysoft/zentaopms 2013-09-29 11:06:44 +08:00
azhi
4d2dc1b353 * adjust the featurebar style. 2013-09-29 11:05:38 +08:00
wyd621
ae7bb1c189 * adjust setOuterBox and hidden debugwin. 2013-09-29 02:46:21 +00:00
wyd621
755aa3c456 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-29 02:24:20 +00:00
wyd621
42435e3e42 * remove useless css. 2013-09-29 02:23:43 +00:00
Catouse
3456049400 + icons support ie7. 2013-09-29 10:18:20 +08:00
wyd621
582759a56c * fix a bug for project-burn. 2013-09-29 02:13:11 +00:00
wyd621
3c7ee4d9d4 * remove debugwin in login page. 2013-09-29 01:57:25 +00:00
wyd621
8eee210509 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-29 01:17:37 +00:00
wyd621
656c46e636 * fix bug for assignedTo field when create bug. 2013-09-29 01:16:33 +00:00
Catouse
bed9d3e5d6 * fix sorter icons. 2013-09-28 15:50:47 +08:00
azhi
4eae16c9bf Merge branch 'master' of git@github.com:easysoft/zentaopms 2013-09-28 15:38:06 +08:00
azhi
8f9e75ffbc * adjust the ui. 2013-09-28 15:35:25 +08:00
Catouse
9a65c59e04 * ajust style of icons. 2013-09-28 15:33:20 +08:00
wyd621
548b2d9a12 * delete debug color. 2013-09-28 07:14:37 +00:00
wyd621
2410218774 * change width for updater. 2013-09-28 07:14:14 +00:00
wyd621
3cec608741 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-28 07:04:27 +00:00
wyd621
7980141a0e * add ping method in openmethod list. 2013-09-28 07:03:08 +00:00
Catouse
ae18c90359 * remove home icon from footer crumbs. 2013-09-28 14:40:22 +08:00
xia0ta0
2b005bd7da * fix a bug : fromVersion, not toVersion. 2013-09-28 14:34:05 +08:00
xia0ta0
1ea6101aa9 + add upgrade from 5.0 to 5.1 2013-09-28 14:30:14 +08:00
Catouse
8c5ad1ca57 * ajust style of featurebar. 2013-09-28 13:49:46 +08:00
wyd621
d3c3bd0c33 * fix a bug for comment is only image. 2013-09-28 05:41:15 +00:00
wyd621
d39e675ea5 * remove useless css. 2013-09-28 05:34:04 +00:00
wyd621
7dd543edb7 * fix for tablesorter icon. 2013-09-28 03:33:46 +00:00
wyd621
7ad765ef99 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-28 03:10:26 +00:00
wyd621
4886f83af2 * fix bug #497. 2013-09-28 03:08:36 +00:00
azhi
265349a8e1 Merge branch 'master' of git@github.com:easysoft/zentaopms
Conflicts:

	www/theme/default/style.css
2013-09-28 10:36:42 +08:00
azhi
16092cad71 * fix bugs: new ui. 2013-09-28 10:35:10 +08:00
wyd621
0c08d63d83 * fix icon for effort. 2013-09-28 01:51:55 +00:00
wyd621
81a2a18ed4 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-28 00:41:37 +00:00
wyd621
dceaf04b0b * fix a bug #510. 2013-09-28 00:31:46 +00:00
Catouse
609b182ae0 * ajust style for icon. 2013-09-27 20:50:18 +08:00
Catouse
9b65220537 * ajust margin of box-content. 2013-09-27 17:42:48 +08:00
Catouse
1302a0912a * ajust style of exttable caption. 2013-09-27 17:39:46 +08:00
Catouse
bf3f1de094 * ajust bug template icon. 2013-09-27 17:31:35 +08:00
Catouse
f09ce6ddc6 * fix icons missing. 2013-09-27 16:55:01 +08:00
Catouse
891a3d2dd9 * ajust style. 2013-09-27 16:49:13 +08:00
wyd621
2e519f9cb0 * round consumed. 2013-09-27 08:26:38 +00:00
wyd621
9198ec75da * fix a bug when order has limit string. 2013-09-27 08:06:20 +00:00
wyd621
07e2c8f571 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-27 06:48:53 +00:00
wyd621
8d1843c9bc * fix a bug for set case field name in action. 2013-09-27 06:48:10 +00:00
Catouse
bac96871d2 * ajust style. 2013-09-27 12:21:08 +08:00
Catouse
dcb3ac81e2 Merge branch 'master' of https://github.com/easysoft/zentaopms 2013-09-27 11:04:44 +08:00
Catouse
429c5c5a96 * ajust style. 2013-09-27 11:04:38 +08:00
wyd621
ca4f5d636f * fix bug #454. 2013-09-27 02:52:49 +00:00
Catouse
32604b8125 * ajust style of "my/index". 2013-09-27 10:22:33 +08:00
wyd621
cce52d785e * fix a bug when field such as t1.id. 2013-09-27 01:54:27 +00:00
wyd621
6a78c2502f * fix a bug for strtolower order. 2013-09-27 01:42:46 +00:00
Catouse
4a2680a48a * fix a error for "style.css". 2013-09-26 18:02:18 +08:00
wyd621
90e5499f1d * fix a bug for order. 2013-09-26 08:05:25 +00:00
wyd621
ffd3c83dd0 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-26 06:24:37 +00:00
wyd621
6dbe327790 * fix bug 504. 2013-09-26 06:23:59 +00:00
Catouse
a11c799335 * ajust style of icons. 2013-09-26 12:23:52 +08:00
wyd621
7f3d4bcdca Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-26 02:55:19 +00:00
wyd621
03dc6303ad * fix a bug #498. 2013-09-26 02:54:40 +00:00
azhi
3c3b7d8662 * adjust the misc-downNotify for new notify. 2013-09-26 09:22:06 +08:00
azhi
c9e031e86f Merge branch 'master' of git@github.com:easysoft/zentaopms 2013-09-26 09:21:27 +08:00
azhi
b5daf6f82b * fix bug#511. 2013-09-26 09:20:31 +08:00
Catouse
8549a4757d * ajust style of icons 2013-09-26 09:17:49 +08:00
Catouse
b9bf18e348 * ajust style of daterpicker icon of featurebar. 2013-09-25 10:13:37 +08:00
Catouse
1c69f7d847 * prevent line breaked in querybox. 2013-09-25 09:51:49 +08:00
Catouse
edaf55c770 * ajust style of searchbox. 2013-09-25 09:41:04 +08:00
wyd621
de4d7487a9 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-24 06:43:37 +00:00
wyd621
0116d67ad3 * fix a bug for print icon. 2013-09-24 06:42:19 +00:00
Catouse
ac72358c6d * ajust code format. 2013-09-24 10:53:51 +08:00
Catouse
c9de6b5c4a - rm useless code. 2013-09-24 10:52:52 +08:00
Catouse
e7725ef126 * ajust style of icons. 2013-09-24 10:51:35 +08:00
Catouse
a3a1a2aa5a * ajust style of action icons. 2013-09-24 09:20:20 +08:00
Catouse
b3b0d74d8c * change icons:.icon-add,.icon-delete. 2013-09-24 08:45:14 +08:00
Catouse
23500c93b6 * fix style of extension list. 2013-09-23 20:21:30 +08:00
Catouse
6a52f1ef05 * fix style in english of login page. 2013-09-23 20:04:56 +08:00
Catouse
d3e19f9a2d * add events of login page. 2013-09-23 19:52:52 +08:00
Catouse
245e10b6b5 * new login interface. 2013-09-23 18:23:06 +08:00
Catouse
5ed0bcc141 * better classicblue theme. 2013-09-23 14:41:12 +08:00
Catouse
0b779f8af5 * better red theme. 2013-09-23 14:12:41 +08:00
Catouse
3d3017586e * better green theme. 2013-09-23 14:02:41 +08:00
Catouse
2ae5154991 * fix select height. 2013-09-23 14:02:17 +08:00
wyd621
0077ab8862 * link my.min.js to my.full.js 2013-09-23 13:12:01 +08:00
wyd621
60a7c2c377 * finish task #1464. 2013-09-23 13:10:05 +08:00
wyd621
4879aa5658 * exclude the dir of db hook doc .svn. 2013-09-23 13:09:16 +08:00
Catouse
f844db4cc6 * fix multiple select control height. 2013-09-23 09:57:50 +08:00
Catouse
a1fe248c34 Merge branch 'master' of https://github.com/easysoft/zentaopms 2013-09-23 09:55:50 +08:00
Catouse
4558677597 * ajust style of chosen. 2013-09-23 09:55:36 +08:00
wwccss
d00bfd3280 * fix the bug. 2013-09-23 09:48:50 +08:00
Catouse
226e3895c2 * ajust style of form controls. 2013-09-23 09:35:19 +08:00
wwccss
ec68dd670a + add the syncext.sh. 2013-09-23 09:34:57 +08:00
Catouse
5668adbab0 * ajust style of icons. 2013-09-23 09:01:39 +08:00
Catouse
c3acb4f823 * fix ie7/8 compatibility issues. 2013-09-23 08:34:47 +08:00
Catouse
e8cecbd5eb * ajust style of webapps list. 2013-09-22 17:24:38 +08:00
Catouse
1bf88677dd * change style of priority icons. 2013-09-22 17:17:16 +08:00
Catouse
ed6d2e0eea * change border color of listmenu. 2013-09-22 17:09:27 +08:00
Catouse
4cfb449d0b * change style of bug severity icons. 2013-09-22 16:57:23 +08:00
Catouse
cf8fd65ba6 * fix daterpicker icon undisplay on feature bar. 2013-09-22 16:31:30 +08:00
Catouse
ae52b87738 * ajust style of dater picker icon. 2013-09-22 16:26:40 +08:00
Catouse
8558473667 * ajust style of mobile phone icon. 2013-09-22 16:10:52 +08:00
Catouse
a0458883e7 * apply feature bar style on ".outer>table>caption". 2013-09-22 16:03:28 +08:00
Catouse
bb4717a286 * ajust style of side title. 2013-09-22 15:57:50 +08:00
Catouse
6b52fcf810 * change icon in team.html.php. 2013-09-22 15:57:31 +08:00
Catouse
a34c712c67 * change vertical-align of table cell. 2013-09-22 15:48:29 +08:00
Catouse
8950787fc8 * ajust style of listmenu and groupbutton. 2013-09-22 15:47:10 +08:00
Catouse
86de520c2a * ajust vertical-align of #header.navbar. 2013-09-22 14:56:26 +08:00
Catouse
d49faed0c8 * ajsut style of icons. 2013-09-22 14:53:20 +08:00
Catouse
f057603eb7 - rm useless style. 2013-09-22 14:52:45 +08:00
Catouse
40a668741a * fix setOuterBox in "my.full.js". 2013-09-22 14:50:52 +08:00
wyd621
7f57f965d6 Merge branch 'master' of git@github.com:easysoft/zentaopms 2013-09-22 09:52:05 +08:00
wyd621
9c3a12b11d * fix a bug for burn. 2013-09-22 09:51:27 +08:00
Catouse
d2e87c5594 * ajust style of icons & buttons. 2013-09-18 18:18:57 +08:00
Catouse
d89536278b * ajust style of buttons. 2013-09-18 18:05:54 +08:00
Catouse
c993ab7a8d add style of the buttons. 2013-09-18 17:58:05 +08:00
Catouse
2f262580cc * ajust style of "my/index". 2013-09-18 17:19:21 +08:00
Catouse
057a42f834 * add style of icons and used correctly. 2013-09-18 16:55:33 +08:00
Catouse
cfca33f2be * fix setOuterBox in "my.full.js". 2013-09-18 16:53:42 +08:00
Catouse
3799e7d264 * update printIcon in "common/control.php". 2013-09-18 12:56:27 +08:00
Catouse
8c6d3e42de * change wording of the delete icon. 2013-09-18 12:50:36 +08:00
wwccss
d2fecb7f3a + revert it. 2013-09-18 10:36:33 +08:00
wwccss
a58b320add - delete it. 2013-09-18 10:29:32 +08:00
Catouse
fc2bc9c3d2 * update icon support. 2013-09-18 08:45:18 +08:00
Catouse
353d636f3a * change todo icon of 'my/index'. 2013-09-18 08:30:27 +08:00
Catouse
cb2bb04737 * ajust style of login. 2013-09-18 08:19:59 +08:00
Catouse
d069100508 * revert change of "common/control.php". 2013-09-18 07:54:46 +08:00
Catouse
a50c0449f7 + add style of buttons. 2013-09-17 17:00:13 +08:00
Catouse
0daa28c494 Revert "* change style."
This reverts commit 1f830da3ef.
2013-09-17 16:52:52 +08:00
Catouse
1f830da3ef * change style. 2013-09-17 15:01:00 +08:00
Catouse
f5826c1315 * add 'class' parameter for function 'commonButton'. 2013-09-17 13:59:18 +08:00
Catouse
d05c0235d2 * ajust style of footer and page my/index. 2013-09-17 13:22:33 +08:00
Catouse
acabc4f81e * ajust style of search form. 2013-09-17 11:35:28 +08:00
Catouse
cece89e621 * replace style of icons. 2013-09-17 10:56:19 +08:00
Catouse
c9b01af26c * ajust style of module menu and feature bar. 2013-09-17 09:53:56 +08:00
Catouse
d5ef11b22f * ajust style of main menu. 2013-09-16 15:36:48 +08:00
Catouse
7d9058320c * ajust style of topBar. 2013-09-16 14:33:49 +08:00
Catouse
6704e2c4b5 + add font-awesome support. 2013-09-16 14:14:50 +08:00
wyd621
e2f40afb04 Merge branch 'master' of git@github.com:easysoft/zentaopms 2013-09-12 15:56:52 +08:00
wyd621
31d1346bf7 * fix a bug for order by left. 2013-09-12 15:56:24 +08:00
xia0ta0
5eb15407d7 * fix a warning: treeMenu[0]. 2013-09-11 09:59:09 +08:00
xia0ta0
49d7b65f54 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-10 13:43:24 +08:00
xia0ta0
70436d6e63 * fix a bug : testcase, not case. 2013-09-10 13:42:28 +08:00
wyd621
36ea5246db * fix a bug for edit webapp. 2013-09-05 16:59:56 +08:00
wyd621
3d8e60309f Merge branch 'master' of git@github.com:easysoft/zentaopms 2013-09-05 14:14:56 +08:00
wyd621
ca105a77ee * fix a bug. 2013-09-05 14:14:02 +08:00
xia0ta0
e33122c70a Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-05 14:09:08 +08:00
xia0ta0
4b485a0560 * fix bug#506. 2013-09-05 14:03:09 +08:00
wyd621
8a4008b639 Merge branch 'master' of git@github.com:easysoft/zentaopms 2013-09-04 15:20:51 +08:00
wyd621
7b7fdc7ac5 * fix a bug. 2013-09-04 15:19:18 +08:00
xia0ta0
d10b54ac6d + add git ext. 2013-09-04 11:24:58 +08:00
xia0ta0
da1735f3c8 * reset setCompany. 2013-09-03 14:25:20 +08:00
xia0ta0
831a383726 Merge commit 'e07e89ee61311fed45bb9b78d6eafa3cf77d3c6f' 2013-09-03 14:18:39 +08:00
xia0ta0
e07e89ee61 - format. 2013-09-03 14:07:19 +08:00
xia0ta0
d24775b120 Merge branch 'master' of github.com:easysoft/zentaopms 2013-09-03 13:59:47 +08:00
xia0ta0
cf167a5c4f - remove setCompany. 2013-09-03 13:58:34 +08:00
162 changed files with 3848 additions and 1839 deletions

View File

@@ -17,7 +17,7 @@ if(!function_exists('getWebRoot')){function getWebRoot(){}}
/* Basic settings. */
$config = new config();
$config->version = '5.0'; // The version of zentaopms. Don't change it.
$config->version = '5.1'; // The version of zentaopms. Don't change it.
$config->charset = 'UTF-8'; // The charset of zentaopms.
$config->cookieLife = time() + 2592000; // The cookie life time.
$config->timezone = 'Asia/Shanghai'; // The time zone setting, for more see http://www.php.net/manual/en/timezones.php

View File

@@ -694,7 +694,7 @@ class router
elseif(isset($_COOKIE['lang']))
{
$this->clientLang = $_COOKIE['lang'];
}
}
elseif(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
{
if(strpos($_SERVER['HTTP_ACCEPT_LANGUAGE'], ',') === false)

View File

@@ -1527,7 +1527,34 @@ class sql
{
if($this->inCondition and !$this->conditionIsTrue) return $this;
$order = str_replace(array('|', '', '_'), ' ', $order);
$order = str_replace(array('|', '', '_'), ' ', $order);
/* Add "`" in order string. */
/* When order has limit string. */
$pos = stripos($order, 'limit');
$orders = $pos ? substr($order, 0, $pos) : $order;
$limit = $pos ? substr($order, $pos) : '';
$orders = explode(',', $orders);
foreach($orders as $i => $order)
{
$orderParse = explode(' ', trim($order));
foreach($orderParse as $key => $value)
{
$value = trim($value);
if(empty($value) or strtolower($value) == 'desc' or strtolower($value) == 'asc') continue;
$field = trim($value, '`');
/* such as t1.id field. */
if(strpos($value, '.') !== false) list($table, $field) = explode('.', $field);
$field = "`$field`";
$orderParse[$key] = isset($table) ? $table . '.' . $field : $field;
unset($table);
}
$orders[$i] = join(' ', $orderParse);
}
$order = join(',', $orders) . ' ' . $limit;
$this->sql .= ' ' . DAO::ORDERBY . " $order";
return $this;

View File

@@ -457,9 +457,9 @@ EOT;
* @access public
* @return string the common button tag.
*/
public static function commonButton($label = '', $misc = '')
public static function commonButton($label = '', $misc = '', $class = '')
{
return " <input type='button' value='$label' $misc class='button-c' /> ";
return " <input type='button' value='$label' $misc class='button-c $class' /> ";
}
/**

1
module/action/config.php Normal file → Executable file
View File

@@ -7,6 +7,7 @@ $config->action->objectNameFields['project'] = 'name';
$config->action->objectNameFields['task'] = 'name';
$config->action->objectNameFields['build'] = 'name';
$config->action->objectNameFields['bug'] = 'title';
$config->action->objectNameFields['testcase'] = 'title';
$config->action->objectNameFields['case'] = 'title';
$config->action->objectNameFields['testtask'] = 'name';
$config->action->objectNameFields['user'] = 'account';

0
module/action/control.php Normal file → Executable file
View File

0
module/action/css/trash.css Normal file → Executable file
View File

0
module/action/ext/config/.gitkeep Normal file → Executable file
View File

0
module/action/ext/control/.gitkeep Normal file → Executable file
View File

0
module/action/ext/css/.gitkeep Normal file → Executable file
View File

0
module/action/ext/js/.gitkeep Normal file → Executable file
View File

0
module/action/ext/lang/en/.gitkeep Normal file → Executable file
View File

0
module/action/ext/lang/zh-cn/.gitkeep Normal file → Executable file
View File

0
module/action/ext/lang/zh-tw/.gitkeep Normal file → Executable file
View File

0
module/action/ext/model/.gitkeep Normal file → Executable file
View File

0
module/action/ext/view/.gitkeep Normal file → Executable file
View File

0
module/action/lang/en.php Normal file → Executable file
View File

0
module/action/lang/zh-cn.php Normal file → Executable file
View File

0
module/action/lang/zh-tw.php Normal file → Executable file
View File

2
module/action/model.php Normal file → Executable file
View File

@@ -39,7 +39,7 @@ class actionModel extends model
$action->actor = $actor ? $actor : $this->app->user->account;
$action->action = strtolower($actionType);
$action->date = helper::now();
$action->comment = ltrim($comment, "<br />");
$action->comment = trim(strip_tags($comment, "<img>")) ? $comment : '';
$action->extra = $extra;
/* Get product and project for this object. */

0
module/action/view/trash.html.php Normal file → Executable file
View File

View File

@@ -1,26 +1,26 @@
<?php
/**
* The view file of admin module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Congzhi Chen <congzhi@cnezsoft.com>
* @package admin
* @version $Id: view.html.php 2568 2012-02-09 06:56:35Z shiyangyangwork@yahoo.cn $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<form method='post' target='hiddenwin' action='<?php echo inLink('clearData', 'confirm=no')?>'>
<table align='center' class='table-5'>
<caption><?php echo $lang->admin->clearData;?></caption>
<tr><td><?php echo nl2br($lang->admin->clearDataDesc);?></td></tr>
<tr>
<td class='a-center'>
<span><?php echo $this->lang->admin->pleaseInputYes . html::input('sure', '', "class='text-2' onkeyup='showClearButton()' autocomplete='off'");?></span>
<?php echo html::submitButton($lang->admin->clearData, "class='hidden'");?>
</td>
</tr>
</table>
</form>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The view file of admin module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Congzhi Chen <congzhi@cnezsoft.com>
* @package admin
* @version $Id: view.html.php 2568 2012-02-09 06:56:35Z shiyangyangwork@yahoo.cn $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<form method='post' target='hiddenwin' action='<?php echo inLink('clearData', 'confirm=no')?>'>
<table align='center' class='table-5'>
<caption><?php echo $lang->admin->clearData;?></caption>
<tr><td><?php echo nl2br($lang->admin->clearDataDesc);?></td></tr>
<tr>
<td class='a-center'>
<span><?php echo $this->lang->admin->pleaseInputYes . html::input('sure', '', "class='text-2' onkeyup='showClearButton()' autocomplete='off'");?></span>
<?php echo html::submitButton($lang->admin->clearData, "class='hidden btn btn-danger'");?>
</td>
</tr>
</table>
</form>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -291,13 +291,14 @@ class bug extends control
{
$bug = $this->bug->getById($bugID);
extract((array)$bug);
$projectID = $bug->project;
$moduleID = $bug->module;
$taskID = $bug->task;
$storyID = $bug->story;
$buildID = $bug->openedBuild;
$severity = $bug->severity;
$type = $bug->type;
$projectID = $bug->project;
$moduleID = $bug->module;
$taskID = $bug->task;
$storyID = $bug->story;
$buildID = $bug->openedBuild;
$severity = $bug->severity;
$type = $bug->type;
$assignedTo = $bug->assignedTo;
}
/* If projectID is setted, get builds and stories of this project. */
@@ -712,8 +713,7 @@ class bug extends control
if($bug->toTask != 0)
{
$confirmURL = $this->createLink('task', 'view', "taskID=$bug->toTask");
$cancelURL = $this->createLink('bug', 'view', "bugID=$bugID");
die(js::confirm(sprintf($this->lang->bug->remindTask, $bug->toTask), $confirmURL, $cancelURL, 'parent', 'parent'));
echo js::confirm(sprintf($this->lang->bug->remindTask, $bug->toTask), $confirmURL, '', 'parent');
}
if(isonlybody()) die(js::closeColorbox('parent.parent'));
die(js::locate($this->createLink('bug', 'view', "bugID=$bugID"), 'parent'));

View File

@@ -1,4 +1,2 @@
#product, #module, #project, #story, #task, #resolvedBuild{width:220px}
#steps {width:100%}
.select-3 {width:220px}
.text-3 {width:215px}
select.select-3,#mailto,#module,#story-chzn {width:230px}
.text-1 {width:220px}

View File

@@ -1,6 +1,6 @@
$(document).ready(function()
{
$("a.customFields").colorbox({width:540, height:340, iframe:true, transition:'none'});
$("a.customFields").colorbox({width:680, height:400, iframe:true, transition:'none'});
$('#' + browseType + 'Tab').addClass('active');
$('#module' + moduleID).addClass('active');
if(browseType == 'bysearch') ajaxGetSearchForm();

View File

@@ -5,13 +5,15 @@ $(function()
if(typeof page == 'undefined') page = '';
if(page == 'create')
{
productID = $('#product').val();
productID = $('#product').val();
moduleID = $('#module').val();
assignedto = $('#assignedTo').val();
changeProductConfirmed = true;
oldStoryID = 0;
oldProjectID = 0;
oldOpenedBuild = '';
oldTaskID = 0;
setAssignedTo(0,productID);
if(!assignedto)setAssignedTo(moduleID, productID);
notice();
}
@@ -202,7 +204,7 @@ function setStories(moduleID, productID)
link = createLink('story', 'ajaxGetProductStories', 'productID=' + productID + '&moduleID=' + moduleID);
$.get(link, function(stories)
{
if(!stories) stories = '<select id="story" name="story"></select>';
if(!stories) stories = '<select id="story" name="story" class="select-3"></select>';
$('#story').replaceWith(stories);
$('#story_chzn').remove();
$("#story").chosen({no_results_text: ''});

View File

@@ -33,19 +33,18 @@ js::set('customed', $customed);
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='needconfirmTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=needconfirm&param=0"), $lang->bug->needConfirm) . "</span>";
echo "<span id='bysearchTab'><a href='#'><span class='icon-search'></span>{$lang->bug->byQuery}</a></span> ";
echo "<span id='bysearchTab'><a href='#'><i class='icon-search icon'></i>&nbsp;{$lang->bug->byQuery}</a></span> ";
?>
</div>
<div class='f-right'>
<?php
echo '<span class="link-button dropButton">';
echo html::a("#", "&nbsp;", '', "id='exportAction' class='icon-green-common-export' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->export}'");
echo html::a("#", $lang->export, '', "id='exportAction' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->export}'");
echo html::a("#", "<i class='icon-upload-alt'></i> " . $lang->export, '', "id='exportAction' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->export}'");
echo '</span>';
common::printIcon('bug', 'report', "productID=$productID&browseType=$browseType&moduleID=$moduleID");
common::printIcon('bug', 'customFields');
common::printIcon('bug', 'customFields', '', '', 'button', 'icon-wrench');
common::printIcon('bug', 'batchCreate', "productID=$productID&projectID=0&moduleID=$moduleID");
common::printIcon('bug', 'create', "productID=$productID&extra=moduleID=$moduleID");
?>
@@ -64,12 +63,12 @@ js::set('customed', $customed);
<div id='querybox' class='<?php if($browseType !='bysearch') echo 'hidden';?>'></div>
<?php
if($customed)
{
include './browse.custom.html.php';
include '../../common/view/footer.lite.html.php';
exit;
}
if($customed)
{
include './browse.custom.html.php';
include '../../common/view/footer.lite.html.php';
exit;
}
?>
<div class='treeSlider' id='bugTree'><span>&nbsp;</span></div>

View File

@@ -6,8 +6,8 @@ KindEditor.lang({'savetemplate' : '<?php echo $lang->bug->saveTemplate;?>'});
foreach($templates as $key => $template)
{
echo "<span id='tplBox$template->id'>";
echo $lang->arrow. "<span id='tplTitleBox$template->id' onclick='setTemplate($template->id)' style='text-decoration:underline; color:blue' class='hand'>$template->title</span>";
echo html::commonButton('&nbsp;', "onclick=deleteTemplate($template->id) class='icon-delete'");
echo '&nbsp; ' . $lang->arrow. " <span id='tplTitleBox$template->id' onclick='setTemplate($template->id)' style='text-decoration:underline; color:blue' class='hand'>$template->title</span>";
echo "&nbsp; <a href='javascript:void();' onclick='deleteTemplate($template->id)' class='link-icon'><i class='icon-remove icon-sm'></i></a>";
echo "<span id='template$template->id' class='hidden'>$template->content</span>";
echo '<br /></span>';
}

View File

@@ -44,7 +44,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
<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>
<?php echo html::textarea('steps', htmlspecialchars($bug->steps), "rows='12' class='area-1'");?>
</fieldset>
<fieldset>
<legend><?php echo $lang->bug->legendComment;?></legend>
@@ -72,14 +72,12 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
<table class='table-1 a-left' cellpadding='0' cellspacing='0'>
<tr>
<td class='rowhead'><?php echo $lang->bug->product;?></td>
<td>
<?php echo html::select('product', $products, $productID, "onchange=loadAll(this.value);");?>
</td>
<td><?php echo html::select('product', $products, $productID, "onchange=loadAll(this.value); class='select-3'");?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->module;?></td>
<td>
<span id='moduleIdBox'><?php echo html::select('module', $moduleOptionMenu, $currentModuleID, "onchange='loadModuleRelated()'");?></span>
<span id='moduleIdBox'><?php echo html::select('module', $moduleOptionMenu, $currentModuleID, "onchange='loadModuleRelated()' class='select-3'");?></span>
</td>
</tr>
<tr>
@@ -122,11 +120,11 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->keywords;?></td>
<td><?php echo html::input('keywords', $bug->keywords, 'class="text-3"');?></td>
<td><?php echo html::input('keywords', $bug->keywords, 'class="text-1"');?></td>
</tr>
<tr>
<td class='rowhead w-p20'><?php echo $lang->bug->mailto;?></td>
<td><?php echo html::select('mailto[]', $users, str_replace(' ', '', $bug->mailto), 'class="text-3" multiple');?></td>
<td><?php echo html::select('mailto[]', $users, str_replace(' ', '', $bug->mailto), 'class="text-1" multiple');?></td>
</tr>
</table>
</fieldset>
@@ -167,7 +165,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedDate;?></td>
<td><?php echo html::input('resolvedDate', $bug->resolvedDate, 'class=text-3');?></td>
<td><?php echo html::input('resolvedDate', $bug->resolvedDate, 'class=text-1');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->resolvedBuild;?></td>
@@ -179,7 +177,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
</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>
<td><?php echo html::input('duplicateBug', $bug->duplicateBug, 'class=text-1');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->closedBy;?></td>
@@ -187,7 +185,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->closedDate;?></td>
<td><?php echo html::input('closedDate', $bug->closedDate, 'class=text-3');?></td>
<td><?php echo html::input('closedDate', $bug->closedDate, 'class=text-1');?></td>
</tr>
</table>
</fieldset>
@@ -196,11 +194,11 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
<table class='table-1 a-left'>
<tr>
<td class='rowhead'><?php echo $lang->bug->linkBug;?></td>
<td><?php echo html::input('linkBug', $bug->linkBug, 'class="text-3"');?></td>
<td><?php echo html::input('linkBug', $bug->linkBug, 'class="text-1"');?></td>
</tr>
<tr>
<td class='rowhead'><?php echo $lang->bug->case;?></td>
<td><?php echo html::input('case', $bug->case, 'class="text-3"');?></td>
<td><?php echo html::input('case', $bug->case, 'class="text-1"');?></td>
</tr>
</table>
</fieldset>

View File

@@ -135,10 +135,10 @@ class buildModel extends model
$build->bugs = '';
$build = fixer::input('post')->stripTags('name')
->setDefault('product', 0)
->join('stories', ',')
->join('bugs', ',')
->remove('allchecker')
->add('project', (int)$projectID)->remove('resolvedBy')->get();
->add('project', (int)$projectID)->remove('resolvedBy,allchecker')->get();
$this->dao->insert(TABLE_BUILD)->data($build)->autoCheck()->batchCheck($this->config->build->create->requiredFields, 'notempty')->check('name', 'unique', "product = {$build->product}")->exec();
if(!dao::isError())
{

View File

@@ -170,19 +170,19 @@ class common extends control
{
if(isset($order[1]) and $order[1] == 'asc')
{
$orderBy = "`{$order[0]}`_desc";
$orderBy = "{$order[0]}_desc";
$className = 'headerSortDown';
}
else
{
$orderBy = "`{$order[0]}`_asc";
$orderBy = "{$order[0]}_asc";
$className = 'headerSortUp';
}
}
else
{
$orderBy = "`" . trim($fieldName, '`') . "`" . '_' . 'asc';
$orderBy = "" . trim($fieldName, '`') . "" . '_' . 'asc';
$className = 'header';
}
$link = helper::createLink($module, $method, sprintf($vars, $orderBy));
@@ -240,7 +240,7 @@ class common extends control
if(!common::hasPriv($module, 'edit')) return false;
echo "<span class='link-button'>";
echo html::a('#commentBox', '&nbsp;', '', "class='icon-green-common-comment' title='$lang->comment' onclick='setComment()'");
echo html::a('#commentBox', '<i class="icon-comment-alt"></i>', '', "title='$lang->comment' onclick='setComment()'");
echo "</span>";
}
@@ -313,16 +313,21 @@ class common extends control
if($type == 'button')
{
echo "<span class='link-button'>";
echo html::a($link, '&nbsp;', $target, "class='$class' title='$title'", true);
if($method != 'edit' and $method != 'copy' and $method != 'delete')
{
echo html::a($link, $title, $target, "class='$extraClass'", true);
echo html::a($link, "<i class='$class'></i> " . $title, $target, "class='$extraClass'", true);
}
else
{
$class = "icon-$color-$module-$icon";
echo html::a($link, "<i class='$class'></i>", $target, "class='link-icon $extraClass' title='$title'", false);
}
echo "</span>";
}
else
{
echo html::a($link, '&nbsp;', $target, "class='$class' title='$title'", false);
$class = "icon-$color-$module-$icon";
echo html::a($link, "<i class='$class'></i>", $target, "class='link-icon $extraClass' title='$title'", false);
}
}
else
@@ -330,7 +335,7 @@ class common extends control
if($type == 'list')
{
$class = "icon-$color-$module-$icon";
echo "<span class='$class' title='$title'>&nbsp;</span>";
echo "<i class='disabled $class' title='$title'></i>";
}
}
}
@@ -349,7 +354,7 @@ class common extends control
if(isonlybody()) return false;
echo "<span class='link-button'>";
echo html::a($backLink, '&nbsp;', '', "class='icon-goback' title={$lang->goback}");
echo html::a($backLink, '<i class="icon-goback icon-level-up icon-large icon-rotate-270"></i>', '', "class='link-icon' title={$lang->goback}");
echo "</span>";
if(isset($preAndNext->pre) and $preAndNext->pre)
@@ -358,7 +363,7 @@ class common extends control
$title = isset($preAndNext->pre->title) ? $preAndNext->pre->title : $preAndNext->pre->name;
$title = '#' . $preAndNext->pre->$id . ' ' . $title;
echo "<span class='link-button'>";
echo html::a(inLink('view', "ID={$preAndNext->pre->$id}"), '&nbsp', '', "id='pre' class='icon-pre' title='{$title}'");
echo html::a(inLink('view', "ID={$preAndNext->pre->$id}"), '<i class="icon-pre icon-chevron-sign-left"></i>', '', "id='pre' class='link-icon' title='{$title}'");
echo "</span>";
}
if(isset($preAndNext->next) and $preAndNext->next)
@@ -367,7 +372,7 @@ class common extends control
$title = isset($preAndNext->next->title) ? $preAndNext->next->title : $preAndNext->next->name;
$title = '#' . $preAndNext->next->$id . ' ' . $title;
echo "<span class='link-button'>";
echo html::a(inLink('view', "ID={$preAndNext->next->$id}"), '&nbsp;', '', "id='next' class='icon-next' title='$title'");
echo html::a(inLink('view', "ID={$preAndNext->next->$id}"), '<i class="icon-pre icon-chevron-sign-right"></i>', '', "id='next' class='link-icon' title='$title'");
echo "</span>";
}
}

View File

@@ -9,7 +9,7 @@
* @version $Id: en.php 5116 2013-07-12 06:37:48Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
$lang->arrow = '<span class="icon-arrow">&nbsp; </span>';
$lang->arrow = '&nbsp;<span class="icon-angle-right"></span>';
$lang->colon = '::';
$lang->comma = ',';
$lang->dot = '.';
@@ -81,7 +81,7 @@ $lang->common->common = 'Common module';
/* The main menu. */
$lang->menu = new stdclass();
$lang->menu->my = '<span id="mainbg">&nbsp;</span>Dashboard|my|index';
$lang->menu->my = '<i class="icon-home"></i> Dashboard|my|index';
$lang->menu->product = 'Product|product|index';
$lang->menu->project = 'Project|project|index';
$lang->menu->qa = 'Test|qa|index';
@@ -136,7 +136,7 @@ $lang->index->menu->project = 'Projects|project|browse';
$lang->my = new stdclass();
$lang->my->menu = new stdclass();
$lang->my->menu->account = '<span id="mybg">&nbsp;</span>%s' . $lang->arrow;
$lang->my->menu->account = '<span id="myname"><i class="icon-user"></i> %s' . $lang->arrow . '</span>';
$lang->my->menu->index = 'Index|my|index';
$lang->my->menu->todo = array('link' => 'Todo|my|todo|', 'subModule' => 'todo');
$lang->my->menu->task = array('link' => 'Task|my|task|', 'subModule' => 'task');
@@ -165,8 +165,8 @@ $lang->product->menu->doc = array('link' => 'Doc|product|doc|productID=%s',
$lang->product->menu->view = array('link' => 'Manage|product|view|productID=%s', 'alias' => 'edit');
$lang->product->menu->module = 'Modules|tree|browse|productID=%s&view=story';
$lang->product->menu->project = 'Projects|product|project|status=all&productID=%s';
$lang->product->menu->create = array('link' => '<span class="icon-add1">&nbsp;</span>New|product|create', 'float' => 'right');
$lang->product->menu->all = array('link' => '<span class="icon-all">&nbsp;</span>All|product|index|locate=no&productID=%s', 'float' => 'right');
$lang->product->menu->create = array('link' => '<span class="icon-plus">&nbsp;</span>New|product|create', 'float' => 'right');
$lang->product->menu->all = array('link' => '<span class="icon-th">&nbsp;</span>All|product|index|locate=no&productID=%s', 'float' => 'right');
$lang->story = new stdclass();
$lang->productplan = new stdclass();
@@ -192,7 +192,7 @@ $lang->project->menu->doc = array('link' => 'Doc|project|doc|porjectID=%s'
$lang->project->menu->product = array('link' => 'Product|project|manageproducts|projectID=%s', 'alias' => 'edit,start,suspend,delay,close');
$lang->project->menu->view = 'Manage|project|view|projectID=%s';
$lang->project->menu->create = array('link' => '<span class="icon-add">&nbsp;</span>New|project|create', 'float' => 'right');
$lang->project->menu->all = array('link' => '<span class="icon-allProjects">&nbsp;</span>Projects|project|index|locate=no&status=all&projectID=%s', 'float' => 'right');
$lang->project->menu->all = array('link' => '<i class="icon-th-large"></i>&nbsp;Projects|project|index|locate=no&status=all&projectID=%s', 'float' => 'right');
$lang->task = new stdclass();
$lang->build = new stdclass();
@@ -256,7 +256,7 @@ $lang->company->menu->browseGroup = array('link' => 'Group|group|browse', 'subM
$lang->company->menu->view = array('link' => 'Company|company|view', 'alias' => 'edit');
$lang->company->menu->dynamic = 'Dynamic|company|dynamic|';
$lang->company->menu->addGroup = array('link' => '<span class="icon-add">&nbsp;</span>Add Group|group|create', 'float' => 'right');
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-add">&nbsp;</span>Batch Add|user|batchCreate', 'subModule' => 'user', 'float' => 'right');
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-green-user-batchCreate">&nbsp;</span>Batch Add|user|batchCreate', 'subModule' => 'user', 'float' => 'right');
$lang->company->menu->addUser = array('link' => '<span class="icon-add">&nbsp;</span>Add User|user|create|dept=%s&from=company', 'subModule' => 'user', 'float' => 'right');
$lang->dept = new stdclass();

View File

@@ -1,401 +1,401 @@
<?php
/**
* The common simplified chinese file of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoPMS
* @version $Id: zh-cn.php 5116 2013-07-12 06:37:48Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
$lang->arrow = '<span class="icon-arrow">&nbsp; </span>';
$lang->colon = '::';
$lang->comma = '';
$lang->dot = '。';
$lang->at = ' 于 ';
$lang->downArrow = '↓';
$lang->null = '空';
$lang->zentaoPMS = '禅道管理';
$lang->welcome = "欢迎使用『%s』{$lang->colon} {$lang->zentaoPMS}";
$lang->myControl = "我的地盘";
$lang->currentPos = '当前位置:';
$lang->logout = '退出';
$lang->login = '登录';
$lang->aboutZenTao = '关于';
$lang->todayIs = '今天是%s';
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>时间: %s 毫秒, 内存: %s KB, 查询: %s. </div></div>";
$lang->reset = '重填';
$lang->refresh = '刷新';
$lang->edit = '编辑';
$lang->copy = '复制';
$lang->delete = '删除';
$lang->close = '关闭';
$lang->link = '关联';
$lang->unlink = '移除';
$lang->import = '导入';
$lang->export = '导出';
$lang->setFileName = '文件名:';
$lang->activate = '激活';
$lang->submitting = '稍候...';
$lang->save = '保存';
$lang->confirm = '确认';
$lang->preview = '查看';
$lang->goback = '返回';
$lang->go = 'GO';
$lang->more = '更多';
$lang->actions = '操作';
$lang->comment = '备注';
$lang->history = '历史记录';
$lang->attatch = '附件';
$lang->reverse = '切换顺序';
$lang->switchDisplay= '切换显示';
$lang->switchHelp = '切换帮助';
$lang->addFiles = '上传了附件 ';
$lang->files = '附件 ';
$lang->unfold = '+';
$lang->fold = '-';
$lang->selectAll = '全选';
$lang->selectReverse = '反选';
$lang->notFound = '抱歉,您访问的对象并不存在!';
$lang->showAll = '[[全部显示]]';
$lang->hideClosed = '[[显示进行中]]';
$lang->future = '未来';
$lang->year = '年';
$lang->workingHour = '工时';
$lang->idAB = 'ID';
$lang->priAB = 'P';
$lang->statusAB = '状态';
$lang->openedByAB = '创建';
$lang->assignedToAB = '指派';
$lang->typeAB = '类型';
$lang->common = new stdclass();
$lang->common->common = '公有模块';
/* 主导航菜单。*/
$lang->menu = new stdclass();
$lang->menu->my = '<span id="mainbg">&nbsp;</span>我的地盘|my|index';
$lang->menu->product = '产品|product|index';
$lang->menu->project = '项目|project|index';
$lang->menu->qa = '测试|qa|index';
$lang->menu->doc = '文档|doc|index';
$lang->menu->report = '统计|report|index';
$lang->menu->webapp = '应用|webapp|index';
$lang->menu->company = '组织|company|index';
$lang->menu->admin = '后台|admin|index';
/* 查询条中可以选择的对象列表。*/
$lang->searchObjects['bug'] = 'B:Bug';
$lang->searchObjects['story'] = 'S:需求';
$lang->searchObjects['task'] = 'T:任务';
$lang->searchObjects['testcase'] = 'C:用例';
$lang->searchObjects['project'] = 'P:项目';
$lang->searchObjects['product'] = 'P:产品';
$lang->searchObjects['user'] = 'U:用户';
$lang->searchObjects['build'] = 'B:版本';
$lang->searchObjects['release'] = 'R:发布';
$lang->searchObjects['productplan'] = 'P:产品计划';
$lang->searchObjects['testtask'] = 'T:测试任务';
$lang->searchObjects['doc'] = 'D:文档';
$lang->searchTips = '编号(ctrl+g)';
/* 导入支持的编码格式。*/
$lang->importEncodeList['gbk'] = 'GBK';
$lang->importEncodeList['big5'] = 'BIG5';
$lang->importEncodeList['utf-8'] = 'UTF-8';
/* 导出文件的类型列表。*/
$lang->exportFileTypeList['csv'] = 'csv';
$lang->exportFileTypeList['xml'] = 'xml';
$lang->exportFileTypeList['html'] = 'html';
$lang->exportTypeList['all'] = '全部记录';
$lang->exportTypeList['selected'] = '选中记录';
/* 风格列表。*/
$lang->themes['default'] = '默认';
$lang->themes['green'] = '绿色';
$lang->themes['red'] = '红色';
$lang->themes['classblue'] = '经典蓝';
/* 首页菜单设置。*/
$lang->index = new stdclass();
$lang->index->menu = new stdclass();
$lang->index->menu->product = '浏览产品|product|browse';
$lang->index->menu->project = '浏览项目|project|browse';
/* 我的地盘菜单设置。*/
$lang->my = new stdclass();
$lang->my->menu = new stdclass();
$lang->my->menu->account = '<span id="mybg">&nbsp;</span>%s' . $lang->arrow;
$lang->my->menu->index = '首页|my|index';
$lang->my->menu->todo = array('link' => '待办|my|todo|', 'subModule' => 'todo');
$lang->my->menu->task = array('link' => '任务|my|task|', 'subModule' => 'task');
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
$lang->my->menu->testtask = array('link' => '测试|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
$lang->my->menu->story = array('link' => '需求|my|story|', 'subModule' => 'story');
$lang->my->menu->myProject = '项目|my|project|';
$lang->my->menu->dynamic = '动态|my|dynamic|';
$lang->my->menu->profile = array('link' => '档案|my|profile|', 'alias' => 'editprofile');
$lang->my->menu->changePassword = '密码|my|changepassword|';
$lang->todo = new stdclass();
$lang->todo->menu = $lang->my->menu;
/* 产品视图设置。*/
$lang->product = new stdclass();
$lang->product->menu = new stdclass();
$lang->product->menu->list = '%s';
$lang->product->menu->story = array('link' => '需求|product|browse|productID=%s', 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->dynamic = '动态|product|dynamic|productID=%s';
$lang->product->menu->plan = array('link' => '计划|productplan|browse|productID=%s', 'subModule' => 'productplan');
$lang->product->menu->release = array('link' => '发布|release|browse|productID=%s', 'subModule' => 'release');
$lang->product->menu->roadmap = '路线图|product|roadmap|productID=%s';
$lang->product->menu->doc = array('link' => '文档|product|doc|productID=%s', 'subModule' => 'doc');
$lang->product->menu->view = array('link' => '维护|product|view|productID=%s', 'alias' => 'edit');
$lang->product->menu->module = '模块|tree|browse|productID=%s&view=story';
$lang->product->menu->project = '项目|product|project|status=all&productID=%s';
$lang->product->menu->create = array('link' => '<span class="icon-add">&nbsp;</span>添加产品|product|create', 'float' => 'right');
$lang->product->menu->all = array('link' => '<span class="icon-allProducts">&nbsp;</span>所有产品|product|index|locate=no&productID=%s', 'float' => 'right');
$lang->story = new stdclass();
$lang->productplan = new stdclass();
$lang->release = new stdclass();
$lang->story->menu = $lang->product->menu;
$lang->productplan->menu = $lang->product->menu;
$lang->release->menu = $lang->product->menu;
/* 项目视图菜单设置。*/
$lang->project = new stdclass();
$lang->project->menu = new stdclass();
$lang->project->menu->list = '%s';
$lang->project->menu->task = array('link' => '任务|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug');
$lang->project->menu->story = array('link' => '需求|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory');
$lang->project->menu->bug = 'Bug|project|bug|projectID=%s';
$lang->project->menu->dynamic = '动态|project|dynamic|projectID=%s';
$lang->project->menu->build = array('link' => '版本|project|build|projectID=%s', 'subModule' => 'build');
$lang->project->menu->testtask = '测试|project|testtask|projectID=%s';
$lang->project->menu->team = array('link' => '团队|project|team|projectID=%s', 'alias' => 'managemembers');
$lang->project->menu->doc = array('link' => '文档|project|doc|porjectID=%s', 'subModule' => 'doc');
$lang->project->menu->product = '产品|project|manageproducts|projectID=%s';
$lang->project->menu->view = array('link' => '维护|project|view|projectID=%s', 'alias' => 'edit,start,suspend,putoff,close');
$lang->project->menu->create = array('link' => '<span class="icon-add">&nbsp;</span>添加项目|project|create', 'float' => 'right');
$lang->project->menu->all = array('link' => '<span class="icon-allProjects">&nbsp;</span>所有项目|project|index|locate=no&status=all&projectID=%s', 'float' => 'right');
$lang->task = new stdclass();
$lang->build = new stdclass();
$lang->task->menu = $lang->project->menu;
$lang->build->menu = $lang->project->menu;
/* QA视图菜单设置。*/
$lang->bug = new stdclass();
$lang->bug->menu = new stdclass();
$lang->bug->menu->product = '%s';
$lang->bug->menu->bug = array('link' => 'Bug|bug|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,resolve,close,activate,report,batchedit,confirmbug,assignto', 'subModule' => 'tree');
$lang->bug->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,edit');
$lang->bug->menu->testtask = array('link' => '测试任务|testtask|browse|productID=%s');
$lang->testcase = new stdclass();
$lang->testcase->menu = new stdclass();
$lang->testcase->menu->product = '%s';
$lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport', 'subModule' => 'tree');
$lang->testcase->menu->testtask = array('link' => '测试任务|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun');
$lang->testtask = new stdclass();
$lang->testtask->menu = $lang->testcase->menu;
/* 文档视图菜单设置。*/
$lang->doc = new stdclass();
$lang->doc->menu = new stdclass();
$lang->doc->menu->list = '%s';
$lang->doc->menu->browse = array('link' => '文档|doc|browse|libID=%s', 'alias' => 'view,create,edit');
$lang->doc->menu->edit = '编辑|doc|editLib|libID=%s';
$lang->doc->menu->module = '分类|tree|browse|libID=%s&viewType=doc';
$lang->doc->menu->delete = array('link' => '删除|doc|deleteLib|libID=%s', 'target' => 'hiddenwin');
$lang->doc->menu->create = array('link' => '<span class="icon-add">&nbsp;</span>添加文档库|doc|createLib', 'float' => 'right');
/* 统计视图菜单设置。*/
$lang->report = new stdclass();
$lang->report->menu = new stdclass();
$lang->report->menu->product = array('link' => '产品|report|productinfo');
$lang->report->menu->prj = array('link' => '项目|report|projectdeviation');
$lang->report->menu->test = array('link' => '测试|report|bugsummary', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => '组织|report|workload');
/* 资源视图菜单设置。*/
$lang->webapp = new stdclass();
$lang->webapp->menu = new stdclass();
$lang->webapp->menu->obtain = array('link' => '<span class="icon-webapp-obtain">&nbsp;</span>应用商店|webapp|obtain', 'float' => 'right');
$lang->webapp->menu->manageTree = array('link' => "<span class='icon-webapp-manage'>&nbsp;</span>维护分类|tree|browse|rootID=0&view=webapp", 'float' => 'right');
$lang->webapp->menu->create = array('link' => "<span class='icon-webapp-create'>&nbsp;</span>创建应用|webapp|create", 'float' => 'right');
/* 组织结构视图菜单设置。*/
$lang->company = new stdclass();
$lang->company->menu = new stdclass();
$lang->company->menu->name = '%s' . $lang->arrow;
$lang->company->menu->browseUser = array('link' => '用户|company|browse', 'subModule' => 'user');
$lang->company->menu->dept = array('link' => '部门|dept|browse', 'subModule' => 'dept');
$lang->company->menu->browseGroup = array('link' => '权限|group|browse', 'subModule' => 'group');
$lang->company->menu->view = array('link' => '公司|company|view', 'alias' => 'edit');
$lang->company->menu->dynamic = '动态|company|dynamic|';
$lang->company->menu->addGroup = array('link' => '<span class="icon-add">&nbsp;</span>添加分组|group|create', 'float' => 'right');
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-add">&nbsp;</span>批量添加|user|batchCreate|dept=%s', 'subModule' => 'user', 'float' => 'right');
$lang->company->menu->addUser = array('link' => '<span class="icon-add">&nbsp;</span>添加用户|user|create|dept=%s', 'subModule' => 'user', 'float' => 'right');
$lang->dept = new stdclass();
$lang->group = new stdclass();
$lang->user = new stdclass();
$lang->dept->menu = $lang->company->menu;
$lang->group->menu = $lang->company->menu;
$lang->user->menu = $lang->company->menu;
/* 后台管理菜单设置。*/
$lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => '首页|admin|index');
$lang->admin->menu->extension = array('link' => '扩展|extension|browse', 'subModule' => 'extension,editor');
$lang->admin->menu->custom = array('link' => '自定义|custom|index', 'subModule' => 'custom');
$lang->admin->menu->mail = array('link' => '发信|mail|index', 'subModule' => 'mail');
$lang->admin->menu->clearData = array('link' => '清除数据|admin|cleardata');
$lang->admin->menu->convert = array('link' => '导入|convert|index', 'subModule' => 'convert');
$lang->admin->menu->trashes = array('link' => '回收站|action|trash', 'subModule' => 'action');
$lang->admin->menu->sso = array('link' => '单点登录|sso|browse', 'subModule' => 'sso');
$lang->convert = new stdclass();
$lang->upgrade = new stdclass();
$lang->action = new stdclass();
$lang->extension = new stdclass();
$lang->custom = new stdclass();
$lang->editor = new stdclass();
$lang->mail = new stdclass();
$lang->sso = new stdclass();
$lang->convert->menu = $lang->admin->menu;
$lang->upgrade->menu = $lang->admin->menu;
$lang->action->menu = $lang->admin->menu;
$lang->extension->menu = $lang->admin->menu;
$lang->custom->menu = $lang->admin->menu;
$lang->editor->menu = $lang->admin->menu;
$lang->mail->menu = $lang->admin->menu;
$lang->sso->menu = $lang->admin->menu;
/* 菜单分组。*/
$lang->menugroup = new stdclass();
$lang->menugroup->release = 'product';
$lang->menugroup->story = 'product';
$lang->menugroup->productplan = 'product';
$lang->menugroup->task = 'project';
$lang->menugroup->build = 'project';
$lang->menugroup->convert = 'admin';
$lang->menugroup->upgrade = 'admin';
$lang->menugroup->user = 'company';
$lang->menugroup->group = 'company';
$lang->menugroup->bug = 'qa';
$lang->menugroup->testcase = 'qa';
$lang->menugroup->testtask = 'qa';
$lang->menugroup->people = 'company';
$lang->menugroup->dept = 'company';
$lang->menugroup->todo = 'my';
$lang->menugroup->action = 'admin';
$lang->menugroup->extension = 'admin';
$lang->menugroup->custom = 'admin';
$lang->menugroup->editor = 'admin';
$lang->menugroup->mail = 'admin';
$lang->menugroup->sso = 'admin';
/* 错误提示信息。*/
$lang->error = new stdclass();
$lang->error->companyNotFound = "您访问的域名 %s 没有对应的公司。";
$lang->error->length = array("『%s』长度错误应当为『%s』", "『%s』长度应当不超过『%s』且不小于『%s』。");
$lang->error->reg = "『%s』不符合格式应当为:『%s』。";
$lang->error->unique = "『%s』已经有『%s』这条记录了。如果您确定该记录已删除请到后台管理-回收站还原。。";
$lang->error->gt = "『%s』应当大于『%s』。";
$lang->error->ge = "『%s』应当不小于『%s』。";
$lang->error->notempty = "『%s』不能为空。";
$lang->error->empty = "『%s』必须为空。";
$lang->error->equal = "『%s』必须为『%s』。";
$lang->error->int = array("『%s』应当是数字。", "『%s』应当介于『%s-%s』之间。");
$lang->error->float = "『%s』应当是数字可以是小数。";
$lang->error->email = "『%s』应当为合法的EMAIL。";
$lang->error->date = "『%s』应当为合法的日期。";
$lang->error->account = "『%s』应当为合法的用户名。";
$lang->error->passwordsame = "两次密码应当相等。";
$lang->error->passwordrule = "密码应该符合规则,长度至少为六位。";
$lang->error->accessDenied = '您没有访问权限';
$lang->error->noData = '没有数据';
/* 分页信息。*/
$lang->pager = new stdclass();
$lang->pager->noRecord = "暂时没有记录";
$lang->pager->digest = "共<strong>%s</strong>条记录,每页 <strong>%s</strong>条,<strong>%s/%s</strong> ";
$lang->pager->first = "首页";
$lang->pager->pre = "上页";
$lang->pager->next = "下页";
$lang->pager->last = "末页";
$lang->pager->locate = "GO!";
$lang->zentaoSite = "官方网站";
$lang->chinaScrum = "<a href='http://api.zentao.net/goto.php?item=chinascrum' target='_blank'>Scrum社区</a> ";
$lang->agileTraining = "<a href='http://api.zentao.net/goto.php?item=agiletrain' target='_blank'>培训</a> ";
$lang->donate = "<a href='http://api.zentao.net/goto.php?item=donate' target='_blank'>捐赠</a> ";
$lang->proVersion = "<a href='http://api.zentao.net/goto.php?item=proversion&from=footer' target='_blank' class='red'>购买专业版(特惠)</a> ";
$lang->downNotify = "下载桌面提醒";
$lang->suhosinInfo = "警告数据太多请在php.ini中修改<font color=red>sohusin.post.max_vars</font>和<font color=red>sohusin.request.max_vars</font>(设置更大的数)。 保存并重新启动apache否则会造成部分数据无法保存。";
$lang->noResultsMatch = "没有匹配结果";
$lang->chooseUsersToMail = "选择要发信通知的用户...";
/* 时间格式设置。*/
define('DT_DATETIME1', 'Y-m-d H:i:s');
define('DT_DATETIME2', 'y-m-d H:i');
define('DT_MONTHTIME1', 'n/d H:i');
define('DT_MONTHTIME2', 'n月d日 H:i');
define('DT_DATE1', 'Y-m-d');
define('DT_DATE2', 'Ymd');
define('DT_DATE3', 'Y年m月d日');
define('DT_DATE4', 'n月j日');
define('DT_TIME1', 'H:i:s');
define('DT_TIME2', 'H:i');
/* datepicker 时间*/
$lang->datepicker = new stdclass();
$lang->datepicker->dpText = new stdclass();
$lang->datepicker->dpText->TEXT_OR = '或 ';
$lang->datepicker->dpText->TEXT_PREV_YEAR = '去年';
$lang->datepicker->dpText->TEXT_PREV_MONTH = '上月';
$lang->datepicker->dpText->TEXT_PREV_WEEK = '上周';
$lang->datepicker->dpText->TEXT_YESTERDAY = '昨天';
$lang->datepicker->dpText->TEXT_THIS_MONTH = '本月';
$lang->datepicker->dpText->TEXT_THIS_WEEK = '本周';
$lang->datepicker->dpText->TEXT_TODAY = '今天';
$lang->datepicker->dpText->TEXT_NEXT_YEAR = '明年';
$lang->datepicker->dpText->TEXT_NEXT_MONTH = '下月';
$lang->datepicker->dpText->TEXT_CLOSE = '关闭';
$lang->datepicker->dpText->TEXT_DATE = '选择时间段';
$lang->datepicker->dpText->TEXT_CHOOSE_DATE = '选择日期';
$lang->datepicker->dayNames = array('日', '一', '二', '三', '四', '五', '六');
$lang->datepicker->abbrDayNames = array('日', '一', '二', '三', '四', '五', '六');
$lang->datepicker->monthNames = array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月');
include (dirname(__FILE__) . '/menuOrder.php');
<?php
/**
* The common simplified chinese file of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoPMS
* @version $Id: zh-cn.php 5116 2013-07-12 06:37:48Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
$lang->arrow = '&nbsp;<span class="icon-angle-right"></span>';
$lang->colon = '::';
$lang->comma = '';
$lang->dot = '。';
$lang->at = ' 于 ';
$lang->downArrow = '↓';
$lang->null = '空';
$lang->zentaoPMS = '禅道管理';
$lang->welcome = "欢迎使用『%s』{$lang->colon} {$lang->zentaoPMS}";
$lang->myControl = "我的地盘";
$lang->currentPos = '当前位置:';
$lang->logout = '退出';
$lang->login = '登录';
$lang->aboutZenTao = '关于';
$lang->todayIs = '今天是%s';
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>时间: %s 毫秒, 内存: %s KB, 查询: %s. </div></div>";
$lang->reset = '重填';
$lang->refresh = '刷新';
$lang->edit = '编辑';
$lang->copy = '复制';
$lang->delete = '删除';
$lang->close = '关闭';
$lang->link = '关联';
$lang->unlink = '移除';
$lang->import = '导入';
$lang->export = '导出';
$lang->setFileName = '文件名:';
$lang->activate = '激活';
$lang->submitting = '稍候...';
$lang->save = '保存';
$lang->confirm = '确认';
$lang->preview = '查看';
$lang->goback = '返回';
$lang->go = 'GO';
$lang->more = '更多';
$lang->actions = '操作';
$lang->comment = '备注';
$lang->history = '历史记录';
$lang->attatch = '附件';
$lang->reverse = '切换顺序';
$lang->switchDisplay= '切换显示';
$lang->switchHelp = '切换帮助';
$lang->addFiles = '上传了附件 ';
$lang->files = '附件 ';
$lang->unfold = '+';
$lang->fold = '-';
$lang->selectAll = '全选';
$lang->selectReverse = '反选';
$lang->notFound = '抱歉,您访问的对象并不存在!';
$lang->showAll = '[[全部显示]]';
$lang->hideClosed = '[[显示进行中]]';
$lang->future = '未来';
$lang->year = '年';
$lang->workingHour = '工时';
$lang->idAB = 'ID';
$lang->priAB = 'P';
$lang->statusAB = '状态';
$lang->openedByAB = '创建';
$lang->assignedToAB = '指派';
$lang->typeAB = '类型';
$lang->common = new stdclass();
$lang->common->common = '公有模块';
/* 主导航菜单。*/
$lang->menu = new stdclass();
$lang->menu->my = '<i class="icon-home"></i> 我的地盘|my|index';
$lang->menu->product = '产品|product|index';
$lang->menu->project = '项目|project|index';
$lang->menu->qa = '测试|qa|index';
$lang->menu->doc = '文档|doc|index';
$lang->menu->report = '统计|report|index';
$lang->menu->webapp = '应用|webapp|index';
$lang->menu->company = '组织|company|index';
$lang->menu->admin = '后台|admin|index';
/* 查询条中可以选择的对象列表。*/
$lang->searchObjects['bug'] = 'B:Bug';
$lang->searchObjects['story'] = 'S:需求';
$lang->searchObjects['task'] = 'T:任务';
$lang->searchObjects['testcase'] = 'C:用例';
$lang->searchObjects['project'] = 'P:项目';
$lang->searchObjects['product'] = 'P:产品';
$lang->searchObjects['user'] = 'U:用户';
$lang->searchObjects['build'] = 'B:版本';
$lang->searchObjects['release'] = 'R:发布';
$lang->searchObjects['productplan'] = 'P:产品计划';
$lang->searchObjects['testtask'] = 'T:测试任务';
$lang->searchObjects['doc'] = 'D:文档';
$lang->searchTips = '编号(ctrl+g)';
/* 导入支持的编码格式。*/
$lang->importEncodeList['gbk'] = 'GBK';
$lang->importEncodeList['big5'] = 'BIG5';
$lang->importEncodeList['utf-8'] = 'UTF-8';
/* 导出文件的类型列表。*/
$lang->exportFileTypeList['csv'] = 'csv';
$lang->exportFileTypeList['xml'] = 'xml';
$lang->exportFileTypeList['html'] = 'html';
$lang->exportTypeList['all'] = '全部记录';
$lang->exportTypeList['selected'] = '选中记录';
/* 风格列表。*/
$lang->themes['default'] = '默认';
$lang->themes['green'] = '绿色';
$lang->themes['red'] = '红色';
$lang->themes['classblue'] = '经典蓝';
/* 首页菜单设置。*/
$lang->index = new stdclass();
$lang->index->menu = new stdclass();
$lang->index->menu->product = '浏览产品|product|browse';
$lang->index->menu->project = '浏览项目|project|browse';
/* 我的地盘菜单设置。*/
$lang->my = new stdclass();
$lang->my->menu = new stdclass();
$lang->my->menu->account = '<span id="myname"><i class="icon-user"></i> %s' . $lang->arrow . '</span>';
$lang->my->menu->index = '首页|my|index';
$lang->my->menu->todo = array('link' => '待办|my|todo|', 'subModule' => 'todo');
$lang->my->menu->task = array('link' => '任务|my|task|', 'subModule' => 'task');
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
$lang->my->menu->testtask = array('link' => '测试|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
$lang->my->menu->story = array('link' => '需求|my|story|', 'subModule' => 'story');
$lang->my->menu->myProject = '项目|my|project|';
$lang->my->menu->dynamic = '动态|my|dynamic|';
$lang->my->menu->profile = array('link' => '档案|my|profile|', 'alias' => 'editprofile');
$lang->my->menu->changePassword = '密码|my|changepassword|';
$lang->todo = new stdclass();
$lang->todo->menu = $lang->my->menu;
/* 产品视图设置。*/
$lang->product = new stdclass();
$lang->product->menu = new stdclass();
$lang->product->menu->list = '%s';
$lang->product->menu->story = array('link' => '需求|product|browse|productID=%s', 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->dynamic = '动态|product|dynamic|productID=%s';
$lang->product->menu->plan = array('link' => '计划|productplan|browse|productID=%s', 'subModule' => 'productplan');
$lang->product->menu->release = array('link' => '发布|release|browse|productID=%s', 'subModule' => 'release');
$lang->product->menu->roadmap = '路线图|product|roadmap|productID=%s';
$lang->product->menu->doc = array('link' => '文档|product|doc|productID=%s', 'subModule' => 'doc');
$lang->product->menu->view = array('link' => '维护|product|view|productID=%s', 'alias' => 'edit');
$lang->product->menu->module = '模块|tree|browse|productID=%s&view=story';
$lang->product->menu->project = '项目|product|project|status=all&productID=%s';
$lang->product->menu->create = array('link' => '<i class="icon-plus"></i>&nbsp;添加产品|product|create', 'float' => 'right');
$lang->product->menu->all = array('link' => '<i class="icon-th"></i>&nbsp;所有产品|product|index|locate=no&productID=%s', 'float' => 'right');
$lang->story = new stdclass();
$lang->productplan = new stdclass();
$lang->release = new stdclass();
$lang->story->menu = $lang->product->menu;
$lang->productplan->menu = $lang->product->menu;
$lang->release->menu = $lang->product->menu;
/* 项目视图菜单设置。*/
$lang->project = new stdclass();
$lang->project->menu = new stdclass();
$lang->project->menu->list = '%s';
$lang->project->menu->task = array('link' => '任务|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug');
$lang->project->menu->story = array('link' => '需求|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory');
$lang->project->menu->bug = 'Bug|project|bug|projectID=%s';
$lang->project->menu->dynamic = '动态|project|dynamic|projectID=%s';
$lang->project->menu->build = array('link' => '版本|project|build|projectID=%s', 'subModule' => 'build');
$lang->project->menu->testtask = '测试|project|testtask|projectID=%s';
$lang->project->menu->team = array('link' => '团队|project|team|projectID=%s', 'alias' => 'managemembers');
$lang->project->menu->doc = array('link' => '文档|project|doc|porjectID=%s', 'subModule' => 'doc');
$lang->project->menu->product = '产品|project|manageproducts|projectID=%s';
$lang->project->menu->view = array('link' => '维护|project|view|projectID=%s', 'alias' => 'edit,start,suspend,putoff,close');
$lang->project->menu->create = array('link' => '<i class="icon-plus"></i>&nbsp;添加项目|project|create', 'float' => 'right');
$lang->project->menu->all = array('link' => '<i class="icon-th-large"></i>&nbsp;所有项目|project|index|locate=no&status=all&projectID=%s', 'float' => 'right');
$lang->task = new stdclass();
$lang->build = new stdclass();
$lang->task->menu = $lang->project->menu;
$lang->build->menu = $lang->project->menu;
/* QA视图菜单设置。*/
$lang->bug = new stdclass();
$lang->bug->menu = new stdclass();
$lang->bug->menu->product = '%s';
$lang->bug->menu->bug = array('link' => 'Bug|bug|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,resolve,close,activate,report,batchedit,confirmbug,assignto', 'subModule' => 'tree');
$lang->bug->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,edit');
$lang->bug->menu->testtask = array('link' => '测试任务|testtask|browse|productID=%s');
$lang->testcase = new stdclass();
$lang->testcase->menu = new stdclass();
$lang->testcase->menu->product = '%s';
$lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport', 'subModule' => 'tree');
$lang->testcase->menu->testtask = array('link' => '测试任务|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun');
$lang->testtask = new stdclass();
$lang->testtask->menu = $lang->testcase->menu;
/* 文档视图菜单设置。*/
$lang->doc = new stdclass();
$lang->doc->menu = new stdclass();
$lang->doc->menu->list = '%s';
$lang->doc->menu->browse = array('link' => '文档|doc|browse|libID=%s', 'alias' => 'view,create,edit');
$lang->doc->menu->edit = '编辑|doc|editLib|libID=%s';
$lang->doc->menu->module = '分类|tree|browse|libID=%s&viewType=doc';
$lang->doc->menu->delete = array('link' => '删除|doc|deleteLib|libID=%s', 'target' => 'hiddenwin');
$lang->doc->menu->create = array('link' => '<i class="icon-plus"></i>&nbsp;添加文档库|doc|createLib', 'float' => 'right');
/* 统计视图菜单设置。*/
$lang->report = new stdclass();
$lang->report->menu = new stdclass();
$lang->report->menu->product = array('link' => '产品|report|productinfo');
$lang->report->menu->prj = array('link' => '项目|report|projectdeviation');
$lang->report->menu->test = array('link' => '测试|report|bugsummary', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => '组织|report|workload');
/* 资源视图菜单设置。*/
$lang->webapp = new stdclass();
$lang->webapp->menu = new stdclass();
$lang->webapp->menu->obtain = array('link' => '<span class="icon-webapp-obtain">&nbsp;</span>应用商店|webapp|obtain', 'float' => 'right');
$lang->webapp->menu->manageTree = array('link' => "<span class='icon-webapp-manage'>&nbsp;</span>维护分类|tree|browse|rootID=0&view=webapp", 'float' => 'right');
$lang->webapp->menu->create = array('link' => "<span class='icon-webapp-create'>&nbsp;</span>创建应用|webapp|create", 'float' => 'right');
/* 组织结构视图菜单设置。*/
$lang->company = new stdclass();
$lang->company->menu = new stdclass();
$lang->company->menu->name = '%s' . $lang->arrow;
$lang->company->menu->browseUser = array('link' => '用户|company|browse', 'subModule' => 'user');
$lang->company->menu->dept = array('link' => '部门|dept|browse', 'subModule' => 'dept');
$lang->company->menu->browseGroup = array('link' => '权限|group|browse', 'subModule' => 'group');
$lang->company->menu->view = array('link' => '公司|company|view', 'alias' => 'edit');
$lang->company->menu->dynamic = '动态|company|dynamic|';
$lang->company->menu->addGroup = array('link' => '<i class="icon-plus"></i>&nbsp;添加分组|group|create', 'float' => 'right');
$lang->company->menu->batchAddUser = array('link' => '<i class="icon-green-user-batchCreate"></i>&nbsp;批量添加|user|batchCreate|dept=%s', 'subModule' => 'user', 'float' => 'right');
$lang->company->menu->addUser = array('link' => '<i class="icon-plus"></i>&nbsp;添加用户|user|create|dept=%s', 'subModule' => 'user', 'float' => 'right');
$lang->dept = new stdclass();
$lang->group = new stdclass();
$lang->user = new stdclass();
$lang->dept->menu = $lang->company->menu;
$lang->group->menu = $lang->company->menu;
$lang->user->menu = $lang->company->menu;
/* 后台管理菜单设置。*/
$lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => '首页|admin|index');
$lang->admin->menu->extension = array('link' => '扩展|extension|browse', 'subModule' => 'extension,editor');
$lang->admin->menu->custom = array('link' => '自定义|custom|index', 'subModule' => 'custom');
$lang->admin->menu->mail = array('link' => '发信|mail|index', 'subModule' => 'mail');
$lang->admin->menu->clearData = array('link' => '清除数据|admin|cleardata');
$lang->admin->menu->convert = array('link' => '导入|convert|index', 'subModule' => 'convert');
$lang->admin->menu->trashes = array('link' => '回收站|action|trash', 'subModule' => 'action');
$lang->admin->menu->sso = array('link' => '单点登录|sso|browse', 'subModule' => 'sso');
$lang->convert = new stdclass();
$lang->upgrade = new stdclass();
$lang->action = new stdclass();
$lang->extension = new stdclass();
$lang->custom = new stdclass();
$lang->editor = new stdclass();
$lang->mail = new stdclass();
$lang->sso = new stdclass();
$lang->convert->menu = $lang->admin->menu;
$lang->upgrade->menu = $lang->admin->menu;
$lang->action->menu = $lang->admin->menu;
$lang->extension->menu = $lang->admin->menu;
$lang->custom->menu = $lang->admin->menu;
$lang->editor->menu = $lang->admin->menu;
$lang->mail->menu = $lang->admin->menu;
$lang->sso->menu = $lang->admin->menu;
/* 菜单分组。*/
$lang->menugroup = new stdclass();
$lang->menugroup->release = 'product';
$lang->menugroup->story = 'product';
$lang->menugroup->productplan = 'product';
$lang->menugroup->task = 'project';
$lang->menugroup->build = 'project';
$lang->menugroup->convert = 'admin';
$lang->menugroup->upgrade = 'admin';
$lang->menugroup->user = 'company';
$lang->menugroup->group = 'company';
$lang->menugroup->bug = 'qa';
$lang->menugroup->testcase = 'qa';
$lang->menugroup->testtask = 'qa';
$lang->menugroup->people = 'company';
$lang->menugroup->dept = 'company';
$lang->menugroup->todo = 'my';
$lang->menugroup->action = 'admin';
$lang->menugroup->extension = 'admin';
$lang->menugroup->custom = 'admin';
$lang->menugroup->editor = 'admin';
$lang->menugroup->mail = 'admin';
$lang->menugroup->sso = 'admin';
/* 错误提示信息。*/
$lang->error = new stdclass();
$lang->error->companyNotFound = "您访问的域名 %s 没有对应的公司。";
$lang->error->length = array("『%s』长度错误应当为『%s』", "『%s』长度应当不超过『%s』且不小于『%s』。");
$lang->error->reg = "『%s』不符合格式应当为:『%s』。";
$lang->error->unique = "『%s』已经有『%s』这条记录了。如果您确定该记录已删除请到后台管理-回收站还原。。";
$lang->error->gt = "『%s』应当大于『%s』。";
$lang->error->ge = "『%s』应当不小于『%s』。";
$lang->error->notempty = "『%s』不能为空。";
$lang->error->empty = "『%s』必须为空。";
$lang->error->equal = "『%s』必须为『%s』。";
$lang->error->int = array("『%s』应当是数字。", "『%s』应当介于『%s-%s』之间。");
$lang->error->float = "『%s』应当是数字可以是小数。";
$lang->error->email = "『%s』应当为合法的EMAIL。";
$lang->error->date = "『%s』应当为合法的日期。";
$lang->error->account = "『%s』应当为合法的用户名。";
$lang->error->passwordsame = "两次密码应当相等。";
$lang->error->passwordrule = "密码应该符合规则,长度至少为六位。";
$lang->error->accessDenied = '您没有访问权限';
$lang->error->noData = '没有数据';
/* 分页信息。*/
$lang->pager = new stdclass();
$lang->pager->noRecord = "暂时没有记录";
$lang->pager->digest = "共<strong>%s</strong>条记录,每页 <strong>%s</strong>条,<strong>%s/%s</strong> ";
$lang->pager->first = "首页";
$lang->pager->pre = "上页";
$lang->pager->next = "下页";
$lang->pager->last = "末页";
$lang->pager->locate = "GO!";
$lang->zentaoSite = "官方网站";
$lang->chinaScrum = "<a href='http://api.zentao.net/goto.php?item=chinascrum' target='_blank'>Scrum社区</a>&nbsp; ";
$lang->agileTraining = "<a href='http://api.zentao.net/goto.php?item=agiletrain' target='_blank'>培训</a>&nbsp; ";
$lang->donate = "<a href='http://api.zentao.net/goto.php?item=donate' target='_blank'><i class='icon-heart'></i> 捐赠</a>&nbsp; ";
$lang->proVersion = "<a href='http://api.zentao.net/goto.php?item=proversion&from=footer' target='_blank' class='red'>购买专业版(特惠)</a>&nbsp; ";
$lang->downNotify = "下载桌面提醒";
$lang->suhosinInfo = "警告数据太多请在php.ini中修改<font color=red>sohusin.post.max_vars</font>和<font color=red>sohusin.request.max_vars</font>(设置更大的数)。 保存并重新启动apache否则会造成部分数据无法保存。";
$lang->noResultsMatch = "没有匹配结果";
$lang->chooseUsersToMail = "选择要发信通知的用户...";
/* 时间格式设置。*/
define('DT_DATETIME1', 'Y-m-d H:i:s');
define('DT_DATETIME2', 'y-m-d H:i');
define('DT_MONTHTIME1', 'n/d H:i');
define('DT_MONTHTIME2', 'n月d日 H:i');
define('DT_DATE1', 'Y-m-d');
define('DT_DATE2', 'Ymd');
define('DT_DATE3', 'Y年m月d日');
define('DT_DATE4', 'n月j日');
define('DT_TIME1', 'H:i:s');
define('DT_TIME2', 'H:i');
/* datepicker 时间*/
$lang->datepicker = new stdclass();
$lang->datepicker->dpText = new stdclass();
$lang->datepicker->dpText->TEXT_OR = '或 ';
$lang->datepicker->dpText->TEXT_PREV_YEAR = '去年';
$lang->datepicker->dpText->TEXT_PREV_MONTH = '上月';
$lang->datepicker->dpText->TEXT_PREV_WEEK = '上周';
$lang->datepicker->dpText->TEXT_YESTERDAY = '昨天';
$lang->datepicker->dpText->TEXT_THIS_MONTH = '本月';
$lang->datepicker->dpText->TEXT_THIS_WEEK = '本周';
$lang->datepicker->dpText->TEXT_TODAY = '今天';
$lang->datepicker->dpText->TEXT_NEXT_YEAR = '明年';
$lang->datepicker->dpText->TEXT_NEXT_MONTH = '下月';
$lang->datepicker->dpText->TEXT_CLOSE = '关闭';
$lang->datepicker->dpText->TEXT_DATE = '选择时间段';
$lang->datepicker->dpText->TEXT_CHOOSE_DATE = '选择日期';
$lang->datepicker->dayNames = array('日', '一', '二', '三', '四', '五', '六');
$lang->datepicker->abbrDayNames = array('日', '一', '二', '三', '四', '五', '六');
$lang->datepicker->monthNames = array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月');
include (dirname(__FILE__) . '/menuOrder.php');

View File

@@ -1,401 +1,401 @@
<?php
/**
* The common simplified chinese file of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青島易軟天創網絡科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoPMS
* @version $Id: zh-tw.php 5116 2013-07-12 06:37:48Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
$lang->arrow = '<span class="icon-arrow">&nbsp; </span>';
$lang->colon = '::';
$lang->comma = '';
$lang->dot = '。';
$lang->at = ' 于 ';
$lang->downArrow = '↓';
$lang->null = '空';
$lang->zentaoPMS = '禪道管理';
$lang->welcome = "歡迎使用『%s』{$lang->colon} {$lang->zentaoPMS}";
$lang->myControl = "我的地盤";
$lang->currentPos = '當前位置:';
$lang->logout = '退出';
$lang->login = '登錄';
$lang->aboutZenTao = '關於';
$lang->todayIs = '今天是%s';
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>時間: %s 毫秒, 內存: %s KB, 查詢: %s. </div></div>";
$lang->reset = '重填';
$lang->refresh = '刷新';
$lang->edit = '編輯';
$lang->copy = '複製';
$lang->delete = '刪除';
$lang->close = '關閉';
$lang->link = '關聯';
$lang->unlink = '移除';
$lang->import = '導入';
$lang->export = '導出';
$lang->setFileName = '檔案名:';
$lang->activate = '激活';
$lang->submitting = '稍候...';
$lang->save = '保存';
$lang->confirm = '確認';
$lang->preview = '查看';
$lang->goback = '返回';
$lang->go = 'GO';
$lang->more = '更多';
$lang->actions = '操作';
$lang->comment = '備註';
$lang->history = '歷史記錄';
$lang->attatch = '附件';
$lang->reverse = '切換順序';
$lang->switchDisplay= '切換顯示';
$lang->switchHelp = '切換幫助';
$lang->addFiles = '上傳了附件 ';
$lang->files = '附件 ';
$lang->unfold = '+';
$lang->fold = '-';
$lang->selectAll = '全選';
$lang->selectReverse = '反選';
$lang->notFound = '抱歉,您訪問的對象並不存在!';
$lang->showAll = '[[全部顯示]]';
$lang->hideClosed = '[[顯示進行中]]';
$lang->future = '未來';
$lang->year = '年';
$lang->workingHour = '工時';
$lang->idAB = 'ID';
$lang->priAB = 'P';
$lang->statusAB = '狀態';
$lang->openedByAB = '創建';
$lang->assignedToAB = '指派';
$lang->typeAB = '類型';
$lang->common = new stdclass();
$lang->common->common = '公有模組';
/* 主導航菜單。*/
$lang->menu = new stdclass();
$lang->menu->my = '<span id="mainbg">&nbsp;</span>我的地盤|my|index';
$lang->menu->product = '產品|product|index';
$lang->menu->project = '項目|project|index';
$lang->menu->qa = '測試|qa|index';
$lang->menu->doc = '文檔|doc|index';
$lang->menu->report = '統計|report|index';
$lang->menu->webapp = '應用|webapp|index';
$lang->menu->company = '組織|company|index';
$lang->menu->admin = '後台|admin|index';
/* 查詢條中可以選擇的對象列表。*/
$lang->searchObjects['bug'] = 'B:Bug';
$lang->searchObjects['story'] = 'S:需求';
$lang->searchObjects['task'] = 'T:任務';
$lang->searchObjects['testcase'] = 'C:用例';
$lang->searchObjects['project'] = 'P:項目';
$lang->searchObjects['product'] = 'P:產品';
$lang->searchObjects['user'] = 'U:用戶';
$lang->searchObjects['build'] = 'B:版本';
$lang->searchObjects['release'] = 'R:發佈';
$lang->searchObjects['productplan'] = 'P:產品計劃';
$lang->searchObjects['testtask'] = 'T:測試任務';
$lang->searchObjects['doc'] = 'D:文檔';
$lang->searchTips = '編號(ctrl+g)';
/* 導入支持的編碼格式。*/
$lang->importEncodeList['gbk'] = 'GBK';
$lang->importEncodeList['big5'] = 'BIG5';
$lang->importEncodeList['utf-8'] = 'UTF-8';
/* 導出檔案的類型列表。*/
$lang->exportFileTypeList['csv'] = 'csv';
$lang->exportFileTypeList['xml'] = 'xml';
$lang->exportFileTypeList['html'] = 'html';
$lang->exportTypeList['all'] = '全部記錄';
$lang->exportTypeList['selected'] = '選中記錄';
/* 風格列表。*/
$lang->themes['default'] = '預設';
$lang->themes['green'] = '綠色';
$lang->themes['red'] = '紅色';
$lang->themes['classblue'] = '經典藍';
/* 首頁菜單設置。*/
$lang->index = new stdclass();
$lang->index->menu = new stdclass();
$lang->index->menu->product = '瀏覽產品|product|browse';
$lang->index->menu->project = '瀏覽項目|project|browse';
/* 我的地盤菜單設置。*/
$lang->my = new stdclass();
$lang->my->menu = new stdclass();
$lang->my->menu->account = '<span id="mybg">&nbsp;</span>%s' . $lang->arrow;
$lang->my->menu->index = '首頁|my|index';
$lang->my->menu->todo = array('link' => '待辦|my|todo|', 'subModule' => 'todo');
$lang->my->menu->task = array('link' => '任務|my|task|', 'subModule' => 'task');
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
$lang->my->menu->testtask = array('link' => '測試|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
$lang->my->menu->story = array('link' => '需求|my|story|', 'subModule' => 'story');
$lang->my->menu->myProject = '項目|my|project|';
$lang->my->menu->dynamic = '動態|my|dynamic|';
$lang->my->menu->profile = array('link' => '檔案|my|profile|', 'alias' => 'editprofile');
$lang->my->menu->changePassword = '密碼|my|changepassword|';
$lang->todo = new stdclass();
$lang->todo->menu = $lang->my->menu;
/* 產品視圖設置。*/
$lang->product = new stdclass();
$lang->product->menu = new stdclass();
$lang->product->menu->list = '%s';
$lang->product->menu->story = array('link' => '需求|product|browse|productID=%s', 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->dynamic = '動態|product|dynamic|productID=%s';
$lang->product->menu->plan = array('link' => '計劃|productplan|browse|productID=%s', 'subModule' => 'productplan');
$lang->product->menu->release = array('link' => '發佈|release|browse|productID=%s', 'subModule' => 'release');
$lang->product->menu->roadmap = '路線圖|product|roadmap|productID=%s';
$lang->product->menu->doc = array('link' => '文檔|product|doc|productID=%s', 'subModule' => 'doc');
$lang->product->menu->view = array('link' => '維護|product|view|productID=%s', 'alias' => 'edit');
$lang->product->menu->module = '模組|tree|browse|productID=%s&view=story';
$lang->product->menu->project = '項目|product|project|status=all&productID=%s';
$lang->product->menu->create = array('link' => '<span class="icon-add">&nbsp;</span>添加產品|product|create', 'float' => 'right');
$lang->product->menu->all = array('link' => '<span class="icon-allProducts">&nbsp;</span>所有產品|product|index|locate=no&productID=%s', 'float' => 'right');
$lang->story = new stdclass();
$lang->productplan = new stdclass();
$lang->release = new stdclass();
$lang->story->menu = $lang->product->menu;
$lang->productplan->menu = $lang->product->menu;
$lang->release->menu = $lang->product->menu;
/* 項目視圖菜單設置。*/
$lang->project = new stdclass();
$lang->project->menu = new stdclass();
$lang->project->menu->list = '%s';
$lang->project->menu->task = array('link' => '任務|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug');
$lang->project->menu->story = array('link' => '需求|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory');
$lang->project->menu->bug = 'Bug|project|bug|projectID=%s';
$lang->project->menu->dynamic = '動態|project|dynamic|projectID=%s';
$lang->project->menu->build = array('link' => '版本|project|build|projectID=%s', 'subModule' => 'build');
$lang->project->menu->testtask = '測試|project|testtask|projectID=%s';
$lang->project->menu->team = array('link' => '團隊|project|team|projectID=%s', 'alias' => 'managemembers');
$lang->project->menu->doc = array('link' => '文檔|project|doc|porjectID=%s', 'subModule' => 'doc');
$lang->project->menu->product = '產品|project|manageproducts|projectID=%s';
$lang->project->menu->view = array('link' => '維護|project|view|projectID=%s', 'alias' => 'edit,start,suspend,putoff,close');
$lang->project->menu->create = array('link' => '<span class="icon-add">&nbsp;</span>添加項目|project|create', 'float' => 'right');
$lang->project->menu->all = array('link' => '<span class="icon-allProjects">&nbsp;</span>所有項目|project|index|locate=no&status=all&projectID=%s', 'float' => 'right');
$lang->task = new stdclass();
$lang->build = new stdclass();
$lang->task->menu = $lang->project->menu;
$lang->build->menu = $lang->project->menu;
/* QA視圖菜單設置。*/
$lang->bug = new stdclass();
$lang->bug->menu = new stdclass();
$lang->bug->menu->product = '%s';
$lang->bug->menu->bug = array('link' => 'Bug|bug|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,resolve,close,activate,report,batchedit,confirmbug,assignto', 'subModule' => 'tree');
$lang->bug->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,edit');
$lang->bug->menu->testtask = array('link' => '測試任務|testtask|browse|productID=%s');
$lang->testcase = new stdclass();
$lang->testcase->menu = new stdclass();
$lang->testcase->menu->product = '%s';
$lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport', 'subModule' => 'tree');
$lang->testcase->menu->testtask = array('link' => '測試任務|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun');
$lang->testtask = new stdclass();
$lang->testtask->menu = $lang->testcase->menu;
/* 文檔視圖菜單設置。*/
$lang->doc = new stdclass();
$lang->doc->menu = new stdclass();
$lang->doc->menu->list = '%s';
$lang->doc->menu->browse = array('link' => '文檔|doc|browse|libID=%s', 'alias' => 'view,create,edit');
$lang->doc->menu->edit = '編輯|doc|editLib|libID=%s';
$lang->doc->menu->module = '分類|tree|browse|libID=%s&viewType=doc';
$lang->doc->menu->delete = array('link' => '刪除|doc|deleteLib|libID=%s', 'target' => 'hiddenwin');
$lang->doc->menu->create = array('link' => '<span class="icon-add">&nbsp;</span>添加文檔庫|doc|createLib', 'float' => 'right');
/* 統計視圖菜單設置。*/
$lang->report = new stdclass();
$lang->report->menu = new stdclass();
$lang->report->menu->product = array('link' => '產品|report|productinfo');
$lang->report->menu->prj = array('link' => '項目|report|projectdeviation');
$lang->report->menu->test = array('link' => '測試|report|bugsummary', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => '組織|report|workload');
/* 資源視圖菜單設置。*/
$lang->webapp = new stdclass();
$lang->webapp->menu = new stdclass();
$lang->webapp->menu->obtain = array('link' => '<span class="icon-webapp-obtain">&nbsp;</span>應用商店|webapp|obtain', 'float' => 'right');
$lang->webapp->menu->manageTree = array('link' => "<span class='icon-webapp-manage'>&nbsp;</span>維護分類|tree|browse|rootID=0&view=webapp", 'float' => 'right');
$lang->webapp->menu->create = array('link' => "<span class='icon-webapp-create'>&nbsp;</span>創建應用|webapp|create", 'float' => 'right');
/* 組織結構視圖菜單設置。*/
$lang->company = new stdclass();
$lang->company->menu = new stdclass();
$lang->company->menu->name = '%s' . $lang->arrow;
$lang->company->menu->browseUser = array('link' => '用戶|company|browse', 'subModule' => 'user');
$lang->company->menu->dept = array('link' => '部門|dept|browse', 'subModule' => 'dept');
$lang->company->menu->browseGroup = array('link' => '權限|group|browse', 'subModule' => 'group');
$lang->company->menu->view = array('link' => '公司|company|view', 'alias' => 'edit');
$lang->company->menu->dynamic = '動態|company|dynamic|';
$lang->company->menu->addGroup = array('link' => '<span class="icon-add">&nbsp;</span>添加分組|group|create', 'float' => 'right');
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-add">&nbsp;</span>批量添加|user|batchCreate|dept=%s', 'subModule' => 'user', 'float' => 'right');
$lang->company->menu->addUser = array('link' => '<span class="icon-add">&nbsp;</span>添加用戶|user|create|dept=%s', 'subModule' => 'user', 'float' => 'right');
$lang->dept = new stdclass();
$lang->group = new stdclass();
$lang->user = new stdclass();
$lang->dept->menu = $lang->company->menu;
$lang->group->menu = $lang->company->menu;
$lang->user->menu = $lang->company->menu;
/* 後台管理菜單設置。*/
$lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => '首頁|admin|index');
$lang->admin->menu->extension = array('link' => '擴展|extension|browse', 'subModule' => 'extension,editor');
$lang->admin->menu->custom = array('link' => '自定義|custom|index', 'subModule' => 'custom');
$lang->admin->menu->mail = array('link' => '發信|mail|index', 'subModule' => 'mail');
$lang->admin->menu->clearData = array('link' => '清除數據|admin|cleardata');
$lang->admin->menu->convert = array('link' => '導入|convert|index', 'subModule' => 'convert');
$lang->admin->menu->trashes = array('link' => '資源回收筒|action|trash', 'subModule' => 'action');
$lang->admin->menu->sso = array('link' => '單點登錄|sso|browse', 'subModule' => 'sso');
$lang->convert = new stdclass();
$lang->upgrade = new stdclass();
$lang->action = new stdclass();
$lang->extension = new stdclass();
$lang->custom = new stdclass();
$lang->editor = new stdclass();
$lang->mail = new stdclass();
$lang->sso = new stdclass();
$lang->convert->menu = $lang->admin->menu;
$lang->upgrade->menu = $lang->admin->menu;
$lang->action->menu = $lang->admin->menu;
$lang->extension->menu = $lang->admin->menu;
$lang->custom->menu = $lang->admin->menu;
$lang->editor->menu = $lang->admin->menu;
$lang->mail->menu = $lang->admin->menu;
$lang->sso->menu = $lang->admin->menu;
/* 菜單分組。*/
$lang->menugroup = new stdclass();
$lang->menugroup->release = 'product';
$lang->menugroup->story = 'product';
$lang->menugroup->productplan = 'product';
$lang->menugroup->task = 'project';
$lang->menugroup->build = 'project';
$lang->menugroup->convert = 'admin';
$lang->menugroup->upgrade = 'admin';
$lang->menugroup->user = 'company';
$lang->menugroup->group = 'company';
$lang->menugroup->bug = 'qa';
$lang->menugroup->testcase = 'qa';
$lang->menugroup->testtask = 'qa';
$lang->menugroup->people = 'company';
$lang->menugroup->dept = 'company';
$lang->menugroup->todo = 'my';
$lang->menugroup->action = 'admin';
$lang->menugroup->extension = 'admin';
$lang->menugroup->custom = 'admin';
$lang->menugroup->editor = 'admin';
$lang->menugroup->mail = 'admin';
$lang->menugroup->sso = 'admin';
/* 錯誤提示信息。*/
$lang->error = new stdclass();
$lang->error->companyNotFound = "您訪問的域名 %s 沒有對應的公司。";
$lang->error->length = array("『%s』長度錯誤應當為『%s』", "『%s』長度應當不超過『%s』且不小於『%s』。");
$lang->error->reg = "『%s』不符合格式應當為:『%s』。";
$lang->error->unique = "『%s』已經有『%s』這條記錄了。如果您確定該記錄已刪除請到後台管理-資源回收筒還原。。";
$lang->error->gt = "『%s』應當大於『%s』。";
$lang->error->ge = "『%s』應當不小於『%s』。";
$lang->error->notempty = "『%s』不能為空。";
$lang->error->empty = "『%s』必須為空。";
$lang->error->equal = "『%s』必須為『%s』。";
$lang->error->int = array("『%s』應當是數字。", "『%s』應當介於『%s-%s』之間。");
$lang->error->float = "『%s』應當是數字可以是小數。";
$lang->error->email = "『%s』應當為合法的EMAIL。";
$lang->error->date = "『%s』應當為合法的日期。";
$lang->error->account = "『%s』應當為合法的用戶名。";
$lang->error->passwordsame = "兩次密碼應當相等。";
$lang->error->passwordrule = "密碼應該符合規則,長度至少為六位。";
$lang->error->accessDenied = '您沒有訪問權限';
$lang->error->noData = '沒有數據';
/* 分頁信息。*/
$lang->pager = new stdclass();
$lang->pager->noRecord = "暫時沒有記錄";
$lang->pager->digest = "共<strong>%s</strong>條記錄,每頁 <strong>%s</strong>條,<strong>%s/%s</strong> ";
$lang->pager->first = "首頁";
$lang->pager->pre = "上頁";
$lang->pager->next = "下頁";
$lang->pager->last = "末頁";
$lang->pager->locate = "GO!";
$lang->zentaoSite = "官方網站";
$lang->chinaScrum = "<a href='http://api.zentao.net/goto.php?item=chinascrum' target='_blank'>Scrum社區</a> ";
$lang->agileTraining = "<a href='http://api.zentao.net/goto.php?item=agiletrain' target='_blank'>培訓</a> ";
$lang->donate = "<a href='http://api.zentao.net/goto.php?item=donate' target='_blank'>捐贈</a> ";
$lang->proVersion = "<a href='http://api.zentao.net/goto.php?item=proversion&from=footer' target='_blank' class='red'>購買專業版(特惠)</a> ";
$lang->downNotify = "下載桌面提醒";
$lang->suhosinInfo = "警告數據太多請在php.ini中修改<font color=red>sohusin.post.max_vars</font>和<font color=red>sohusin.request.max_vars</font>(設置更大的數)。 保存並重新啟動apache否則會造成部分數據無法保存。";
$lang->noResultsMatch = "沒有匹配結果";
$lang->chooseUsersToMail = "選擇要發信通知的用戶...";
/* 時間格式設置。*/
define('DT_DATETIME1', 'Y-m-d H:i:s');
define('DT_DATETIME2', 'y-m-d H:i');
define('DT_MONTHTIME1', 'n/d H:i');
define('DT_MONTHTIME2', 'n月d日 H:i');
define('DT_DATE1', 'Y-m-d');
define('DT_DATE2', 'Ymd');
define('DT_DATE3', 'Y年m月d日');
define('DT_DATE4', 'n月j日');
define('DT_TIME1', 'H:i:s');
define('DT_TIME2', 'H:i');
/* datepicker 時間*/
$lang->datepicker = new stdclass();
$lang->datepicker->dpText = new stdclass();
$lang->datepicker->dpText->TEXT_OR = '或 ';
$lang->datepicker->dpText->TEXT_PREV_YEAR = '去年';
$lang->datepicker->dpText->TEXT_PREV_MONTH = '上月';
$lang->datepicker->dpText->TEXT_PREV_WEEK = '上周';
$lang->datepicker->dpText->TEXT_YESTERDAY = '昨天';
$lang->datepicker->dpText->TEXT_THIS_MONTH = '本月';
$lang->datepicker->dpText->TEXT_THIS_WEEK = '本週';
$lang->datepicker->dpText->TEXT_TODAY = '今天';
$lang->datepicker->dpText->TEXT_NEXT_YEAR = '明年';
$lang->datepicker->dpText->TEXT_NEXT_MONTH = '下月';
$lang->datepicker->dpText->TEXT_CLOSE = '關閉';
$lang->datepicker->dpText->TEXT_DATE = '選擇時間段';
$lang->datepicker->dpText->TEXT_CHOOSE_DATE = '選擇日期';
$lang->datepicker->dayNames = array('日', '一', '二', '三', '四', '五', '六');
$lang->datepicker->abbrDayNames = array('日', '一', '二', '三', '四', '五', '六');
$lang->datepicker->monthNames = array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月');
include (dirname(__FILE__) . '/menuOrder.php');
<?php
/**
* The common simplified chinese file of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青島易軟天創網絡科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoPMS
* @version $Id: zh-tw.php 5116 2013-07-12 06:37:48Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
$lang->arrow = '&nbsp;<span class="icon-angle-right"></span>';
$lang->colon = '::';
$lang->comma = '';
$lang->dot = '。';
$lang->at = ' 于 ';
$lang->downArrow = '↓';
$lang->null = '空';
$lang->zentaoPMS = '禪道管理';
$lang->welcome = "歡迎使用『%s』{$lang->colon} {$lang->zentaoPMS}";
$lang->myControl = "我的地盤";
$lang->currentPos = '當前位置:';
$lang->logout = '退出';
$lang->login = '登錄';
$lang->aboutZenTao = '關於';
$lang->todayIs = '今天是%s';
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>時間: %s 毫秒, 內存: %s KB, 查詢: %s. </div></div>";
$lang->reset = '重填';
$lang->refresh = '刷新';
$lang->edit = '編輯';
$lang->copy = '複製';
$lang->delete = '刪除';
$lang->close = '關閉';
$lang->link = '關聯';
$lang->unlink = '移除';
$lang->import = '導入';
$lang->export = '導出';
$lang->setFileName = '檔案名:';
$lang->activate = '激活';
$lang->submitting = '稍候...';
$lang->save = '保存';
$lang->confirm = '確認';
$lang->preview = '查看';
$lang->goback = '返回';
$lang->go = 'GO';
$lang->more = '更多';
$lang->actions = '操作';
$lang->comment = '備註';
$lang->history = '歷史記錄';
$lang->attatch = '附件';
$lang->reverse = '切換順序';
$lang->switchDisplay= '切換顯示';
$lang->switchHelp = '切換幫助';
$lang->addFiles = '上傳了附件 ';
$lang->files = '附件 ';
$lang->unfold = '+';
$lang->fold = '-';
$lang->selectAll = '全選';
$lang->selectReverse = '反選';
$lang->notFound = '抱歉,您訪問的對象並不存在!';
$lang->showAll = '[[全部顯示]]';
$lang->hideClosed = '[[顯示進行中]]';
$lang->future = '未來';
$lang->year = '年';
$lang->workingHour = '工時';
$lang->idAB = 'ID';
$lang->priAB = 'P';
$lang->statusAB = '狀態';
$lang->openedByAB = '創建';
$lang->assignedToAB = '指派';
$lang->typeAB = '類型';
$lang->common = new stdclass();
$lang->common->common = '公有模組';
/* 主導航菜單。*/
$lang->menu = new stdclass();
$lang->menu->my = '<i class="icon-home"></i> 我的地盤|my|index';
$lang->menu->product = '產品|product|index';
$lang->menu->project = '項目|project|index';
$lang->menu->qa = '測試|qa|index';
$lang->menu->doc = '文檔|doc|index';
$lang->menu->report = '統計|report|index';
$lang->menu->webapp = '應用|webapp|index';
$lang->menu->company = '組織|company|index';
$lang->menu->admin = '後台|admin|index';
/* 查詢條中可以選擇的對象列表。*/
$lang->searchObjects['bug'] = 'B:Bug';
$lang->searchObjects['story'] = 'S:需求';
$lang->searchObjects['task'] = 'T:任務';
$lang->searchObjects['testcase'] = 'C:用例';
$lang->searchObjects['project'] = 'P:項目';
$lang->searchObjects['product'] = 'P:產品';
$lang->searchObjects['user'] = 'U:用戶';
$lang->searchObjects['build'] = 'B:版本';
$lang->searchObjects['release'] = 'R:發佈';
$lang->searchObjects['productplan'] = 'P:產品計劃';
$lang->searchObjects['testtask'] = 'T:測試任務';
$lang->searchObjects['doc'] = 'D:文檔';
$lang->searchTips = '編號(ctrl+g)';
/* 導入支持的編碼格式。*/
$lang->importEncodeList['gbk'] = 'GBK';
$lang->importEncodeList['big5'] = 'BIG5';
$lang->importEncodeList['utf-8'] = 'UTF-8';
/* 導出檔案的類型列表。*/
$lang->exportFileTypeList['csv'] = 'csv';
$lang->exportFileTypeList['xml'] = 'xml';
$lang->exportFileTypeList['html'] = 'html';
$lang->exportTypeList['all'] = '全部記錄';
$lang->exportTypeList['selected'] = '選中記錄';
/* 風格列表。*/
$lang->themes['default'] = '預設';
$lang->themes['green'] = '綠色';
$lang->themes['red'] = '紅色';
$lang->themes['classblue'] = '經典藍';
/* 首頁菜單設置。*/
$lang->index = new stdclass();
$lang->index->menu = new stdclass();
$lang->index->menu->product = '瀏覽產品|product|browse';
$lang->index->menu->project = '瀏覽項目|project|browse';
/* 我的地盤菜單設置。*/
$lang->my = new stdclass();
$lang->my->menu = new stdclass();
$lang->my->menu->account = '<span id="myname"><i class="icon-user"></i> %s' . $lang->arrow . '</span>';
$lang->my->menu->index = '首頁|my|index';
$lang->my->menu->todo = array('link' => '待辦|my|todo|', 'subModule' => 'todo');
$lang->my->menu->task = array('link' => '任務|my|task|', 'subModule' => 'task');
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
$lang->my->menu->testtask = array('link' => '測試|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
$lang->my->menu->story = array('link' => '需求|my|story|', 'subModule' => 'story');
$lang->my->menu->myProject = '項目|my|project|';
$lang->my->menu->dynamic = '動態|my|dynamic|';
$lang->my->menu->profile = array('link' => '檔案|my|profile|', 'alias' => 'editprofile');
$lang->my->menu->changePassword = '密碼|my|changepassword|';
$lang->todo = new stdclass();
$lang->todo->menu = $lang->my->menu;
/* 產品視圖設置。*/
$lang->product = new stdclass();
$lang->product->menu = new stdclass();
$lang->product->menu->list = '%s';
$lang->product->menu->story = array('link' => '需求|product|browse|productID=%s', 'alias' => 'batchedit', 'subModule' => 'story');
$lang->product->menu->dynamic = '動態|product|dynamic|productID=%s';
$lang->product->menu->plan = array('link' => '計劃|productplan|browse|productID=%s', 'subModule' => 'productplan');
$lang->product->menu->release = array('link' => '發佈|release|browse|productID=%s', 'subModule' => 'release');
$lang->product->menu->roadmap = '路線圖|product|roadmap|productID=%s';
$lang->product->menu->doc = array('link' => '文檔|product|doc|productID=%s', 'subModule' => 'doc');
$lang->product->menu->view = array('link' => '維護|product|view|productID=%s', 'alias' => 'edit');
$lang->product->menu->module = '模組|tree|browse|productID=%s&view=story';
$lang->product->menu->project = '項目|product|project|status=all&productID=%s';
$lang->product->menu->create = array('link' => '<i class="icon-plus"></i>&nbsp;添加產品|product|create', 'float' => 'right');
$lang->product->menu->all = array('link' => '<i class="icon-th"></i>&nbsp;所有產品|product|index|locate=no&productID=%s', 'float' => 'right');
$lang->story = new stdclass();
$lang->productplan = new stdclass();
$lang->release = new stdclass();
$lang->story->menu = $lang->product->menu;
$lang->productplan->menu = $lang->product->menu;
$lang->release->menu = $lang->product->menu;
/* 項目視圖菜單設置。*/
$lang->project = new stdclass();
$lang->project->menu = new stdclass();
$lang->project->menu->list = '%s';
$lang->project->menu->task = array('link' => '任務|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug');
$lang->project->menu->story = array('link' => '需求|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory');
$lang->project->menu->bug = 'Bug|project|bug|projectID=%s';
$lang->project->menu->dynamic = '動態|project|dynamic|projectID=%s';
$lang->project->menu->build = array('link' => '版本|project|build|projectID=%s', 'subModule' => 'build');
$lang->project->menu->testtask = '測試|project|testtask|projectID=%s';
$lang->project->menu->team = array('link' => '團隊|project|team|projectID=%s', 'alias' => 'managemembers');
$lang->project->menu->doc = array('link' => '文檔|project|doc|porjectID=%s', 'subModule' => 'doc');
$lang->project->menu->product = '產品|project|manageproducts|projectID=%s';
$lang->project->menu->view = array('link' => '維護|project|view|projectID=%s', 'alias' => 'edit,start,suspend,putoff,close');
$lang->project->menu->create = array('link' => '<i class="icon-plus"></i>&nbsp;添加項目|project|create', 'float' => 'right');
$lang->project->menu->all = array('link' => '<i class="icon-th-large"></i>&nbsp;所有項目|project|index|locate=no&status=all&projectID=%s', 'float' => 'right');
$lang->task = new stdclass();
$lang->build = new stdclass();
$lang->task->menu = $lang->project->menu;
$lang->build->menu = $lang->project->menu;
/* QA視圖菜單設置。*/
$lang->bug = new stdclass();
$lang->bug->menu = new stdclass();
$lang->bug->menu->product = '%s';
$lang->bug->menu->bug = array('link' => 'Bug|bug|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,resolve,close,activate,report,batchedit,confirmbug,assignto', 'subModule' => 'tree');
$lang->bug->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,edit');
$lang->bug->menu->testtask = array('link' => '測試任務|testtask|browse|productID=%s');
$lang->testcase = new stdclass();
$lang->testcase->menu = new stdclass();
$lang->testcase->menu->product = '%s';
$lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport', 'subModule' => 'tree');
$lang->testcase->menu->testtask = array('link' => '測試任務|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun');
$lang->testtask = new stdclass();
$lang->testtask->menu = $lang->testcase->menu;
/* 文檔視圖菜單設置。*/
$lang->doc = new stdclass();
$lang->doc->menu = new stdclass();
$lang->doc->menu->list = '%s';
$lang->doc->menu->browse = array('link' => '文檔|doc|browse|libID=%s', 'alias' => 'view,create,edit');
$lang->doc->menu->edit = '編輯|doc|editLib|libID=%s';
$lang->doc->menu->module = '分類|tree|browse|libID=%s&viewType=doc';
$lang->doc->menu->delete = array('link' => '刪除|doc|deleteLib|libID=%s', 'target' => 'hiddenwin');
$lang->doc->menu->create = array('link' => '<i class="icon-plus"></i>&nbsp;添加文檔庫|doc|createLib', 'float' => 'right');
/* 統計視圖菜單設置。*/
$lang->report = new stdclass();
$lang->report->menu = new stdclass();
$lang->report->menu->product = array('link' => '產品|report|productinfo');
$lang->report->menu->prj = array('link' => '項目|report|projectdeviation');
$lang->report->menu->test = array('link' => '測試|report|bugsummary', 'alias' => 'bugassign');
$lang->report->menu->staff = array('link' => '組織|report|workload');
/* 資源視圖菜單設置。*/
$lang->webapp = new stdclass();
$lang->webapp->menu = new stdclass();
$lang->webapp->menu->obtain = array('link' => '<span class="icon-webapp-obtain">&nbsp;</span>應用商店|webapp|obtain', 'float' => 'right');
$lang->webapp->menu->manageTree = array('link' => "<span class='icon-webapp-manage'>&nbsp;</span>維護分類|tree|browse|rootID=0&view=webapp", 'float' => 'right');
$lang->webapp->menu->create = array('link' => "<span class='icon-webapp-create'>&nbsp;</span>創建應用|webapp|create", 'float' => 'right');
/* 組織結構視圖菜單設置。*/
$lang->company = new stdclass();
$lang->company->menu = new stdclass();
$lang->company->menu->name = '%s' . $lang->arrow;
$lang->company->menu->browseUser = array('link' => '用戶|company|browse', 'subModule' => 'user');
$lang->company->menu->dept = array('link' => '部門|dept|browse', 'subModule' => 'dept');
$lang->company->menu->browseGroup = array('link' => '權限|group|browse', 'subModule' => 'group');
$lang->company->menu->view = array('link' => '公司|company|view', 'alias' => 'edit');
$lang->company->menu->dynamic = '動態|company|dynamic|';
$lang->company->menu->addGroup = array('link' => '<i class="icon-plus"></i>&nbsp;添加分組|group|create', 'float' => 'right');
$lang->company->menu->batchAddUser = array('link' => '<i class="icon-green-user-batchCreate"></i>&nbsp;批量添加|user|batchCreate|dept=%s', 'subModule' => 'user', 'float' => 'right');
$lang->company->menu->addUser = array('link' => '<i class="icon-plus"></i>&nbsp;添加用戶|user|create|dept=%s', 'subModule' => 'user', 'float' => 'right');
$lang->dept = new stdclass();
$lang->group = new stdclass();
$lang->user = new stdclass();
$lang->dept->menu = $lang->company->menu;
$lang->group->menu = $lang->company->menu;
$lang->user->menu = $lang->company->menu;
/* 後台管理菜單設置。*/
$lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => '首頁|admin|index');
$lang->admin->menu->extension = array('link' => '擴展|extension|browse', 'subModule' => 'extension,editor');
$lang->admin->menu->custom = array('link' => '自定義|custom|index', 'subModule' => 'custom');
$lang->admin->menu->mail = array('link' => '發信|mail|index', 'subModule' => 'mail');
$lang->admin->menu->clearData = array('link' => '清除數據|admin|cleardata');
$lang->admin->menu->convert = array('link' => '導入|convert|index', 'subModule' => 'convert');
$lang->admin->menu->trashes = array('link' => '資源回收筒|action|trash', 'subModule' => 'action');
$lang->admin->menu->sso = array('link' => '單點登錄|sso|browse', 'subModule' => 'sso');
$lang->convert = new stdclass();
$lang->upgrade = new stdclass();
$lang->action = new stdclass();
$lang->extension = new stdclass();
$lang->custom = new stdclass();
$lang->editor = new stdclass();
$lang->mail = new stdclass();
$lang->sso = new stdclass();
$lang->convert->menu = $lang->admin->menu;
$lang->upgrade->menu = $lang->admin->menu;
$lang->action->menu = $lang->admin->menu;
$lang->extension->menu = $lang->admin->menu;
$lang->custom->menu = $lang->admin->menu;
$lang->editor->menu = $lang->admin->menu;
$lang->mail->menu = $lang->admin->menu;
$lang->sso->menu = $lang->admin->menu;
/* 菜單分組。*/
$lang->menugroup = new stdclass();
$lang->menugroup->release = 'product';
$lang->menugroup->story = 'product';
$lang->menugroup->productplan = 'product';
$lang->menugroup->task = 'project';
$lang->menugroup->build = 'project';
$lang->menugroup->convert = 'admin';
$lang->menugroup->upgrade = 'admin';
$lang->menugroup->user = 'company';
$lang->menugroup->group = 'company';
$lang->menugroup->bug = 'qa';
$lang->menugroup->testcase = 'qa';
$lang->menugroup->testtask = 'qa';
$lang->menugroup->people = 'company';
$lang->menugroup->dept = 'company';
$lang->menugroup->todo = 'my';
$lang->menugroup->action = 'admin';
$lang->menugroup->extension = 'admin';
$lang->menugroup->custom = 'admin';
$lang->menugroup->editor = 'admin';
$lang->menugroup->mail = 'admin';
$lang->menugroup->sso = 'admin';
/* 錯誤提示信息。*/
$lang->error = new stdclass();
$lang->error->companyNotFound = "您訪問的域名 %s 沒有對應的公司。";
$lang->error->length = array("『%s』長度錯誤應當為『%s』", "『%s』長度應當不超過『%s』且不小於『%s』。");
$lang->error->reg = "『%s』不符合格式應當為:『%s』。";
$lang->error->unique = "『%s』已經有『%s』這條記錄了。如果您確定該記錄已刪除請到後台管理-資源回收筒還原。。";
$lang->error->gt = "『%s』應當大於『%s』。";
$lang->error->ge = "『%s』應當不小於『%s』。";
$lang->error->notempty = "『%s』不能為空。";
$lang->error->empty = "『%s』必須為空。";
$lang->error->equal = "『%s』必須為『%s』。";
$lang->error->int = array("『%s』應當是數字。", "『%s』應當介於『%s-%s』之間。");
$lang->error->float = "『%s』應當是數字可以是小數。";
$lang->error->email = "『%s』應當為合法的EMAIL。";
$lang->error->date = "『%s』應當為合法的日期。";
$lang->error->account = "『%s』應當為合法的用戶名。";
$lang->error->passwordsame = "兩次密碼應當相等。";
$lang->error->passwordrule = "密碼應該符合規則,長度至少為六位。";
$lang->error->accessDenied = '您沒有訪問權限';
$lang->error->noData = '沒有數據';
/* 分頁信息。*/
$lang->pager = new stdclass();
$lang->pager->noRecord = "暫時沒有記錄";
$lang->pager->digest = "共<strong>%s</strong>條記錄,每頁 <strong>%s</strong>條,<strong>%s/%s</strong> ";
$lang->pager->first = "首頁";
$lang->pager->pre = "上頁";
$lang->pager->next = "下頁";
$lang->pager->last = "末頁";
$lang->pager->locate = "GO!";
$lang->zentaoSite = "官方網站";
$lang->chinaScrum = "<a href='http://api.zentao.net/goto.php?item=chinascrum' target='_blank'>Scrum社區</a>&nbsp; ";
$lang->agileTraining = "<a href='http://api.zentao.net/goto.php?item=agiletrain' target='_blank'>培訓</a>&nbsp; ";
$lang->donate = "<a href='http://api.zentao.net/goto.php?item=donate' target='_blank'><i class='icon-heart'></i> 捐贈</a>&nbsp; ";
$lang->proVersion = "<a href='http://api.zentao.net/goto.php?item=proversion&from=footer' target='_blank' class='red'>購買專業版(特惠)</a>&nbsp; ";
$lang->downNotify = "下載桌面提醒";
$lang->suhosinInfo = "警告數據太多請在php.ini中修改<font color=red>sohusin.post.max_vars</font>和<font color=red>sohusin.request.max_vars</font>(設置更大的數)。 保存並重新啟動apache否則會造成部分數據無法保存。";
$lang->noResultsMatch = "沒有匹配結果";
$lang->chooseUsersToMail = "選擇要發信通知的用戶...";
/* 時間格式設置。*/
define('DT_DATETIME1', 'Y-m-d H:i:s');
define('DT_DATETIME2', 'y-m-d H:i');
define('DT_MONTHTIME1', 'n/d H:i');
define('DT_MONTHTIME2', 'n月d日 H:i');
define('DT_DATE1', 'Y-m-d');
define('DT_DATE2', 'Ymd');
define('DT_DATE3', 'Y年m月d日');
define('DT_DATE4', 'n月j日');
define('DT_TIME1', 'H:i:s');
define('DT_TIME2', 'H:i');
/* datepicker 時間*/
$lang->datepicker = new stdclass();
$lang->datepicker->dpText = new stdclass();
$lang->datepicker->dpText->TEXT_OR = '或 ';
$lang->datepicker->dpText->TEXT_PREV_YEAR = '去年';
$lang->datepicker->dpText->TEXT_PREV_MONTH = '上月';
$lang->datepicker->dpText->TEXT_PREV_WEEK = '上周';
$lang->datepicker->dpText->TEXT_YESTERDAY = '昨天';
$lang->datepicker->dpText->TEXT_THIS_MONTH = '本月';
$lang->datepicker->dpText->TEXT_THIS_WEEK = '本週';
$lang->datepicker->dpText->TEXT_TODAY = '今天';
$lang->datepicker->dpText->TEXT_NEXT_YEAR = '明年';
$lang->datepicker->dpText->TEXT_NEXT_MONTH = '下月';
$lang->datepicker->dpText->TEXT_CLOSE = '關閉';
$lang->datepicker->dpText->TEXT_DATE = '選擇時間段';
$lang->datepicker->dpText->TEXT_CHOOSE_DATE = '選擇日期';
$lang->datepicker->dayNames = array('日', '一', '二', '三', '四', '五', '六');
$lang->datepicker->abbrDayNames = array('日', '一', '二', '三', '四', '五', '六');
$lang->datepicker->monthNames = array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月');
include (dirname(__FILE__) . '/menuOrder.php');

View File

@@ -146,6 +146,7 @@ class commonModel extends model
{
if($module == 'user' and strpos('login|logout|deny', $method) !== false) return true;
if($module == 'api' and $method == 'getsessionid') return true;
if($module == 'misc' and $method == 'ping') return true;
if($module == 'sso' and strpos('auth|depts|users', $method) !== false) return true;
if($this->loadModel('user')->isLogon())
@@ -155,6 +156,7 @@ class commonModel extends model
}
if(stripos($method, 'ajaxgetdropmenu') !== false and $this->app->user->account == 'guest') return true;
if(stripos($method, 'ajaxgetmatcheditems') !== false and $this->app->user->account == 'guest') return true;
if($module == 'misc' and $method == 'qrcode') return true;
if($module == 'misc' and $method == 'about') return true;
if($module == 'misc' and $method == 'checkupdate') return true;
@@ -348,7 +350,7 @@ class commonModel extends model
if(common::hasPriv($module, $method))
{
$link = helper::createLink($module, $method, $vars);
echo "<li $active><nobr><a href='$link' $active id='menu$menuKey'>$menuLabel</a></nobr></li>\n";
echo "<li $active><a href='$link' $active id='menu$menuKey'>$menuLabel</a></li>\n";
}
}
@@ -384,7 +386,7 @@ class commonModel extends model
echo "<li id='searchbox'>";
echo html::select('searchType', $lang->searchObjects, $searchObject);
echo html::input('searchQuery', $lang->searchTips, "onclick=this.value='' onkeydown='if(event.keyCode==13) shortcut()' class='w-80px'");
echo "<input type='button' id='objectSwitcher' onclick='shortcut()' />";
echo "<a href='javascript:shortcut();return false;' id='objectSwitcher' class='icon-circle-arrow-right'></a>";
echo "</li>";
echo "</ul>\n";
}
@@ -536,7 +538,19 @@ class commonModel extends model
public static function printQRCodeLink($color = '')
{
global $lang;
echo html::a(helper::createLink('misc', 'qrCode'), $lang->user->mobileLogin, '', "class='qrCode $color'");
echo html::a(helper::createLink('misc', 'qrCode'), "<i class='icon-mobile-phone icon-large'></i>" . $lang->user->mobileLogin, '', "class='qrCode $color'");
}
/**
* Print QR code Link.
*
* @static
* @access public
* @return void
*/
public static function getQRCodeLink()
{
echo helper::createLink('misc', 'qrCode');
}
/**

View File

@@ -83,7 +83,7 @@ function toggleComment(actionID)
}
$(function(){
var diffButton = "<span onclick='toggleStripTags(this)' class='hidden changeDiff diff-all hand' title='<?php echo $lang->action->original?>'>&nbsp;</span>";
var diffButton = "<span onclick='toggleStripTags(this)' class='hidden changeDiff diff-all hand' title='<?php echo $lang->action->original?>'></span>";
var newBoxID = ''
var oldBoxID = ''
$('blockquote').each(function(){
@@ -105,15 +105,15 @@ $(function(){
<fieldset>
<legend>
<?php echo $lang->history?>
<span onclick='toggleOrder(this)' class='hand'> <?php echo "<span title='$lang->reverse' class='log-asc'>&nbsp;</span>";?></span>
<span onclick='toggleShow(this);' class='hand'><?php echo "<span title='$lang->switchDisplay' class='change-show'>&nbsp;</span>";?></span>
<span onclick='toggleOrder(this)' class='hand'> <?php echo "<span title='$lang->reverse' class='log-asc'></span>";?></span>
<span onclick='toggleShow(this);' class='hand'><?php echo "<span title='$lang->switchDisplay' class='change-show'></span>";?></span>
</legend>
<?php else:?>
<table class='table-1' id='actionbox'>
<caption>
<?php echo $lang->history?>
<span onclick='$("#historyItem li").reverseOrder();' class='hand'> <?php echo "<span title='$lang->reverse' class='log-asc'>&nbsp;</span>";?></span>
<span onclick='toggleShow();' class='hand'><?php echo "<span title='$lang->switchDisplay' class='change-show'>&nbsp;</span>";?></span>
<span onclick='$("#historyItem li").reverseOrder();' class='hand'> <?php echo "<span title='$lang->reverse' class='log-asc'></span>";?></span>
<span onclick='toggleShow();' class='hand'><?php echo "<span title='$lang->switchDisplay' class='change-show'></span>";?></span>
</caption>
<tr><td>
<?php endif;?>
@@ -130,7 +130,7 @@ $(function(){
?>
<span>
<?php $this->action->printAction($action);?>
<?php if(!empty($action->history)) echo "<span id='switchButton$i' class='hand change-show' onclick=switchChange($i)>&nbsp;</span>";?>
<?php if(!empty($action->history)) echo "<span id='switchButton$i' class='hand change-show' onclick=switchChange($i)></span>";?>
</span>
<?php if(!empty($action->comment) or !empty($action->history)):?>
<?php if(!empty($action->comment)) echo "<div class='history'>";?>
@@ -138,7 +138,7 @@ $(function(){
<?php echo $this->action->printChanges($action->objectType, $action->history);?>
</div>
<?php if($canEditComment):?>
<span class='link-button f-right comment<?php echo $action->id;?>'><?php echo html::a('#lastCommentBox', '&nbsp;', '', "class='icon-green-common-edit' onclick='toggleComment($action->id)'")?></span>
<span class='link-button f-right comment<?php echo $action->id;?>'><?php echo html::a('#lastCommentBox', '<i class="icon-edit-sign icon-large"></i>', '', "onclick='toggleComment($action->id)'")?></span>
<?php endif;?>
<?php
if($action->comment)

View File

@@ -6,17 +6,15 @@
<?php if($onlybody != 'yes'):?>
</div>
<div id='footer'>
<table class='cont' >
<tr>
<td class='w-p50 'id='crumbs'><?php commonModel::printBreadMenu($this->moduleName, isset($position) ? $position : ''); ?></td>
<td class='a-right' id='poweredby'>
<span>Powered by <a href='http://www.zentao.net' target='_blank'>ZenTaoPMS</a> (<?php echo $config->version;?>)</span>
<?php echo $lang->proVersion;?>
<?php commonModel::printNotifyLink();?>
<?php commonModel::printQRCodeLink();?>
</td>
</tr>
</table>
<div id="crumbs">
<?php commonModel::printBreadMenu($this->moduleName, isset($position) ? $position : ''); ?>
</div>
<div id="poweredby">
<span>Powered by <a href='http://www.zentao.net' target='_blank'>ZenTaoPMS</a> (<?php echo $config->version;?>)</span>
<?php echo $lang->proVersion;?>
<?php commonModel::printNotifyLink();?>
<?php commonModel::printQRCodeLink();?>
</div>
</div>
<?php endif;?>
<?php

View File

@@ -7,7 +7,7 @@ include 'chosen.html.php';
?>
<?php if(empty($_GET['onlybody']) or $_GET['onlybody'] != 'yes'):?>
<div id='header'>
<table class='cont' id='topbar'>
<table class='cont navbar' id='topbar'>
<tr>
<td class='w-p50'>
<?php
@@ -19,11 +19,13 @@ include 'chosen.html.php';
<td class='a-right'><?php commonModel::printTopBar();?></td>
</tr>
</table>
<table class='cont' id='navbar'>
<table class='cont navbar' id='navbar'>
<tr><td id='mainmenu'><?php commonModel::printMainmenu($this->moduleName); commonModel::printSearchBox();?></td></tr>
</table>
</div>
<table class='cont' id='navbar'><tr><td id='modulemenu'><?php commonModel::printModuleMenu($this->moduleName);?></td></tr></table>
<div class="navbar" id="modulemenu">
<?php commonModel::printModuleMenu($this->moduleName);?>
</div>
<div id='wrap'>
<?php endif;?>
<div class='outer'>

View File

@@ -20,8 +20,17 @@ $clientTheme = $this->app->getClientTheme();
js::import($jsRoot . 'jquery/lib.js', $config->version);
js::import($jsRoot . 'my.min.js', $config->version);
css::import($themeRoot . 'fontawesome/min.css', $config->version);
echo '<!--[if lt IE 8]>';
css::import($themeRoot . 'fontawesome/ie7.min.css', $config->version);
echo '<![endif]-->';
css::import($defaultTheme . 'yui.css', $config->version);
css::import($defaultTheme . 'style.css', $config->version);
echo '<!--[if lt IE 8]>';
css::import($defaultTheme . 'style.ie7.css', $config->version);
echo '<![endif]-->';
css::import($langTheme, $config->version);
if(strpos($clientTheme, 'default') === false) css::import($clientTheme . 'style.css', $config->version);
}

View File

@@ -74,10 +74,10 @@ js::set('confirmDelete', $lang->user->confirmDelete);
<td class='a-left'>
<?php
common::printIcon('user', 'edit', "userID=$user->id&from=company", '', 'list');
if(strpos($this->app->company->admins, ",{$user->account},") === false)
if(strpos($this->app->company->admins, ",{$user->account},") === false and common::hasPriv('user', 'delete'))
{
$deleteURL = $this->createLink('user', 'delete', "userID=$user->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"userList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->user->delete}'");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"userList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->user->delete}'");
}
if((strtotime(date('Y-m-d H:i:s')) - strtotime($user->locked)) < $this->config->user->lockMinutes * 60)
{

View File

@@ -28,7 +28,7 @@ var browseType = '<?php echo $browseType;?>';
echo "<span id='account'>" . html::select('account', $users, $account, 'onchange=changeUser(this.value)') . '</span>';
echo "<span id='product'>" . html::select('product', $products, $product, 'onchange=changeProduct(this.value)') . '</span>';
echo "<span id='project'>" . html::select('project', $projects, $project, 'onchange=changeProject(this.value)') . '</span>';
echo "<span id='bysearchTab'>" . html::a('#', '<span class="icon-search"></span>' . $lang->action->dynamic->search) . "</span>";
echo "<span id='bysearchTab'>" . html::a('#', '<i class="icon-search icon"></i>&nbsp;' . $lang->action->dynamic->search) . "</span>";
?>
</div>
<div id='querybox' class='<?php if($browseType !='bysearch') echo 'hidden';?>'></div>

View File

@@ -1,50 +1,50 @@
<?php
/**
* The view view of company module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Congzhi Chen <congzhi@cnezsoft.com>
* @package company
* @version $Id: edit.html.php 4488 2013-02-27 02:54:49Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<table align='center' class='table-5'>
<caption><?php echo $lang->company->view;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->company->name;?></th>
<td><?php echo $company->name;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->phone;?></th>
<td><?php echo $company->phone;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->fax;?></th>
<td><?php echo $company->fax;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->address;?></th>
<td><?php echo $company->address;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->zipcode;?></th>
<td><?php echo $company->zipcode;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->website;?></th>
<td><?php echo $company->website;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->backyard;?></th>
<td><?php echo $company->backyard;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->guest;?></th>
<td><?php echo $lang->company->guestList[$company->guest];?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php common::printLink('company', 'edit', '', $lang->edit, '', 'id=editCompany', true, true);?></td></tr>
</table>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The view view of company module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Congzhi Chen <congzhi@cnezsoft.com>
* @package company
* @version $Id: edit.html.php 4488 2013-02-27 02:54:49Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<table align='center' class='table-5'>
<caption><?php echo $lang->company->view;?></caption>
<tr>
<th class='rowhead'><?php echo $lang->company->name;?></th>
<td><?php echo $company->name;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->phone;?></th>
<td><?php echo $company->phone;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->fax;?></th>
<td><?php echo $company->fax;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->address;?></th>
<td><?php echo $company->address;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->zipcode;?></th>
<td><?php echo $company->zipcode;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->website;?></th>
<td><?php echo $company->website;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->backyard;?></th>
<td><?php echo $company->backyard;?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->company->guest;?></th>
<td><?php echo $lang->company->guestList[$company->guest];?></td>
</tr>
<tr><td colspan='2' class='a-center'><?php common::printLink('company', 'edit', '', '<i class="icon-pencil"></i> ' . $lang->edit, '', 'id="editCompany" class="btn"', true, true);?></td></tr>
</table>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -1,18 +1,18 @@
<?php
/**
* The html template file of index method of convert module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoPMS
* @version $Id: index.html.php 4129 2013-01-18 01:58:14Z wwccss $
*/
?>
<?php include '../../common/view/header.html.php';?>
<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>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The html template file of index method of convert module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoPMS
* @version $Id: index.html.php 4129 2013-01-18 01:58:14Z wwccss $
*/
?>
<?php include '../../common/view/header.html.php';?>
<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'), '<i class="icon-exchange"></i> ' . $lang->convert->start, '', 'class="btn btn-primary"');?></h3></td></tr>
</table>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -23,8 +23,8 @@ $itemRow = <<<EOT
<input type='text' class="w-p98" value="" name="values[]">
</td>
<td class='a-left'>
<input type='button' onclick='addItem(this)' class='icon-add' value='&nbsp;'></input>
<input type='button' onclick='delItem(this)' class='icon-delete' value='&nbsp;'></input>
<a href='javascript:void()' class='link-icon' onclick='addItem(this)'><i class='icon-add'></i></a>
<a href='javascript:void()' class='link-icon' onclick='delItem(this)'><i class='icon-delete'></i></a>
</td>
</tr>
EOT;
@@ -78,8 +78,8 @@ EOT;
</td>
<?php if($canAdd):?>
<td class='a-left'>
<input type='button' onclick='addItem(this)' class='icon-add' value='&nbsp;'></input>
<?php if(!$system):?><input type='button' onclick='delItem(this)' class='icon-delete' value='&nbsp;'></input><?php endif;?>
<a href='javascript:void()' class='link-icon' onclick='addItem(this)'><i class='icon-add'></i></a>
<?php if(!$system):?><a href='javascript:onclick=delItem(this)' class='link-icon'><i class='icon-delete'></i></a><?php endif;?>
</td>
<?php endif;?>
</tr>

View File

@@ -21,7 +21,7 @@ var browseType = '<?php echo $browseType;?>';
<div id='featurebar'>
<div class='f-left'>
<span id='bymoduleTab' onclick='browseByModule()'><a href='#'><?php echo $lang->doc->moduleDoc;?></a></span>
<span id='bysearchTab'><a href='#'><span class='icon-search'></span><?php echo $lang->doc->searchDoc;?></a></span>
<span id='bysearchTab'><a href='#'><i class='icon-search icon icon-large'></i>&nbsp;<?php echo $lang->doc->searchDoc;?></a></span>
</div>
<div class='f-right'>
<?php common::printIcon('doc', 'create', "libID=$libID&moduleID=$moduleID&productID=$productID&projectID=$projectID&from=doc");?>
@@ -70,8 +70,11 @@ var browseType = '<?php echo $browseType;?>';
<td>
<?php
common::printIcon('doc', 'edit', "doc={$doc->id}", '', 'list');
$deleteURL = $this->createLink('doc', 'delete', "docID=$doc->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"docList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->doc->delete}'");
if(common::hasPriv('doc', 'delete'))
{
$deleteURL = $this->createLink('doc', 'delete', "docID=$doc->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"docList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->doc->delete}'");
}
?>
</td>
</tr>

View File

@@ -4,10 +4,12 @@
.success {color:green; font-size:14px}
.exttable td {padding:10px 5px 5px 10px}
.exttable caption{background:#efefef; border-color:#CCC9C9; margin-left:0}
#wrap table.table-1.exttable>caption{background:#efefef; border-color:#CCC9C9; margin:0px;padding: 2px 8px}
.exttable {border-color:#CCC9C9; border-top:none;}
.exttable td{border-color:#CCC9C9}
#license{width:100%; height:190px; border:1px solid #e4e4e4}
small{font-weight:normal}
.exttable .button-c,.exttable .button-s{width: auto;min-width: inherit;}
.side .box-content{margin-bottom: 10px;}

View File

@@ -81,7 +81,7 @@
?>
</div>
</td>
<td class='w-200px a-right'>
<td class=' a-right'>
<?php
$installLink = inlink('install', "extension=$extension->code&downLink=" . helper::safe64Encode($currentRelease->downLink) . "&md5={$currentRelease->md5}&type=$extension->type&overridePackage=no&ignoreCompitable=yes");
echo html::a($extension->viewLink, $lang->extension->view, '', 'class="button-c extension"');

View File

@@ -302,8 +302,7 @@ class file extends control
{
if($_POST)
{
$data = $this->file->pasteImage($this->post->editor);
echo str_replace('\"', '"', $data);
echo $this->file->pasteImage($this->post->editor);
}
}
}

View File

@@ -249,8 +249,10 @@ class fileModel extends model
*/
public function pasteImage($data)
{
$data = str_replace('\"', '"', $data);
ini_set('pcre.backtrack_limit', strlen($data));
preg_match_all('/<img src=\\\"(data:image\/(\S+);base64,(\S+))\\\" .+ \/>/U', $data, $out);
preg_match_all('/<img src="(data:image\/(\S+);base64,(\S+))" .+ \/>/U', $data, $out);
foreach($out[3] as $key => $base64Image)
{
$imageData = base64_decode($base64Image);

View File

@@ -6,8 +6,8 @@
<input type='file' name='files[]' class='fileControl' tabindex='-1' />
<label tabindex='-1' class='fileLabel'>{$lang->file->label}</label>
<input type='text' name='labels[]' class='text-3' tabindex='-1' />
<input type='button' onclick='addFile(this)' class='icon-add' value='&nbsp;'></input>
<input type='button' onclick='delFile(this)' class='icon-delete' value='&nbsp;'></input>
<a href='javascript:void();' onclick='addFile(this)' class='link-icon'><i class='icon-add'></i></a>
<a href='javascript:void();' onclick='delFile(this)' class='link-icon'><i class='icon-delete'></i></a>
</div>
EOT;
for($i = 1; $i <= $fileCount; $i ++) echo str_replace('$i', $i, $fileRow);

View File

@@ -1,63 +1,63 @@
<?php
/**
* The export view file of file module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Congzhi Chen <congzhi@cnezsoft.com>
* @package file
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.lite.html.php';?>
<?php include '../../common/view/colorbox.html.php';?>
<script>
function setDownloading()
{
if($.browser.opera) return true; // Opera don't support, omit it.
$.cookie('downloading', 0);
time = setInterval("closeWindow()", 300);
return true;
}
function closeWindow()
{
if($.cookie('downloading') == 1)
{
parent.$.fn.colorbox.close();
$.cookie('downloading', null);
clearInterval(time);
}
}
function switchEncode(fileType)
{
if(fileType == 'csv')
{
$('#encode').removeAttr('class');
}
else
{
$('#encode').attr('class', 'hidden');
}
}
</script>
<form method='post' target='hiddenwin' onsubmit='setDownloading();' style='margin-top:10px'>
<table class='table-1'>
<caption><?php echo $lang->export;?></caption>
<tr>
<td class='a-center' style='padding:30px'>
<?php
echo $lang->setFileName . ' ';
echo html::input('fileName', '', 'class=text-2');
echo html::select('fileType', $lang->exportFileTypeList, '', 'onchange=switchEncode(this.value)');
echo html::select('encode', $config->charsets[$this->cookie->lang], 'utf-8', key($lang->exportFileTypeList) == 'csv' ? "" : "class='hidden'");
echo html::select('exportType', $lang->exportTypeList, ($this->cookie->checkedItem) ? 'selected' : 'all');
echo html::submitButton();
?>
</td>
</tr>
</table>
</form>
<?php include '../../common/view/footer.lite.html.php';?>
<?php
/**
* The export view file of file module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Congzhi Chen <congzhi@cnezsoft.com>
* @package file
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.lite.html.php';?>
<?php include '../../common/view/colorbox.html.php';?>
<script>
function setDownloading()
{
if($.browser.opera) return true; // Opera don't support, omit it.
$.cookie('downloading', 0);
time = setInterval("closeWindow()", 300);
return true;
}
function closeWindow()
{
if($.cookie('downloading') == 1)
{
parent.$.fn.colorbox.close();
$.cookie('downloading', null);
clearInterval(time);
}
}
function switchEncode(fileType)
{
if(fileType == 'csv')
{
$('#encode').removeAttr('class');
}
else
{
$('#encode').attr('class', 'hidden');
}
}
</script>
<form method='post' target='hiddenwin' onsubmit='setDownloading();' style='margin-top:10px'>
<table class='table-1'>
<caption><?php echo $lang->export;?></caption>
<tr>
<td class='a-center' style='padding:30px'>
<?php
echo $lang->setFileName . ' ';
echo html::input('fileName', '', 'class=text-2');
echo html::select('fileType', $lang->exportFileTypeList, '', 'onchange=switchEncode(this.value)');
echo html::select('encode', $config->charsets[$this->cookie->lang], 'utf-8', key($lang->exportFileTypeList) == 'csv' ? "" : "class='hidden'");
echo html::select('exportType', $lang->exportTypeList, ($this->cookie->checkedItem) ? 'selected' : 'all');
echo html::submitButton();
?>
</td>
</tr>
</table>
</form>
<?php include '../../common/view/footer.lite.html.php';?>

View File

View File

View File

View File

View File

View File

View File

View File

@@ -556,8 +556,8 @@ class gitModel extends model
foreach($actionFiles as $file)
{
$param = array('url' => helper::safe64Encode($repoRoot . $file), 'revision' => $log->revision);
$catLink = trim(html::a(helper::createLink('git', 'cat', $param, 'html'), 'view', '', "class='gitlink'"));
$diffLink = trim(html::a(helper::createLink('git', 'diff', $param, 'html'), 'diff', '', "class='gitlink'"));
$catLink = trim(html::a(helper::createLink('git', 'cat', $param, 'html'), 'view', '', "class='repolink'"));
$diffLink = trim(html::a(helper::createLink('git', 'diff', $param, 'html'), 'diff', '', "class='repolink'"));
$diff .= $action . " " . $file . " $catLink ";
$diff .= $action == 'M' ? "$diffLink\n" : "\n" ;
}

View File

@@ -1,3 +1 @@
.user{display:block; width:80px; float:left; overflow:hidden}
.icon-green-group-managepriv {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -60px -460px;}
.icon-green-group-managemember {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -40px -460px;}

View File

@@ -43,6 +43,7 @@ $lang->group->copyOptions['copyPriv'] = 'Copy priviledge';
$lang->group->copyOptions['copyUser'] = 'Copy user';
$lang->group->versions[''] = 'History';
$lang->group->versions['5_1'] = 'Zentao 5.1';
$lang->group->versions['5_0_beta2'] = 'Zentao 5.0.beta2';
$lang->group->versions['5_0_beta1'] = 'Zentao 5.0.beta1';
$lang->group->versions['4_3_beta'] = 'Zentao 4.3.beta';

View File

@@ -43,6 +43,7 @@ $lang->group->copyOptions['copyPriv'] = '复制权限';
$lang->group->copyOptions['copyUser'] = '复制用户';
$lang->group->versions[''] = '修改历史';
$lang->group->versions['5_1'] = '禅道5.1';
$lang->group->versions['5_0_beta2'] = '禅道5.0.beta2';
$lang->group->versions['5_0_beta1'] = '禅道5.0.beta1';
$lang->group->versions['4_3_beta'] = '禅道4.3.beta';

View File

@@ -43,6 +43,7 @@ $lang->group->copyOptions['copyPriv'] = '複製權限';
$lang->group->copyOptions['copyUser'] = '複製用戶';
$lang->group->versions[''] = '修改歷史';
$lang->group->versions['5_1'] = '禪道5.1';
$lang->group->versions['5_0_beta2'] = '禪道5.0.beta2';
$lang->group->versions['5_0_beta1'] = '禪道5.0.beta1';
$lang->group->versions['4_3_beta'] = '禪道4.3.beta';

View File

@@ -43,8 +43,11 @@
<?php common::printIcon('group', 'edit', "groupID=$group->id", '', 'list');?>
<?php common::printIcon('group', 'copy', "groupID=$group->id", '', 'list');?>
<?php
$deleteURL = $this->createLink('group', 'delete', "groupID=$group->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"groupList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->group->delete}'");
if(common::hasPriv('group', 'delete'))
{
$deleteURL = $this->createLink('group', 'delete', "groupID=$group->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"groupList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->group->delete}'");
}
?>
</td>
</tr>

View File

@@ -95,7 +95,7 @@ class misc extends control
$notifyDir = $this->app->getBasePath() . 'www/data/notify/';
$packageFile = $notifyDir . 'notify.zip';
$tmpDir = $notifyDir . 'notify';
$loginFile = $tmpDir . '/notify/logininfo';
$loginFile = $tmpDir . '/tmp/.logininfo';
$this->app->loadClass('pclzip', true);
$sourceZip = new pclzip($packageFile);
@@ -103,9 +103,9 @@ class misc extends control
if($files == 0) die("Error : ".$sourceZip->errorInfo(true));
$loginInfo = new stdclass();
$loginInfo->account = $this->app->user->account;
$loginInfo->password = $this->app->user->password;
$loginInfo->zentaoRoot = common::getSysURL() . $this->config->webRoot;
$loginInfo->account = $this->app->user->account;
$loginInfo->password = $this->app->user->password;
$loginInfo->zentaourl = common::getSysURL() . $this->config->webRoot;
$loginInfo = json_encode($loginInfo);
file_put_contents($loginFile, $loginInfo);

View File

@@ -1,18 +1,16 @@
.block {border:1px solid #efefef; height:225px;}
.dynamic{border:1px solid #efefef;}
.linkbox1{height:180px; overflow-y:auto}
.dynamic{border:1px solid #efefef;height: 434px;overflow: hidden;}
.dynamic td{padding: 5px 5px;}
.linkbox1{height:205px; overflow-y:auto}
.linkbox2{height:225px; overflow-y:auto}
#projectbox{margin-bottom: 23px;}
#row1{margin-bottom:20px}
#row2{margin-bottom:10px}
#row1 .table-1, #row1 caption{border:none}
#row2 .table-1, #row2 caption{border:none}
caption{line-height: 20px;padding-bottom: 8px;}
caption .f-left {padding-left:0px}
.icon-dynamic {padding-left:16px; background:url(../theme/default/images/main/zt-icons.png); background-position:-65px -444px;}
.icon-more {padding-left:16px; background:url(../theme/default/images/main/zt-icons.png); background-position:-202px -443px;}
.icon-todo {padding-left:16px; background:url(../theme/default/images/main/zt-icons.png); background-position:-2px -443px;}
.icon-bug {padding-left:16px; background:url(../theme/default/images/main/zt-icons.png); background-position:-42px -442px;}
.icon-task {padding-left:16px; background:url(../theme/default/images/main/zt-icons.png); background-position:-22px -442px;}
.icon-story {padding-left:16px; background:url(../theme/default/images/main/zt-icons.png); background-position:-82px -443px;}
.outer th i[class^="icon-"], .outer th i[class*=" icon-"]{font-size: 16px;}

View File

@@ -31,7 +31,7 @@ $lang->my->storyMenu->closedByMe = 'My closed';
$lang->my->home = new stdclass();
$lang->my->home->latest = 'Dynamic';
$lang->my->home->action = "%s, %s <i>%s</i> %s <a href='%s'>%s</a>.";
$lang->my->home->action = "%s, %s <em>%s</em> %s <a href='%s'>%s</a>.";
$lang->my->home->projects = 'Project';
$lang->my->home->products = 'Product';
$lang->my->home->projectHome = 'Project home';

View File

@@ -1,41 +1,41 @@
<?php
$lang->my->common = '我的地盘';
/* 方法列表。*/
$lang->my->index = '首页';
$lang->my->todo = '我的待办';
$lang->my->task = '我的任务';
$lang->my->bug = '我的Bug';
$lang->my->testTask = '我的测试任务';
$lang->my->testCase = '我的测试用例';
$lang->my->story = '我的需求';
$lang->my->myProject = '我的项目';
$lang->my->team = '我的团队';
$lang->my->profile = '我的档案';
$lang->my->dynamic = '我的动态';
$lang->my->editProfile = '更新信息';
$lang->my->changePassword = '修改密码';
$lang->my->taskMenu = new stdclass();
$lang->my->taskMenu->assignedToMe = '指派给我';
$lang->my->taskMenu->openedByMe = '由我创建';
$lang->my->taskMenu->finishedByMe = '由我完成';
$lang->my->taskMenu->closedByMe = '由我关闭';
$lang->my->taskMenu->canceledByMe = '由我取消';
$lang->my->storyMenu = new stdclass();
$lang->my->storyMenu->assignedToMe = '指派给我';
$lang->my->storyMenu->openedByMe = '由我创建';
$lang->my->storyMenu->reviewedByMe = '由我评审';
$lang->my->storyMenu->closedByMe = '由我关闭';
$lang->my->home = new stdclass();
$lang->my->home->latest = '最新动态';
$lang->my->home->action = "%s, %s <i>%s</i> %s <a href='%s'>%s</a>。";
$lang->my->home->projects = '项目';
$lang->my->home->products = '产品';
$lang->my->home->projectHome = '访问项目主页';
$lang->my->home->productHome = '访问产品主页';
$lang->my->home->createProject = "创建一个项目?";
$lang->my->home->createProduct = "创建一个产品?";
$lang->my->home->help = "<a href='http://www.zentao.net/help-read-79236.html' target='_blank'>帮助文档</a>";
<?php
$lang->my->common = '我的地盘';
/* 方法列表。*/
$lang->my->index = '首页';
$lang->my->todo = '我的待办';
$lang->my->task = '我的任务';
$lang->my->bug = '我的Bug';
$lang->my->testTask = '我的测试任务';
$lang->my->testCase = '我的测试用例';
$lang->my->story = '我的需求';
$lang->my->myProject = '我的项目';
$lang->my->team = '我的团队';
$lang->my->profile = '我的档案';
$lang->my->dynamic = '我的动态';
$lang->my->editProfile = '更新信息';
$lang->my->changePassword = '修改密码';
$lang->my->taskMenu = new stdclass();
$lang->my->taskMenu->assignedToMe = '指派给我';
$lang->my->taskMenu->openedByMe = '由我创建';
$lang->my->taskMenu->finishedByMe = '由我完成';
$lang->my->taskMenu->closedByMe = '由我关闭';
$lang->my->taskMenu->canceledByMe = '由我取消';
$lang->my->storyMenu = new stdclass();
$lang->my->storyMenu->assignedToMe = '指派给我';
$lang->my->storyMenu->openedByMe = '由我创建';
$lang->my->storyMenu->reviewedByMe = '由我评审';
$lang->my->storyMenu->closedByMe = '由我关闭';
$lang->my->home = new stdclass();
$lang->my->home->latest = '最新动态';
$lang->my->home->action = "%s, %s <em>%s</em> %s <a href='%s'>%s</a>。";
$lang->my->home->projects = '项目';
$lang->my->home->products = '产品';
$lang->my->home->projectHome = '访问项目主页';
$lang->my->home->productHome = '访问产品主页';
$lang->my->home->createProject = "创建一个项目?";
$lang->my->home->createProduct = "创建一个产品?";
$lang->my->home->help = "<a href='http://www.zentao.net/help-read-79236.html' target='_blank'>帮助文档</a>";

View File

@@ -1,41 +1,41 @@
<?php
$lang->my->common = '我的地盤';
/* 方法列表。*/
$lang->my->index = '首頁';
$lang->my->todo = '我的待辦';
$lang->my->task = '我的任務';
$lang->my->bug = '我的Bug';
$lang->my->testTask = '我的測試任務';
$lang->my->testCase = '我的測試用例';
$lang->my->story = '我的需求';
$lang->my->myProject = '我的項目';
$lang->my->team = '我的團隊';
$lang->my->profile = '我的檔案';
$lang->my->dynamic = '我的動態';
$lang->my->editProfile = '更新信息';
$lang->my->changePassword = '修改密碼';
$lang->my->taskMenu = new stdclass();
$lang->my->taskMenu->assignedToMe = '指派給我';
$lang->my->taskMenu->openedByMe = '由我創建';
$lang->my->taskMenu->finishedByMe = '由我完成';
$lang->my->taskMenu->closedByMe = '由我關閉';
$lang->my->taskMenu->canceledByMe = '由我取消';
$lang->my->storyMenu = new stdclass();
$lang->my->storyMenu->assignedToMe = '指派給我';
$lang->my->storyMenu->openedByMe = '由我創建';
$lang->my->storyMenu->reviewedByMe = '由我評審';
$lang->my->storyMenu->closedByMe = '由我關閉';
$lang->my->home = new stdclass();
$lang->my->home->latest = '最新動態';
$lang->my->home->action = "%s, %s <i>%s</i> %s <a href='%s'>%s</a>。";
$lang->my->home->projects = '項目';
$lang->my->home->products = '產品';
$lang->my->home->projectHome = '訪問項目主頁';
$lang->my->home->productHome = '訪問產品主頁';
$lang->my->home->createProject = "創建一個項目?";
$lang->my->home->createProduct = "創建一個產品?";
$lang->my->home->help = "<a href='http://www.zentao.net/help-read-79236.html' target='_blank'>幫助文檔</a>";
<?php
$lang->my->common = '我的地盤';
/* 方法列表。*/
$lang->my->index = '首頁';
$lang->my->todo = '我的待辦';
$lang->my->task = '我的任務';
$lang->my->bug = '我的Bug';
$lang->my->testTask = '我的測試任務';
$lang->my->testCase = '我的測試用例';
$lang->my->story = '我的需求';
$lang->my->myProject = '我的項目';
$lang->my->team = '我的團隊';
$lang->my->profile = '我的檔案';
$lang->my->dynamic = '我的動態';
$lang->my->editProfile = '更新信息';
$lang->my->changePassword = '修改密碼';
$lang->my->taskMenu = new stdclass();
$lang->my->taskMenu->assignedToMe = '指派給我';
$lang->my->taskMenu->openedByMe = '由我創建';
$lang->my->taskMenu->finishedByMe = '由我完成';
$lang->my->taskMenu->closedByMe = '由我關閉';
$lang->my->taskMenu->canceledByMe = '由我取消';
$lang->my->storyMenu = new stdclass();
$lang->my->storyMenu->assignedToMe = '指派給我';
$lang->my->storyMenu->openedByMe = '由我創建';
$lang->my->storyMenu->reviewedByMe = '由我評審';
$lang->my->storyMenu->closedByMe = '由我關閉';
$lang->my->home = new stdclass();
$lang->my->home->latest = '最新動態';
$lang->my->home->action = "%s, %s <em>%s</em> %s <a href='%s'>%s</a>。";
$lang->my->home->projects = '項目';
$lang->my->home->products = '產品';
$lang->my->home->projectHome = '訪問項目主頁';
$lang->my->home->productHome = '訪問產品主頁';
$lang->my->home->createProject = "創建一個項目?";
$lang->my->home->createProduct = "創建一個產品?";
$lang->my->home->help = "<a href='http://www.zentao.net/help-read-79236.html' target='_blank'>幫助文檔</a>";

View File

@@ -1,8 +1,8 @@
<div class='block linkbox2'>
<table class='table-1 fixed colored'>
<caption>
<div class='f-left'><span class='icon-bug'>&nbsp;</span> <?php echo $lang->my->bug;?></div>
<div class='f-right'><?php echo html::a($this->createLink('my', 'bug'), $lang->more . "<span class='icon-more'></span>");?></div>
<div class='f-left'><i class='icon icon-bug'></i>&nbsp; <?php echo $lang->my->bug;?></div>
<div class='f-right'><?php echo html::a($this->createLink('my', 'bug'), $lang->more . "&nbsp;<i class='icon-th icon icon-double-angle-right'></i>");?></div>
</caption>
<?php
foreach($bugs as $bugID => $bugTitle)

View File

@@ -1,8 +1,8 @@
<div class='dynamic'>
<table class='table-1 colored fixed'>
<caption>
<div class='f-left'><span class='icon-dynamic'></span><?php echo $lang->my->home->latest;?></div>
<div class='f-right'><?php common::printLink('company', 'dynamic', '', $lang->more . "<span class='icon-more'></span>");?></div>
<div class='f-left'><i class="icon icon-quote-right"></i>&nbsp; <?php echo $lang->my->home->latest;?></div>
<div class='f-right'><?php common::printLink('company', 'dynamic', '', $lang->more . "&nbsp;<i class='icon-th icon icon-double-angle-right'></i>");?></div>
</caption>
<?php
foreach($actions as $action)

View File

@@ -1,7 +1,7 @@
<div class='block linkbox1' id='productbox'>
<?php if(empty($productStats)):?>
<table class='table-1 a-center' height='138px'>
<caption><span class='icon-allProducts'>&nbsp;</span><?php echo $lang->my->home->products;?></caption>
<caption><i class="icon icon-th"></i>&nbsp; <?php echo $lang->my->home->products;?></caption>
<tr>
<td valign='middle'>
<table class='a-left bd-none' align='center'>
@@ -16,7 +16,7 @@
<?php else:?>
<table class='table-1 colored fixed'>
<tr class='colhead'>
<th class='w-150px'><div class='f-left'><span class='icon-allProjects'>&nbsp;</span><?php echo $lang->product->name;?></div></th>
<th class='w-150px'><div class='f-left'><i class="icon icon-th"></i>&nbsp; <?php echo $lang->product->name;?></div></th>
<th title='<?php echo $lang->story->common;?>'><?php echo $lang->story->statusList['active'];?></th>
<th title='<?php echo $lang->story->common;?>'><?php echo $lang->story->statusList['changed'];?></th>
<th title='<?php echo $lang->story->common;?>'><?php echo $lang->story->statusList['draft'];?></th>

View File

@@ -1,7 +1,7 @@
<div class='block linkbox1' id='projectbox'>
<?php if(count($projectStats) == 0):?>
<table class='table-1 a-center' height='138px'>
<caption><span class='icon-allProjects'>&nbsp;</span><?php echo $lang->my->home->projects;?></caption>
<caption><i class="icon icon-th-large"></i>&nbsp;<?php echo $lang->my->home->projects;?></caption>
<tr>
<td valign='middle'>
<table class='a-left bd-none' align='center'>
@@ -16,7 +16,7 @@
<?php else:?>
<table class='table-1 fixed colored'>
<tr class='colhead'>
<th class='w-150px'><div class='f-left'><span class='icon-allProjects'>&nbsp;</span> <?php echo $lang->project->name;?></div></th>
<th class='w-150px'><div class='f-left'><i class="icon icon-th-large"></i>&nbsp; <?php echo $lang->project->name;?></div></th>
<th><?php echo $lang->project->end;?></th>
<th><?php echo $lang->statusAB;?></th>
<th><?php echo $lang->project->totalEstimate;?></th>

View File

@@ -2,7 +2,7 @@
<table class='table-1 fixed colored'>
<caption>
<div class='f-left'><span class='icon-story'>&nbsp;</span> <?php echo $lang->my->story;?></div>
<div class='f-right'><?php echo html::a($this->createLink('my', 'story'), $lang->more . "<span class='icon-more'></span>");?></div>
<div class='f-right'><?php echo html::a($this->createLink('my', 'story'), $lang->more . "&nbsp;<i class='icon-th icon icon-double-angle-right'></i>");?></div>
</caption>
<?php
foreach($stories as $story)

View File

@@ -1,8 +1,8 @@
<div class='block linkbox2'>
<table class='table-1 fixed colored'>
<caption>
<div class='f-left'><span class='icon-task'>&nbsp;</span><?php echo $lang->my->task;?></div>
<div class='f-right'><?php echo html::a($this->createLink('my', 'task'), $lang->more . "<span class='icon-more'></span>");?></div>
<div class='f-left'><i class='icon icon-tasks'></i>&nbsp; <?php echo $lang->my->task;?></div>
<div class='f-right'><?php echo html::a($this->createLink('my', 'task'), $lang->more . "&nbsp;<i class='icon-th icon icon-double-angle-right'></i>");?></div>
</caption>
<?php
foreach($tasks as $task)

View File

@@ -1,8 +1,8 @@
<div class='block linkbox2'>
<table class='table-1 fixed colored'>
<caption>
<div class='f-left'><span class='icon-todo'>&nbsp;</span><?php echo $lang->my->todo;?></div>
<div class='f-right'><?php echo html::a($this->createLink('my', 'todo'), $lang->more . "<span class='icon-more'></span>");?></div>
<div class='f-left'><i class='icon icon-list-ul'></i>&nbsp; <?php echo $lang->my->todo;?></div>
<div class='f-right'><?php echo html::a($this->createLink('my', 'todo'), $lang->more . "&nbsp;<i class='icon-th icon icon-double-angle-right'></i>");?></div>
</caption>
<?php
foreach($todos as $todo)

View File

@@ -1,40 +1,43 @@
<?php
/**
* The html template file of index method of index module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoPMS
* @version $Id: index.html.php 1947 2011-06-29 11:58:03Z wwccss $
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/sparkline.html.php';?>
<?php include '../../common/view/colorize.html.php';?>
<?php css::import($defaultTheme . 'index.css', $config->version);?>
<table class='cont' id='row1'>
<tr valign='top'>
<td width='66%' style='padding-right:20px'>
<?php include './blockprojects.html.php';?> <br />
<?php include './blockproducts.html.php';?>
</td>
<td width='33%'><?php if(common::hasPriv('company', 'dynamic')) include './blockdynamic.html.php';?></td>
</tr>
</table>
<table class='cont' id='row2'>
<tr valign='top'>
<td width='33%' style='padding-right:20px'><?php include './blocktodoes.html.php';?></td>
<?php if($app->user->role and strpos('qa|qd', $app->user->role) !== false):?>
<td width='33%' style='padding-right:20px'><?php include './blockbugs.html.php';?></td>
<td width='33%'><?php include './blocktasks.html.php';?></td>
<?php elseif($app->user->role and strpos('po|pd', $app->user->role) !== false):?>
<td width='33%' style='padding-right:20px'><?php include './blockstories.html.php';?></td>
<td width='33%'><?php include './blockbugs.html.php';?></td>
<?php else:?>
<td width='33%' style='padding-right:20px'><?php include './blocktasks.html.php';?></td>
<td width='33%'><?php include './blockbugs.html.php';?></td>
<?php endif;?>
</tr>
</table>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The html template file of index method of index module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoPMS
* @version $Id: index.html.php 1947 2011-06-29 11:58:03Z wwccss $
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/sparkline.html.php';?>
<?php include '../../common/view/colorize.html.php';?>
<?php css::import($defaultTheme . 'index.css', $config->version);?>
<div class="wrapper">
<table class='cont' id='row1'>
<tr valign='top'>
<td width='66%' style='padding-right:20px'>
<?php include './blockprojects.html.php';?>
<?php include './blockproducts.html.php';?>
</td>
<td width='33%'><?php if(common::hasPriv('company', 'dynamic')) include './blockdynamic.html.php';?></td>
</tr>
</table>
<table class='cont' id='row2'>
<tr valign='top'>
<td width='33%' style='padding-right:20px'><?php include './blocktodoes.html.php';?></td>
<?php if($app->user->role and strpos('qa|qd', $app->user->role) !== false):?>
<td width='33%' style='padding-right:20px'><?php include './blockbugs.html.php';?></td>
<td width='33%'><?php include './blocktasks.html.php';?></td>
<?php elseif($app->user->role and strpos('po|pd', $app->user->role) !== false):?>
<td width='33%' style='padding-right:20px'><?php include './blockstories.html.php';?></td>
<td width='33%'><?php include './blockbugs.html.php';?></td>
<?php else:?>
<td width='33%' style='padding-right:20px'><?php include './blocktasks.html.php';?></td>
<td width='33%'><?php include './blockbugs.html.php';?></td>
<?php endif;?>
</tr>
</table>
<?php include '../../common/view/footer.html.php';?>
</div>

View File

@@ -70,8 +70,11 @@
common::printIcon('testcase', 'edit', "caseID=$case->id", $case, 'list');
common::printIcon('testcase', 'create', "productID=$case->product&moduleID=$case->module&from=testcase&param=$case->id", $case, 'list', 'copy');
$deleteURL = $this->createLink('testcase', 'delete', "caseID=$case->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"caseList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->testcase->delete}'");
if(common::hasPriv('testcase', 'delete'))
{
$deleteURL = $this->createLink('testcase', 'delete', "caseID=$case->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"caseList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->testcase->delete}'");
}
common::printIcon('testcase', 'createBug', "product=$case->product&extra=caseID=$case->id,version=$case->version,runID=", $case, 'list', 'createBug');
?>

View File

@@ -53,8 +53,11 @@
common::printIcon('testtask', 'linkCase', "taskID=$task->id", '', 'list');
common::printIcon('testtask', 'edit', "taskID=$task->id", '', 'list');
$deleteURL = $this->createLink('testtask', 'delete', "taskID=$task->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"taskList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->testtask->delete}'");
if(common::hasPriv('testtask', 'delete'))
{
$deleteURL = $this->createLink('testtask', 'delete', "taskID=$task->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"taskList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->testtask->delete}'");
}
?>
</td>
</tr>

View File

@@ -84,8 +84,11 @@
common::printIcon('todo', 'finish', "id=$todo->id", $todo, 'list', '', 'hiddenwin');
common::printIcon('todo', 'edit', "id=$todo->id", '', 'list', '', '', 'iframe', true);
$deleteURL = $this->createLink('todo', 'delete', "todoID=$todo->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"todoList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->todo->delete}'");
if(common::hasPriv('todo', 'delete'))
{
$deleteURL = $this->createLink('todo', 'delete', "todoID=$todo->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"todoList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->todo->delete}'");
}
?>
</td>
</tr>

View File

@@ -1 +0,0 @@
.icon-green-product-close {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -100px -241px;}

View File

@@ -26,13 +26,12 @@
<span id='activestoryTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&browseType=activeStory"), $lang->product->activeStory);?></span>
<span id='changedstoryTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&browseType=changedStory"), $lang->product->changedStory);?></span>
<span id='closedstoryTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&browseType=closedStory"), $lang->product->closedStory);?></span>
<span id='bysearchTab' ><a href='#'><span class='icon-search'></span><?php echo $lang->product->searchStory;?></a></span>
<span id='bysearchTab' ><a href='#'><i class='icon-search icon'></i>&nbsp;<?php echo $lang->product->searchStory;?></a></span>
</div>
<div class='f-right'>
<?php
echo '<span class="link-button dropButton">';
echo html::a("#", "&nbsp;", '', "id='exportAction' class='icon-green-common-export' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->export}'");
echo html::a("#", $lang->export, '', "id='exportAction' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->export}'");
echo html::a("#", "<i class='icon-upload-alt'></i> " . $lang->export, '', "id='exportAction' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->export}'");
echo '</span>';
common::printIcon('story', 'report', "productID=$productID&browseType=$browseType&moduleID=$moduleID");

View File

@@ -42,8 +42,11 @@
<td>
<?php
common::printIcon('doc', 'edit', "doc={$doc->id}");
$deleteURL = $this->createLink('doc', 'delete', "docID=$doc->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"docList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->doc->delete}'");
if(common::hasPriv('doc', 'delete'))
{
$deleteURL = $this->createLink('doc', 'delete', "docID=$doc->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"docList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->doc->delete}'");
}
?>
</td>
</tr>

View File

@@ -25,7 +25,7 @@
<th class='w-p50'> <?php common::printOrderLink('desc', $orderBy, $vars, $lang->productplan->desc);?></th>
<th class='w-100px'> <?php common::printOrderLink('begin', $orderBy, $vars, $lang->productplan->begin);?></th>
<th class='w-100px'> <?php common::printOrderLink('end', $orderBy, $vars, $lang->productplan->end);?></th>
<th class="w-80px {sorter: false}"><?php echo $lang->actions;?></th>
<th class="w-100px {sorter: false}"><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
@@ -42,8 +42,11 @@
common::printIcon('productplan', 'linkBug', "planID=$plan->id", '', 'list');
common::printIcon('productplan', 'edit', "planID=$plan->id", '', 'list');
$deleteURL = $this->createLink('productplan', 'delete', "planID=$plan->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"productplan\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->productplan->delete}'");
if(common::hasPriv('productplan', 'delete'))
{
$deleteURL = $this->createLink('productplan', 'delete', "planID=$plan->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"productplan\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->productplan->delete}'");
}
?>
</td>
</tr>

View File

@@ -20,7 +20,7 @@
<caption class='caption-tl'><?php echo $plan->title .$lang->colon . $lang->productplan->unlinkedBugs;?></caption>
<thead>
<tr class='colhead'>
<th class='w-id'> <?php echo $lang->idAB;?></th>
<th class='w-id {sorter:"currency"}'><?php echo $lang->idAB;?></th>
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th class='w-200px'> <?php echo $lang->bug->plan;?></th>
<th> <?php echo $lang->bug->title;?></th>
@@ -64,7 +64,7 @@
<caption class='caption-tl'><?php echo $plan->title .$lang->colon . $lang->productplan->linkedBugs;?></caption>
<thead>
<tr class='colhead'>
<th class='w-id'> <?php echo $lang->idAB;?></th>
<th class='w-id {sorter:"currency"}'><?php echo $lang->idAB;?></th>
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th> <?php echo $lang->bug->title;?></th>
<th class='w-user'> <?php echo $lang->openedByAB;?></th>
@@ -90,8 +90,11 @@
<td><?php echo $lang->bug->statusList[$bug->status];?></td>
<td>
<?php
$unlinkURL = $this->createLink('productplan', 'unlinkBug', "bugID=$bug->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"bugList\",confirmUnlinkBug)", '&nbsp;', '', "class='icon-green-productplan-unlinkBug' title='{$lang->productplan->unlinkBug}'");
if(common::hasPriv('productplan', 'unlinkBug'))
{
$unlinkURL = $this->createLink('productplan', 'unlinkBug', "bugID=$bug->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"bugList\",confirmUnlinkBug)", '&nbsp;', '', "class='icon-green-productplan-unlinkBug' title='{$lang->productplan->unlinkBug}'");
}
?>
</td>
</tr>

View File

@@ -20,7 +20,7 @@
<caption class='caption-tl'><?php echo $plan->title .$lang->colon . $lang->productplan->unlinkedStories;?></caption>
<thead>
<tr class='colhead'>
<th class='w-id'> <?php echo $lang->idAB;?></th>
<th class='w-id {sorter:"currency"}'><?php echo $lang->idAB;?></th>
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th class='w-200px'> <?php echo $lang->story->plan;?></th>
<th> <?php echo $lang->story->title;?></th>
@@ -68,7 +68,7 @@
<caption class='caption-tl'><?php echo $plan->title .$lang->colon . $lang->productplan->linkedStories;?></caption>
<thead>
<tr class='colhead'>
<th class='w-id'> <?php echo $lang->idAB;?></th>
<th class='w-id {sorter:"currency"}'><?php echo $lang->idAB;?></th>
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th> <?php echo $lang->story->title;?></th>
<th class='w-user'> <?php echo $lang->openedByAB;?></th>
@@ -98,8 +98,11 @@
<td><?php echo $lang->story->stageList[$story->stage];?></td>
<td>
<?php
$unlinkURL = $this->createLink('productplan', 'unlinkStory', "storyID=$story->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"storyList\",confirmUnlinkStory)", '&nbsp;', '', "class='icon-green-productplan-unlinkStory' title='{$lang->productplan->unlinkStory}'");
if(common::hasPriv('productplan', 'unlinkStory'))
{
$unlinkURL = $this->createLink('productplan', 'unlinkStory', "storyID=$story->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"storyList\",confirmUnlinkStory)", '<i class="icon-remove"></i>', '', "class='link-icon' title='{$lang->productplan->unlinkStory}'");
}
?>
</td>
</tr>

View File

@@ -64,7 +64,7 @@
<caption class='caption-tl'><?php echo $plan->title .$lang->colon . $lang->productplan->linkedStories;?></caption>
<thead>
<tr class='colhead'>
<th class='w-id'> <?php echo $lang->idAB;?></th>
<th class='w-id {sorter:"currency"}'><?php echo $lang->idAB;?></th>
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th> <?php echo $lang->story->title;?></th>
<th class='w-user'> <?php echo $lang->openedByAB;?></th>
@@ -101,8 +101,11 @@
<td><?php echo $lang->story->stageList[$story->stage];?></td>
<td>
<?php
$unlinkURL = $this->createLink('productplan', 'unlinkStory', "story=$story->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"storyList\",confirmUnlinkStory)", '&nbsp;', '', "class='icon-green-productplan-unlinkStory' title='{$lang->productplan->unlinkStory}'");
if(common::hasPriv('productplan', 'unlinkStory'))
{
$unlinkURL = $this->createLink('productplan', 'unlinkStory', "story=$story->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"storyList\",confirmUnlinkStory)", '<i class="icon-remove"></i>', '', "class='link-icon' title='{$lang->productplan->unlinkStory}'");
}
?>
</td>
</tr>
@@ -131,7 +134,7 @@
<caption class='caption-tl'><?php echo $plan->title .$lang->colon . $lang->productplan->linkedBugs;?></caption>
<thead>
<tr class='colhead'>
<th class='w-id'> <?php echo $lang->idAB;?></th>
<th class='w-id {sorter:"currency"}'><?php echo $lang->idAB;?></th>
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th> <?php echo $lang->bug->title;?></th>
<th class='w-user'> <?php echo $lang->openedByAB;?></th>
@@ -157,8 +160,11 @@
<td><?php echo $lang->bug->statusList[$bug->status];?></td>
<td>
<?php
$unlinkURL = $this->createLink('productplan', 'unlinkBug', "story=$bug->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"bugList\",confirmUnlinkBug)", '&nbsp;', '', "class='icon-green-productplan-unlinkBug' title='{$lang->productplan->unlinkBug}'");
if(common::hasPriv('productplan', 'unlinkBug'))
{
$unlinkURL = $this->createLink('productplan', 'unlinkBug', "story=$bug->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"bugList\",confirmUnlinkBug)", '&nbsp;', '', "class='icon-green-productplan-unlinkBug' title='{$lang->productplan->unlinkBug}'");
}
?>
</td>
</tr>

View File

@@ -709,6 +709,7 @@ class project extends control
$dateList = $this->project->getDateList($begin, $end, $type);
}
$sets = $this->project->getBurnDataFlot($project->id, $maxDays);
$limitJSON = '[]';
$baselineJSON = '[]';
if($projectInfo->days <= $maxDays)
@@ -728,8 +729,6 @@ class project extends control
$limitJSON = rtrim($limitJSON, ',') . ']';
}
$sets = $this->project->getBurnDataFlot($project->id, $maxDays);
$flotJSON['data'] = $this->report->createSingleJSON($sets, $dateList);
$flotJSON['limit'] = $limitJSON;
$flotJSON['baseline'] = $baselineJSON;

View File

@@ -1,2 +0,0 @@
.icon-green-project-bug {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) 0px -280px;}
.icon-green-testtask-create {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -60px -161px;}

View File

@@ -1,4 +1,8 @@
.icon-green-task-create {padding:2px 7px 2px 10px; background:url(theme/default/images/main/zt-icons.png) -120px -200px;}
.icon-green-task-batchCreate {padding:2px 10px 2px 10px; background:url(theme/default/images/main/zt-icons.png) -199px -200px;}
.icon-green-task-create {width: 22px;height: 18px; background:url(theme/default/images/main/zt-icons.png) 0px -582px;}
.icon-green-task-create:before{display: none;}
.icon-green-testcase-batchCreate {padding:2px 7px 2px 10px; background:url(theme/default/images/main/zt-icons.png) -80px -322px;}
.icon-green-task-batchCreate {width: 22px;height: 18px; background:url(theme/default/images/main/zt-icons.png) -44px -582px;}
.icon-green-task-batchCreate:before {display: none;}
.icon-green-testcase-batchCreate {width: 22px;height: 18px; background:url(theme/default/images/main/zt-icons.png) -22px -582px;}
.icon-green-testcase-batchCreate:before{display: none;}

View File

@@ -1 +0,0 @@
.icon-green-project-unlinkMember {padding:2px 5px 2px 10px; background:url(theme/default/images/main/zt-icons.png) -60px -0px;}

View File

@@ -1,6 +0,0 @@
.icon-green-project-start {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -61px -242px;}
.icon-green-project-activate {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -120px -241px;}
.icon-green-project-putoff {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -40px -161px;}
.icon-green-project-suspend {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -20px -161px;}
.icon-green-project-close {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -100px -241px;}

View File

@@ -1496,24 +1496,25 @@ class projectModel extends model
*/
public function getDateList($begin, $end, $type)
{
$begin = strtotime($begin);
$end = strtotime($end);
$dateList = array();
$date = $begin;
while($date <= $end)
{
$timestamp = strtotime($date);
/* Remove weekend when type is noweekend.*/
if($type == 'noweekend')
{
$weekDay = date('w', $timestamp);
$weekDay = date('w', $date);
if($weekDay == 6 or $weekDay == 0)
{
$date = date('Y-m-d', $timestamp + 24 * 3600);
$date += 24 * 3600;
continue;
}
}
$dateList[] = $date;
$date = date('Y-m-d', $timestamp + 24 * 3600);
$dateList[] = date('m/d/Y', $date);
$date += 24 * 3600;
}
return $dateList;

View File

@@ -31,8 +31,8 @@
<td><?php echo html::input("codes[$projectID]", $projects[$projectID]->code, "class='text-1'");?></td>
<td><?php echo html::select("PMs[$projectID]", $pmUsers, $projects[$projectID]->PM, 'class=text-1');?></td>
<td><?php echo html::select("statuses[$projectID]", $lang->project->statusList, $projects[$projectID]->status, 'class=text-1');?></td>
<td><?php echo html::input("begins[$projectID]", $projects[$projectID]->begin, "class='text-1 date' onchange='computeWorkDays(this.id)'");?></td>
<td><?php echo html::input("ends[$projectID]", $projects[$projectID]->end, "class='text-1 date' onchange='computeWorkDays(this.id)'");?></td>
<td><?php echo html::input("begins[$projectID]", $projects[$projectID]->begin, "class='text-1 w-date date' onchange='computeWorkDays(this.id)'");?></td>
<td><?php echo html::input("ends[$projectID]", $projects[$projectID]->end, "class='text-1 w-date date' onchange='computeWorkDays(this.id)'");?></td>
<td><?php echo html::input("dayses[$projectID]", $projects[$projectID]->days, "class='w-100px'") . $lang->project->day;?></td>
</tr>
<?php endforeach;?>

View File

@@ -46,8 +46,11 @@
$lang->project->bug = $lang->project->viewBug;
common::printIcon('project', 'bug', "project=$project->id&orderBy=status&build=$build->id", '', 'list');
common::printIcon('build', 'edit', "buildID=$build->id");
$deleteURL = $this->createLink('build', 'delete', "buildID=$build->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"buildList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->build->delete}'");
if(common::hasPriv('build', 'delete'))
{
$deleteURL = $this->createLink('build', 'delete', "buildID=$build->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"buildList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->build->delete}'");
}
?>
</td>
</tr>

View File

@@ -44,8 +44,11 @@
<td>
<?php
common::printIcon('doc', 'edit', "doc=$doc->id");
$deleteURL = $this->createLink('doc', 'delete', "docID=$doc->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"docList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->doc->delete}'");
if(common::hasPriv('doc', 'delete'))
{
$deleteURL = $this->createLink('doc', 'delete', "docID=$doc->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"docList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->doc->delete}'");
}
?>
</td>
</tr>

View File

@@ -13,21 +13,21 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/tablesorter.html.php';?>
<?php js::set('confirmUnlinkStory', $lang->project->confirmUnlinkStory)?>
<div id='featurebar'>
<div class='f-left'><?php echo $lang->project->story;?></div>
<div class='f-right'>
<?php
common::printIcon('story', 'export', "productID=$productID&orderBy=id_desc");
$this->lang->story->create = $this->lang->project->createStory;
if($productID) common::printIcon('story', 'create', "productID=$productID&moduleID=0&story=0&project=$project->id");
common::printIcon('project', 'linkStory', "project=$project->id");
?>
</div>
</div>
<form method='post' id='projectStoryForm'>
<table class='table-1 fixed colored tablesorter datatable' id='storyList'>
<caption class='caption-tl pb-10px'>
<div class='f-left'><?php echo $lang->project->story;?></div>
<div class='f-right'>
<?php
common::printIcon('story', 'export', "productID=$productID&orderBy=id_desc");
$this->lang->story->create = $this->lang->project->createStory;
if($productID) common::printIcon('story', 'create', "productID=$productID&moduleID=0&story=0&project=$project->id");
common::printIcon('project', 'linkStory', "project=$project->id");
?>
</div>
</caption>
<thead>
<tr class='colhead'>
<?php $vars = "projectID={$project->id}&orderBy=%s"; ?>
@@ -87,8 +87,11 @@
$lang->testcase->batchCreate = $lang->testcase->create;
if($productID) common::printIcon('testcase', 'batchCreate', "productID=$story->product&moduleID=$story->module&storyID=$story->id", '', 'list');
$unlinkURL = $this->createLink('project', 'unlinkStory', "projectID=$project->id&storyID=$story->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"storyList\",confirmUnlinkStory)", '&nbsp;', '', "class='icon-green-productplan-unlinkStory' title='{$lang->project->unlinkStory}'");
if(common::hasPriv('project', 'unlinkStory'))
{
$unlinkURL = $this->createLink('project', 'unlinkStory', "projectID=$project->id&storyID=$story->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"storyList\",confirmUnlinkStory)", '<i class="icon-remove"></i>', '', "class='link-icon' title='{$lang->project->unlinkStory}'");
}
?>
</td>
</tr>

View File

@@ -14,7 +14,7 @@
echo html::select('groupBy', $lang->project->groups, isset($groupBy) ? $groupBy : '', "onchange='switchGroup($projectID, this.value)'");
echo "</span>";
if($this->methodName == 'task') echo "<span id='bysearchTab'><a href='#'><span class='icon-search'></span>{$lang->project->byQuery}</a></span> ";
if($this->methodName == 'task') echo "<span id='bysearchTab'><a href='#'><i class='icon-search icon icon-large'></i>&nbsp;{$lang->project->byQuery}</a></span> ";
?>
</div>
<div class='f-right'>
@@ -24,13 +24,11 @@
common::printIcon('task', 'report', "project=$projectID&browseType=$browseType");
echo '<span class="link-button dropButton">';
echo html::a("#", "&nbsp;", '', "id='exportAction' class='icon-green-common-export' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->export}'");
echo html::a("#", $lang->export, '', "id='exportAction' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->export}'");
echo html::a("#", "<i class='icon-upload-alt'></i> " . $lang->export, '', "id='exportAction' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->export}'");
echo '</span>';
echo '<span class="link-button dropButton">';
echo html::a("#", "&nbsp;", '', "id='importAction' class='icon-green-task-import' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->import}'");
echo html::a("#", $lang->import, '', "id='importAction' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->import}'");
echo html::a("#", "<i class='icon-download-alt'></i> " . $lang->import, '', "id='importAction' onclick=toggleSubMenu(this.id,'bottom',0) title='{$lang->import}'");
echo '</span>';
common::printIcon('task', 'batchCreate', "projectID=$projectID");

View File

@@ -1,62 +1,65 @@
<?php
/**
* The team view file of project module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @version $Id: team.html.php 4143 2013-01-18 07:01:06Z wyd621@gmail.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/tablesorter.html.php';?>
<?php js::set('confirmUnlinkMember', $lang->project->confirmUnlinkMember)?>
<table align='center' class='table-5 tablesorter' id='memberList'>
<thead>
<tr class='colhead'>
<th><?php echo $lang->team->account;?></th>
<th><?php echo $lang->team->role;?></th>
<th><?php echo $lang->team->join;?></th>
<th><?php echo $lang->team->days;?></th>
<th><?php echo $lang->team->hours;?></th>
<th><?php echo $lang->team->totalHours;?></th>
<th><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php $totalHours = 0;?>
<?php foreach($teamMembers as $member):?>
<tr class='a-center'>
<td>
<?php
if(!common::printLink('user', 'view', "account=$member->account", $member->realname)) print $member->realname;
$memberHours = $member->days * $member->hours;
$totalHours += $memberHours;
?>
</td>
<td><?php echo $member->role;?></td>
<td><?php echo substr($member->join, 2);?></td>
<td><?php echo $member->days;?></td>
<td><?php echo $member->hours;?></td>
<td><?php echo $memberHours;?></td>
<td>
<?php
$unlinkURL = $this->createLink('project', 'unlinkMember', "projectID=$project->id&account=$member->account&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"memberList\",confirmUnlinkMember)", '&nbsp;', '', "class='icon-green-project-unlinkMember' title='{$lang->project->unlinkMember}'");
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr>
<td colspan='7'>
<div class='f-left'><?php echo $lang->team->totalHours . '' . "<strong>$totalHours</strong>";?></div>
<div class='f-right'><?php common::printLink('project', 'managemembers', "projectID=$project->id", $lang->project->manageMembers);?></div>
</td>
</tr>
</tfoot>
</table>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The team view file of project module of ZenTaoPMS.
*
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package project
* @version $Id: team.html.php 4143 2013-01-18 07:01:06Z wyd621@gmail.com $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/tablesorter.html.php';?>
<?php js::set('confirmUnlinkMember', $lang->project->confirmUnlinkMember)?>
<table align='center' class='table-5 tablesorter' id='memberList'>
<thead>
<tr class='colhead'>
<th><?php echo $lang->team->account;?></th>
<th><?php echo $lang->team->role;?></th>
<th><?php echo $lang->team->join;?></th>
<th><?php echo $lang->team->days;?></th>
<th><?php echo $lang->team->hours;?></th>
<th><?php echo $lang->team->totalHours;?></th>
<th><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php $totalHours = 0;?>
<?php foreach($teamMembers as $member):?>
<tr class='a-center'>
<td>
<?php
if(!common::printLink('user', 'view', "account=$member->account", $member->realname)) print $member->realname;
$memberHours = $member->days * $member->hours;
$totalHours += $memberHours;
?>
</td>
<td><?php echo $member->role;?></td>
<td><?php echo substr($member->join, 2);?></td>
<td><?php echo $member->days;?></td>
<td><?php echo $member->hours;?></td>
<td><?php echo $memberHours;?></td>
<td>
<?php
if (common::hasPriv('project', 'unlinkMember'))
{
$unlinkURL = $this->createLink('project', 'unlinkMember', "projectID=$project->id&account=$member->account&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$unlinkURL\",\"memberList\",confirmUnlinkMember)", '<i class="icon-green-project-unlinkMember icon-remove"></i>', '', "class='link-icon' title='{$lang->project->unlinkMember}'");
}
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr>
<td colspan='7'>
<div class='f-left'><?php echo $lang->team->totalHours . '' . "<strong>$totalHours</strong>";?></div>
<div class='f-right'><?php common::printLink('project', 'managemembers', "projectID=$project->id", $lang->project->manageMembers);?></div>
</td>
</tr>
</tfoot>
</table>
<?php include '../../common/view/footer.html.php';?>

View File

@@ -46,8 +46,11 @@
common::printIcon('testtask', 'linkCase', "taskID=$task->id", '', 'list');
common::printIcon('testtask', 'edit', "taskID=$task->id", '', 'list');
$deleteURL = $this->createLink('testtask', 'delete', "taskID=$task->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"taskList\",confirmDelete)", '&nbsp;', '', "class='icon-green-common-delete' title='{$lang->testtask->delete}'");
if(common::hasPriv('testtask', 'delete'))
{
$deleteURL = $this->createLink('testtask', 'delete', "taskID=$task->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"taskList\",confirmDelete)", '<i class="icon-green-common-delete"></i>', '', "class='link-icon' title='{$lang->testtask->delete}'");
}
?>
</td>
</tr>

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