Compare commits
154 Commits
zentaopms_
...
zentaopms_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b33f1b46f9 | ||
|
|
4d2d177881 | ||
|
|
a79753bbb1 | ||
|
|
3a8434506b | ||
|
|
c897d594ee | ||
|
|
4d2dc1b353 | ||
|
|
ae7bb1c189 | ||
|
|
755aa3c456 | ||
|
|
42435e3e42 | ||
|
|
3456049400 | ||
|
|
582759a56c | ||
|
|
3c7ee4d9d4 | ||
|
|
8eee210509 | ||
|
|
656c46e636 | ||
|
|
bed9d3e5d6 | ||
|
|
4eae16c9bf | ||
|
|
8f9e75ffbc | ||
|
|
9a65c59e04 | ||
|
|
548b2d9a12 | ||
|
|
2410218774 | ||
|
|
3cec608741 | ||
|
|
7980141a0e | ||
|
|
ae18c90359 | ||
|
|
2b005bd7da | ||
|
|
1ea6101aa9 | ||
|
|
8c5ad1ca57 | ||
|
|
d3c3bd0c33 | ||
|
|
d39e675ea5 | ||
|
|
7dd543edb7 | ||
|
|
7ad765ef99 | ||
|
|
4886f83af2 | ||
|
|
265349a8e1 | ||
|
|
16092cad71 | ||
|
|
0c08d63d83 | ||
|
|
81a2a18ed4 | ||
|
|
dceaf04b0b | ||
|
|
609b182ae0 | ||
|
|
9b65220537 | ||
|
|
1302a0912a | ||
|
|
bf3f1de094 | ||
|
|
f09ce6ddc6 | ||
|
|
891a3d2dd9 | ||
|
|
2e519f9cb0 | ||
|
|
9198ec75da | ||
|
|
07e2c8f571 | ||
|
|
8d1843c9bc | ||
|
|
bac96871d2 | ||
|
|
dcb3ac81e2 | ||
|
|
429c5c5a96 | ||
|
|
ca4f5d636f | ||
|
|
32604b8125 | ||
|
|
cce52d785e | ||
|
|
6a78c2502f | ||
|
|
4a2680a48a | ||
|
|
90e5499f1d | ||
|
|
ffd3c83dd0 | ||
|
|
6dbe327790 | ||
|
|
a11c799335 | ||
|
|
7f3d4bcdca | ||
|
|
03dc6303ad | ||
|
|
3c3b7d8662 | ||
|
|
c9e031e86f | ||
|
|
b5daf6f82b | ||
|
|
8549a4757d | ||
|
|
b9bf18e348 | ||
|
|
1c69f7d847 | ||
|
|
edaf55c770 | ||
|
|
de4d7487a9 | ||
|
|
0116d67ad3 | ||
|
|
ac72358c6d | ||
|
|
c9de6b5c4a | ||
|
|
e7725ef126 | ||
|
|
a3a1a2aa5a | ||
|
|
b3b0d74d8c | ||
|
|
23500c93b6 | ||
|
|
6a52f1ef05 | ||
|
|
d3e19f9a2d | ||
|
|
245e10b6b5 | ||
|
|
5ed0bcc141 | ||
|
|
0b779f8af5 | ||
|
|
3d3017586e | ||
|
|
2ae5154991 | ||
|
|
0077ab8862 | ||
|
|
60a7c2c377 | ||
|
|
4879aa5658 | ||
|
|
f844db4cc6 | ||
|
|
a1fe248c34 | ||
|
|
4558677597 | ||
|
|
d00bfd3280 | ||
|
|
226e3895c2 | ||
|
|
ec68dd670a | ||
|
|
5668adbab0 | ||
|
|
c3acb4f823 | ||
|
|
e8cecbd5eb | ||
|
|
1bf88677dd | ||
|
|
ed6d2e0eea | ||
|
|
4cfb449d0b | ||
|
|
cf8fd65ba6 | ||
|
|
ae52b87738 | ||
|
|
8558473667 | ||
|
|
a0458883e7 | ||
|
|
bb4717a286 | ||
|
|
6b52fcf810 | ||
|
|
a34c712c67 | ||
|
|
8950787fc8 | ||
|
|
86de520c2a | ||
|
|
d49faed0c8 | ||
|
|
f057603eb7 | ||
|
|
40a668741a | ||
|
|
7f57f965d6 | ||
|
|
9c3a12b11d | ||
|
|
d2e87c5594 | ||
|
|
d89536278b | ||
|
|
c993ab7a8d | ||
|
|
2f262580cc | ||
|
|
057a42f834 | ||
|
|
cfca33f2be | ||
|
|
3799e7d264 | ||
|
|
8c6d3e42de | ||
|
|
d2fecb7f3a | ||
|
|
a58b320add | ||
|
|
fc2bc9c3d2 | ||
|
|
353d636f3a | ||
|
|
cb2bb04737 | ||
|
|
d069100508 | ||
|
|
a50c0449f7 | ||
|
|
0daa28c494 | ||
|
|
1f830da3ef | ||
|
|
f5826c1315 | ||
|
|
d05c0235d2 | ||
|
|
acabc4f81e | ||
|
|
cece89e621 | ||
|
|
c9b01af26c | ||
|
|
d5ef11b22f | ||
|
|
7d9058320c | ||
|
|
6704e2c4b5 | ||
|
|
e2f40afb04 | ||
|
|
31d1346bf7 | ||
|
|
5eb15407d7 | ||
|
|
49d7b65f54 | ||
|
|
70436d6e63 | ||
|
|
36ea5246db | ||
|
|
3d8e60309f | ||
|
|
ca105a77ee | ||
|
|
e33122c70a | ||
|
|
4b485a0560 | ||
|
|
8a4008b639 | ||
|
|
7b7fdc7ac5 | ||
|
|
d10b54ac6d | ||
|
|
da1735f3c8 | ||
|
|
831a383726 | ||
|
|
e07e89ee61 | ||
|
|
d24775b120 | ||
|
|
cf167a5c4f |
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
1
module/action/config.php
Normal file → Executable 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
0
module/action/control.php
Normal file → Executable file
0
module/action/css/trash.css
Normal file → Executable file
0
module/action/css/trash.css
Normal file → Executable file
0
module/action/ext/config/.gitkeep
Normal file → Executable file
0
module/action/ext/config/.gitkeep
Normal file → Executable file
0
module/action/ext/control/.gitkeep
Normal file → Executable file
0
module/action/ext/control/.gitkeep
Normal file → Executable file
0
module/action/ext/css/.gitkeep
Normal file → Executable file
0
module/action/ext/css/.gitkeep
Normal file → Executable file
0
module/action/ext/js/.gitkeep
Normal file → Executable file
0
module/action/ext/js/.gitkeep
Normal file → Executable file
0
module/action/ext/lang/en/.gitkeep
Normal file → Executable file
0
module/action/ext/lang/en/.gitkeep
Normal file → Executable file
0
module/action/ext/lang/zh-cn/.gitkeep
Normal file → Executable file
0
module/action/ext/lang/zh-cn/.gitkeep
Normal file → Executable file
0
module/action/ext/lang/zh-tw/.gitkeep
Normal file → Executable file
0
module/action/ext/lang/zh-tw/.gitkeep
Normal file → Executable file
0
module/action/ext/model/.gitkeep
Normal file → Executable file
0
module/action/ext/model/.gitkeep
Normal file → Executable file
0
module/action/ext/view/.gitkeep
Normal file → Executable file
0
module/action/ext/view/.gitkeep
Normal file → Executable file
0
module/action/lang/en.php
Normal file → Executable file
0
module/action/lang/en.php
Normal file → Executable file
0
module/action/lang/zh-cn.php
Normal file → Executable file
0
module/action/lang/zh-cn.php
Normal file → Executable file
0
module/action/lang/zh-tw.php
Normal file → Executable file
0
module/action/lang/zh-tw.php
Normal file → Executable file
2
module/action/model.php
Normal file → Executable file
2
module/action/model.php
Normal file → Executable 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
0
module/action/view/trash.html.php
Normal file → Executable 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';?>
|
||||
|
||||
@@ -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'));
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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: ''});
|
||||
|
||||
@@ -33,19 +33,18 @@ js::set('customed', $customed);
|
||||
echo "<span id='longlifebugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=longLifeBugs¶m=0"), $lang->bug->longLifeBugs) . "</span>";
|
||||
echo "<span id='postponedbugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=postponedBugs¶m=0"), $lang->bug->postponedBugs) . "</span>";
|
||||
echo "<span id='needconfirmTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=needconfirm¶m=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> {$lang->bug->byQuery}</a></span> ";
|
||||
?>
|
||||
</div>
|
||||
<div class='f-right'>
|
||||
<?php
|
||||
|
||||
echo '<span class="link-button dropButton">';
|
||||
echo html::a("#", " ", '', "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> </span></div>
|
||||
|
||||
@@ -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(' ', "onclick=deleteTemplate($template->id) class='icon-delete'");
|
||||
echo ' ' . $lang->arrow. " <span id='tplTitleBox$template->id' onclick='setTemplate($template->id)' style='text-decoration:underline; color:blue' class='hand'>$template->title</span>";
|
||||
echo " <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>';
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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())
|
||||
{
|
||||
|
||||
@@ -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', ' ', '', "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, ' ', $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, ' ', $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'> </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, ' ', '', "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}"), ' ', '', "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}"), ' ', '', "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>";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"> </span>';
|
||||
$lang->arrow = ' <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"> </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"> </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"> </span>New|product|create', 'float' => 'right');
|
||||
$lang->product->menu->all = array('link' => '<span class="icon-all"> </span>All|product|index|locate=no&productID=%s', 'float' => 'right');
|
||||
$lang->product->menu->create = array('link' => '<span class="icon-plus"> </span>New|product|create', 'float' => 'right');
|
||||
$lang->product->menu->all = array('link' => '<span class="icon-th"> </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"> </span>New|project|create', 'float' => 'right');
|
||||
$lang->project->menu->all = array('link' => '<span class="icon-allProjects"> </span>Projects|project|index|locate=no&status=all&projectID=%s', 'float' => 'right');
|
||||
$lang->project->menu->all = array('link' => '<i class="icon-th-large"></i> 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"> </span>Add Group|group|create', 'float' => 'right');
|
||||
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-add"> </span>Batch Add|user|batchCreate', 'subModule' => 'user', 'float' => 'right');
|
||||
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-green-user-batchCreate"> </span>Batch Add|user|batchCreate', 'subModule' => 'user', 'float' => 'right');
|
||||
$lang->company->menu->addUser = array('link' => '<span class="icon-add"> </span>Add User|user|create|dept=%s&from=company', 'subModule' => 'user', 'float' => 'right');
|
||||
|
||||
$lang->dept = new stdclass();
|
||||
|
||||
@@ -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"> </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"> </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"> </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"> </span>添加产品|product|create', 'float' => 'right');
|
||||
$lang->product->menu->all = array('link' => '<span class="icon-allProducts"> </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"> </span>添加项目|project|create', 'float' => 'right');
|
||||
$lang->project->menu->all = array('link' => '<span class="icon-allProjects"> </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"> </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"> </span>应用商店|webapp|obtain', 'float' => 'right');
|
||||
$lang->webapp->menu->manageTree = array('link' => "<span class='icon-webapp-manage'> </span>维护分类|tree|browse|rootID=0&view=webapp", 'float' => 'right');
|
||||
$lang->webapp->menu->create = array('link' => "<span class='icon-webapp-create'> </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"> </span>添加分组|group|create', 'float' => 'right');
|
||||
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-add"> </span>批量添加|user|batchCreate|dept=%s', 'subModule' => 'user', 'float' => 'right');
|
||||
$lang->company->menu->addUser = array('link' => '<span class="icon-add"> </span>添加用户|user|create|dept=%s', 'subModule' => 'user', 'float' => 'right');
|
||||
|
||||
$lang->dept = new stdclass();
|
||||
$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 = ' <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> 添加产品|product|create', 'float' => 'right');
|
||||
$lang->product->menu->all = array('link' => '<i class="icon-th"></i> 所有产品|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> 添加项目|project|create', 'float' => 'right');
|
||||
$lang->project->menu->all = array('link' => '<i class="icon-th-large"></i> 所有项目|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> 添加文档库|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"> </span>应用商店|webapp|obtain', 'float' => 'right');
|
||||
$lang->webapp->menu->manageTree = array('link' => "<span class='icon-webapp-manage'> </span>维护分类|tree|browse|rootID=0&view=webapp", 'float' => 'right');
|
||||
$lang->webapp->menu->create = array('link' => "<span class='icon-webapp-create'> </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> 添加分组|group|create', 'float' => 'right');
|
||||
$lang->company->menu->batchAddUser = array('link' => '<i class="icon-green-user-batchCreate"></i> 批量添加|user|batchCreate|dept=%s', 'subModule' => 'user', 'float' => 'right');
|
||||
$lang->company->menu->addUser = array('link' => '<i class="icon-plus"></i> 添加用户|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'><i class='icon-heart'></i> 捐赠</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');
|
||||
|
||||
@@ -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"> </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"> </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"> </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"> </span>添加產品|product|create', 'float' => 'right');
|
||||
$lang->product->menu->all = array('link' => '<span class="icon-allProducts"> </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"> </span>添加項目|project|create', 'float' => 'right');
|
||||
$lang->project->menu->all = array('link' => '<span class="icon-allProjects"> </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"> </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"> </span>應用商店|webapp|obtain', 'float' => 'right');
|
||||
$lang->webapp->menu->manageTree = array('link' => "<span class='icon-webapp-manage'> </span>維護分類|tree|browse|rootID=0&view=webapp", 'float' => 'right');
|
||||
$lang->webapp->menu->create = array('link' => "<span class='icon-webapp-create'> </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"> </span>添加分組|group|create', 'float' => 'right');
|
||||
$lang->company->menu->batchAddUser = array('link' => '<span class="icon-add"> </span>批量添加|user|batchCreate|dept=%s', 'subModule' => 'user', 'float' => 'right');
|
||||
$lang->company->menu->addUser = array('link' => '<span class="icon-add"> </span>添加用戶|user|create|dept=%s', 'subModule' => 'user', 'float' => 'right');
|
||||
|
||||
$lang->dept = new stdclass();
|
||||
$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 = ' <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> 添加產品|product|create', 'float' => 'right');
|
||||
$lang->product->menu->all = array('link' => '<i class="icon-th"></i> 所有產品|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> 添加項目|project|create', 'float' => 'right');
|
||||
$lang->project->menu->all = array('link' => '<i class="icon-th-large"></i> 所有項目|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> 添加文檔庫|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"> </span>應用商店|webapp|obtain', 'float' => 'right');
|
||||
$lang->webapp->menu->manageTree = array('link' => "<span class='icon-webapp-manage'> </span>維護分類|tree|browse|rootID=0&view=webapp", 'float' => 'right');
|
||||
$lang->webapp->menu->create = array('link' => "<span class='icon-webapp-create'> </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> 添加分組|group|create', 'float' => 'right');
|
||||
$lang->company->menu->batchAddUser = array('link' => '<i class="icon-green-user-batchCreate"></i> 批量添加|user|batchCreate|dept=%s', 'subModule' => 'user', 'float' => 'right');
|
||||
$lang->company->menu->addUser = array('link' => '<i class="icon-plus"></i> 添加用戶|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'><i class='icon-heart'></i> 捐贈</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');
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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?>'> </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'> </span>";?></span>
|
||||
<span onclick='toggleShow(this);' class='hand'><?php echo "<span title='$lang->switchDisplay' class='change-show'> </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'> </span>";?></span>
|
||||
<span onclick='toggleShow();' class='hand'><?php echo "<span title='$lang->switchDisplay' class='change-show'> </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)> </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', ' ', '', "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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)", ' ', '', "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)
|
||||
{
|
||||
|
||||
@@ -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> ' . $lang->action->dynamic->search) . "</span>";
|
||||
?>
|
||||
</div>
|
||||
<div id='querybox' class='<?php if($browseType !='bysearch') echo 'hidden';?>'></div>
|
||||
|
||||
@@ -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';?>
|
||||
|
||||
@@ -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';?>
|
||||
|
||||
@@ -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=' '></input>
|
||||
<input type='button' onclick='delItem(this)' class='icon-delete' value=' '></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=' '></input>
|
||||
<?php if(!$system):?><input type='button' onclick='delItem(this)' class='icon-delete' value=' '></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>
|
||||
|
||||
@@ -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> <?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)", ' ', '', "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>
|
||||
|
||||
@@ -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;}
|
||||
@@ -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"');
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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=' '></input>
|
||||
<input type='button' onclick='delFile(this)' class='icon-delete' value=' '></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);
|
||||
|
||||
@@ -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';?>
|
||||
|
||||
0
module/git/ext/config/.gitkeep
Normal file
0
module/git/ext/config/.gitkeep
Normal file
0
module/git/ext/control/.gitkeep
Normal file
0
module/git/ext/control/.gitkeep
Normal file
0
module/git/ext/css/.gitkeep
Normal file
0
module/git/ext/css/.gitkeep
Normal file
0
module/git/ext/js/.gitkeep
Normal file
0
module/git/ext/js/.gitkeep
Normal file
0
module/git/ext/lang/.gitkeep
Normal file
0
module/git/ext/lang/.gitkeep
Normal file
0
module/git/ext/model/.gitkeep
Normal file
0
module/git/ext/model/.gitkeep
Normal file
0
module/git/ext/view/.gitkeep
Normal file
0
module/git/ext/view/.gitkeep
Normal 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" ;
|
||||
}
|
||||
|
||||
@@ -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;}
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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)", ' ', '', "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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;}
|
||||
@@ -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';
|
||||
|
||||
@@ -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>";
|
||||
|
||||
@@ -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>";
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<div class='block linkbox2'>
|
||||
<table class='table-1 fixed colored'>
|
||||
<caption>
|
||||
<div class='f-left'><span class='icon-bug'> </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> <?php echo $lang->my->bug;?></div>
|
||||
<div class='f-right'><?php echo html::a($this->createLink('my', 'bug'), $lang->more . " <i class='icon-th icon icon-double-angle-right'></i>");?></div>
|
||||
</caption>
|
||||
<?php
|
||||
foreach($bugs as $bugID => $bugTitle)
|
||||
|
||||
@@ -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> <?php echo $lang->my->home->latest;?></div>
|
||||
<div class='f-right'><?php common::printLink('company', 'dynamic', '', $lang->more . " <i class='icon-th icon icon-double-angle-right'></i>");?></div>
|
||||
</caption>
|
||||
<?php
|
||||
foreach($actions as $action)
|
||||
|
||||
@@ -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'> </span><?php echo $lang->my->home->products;?></caption>
|
||||
<caption><i class="icon icon-th"></i> <?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'> </span><?php echo $lang->product->name;?></div></th>
|
||||
<th class='w-150px'><div class='f-left'><i class="icon icon-th"></i> <?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>
|
||||
|
||||
@@ -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'> </span><?php echo $lang->my->home->projects;?></caption>
|
||||
<caption><i class="icon icon-th-large"></i> <?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'> </span> <?php echo $lang->project->name;?></div></th>
|
||||
<th class='w-150px'><div class='f-left'><i class="icon icon-th-large"></i> <?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>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<table class='table-1 fixed colored'>
|
||||
<caption>
|
||||
<div class='f-left'><span class='icon-story'> </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 . " <i class='icon-th icon icon-double-angle-right'></i>");?></div>
|
||||
</caption>
|
||||
<?php
|
||||
foreach($stories as $story)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<div class='block linkbox2'>
|
||||
<table class='table-1 fixed colored'>
|
||||
<caption>
|
||||
<div class='f-left'><span class='icon-task'> </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> <?php echo $lang->my->task;?></div>
|
||||
<div class='f-right'><?php echo html::a($this->createLink('my', 'task'), $lang->more . " <i class='icon-th icon icon-double-angle-right'></i>");?></div>
|
||||
</caption>
|
||||
<?php
|
||||
foreach($tasks as $task)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<div class='block linkbox2'>
|
||||
<table class='table-1 fixed colored'>
|
||||
<caption>
|
||||
<div class='f-left'><span class='icon-todo'> </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> <?php echo $lang->my->todo;?></div>
|
||||
<div class='f-right'><?php echo html::a($this->createLink('my', 'todo'), $lang->more . " <i class='icon-th icon icon-double-angle-right'></i>");?></div>
|
||||
</caption>
|
||||
<?php
|
||||
foreach($todos as $todo)
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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¶m=$case->id", $case, 'list', 'copy');
|
||||
|
||||
$deleteURL = $this->createLink('testcase', 'delete', "caseID=$case->id&confirm=yes");
|
||||
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"caseList\",confirmDelete)", ' ', '', "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');
|
||||
?>
|
||||
|
||||
@@ -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)", ' ', '', "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>
|
||||
|
||||
@@ -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)", ' ', '', "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>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
.icon-green-product-close {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) -100px -241px;}
|
||||
|
||||
@@ -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> <?php echo $lang->product->searchStory;?></a></span>
|
||||
</div>
|
||||
<div class='f-right'>
|
||||
<?php
|
||||
echo '<span class="link-button dropButton">';
|
||||
echo html::a("#", " ", '', "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");
|
||||
|
||||
@@ -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)", ' ', '', "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>
|
||||
|
||||
@@ -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)", ' ', '', "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>
|
||||
|
||||
@@ -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)", ' ', '', "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)", ' ', '', "class='icon-green-productplan-unlinkBug' title='{$lang->productplan->unlinkBug}'");
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -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)", ' ', '', "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>
|
||||
|
||||
@@ -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)", ' ', '', "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)", ' ', '', "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)", ' ', '', "class='icon-green-productplan-unlinkBug' title='{$lang->productplan->unlinkBug}'");
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;}
|
||||
|
||||
@@ -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;}
|
||||
@@ -1 +0,0 @@
|
||||
.icon-green-project-unlinkMember {padding:2px 5px 2px 10px; background:url(theme/default/images/main/zt-icons.png) -60px -0px;}
|
||||
|
||||
@@ -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;}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;?>
|
||||
|
||||
@@ -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)", ' ', '', "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>
|
||||
|
||||
@@ -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)", ' ', '', "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>
|
||||
|
||||
@@ -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)", ' ', '', "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>
|
||||
|
||||
@@ -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> {$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("#", " ", '', "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("#", " ", '', "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");
|
||||
|
||||
@@ -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)", ' ', '', "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';?>
|
||||
|
||||
@@ -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)", ' ', '', "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
Reference in New Issue
Block a user