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

This commit is contained in:
chenfeiCF
2018-05-29 15:02:30 +08:00
132 changed files with 704 additions and 1394 deletions
+1 -1
View File
@@ -39,7 +39,7 @@ class pager extends basePager
if(strtolower($key) == 'recperpage') $params[$key] = '{recPerPage}';
if(strtolower($key) == 'pageid') $params[$key] = '{page}';
}
echo "<ul class='pager' data-ride='pager' data-rec-total='{$this->recTotal}' data-rec-per-page='{$this->recPerPage}' data-page='{$this->pageID}' data-link-creator='" . helper::createLink($this->moduleName, $this->methodName, $params) . "'></ul>";
echo "<ul class='pager' data-page-cookie='{$this->pageCookie}' data-ride='pager' data-rec-total='{$this->recTotal}' data-rec-per-page='{$this->recPerPage}' data-page='{$this->pageID}' data-link-creator='" . helper::createLink($this->moduleName, $this->methodName, $params) . "'></ul>";
}
else
{
+6
View File
@@ -23,3 +23,9 @@ $config->action->objectNameFields['entry'] = 'name';
$config->action->objectNameFields['webhook'] = 'name';
$config->action->commonImgSize = 870;
$config->action->majorList = array();
$config->action->majorList['task'] = array('assigned', 'finished', 'activated');
$config->action->majorList['bug'] = array('assigned', 'resolved');
$config->action->majorList['release'] = array('opened');
$config->action->majorList['build'] = array('opened');
+2
View File
@@ -782,6 +782,8 @@ class actionModel extends model
{
$action->objectLink = '';
}
$action->major = (isset($this->config->action->majorList[$action->objectType]) && in_array($action->action, $this->config->action->majorList[$action->objectType])) ? 1 : 0;
}
return $actions;
}
+3 -3
View File
@@ -21,18 +21,18 @@
<div class='main-table pd-0'>
<table class='table table-condensed table-hover table-striped table-fixed'>
<thead>
<th class='w-id'><?php echo $lang->idAB;?></th>
<th class='c-id-sm text-center'><?php echo $lang->idAB;?></th>
<th class='w-150px'><?php echo $lang->user->realname;?></th>
<th><?php echo $lang->user->account;?></th>
<th class='w-150px'><?php echo $lang->user->phone;?></th>
<th class='w-150px'><?php echo $lang->user->mobile;?></th>
<th class='w-150px'><?php echo $lang->admin->safe->reason;?></th>
<th class='w-50px'><?php echo $lang->actions;?></th>
<th class='c-actions-1'><?php echo $lang->actions;?></th>
</thead>
<tbody>
<?php foreach($weakUsers as $user):?>
<tr>
<td class='text-right'><?php echo $user->id?></td>
<td class='text-center'><?php echo $user->id?></td>
<td class='text-left'><?php echo $user->realname?></td>
<td class='text-left'><?php echo $user->account?></td>
<td><?php echo $user->phone?></td>
+1
View File
@@ -1,3 +1,4 @@
#blockAdmin {min-height: 280px;}
#blockAdmin .form-actions {visibility: hidden;}
#blockAdmin.form-inited .form-actions {visibility: visible;}
.form-group .btn + .btn{margin-left: 10px;}
+1 -1
View File
@@ -33,7 +33,7 @@ include '../../common/view/chosen.html.php';
<?php endif;?>
<div id="blocksList"><?php if(!empty($blocks)) echo $blocks;?></div>
<div id="blockParams"></div>
<div class="form-group form-actions">
<div class="form-group">
<div class="col-sm-7 col-sm-offset-3">
<button type="submit" class="btn btn-wide btn-primary"><?php echo $lang->save;?></button>
<button type="cancel" class="btn btn-wide" data-dismiss="modal"><?php echo $lang->cancel;?></button>
+1 -1
View File
@@ -6,7 +6,7 @@
{
$user = isset($users[$action->actor]) ? $users[$action->actor] : $action->actor;
if($action->action == 'login' or $action->action == 'logout' or empty($action->objectLink)) $action->objectName = $action->objectLabel = '';
$class = $action->actor == $this->app->user->account ? "class='active'" : '';
$class = $action->major ? "class='active'" : '';
echo "<li $class><div>";
printf($lang->block->dynamicInfo, $action->date, $user, $action->actionLabel, $action->objectLabel, $action->objectLink, $action->objectName);
echo "</div></li>";
+1 -1
View File
@@ -11,7 +11,7 @@
.block-flowchart .table > thead > tr > th:first-child {width: auto;padding: 10px 10px 15px 10px;background: none;}
.block-flowchart .table > thead > tr > th:first-child + th > div {background: none;}
.block-flowchart .table > thead > tr > th,
.block-flowchart .table > thead > tr > th > div {padding: 0;background: url('data:image/gif;base64,R0lGODlhLQAPAJEAAAAAAP///+7u7v///yH5BAEAAAMALAAAAAAtAA8AAAJPlIY5psn92jrSUGVrRFlfvHHh9JGS6aVQ2K2l+LYOO6KuCpby/No8DjvtgrfiD+gj5ozLpvMIfSanu2FyiKX1qqOsrsaNdbXCcfm8Ok1OBQA7') no-repeat;background-position: right -22px top 15px;}
.block-flowchart .table > thead > tr > th > div {padding: 0;background: url('data:image/gif;base64,R0lGODlhLQAPAJEAAAAAAP///+7u7v///yH5BAEAAAMALAAAAAAtAA8AAAJEnH8imMvKopzKofrg3FRfb2Dc+FmNOYgkqZ4ZunZwm4KxHNH0nds1uuOFfDqf8NcDGoW7IuzYtAWZROmSF1U+oc+qsAAAOw==') no-repeat;background-position: right -22px top 15px;}
.block-flowchart .table > thead > tr > th > div {padding: 10px 10px 15px 10px;background-position: left -23px top 15px;}
.block-flowchart .table > thead > tr > th:last-child {background: none;}
.block-flowchart .table > tbody > tr > td {color: #3c4353;}
+1
View File
@@ -0,0 +1 @@
#batchCreateForm{overflow-x:auto;}
+2 -1
View File
@@ -1,3 +1,4 @@
.chosen-container[id^="plan"] .chosen-drop {min-width: 300px; border-top: 1px solid #ddd!important}
.duplicate-input {border-left-width: 0; border-radius: 0 2px 2px 0; padding-left: 9px}
.duplicate-input:focus {border-left-width: 1px; padding-left: 8px}
.duplicate-input:focus {border-left-width: 1px; padding-left: 8px}
#batchEditForm{overflow-x:auto;}
+2 -1
View File
@@ -2,6 +2,7 @@ $(function()
{
$(".chosenBox select").chosen(defaultChosenOptions);
removeDitto();//Remove 'ditto' in first row.
if($('#batchCreateForm table thead tr th.c-title').width() < 150) $('#batchCreateForm table thead tr th.c-title').width(150);
})
/**
@@ -159,4 +160,4 @@ $(document).keydown(function(event)
{
inputFocusJump('down');
}
});
});
+15 -13
View File
@@ -6,15 +6,17 @@
*/
function loadAllUsers()
{
link = createLink('bug', 'ajaxLoadAllUsers', 'selectedUser=' + $('#assignedTo').val());
$('#assignedToBox').load(link, function()
var link = createLink('bug', 'ajaxLoadAllUsers', 'selectedUser=' + $('#assignedTo').val());
$.get(link, function(data)
{
moduleID = $('#module').val();
productID = $('#product').val();
setAssignedTo(moduleID, productID);
$('#assignedTo').chosen(defaultChosenOptions);
if (data)
{
var moduleID = $('#module').val();
var productID = $('#product').val();
setAssignedTo(moduleID, productID);
$('#assignedTo').empty().append($(data).find('option')).trigger('chosen:updated').trigger('chosen:activate');
}
});
}
/**
@@ -26,7 +28,7 @@ function loadAllUsers()
*/
function loadProjectTeamMembers(productID)
{
link = createLink('bug', 'ajaxLoadProjectTeamMembers', 'productID=' + productID + '&selectedUser=' + $('#assignedTo').val());
var link = createLink('bug', 'ajaxLoadProjectTeamMembers', 'productID=' + productID + '&selectedUser=' + $('#assignedTo').val());
$('#assignedToBox').load(link, function(){$('#assignedTo').chosen(defaultChosenOptions);});
}
@@ -38,8 +40,8 @@ function loadProjectTeamMembers(productID)
*/
function loadModuleRelated()
{
moduleID = $('#module').val();
productID = $('#product').val();
var moduleID = $('#module').val();
var productID = $('#product').val();
setAssignedTo(moduleID, productID);
setStories(moduleID, productID);
}
@@ -54,7 +56,7 @@ function setAssignedTo(moduleID, productID)
{
if(typeof(productID) == 'undefined') productID = $('#product').val();
if(typeof(moduleID) == 'undefined') moduleID = $('#module').val();
link = createLink('bug', 'ajaxGetModuleOwner', 'moduleID=' + moduleID + '&productID=' + productID);
var link = createLink('bug', 'ajaxGetModuleOwner', 'moduleID=' + moduleID + '&productID=' + productID);
$.get(link, function(owner)
{
$('#assignedTo').val(owner);
@@ -67,7 +69,7 @@ function setTemplate(templateID)
{
$('#tplBox .list-group-item.active').removeClass('active');
$('#tplTitleBox' + templateID).closest('.list-group-item').addClass('active');
steps = $('#template' + templateID).html();
var steps = $('#template' + templateID).html();
editor['#'].html(steps);
}
@@ -122,7 +124,7 @@ $(function()
var adjustBugTypeGroup = function()
{
var $group = $('#bugTypeInputGroup');
var width = ($group.parent().width() - 10), addonWidth = 0;
var width = ($group.parent().width()), addonWidth = 0;
var $controls = $group.find('.chosen-single');
$group.children('.input-group-addon').each(function()
{
-4
View File
@@ -1,4 +0,0 @@
function setModal4List(colorboxClass, replaceID)
{
if(config.onlybody != 'yes') $('.iframe').modalTrigger({width:900, type:'iframe', afterHide:function(){location.href=location.href;}})
}
+1 -1
View File
@@ -139,7 +139,7 @@ $lang->bug->lblAssignedTo = 'Assignee';
$lang->bug->lblMailto = 'Mail To';
$lang->bug->lblLastEdited = 'Last Edited';
$lang->bug->lblResolved = 'Resolved By';
$lang->bug->allUsers = 'All User';
$lang->bug->allUsers = 'Load All User';
$lang->bug->allBuilds = 'All';
$lang->bug->createBuild = 'New';
+1 -1
View File
@@ -139,7 +139,7 @@ $lang->bug->lblAssignedTo = '当前指派';
$lang->bug->lblMailto = '抄送给';
$lang->bug->lblLastEdited = '最后修改';
$lang->bug->lblResolved = '由谁解决';
$lang->bug->allUsers = '所有用户';
$lang->bug->allUsers = '加载所有用户';
$lang->bug->allBuilds = '所有';
$lang->bug->createBuild = '新建';
+5 -5
View File
@@ -49,16 +49,16 @@
<th class='w-120px<?php echo zget($visibleFields, $product->type, ' hidden')?>'> <?php echo $lang->product->branch;?></th>
<th class='w-120px required'> <?php echo $lang->bug->module;?></th>
<th class='w-130px<?php echo zget($visibleFields, 'project', ' hidden') . zget($requiredFields, 'project', '', ' required');?>'><?php echo $lang->bug->project;?></th>
<th class='required'><?php echo $lang->bug->openedBuild;?></th>
<th class='required'><?php echo $lang->bug->title;?></th>
<th class='<?php echo zget($visibleFields, 'deadline', 'hidden') . zget($requiredFields, 'deadline', '', ' required');?>'><?php echo $lang->bug->deadline;?></th>
<th class='<?php echo zget($visibleFields, 'steps', 'hidden') . zget($requiredFields, 'steps', '', ' required');?>'><?php echo $lang->bug->steps;?></th>
<th class='w-100px required'><?php echo $lang->bug->openedBuild;?></th>
<th class='c-title required'><?php echo $lang->bug->title;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'deadline', 'hidden') . zget($requiredFields, 'deadline', '', ' required');?>'><?php echo $lang->bug->deadline;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'steps', 'hidden') . zget($requiredFields, 'steps', '', ' required');?>'><?php echo $lang->bug->steps;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'type', ' hidden') . zget($requiredFields, 'type', '', ' required');?>'><?php echo $lang->typeAB;?></th>
<th class='w-80px<?php echo zget($visibleFields, 'pri', ' hidden') . zget($requiredFields, 'pri', '', ' required');?>'><?php echo $lang->bug->pri;?></th>
<th class='w-90px<?php echo zget($visibleFields, 'severity', ' hidden') . zget($requiredFields, 'severity', '', ' required');?>'><?php echo $lang->bug->severity;?></th>
<th class='w-120px<?php echo zget($visibleFields, 'os', ' hidden') . zget($requiredFields, 'os', '', ' required');?>'><?php echo $lang->bug->os;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'browser', ' hidden') . zget($requiredFields, 'browser', '', ' required');?>'><?php echo $lang->bug->browser;?></th>
<th class='<?php echo zget($visibleFields, 'keywords', ' hidden') . zget($requiredFields, 'keywords', '', ' required');?>'><?php echo $lang->bug->keywords;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'keywords', ' hidden') . zget($requiredFields, 'keywords', '', ' required');?>'><?php echo $lang->bug->keywords;?></th>
</tr>
</thead>
<tbody>
+2 -2
View File
@@ -68,7 +68,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
</ul>
</li>
</ul>
<div id='querybox' class='<?php if($browseType =='bysearch') echo 'show';?>'></div>
<div id='queryBox' class='<?php if($browseType =='bysearch') echo 'show';?>'></div>
</div>
<?php else:?>
<div id="sidebarHeader">
@@ -413,7 +413,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
<script>
$('#module' + moduleID).closest('li').addClass('active');
<?php if($browseType == 'bysearch'):?>
if($('#query li.active').size() == 0) ajaxGetSearchForm();
if($('#query li.active').size() == 0) $.toggleQueryBox(true);
<?php endif;?>
<?php $this->app->loadConfig('qa', '', false);?>
<?php if(isset($config->qa->homepage) and $config->qa->homepage != 'browse' and $config->global->flow == 'full'):?>
+5 -5
View File
@@ -82,10 +82,10 @@ js::set('confirmDeleteTemplate', $lang->bug->confirmDeleteTemplate);
<tr>
<th><nobr><?php echo $lang->bug->lblAssignedTo;?></nobr></th>
<td>
<div class='input-group'>
<div class='input-group' id='assignedToBox'><?php echo html::select('assignedTo', $projectMembers, $assignedTo, "class='form-control chosen'");?></div>
<span class='input-group-btn'><?php echo html::commonButton($lang->bug->allUsers, "class='btn' onclick='loadAllUsers()' data-toggle='tooltip'");?></span>
</div>
<?php echo html::select('assignedTo', $projectMembers, $assignedTo, "class='form-control chosen'");?>
</td>
<td>
<a href='javascript:loadAllUsers();' class='btn btn-link'><?php echo $lang->bug->allUsers;?></a>
</td>
</tr>
<?php $showDeadline = strpos(",$showFields,", ',deadline,') !== false;?>
@@ -252,7 +252,7 @@ js::set('confirmDeleteTemplate', $lang->bug->confirmDeleteTemplate);
</tbody>
<tfoot>
<tr>
<td colspan="3" class="text-center">
<td colspan="3" class="text-center form-actions">
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
<?php echo html::backButton('', '', 'btn btn-wide');?>
<?php echo html::hidden('case', (int)$caseID) . html::hidden('caseVersion', (int)$version);?>
-3
View File
@@ -70,7 +70,4 @@
</form>
<?php endif;?>
</div>
<script>
$(function(){ajaxGetSearchForm();});
</script>
<?php include '../../common/view/footer.html.php';?>
-7
View File
@@ -1,10 +1,3 @@
.tabs {position:relative;}
.tabs .nav-tabs>li{margin-bottom:0px;}
.tabs .tab-content {padding: 0; border: none;}
.tabs .tab-content .tab-pane .action {position: absolute; right: 0; top: -1px;}
.tabs .tab-content .tab-pane #querybox{margin:0px; border-left:1px solid #ddd; border-right:1px solid #ddd;}
.tabs .tab-content .tab-pane #querybox form {padding-left:0px;}
#unlinkStoryList, #unlinkBugList{border:1px solid #ddd;}
.table-footer .text {line-height: 30px;}
-5
View File
@@ -1,8 +1,3 @@
$(document).ready(function()
{
$("a.preview").modalTrigger({width:1000, type:'iframe'});
})
/**
* Load branches
*
+1 -1
View File
@@ -44,7 +44,7 @@
<td><?php echo html::input('name', '', "class='form-control' autocomplete='off' required");?></td>
<td class='text-muted'>
<?php if($lastBuild):?>
<div class='help-block'> &nbsp; <?php echo $lang->build->last . ': <strong>' . $lastBuild->name . '</strong>';?></div>
<div class='help-block'> &nbsp; <?php echo $lang->build->last . ': <a class="code label label-badge label-light" href="javascript:$(\'#name\').val(\'' . $lastBuild->name . '\').focus();">' . $lastBuild->name . '</a>';?></div>
<?php endif;?>
</td>
</tr>
+2 -2
View File
@@ -10,7 +10,7 @@
* @link http://www.zentao.net
*/
?>
<div id='querybox' class='show'></div>
<div id='queryBox' class='show'></div>
<div id='unlinkBugList'>
<form class='main-table table-bug' data-ride='table' method='post' id='unlinkedBugsForm' target='hiddenwin' action='<?php echo $this->createLink('build', 'linkBug', "buildID={$build->id}&browseType=$browseType&param=$param");?>'>
<div class='table-header'>
@@ -72,6 +72,6 @@
<script>
$(function()
{
ajaxGetSearchForm('#bugs .linkBox #querybox');
// ajaxGetSearchForm('#bugs .linkBox #querybox');
})
</script>
+2 -2
View File
@@ -10,7 +10,7 @@
* @link http://www.zentao.net
*/
?>
<div id='querybox' class='show'></div>
<div id='queryBox' class='show'></div>
<div id='unlinkStoryList'>
<form class='main-table table-story' data-ride='table' method='post' id='unlinkedStoriesForm' target='hiddenwin' action='<?php echo $this->createLink('build', 'linkStory', "buildID={$build->id}&browseType=$browseType&param=$param");?>'>
<div class='table-header'>
@@ -76,6 +76,6 @@
<script>
$(function()
{
ajaxGetSearchForm('#stories .linkBox #querybox');
// ajaxGetSearchForm('#stories .linkBox #querybox');
})
</script>
+7 -7
View File
@@ -72,7 +72,7 @@ tbody tr td:first-child input{display:none;}
</div>
</div>
<?php else:?>
<div class='tabs'>
<div class='tabs' id='tabsNav'>
<?php $countStories = count($stories); $countBugs = count($bugs); $countNewBugs = count($generatedBugs);?>
<ul class='nav nav-tabs'>
<li <?php if($type == 'story') echo "class='active'"?>><a href='#stories' data-toggle='tab'><?php echo html::icon($lang->icons['story'], 'green') . ' ' . $lang->build->stories;?></a></li>
@@ -83,7 +83,7 @@ tbody tr td:first-child input{display:none;}
<div class='tab-content'>
<div class='tab-pane <?php if($type == 'story') echo 'active'?>' id='stories'>
<?php if(common::hasPriv('build', 'linkStory')):?>
<div class='action'><?php echo html::a("javascript:showLink($build->id, \"story\")", '<i class="icon-link"></i> ' . $lang->build->linkStory, '', "class='btn btn-sm btn-primary'");?></div>
<div class='actions'><?php echo html::a("javascript:showLink($build->id, \"story\")", '<i class="icon-link"></i> ' . $lang->build->linkStory, '', "class='btn btn-primary'");?></div>
<div class='linkBox'></div>
<?php endif;?>
<form class='main-table table-story' data-ride='table' method='post' target='hiddenwin' action='<?php echo inlink('batchUnlinkStory', "buildID={$build->id}")?>' id='linkedStoriesForm'>
@@ -106,7 +106,7 @@ tbody tr td:first-child input{display:none;}
<th class='w-70px'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
<th class='w-70px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th class='w-100px'> <?php common::printOrderLink('stage', $orderBy, $vars, $lang->story->stageAB);?></th>
<th class='w-60px'> <?php echo $lang->actions?></th>
<th class='c-actions-1'> <?php echo $lang->actions?></th>
</tr>
</thead>
<tbody class='text-center'>
@@ -121,7 +121,7 @@ tbody tr td:first-child input{display:none;}
<?php endif;?>
</td>
<td><span class='label-pri label-pri-<?php echo $story->pri;?>' title='<?php echo zget($lang->story->priList, $story->pri, $story->pri);?>'><?php echo zget($lang->story->priList, $story->pri, $story->pri);?></span></td>
<td class='text-left nobr' title='<?php echo $story->title?>'><?php echo html::a($storyLink,$story->title, '', "class='preview'");?></td>
<td class='text-left nobr' title='<?php echo $story->title?>'><?php echo html::a($storyLink,$story->title, '', "class='iframe' data-width='1000'");?></td>
<td><?php echo $users[$story->openedBy];?></td>
<td><?php echo $story->estimate;?></td>
<td>
@@ -159,7 +159,7 @@ tbody tr td:first-child input{display:none;}
</div>
<div class='tab-pane <?php if($type == 'bug') echo 'active'?>' id='bugs'>
<?php if(common::hasPriv('build', 'linkBug')):?>
<div class='action'><?php echo html::a("javascript:showLink($build->id, \"bug\")", '<i class="icon-bug"></i> ' . $lang->build->linkBug, '', "class='btn btn-sm btn-primary'");?></div>
<div class='actions'><?php echo html::a("javascript:showLink($build->id, \"bug\")", '<i class="icon-bug"></i> ' . $lang->build->linkBug, '', "class='btn btn-primary'");?></div>
<div class='linkBox'></div>
<?php endif;?>
<form class='main-table table-bug' data-ride='table' method='post' target='hiddenwin' action="<?php echo inLink('batchUnlinkBug', "build=$build->id");?>" id='linkedBugsForm'>
@@ -195,7 +195,7 @@ tbody tr td:first-child input{display:none;}
<?php else:?>
<?php printf('%03d', $bug->id);?>
<?php endif;?>
<td class='text-left nobr' title='<?php echo $bug->title?>'><?php echo html::a($bugLink, $bug->title, '', "class='preview'");?></td>
<td class='text-left nobr' title='<?php echo $bug->title?>'><?php echo html::a($bugLink, $bug->title, '', "class='iframe' data-width='1000'");?></td>
<td>
<span class='status-<?php echo $bug->status?>'>
<span class='label label-dot'></span>
@@ -255,7 +255,7 @@ tbody tr td:first-child input{display:none;}
<td>
<span class='label-severity' data-severity='<?php echo $bug->severity;?>' title='<?php echo zget($lang->bug->severityList, $bug->severity, $bug->severity);?>'></span>
</td>
<td class='text-left nobr' title='<?php echo $bug->title?>'><?php echo html::a($bugLink, $bug->title, '', "class='preview'");?></td>
<td class='text-left nobr' title='<?php echo $bug->title?>'><?php echo html::a($bugLink, $bug->title, '', "class='iframe' data-width='1000'");?></td>
<td>
<span class='status-<?php echo $bug->status?>'>
<span class='label label-dot'></span>
+1
View File
@@ -57,6 +57,7 @@ $lang->required = 'Required';
$lang->noData = 'No record';
$lang->actions = 'Actions';
$lang->restore = 'Restore';
$lang->comment = 'Note';
$lang->history = 'History';
$lang->attatch = 'Attachment';
+1
View File
@@ -57,6 +57,7 @@ $lang->required = '必填';
$lang->noData = '暂无';
$lang->actions = '操作';
$lang->restore = '恢复默认';
$lang->comment = '备注';
$lang->history = '历史记录';
$lang->attatch = '附件';
+1 -1
View File
@@ -1244,7 +1244,7 @@ EOD;
global $app, $lang;
/* Check is the super admin or not. */
if(!empty($app->user->admin)) return true;
if(!empty($app->user->admin) || strpos($app->company->admins, ",{$app->user->account},") !== false) return true;
/* If not super admin, check the rights. */
$rights = $app->user->rights['rights'];
$acls = $app->user->rights['acls'];
+2 -1
View File
@@ -15,7 +15,7 @@
#formSetting {min-width: 300px;}
#formSettingForm .checkboxes {padding: 10px 3px;}
#formSettingForm .checkbox-primary {width: 50%; float: left; margin: 3px 0;}
#formSetting .btn[type="submit"] {margin-right: 8px;}
#formSetting .btn {margin-right: 8px;}
</style>
<button type="button" title="<?php echo $lang->customField;?>" class="btn btn-link" data-toggle="dropdown"><i class="icon icon-cog"></i></button>
<div class="dropdown-menu pull-right" id="formSetting">
@@ -27,6 +27,7 @@
<div>
<?php echo html::submitButton($lang->save);?>
<?php echo html::commonButton($lang->cancel, '', "btn close-dropdown");?>
<?php echo html::a($customLink, $lang->restore, 'hiddenwin', "class='btn'");?>
</div>
</form>
</div>
+1 -1
View File
@@ -1,5 +1,5 @@
</div><?php /* end '.outer' in 'header.html.php'. */ ?>
<script>setTreeBox()</script>
<script>$.initSidebar()</script>
<?php if($extView = $this->getExtViewFile(__FILE__)){include $extView; return helper::cd();}?>
<div id='divider'></div>
+2 -2
View File
@@ -6,7 +6,7 @@
<h4 class="modal-title"><?php echo $lang->importConfirm;?></h4>
</div>
<div class="modal-body">
<?php echo html::hidden('insert', '');?>
<?php echo html::hidden('insert', 0);?>
<div class='alert with-icon'>
<i class="icon icon-exclamation-sign"></i>
<div class="content">
@@ -25,7 +25,7 @@
<script>
function submitForm(type)
{
$('#insert').val(type == 'insert' ? 1 : 0);
$('.modal-body #insert').val(type == 'insert' ? 1 : 0);
$("button[data-target='#importNoticeModal']").closest('form').submit();
}
</script>
+7 -11
View File
@@ -65,8 +65,8 @@ js::set('confirmDelete', $lang->user->confirmDelete);
<th><?php common::printOrderLink('phone', $orderBy, $vars, $lang->user->phone);?></th>
<th><?php common::printOrderLink('qq', $orderBy, $vars, $lang->user->qq);?></th>
<th class="c-date"><?php common::printOrderLink('last', $orderBy, $vars, $lang->user->last);?></th>
<th class="c-num"><?php common::printOrderLink('visits', $orderBy, $vars, $lang->user->visits);?></th>
<th class='c-actions-2'><?php echo $lang->actions;?></th>
<th class="w-90px"><?php common::printOrderLink('visits', $orderBy, $vars, $lang->user->visits);?></th>
<th class='c-actions'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
@@ -89,16 +89,12 @@ js::set('confirmDelete', $lang->user->confirmDelete);
<td class='c-date'><?php if($user->last) echo date('Y-m-d', $user->last);?></td>
<td class='c-num text-center'><?php echo $user->visits;?></td>
<td class='c-actions'>
<div class='more'>
<?php
if(true or $user->ranzhi) common::printIcon('user', 'unbind', "userID=$user->account", '', 'list', 'unlink', "hiddenwin");
if(true or (strtotime(date('Y-m-d H:i:s')) - strtotime($user->locked)) < $this->config->user->lockMinutes * 60)
{
common::printIcon('user', 'unlock', "userID=$user->account", '', 'list', 'unlock', "hiddenwin");
}
?>
</div>
<?php
if(true or $user->ranzhi) common::printIcon('user', 'unbind', "userID=$user->account", '', 'list', 'unlink', "hiddenwin");
if(true or (strtotime(date('Y-m-d H:i:s')) - strtotime($user->locked)) < $this->config->user->lockMinutes * 60)
{
common::printIcon('user', 'unlock', "userID=$user->account", '', 'list', 'unlock', "hiddenwin");
}
common::printIcon('user', 'edit', "userID=$user->id&from=company", '', 'list');
if(strpos($this->app->company->admins, ",{$user->account},") === false and common::hasPriv('user', 'delete'))
{
+1 -1
View File
@@ -52,7 +52,7 @@
<?php if($direction == 'next') $actions = array_reverse($actions);?>
<?php foreach($actions as $i => $action):?>
<?php if(empty($firstAction)) $firstAction = $action;?>
<li <?php if($action->actor == $this->app->user->account) echo "class='active'";?>>
<li <?php if($action->major) echo "class='active'";?>>
<div>
<span class="timeline-tag"><?php echo $action->time?></span>
<span class="timeline-text">
+10 -3
View File
@@ -327,9 +327,16 @@ class custom extends control
public function ajaxSaveCustomFields($module, $section, $key)
{
$account = $this->app->user->account;
$fields = $this->post->fields;
if(is_array($fields)) $fields = join(',', $fields);
$this->loadModel('setting')->setItem("$account.$module.$section.$key", $fields);
if($_POST)
{
$fields = $this->post->fields;
if(is_array($fields)) $fields = join(',', $fields);
$this->loadModel('setting')->setItem("$account.$module.$section.$key", $fields);
}
else
{
$this->loadModel('setting')->deleteItems("owner=$account&module=$module&section=$section&key=$key");
}
die(js::reload('parent'));
}
+61 -53
View File
@@ -31,7 +31,7 @@ class doc extends control
/**
* Go to browse page.
*
*
* @access public
* @return void
*/
@@ -89,8 +89,8 @@ class doc extends control
if($lib->product or $lib->project)
{
$type = $lib->product ? 'product' : 'project';
$productID = $lib->product;
$projectID = $lib->project;
$productID = $lib->product;
$projectID = $lib->project;
}
}
@@ -145,7 +145,15 @@ class doc extends control
if($module) $title = $module->name;
if($libID) $title = $this->libs[$libID];
if(in_array($browseType, array_keys($this->lang->doc->fastMenuList))) $title = $this->lang->doc->fastMenuList[$browseType];
if($browseType == 'fastsearch') $title = '"' . $this->post->searchDoc . '" ' . $this->lang->doc->searchResult;
if($browseType == 'fastsearch')
{
if($this->post->searchDoc) $this->session->set('searchDoc', $this->post->searchDoc);
$title = '"' . $this->session->searchDoc . '" ' . $this->lang->doc->searchResult;
}
else
{
$this->session->set('searchDoc', '');
}
$this->view->title = $title;
$this->view->libID = $libID;
@@ -165,9 +173,9 @@ class doc extends control
/**
* Create a library.
*
* @param string $type
* @param int $objectID
*
* @param string $type
* @param int $objectID
* @access public
* @return void
*/
@@ -204,8 +212,8 @@ class doc extends control
/**
* Edit a library.
*
* @param int $libID
*
* @param int $libID
* @access public
* @return void
*/
@@ -213,7 +221,7 @@ class doc extends control
{
if(!empty($_POST))
{
$changes = $this->doc->updateLib($libID);
$changes = $this->doc->updateLib($libID);
if(dao::isError()) die(js::error(dao::getError()));
if($changes)
{
@@ -230,14 +238,14 @@ class doc extends control
$this->view->groups = $this->loadModel('group')->getPairs();
$this->view->users = $this->user->getPairs('noletter', $lib->users);
$this->view->libID = $libID;
die($this->display());
}
/**
* Delete a library.
*
* @param int $libID
*
* @param int $libID
* @param string $confirm yes|no
* @access public
* @return void
@@ -261,12 +269,12 @@ class doc extends control
/**
* Create a doc.
*
* @param int|string $libID
* @param int $moduleID
* @param int $productID
* @param int $projectID
* @param string $from
*
* @param int|string $libID
* @param int $moduleID
* @param int $productID
* @param int $projectID
* @param string $from
* @access public
* @return void
*/
@@ -333,8 +341,8 @@ class doc extends control
/**
* Edit a doc.
*
* @param int $docID
*
* @param int $docID
* @access public
* @return void
*/
@@ -427,8 +435,8 @@ class doc extends control
/**
* Delete a doc.
*
* @param int $docID
*
* @param int $docID
* @param string $confirm yes|no
* @access public
* @return void
@@ -463,10 +471,10 @@ class doc extends control
}
/**
* Collect doc, doclib or module of doclib.
*
* @param int $objectID
* @param int $objectType
* Collect doc, doclib or module of doclib.
*
* @param int $objectID
* @param int $objectType
* @access public
* @return void
*/
@@ -497,7 +505,7 @@ class doc extends control
/**
* Sort doc lib.
*
*
* @access public
* @return void
*/
@@ -516,8 +524,8 @@ class doc extends control
/**
* Ajax get modules by libID.
*
* @param int $libID
*
* @param int $libID
* @access public
* @return void
*/
@@ -529,9 +537,9 @@ class doc extends control
/**
* Ajax fixed menu.
*
* @param int $libID
* @param string $type
*
* @param int $libID
* @param string $type
* @access public
* @return void
*/
@@ -549,8 +557,8 @@ class doc extends control
{
if($name == 'list') continue;
$customMenu = new stdclass();
$customMenu->name = $name;
$customMenu->order = $i;
$customMenu->name = $name;
$customMenu->order = $i;
$customMenus[] = $customMenu;
$i++;
}
@@ -565,16 +573,16 @@ class doc extends control
$lib = $this->doc->getLibByID($libID);
$customMenu = new stdclass();
$customMenu->name = "custom{$libID}";
$customMenu->order = count($customMenus);
$customMenu->float = 'right';
$customMenu->order = count($customMenus);
$customMenu->float = 'right';
if($type == 'fixed') $customMenus[] = $customMenu;
$this->setting->setItem("{$this->app->user->account}.common.customMenu.{$customMenuKey}", json_encode($customMenus));
die(js::reload('parent'));
}
/**
* Ajax get all libs
*
* Ajax get all libs
*
* @access public
* @return void
*/
@@ -585,12 +593,12 @@ class doc extends control
/**
* Show all libs by type.
*
* @param string $type
* @param string $product
* @param int $recTotal
* @param int $recPerPage
* @param int $pageID
*
* @param string $type
* @param string $product
* @param int $recTotal
* @param int $recPerPage
* @param int $pageID
* @access public
* @return void
*/
@@ -626,9 +634,9 @@ class doc extends control
/**
* Show files for product or project.
*
* @param int $type
* @param int $objectID
*
* @param int $type
* @param int $objectID
* @access public
* @return void
*/
@@ -707,7 +715,7 @@ class doc extends control
/**
* Show libs for product or project
*
*
* @access private
* @return void
*/
@@ -723,10 +731,10 @@ class doc extends control
/**
* Show libs for product or project
*
* @param string $type
* @param int $objectID
* @param string $from
*
* @param string $type
* @param int $objectID
* @param string $from
* @access public
* @return void
*/
+2 -2
View File
@@ -5,7 +5,7 @@ function browseByModule()
$('#bymoduleTab').addClass('active');
$('#allTab').removeClass('active');
$('#bysearchTab').removeClass('active');
$('#querybox').removeClass('show');
$('#queryBox').removeClass('show');
}
function browseBySearch()
@@ -14,7 +14,7 @@ function browseBySearch()
$('#bymoduleTab').removeClass('active');
$('#allTab').addClass('active');
$('#bysearchTab').addClass('active');
$('#querybox').addClass('show');
$('#queryBox').addClass('show');
}
function setBrowseType(type)
+50 -47
View File
@@ -66,7 +66,7 @@ class docModel extends model
if($type == 'custom') $currentLib = $libID;
if($type == 'product') $currentLib = $productID;
if($type == 'project') $currentLib = $projectID;
if($currentLib)
if($currentLib)
{
$allLibGroups = $this->getAllLibGroups();
$currentGroups = $allLibGroups[$type];
@@ -283,7 +283,13 @@ class docModel extends model
*/
public function getDocsByBrowseType($libID, $browseType, $queryID, $moduleID, $sort, $pager)
{
$allLibs = array_keys($this->getLibs('all'));
$allLibs = array_keys($this->getLibs('all'));
$docIdList = $this->getPrivDocs($libID, $moduleID);
$files = $this->dao->select('*')->from(TABLE_FILE)
->where('objectType')->eq('doc')
->andWhere('objectID')->in($docIdList)
->fetchGroup('objectID');
if($browseType == "all")
{
$docs = $this->getDocs($libID, 0, $sort, $pager);
@@ -301,12 +307,6 @@ class docModel extends model
}
elseif($browseType == 'byediteddate')
{
$docIdList = $this->getPrivDocs($libID, $moduleID);
$files = $this->dao->select('*')->from(TABLE_FILE)
->where('objectType')->eq('doc')
->andWhere('objectID')->in($docIdList)
->fetchGroup('objectID');
$docs = $this->dao->select('*')->from(TABLE_DOC)
->where('deleted')->eq(0)
->andWhere('id')->in($docIdList)
@@ -314,34 +314,6 @@ class docModel extends model
->orderBy('editedDate_desc')
->page($pager)
->fetchAll('id');
foreach($docs as $doc)
{
$docs[$doc->id]->fileSize = 0;
if(isset($files[$doc->id]))
{
$fileSize = 0;
foreach($files[$doc->id] as $file) $fileSize += $file->size;
if($fileSize < 1024)
{
$fileSize .= 'B';
}
elseif($fileSize < 1024 * 1024)
{
$fileSize = round($fileSize / 1024, 2) . 'KB';
}
elseif($fileSize < 1024 * 1024 * 1024)
{
$fileSize = round($fileSize / 1024 / 1024, 2) . 'MB';
}
else
{
$fileSize = round($fileSize / 1024 / 1024 /1024, 2) . 'G';
}
$docs[$doc->id]->fileSize = $fileSize;
}
}
}
elseif($browseType == "collectedbyme")
{
@@ -408,21 +380,52 @@ class docModel extends model
}
elseif($browseType == 'fastsearch')
{
if(!$this->post->searchDoc) return array();
if($this->session->searchDoc == false) return array();
$docIdList = $this->getPrivDocs($libID, $moduleID);
$docs = $this->dao->select('*')->from(TABLE_DOC)
->where('id')->in($docIdList)
->andWhere('title')->like("%{$this->post->searchDoc}%")
->andWhere('lib')->in($allLibs)
$docs = $this->dao->select('t1.*')->from(TABLE_DOC)->alias('t1')
->leftJoin(TABLE_DOCCONTENT)->alias('t2')->on('t2.doc = t1.id')
->where('t1.deleted')->eq(0)
->andWhere('t1.id')->in($docIdList)
->andWhere('t1.title', true)->like("%{$this->session->searchDoc}%")
->orWhere('t2.content')->like("%{$this->session->searchDoc}%")->markRight(1)
->andWhere('t1.lib')->in($allLibs)
->orderBy($sort)
->page($pager)
->fetchAll();
}
$this->loadModel('common')->saveQueryCondition($this->dao->get(), 'doc');
if($docs) return $docs;
$this->loadModel('common')->saveQueryCondition($this->dao->get(), 'doc', false);
if(!$docs) return array();
return array();
foreach($docs as $index => $doc)
{
$docs[$index]->fileSize = 0;
if(isset($files[$index]))
{
$fileSize = 0;
foreach($files[$index] as $file) $fileSize += $file->size;
if($fileSize < 1024)
{
$fileSize .= 'B';
}
elseif($fileSize < 1024 * 1024)
{
$fileSize = round($fileSize / 1024, 2) . 'KB';
}
elseif($fileSize < 1024 * 1024 * 1024)
{
$fileSize = round($fileSize / 1024 / 1024, 2) . 'MB';
}
else
{
$fileSize = round($fileSize / 1024 / 1024 /1024, 2) . 'G';
}
$docs[$index]->fileSize = $fileSize;
}
}
return $docs;
}
/**
@@ -1110,8 +1113,8 @@ class docModel extends model
/**
* Stat module and document counts of lib.
*
* @param array $idList
*
* @param array $idList
* @access public
* @return array
*/
@@ -1398,7 +1401,7 @@ class docModel extends model
/**
* Get statistic information.
*
*
* @access public
* @return object
*/
+2 -2
View File
@@ -59,7 +59,7 @@ var browseType = '<?php echo $browseType;?>';
<th class="c-user"><?php echo $lang->doc->addedBy;?></th>
<th class="c-datetime"><?php echo $lang->doc->addedDate;?></th>
<th class="c-datetime"><?php echo $lang->doc->editedDate;?></th>
<th class="c-actions"><?php echo $lang->actions;?></th>
<th class="c-actions-3"><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
@@ -85,7 +85,7 @@ var browseType = '<?php echo $browseType;?>';
<?php $collectTitle = strpos($doc->collector, ',' . $this->app->user->account . ',') !== false ? $lang->doc->cancelCollection : $lang->doc->collect;?>
<tr>
<td class="c-name"><?php echo html::a(inlink('view', "docID=$doc->id"), "<i class='icon icon-file-text text-muted'></i> &nbsp;" . $doc->title);?></td>
<td class="c-num"></td>
<td class="c-num"><?php echo $doc->fileSize ? $doc->fileSize : '-';?></td>
<td class="c-user"><?php echo zget($users, $doc->addedBy);?></td>
<td class="c-datetime"><?php echo formatTime($doc->addedDate, 'm-d h:i');?></td>
<td class="c-datetime"><?php echo formatTime($doc->editedDate, 'm-d h:i');?></td>
+2 -2
View File
@@ -12,7 +12,7 @@
?>
<?php include 'header.html.php';?>
<?php js::set('confirmDelete', $lang->entry->confirmDelete);?>
<div id='mainContent' class='main-content'>
<div id='mainContent'>
<form id='ajaxForm' class='main-table' method='post'>
<table id='entryList' class='table has-sort-head table-fix'>
<thead>
@@ -24,7 +24,7 @@
<th class='w-200px'><?php common::printOrderLink('key', $orderBy, $vars, $lang->entry->key);?></th>
<th class='w-200px'><?php common::printOrderLink('ip', $orderBy, $vars, $lang->entry->ip);?></th>
<th><?php echo common::printOrderLink('desc', $orderBy, $vars, $lang->entry->desc);?></th>
<th class='w-130px'><?php echo $lang->actions;?></th>
<th class='c-actions-3'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+3 -3
View File
@@ -13,14 +13,14 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/form.html.php';?>
<div id='mainContent' class='main-content'>
<div class='center-block mw-800px'>
<div class='center-block mw-800px center-block-sm'>
<div class="main-header">
<h2>
<?php echo $lang->entry->api;?>
<small class="text-muted"> <?php echo $lang->entry->create;?></small>
<small><?php echo $lang->arrow . ' ' . $lang->entry->create;?></small>
</h2>
</div>
<form id='entryForm' method='post' class='ajaxForm'>
<form class='main-form' id='entryForm' method='post' class='ajaxForm'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->entry->name;?></th>
+3 -3
View File
@@ -13,14 +13,14 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/form.html.php';?>
<div id='mainContent' class='main-content'>
<div class='center-block mw-800px'>
<div class='center-block mw-800px center-block-sm'>
<div class="main-header">
<h2>
<?php echo $lang->entry->api;?>
<small class="text-muted"> <?php echo $lang->entry->edit;?></small>
<small><?php echo $lang->arrow . ' ' . $lang->entry->edit;?></small>
</h2>
</div>
<form id='entryForm' method='post' class='ajaxForm'>
<form class='main-form' id='entryForm' method='post' class='ajaxForm'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->entry->name;?></th>
+1 -1
View File
@@ -16,6 +16,6 @@
<?php common::printLink('entry', 'browse', '', "<span class='text'>{$lang->entry->common}</span>", '', "class='btn btn-link btn-active-text'");?>
</div>
<div class='btn-toolbar pull-right'>
<?php common::printIcon('entry', 'create', '', '', 'button', '', '', 'btn-primary');?>
<?php echo html::a($this->createLink('entry', 'create'), "<i class='icon icon-plus'></i> {$lang->entry->create}", '', "class='btn btn-primary'"); ?>
</div>
</div>
+1 -2
View File
@@ -1,2 +1 @@
.user{display:block; width:80px; float:left; overflow:hidden}
.c-actions{width: 220px;}
.user {display:block; width:80px; float:left; overflow:hidden}
+1 -1
View File
@@ -31,7 +31,7 @@
<th class='w-130px'><?php echo $lang->group->name;?></th>
<th class='w-300px'><?php echo $lang->group->desc;?></th>
<th><?php echo $lang->group->users;?></th>
<th class='c-actions text-center'><?php echo $lang->actions;?></th>
<th class='c-actions-6 text-center'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+1 -1
View File
@@ -35,7 +35,7 @@
<th class='w-150px'> <?php common::printOrderLink('sendTime', $orderBy, $vars, $lang->mail->sendTime);?></th>
<th class='w-80px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->mail->status);?></th>
<th> <?php echo $lang->mail->failReason;?></th>
<th class='w-80px'> <?php echo $lang->actions;?></th>
<th class='c-actions-2'> <?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+1 -2
View File
@@ -1,3 +1,2 @@
.datepicker-wrapper{width: 110px!important;}
.datepicker-wrapper .form-control {max-width: 110px; line-height: 25px; height: 26px!important}
th.c-actions{width:160px !important;}
.datepicker-wrapper .form-control {max-width: 110px; line-height: 25px; height: 26px!important}
+1 -1
View File
@@ -44,7 +44,7 @@
<th class='w-user'> <?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->bug->assignedTo);?></th>
<th class='w-user'> <?php common::printOrderLink('resolvedBy', $orderBy, $vars, $lang->bug->resolvedByAB);?></th>
<th class='w-resolution'><?php common::printOrderLink('resolution', $orderBy, $vars, $lang->bug->resolutionAB);?></th>
<th class='w-180px'> <?php echo $lang->actions;?></th>
<th class='c-actions-5'> <?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+1 -1
View File
@@ -45,7 +45,7 @@
<?php if($direction == 'next') $actions = array_reverse($actions);?>
<?php foreach($actions as $i => $action):?>
<?php if(empty($firstAction)) $firstAction = $action;?>
<li <?php if($action->actor == $this->app->user->account) echo "class='active'";?>>
<li <?php if($action->major) echo "class='active'";?>>
<div>
<span class="timeline-tag"><?php echo $action->time?></span>
<span class="timeline-text">
+6 -5
View File
@@ -11,7 +11,7 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='mainContent' class='main-row main-content'>
<div id='mainContent' class='main-content <?php if($mode == 'edit') echo ' main-row';?>'>
<?php if($mode == 'edit'):?>
<div class='side-col'>
<?php
@@ -24,9 +24,8 @@
?>
<?php echo html::a(inlink('managecontacts', "listID=0&mode=new"), '<i class="icon icon-plus"></i> ' . $lang->user->contacts->createList, '', "class='btn btn-block'"); ?>
</div>
<div class='main-col'>
<?php endif;?>
<?php $class = $mode == 'edit' ? 'main-col' : '';?>
<div class='<?php echo $class?>'>
<div class='main-header'>
<h2>
<?php if($mode == 'new'):?>
@@ -64,11 +63,11 @@
<?php
if($mode == 'new')
{
echo html::select('users[]', $users, '', "multiple class='form-control chosen'");
echo html::select('users[]', $users, '', "multiple class='form-control chosen' data-drop_direction='down'");
}
else
{
echo html::select('users[]', $users, $list->userList, "multiple $readonly class='form-control chosen'");
echo html::select('users[]', $users, $list->userList, "multiple $readonly class='form-control chosen' data-drop_direction='down'");
}
?>
</td>
@@ -95,6 +94,8 @@
<?php endif;?>
</table>
</form>
<?php if($mode == 'edit'):?>
</div>
<?php endif;?>
</div>
<?php include '../../common/view/footer.html.php';?>
+6 -1
View File
@@ -11,10 +11,15 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php if(!isonlybody()):?>
<style>
.main-content{width: 600px; margin: 0 auto;}
</style>
<?php endif;?>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2><?php echo html::icon($lang->icons['user']);?> <?php echo $lang->my->profile;?></h2>
<div class='actions'>
<div class='actions pull-right'>
<?php echo html::a($this->createLink('my', 'editprofile'), $lang->user->editProfile, '', "class='btn btn-primary'");?>
</div>
</div>
+1 -1
View File
@@ -47,7 +47,7 @@
<th class='c-hours'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
<th class='c-status'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th class='c-stage'> <?php common::printOrderLink('stage', $orderBy, $vars, $lang->story->stageAB);?></th>
<th class='c-actions-4'><?php echo $lang->actions;?></th>
<th class='c-actions-5'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+1 -1
View File
@@ -49,7 +49,7 @@
<th class='c-hours'> <?php common::printOrderLink('left', $orderBy, $vars, $lang->task->leftAB);?></th>
<th class='c-date'> <?php common::printOrderLink('deadline', $orderBy, $vars, $lang->task->deadlineAB);?></th>
<th class='c-status'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th class='c-actions-4'><?php echo $lang->actions;?></th>
<th class='c-actions-5'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+3 -13
View File
@@ -52,7 +52,7 @@
<th class='w-120px'> <?php common::printOrderLink('lastRunDate', $orderBy, $vars, $lang->testtask->lastRunTime);?></th>
<th class='w-80px'> <?php common::printOrderLink('lastRunResult', $orderBy, $vars, $lang->testtask->lastRunResult);?></th>
<th class='w-status'><?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th class='w-130px'> <?php echo $lang->actions;?></th>
<th class='c-actions-5'> <?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
@@ -80,19 +80,9 @@
<td class='<?php echo $case->lastRunResult;?>'><?php if($case->lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?></td>
<td class='<?php if(isset($run)) echo $run->status;?>'><?php echo $lang->testcase->statusList[$case->status];?></td>
<td class='c-actions'>
<div class='more'>
<?php
common::printIcon('testcase', 'createBug', "product=$case->product&branch=$case->branch&extra=caseID=$caseID,version=$case->version,runID=$runID", $case, 'list', 'bug');
common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from=testcase&param=$caseID", $case, 'list', 'copy');
if(common::hasPriv('testcase', 'delete'))
{
$deleteURL = $this->createLink('testcase', 'delete', "caseID=$caseID&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"caseList\",confirmDelete)", '<i class="icon-trash"></i>', '', "class='btn' title='{$lang->testcase->delete}'");
}
?>
</div>
<?php
common::printIcon('testcase', 'createBug', "product=$case->product&branch=$case->branch&extra=caseID=$caseID,version=$case->version,runID=$runID", $case, 'list', 'bug');
common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from=testcase&param=$caseID", $case, 'list', 'copy');
common::printIcon('testtask', 'runCase', "runID=$runID&caseID=$caseID&version=$case->version", '', 'list', 'play', '', 'iframe', '', "data-width='95%'");
common::printIcon('testtask', 'results', "runID=$runID&caseID=$caseID", '', 'list', 'list-alt', '', 'iframe', '', "data-width='95%'");
common::printIcon('testcase', 'edit', "caseID=$caseID", $case, 'list', 'edit');
+1 -7
View File
@@ -34,7 +34,7 @@
<th class='w-90px'> <?php common::printOrderLink('begin', $orderBy, $vars, $lang->testtask->begin);?></th>
<th class='w-90px'> <?php common::printOrderLink('end', $orderBy, $vars, $lang->testtask->end);?></th>
<th class='w-80px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th class='w-150px'><?php echo $lang->actions;?></th>
<th class='c-actions-3'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
@@ -52,12 +52,6 @@
common::printIcon('testtask', 'cases', "taskID=$task->id", 'play', 'list', 'sitemap');
common::printIcon('testtask', 'linkCase', "taskID=$task->id", '', 'list', 'link');
common::printIcon('testtask', 'edit', "taskID=$task->id", '', 'list');
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-trash"></i>', '', "title='{$lang->testtask->delete}' class='btn'");
}
?>
</td>
</tr>
+2 -2
View File
@@ -79,11 +79,11 @@
</td>
<td class="c-date"><?php echo $todo->date == '2030-01-01' ? $lang->todo->periods['future'] : $todo->date;?></td>
<td class="c-type"><?php echo $lang->todo->typeList[$todo->type];?></td>
<td class="c-pri"> <span title="<?php echo zget($lang->todo->priList, $todo->pri);?>" class='label-pri <?php echo 'label-pri-' . $todo->pri;?>' title='<?php echo zget($lang->todo->priList, $todo->pri, $todo->pri);?>'><?php echo zget($lang->todo->priList, $todo->pri)?></span></td>
<td class="c-pri"><span title="<?php echo zget($lang->todo->priList, $todo->pri);?>" class='label-pri <?php echo 'label-pri-' . $todo->pri;?>' title='<?php echo zget($lang->todo->priList, $todo->pri, $todo->pri);?>'><?php echo zget($lang->todo->priList, $todo->pri)?></span></td>
<td class="c-name" title="<?php echo $todo->name;?>"><?php echo html::a($this->createLink('todo', 'view', "id=$todo->id&from=my", '', true), $todo->name, '', "data-toggle='modal' data-type='iframe' data-title='" . $lang->todo->view . "' data-icon='check'");?></td>
<td class="c-begin"><?php echo $todo->begin;?></td>
<td class="c-end"><?php echo $todo->end;?></td>
<td class="c-status"><?php echo $lang->todo->statusList[$todo->status];?></td>
<td class="c-status"><span class="status-<?php echo $todo->status;?>"><span class="label label-dot"></span> <?php echo $lang->todo->statusList[$todo->status];?></span></td>
<td class="c-actions">
<?php
if($todo->status != 'done') common::printIcon('todo', 'assignto', "todoID=$todo->id", $todo, 'list', 'hand-right', '', "btn-icon", '', "data-toggle='assigntoModal' data-width='500'", $lang->todo->assignTo);
+1 -1
View File
@@ -28,7 +28,7 @@
<th><?php echo $lang->build->filePath;?></th>
<th class='c-date'><?php echo $lang->build->date;?></th>
<th class='c-user'><?php echo $lang->build->builder;?></th>
<th class='w-130px'><?php echo $lang->actions;?></th>
<th class='c-actions-3'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+1 -1
View File
@@ -48,7 +48,7 @@
<?php if($direction == 'next') $actions = array_reverse($actions);?>
<?php foreach($actions as $i => $action):?>
<?php if(empty($firstAction)) $firstAction = $action;?>
<li <?php if($action->actor == $this->app->user->account) echo "class='active'";?>>
<li <?php if($action->major) echo "class='active'";?>>
<div>
<span class="timeline-tag"><?php echo $action->time?></span>
<span class="timeline-text">
+1 -1
View File
@@ -52,7 +52,7 @@
<div class="panel-body">
<ul class="timeline timeline-tag-left">
<?php foreach($actions as $action):?>
<li <?php if($action->actor == $this->app->user->account) echo "class='active'";?>>
<li <?php if($action->major) echo "class='active'";?>>
<div>
<span class="timeline-tag"><?php echo $action->date;?></span>
<span class="timeline-text"><?php echo zget($users, $action->actor) . ' ' . $action->actionLabel . $action->objectLabel . ' ' . html::a($action->objectLink, $action->objectName);?></span>
+1 -1
View File
@@ -52,7 +52,7 @@
<th class='w-60px'> <?php echo $lang->productplan->hour;?></th>
<th class='w-60px'> <?php echo $lang->productplan->project;?></th>
<th> <?php echo $lang->productplan->desc;?></th>
<th class='c-actions-4'><?php echo $lang->actions;?></th>
<th class='c-actions-5'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+1 -1
View File
@@ -111,7 +111,7 @@
<th class='w-70px'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
<th class='w-70px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th class='w-80px'> <?php common::printOrderLink('stage', $orderBy, $vars, $lang->story->stageAB);?></th>
<th class='w-50px'> <?php echo $lang->actions?></th>
<th class='c-actions-1'> <?php echo $lang->actions?></th>
</tr>
</thead>
<tbody class='text-center'>
+9 -9
View File
@@ -1,9 +1,9 @@
.row {padding: 20px;}
#productsBox .row > .product {border:1px solid #ddd;margin-bottom:5px; width:32%; margin-right:8px; padding: 0; position: relative;}
#productsBox .row > .product label {display:block; cursor: pointer; margin: 0; padding: 8px 10px 8px 30px;}
#productsBox .row > .product:hover {background: #f1f1f1; cursor: pointer;}
#productsBox .row > .product.checked, #productsBox .row > .product.checked:hover {background: #E5FFE6; border: 1px solid #229F24;}
.product + .product {margin-left: 0;}
#productsBox .row > .product.has-branch label {margin-right: 40%;}
#productsBox .row > .product.has-branch > .form-control,
#productsBox .row > .product.has-branch > .chosen-container {position: absolute; width: 40%!important; right: 1px; top: 1px;}
#productsBox .product {border: 1px solid #ddd; margin-bottom:5px; position: relative; height: 40px; border-radius: 4px;}
#productsBox .product:hover {background: #f1f1f1;}
#productsBox .product.checked,
#productsBox .product.checked:hover {background: #E5FFE6; border: 1px solid #229F24;}
#productsBox .product .checkbox-primary {padding: 9px; cursor: pointer;}
#productsBox .product.has-branch {padding-right: 40%;}
#productsBox .product.has-branch > .chosen-container {position: absolute; width: 40%!important; right: 3px; top: 3px;}
#productsBox .product.has-branch > .chosen-container > .chosen-single {background: rgba(0,0,0,.05);}
#productsBox .product.has-branch > .chosen-container > .chosen-single:hover {background: #fff;}
+5 -12
View File
@@ -2,20 +2,13 @@ $(function()
{
$('#productsBox input:checkbox').each(function()
{
var cb = $(this);
if(cb.prop('checked')) cb.closest('.col-sm-4').addClass('checked');
var $cb = $(this);
if($cb.prop('checked')) $cb.closest('.product').addClass('checked');
});
$('#productsBox input:checkbox').change(function()
{
var cb = $(this);
cb.closest('.col-sm-4').toggleClass('checked', cb.prop('checked'));
var $cb = $(this);
$cb.closest('.product').toggleClass('checked', $cb.prop('checked'));
});
var $hasBranch = $('#productsBox .col-sm-4 .col-sm-6');
if($hasBranch.size() > 0)
{
newPadding = ($hasBranch.parent().css('padding-top').replace('px', '') - 1) + 'px';
$hasBranch.parent().css({"padding-top" : newPadding, "padding-bottom" : newPadding});
}
})
});
+1
View File
@@ -336,6 +336,7 @@ class projectModel extends model
$members = $this->dao->select('*')->from(TABLE_TEAM)->where('root')->eq($copyProjectID)->andWhere('type')->eq('project')->fetchAll();
foreach($members as $member)
{
unset($member->id);
$member->root = $projectID;
$member->join = $today;
$member->days = $project->days;
+2 -4
View File
@@ -48,7 +48,7 @@
<th class='w-110px'> <?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->assignedToAB);?></th>
<th class='w-user'> <?php common::printOrderLink('resolvedBy', $orderBy, $vars, $lang->bug->resolvedBy);?></th>
<th class='w-resolution'><?php common::printOrderLink('resolution', $orderBy, $vars, $lang->bug->resolutionAB);?></th>
<th class='w-130px text-center'><?php echo $lang->actions;?></th>
<th class='c-actions text-center'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
@@ -78,10 +78,8 @@
<td><?php echo zget($users, $bug->resolvedBy, $bug->resolvedBy);?></td>
<td><?php echo $lang->bug->resolutionList[$bug->resolution];?></td>
<td class='c-actions'>
<div class='more'>
<?php if($bug->status == 'active') common::printIcon('bug', 'confirmBug', $params, $bug, 'list', 'search', '', 'iframe', true);?>
</div>
<?php
if($bug->status == 'active') common::printIcon('bug', 'confirmBug', $params, $bug, 'list', 'search', '', 'iframe', true);
if($bug->status == 'active') common::printIcon('bug', 'resolve', $params, $bug, 'list', 'check', '', 'iframe', true);
if($bug->status != 'active') common::printIcon('bug', 'close', $params, $bug, 'list', '', '', 'iframe', true);
common::printIcon('bug', 'create', "product=$bug->product&branch=$bug->branch&extra=$params", $bug, 'list', 'copy');
+2 -2
View File
@@ -31,7 +31,7 @@
<div class='main-table' data-ride="table" data-checkable="false" data-group="true">
<table class="table table-grouped text-center" id='buildList'>
<thead>
<tr class="divider">
<tr class="<?php if($buildsTotal) echo 'divider';?>">
<th class="c-side"><?php echo $lang->build->product;?></th>
<th class="c-id-sm"><?php echo $lang->build->id;?></th>
<th class="c-name"><?php echo $lang->build->name;?></th>
@@ -39,7 +39,7 @@
<th class="c-url"><?php echo $lang->build->filePath;?></th>
<th class="c-date"><?php echo $lang->build->date;?></th>
<th class="c-user"><?php echo $lang->build->builder;?></th>
<th class="c-actions-3"><?php echo $lang->actions;?></th>
<th class="c-actions-4"><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+2 -2
View File
@@ -13,10 +13,10 @@
<?php if(isset($tips)):?>
<?php $defaultURL = $this-> createLink('project', 'task', 'projectID=' . $projectID);?>
<?php include '../../common/view/header.lite.html.php';?>
<body style='background: #e5e5e5'>
<body>
<div class='modal-dialog mw-500px' id='tipsModal'>
<div class='modal-header'>
<a href='<?php echo $defaultURL;?>' class='close'>&times;</a>
<a href='<?php echo $defaultURL;?>' class='close'><i class="icon icon-close"></i></a>
<h4 class='modal-title' id='myModalLabel'><?php echo $lang->project->tips;?></h4>
</div>
<div class='modal-body'>
+1 -1
View File
@@ -49,7 +49,7 @@
<?php if($direction == 'next') $actions = array_reverse($actions);?>
<?php foreach($actions as $i => $action):?>
<?php if(empty($firstAction)) $firstAction = $action;?>
<li <?php if($action->actor == $this->app->user->account) echo "class='active'";?>>
<li <?php if($action->major) echo "class='active'";?>>
<div>
<span class="timeline-tag"><?php echo $action->time?></span>
<span class="timeline-text">
+2 -2
View File
@@ -28,13 +28,13 @@
<label for='withLeft'><?php echo $lang->project->fixFirstWithLeft?></label>
</div>
</span>
<span class='input-group-btn'><?php echo html::submitButton();?></span>
<span class='input-group-btn'><?php echo html::submitButton('', '', 'btn btn-primary btn-wide');?></span>
</div>
</td>
</tr>
<tr>
<td>
<div class='alert alert-info'><?php echo $lang->project->totalEstimate . ' : ' . $project->totalEstimate . $lang->project->workHour;?></div>
<div class='alert alert-primary no-margin'><?php echo $lang->project->totalEstimate;?> : <code class='strong text-primary'><?php echo $project->totalEstimate;?></code> <?php echo $lang->project->workHour;?></div>
</td>
</tr>
</table>
+9 -5
View File
@@ -22,8 +22,10 @@ var browseType = '<?php echo $browseType;?>';
<?php echo html::a(inlink('importBug', "projectID=$projectID"), "<span class='text'>{$lang->project->importBug}</span>", '', "class='btn btn-link btn-active-text'");?>
</div>
</div>
<div id='mainContent' class='main-content'>
<div id='querybox' class='show'></div>
<div id='mainContent'>
<div class='cell space-sm'>
<div id='queryBox' class='show'></div>
</div>
<form class='main-table' method='post' target='hiddenwin' id='importBugForm' data-ride='table'>
<table class='table has-sort-head table-fixed'>
<thead>
@@ -70,10 +72,12 @@ var browseType = '<?php echo $browseType;?>';
<?php if($bugs):?>
<div class='table-footer'>
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
<div class="table-actions btn-toolbar">
<?php echo html::submitButton($lang->import, '', 'btn');?>
<div class="table-actions btn-toolbar show-always">
<?php echo html::submitButton('<i class="icon icon-import icon-sm"></i> ' . $lang->import, '', 'btn btn-secondary');?>
</div>
<div class='btn-toolbar'>
<?php echo html::backButton();?>
</div>
<?php echo html::backButton();?>
<?php $pager->show('right', 'pagerjs');?>
</div>
<?php endif;?>
+2 -2
View File
@@ -21,7 +21,7 @@
</div>
</div>
</div>
<div id='mainContent' class='main-content'>
<div id='mainContent'>
<form class='main-table' method='post' target='hiddenwin' id='importTaskForm' data-ride='table'>
<table class='table table-fixed'>
<thead>
@@ -87,7 +87,7 @@
<?php if($tasks2Imported):?>
<div class='table-footer'>
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
<div class="table-actions btn-toolbar"><?php echo html::submitButton($lang->project->importTask, '', 'btn');?></div>
<div class="table-actions btn-toolbar show-always"><?php echo html::submitButton('<i class="icon icon-import icon-sm"></i> ' . $lang->project->importTask, '', 'btn btn-secondary btn-wide');?></div>
</div>
<?php endif;?>
</form>
+26 -20
View File
@@ -25,16 +25,19 @@
<?php foreach($allProducts as $productID => $productName):?>
<?php if(isset($linkedProducts[$productID])):?>
<?php $checked = 'checked';?>
<div class='product col-sm-4 <?php echo $checked . (isset($branchGroups[$productID]) ? ' has-branch' : '')?>'>
<label class='text-ellipsis checkbox-inline' for='<?php echo 'products'. $productID?>';>
<?php echo "<input type='checkbox' name='products[$productID]' value='$productID' $checked id='products{$productID}'> $productName";?>
</label>
<?php
if(isset($branchGroups[$productID]))
{
echo html::select("branch[$productID]", $branchGroups[$productID], $linkedProducts[$productID]->branch, "class='form-control chosen'");
}
?>
<div class='col-sm-4'>
<div class='product <?php echo $checked . (isset($branchGroups[$productID]) ? ' has-branch' : '')?>'>
<div class="checkbox-primary">
<?php echo "<input type='checkbox' name='products[$productID]' value='$productID' $checked id='products{$productID}'>";?>
<label class='text-ellipsis checkbox-inline' for='<?php echo 'products'. $productID?>';><?php echo $productName;?></label>
</div>
<?php
if(isset($branchGroups[$productID]))
{
echo html::select("branch[$productID]", $branchGroups[$productID], $linkedProducts[$productID]->branch, "class='form-control chosen'");
}
?>
</div>
</div>
<?php unset($allProducts[$productID]);?>
<?php endif;?>
@@ -45,16 +48,19 @@
<div class='detail-title'><?php echo $lang->project->unlinkedProducts;?></div>
<div class='detail-content row'>
<?php foreach($allProducts as $productID => $productName):?>
<div class='col-sm-4 product<?php echo isset($branchGroups[$productID]) ? ' has-branch' : ''?>'>
<label class='text-ellipsis checkbox-inline' for='<?php echo 'products'. $productID?>';>
<?php echo "<input type='checkbox' name='products[$productID]' value='$productID' id='products{$productID}'> $productName";?>
</label>
<?php
if(isset($branchGroups[$productID]))
{
echo html::select("branch[$productID]", $branchGroups[$productID], '', "class='form-control chosen'");
}
?>
<div class='col-sm-4'>
<div class='product<?php echo isset($branchGroups[$productID]) ? ' has-branch' : ''?>'>
<div class="checkbox-primary">
<?php echo "<input type='checkbox' name='products[$productID]' value='$productID' id='products{$productID}'>";?>
<label class='text-ellipsis checkbox-inline' for='<?php echo 'products'. $productID?>';><?php echo $productName;?></label>
</div>
<?php
if(isset($branchGroups[$productID]))
{
echo html::select("branch[$productID]", $branchGroups[$productID], '', "class='form-control chosen'");
}
?>
</div>
</div>
<?php endforeach;?>
</div>
+1 -1
View File
@@ -112,7 +112,7 @@
<th title='<?php echo $lang->story->taskCount?>' class='w-30px'><?php echo $lang->story->taskCountAB;?></th>
<th title='<?php echo $lang->story->bugCount?>' class='w-30px'><?php echo $lang->story->bugCountAB;?></th>
<th title='<?php echo $lang->story->caseCount?>' class='w-30px'><?php echo $lang->story->caseCountAB;?></th>
<th class='c-actions-3 text-center'><?php echo $lang->actions;?></th>
<th class='c-actions-4 text-center'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody id='storyTableList' class='sortable'>
+4 -6
View File
@@ -8,7 +8,7 @@
$product = $this->product->getById($productID);
$removeLink = $browseType == 'byproduct' ? inlink('task', "projectID=$projectID&browseType=$status&param=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("productBrowseParam")';
echo '<i class="icon icon-cube"></i> ' . $product->name;
echo html::a($removeLink, "<span class='close'>&times;</span>", '', "class='text-muted'");
echo html::a($removeLink, "<span class='close'><i class='icon icon-close'></i></span>", '', "class='text-muted'");
}
elseif(!empty($moduleID))
{
@@ -16,7 +16,7 @@
$module = $this->tree->getById($moduleID);
$removeLink = $browseType == 'bymodule' ? inlink('task', "projectID=$projectID&browseType=$status&param=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("moduleBrowseParam")';
echo $module->name;
echo html::a($removeLink, "<span class='close'>&times;</span>", '', "class='text-muted'");
echo html::a($removeLink, "<span class='close'><i class='icon icon-close'></i></span>", '', "class='text-muted'");
}
else
{
@@ -132,16 +132,14 @@
$misc = common::hasPriv('task', 'batchCreate', $project) ? '' : "disabled";
$link = common::hasPriv('task', 'batchCreate', $project) ? $this->createLink('task', 'batchCreate', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#';
?>
<button type='button' class='btn btn-primary dropdown-toggle <?php echo $misc?>' data-toggle='dropdown'>
<span class='caret'></span>
</button>
<button type='button' class='btn btn-primary dropdown-toggle <?php echo $misc?>' data-toggle='dropdown'><span class='caret'></span></button>
<ul class='dropdown-menu pull-right'>
<?php echo "<li>" . html::a($link, $lang->task->batchCreate, '', "class='$misc'") . "</li>";?>
</ul>
</div>
</div>
</div>
<div id='querybox' class='<?php if($browseType =='bysearch') echo 'show';?>'></div>
<div id='queryBox' class='<?php if($browseType =='bysearch') echo 'show';?>'></div>
</div>
<?php
$headerHooks = glob(dirname(dirname(__FILE__)) . "/ext/view/featurebar.*.html.hook.php");
+5 -5
View File
@@ -15,8 +15,8 @@
<div id="mainMenu" class="clearfix">
<div class="btn-toolbar pull-left">
<div class="pull-left table-group-btns">
<button type="button" class="btn btn-link group-collapse-all"><?php echo $lang->testtask->collapseAll;?> <i class="icon-fold-all"></i></button>
<button type="button" class="btn btn-link group-expand-all"><?php echo $lang->testtask->expandAll;?> <i class="icon-unfold-all"></i></button>
<button type="button" class="btn btn-link group-collapse-all"><?php echo $lang->testtask->collapseAll;?> <i class="icon-fold-all muted"></i></button>
<button type="button" class="btn btn-link group-expand-all"><?php echo $lang->testtask->expandAll;?> <i class="icon-unfold-all muted"></i></button>
</div>
<?php $total = 0;?>
<?php foreach($tasks as $productTasks) $total += count($productTasks);?>
@@ -26,7 +26,7 @@
</a>
</div>
<div class="btn-toolbar pull-right">
<?php common::printIcon('testreport', 'browse', "objectID=$projectID&objectType=project", '', 'button','flag');?>
<?php common::printIcon('testreport', 'browse', "objectID=$projectID&objectType=project", '', 'button','flag muted');?>
<?php common::printLink('testtask', 'create', "product=0&project=$projectID", "<i class='icon icon-plus'></i> " . $lang->testtask->create, '', "class='btn btn-primary'");?>
</div>
</div>
@@ -36,7 +36,7 @@
<thead>
<?php $vars = "projectID=$projectID&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
<?php $canTestReport = common::hasPriv('testreport', 'browse');?>
<tr class='divider'>
<tr class='<?php if($total) echo 'divider'; ?>'>
<th class='c-side text-center'><?php common::printOrderLink('product', $orderBy, $vars, $lang->testtask->product);?></th>
<th class="c-id">
<?php if($canTestReport):?>
@@ -52,7 +52,7 @@
<th class='w-100px'><?php common::printOrderLink('begin', $orderBy, $vars, $lang->testtask->begin);?></th>
<th class='w-100px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->testtask->end);?></th>
<th class='w-80px'><?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th class='c-actions-3 text-center'><?php echo $lang->actions;?></th>
<th class='c-actions-4 text-center'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+1 -1
View File
@@ -49,7 +49,7 @@
<div class="panel-body">
<ul class="timeline timeline-tag-left">
<?php foreach($actions as $action):?>
<li <?php if($action->actor == $this->app->user->account) echo "class='active'";?>>
<li <?php if($action->major) echo "class='active'";?>>
<div>
<span class="timeline-tag"><?php echo $action->date;?></span>
<span class="timeline-text"><?php echo zget($users, $action->actor) . ' ' . $action->actionLabel . $action->objectLabel . ' ' . html::a($action->objectLink, $action->objectName);?></span>
+1 -1
View File
@@ -35,7 +35,7 @@
<?php endif;?>
<th class='c-date text-center'><?php echo $lang->release->date;?></th>
<th class='text-center w-90px'><?php echo $lang->release->status;?></th>
<th class='c-actions-4 text-center'><?php echo $lang->actions;?></th>
<th class='c-actions-5 text-center'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+1 -1
View File
@@ -86,7 +86,7 @@
<th class='w-80px'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
<th class='w-90px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th class='w-100px'> <?php common::printOrderLink('stage', $orderBy, $vars, $lang->story->stageAB);?></th>
<th class='w-50px'> <?php echo $lang->actions?></th>
<th class='c-actions-1'> <?php echo $lang->actions?></th>
</tr>
</thead>
<tbody class='text-center'>
+1 -1
View File
@@ -193,5 +193,5 @@ $config->story->datatable->fieldList['caseCount']['name'] = $lang->story->ca
$config->story->datatable->fieldList['actions']['title'] = 'actions';
$config->story->datatable->fieldList['actions']['fixed'] = 'right';
$config->story->datatable->fieldList['actions']['width'] = '157';
$config->story->datatable->fieldList['actions']['width'] = '220';
$config->story->datatable->fieldList['actions']['required'] = 'yes';
+1
View File
@@ -6,3 +6,4 @@
#batchCreateForm .col-pri {width: 100px;}
#batchCreateForm .col-review,
#batchCreateForm .col-estimate {width: 90px;}
#batchCreateForm {overflow-x:auto;}
+1
View File
@@ -1,2 +1,3 @@
#suhosinInfo {margin-bottom: 0;}
.chosen-container .chosen-drop {min-width: 400px; border-top: 1px solid #ddd!important}
#batchEditForm{overflow-x:auto}
+4
View File
@@ -1,3 +1,7 @@
$(function()
{
if($('#batchCreateForm table thead tr th.col-name').width() < 200) $('#batchCreateForm table thead tr th.col-name').width(200);
});
$(document).on('click', '.chosen-with-drop', function()
{
var select = $(this).prev('select');
+2 -4
View File
@@ -2466,14 +2466,12 @@ class storyModel extends model
break;
case 'actions':
$vars = "story={$story->id}";
echo "<div class='more'>";
common::printIcon('story', 'change', $vars, $story, 'list', 'fork');
common::printIcon('story', 'delete', $vars, $story, 'list', 'trash', 'hiddenwin');
echo "</div>";
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses');
common::printIcon('story', 'close', $vars, $story, 'list', 'off', '', 'iframe', true);
common::printIcon('story', 'edit', $vars, $story, 'list');
if($this->config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=&param=0&$vars", $story, 'list', 'sitemap');
common::printIcon('story', 'change', $vars, $story, 'list', 'fork');
common::printIcon('story', 'delete', $vars, $story, 'list', 'trash', 'hiddenwin');
break;
}
echo '</td>';
+4 -4
View File
@@ -44,17 +44,17 @@
<thead>
<tr>
<th class='col-id'><?php echo $lang->idAB;?></th>
<th class='col-branch<?php echo zget($visibleFields, $product->type, ' hidden')?>'><?php echo $lang->product->branch;?></th>
<th class='w-150px<?php echo zget($visibleFields, $product->type, ' hidden')?>'><?php echo $lang->product->branch;?></th>
<th class='col-module required'><?php echo $lang->story->module;?></th>
<th class='col-plan<?php echo zget($visibleFields, 'plan', ' hidden') . zget($requiredFields, 'plan', '', ' required');?>'><?php echo $lang->story->plan;?></th>
<th class='col-name required has-btn'><?php echo $lang->story->title;?></th>
<th class='col-desc<?php echo zget($visibleFields, 'spec', ' hidden') . zget($requiredFields, 'spec', '', ' required');?>'><?php echo $lang->story->spec;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'spec', ' hidden') . zget($requiredFields, 'spec', '', ' required');?>'><?php echo $lang->story->spec;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'source', ' hidden') . zget($requiredFields, 'source', '', ' required');?>'><?php echo $lang->story->source;?></th>
<th class='w-p15<?php echo zget($visibleFields, 'verify', ' hidden') . zget($requiredFields, 'verify', '', ' required');?>'><?php echo $lang->story->verify;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'verify', ' hidden') . zget($requiredFields, 'verify', '', ' required');?>'><?php echo $lang->story->verify;?></th>
<th class='col-pri<?php echo zget($visibleFields, 'pri', ' hidden') . zget($requiredFields, 'pri', '', ' required');?>'><?php echo $lang->story->pri;?></th>
<th class='col-estimate<?php echo zget($visibleFields, 'estimate', ' hidden') . zget($requiredFields, 'estimate', '', ' required');?>'><?php echo $lang->story->estimate;?></th>
<th class='col-review<?php echo zget($visibleFields, 'review', ' hidden') . zget($requiredFields, 'review', '', ' required');?>'><?php echo $lang->story->review;?></th>
<th class='col-keywords<?php echo zget($visibleFields, 'keywords', ' hidden') . zget($requiredFields, 'keywords', '', ' required');?>'><?php echo $lang->story->keywords;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'keywords', ' hidden') . zget($requiredFields, 'keywords', '', ' required');?>'><?php echo $lang->story->keywords;?></th>
</tr>
</thead>
<tbody>
+10 -10
View File
@@ -38,20 +38,20 @@ foreach(explode(',', $showFields) as $field)
<tr>
<th class='w-40px'> <?php echo $lang->idAB;?></th>
<?php if($branchProduct):?>
<th class='w-150px<?php echo zget($visibleFields, 'branch', ' hidden')?>'><?php echo $lang->story->branch;?></th>
<th class='w-120px<?php echo zget($visibleFields, 'branch', ' hidden')?>'><?php echo $lang->story->branch;?></th>
<?php endif;?>
<th class='w-150px'><?php echo $lang->story->module;?></th>
<th class='w-120px'><?php echo $lang->story->module;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'plan', ' hidden')?>'><?php echo $lang->story->planAB;?></th>
<th class='w-150px required'><?php echo $lang->story->title;?></th>
<th class='w-50px<?php echo zget($visibleFields, 'estimate', ' hidden')?>'> <?php echo $lang->story->estimateAB;?></th>
<th class='w-70px<?php echo zget($visibleFields, 'pri', ' hidden')?>'> <?php echo $lang->priAB;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>'> <?php echo $lang->story->assignedTo;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'source', ' hidden')?>'> <?php echo $lang->story->source;?></th>
<th class='w-50px<?php echo zget($visibleFields, 'estimate', ' hidden')?>'> <?php echo $lang->story->estimateAB;?></th>
<th class='w-70px<?php echo zget($visibleFields, 'pri', ' hidden')?>'> <?php echo $lang->priAB;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>'> <?php echo $lang->story->assignedTo;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'source', ' hidden')?>'> <?php echo $lang->story->source;?></th>
<th class='w-80px'><?php echo $lang->story->status;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'stage', ' hidden')?>'> <?php echo $lang->story->stageAB;?></th>
<th class='w-130px<?php echo zget($visibleFields, 'closedBy', ' hidden')?>'><?php echo $lang->story->closedBy;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'closedReason', ' hidden')?>'> <?php echo $lang->story->closedReason;?></th>
<th class='w-80px<?php echo zget($visibleFields, 'keywords', ' hidden')?>'><?php echo $lang->story->keywords;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'stage', ' hidden')?>'> <?php echo $lang->story->stageAB;?></th>
<th class='w-130px<?php echo zget($visibleFields, 'closedBy', ' hidden')?>'><?php echo $lang->story->closedBy;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'closedReason', ' hidden')?>'> <?php echo $lang->story->closedReason;?></th>
<th class='w-80px<?php echo zget($visibleFields, 'keywords', ' hidden')?>'><?php echo $lang->story->keywords;?></th>
</tr>
</thead>
<tbody>
+4 -3
View File
@@ -64,9 +64,10 @@
if(count($plans) != 1)
{
echo "<div class='input-group-btn'>";
echo html::a($this->createLink('productplan', 'create', "productID=$productID&branch=$branch"), "<i class='icon icon-plus'></i>", '_blank', "class='btn' data-toggle='tooltip' title='{$lang->productplan->create}'");
echo '&nbsp; ';
echo html::a("javascript:loadProductPlans($productID)", "<i class='icon icon-refresh'></i>", '', "class='btn' data-toggle='tooltip' title='{$lang->refresh}'");
echo html::a($this->createLink('productplan', 'create', "productID=$productID&branch=$branch"), "<i class='icon icon-plus'></i>", '_blank', "class='btn btn-icon' data-toggle='tooltip' title='{$lang->productplan->create}'");
echo '</div>';
echo "<div class='input-group-btn'>";
echo html::a("javascript:loadProductPlans($productID)", "<i class='icon icon-refresh'></i>", '', "class='btn btn-icon' data-toggle='tooltip' title='{$lang->refresh}'");
echo '</div>';
}
?>
+1 -1
View File
@@ -33,7 +33,7 @@
<th class='w-hour'><?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
<th> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th> <?php common::printOrderLink('stage', $orderBy, $vars, $lang->story->stageAB);?></th>
<th class='w-180px'><?php echo $lang->actions;?></th>
<th class='c-actions-5'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+2 -2
View File
@@ -99,13 +99,13 @@ $config->task->datatable->fieldList['left']['required'] = 'no';
$config->task->datatable->fieldList['progress']['title'] = 'progress';
$config->task->datatable->fieldList['progress']['fixed'] = 'no';
$config->task->datatable->fieldList['progress']['width'] = '70';
$config->task->datatable->fieldList['progress']['width'] = '50';
$config->task->datatable->fieldList['progress']['required'] = 'no';
$config->task->datatable->fieldList['progress']['sort'] = 'no';
$config->task->datatable->fieldList['deadline']['title'] = 'deadlineAB';
$config->task->datatable->fieldList['deadline']['fixed'] = 'no';
$config->task->datatable->fieldList['deadline']['width'] = '70';
$config->task->datatable->fieldList['deadline']['width'] = '60';
$config->task->datatable->fieldList['deadline']['required'] = 'no';
$config->task->datatable->fieldList['openedBy']['title'] = 'openedByAB';
+2 -7
View File
@@ -1,9 +1,3 @@
.outer .chosen-container-single .chosen-drop {border-top: 1px solid #ddd!important}
.outer .chosen-container-single {max-width: 160px; border-radius: 0}
.outer .chosen-container-single .chosen-single {border-radius: 2px 0 0 2px;}
.outer .chosen-container-single + .input-group-btn > .btn {border-left: 0}
.outer .input-group > span {display: block; padding-right: 29px; max-width: 100%;}
.outer .input-group-btn > a {display: block; position: absolute; right: 0; width: 29px; top: 0}
.chosen-container[id^="story"] {width: 200px; max-width: 150px;}
.chosen-container[id^="story"] .chosen-drop {min-width: 450px !important;}
.chosen-container[id^="module"] .chosen-drop {min-width: 400px !important;}
@@ -13,10 +7,11 @@
#batchCreateForm .input-group .form-control {position: static;}
#batchCreateForm .input-group .colorpicker {z-index: 2;}
#batchCreateForm .input-group .colorpicker.open {z-index: 5;}
#batchCreateForm{overflow-x:auto;}
.main-header .pull-left {max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
#zeroTaskStory {margin: 0 0 0 20px; height: 32px; padding: 5px 5px 5px 5px; border-radius: 3px; border: 2px solid transparent;}
#zeroTaskStory > label:before {top: 7px; left: 5px;}
#zeroTaskStory > label:after {top: 5px; left: 5px;}
#zeroTaskStory.checked {border-color: #00a9fc; background: #E9F2FB;}
#zeroTaskStory.checked {border-color: #00a9fc; background: #E9F2FB;}
+1
View File
@@ -1 +1,2 @@
.chosen-container[id^="module"] .chosen-drop {min-width: 400px;!important}
#batchEditForm{overflow-x:auto;}
+5 -1
View File
@@ -2,7 +2,11 @@
delete defaultChosenOptions.width;
/* Remove 'ditto' in first row. */
$(document).ready(removeDitto());
$(function()
{
removeDitto();
if($('#batchCreateForm table thead tr th.c-name').width() < 200) $('#batchCreateForm table thead tr th.c-name').width(200);
});
/* Get select of stories.*/
function setStories(moduleID, projectID, num)
+8 -4
View File
@@ -15,7 +15,7 @@ function checkLeft()
}
}
$('.btn-move-up, .btn-move-down').click(function()
$(document).on('click', '.btn-move-up, .btn-move-down', function()
{
var $this = $(this);
if($this.hasClass('btn-move-up'))
@@ -59,7 +59,11 @@ $('#modalTeam .btn').click(function()
})
});
$('a.btn-move-add').on('click', function () {
var html = $("#modalTeam table.table tr").eq(-2).html();
$("#modalTeam table.table tr:last").before('<tr>' + html + '</tr>');
$(document).on('click', 'a.btn-move-add', function()
{
var html = $("#modalTeam table.table tbody tr:last").html();
$("#modalTeam table.table tbody tr:last").after('<tr>' + html + '</tr>');
$("#modalTeam table.table tbody tr:last").prev().find('.btn-move-down').removeClass('disabled').removeAttr('disabled');
adjustSortBtn();
});
+1 -1
View File
@@ -192,7 +192,7 @@ $(document).ready(function()
$('#estimate').attr('readonly', false);
}
});
$('#modalTeam').on('show', function()
$("[href='#modalTeam']").click(function()
{
adjustSortBtn();
});
+1 -1
View File
@@ -49,7 +49,7 @@
</tr>
<tr>
<td colspan='3' class='text-center'>
<?php echo html::submitButton();?>
<?php echo html::submitButton('', '', 'btn btn-primary btn-wide');?>
<?php echo html::linkButton($lang->goback, $this->session->taskList);?>
</td>
</tr>
+2 -2
View File
@@ -61,13 +61,13 @@
<?php if($project->type != 'ops'):?>
<th class='w-200px<?php echo zget($visibleFields, 'story', ' hidden') . zget($requiredFields, 'story', '', ' required'); echo $hiddenStory;?>'><?php echo $lang->task->story;?></th>
<?php endif;?>
<th class='required has-btn'><?php echo $lang->task->name;?></span></th>
<th class='c-name required has-btn'><?php echo $lang->task->name;?></span></th>
<th class='w-80px required'><?php echo $lang->typeAB;?></span></th>
<th class='w-150px<?php echo zget($visibleFields, 'assignedTo', ' hidden') . zget($requiredFields, 'assignedTo', '', ' required');?>'><?php echo $lang->task->assignedTo;?></th>
<th class='w-60px<?php echo zget($visibleFields, 'estimate', ' hidden') . zget($requiredFields, 'estimate', '', ' required');?>'><?php echo $lang->task->estimateAB;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'estStarted', ' hidden') . zget($requiredFields, 'estStarted', '', ' required');?>'><?php echo $lang->task->estStarted;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'deadline', ' hidden') . zget($requiredFields, 'deadline', '', ' required');?>'><?php echo $lang->task->deadline;?></th>
<th class='<?php echo zget($visibleFields, 'desc', ' hidden') . zget($requiredFields, 'desc', '', ' required');?>'><?php echo $lang->task->desc;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'desc', ' hidden') . zget($requiredFields, 'desc', '', ' required');?>'><?php echo $lang->task->desc;?></th>
<th class='w-80px<?php echo zget($visibleFields, 'pri', ' hidden') . zget($requiredFields, 'pri', '', ' required');?>'><?php echo $lang->task->pri;?></th>
</tr>
</thead>
+1 -1
View File
@@ -45,7 +45,7 @@
}
}
?>
<form class='main-form' method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "projectID={$projectID}")?>">
<form id='batchEditForm' class='main-form' method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "projectID={$projectID}")?>">
<table class='table table-form table-fixed with-border'>
<thead>
<tr>
+23 -21
View File
@@ -181,27 +181,29 @@
</div>
<div class='modal-content with-padding'>
<table class="table table-form">
<?php for($i = 0; $i < 5; $i++):?>
<tr>
<td><?php echo html::select("team[]", $members, '', "class='form-control chosen'");?></td>
<td>
<div class='input-group'>
<?php echo html::input("teamEstimate[]", '', "class='form-control text-center' placeholder='{$lang->task->estimateAB}'") ?>
<span class='input-group-addon'><?php echo $lang->task->hour;?></span>
</div>
</td>
<td class='w-90px'>
<a class='btn btn-move-add btn-icon btn-sm'><i class='icon-plus'></i></a>
<a class='btn btn-move-up btn-sm btn-icon'><i class='icon-arrow-up'></i></a>
<a class='btn btn-move-down btn-sm btn-icon'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endfor;?>
<tr>
<td colspan='3' class='text-center'>
<?php echo html::a('javascript:void(0)', $lang->confirm, '', "class='btn btn-primary' data-dismiss='modal'");?>
</td>
</tr>
<tbody>
<?php for($i = 0; $i < 5; $i++):?>
<tr>
<td><?php echo html::select("team[]", $members, '', "class='form-control chosen'");?></td>
<td>
<div class='input-group'>
<?php echo html::input("teamEstimate[]", '', "class='form-control text-center' placeholder='{$lang->task->estimateAB}'") ?>
<span class='input-group-addon'><?php echo $lang->task->hour;?></span>
</div>
</td>
<td class='w-90px'>
<a class='btn btn-move-add btn-icon btn-sm'><i class='icon-plus'></i></a>
<a class='btn btn-move-up btn-sm btn-icon'><i class='icon-arrow-up'></i></a>
<a class='btn btn-move-down btn-sm btn-icon'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endfor;?>
</tbody>
<tfoot>
<tr>
<td colspan='3' class='text-center'><?php echo html::a('javascript:void(0)', $lang->confirm, '', "class='btn btn-primary' data-dismiss='modal'");?></td>
</tr>
</tfoot>
</table>
</div>
</div>
+44 -40
View File
@@ -219,46 +219,50 @@
</div>
<div class="modal-content with-padding">
<table class='table table-form'>
<?php foreach($task->team as $member):?>
<tr>
<td class='w-250px'><?php echo html::select("team[]", $members, $member->account, "class='form-control chosen'")?></td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
<?php echo html::input("teamEstimate[]", $member->estimate, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->consumed?></span>
<?php echo html::input("teamConsumed[]", $member->consumed, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->left?></span>
<?php echo html::input("teamLeft[]", $member->left, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a href='javascript:;' class='btn btn-icon btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a href='javascript:;' class='btn btn-icon btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endforeach;?>
<?php for($i = 0; $i < 5; $i++):?>
<tr>
<td class='w-150px'><?php echo html::select("team[]", $members, '', "class='form-control chosen'")?></td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
<?php echo html::input("teamEstimate[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->consumed?></span>
<?php echo html::input("teamConsumed[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->left?></span>
<?php echo html::input("teamLeft[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a class='btn btn-move-add btn-icon btn-sm'><i class='icon-plus'></i></a>
<a class='btn btn-icon btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a class='btn btn-icon btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endfor;?>
<tr><td colspan='3' class='text-center'><?php echo html::a('javascript:void(0)', $lang->confirm, '', "class='btn btn-primary' data-dismiss='modal'");?></td></tr>
<tbody>
<?php foreach($task->team as $member):?>
<tr>
<td class='w-250px'><?php echo html::select("team[]", $members, $member->account, "class='form-control chosen'")?></td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
<?php echo html::input("teamEstimate[]", $member->estimate, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->consumed?></span>
<?php echo html::input("teamConsumed[]", $member->consumed, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->left?></span>
<?php echo html::input("teamLeft[]", $member->left, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a href='javascript:;' class='btn btn-icon btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a href='javascript:;' class='btn btn-icon btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endforeach;?>
<?php for($i = 0; $i < 5; $i++):?>
<tr>
<td class='w-150px'><?php echo html::select("team[]", $members, '', "class='form-control chosen'")?></td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
<?php echo html::input("teamEstimate[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->consumed?></span>
<?php echo html::input("teamConsumed[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
<span class='input-group-addon fix-border'><?php echo $lang->task->left?></span>
<?php echo html::input("teamLeft[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a class='btn btn-move-add btn-icon btn-sm'><i class='icon-plus'></i></a>
<a class='btn btn-icon btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a class='btn btn-icon btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
</td>
</tr>
<?php endfor;?>
</tbody>
<tfoot>
<tr><td colspan='3' class='text-center'><?php echo html::a('javascript:void(0)', $lang->confirm, '', "class='btn btn-primary' data-dismiss='modal'");?></td></tr>
</tfoot>
</table>
</div>
</div>
+1 -1
View File
@@ -45,7 +45,7 @@
<th class="w-60px"><?php echo $lang->task->consumedThisTime;?></th>
<th class="w-60px"><?php echo $lang->task->leftThisTime;?></th>
<th><?php echo $lang->comment;?></th>
<th class='c-actions'><?php echo $lang->actions;?></th>
<th class='c-actions-2'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
+2 -2
View File
@@ -83,7 +83,7 @@ $config->testcase->datatable->fieldList['id']['required'] = 'yes';
$config->testcase->datatable->fieldList['pri']['title'] = 'priAB';
$config->testcase->datatable->fieldList['pri']['fixed'] = 'left';
$config->testcase->datatable->fieldList['pri']['width'] = '50';
$config->testcase->datatable->fieldList['pri']['width'] = '40';
$config->testcase->datatable->fieldList['pri']['required'] = 'no';
$config->testcase->datatable->fieldList['title']['title'] = 'title';
@@ -148,7 +148,7 @@ $config->testcase->datatable->fieldList['lastRunner']['required'] = 'no';
$config->testcase->datatable->fieldList['lastRunDate']['title'] = 'lastRunDate';
$config->testcase->datatable->fieldList['lastRunDate']['fixed'] = 'no';
$config->testcase->datatable->fieldList['lastRunDate']['width'] = '100';
$config->testcase->datatable->fieldList['lastRunDate']['width'] = '90';
$config->testcase->datatable->fieldList['lastRunDate']['required'] = 'no';
$config->testcase->datatable->fieldList['lastRunResult']['title'] = 'lastRunResult';
+1
View File
@@ -9,3 +9,4 @@
#batchCreateForm .input-group .form-control {position: static;}
#batchCreateForm .input-group .colorpicker {z-index: 2;}
#batchCreateForm .input-group .colorpicker.open {z-index: 5;}
#batchCreateForm {overflow-x: auto;}

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