Merge branch 'master' of github.com:easysoft/zentaopms
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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,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;}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>";
|
||||
|
||||
@@ -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;}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
#batchCreateForm{overflow-x:auto;}
|
||||
|
||||
@@ -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,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
@@ -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()
|
||||
{
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
function setModal4List(colorboxClass, replaceID)
|
||||
{
|
||||
if(config.onlybody != 'yes') $('.iframe').modalTrigger({width:900, type:'iframe', afterHide:function(){location.href=location.href;}})
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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 = '新建';
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'):?>
|
||||
|
||||
@@ -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);?>
|
||||
|
||||
@@ -70,7 +70,4 @@
|
||||
</form>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<script>
|
||||
$(function(){ajaxGetSearchForm();});
|
||||
</script>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -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;}
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("a.preview").modalTrigger({width:1000, type:'iframe'});
|
||||
})
|
||||
|
||||
/**
|
||||
* Load branches
|
||||
*
|
||||
|
||||
@@ -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'> <?php echo $lang->build->last . ': <strong>' . $lastBuild->name . '</strong>';?></div>
|
||||
<div class='help-block'> <?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>
|
||||
|
||||
@@ -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¶m=$param");?>'>
|
||||
<div class='table-header'>
|
||||
@@ -72,6 +72,6 @@
|
||||
<script>
|
||||
$(function()
|
||||
{
|
||||
ajaxGetSearchForm('#bugs .linkBox #querybox');
|
||||
// ajaxGetSearchForm('#bugs .linkBox #querybox');
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -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¶m=$param");?>'>
|
||||
<div class='table-header'>
|
||||
@@ -76,6 +76,6 @@
|
||||
<script>
|
||||
$(function()
|
||||
{
|
||||
ajaxGetSearchForm('#stories .linkBox #querybox');
|
||||
// ajaxGetSearchForm('#stories .linkBox #querybox');
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -57,6 +57,7 @@ $lang->required = '必填';
|
||||
$lang->noData = '暂无';
|
||||
|
||||
$lang->actions = '操作';
|
||||
$lang->restore = '恢复默认';
|
||||
$lang->comment = '备注';
|
||||
$lang->history = '历史记录';
|
||||
$lang->attatch = '附件';
|
||||
|
||||
@@ -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'];
|
||||
|
||||
@@ -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,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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'))
|
||||
{
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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§ion=$section&key=$key");
|
||||
}
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
|
||||
|
||||
+61
-53
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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> " . $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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 +1 @@
|
||||
.user{display:block; width:80px; float:left; overflow:hidden}
|
||||
.c-actions{width: 220px;}
|
||||
.user {display:block; width:80px; float:left; overflow:hidden}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,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}
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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';?>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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¶m=$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¶m=$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');
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'>
|
||||
|
||||
@@ -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;}
|
||||
|
||||
@@ -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});
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'>×</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'>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;?>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
$product = $this->product->getById($productID);
|
||||
$removeLink = $browseType == 'byproduct' ? inlink('task', "projectID=$projectID&browseType=$status¶m=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'>×</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¶m=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("moduleBrowseParam")';
|
||||
echo $module->name;
|
||||
echo html::a($removeLink, "<span class='close'>×</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");
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'>
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -6,3 +6,4 @@
|
||||
#batchCreateForm .col-pri {width: 100px;}
|
||||
#batchCreateForm .col-review,
|
||||
#batchCreateForm .col-estimate {width: 90px;}
|
||||
#batchCreateForm {overflow-x:auto;}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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=¶m=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>';
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 ' ';
|
||||
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>';
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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 +1,2 @@
|
||||
.chosen-container[id^="module"] .chosen-drop {min-width: 400px;!important}
|
||||
#batchEditForm{overflow-x:auto;}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
@@ -192,7 +192,7 @@ $(document).ready(function()
|
||||
$('#estimate').attr('readonly', false);
|
||||
}
|
||||
});
|
||||
$('#modalTeam').on('show', function()
|
||||
$("[href='#modalTeam']").click(function()
|
||||
{
|
||||
adjustSortBtn();
|
||||
});
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user