Merge branch 'master' of github.com:easysoft/zentaopms

This commit is contained in:
xia0ta0
2013-10-26 06:17:53 +08:00
17 changed files with 40 additions and 32 deletions
+4 -4
View File
@@ -33,7 +33,7 @@ js::set('customed', $customed);
echo "<span id='longlifebugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=longLifeBugs&param=0"), $lang->bug->longLifeBugs) . "</span>";
echo "<span id='postponedbugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=postponedBugs&param=0"), $lang->bug->postponedBugs) . "</span>";
echo "<span id='needconfirmTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=needconfirm&param=0"), $lang->bug->needConfirm) . "</span>";
echo "<span id='bysearchTab'><a href='#'><i class='icon-search icon'></i>&nbsp;{$lang->bug->byQuery}</a></span> ";
echo "<span id='bysearchTab'><a href='#' class='link-icon'><i class='icon-search icon'></i>&nbsp;{$lang->bug->byQuery}</a></span> ";
?>
</div>
<div class='f-right'>
@@ -145,14 +145,14 @@ if($customed)
<td class='a-left' title="<?php echo $bug->storyTitle?>"><?php echo html::a($this->createLink('story', 'view', "stoyID=$bug->story"), $bug->storyTitle, '_blank');?></td>
<td><?php $lang->bug->confirmStoryChange = $lang->confirm; common::printIcon('bug', 'confirmStoryChange', "bugID=$bug->id", '', 'list', '', 'hiddenwin')?></td>
<?php else:?>
<td><?php echo $users[$bug->openedBy];?></td>
<td><?php echo zget($users, $bug->openedBy, $bug->openedBy);?></td>
<?php if($this->cookie->windowWidth >= $this->config->wideSize):?>
<td><?php echo substr($bug->openedDate, 5, 11)?></td>
<?php endif;?>
<td <?php if($bug->assignedTo == $this->app->user->account) echo 'class="red"';?>><?php echo $users[$bug->assignedTo];?></td>
<td><?php echo $users[$bug->resolvedBy];?></td>
<td <?php if($bug->assignedTo == $this->app->user->account) echo 'class="red"';?>><?php echo zget($users, $bug->assignedTo, $bug->assignedTo);?></td>
<td><?php echo zget($users, $bug->resolvedBy, $bug->resolvedBy)?></td>
<td><?php echo $lang->bug->resolutionList[$bug->resolution];?></td>
<?php if($this->cookie->windowWidth >= $this->config->wideSize):?>
+1
View File
@@ -493,6 +493,7 @@ class commonModel extends model
echo html::a(helper::createLink('my', 'index'), $lang->zentaoPMS) . $lang->arrow;
if($moduleName != 'index')
{
if(!isset($lang->menu->$mainMenu)) return;
list($menuLabel, $module, $method) = explode('|', $lang->menu->$mainMenu);
echo html::a(helper::createLink($module, $method), $menuLabel);
}
+1 -1
View File
@@ -28,7 +28,7 @@ var browseType = '<?php echo $browseType;?>';
echo "<span id='account'>" . html::select('account', $users, $account, 'onchange=changeUser(this.value)') . '</span>';
echo "<span id='product'>" . html::select('product', $products, $product, 'onchange=changeProduct(this.value)') . '</span>';
echo "<span id='project'>" . html::select('project', $projects, $project, 'onchange=changeProject(this.value)') . '</span>';
echo "<span id='bysearchTab'>" . html::a('#', '<i class="icon-search icon"></i>&nbsp;' . $lang->action->dynamic->search) . "</span>";
echo "<span id='bysearchTab'>" . html::a('#', '<i class="icon-search icon"></i>&nbsp;' . $lang->action->dynamic->search, '', 'class="link-icon"') . "</span>";
?>
</div>
<div id='querybox' class='<?php if($browseType !='bysearch') echo 'hidden';?>'></div>
+1 -1
View File
@@ -21,7 +21,7 @@ var browseType = '<?php echo $browseType;?>';
<div id='featurebar'>
<div class='f-left'>
<span id='bymoduleTab' onclick='browseByModule()'><a href='#'><?php echo $lang->doc->moduleDoc;?></a></span>
<span id='bysearchTab'><a href='#'><i class='icon-search icon icon-large'></i>&nbsp;<?php echo $lang->doc->searchDoc;?></a></span>
<span id='bysearchTab'><a href='#' class='link-icon'><i class='icon-search icon icon-large'></i>&nbsp;<?php echo $lang->doc->searchDoc;?></a></span>
</div>
<div class='f-right'>
<?php common::printIcon('doc', 'create', "libID=$libID&moduleID=$moduleID&productID=$productID&projectID=$projectID&from=doc");?>
+1 -1
View File
@@ -26,7 +26,7 @@
<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='#'><i class='icon-search icon'></i>&nbsp;<?php echo $lang->product->searchStory;?></a></span>
<span id='bysearchTab' ><a href='#' class='link-icon'><i class='icon-search icon'></i>&nbsp;<?php echo $lang->product->searchStory;?></a></span>
</div>
<div class='f-right'>
<?php
+3 -3
View File
@@ -43,9 +43,9 @@
<td><span class='<?php echo 'severity' . $lang->bug->severityList[$bug->severity]?>'><?php echo $lang->bug->severityList[$bug->severity]?></span></td>
<td><span class='<?php echo 'pri' . $lang->bug->priList[$bug->pri]?>'><?php echo $lang->bug->priList[$bug->pri]?></span></td>
<td class='a-left' title="<?php echo $bug->title?>"><?php echo html::a($this->createLink('bug', 'view', "bugID=$bug->id"), $bug->title);?></td>
<td><?php echo $users[$bug->openedBy];?></td>
<td><?php echo $users[$bug->assignedTo];?></td>
<td><?php echo $users[$bug->resolvedBy];?></td>
<td><?php echo zget($users, $bug->openedBy, $bug->openedBy);?></td>
<td><?php echo zget($users, $bug->assignedTo, $bug->assignedTo);?></td>
<td><?php echo zget($users, $bug->resolvedBy, $bug->resolvedBy);?></td>
<td><?php echo $lang->bug->resolutionList[$bug->resolution];?></td>
<td class='a-right'>
<?php
+1 -1
View File
@@ -14,7 +14,7 @@
echo html::select('groupBy', $lang->project->groups, isset($groupBy) ? $groupBy : '', "onchange='switchGroup($projectID, this.value)'");
echo "</span>";
if($this->methodName == 'task') echo "<span id='bysearchTab'><a href='#'><i class='icon-search icon icon-large'></i>&nbsp;{$lang->project->byQuery}</a></span> ";
if($this->methodName == 'task') echo "<span id='bysearchTab'><a href='#' class='link-icon'><i class='icon-search icon icon-large'></i>&nbsp;{$lang->project->byQuery}</a></span> ";
?>
</div>
<div class='f-right'>
+1
View File
@@ -257,6 +257,7 @@ class taskModel extends model
$task->closedDate = "";
$task->lastEditedBy = $this->app->user->account;
$task->lastEditedDate = $now;
$task->consumed = $oldTask->consumed;
$this->setStatus($task);
if(isset($this->post->assignedTos[$taskID]))
{
+1 -1
View File
@@ -26,7 +26,7 @@
<th class='w-80px'><?php echo $lang->task->assignedTo;?></th>
<th class='w-60px red'><?php echo $lang->typeAB;?></th>
<th class='w-70px'><?php echo $lang->task->status;?></th>
<th class='w-40px'><?php echo $lang->task->pri;?></th>
<th class='w-50px'><?php echo $lang->task->pri;?></th>
<th class='w-30px red'><?php echo $lang->task->estimateAB;?></th>
<th class='w-70px'><?php echo $lang->task->consumed;?></th>
<th class='w-60px red'><?php echo $lang->task->consumedThisTime?></th>
+1
View File
@@ -245,6 +245,7 @@ class testcaseModel extends model
foreach($this->post->steps as $stepID => $stepDesc)
{
if(empty($stepDesc)) continue;
$step = new stdclass();
$step->case = $caseID;
$step->version = $version;
$step->desc = htmlspecialchars($stepDesc);
+1 -1
View File
@@ -26,7 +26,7 @@ js::set('confirmDelete', $lang->testcase->confirmDelete);
<?php
echo "<span id='allTab'>" . html::a($this->createLink('testcase', 'browse', "productid=$productID&browseType=all&param=0&orderBy=$orderBy&recTotal=0&recPerPage=200"), $lang->testcase->allCases) . "</span>";
echo "<span id='needconfirmTab'>" . html::a($this->createLink('testcase', 'browse', "productid=$productID&browseType=needconfirm&param=0"), $lang->testcase->needConfirm) . "</span>";
echo "<span id='bysearchTab' onclick=\"browseBySearch('$browseType')\"><a href='#'><i class='icon-search icon'></i>&nbsp;{$lang->testcase->bySearch}</a></span> ";
echo "<span id='bysearchTab' onclick=\"browseBySearch('$browseType')\"><a href='#' class='link-icon'><i class='icon-search icon'></i>&nbsp;{$lang->testcase->bySearch}</a></span> ";
?>
</div>
<div class='f-right'>
+1 -1
View File
@@ -25,7 +25,7 @@ var moduleID = '<?php echo $moduleID;?>';
echo "<span id='bymoduleTab' onclick=\"browseByModule('$browseType')\"><a href='#'>" . $lang->testtask->byModule . "</a></span> ";
echo "<span id='allTab'>" . html::a($this->inlink('cases', "taskID=$taskID&browseType=all&param=0"), $lang->testtask->allCases) . "</span>";
echo "<span id='assignedtomeTab'>" . html::a($this->inlink('cases', "taskID=$taskID&browseType=assignedtome&param=0"), $lang->testtask->assignedToMe) . "</span>";
echo "<span id='bysearchTab' onclick=\"browseBySearch('$browseType')\"><a href='#'><i class='icon-search icon'></i>&nbsp;{$lang->testcase->bySearch}</a></span> ";
echo "<span id='bysearchTab' onclick=\"browseBySearch('$browseType')\"><a href='#' class='link-icon'><i class='icon-search icon'></i>&nbsp;{$lang->testcase->bySearch}</a></span> ";
?>
</div>
<div class='f-right'>
+3 -2
View File
@@ -814,12 +814,12 @@ class treeModel extends model
public function getStoryModule($moduleID)
{
$module = $this->dao->select('id,type,parent')->from(TABLE_MODULE)->where('id')->eq($moduleID)->fetch();
while($module->id and $module->type != 'story')
if($module->id and $module->type != 'story')
{
$module = $this->dao->select('id,type,parent')->from(TABLE_MODULE)->where('id')->eq($module->parent)->fetch();
}
return $module->id;
return empty($module) ? 0 : $module->id;
}
/**
@@ -973,6 +973,7 @@ class treeModel extends model
if(!isset($modules[$parentModuleID]) and $parentModuleID != 0) continue;
if($parentModuleID == 0)
{
$parentModule = new stdclass();
$parentModule->grade = 0;
$parentModule->path = ',';
}
+2 -4
View File
@@ -9,7 +9,6 @@
* @version $Id: login.html.php 5084 2013-07-10 01:31:38Z wyd621@gmail.com $
*/
include '../../common/view/header.lite.html.php';
// include '../../common/view/colorbox.html.php';
?>
<div id="container">
@@ -44,11 +43,10 @@ include '../../common/view/header.lite.html.php';
</tr>
<tr>
<td class="attr"></td>
<td><?php echo html::checkBox('keepLogin', $lang->user->keepLogin, $keepLogin);?></td>
<td id="keeplogin"><?php echo html::checkBox('keepLogin', $lang->user->keepLogin, $keepLogin);?></td>
</tr>
<tr>
<td class="attr"></td>
<td>
<td colspan='2' align='center'>
<?php
echo html::submitButton($lang->login);
if($app->company->guest) echo html::linkButton($lang->user->asGuest, $this->createLink($config->default->module));
+2 -2
View File
@@ -260,7 +260,7 @@ class webappModel extends model
if(isset($data->url))
{
$data->url = trim($data->url);
if(strpos($data->url, 'http://') !== 0) $data->url = 'http://' . $data->url;
if(!preg_match('/^https?:\/\//', $data->url)) $data->url = 'http://' . $data->url;
}
if($data->size == 'custom') $data->size = (float)$this->post->customWidth . 'x' . (float)$this->post->customHeight;
@@ -301,7 +301,7 @@ class webappModel extends model
->remove('files,customWidth,customHeight')->get();
$data->url = trim($data->url);
if(strpos($data->url, 'http://') !== 0) $data->url = 'http://' . $data->url;
if(!preg_match('/^https?:\/\//', $data->url)) $data->url = 'http://' . $data->url;
if($data->size == 'custom') $data->size = (float)$this->post->customWidth . 'x' . (float)$this->post->customHeight;
$this->dao->insert(TABLE_WEBAPP)->data($data)
+1 -1
View File
@@ -35,7 +35,7 @@ if(!isset($config->installed) or !$config->installed) die(header('location: inst
/* Detect mobile. */
$mobile = $app->loadClass('mobile');
if($mobile->isMobile() or $mobile->isTablet())
if(!$mobile->isTablet())
{
$config->default->view = 'mhtml';
helper::setViewType();
+15 -9
View File
@@ -22,9 +22,8 @@ a {text-decoration:none;}
/*-----------------------ICONS-----------------------------------*/
/* icons use fontawesome */
.icon{filter: alpha(opacity=50);-moz-opacity:0.5;opacity: 0.5;}
.link-icon{color: #036;display: inline-block;filter: alpha(opacity=85);-moz-opacity:0.85;opacity: 0.85;}
.link-icon:hover{color:#000;text-shadow:1px 1px 3px rgba(0,0,0,0.25);filter: alpha(opacity=100);-moz-opacity:1;opacity: 1;}
.link-icon{color: #036;display: inline-block;}
.link-icon:hover{color:#000;text-shadow:1px 1px 3px rgba(0,0,0,0.25);}
i[class^="icon-"],i[class*=" icon-"],.link-icon i[class^="icon-"],.link-icon i[class*=" icon-"]{display: inline-block;min-width: 13px;min-height: 13px;}
.outer td i[class^="icon-"],.outer td i[class*=" icon-"]{font-size: 18px;margin-right: 4px;}
.outer td i[class^="icon-"].icon-sm,.outer td i[class*=" icon-"].icon-sm{font-size: 0.9em;}
@@ -282,9 +281,8 @@ caption {border:1px solid #e4e4e4; background:#edf3fe; margin:0; padding:6px 2p
.table-5 {width:600px;margin-bottom:10px}
.table-6 {width:800px;margin-bottom:10px}
/*.table-1 tr, .table-2 tr, .table-3 tr, .table-4 tr, .table-5 tr {padding:4px 3px}*/
.table-1 td, .table-2 td, .table-3 td, .table-4 td, .table-5 td {padding:8px}
.table-1 th, .table-2 th, .table-3 th, .table-4 th, .table-5 th {padding:8px}
.table-1 td, .table-2 td, .table-3 td, .table-4 td, .table-5 td {padding:8px 4px}
.table-1 th, .table-2 th, .table-3 th, .table-4 th, .table-5 th {padding:8px 4px}
.side table td,.side table th{padding: 2px 4px;}
.colhead td {text-align:center; background-color:#efefef;}
@@ -510,9 +508,17 @@ table.data-table td:last-child{padding-right: 20px;}
#querybox{margin: -20px -20px 20px -20px;background-color: #ffc;}
#querybox table{border: none;border-bottom: 1px solid #e5e5e5;}
#querybox td{vertical-align: middle;}
@media(max-width:1628px){#querybox input[type="text"],#querybox select{max-width: 115px;} #querybox .button-c,#querybox .button-s{width: auto;min-width: 80px;}}
@media(max-width:1500px){#querybox input[type="text"],#querybox select{max-width: 85px;} #querybox .button-c,#querybox .button-s{width: auto;min-width: 65px;}}
@media(max-width:1280px){#querybox input[type="text"],#querybox select{max-width: 70px;} #querybox .button-c,#querybox .button-s{width: auto;min-width: 50px;}}
#querybox select,#querybox input[type="text"]{min-width: 95px;max-width: 140px;}
@media(max-width:1610px){
#querybox input[type="text"],#querybox select[name='value3'],#querybox select[name='value5']{min-width: 80px;width: 80px;}
#querybox .button-c,#querybox .button-s{width: auto;min-width: 42px;}
#querybox select[name='operator6'],#querybox select[name='operator5'], #querybox select[name='operator4'],#querybox select[name='operator3'], #querybox select[name='operator2'],#querybox select[name='operator1'], #querybox select[name='groupAndOr'],#querybox select[name='andOr1'],#querybox select[name='andOr2'],#querybox select[name='andOr3'],#querybox select[name='andOr4']{width: 65px;min-width: 65px;}
#querybox select[name='queryID'], #querybox select[name='field4'],#querybox select[name='field3'],
#querybox select[name='field2'],#querybox select[name='field1']{width: 95px;}
}
@media(max-width:1220px){
#querybox input[type="text"],#querybox select[name='value3'],#querybox select[name='value5']{min-width: 70px;width: 70px;}
}
/* Tree slider. */
.treeSlider{position:absolute;background-color: #bbb;background-repeat: repeat-x;border: 1px solid #bbb;border-left:none;cursor: pointer;width: 8px;height: 50px;left: 20px;border-radius:0px 10px 10px 0px}