Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -21,8 +21,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id='mainContent' class='main-content'>
|
<div id='mainContent'>
|
||||||
<div class='main-table'>
|
<div class='main-table' data-ride='table'>
|
||||||
<table class='table has-sort-head'>
|
<table class='table has-sort-head'>
|
||||||
<?php $vars = "type=$type&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
|
<?php $vars = "type=$type&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
|
||||||
<thead>
|
<thead>
|
||||||
@@ -38,13 +38,18 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<?php foreach($trashes as $action):?>
|
<?php foreach($trashes as $action):?>
|
||||||
<?php $module = $action->objectType == 'case' ? 'testcase' : $action->objectType;?>
|
<?php $module = $action->objectType == 'case' ? 'testcase' : $action->objectType;?>
|
||||||
<tr class='text-center'>
|
<tr>
|
||||||
<td><?php echo zget($lang->action->objectTypes, $action->objectType, '');?></td>
|
<td><?php echo zget($lang->action->objectTypes, $action->objectType, '');?></td>
|
||||||
<td><?php echo $action->objectID;?></td>
|
<td><?php echo $action->objectID;?></td>
|
||||||
<td class='text-left'>
|
<td class='text-left'>
|
||||||
<?php
|
<?php
|
||||||
$methodName = $module == 'caselib' ? 'libview' : 'view';
|
|
||||||
$params = $action->objectType == 'user' ? "account={$action->objectName}" : "id={$action->objectID}";
|
$params = $action->objectType == 'user' ? "account={$action->objectName}" : "id={$action->objectID}";
|
||||||
|
$methodName = 'view';
|
||||||
|
if($module == 'caselib')
|
||||||
|
{
|
||||||
|
$methodName = 'libview';
|
||||||
|
$module = 'testsuite';
|
||||||
|
}
|
||||||
if($module == 'doclib' or $module == 'module')
|
if($module == 'doclib' or $module == 'module')
|
||||||
{
|
{
|
||||||
echo $action->objectName;
|
echo $action->objectName;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
.block-statistic .nav-stacked {overflow: auto; max-height: 220px;}
|
.block-statistic .nav-stacked {overflow: auto; max-height: 220px;}
|
||||||
.nav > li > .btn {padding: 0 5px; line-height: 24px; margin: 3px; color: #3C4353;}
|
.nav > li > .btn {padding: 0 5px; line-height: 24px; margin: 3px; color: #3C4353;}
|
||||||
.dashboard .panel-body {max-height: 400px;overflow: auto;}
|
.dashboard .panel-body {max-height: 400px; overflow: auto;}
|
||||||
|
.dashboard .panel.table-scrolled .table-header-fixed {border-bottom: 1px solid #ddd; box-shadow: 0 1px 1px rgba(0,0,0,.05), 0 2px 4px 0 rgba(0,0,0,0.025);}
|
||||||
@@ -69,10 +69,10 @@ function resizeBlock(event)
|
|||||||
*/
|
*/
|
||||||
function initTableHeader()
|
function initTableHeader()
|
||||||
{
|
{
|
||||||
$('#dashboard .panel-block').each(function()
|
$('#dashboard .table-fixed-head').each(function()
|
||||||
{
|
{
|
||||||
var $panel = $(this);
|
var $table = $(this);
|
||||||
var $table = $panel.find('.table:first');
|
var $panel = $table.closest('.panel');
|
||||||
|
|
||||||
if(!$table.length || !$table.children('thead').length || ($panel.find('#assigntomeBlock').length && $panel.find('#assigntomeBlock > div').length > 1)) return;
|
if(!$table.length || !$table.children('thead').length || ($panel.find('#assigntomeBlock').length && $panel.find('#assigntomeBlock > div').length > 1)) return;
|
||||||
var isFixed = $panel.find('.panel-body').height() < $table.outerHeight();
|
var isFixed = $panel.find('.panel-body').height() < $table.outerHeight();
|
||||||
@@ -87,7 +87,7 @@ function initTableHeader()
|
|||||||
var tableWidth = $table.width();
|
var tableWidth = $table.width();
|
||||||
if(!$header.length)
|
if(!$header.length)
|
||||||
{
|
{
|
||||||
$header = $('<div class="table-header-fixed" style="position: absolute; left: 0; top: 0; right: 0;"><table class="table table-fixed"></table></div>').css('right', $panel.width() - tableWidth).css('min-width', tableWidth);
|
$header = $('<div class="table-header-fixed" style="position: absolute; left: 0; top: 0; right: 0; padding: 10px 10px 0; background: #fff;"><table class="table table-fixed no-margin"></table></div>').css('right', $panel.width() - tableWidth - 20).css('min-width', tableWidth);
|
||||||
var $oldTableHead = $table.find('thead');
|
var $oldTableHead = $table.find('thead');
|
||||||
$oldTableHead.find('th').each(function(idx)
|
$oldTableHead.find('th').each(function(idx)
|
||||||
{
|
{
|
||||||
@@ -123,6 +123,16 @@ function initTableHeader()
|
|||||||
$fixedTh.eq(idx).width($(this).width());
|
$fixedTh.eq(idx).width($(this).width());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var timeoutCall = null;
|
||||||
|
$table.parent().off('scroll.initTableHeader').on('scroll.initTableHeader', function()
|
||||||
|
{
|
||||||
|
clearTimeout(timeoutCall);
|
||||||
|
var $tableContainer = $(this);
|
||||||
|
timeoutCall = setTimeout(function() {
|
||||||
|
$panel.toggleClass('table-scrolled', $tableContainer.scrollTop() > 0);
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,5 +192,7 @@ $(function()
|
|||||||
// // $dashboard.find('ul.dashboard-actions').addClass('hide').children('li').addClass('right').appendTo($('#modulemenu > .nav'));
|
// // $dashboard.find('ul.dashboard-actions').addClass('hide').children('li').addClass('right').appendTo($('#modulemenu > .nav'));
|
||||||
// $dashboard.find('[data-toggle=tooltip]').tooltip({container: 'body'});
|
// $dashboard.find('[data-toggle=tooltip]').tooltip({container: 'body'});
|
||||||
|
|
||||||
// initTableHeader();
|
initTableHeader();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
?>
|
?>
|
||||||
<style>
|
<style>
|
||||||
.block-bugs .c-id {width: 55px;}
|
.block-bugs .c-id {width: 55px;}
|
||||||
.block-bugs .c-level {width: 50px;text-align: center;}
|
.block-bugs .c-level {width: 60px;text-align: center;}
|
||||||
.block-bugs .c-pri {width: 35px;text-align: center;}
|
.block-bugs .c-pri {width: 35px;text-align: center;}
|
||||||
.block-bugs .c-deadline {width: 95px;}
|
.block-bugs .c-deadline {width: 95px;}
|
||||||
.block-bugs .c-status {width: 80px;}
|
.block-bugs .c-status {width: 80px;}
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
.block-bugs.block-sm .c-status {text-align: center;}
|
.block-bugs.block-sm .c-status {text-align: center;}
|
||||||
</style>
|
</style>
|
||||||
<div class='panel-body has-table'>
|
<div class='panel-body has-table'>
|
||||||
<table class='table table-borderless table-fixed-head table-hover block-bugs <?php if(!$longBlock) echo 'block-sm'?>'>
|
<table class='table table-borderless table-fixed-head table-hover tablesorter block-bugs <?php if(!$longBlock) echo 'block-sm'?>'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class='c-id-xs'><?php echo $lang->idAB?></th>
|
<th class='c-id-xs'><?php echo $lang->idAB?></th>
|
||||||
@@ -44,7 +44,9 @@
|
|||||||
<?php if($longBlock):?>
|
<?php if($longBlock):?>
|
||||||
<td class='c-pri'><span class='label-pri label-pri-<?php echo $bug->pri?>' title='<?php echo zget($lang->bug->priList, $bug->pri);?>'><?php echo zget($lang->bug->priList, $bug->pri)?></span></td>
|
<td class='c-pri'><span class='label-pri label-pri-<?php echo $bug->pri?>' title='<?php echo zget($lang->bug->priList, $bug->pri);?>'><?php echo zget($lang->bug->priList, $bug->pri)?></span></td>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
<td class='c-severity'><span class='label-severity' title='<?php echo zget($lang->bug->severityList, $bug->severity);?>' data-severity='<?php echo zget($lang->bug->severityList, $bug->severity);?>'></span></td>
|
<td class='c-severity'>
|
||||||
|
<span class='label-severity' title='<?php echo zget($lang->bug->severityList, $bug->severity);?>' data-severity='<?php echo $bug->severity;?>'></span>
|
||||||
|
</td>
|
||||||
<td class='c-name' style='color: <?php echo $bug->color?>' title='<?php echo $bug->title?>'><?php echo $bug->title?></td>
|
<td class='c-name' style='color: <?php echo $bug->color?>' title='<?php echo $bug->title?>'><?php echo $bug->title?></td>
|
||||||
<td class='c-status' title='<?php echo zget($lang->bug->statusList, $bug->status)?>'>
|
<td class='c-status' title='<?php echo zget($lang->bug->statusList, $bug->status)?>'>
|
||||||
<span class="status-<?php echo $bug->status?>">
|
<span class="status-<?php echo $bug->status?>">
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<div class='panel-body has-table'>
|
<div class='panel-body has-table'>
|
||||||
<table class='table table-borderless table-hover table-fixed-head block-builds'>
|
<table class='table table-borderless table-hover table-fixed-head tablesorter block-builds'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class='w-id text-center'><?php echo $lang->idAB?></th>
|
<th class='w-id text-center'><?php echo $lang->idAB?></th>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
.case-status-investigate {color: #a6aab8;}
|
.case-status-investigate {color: #a6aab8;}
|
||||||
.case-status-investigate > .label-dot {background-color: #006af1;}
|
.case-status-investigate > .label-dot {background-color: #006af1;}
|
||||||
</style>
|
</style>
|
||||||
<table class='table table-borderless table-hover table-fixed-head block-cases <?php if(!$longBlock) echo 'block-sm';?>'>
|
<table class='table table-borderless table-hover table-fixed-head tablesorter block-cases <?php if(!$longBlock) echo 'block-sm';?>'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr class='text-center'>
|
<tr class='text-center'>
|
||||||
<?php if($longBlock):?>
|
<?php if($longBlock):?>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ $useGuest = $this->app->user->account == 'guest';
|
|||||||
?>
|
?>
|
||||||
<?php include '../../common/view/tablesorter.html.php';?>
|
<?php include '../../common/view/tablesorter.html.php';?>
|
||||||
<div class='dashboard' id='dashboard' data-confirm-remove-block='<?php echo $lang->block->confirmRemoveBlock;?>'>
|
<div class='dashboard' id='dashboard' data-confirm-remove-block='<?php echo $lang->block->confirmRemoveBlock;?>'>
|
||||||
<div>
|
<div class="row">
|
||||||
<div class='col-md-8 col-main'>
|
<div class='col-md-8 col-main'>
|
||||||
<?php foreach($longBlocks as $index => $block):?>
|
<?php foreach($longBlocks as $index => $block):?>
|
||||||
<?php if(isset($config->block->closed) and strpos(",{$config->block->closed},", ",{$block->source}|{$block->block},") !== false) continue;?>
|
<?php if(isset($config->block->closed) and strpos(",{$config->block->closed},", ",{$block->source}|{$block->block},") !== false) continue;?>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<div class='panel-body has-table'>
|
<div class='panel-body has-table'>
|
||||||
<table class='table table-borderless table-hover table-fixed-head block-plan'>
|
<table class='table table-borderless table-hover table-fixed-head tablesorter block-plan'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<?php if($longBlock):?>
|
<?php if($longBlock):?>
|
||||||
|
|||||||
@@ -11,13 +11,22 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<div id='assigntomeBlock'>
|
<div id='assigntomeBlock'>
|
||||||
<?php foreach($hasViewPriv as $type => $bool):?>
|
<ul class="nav nav-secondary">
|
||||||
<div id="<?php echo $type?>">
|
<?php foreach($hasViewPriv as $type => $bool):?>
|
||||||
<?php include "{$type}block.html.php";?>
|
<li<?php if($type === 'todo') echo ' class="active"';?>><a data-tab href='#assigntomeTab-<?php echo $type;?>'><?php echo $lang->block->availableBlocks->$type;?></a></li>
|
||||||
|
<?php endforeach;?>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content">
|
||||||
|
<?php foreach($hasViewPriv as $type => $bool):?>
|
||||||
|
<div class="tab-pane<?php if($type === 'todo') echo ' active';?>" id="assigntomeTab-<?php echo $type?>">
|
||||||
|
<?php include "{$type}block.html.php";?>
|
||||||
|
</div>
|
||||||
|
<?php endforeach;?>
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach;?>
|
|
||||||
</div>
|
</div>
|
||||||
<style>
|
<style>
|
||||||
#assigntomeBlock #todo,
|
#assigntomeBlock {position: relative;}
|
||||||
#assigntomeBlock #task {border-bottom: 1px solid #eee;}
|
#assigntomeBlock .block-todoes {padding-top: 10px}
|
||||||
|
#assigntomeBlock > .nav {position: absolute; top: -41px; left: 120px;}
|
||||||
|
#assigntomeBlock .block-todoes .todoes-form{top: -55px;}
|
||||||
</style>
|
</style>
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
.block-products.block-sm .c-project {display: none;}
|
.block-products.block-sm .c-project {display: none;}
|
||||||
</style>
|
</style>
|
||||||
<div class="panel-body has-table block-products">
|
<div class="panel-body has-table block-products">
|
||||||
<table class='table table-borderless table-hover table-fixed-head table-fixed'>
|
<table class='table table-borderless table-hover table-fixed-head tablesorter table-fixed'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class='c-name'><?php echo $lang->product->name;?></th>
|
<th class='c-name'><?php echo $lang->product->name;?></th>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<div class="panel-body has-table">
|
<div class="panel-body has-table">
|
||||||
<table class='table table-borderless table-hover table-fixed-head block-projects'>
|
<table class='table table-borderless table-hover table-fixed-head tablesorter block-projects tablesorter'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr class='text-center'>
|
<tr class='text-center'>
|
||||||
<th class='c-name text-left'><?php echo $lang->project->name;?></th>
|
<th class='c-name text-left'><?php echo $lang->project->name;?></th>
|
||||||
|
|||||||
@@ -17,6 +17,6 @@
|
|||||||
<div class='form-group'>
|
<div class='form-group'>
|
||||||
<label for='grid' class='col-sm-3'><?php echo $lang->block->grid;?></label>
|
<label for='grid' class='col-sm-3'><?php echo $lang->block->grid;?></label>
|
||||||
<div class='col-sm-7'>
|
<div class='col-sm-7'>
|
||||||
<?php echo html::select('grid', $lang->block->gridOptions, $block ? $block->grid : 8, "class='form-control chosen chosen-simple'")?>
|
<?php echo html::select('grid', $lang->block->gridOptions, $block ? $block->grid : 8, "class='form-control chosen'")?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -29,6 +29,7 @@
|
|||||||
.block-statistic .nav-stacked {overflow: auto; max-height: 247px;}
|
.block-statistic .nav-stacked {overflow: auto; max-height: 247px;}
|
||||||
.block-statistic .progress-pie .progress-info > strong {font-size: 24px;}
|
.block-statistic .progress-pie .progress-info > strong {font-size: 24px;}
|
||||||
.block-statistic .chosen-single {font-size: 16px; font-weight: bold;}
|
.block-statistic .chosen-single {font-size: 16px; font-weight: bold;}
|
||||||
|
.block-statistic .chosen-container-single .chosen-single div b {top: -2px}
|
||||||
</style>
|
</style>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="table-row">
|
<div class="table-row">
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<div class='panel-body has-table'>
|
<div class='panel-body has-table'>
|
||||||
<table class='table table-borderless table-hover table-fixed block-release'>
|
<table class='table table-borderless table-hover table-fixed tablesorter block-release'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<?php if($longBlock):?>
|
<?php if($longBlock):?>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
.block-stories.block-sm .c-status {text-align: center;}
|
.block-stories.block-sm .c-status {text-align: center;}
|
||||||
</style>
|
</style>
|
||||||
<div class='panel-body has-table'>
|
<div class='panel-body has-table'>
|
||||||
<table class='table table-borderless table-hover table-fixed-head block-stories <?php if(!$longBlock) echo 'block-sm'?>'>
|
<table class='table table-borderless table-hover table-fixed-head tablesorter block-stories <?php if(!$longBlock) echo 'block-sm'?>'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<?php if($longBlock):?>
|
<?php if($longBlock):?>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<style>
|
<style>
|
||||||
.block-tasks .c-id {width: 55px;}
|
.block-tasks .c-id {width: 55px;}
|
||||||
.block-tasks .c-pri {width: 45px;text-align: center;}
|
.block-tasks .c-pri {width: 45px;text-align: center;}
|
||||||
.block-tasks .c-estimate {width: 55px;}
|
.block-tasks .c-estimate {width: 60px;}
|
||||||
.block-tasks .c-deadline {width: 95px;}
|
.block-tasks .c-deadline {width: 95px;}
|
||||||
.block-tasks .c-status {width: 80px;}
|
.block-tasks .c-status {width: 80px;}
|
||||||
.block-tasks.block-sm .estimate,
|
.block-tasks.block-sm .estimate,
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
.block-tasks.block-sm .c-status {text-align: center;}
|
.block-tasks.block-sm .c-status {text-align: center;}
|
||||||
</style>
|
</style>
|
||||||
<div class='panel-body has-table'>
|
<div class='panel-body has-table'>
|
||||||
<table class='table table-borderless table-hover table-fixed-head block-tasks <?php if(!$longBlock) echo 'block-sm';?>'>
|
<table class='table table-borderless table-hover table-fixed-head tablesorter block-tasks <?php if(!$longBlock) echo 'block-sm';?>'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class='c-id-xs'><?php echo $lang->idAB;?></th>
|
<th class='c-id-xs'><?php echo $lang->idAB;?></th>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<div class='panel-body has-table'>
|
<div class='panel-body has-table'>
|
||||||
<table class='table table-borderless table-hover table-fixed-head block-testtask'>
|
<table class='table table-borderless table-hover table-fixed-head tablesorter block-testtask'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr class='text-center'>
|
<tr class='text-center'>
|
||||||
<?php if($longBlock):?>
|
<?php if($longBlock):?>
|
||||||
|
|||||||
@@ -11,13 +11,13 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<style>
|
<style>
|
||||||
.block-todoes .panel-body {position: relative; padding-top: 42px;}
|
.block-todoes .panel-body {position: relative; padding-top: 42px; overflow: visible;}
|
||||||
.block-todoes .todoes-input {position: absolute;top: 0;right: 0;left: 0;padding: 0 20px 20px 20px;}
|
.block-todoes .todoes-input {position: absolute;top: 0;right: 0;left: 0;padding: 0 20px 20px 20px;}
|
||||||
.block-todoes .todoes-input .form-control::-webkit-input-placeholder {font-size: 12px;line-height: 20px;color: #a4a8b6;}
|
.block-todoes .todoes-input .form-control::-webkit-input-placeholder {font-size: 12px;line-height: 20px;color: #a4a8b6;}
|
||||||
.block-todoes .todoes-input .form-control::-moz-placeholder {font-size: 12px;line-height: 20px;color: #a4a8b6;}
|
.block-todoes .todoes-input .form-control::-moz-placeholder {font-size: 12px;line-height: 20px;color: #a4a8b6;}
|
||||||
.block-todoes .todoes-input .form-control:-ms-input-placeholder {font-size: 12px;line-height: 20px;color: #a4a8b6;}
|
.block-todoes .todoes-input .form-control:-ms-input-placeholder {font-size: 12px;line-height: 20px;color: #a4a8b6;}
|
||||||
.block-todoes .todoes-input .form-control::placeholder {font-size: 12px;line-height: 20px;color: #a4a8b6;}
|
.block-todoes .todoes-input .form-control::placeholder {font-size: 12px;line-height: 20px;color: #a4a8b6;}
|
||||||
.block-todoes .todoes {padding-left: 0;margin: 0 -10px;}
|
.block-todoes .todoes {padding: 0 10px; margin: 0 -20px; max-height: 350px; overflow: auto;}
|
||||||
.block-todoes .todoes > li {position: relative;padding: 5px 10px 5px 35px;list-style: none;}
|
.block-todoes .todoes > li {position: relative;padding: 5px 10px 5px 35px;list-style: none;}
|
||||||
.block-todoes .todoes > li:hover {background-color: #e9f2fb;}
|
.block-todoes .todoes > li:hover {background-color: #e9f2fb;}
|
||||||
.block-todoes .todo-title {display: block;padding: 5px;}
|
.block-todoes .todo-title {display: block;padding: 5px;}
|
||||||
@@ -59,13 +59,13 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="todoBegin" class="col-sm-2"><?php echo $lang->todo->beginAndEnd?></label>
|
<label for="todoBegin" class="col-sm-2"><?php echo $lang->todo->beginAndEnd?></label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<select name="begin" id="todoBegin" class="form-control chosen-simple">
|
<select name="begin" id="todoBegin" class="form-control">
|
||||||
<option value=""><?php echo $lang->todo->lblDisableDate;?></option>
|
<option value=""><?php echo $lang->todo->lblDisableDate;?></option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<label class="col-sm-1 text-center hide-empty-begin" for="todoEnd"> ~ </label>
|
<label class="col-sm-1 text-center hide-empty-begin" for="todoEnd"> ~ </label>
|
||||||
<div class="col-sm-4 hide-empty-begin">
|
<div class="col-sm-4 hide-empty-begin">
|
||||||
<select name="end" id="todoEnd" class="form-control chosen-simple"></select>
|
<select name="end" id="todoEnd" class="form-control"></select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|||||||
@@ -1598,6 +1598,7 @@ class bug extends control
|
|||||||
$mailto = trim($mailto);
|
$mailto = trim($mailto);
|
||||||
if(isset($users[$mailto])) $bug->mailto .= $users[$mailto] . ',';
|
if(isset($users[$mailto])) $bug->mailto .= $users[$mailto] . ',';
|
||||||
}
|
}
|
||||||
|
$bug->mailto = rtrim($bug->mailto, ',');
|
||||||
|
|
||||||
unset($bug->caseVersion);
|
unset($bug->caseVersion);
|
||||||
unset($bug->result);
|
unset($bug->result);
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1 +1,3 @@
|
|||||||
.chosen-container[id^="plan"] .chosen-drop {min-width: 300px; border-top: 1px solid #ddd!important}
|
.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}
|
||||||
@@ -129,7 +129,7 @@ $lang->bug->resolvedByMeAB = 'Resolved By Me';
|
|||||||
$lang->bug->ditto = 'Ditto';
|
$lang->bug->ditto = 'Ditto';
|
||||||
$lang->bug->dittoNotice = 'This bug is not linked to the same product as the last one!';
|
$lang->bug->dittoNotice = 'This bug is not linked to the same product as the last one!';
|
||||||
$lang->bug->noAssigned = 'Not Assigned';
|
$lang->bug->noAssigned = 'Not Assigned';
|
||||||
$lang->bug->noBug = 'No BUG. You could ';
|
$lang->bug->noBug = 'No Bug. You could ';
|
||||||
$lang->bug->noModule = '<div>You have no modules</div><div>Manage now</div>';
|
$lang->bug->noModule = '<div>You have no modules</div><div>Manage now</div>';
|
||||||
|
|
||||||
/* 页面标签。*/
|
/* 页面标签。*/
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ $lang->bug->resolvedByMeAB = '由我解决';
|
|||||||
$lang->bug->ditto = '同上';
|
$lang->bug->ditto = '同上';
|
||||||
$lang->bug->dittoNotice = '该bug与上一bug不属于同一产品!';
|
$lang->bug->dittoNotice = '该bug与上一bug不属于同一产品!';
|
||||||
$lang->bug->noAssigned = '未指派';
|
$lang->bug->noAssigned = '未指派';
|
||||||
$lang->bug->noBug = '暂时没有BUG,您现在可以';
|
$lang->bug->noBug = '暂时没有Bug,您现在可以';
|
||||||
$lang->bug->noModule = '<div>您现在还没有模块信息</div><div>请维护测试模块</div>';
|
$lang->bug->noModule = '<div>您现在还没有模块信息</div><div>请维护测试模块</div>';
|
||||||
|
|
||||||
/* 页面标签。*/
|
/* 页面标签。*/
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<?php include '../../common/view/header.html.php';?>
|
<?php include '../../common/view/header.html.php';?>
|
||||||
<div id='mainContent' class='main-content'>
|
<div id='mainContent' class='main-content fade'>
|
||||||
<div class='main-header'>
|
<div class='main-header'>
|
||||||
<h2>
|
<h2>
|
||||||
<?php echo $lang->bug->batchCreate;?>
|
<?php echo $lang->bug->batchCreate;?>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<?php include '../../common/view/header.html.php';?>
|
<?php include '../../common/view/header.html.php';?>
|
||||||
<?php include '../../common/view/datepicker.html.php';?>
|
<?php include '../../common/view/datepicker.html.php';?>
|
||||||
<?php js::set('dittoNotice', $this->lang->bug->dittoNotice);?>
|
<?php js::set('dittoNotice', $this->lang->bug->dittoNotice);?>
|
||||||
<div id='mainContent' class='main-content'>
|
<div id='mainContent' class='main-content fade'>
|
||||||
<div class='main-header'>
|
<div class='main-header'>
|
||||||
<h2><?php echo $lang->bug->common . $lang->colon . $lang->bug->batchEdit;?></h2>
|
<h2><?php echo $lang->bug->common . $lang->colon . $lang->bug->batchEdit;?></h2>
|
||||||
<div class="pull-right btn-toolbar">
|
<div class="pull-right btn-toolbar">
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
<th class='w-100px<?php echo zget($visibleFields, 'browser', ' hidden') . zget($requiredFields, 'browser', '', ' required');?>'><?php echo $lang->bug->browser;?></th>
|
<th class='w-100px<?php echo zget($visibleFields, 'browser', ' hidden') . zget($requiredFields, 'browser', '', ' required');?>'><?php echo $lang->bug->browser;?></th>
|
||||||
<th class='w-100px<?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>
|
||||||
<th class='w-120px<?php echo zget($visibleFields, 'resolvedBy', ' hidden')?>'><?php echo $lang->bug->resolvedByAB;?></th>
|
<th class='w-120px<?php echo zget($visibleFields, 'resolvedBy', ' hidden')?>'><?php echo $lang->bug->resolvedByAB;?></th>
|
||||||
<th class='w-120px<?php echo zget($visibleFields, 'resolution', ' hidden')?>'><?php echo $lang->bug->resolutionAB;?></th>
|
<th class='w-150px<?php echo zget($visibleFields, 'resolution', ' hidden')?>'><?php echo $lang->bug->resolutionAB;?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -125,11 +125,11 @@
|
|||||||
<td <?php echo zget($visibleFields, 'keywords', "class='hidden'")?>><?php echo html::input("keywords[$bugID]", $bug->keywords, 'class=form-control');?></td>
|
<td <?php echo zget($visibleFields, 'keywords', "class='hidden'")?>><?php echo html::input("keywords[$bugID]", $bug->keywords, 'class=form-control');?></td>
|
||||||
<td class='<?php echo zget($visibleFields, 'resolvedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("resolvedBys[$bugID]", $users, $bug->resolvedBy, "class='form-control chosen'");?></td>
|
<td class='<?php echo zget($visibleFields, 'resolvedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("resolvedBys[$bugID]", $users, $bug->resolvedBy, "class='form-control chosen'");?></td>
|
||||||
<td <?php echo zget($visibleFields, 'resolution', "class='hidden'")?>>
|
<td <?php echo zget($visibleFields, 'resolution', "class='hidden'")?>>
|
||||||
<table class='table-borderless w-100px'>
|
<table class='table-borderless table no-margin'>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='pd-0'><?php echo html::select("resolutions[$bugID]", $resolutionList, $bug->resolution, "class=form-control onchange=setDuplicate(this.value,$bugID)");?></td>
|
<td class='pd-0'><?php echo html::select("resolutions[$bugID]", $resolutionList, $bug->resolution, "class='form-control' onchange=setDuplicate(this.value,$bugID)");?></td>
|
||||||
<td class='pd-0 w-p50' id='<?php echo 'duplicateBugBox' . $bugID;?>' <?php if($bug->resolution != 'duplicate') echo "style='display:none'";?>>
|
<td class='pd-0 w-p50' id='<?php echo 'duplicateBugBox' . $bugID;?>' <?php if($bug->resolution != 'duplicate') echo "style='display:none'";?>>
|
||||||
<?php echo html::input("duplicateBugs[$bugID]", '', "class=form-control placeholder='{$lang->bug->duplicateBug}'");?>
|
<?php echo html::input("duplicateBugs[$bugID]", '', "class='form-control duplicate-input' placeholder='{$lang->bug->duplicateBug}'");?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -35,11 +35,11 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
|
|||||||
<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i> <?php echo $lang->bug->byQuery;?></a></li>
|
<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i> <?php echo $lang->bug->byQuery;?></a></li>
|
||||||
<li class='right'>
|
<li class='right'>
|
||||||
<div class='btn-group' id='createActionMenu'>
|
<div class='btn-group' id='createActionMenu'>
|
||||||
<?php
|
<?php
|
||||||
$misc = common::hasPriv('bug', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
|
$misc = common::hasPriv('bug', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
|
||||||
$link = common::hasPriv('bug', 'create') ? $this->createLink('bug', 'create', "productID=$productID&branch=$branch&extra=moduleID=$moduleID") : '#';
|
$link = common::hasPriv('bug', 'create') ? $this->createLink('bug', 'create', "productID=$productID&branch=$branch&extra=moduleID=$moduleID") : '#';
|
||||||
echo html::a($link, "<i class='icon icon-plus'></i>" . $lang->bug->create, '', $misc);
|
echo html::a($link, "<i class='icon icon-plus'></i>" . $lang->bug->create, '', $misc);
|
||||||
|
|
||||||
$misc = common::hasPriv('bug', 'batchCreate') ? '' : "disabled";
|
$misc = common::hasPriv('bug', 'batchCreate') ? '' : "disabled";
|
||||||
$link = common::hasPriv('bug', 'batchCreate') ? $this->createLink('bug', 'batchCreate', "productID=$productID&branch=$branch&projectID=0&moduleID=$moduleID") : '#';
|
$link = common::hasPriv('bug', 'batchCreate') ? $this->createLink('bug', 'batchCreate', "productID=$productID&branch=$branch&projectID=0&moduleID=$moduleID") : '#';
|
||||||
?>
|
?>
|
||||||
@@ -60,7 +60,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
|
|||||||
<span class='caret'></span>
|
<span class='caret'></span>
|
||||||
</a>
|
</a>
|
||||||
<ul class='dropdown-menu' id='exportActionMenu'>
|
<ul class='dropdown-menu' id='exportActionMenu'>
|
||||||
<?php
|
<?php
|
||||||
$misc = common::hasPriv('bug', 'export') ? "class='export'" : "class=disabled";
|
$misc = common::hasPriv('bug', 'export') ? "class='export'" : "class=disabled";
|
||||||
$link = common::hasPriv('bug', 'export') ? $this->createLink('bug', 'export', "productID=$productID&orderBy=$orderBy") : '#';
|
$link = common::hasPriv('bug', 'export') ? $this->createLink('bug', 'export', "productID=$productID&orderBy=$orderBy") : '#';
|
||||||
echo "<li>" . html::a($link, $lang->bug->export, '', $misc) . "</li>";
|
echo "<li>" . html::a($link, $lang->bug->export, '', $misc) . "</li>";
|
||||||
@@ -84,7 +84,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-toolbar pull-left">
|
<div class="btn-toolbar pull-left">
|
||||||
<?php
|
<?php
|
||||||
$menus = customModel::getFeatureMenu($this->moduleName, $this->methodName);
|
$menus = customModel::getFeatureMenu($this->moduleName, $this->methodName);
|
||||||
$moreLabel = $lang->more;
|
$moreLabel = $lang->more;
|
||||||
$moreLabelActive = '';
|
$moreLabelActive = '';
|
||||||
@@ -151,15 +151,15 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
|
|||||||
<i class="icon icon-export muted"></i> <span class="text"> <?php echo $lang->export;?></span> <span class="caret"></span></button>
|
<i class="icon icon-export muted"></i> <span class="text"> <?php echo $lang->export;?></span> <span class="caret"></span></button>
|
||||||
</button>
|
</button>
|
||||||
<ul class='dropdown-menu' id='exportActionMenu'>
|
<ul class='dropdown-menu' id='exportActionMenu'>
|
||||||
<?php
|
<?php
|
||||||
$link = $this->createLink('bug', 'export', "productID=$productID&orderBy=$orderBy");
|
$link = $this->createLink('bug', 'export', "productID=$productID&orderBy=$orderBy");
|
||||||
echo "<li>" . html::a($link, $lang->bug->export, '', "class='export'") . "</li>";
|
echo "<li>" . html::a($link, $lang->bug->export, '', "class='export'") . "</li>";
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
<?php
|
<?php
|
||||||
common::printLink('bug', 'batchCreate', "productID=$productID&branch=$branch&projectID=0&moduleID=$moduleID", "<i class='icon icon-plus'></i>" . $lang->bug->batchCreate, '', "class='btn btn-secondary'");
|
common::printLink('bug', 'batchCreate', "productID=$productID&branch=$branch&projectID=0&moduleID=$moduleID", "<i class='icon icon-plus'></i>" . $lang->bug->batchCreate, '', "class='btn btn-secondary'");
|
||||||
if(commonModel::isTutorialMode())
|
if(commonModel::isTutorialMode())
|
||||||
{
|
{
|
||||||
$wizardParams = helper::safe64Encode("productID=$productID&branch=$branch&extra=moduleID=$moduleID");
|
$wizardParams = helper::safe64Encode("productID=$productID&branch=$branch&extra=moduleID=$moduleID");
|
||||||
@@ -167,7 +167,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
common::printLink('bug', 'create', "productID=$productID&branch=$branch&extra=moduleID=$moduleID", "<i class='icon icon-plus'></i>" . $lang->bug->create, '', "class='btn btn-primary'");
|
common::printLink('bug', 'create', "productID=$productID&branch=$branch&extra=moduleID=$moduleID", "<i class='icon icon-plus'></i>" . $lang->bug->create, '', "class='btn btn-primary'");
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
@@ -380,7 +380,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
|
|||||||
</div>
|
</div>
|
||||||
<?php elseif(common::hasPriv('bug', 'create')):?>
|
<?php elseif(common::hasPriv('bug', 'create')):?>
|
||||||
<div class="table-empty-tip">
|
<div class="table-empty-tip">
|
||||||
<p><span class="text-muted"><?php echo $lang->bug->noBug;?></span> <?php common::printLink('bug', 'create', "productID={$productID}", "<i class='icon icon-plus'> </i>" . $lang->bug->create, '', "class='btn btn-info'");?></p>
|
<p><span class="text-muted"><?php echo $lang->bug->noBug;?></span> <?php common::printLink('bug', 'create', "productID={$productID}", "<i class='icon icon-plus'></i> " . $lang->bug->create, '', "class='btn btn-info'");?></p>
|
||||||
</div>
|
</div>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</form>
|
</form>
|
||||||
@@ -388,7 +388,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
$('#' + bugBrowseType + 'Tab').addClass('active');
|
$('#' + bugBrowseType + 'Tab').addClass('active');
|
||||||
$('#module' + moduleID).addClass('active');
|
$('#module' + moduleID).addClass('active');
|
||||||
<?php if($browseType == 'bysearch'):?>
|
<?php if($browseType == 'bysearch'):?>
|
||||||
$shortcut = $('#QUERY<?php echo (int)$param;?>Tab');
|
$shortcut = $('#QUERY<?php echo (int)$param;?>Tab');
|
||||||
if($shortcut.size() > 0)
|
if($shortcut.size() > 0)
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ js::set('page', 'confirmbug');
|
|||||||
<table class='table table-form'>
|
<table class='table table-form'>
|
||||||
<tr>
|
<tr>
|
||||||
<th class='w-80px'><?php echo $lang->bug->assignedTo;?></th>
|
<th class='w-80px'><?php echo $lang->bug->assignedTo;?></th>
|
||||||
<td class='w-p25-f'><?php echo html::select('assignedTo', $users, $bug->assignedTo, "class='form-controlform-control chosen'");?></td>
|
<td class='w-p25-f'><?php echo html::select('assignedTo', $users, $bug->assignedTo, "class='form-control chosen'");?></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -336,8 +336,6 @@ $convertParams = "productID=$productID&branch=$bug->branch&moduleID=0&from=bug&b
|
|||||||
common::printIcon('bug', 'create', $copyParams, $bug, 'button', 'copy');
|
common::printIcon('bug', 'create', $copyParams, $bug, 'button', 'copy');
|
||||||
common::printIcon('bug', 'delete', $params, $bug, 'button', '', 'hiddenwin');
|
common::printIcon('bug', 'delete', $params, $bug, 'button', '', 'hiddenwin');
|
||||||
?>
|
?>
|
||||||
<?php else:?>
|
|
||||||
<?php common::printBack($browseLink);?>
|
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -314,10 +314,10 @@ tbody tr td:first-child input{display:none;}
|
|||||||
</tr>
|
</tr>
|
||||||
<?php if($this->config->global->flow != 'onlyTest'):?>
|
<?php if($this->config->global->flow != 'onlyTest'):?>
|
||||||
<tr>
|
<tr>
|
||||||
<th><?php echo $lang->build->desc;?></th>
|
<th style="vertical-align:top"><?php echo $lang->build->desc;?></th>
|
||||||
<td>
|
<td>
|
||||||
<?php if($build->desc):?>
|
<?php if($build->desc):?>
|
||||||
<div class='article-content'><?php echo $build->desc;?></div>
|
<?php echo $build->desc;?>
|
||||||
<?php else:?>
|
<?php else:?>
|
||||||
<?php echo $lang->build->noData;?>
|
<?php echo $lang->build->noData;?>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
|
|||||||
@@ -477,10 +477,14 @@ $lang->proVersion = "<a href='http://api.zentao.pm/goto.php?item=proversion&
|
|||||||
$lang->downNotify = "Download Desktop Notification";
|
$lang->downNotify = "Download Desktop Notification";
|
||||||
$lang->website = "http://www.zentao.pm";
|
$lang->website = "http://www.zentao.pm";
|
||||||
|
|
||||||
$lang->suhosinInfo = "Warning! Data is reaching the limit. Please change <font color=red>sohusin.post.max_vars</font> and <font color=red>sohusin.request.max_vars</font> (set larger %s value) in php.ini, then save and restart Apache or php-fpm, or some data will not be saved.";
|
$lang->suhosinInfo = "Warning! Data is reaching the limit. Please change <font color=red>sohusin.post.max_vars</font> and <font color=red>sohusin.request.max_vars</font> (set larger %s value) in php.ini, then save and restart Apache or php-fpm, or some data will not be saved.";
|
||||||
$lang->maxVarsInfo = "Warning! Data is reaching the limit. Please change <font color=red>max_input_vars</font> (set larger %s value) in php.ini, then save and restart Apache or php-fpm, or some data will not be saved.";
|
$lang->maxVarsInfo = "Warning! Data is reaching the limit. Please change <font color=red>max_input_vars</font> (set larger %s value) in php.ini, then save and restart Apache or php-fpm, or some data will not be saved.";
|
||||||
$lang->pasteTextInfo = "Paste text here. Each line will be the title of each record. ";
|
$lang->pasteTextInfo = "Paste text here. Each line will be the title of each record. ";
|
||||||
$lang->noticeImport = "<p style='font-size:14px'>Imported data contains data that has already existed in system. Please confirm you actions on the date </p><p><a href='javascript:submitForm(\"cover\")' class='btn btn-mini'>Override</a> <a href='javascript:submitForm(\"insert\")' class='btn btn-mini'>New Insertion</a></p>";
|
$lang->noticeImport = "Imported data contains data that has already existed in system. Please confirm you actions on the date.";
|
||||||
|
$lang->importConfirm = "Import Confirm";
|
||||||
|
$lang->importAndCover = "Override";
|
||||||
|
$lang->importAndInsert = "New Insertion";
|
||||||
|
|
||||||
|
|
||||||
$lang->noResultsMatch = "No results match!";
|
$lang->noResultsMatch = "No results match!";
|
||||||
$lang->searchMore = "More results:";
|
$lang->searchMore = "More results:";
|
||||||
|
|||||||
@@ -477,10 +477,14 @@ $lang->proVersion = "<a href='http://api.zentao.net/goto.php?item=proversion&fro
|
|||||||
$lang->downNotify = "下载桌面提醒";
|
$lang->downNotify = "下载桌面提醒";
|
||||||
$lang->website = "http://www.zentao.net";
|
$lang->website = "http://www.zentao.net";
|
||||||
|
|
||||||
$lang->suhosinInfo = "警告:数据太多,请在php.ini中修改<font color=red>sohusin.post.max_vars</font>和<font color=red>sohusin.request.max_vars</font>(大于%s的数)。 保存并重新启动apache或php-fpm,否则会造成部分数据无法保存。";
|
$lang->suhosinInfo = "警告:数据太多,请在php.ini中修改<font color=red>sohusin.post.max_vars</font>和<font color=red>sohusin.request.max_vars</font>(大于%s的数)。 保存并重新启动apache或php-fpm,否则会造成部分数据无法保存。";
|
||||||
$lang->maxVarsInfo = "警告:数据太多,请在php.ini中修改<font color=red>max_input_vars</font>(大于%s的数)。 保存并重新启动apache或php-fpm,否则会造成部分数据无法保存。";
|
$lang->maxVarsInfo = "警告:数据太多,请在php.ini中修改<font color=red>max_input_vars</font>(大于%s的数)。 保存并重新启动apache或php-fpm,否则会造成部分数据无法保存。";
|
||||||
$lang->pasteTextInfo = "粘贴文本到文本域中,每行文字作为一条数据的标题。";
|
$lang->pasteTextInfo = "粘贴文本到文本域中,每行文字作为一条数据的标题。";
|
||||||
$lang->noticeImport = "<p style='font-size:14px'>导入数据中,含有已经存在系统的数据,请确认这些数据要覆盖或者全新插入</p><p><a href='javascript:submitForm(\"cover\")' class='btn btn-mini'>覆盖</a> <a href='javascript:submitForm(\"insert\")' class='btn btn-mini'>全新插入</a></p>";
|
$lang->noticeImport = "导入数据中,含有已经存在系统的数据,请确认这些数据要覆盖或者全新插入。";
|
||||||
|
$lang->importConfirm = "导入确认";
|
||||||
|
$lang->importAndCover = "覆盖";
|
||||||
|
$lang->importAndInsert = "全新插入";
|
||||||
|
|
||||||
|
|
||||||
$lang->noResultsMatch = "没有匹配结果";
|
$lang->noResultsMatch = "没有匹配结果";
|
||||||
$lang->searchMore = "搜索此关键字的更多结果:";
|
$lang->searchMore = "搜索此关键字的更多结果:";
|
||||||
|
|||||||
@@ -545,7 +545,7 @@ class commonModel extends model
|
|||||||
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)
|
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)
|
||||||
{
|
{
|
||||||
global $lang;
|
global $lang;
|
||||||
echo html::a(helper::createLink('misc', 'downNotify'), "<i class='icon-bell'></i>", '', "title='$lang->downNotify'") . ' ';
|
echo html::a(helper::createLink('misc', 'downNotify'), "<i class='icon-bell'></i>", '', "title='$lang->downNotify' class='text-primary'") . ' ';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
</div><?php /* end '.outer' in 'header.html.php'. */ ?>
|
</div><?php /* end '.outer' in 'header.html.php'. */ ?>
|
||||||
<script>setTreeBox()</script>
|
<script>setTreeBox()</script>
|
||||||
<?php if($extView = $this->getExtViewFile(__FILE__)){include $extView; return helper::cd();}?>
|
<?php if($extView = $this->getExtViewFile(__FILE__)){include $extView; return helper::cd();}?>
|
||||||
|
|
||||||
<div id='divider'></div>
|
<div id='divider'></div>
|
||||||
<iframe frameborder='0' name='hiddenwin' id='hiddenwin' scrolling='no' class='debugwin hidden'></iframe>
|
<iframe frameborder='0' name='hiddenwin' id='hiddenwin' scrolling='no' class='debugwin hidden'></iframe>
|
||||||
|
|
||||||
<?php if($onlybody != 'yes'):?>
|
<?php if($onlybody != 'yes'):?>
|
||||||
</main><?php /* end '#wrap' in 'header.html.php'. */ ?>
|
</main><?php /* end '#wrap' in 'header.html.php'. */ ?>
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<?php commonModel::printBreadMenu($this->moduleName, isset($position) ? $position : ''); ?>
|
<?php commonModel::printBreadMenu($this->moduleName, isset($position) ? $position : ''); ?>
|
||||||
<div id='poweredBy'>
|
<div id='poweredBy'>
|
||||||
<a href='<?php echo $lang->website;?>' target='_blank' class='text-primary'><i class='icon-zentao'></i> <?php echo $lang->zentaoPMS . $config->version;?></a>
|
<a href='<?php echo $lang->website;?>' target='_blank'><i class='icon-zentao'></i> <?php echo $lang->zentaoPMS . $config->version;?></a>
|
||||||
<?php echo $lang->proVersion;?>
|
<?php echo $lang->proVersion;?>
|
||||||
<?php commonModel::printNotifyLink();?>
|
<?php commonModel::printNotifyLink();?>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,7 +38,7 @@ $(function()
|
|||||||
{
|
{
|
||||||
$.get(createLink('message', 'ajaxGetMessage', "windowBlur=" + (windowBlur ? '1' : '0')), function(data)
|
$.get(createLink('message', 'ajaxGetMessage', "windowBlur=" + (windowBlur ? '1' : '0')), function(data)
|
||||||
{
|
{
|
||||||
if(!windowBlur)
|
if(!windowBlur)
|
||||||
{
|
{
|
||||||
$('#noticeBox').append(data);
|
$('#noticeBox').append(data);
|
||||||
adjustNoticePosition();
|
adjustNoticePosition();
|
||||||
|
|||||||
@@ -1,28 +1,31 @@
|
|||||||
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-hidden="true">
|
<div class="modal fade" id="importNoticeModal" tabindex="-1" role="dialog" aria-hidden="true">
|
||||||
<div class="modal-dialog w-600px">
|
<div class="modal-dialog w-600px">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
<button type="button" class="close" data-dismiss="modal"><i class="icon icon-close"></i></button>
|
||||||
|
<h4 class="modal-title"><?php echo $lang->importConfirm;?></h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<?php echo html::hidden('insert', '');?>
|
<?php echo html::hidden('insert', '');?>
|
||||||
<div class='alert alert-info'><?php echo $lang->noticeImport;?></div>
|
<div class='alert with-icon'>
|
||||||
|
<i class="icon icon-exclamation-sign"></i>
|
||||||
|
<div class="content">
|
||||||
|
<?php echo $lang->noticeImport;?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text-center form-actions">
|
||||||
|
<a href='javascript:submitForm(\"cover\")' class='btn btn-danger btn-wide'><?php echo $lang->importAndCover;?></a>
|
||||||
|
<a href='javascript:submitForm(\"insert\")' class='btn btn-primary btn-wide'><?php echo $lang->importAndInsert;?></a>
|
||||||
|
<button class="btn btn-wide" type="button" data-dismiss="modal"><?php echo $lang->goback;?></button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
$(function(){$("button[data-toggle='myModal']").click(function(){$('#myModal').modal('show')})});
|
|
||||||
function submitForm(type)
|
function submitForm(type)
|
||||||
{
|
{
|
||||||
if(type == 'insert')
|
$('#insert').val(type == 'insert' ? 1 : 0);
|
||||||
{
|
$("button[data-target='#importNoticeModal']").closest('form').submit();
|
||||||
$('#insert').val('1');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$('#insert').val('0');
|
|
||||||
}
|
|
||||||
$("button[data-toggle='myModal']").closest('form').submit();
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ js::import($jsRoot . 'jquery/tablesorter/min.js');
|
|||||||
js::import($jsRoot . 'jquery/tablesorter/metadata.js');
|
js::import($jsRoot . 'jquery/tablesorter/metadata.js');
|
||||||
?>
|
?>
|
||||||
<style>
|
<style>
|
||||||
table.tablesorter tr.tablesorter-headerRow .header.tablesorter-headerUnSorted .tablesorter-header-inner:after{font-family: NewZenIcon; font-weight: normal; content: "\e6bd"; font-size: 14px;}
|
.tablesorter-header-inner {cursor: pointer;}
|
||||||
table.tablesorter tr.tablesorter-headerRow .header.headerSortUp .tablesorter-header-inner:after{font-family: NewZenIcon; font-weight: normal; content: "\e6b9"; font-size: 14px; color: #03C;}
|
.tablesorter-header-inner:hover {color: #006af1;}
|
||||||
table.tablesorter tr.tablesorter-headerRow .header.headerSortDown .tablesorter-header-inner:after{font-family: NewZenIcon; font-weight: normal; content: "\e6b8"; font-size: 14px; color: #03C;}
|
table.tablesorter tr.tablesorter-headerRow .header.tablesorter-headerUnSorted .tablesorter-header-inner:after {font-family: ZentaoIcon; font-weight: normal; content: "\f0dc"; font-size: 14px;}
|
||||||
|
table.tablesorter tr.tablesorter-headerRow .header.headerSortUp .tablesorter-header-inner:after{font-family: ZentaoIcon; font-weight: normal; content: "\f0d8"; color: #006af1;}
|
||||||
|
table.tablesorter tr.tablesorter-headerRow .header.headerSortDown .tablesorter-header-inner:after{font-family: ZentaoIcon; font-weight: normal; content: "\f0d7"; color: #006af1;}
|
||||||
table.tablesorter tr.tablesorter-headerRow .header.sorter-false .tablesorter-header-inner:after{content:"";}
|
table.tablesorter tr.tablesorter-headerRow .header.sorter-false .tablesorter-header-inner:after{content:"";}
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
||||||
.dynamic-date > .date-label {margin-top: -8px;}
|
.dynamic-date > .date-label {margin-top: -8px;}
|
||||||
.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;}
|
.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;}
|
||||||
.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; max-height: 800px; transition: max-height .2s; overflow: hidden;}
|
.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; transition: max-height .2s; overflow: hidden;}
|
||||||
.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;}
|
.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;}
|
||||||
.dynamic .timeline-text {color: #3C4353;}
|
.dynamic .timeline-text {color: #3C4353;}
|
||||||
.dynamic .text-muted {color: #838A9D;}
|
.dynamic .text-muted {color: #838A9D;}
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ js::set('confirmDelete', $lang->user->confirmDelete);
|
|||||||
</div>
|
</div>
|
||||||
<div class='btn-toolbar pull-right'>
|
<div class='btn-toolbar pull-right'>
|
||||||
<?php common::printIcon('group', 'create', '', '', 'button', '', '', 'iframe', true, "data-width='550px'");?>
|
<?php common::printIcon('group', 'create', '', '', 'button', '', '', 'iframe', true, "data-width='550px'");?>
|
||||||
<?php common::printLink('user', 'batchCreate', "dept={$deptID}", "<i class='icon icon-plus'> </i>" . $lang->user->batchCreate, '', "class='btn btn-secondary'");?>
|
<?php common::printLink('user', 'batchCreate', "dept={$deptID}", "<i class='icon icon-plus'></i> " . $lang->user->batchCreate, '', "class='btn btn-secondary'");?>
|
||||||
<?php common::printLink('user', 'create', "dept={$deptID}", "<i class='icon icon-plus'> </i>" . $lang->user->create, '', "class='btn btn-primary'");?>
|
<?php common::printLink('user', 'create', "dept={$deptID}", "<i class='icon icon-plus'></i> " . $lang->user->create, '', "class='btn btn-primary'");?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id='mainContent' class='main-row'>
|
<div id='mainContent' class='main-row'>
|
||||||
|
|||||||
@@ -194,8 +194,7 @@ $(function()
|
|||||||
return sets;
|
return sets;
|
||||||
}).get();
|
}).get();
|
||||||
|
|
||||||
//window.saveDatatableConfig('<?php echo $mode == 'table' ? 'tablecols' : 'cols';?>', setting, true, $('#global1').prop('checked') ? 1 : 0);
|
window.saveDatatableConfig('<?php echo $mode == 'table' ? 'tablecols' : 'cols';?>', setting, true, $('#global1').prop('checked') ? 1 : 0);
|
||||||
window.saveDatatableConfig('<?php echo 'cols';?>', setting, true, $('#global1').prop('checked') ? 1 : 0);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#resetBtn').on("click", function()
|
$('#resetBtn').on("click", function()
|
||||||
|
|||||||
@@ -7,3 +7,4 @@
|
|||||||
|
|
||||||
#addChildModal form > .form-control {margin-bottom: 8px;}
|
#addChildModal form > .form-control {margin-bottom: 8px;}
|
||||||
#addChildModal .modal-dialog {max-width: 360px;}
|
#addChildModal .modal-dialog {max-width: 360px;}
|
||||||
|
#deptTree li {padding-left: 20px;}
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ class deptModel extends model
|
|||||||
$deptMenu[$dept->parent] .= "</li>\n";
|
$deptMenu[$dept->parent] .= "</li>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$lastMenu = "<ul class='tree tree-lines'>" . @array_pop($deptMenu) . "</ul>\n";
|
$lastMenu = "<ul class='tree' data-ride='tree' data-name='tree-dept'>" . @array_pop($deptMenu) . "</ul>\n";
|
||||||
return $lastMenu;
|
return $lastMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<div class='panel-title'><?php echo $title;?></div>
|
<div class='panel-title'><?php echo $title;?></div>
|
||||||
</div>
|
</div>
|
||||||
<div class='panel-body'>
|
<div class='panel-body'>
|
||||||
<ul class='tree-lines' id='deptTree'></ul>
|
<ul data-name='tree-dept' id='deptTree'></ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,10 +85,19 @@ $(function()
|
|||||||
name: 'deptTree',
|
name: 'deptTree',
|
||||||
initialState: 'preserve',
|
initialState: 'preserve',
|
||||||
data: data,
|
data: data,
|
||||||
|
sortable:
|
||||||
|
{
|
||||||
|
lazy: true,
|
||||||
|
nested: true,
|
||||||
|
canMoveHere: function($ele, $target)
|
||||||
|
{
|
||||||
|
if($ele && $target && $ele.parent().closest('li').attr('data-id') !== $target.parent().closest('li').attr('data-id')) return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
itemCreator: function($li, item)
|
itemCreator: function($li, item)
|
||||||
{
|
{
|
||||||
var link = item.id !== undefined ? ('<a href="' + createLink('dept', 'browse', 'dept={0}'.format(item.id)) + '">' + item.name + '</a>') : ('<span class="tree-toggle">' + item.name + '</span>');
|
var link = item.id !== undefined ? ('<a href="' + createLink('dept', 'browse', 'dept={0}'.format(item.id)) + '">' + item.name + '</a>') : ('<span class="tree-toggle">' + item.name + '</span>');
|
||||||
var $toggle = $('<span class="dept-name" data-id="' + item.id + '">' + link + '</span>');
|
var $toggle = $('<span class="dept-name module-name" data-id="' + item.id + '">' + link + '</span>');
|
||||||
if(item.manager)
|
if(item.manager)
|
||||||
{
|
{
|
||||||
$toggle.append(' <span class="dept-manager text-muted"><i class="icon icon-user"></i> ' + item.managerName + '</span>');
|
$toggle.append(' <span class="dept-manager text-muted"><i class="icon icon-user"></i> ' + item.managerName + '</span>');
|
||||||
@@ -101,19 +110,19 @@ $(function()
|
|||||||
sort:
|
sort:
|
||||||
{
|
{
|
||||||
title: '<?php echo $lang->dept->dragAndSort ?>',
|
title: '<?php echo $lang->dept->dragAndSort ?>',
|
||||||
template: '<a class="sort-handler" data-toggle="tooltip" href="javascript:;"><?php echo $lang->sort;?></a>'
|
template: '<a class="sort-handler" href="javascript:;"><?php echo $lang->sort;?></a>'
|
||||||
},
|
},
|
||||||
edit:
|
edit:
|
||||||
{
|
{
|
||||||
linkTemplate: '<?php echo helper::createLink('dept', 'edit', "deptid={0}"); ?>',
|
linkTemplate: '<?php echo helper::createLink('dept', 'edit', "deptid={0}"); ?>',
|
||||||
title: '<?php echo $lang->dept->edit ?>',
|
title: '<?php echo $lang->dept->edit ?>',
|
||||||
template: '<a data-toggle="tooltip" href="javascript:;" data-width="600"><?php echo $lang->edit?></a>'
|
template: '<a href="javascript:;" data-width="600"><?php echo $lang->edit?></a>'
|
||||||
},
|
},
|
||||||
"delete":
|
"delete":
|
||||||
{
|
{
|
||||||
linkTemplate: '<?php echo helper::createLink('dept', 'delete', "deptid={0}"); ?>',
|
linkTemplate: '<?php echo helper::createLink('dept', 'delete', "deptid={0}"); ?>',
|
||||||
title: '<?php echo $lang->dept->delete ?>',
|
title: '<?php echo $lang->dept->delete ?>',
|
||||||
template: '<a data-toggle="tooltip" href="javascript:;"><?php echo $lang->delete?></a>'
|
template: '<a href="javascript:;"><?php echo $lang->delete?></a>'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
action: function(event)
|
action: function(event)
|
||||||
@@ -121,11 +130,11 @@ $(function()
|
|||||||
var action = event.action, $target = $(event.target), item = event.item;
|
var action = event.action, $target = $(event.target), item = event.item;
|
||||||
if(action.type === 'edit')
|
if(action.type === 'edit')
|
||||||
{
|
{
|
||||||
$target.modalTrigger(
|
new $.zui.ModalTrigger({
|
||||||
{
|
|
||||||
type: 'ajax',
|
type: 'ajax',
|
||||||
url: action.linkTemplate.format(item.id)
|
url: action.linkTemplate.format(item.id),
|
||||||
}).trigger('click');
|
keyboard: true
|
||||||
|
}).show();
|
||||||
}
|
}
|
||||||
else if(action.type === 'delete')
|
else if(action.type === 'delete')
|
||||||
{
|
{
|
||||||
@@ -163,8 +172,6 @@ $(function()
|
|||||||
$(this).addClass('hover');
|
$(this).addClass('hover');
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
});
|
});
|
||||||
|
|
||||||
$tree.find('[data-toggle="tooltip"]').tooltip();
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<?php include '../../common/view/footer.html.php';?>
|
<?php include '../../common/view/footer.html.php';?>
|
||||||
|
|||||||
@@ -15,24 +15,32 @@ $webRoot = $this->app->getWebRoot();
|
|||||||
$jsRoot = $webRoot . "js/";
|
$jsRoot = $webRoot . "js/";
|
||||||
?>
|
?>
|
||||||
<?php include '../../common/view/chosen.html.php';?>
|
<?php include '../../common/view/chosen.html.php';?>
|
||||||
<form action="<?php echo inlink('edit', 'deptID=' . $dept->id);?>" target='hiddenwin' method='post' class='mt-10px' id='dataform'>
|
<div class='modal-dialog w-500px'>
|
||||||
<table class='table table-form' style='width:100%'>
|
<div class="modal-header">
|
||||||
<tr>
|
<button type="button" class="close" data-dismiss="modal"><i class="icon icon-close"></i></button>
|
||||||
<th class='w-80px'><?php echo $lang->dept->parent;?></th>
|
<h4 class="modal-title"><strong><?php echo $lang->dept->edit;?></strong></h4>
|
||||||
<td><?php echo html::select('parent', $optionMenu, $dept->parent, "class='form-control chosen'");?></td>
|
</div>
|
||||||
</tr>
|
<div class='modal-body'>
|
||||||
<tr>
|
<form action="<?php echo inlink('edit', 'deptID=' . $dept->id);?>" target='hiddenwin' method='post' class='mt-10px' id='dataform'>
|
||||||
<th class='w-80px'><?php echo $lang->dept->name;?></th>
|
<table class='table table-form' style='width:100%'>
|
||||||
<td><?php echo html::input('name', $dept->name, "class='form-control' autocomplete='off'");?></td>
|
<tr>
|
||||||
</tr>
|
<th class='w-80px'><?php echo $lang->dept->parent;?></th>
|
||||||
<tr>
|
<td><?php echo html::select('parent', $optionMenu, $dept->parent, "class='form-control chosen'");?></td>
|
||||||
<th class='w-80px'><?php echo $lang->dept->manager;?></th>
|
</tr>
|
||||||
<td><?php echo html::select('manager', $users, $dept->manager, "class='form-control chosen'", true);?></td>
|
<tr>
|
||||||
</tr>
|
<th class='w-80px'><?php echo $lang->dept->name;?></th>
|
||||||
<tr>
|
<td><?php echo html::input('name', $dept->name, "class='form-control' autocomplete='off'");?></td>
|
||||||
<td colspan='2' class='text-center'>
|
</tr>
|
||||||
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
<tr>
|
||||||
</td>
|
<th class='w-80px'><?php echo $lang->dept->manager;?></th>
|
||||||
</tr>
|
<td><?php echo html::select('manager', $users, $dept->manager, "class='form-control chosen'", true);?></td>
|
||||||
</table>
|
</tr>
|
||||||
</form>
|
<tr>
|
||||||
|
<td colspan='2' class='text-center'>
|
||||||
|
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|||||||
@@ -13,7 +13,8 @@
|
|||||||
.row-spliting .col-spliter:before,
|
.row-spliting .col-spliter:before,
|
||||||
.row-spliting .col-spliter:after {opacity: 1;}
|
.row-spliting .col-spliter:after {opacity: 1;}
|
||||||
|
|
||||||
@media (max-width: 720px) {
|
@media (max-width: 720px)
|
||||||
|
{
|
||||||
.split-row > .side-col,
|
.split-row > .side-col,
|
||||||
.split-row > .main-col {width: 100%!important;}
|
.split-row > .main-col {width: 100%!important;}
|
||||||
}
|
}
|
||||||
@@ -28,19 +29,27 @@
|
|||||||
.table-files .c-actions .btn > .icon.text-yellow,
|
.table-files .c-actions .btn > .icon.text-yellow,
|
||||||
.table-files tr:hover .c-actions .btn > .icon {opacity: 1;}
|
.table-files tr:hover .c-actions .btn > .icon {opacity: 1;}
|
||||||
|
|
||||||
#main {opacity: 0; transition: opacity .4s;}
|
|
||||||
#main.in {opacity: 1;}
|
|
||||||
|
|
||||||
.files-grid .col {width: 167px; text-align: center; padding: 0; margin-bottom: 10px;}
|
.files-grid .col {width: 167px; text-align: center; padding: 0; margin-bottom: 10px;}
|
||||||
.files-grid .actions {position: absolute; bottom: -30px; left: 0; right: 0; background: #E9F2FB; z-index: 10; opacity: 0; transition: opacity .2s; padding-bottom: 8px;}
|
.files-grid .actions {position: absolute; bottom: -38px; left: 0; right: 0; background: #E9F2FB; z-index: 10; opacity: 0; transition: opacity .2s; padding-bottom: 8px; border-radius: 0 0 3px 3px; padding-top: 8px;}
|
||||||
.files-grid .col:hover .actions {opacity: 1;}
|
.files-grid .col:hover .actions {opacity: 1;}
|
||||||
.files-grid .file {padding: 10px; cursor: pointer; display: block; border-radius: 2px;}
|
.files-grid .file {padding: 10px; cursor: pointer; display: block; border-radius: 2px; transition: background-color .2s; border-radius: 3px 3px 0 0}
|
||||||
.files-grid .col:hover .file {background-color: #E9F2FB;}
|
.files-grid .col:hover .file {background-color: #E9F2FB;}
|
||||||
.files-grid .file-icon {font-size: 54px; width: 64px; height: 64px; display: block; margin: 0 auto 8px; line-height: 64px;}
|
.files-grid .file-icon {font-size: 54px; width: 64px; height: 64px; display: block; margin: 0 auto 8px; line-height: 64px; color: #8E939A}
|
||||||
.files-grid .file-name,
|
.files-grid .file-name,
|
||||||
.files-grid .file-info {text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}
|
.files-grid .file-info {text-overflow: ellipsis; white-space: nowrap; overflow: hidden; line-height: 20px;}
|
||||||
.files-grid .file-info {font-size: 12px; margin-top: 3px;}
|
.files-grid .file-info {font-size: 12px; margin-top: 3px;}
|
||||||
.files-grid .icon-folder {background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MnB4IiBoZWlnaHQ9IjQ2cHgiIHZpZXdCb3g9IjAgMCA1MiA0NiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5pY29uLWJpZy1mb2xkZXJpY29uLWJpZy1mb2xkZXI8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJ3ZWItbWF4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTA5NS4wMDAwMDAsIC02OTUuMDAwMDAwKSI+ICAgICAgICAgICAgPGcgaWQ9Ijgt5paH5qGjIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDkwLjAwMDAwMCwgNTgzLjAwMDAwMCkiPiAgICAgICAgICAgICAgICA8ZyBpZD0iaWNvbi1iaWctZm9sZGVyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1LjAwMDAwMCwgMTEyLjAwMDAwMCkiPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIxLjA0NTY4OTEsNC4yNzAyMzU0MiBDMjEuOTYxODA1OSw1LjEwNzIwMzY1IDIzLjAyMjcwMDQsNS41NTc5NjY1OSAyNC4zNjg4OTQ0LDUuNTI1MDEyMTggTDI2LjE2MDIzOCw1LjUyNTAxMjE4IEwzMC44MTIxMDExLDUuNTI1MDEyMTggQzI5LjYwMDkxMDksNS41MjUwMTIxOCAyOC40Mzg1MTg2LDUuMDM1NzUxMTMgMjcuNTc3MDQ3LDQuMTg1ODk1OTMgTDI0LjY3ODE1NjYsMS4zMjY0MDI3MSBDMjMuODE2NTgwOCwwLjQ3NjU0NzUxMSAyMi42NTQyOTI3LDAgMjEuNDQzMTAyNSwwIEwxNS4xMTQ5MDQ2LDAgTDE1LDAgQzE2LjIyNjg2NzksMC4wMzk0MzcwODA1IDE3LjMwMjA1NTcsMC41NTY4NjUwODcgMTguMTYzNTI3MywxLjQwNjYxNjIyIEwyMS4wNDU2ODkxLDQuMjcwMjM1NDIgWiIgaWQ9IlNoYXBlLUNvcHktNyIgZmlsbD0iI0ZGQzg1QSI+PC9wYXRoPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQ5LjMxMDMyMDMsNS41MjAwMjkxOCBMMzguNTUxNzAzMSw1LjUyMDAyOTE4IEwzNi44MDY4NTk0LDUuNTIwMDI5MTggTDMyLjI3NTc1LDUuNTIwMDI5MTggTDMwLjUzMDkwNjMsNS41MjAwMjkxOCBMMjYsNS41MjAwMjkxOCBMMjQuMjU1MTU2Miw1LjUyMDAyOTE4IEMyMy4wNzU0MDYzLDUuNTIwMDI5MTggMjEuOTQzMTg3NSw1LjA0MjgxMzM1IDIxLjEwNDA3ODEsNC4xOTE3NjYzIEwxOC4yODA0Mzc1LDEuMzI4MjYyODggQzE3LjQ0MTIyNjYsMC40NzcyMTU4MjkgMTYuMzA5MTA5NCwwIDE1LjEyOTM1OTQsMCBMOC45NjU1MzEyNSwwIEwyLjY4OTY3OTY5LDAgQzEuMjA0MjI2NTYsNy40MDUxNTkyM2UtMTYgMCwxLjIzNTcxNjk5IDAsMi43NjAwMTQ1OSBMMCw4LjI4MDA0Mzc3IEwwLDkuMjAwMDgzMzcgTDAsNDMuMjM5OTg1NCBDMCw0NC43NjQyODMgMS4yMDQyMjY1Niw0NiAyLjY4OTY3OTY5LDQ2IEw0OS4zMTAzMjAzLDQ2IEM1MC43OTU3NzM0LDQ2IDUyLDQ0Ljc2NDI4MyA1Miw0My4yMzk5ODU0IEw1Miw4LjI4MDA0Mzc3IEM1Miw2Ljc1NTY0MTk1IDUwLjc5NTc3MzQsNS41MjAwMjkxOCA0OS4zMTAzMjAzLDUuNTIwMDI5MTggTDQ5LjMxMDMyMDMsNS41MjAwMjkxOCBaIiBpZD0iU2hhcGUtQ29weS04IiBmaWxsPSIjRkZFMDY2Ij48L3BhdGg+ICAgICAgICAgICAgICAgIDwvZz4gICAgICAgICAgICA8L2c+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=) no-repeat center;}
|
.files-grid .icon-folder {background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MnB4IiBoZWlnaHQ9IjQ2cHgiIHZpZXdCb3g9IjAgMCA1MiA0NiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5pY29uLWJpZy1mb2xkZXJpY29uLWJpZy1mb2xkZXI8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJ3ZWItbWF4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTA5NS4wMDAwMDAsIC02OTUuMDAwMDAwKSI+ICAgICAgICAgICAgPGcgaWQ9Ijgt5paH5qGjIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDkwLjAwMDAwMCwgNTgzLjAwMDAwMCkiPiAgICAgICAgICAgICAgICA8ZyBpZD0iaWNvbi1iaWctZm9sZGVyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1LjAwMDAwMCwgMTEyLjAwMDAwMCkiPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIxLjA0NTY4OTEsNC4yNzAyMzU0MiBDMjEuOTYxODA1OSw1LjEwNzIwMzY1IDIzLjAyMjcwMDQsNS41NTc5NjY1OSAyNC4zNjg4OTQ0LDUuNTI1MDEyMTggTDI2LjE2MDIzOCw1LjUyNTAxMjE4IEwzMC44MTIxMDExLDUuNTI1MDEyMTggQzI5LjYwMDkxMDksNS41MjUwMTIxOCAyOC40Mzg1MTg2LDUuMDM1NzUxMTMgMjcuNTc3MDQ3LDQuMTg1ODk1OTMgTDI0LjY3ODE1NjYsMS4zMjY0MDI3MSBDMjMuODE2NTgwOCwwLjQ3NjU0NzUxMSAyMi42NTQyOTI3LDAgMjEuNDQzMTAyNSwwIEwxNS4xMTQ5MDQ2LDAgTDE1LDAgQzE2LjIyNjg2NzksMC4wMzk0MzcwODA1IDE3LjMwMjA1NTcsMC41NTY4NjUwODcgMTguMTYzNTI3MywxLjQwNjYxNjIyIEwyMS4wNDU2ODkxLDQuMjcwMjM1NDIgWiIgaWQ9IlNoYXBlLUNvcHktNyIgZmlsbD0iI0ZGQzg1QSI+PC9wYXRoPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQ5LjMxMDMyMDMsNS41MjAwMjkxOCBMMzguNTUxNzAzMSw1LjUyMDAyOTE4IEwzNi44MDY4NTk0LDUuNTIwMDI5MTggTDMyLjI3NTc1LDUuNTIwMDI5MTggTDMwLjUzMDkwNjMsNS41MjAwMjkxOCBMMjYsNS41MjAwMjkxOCBMMjQuMjU1MTU2Miw1LjUyMDAyOTE4IEMyMy4wNzU0MDYzLDUuNTIwMDI5MTggMjEuOTQzMTg3NSw1LjA0MjgxMzM1IDIxLjEwNDA3ODEsNC4xOTE3NjYzIEwxOC4yODA0Mzc1LDEuMzI4MjYyODggQzE3LjQ0MTIyNjYsMC40NzcyMTU4MjkgMTYuMzA5MTA5NCwwIDE1LjEyOTM1OTQsMCBMOC45NjU1MzEyNSwwIEwyLjY4OTY3OTY5LDAgQzEuMjA0MjI2NTYsNy40MDUxNTkyM2UtMTYgMCwxLjIzNTcxNjk5IDAsMi43NjAwMTQ1OSBMMCw4LjI4MDA0Mzc3IEwwLDkuMjAwMDgzMzcgTDAsNDMuMjM5OTg1NCBDMCw0NC43NjQyODMgMS4yMDQyMjY1Niw0NiAyLjY4OTY3OTY5LDQ2IEw0OS4zMTAzMjAzLDQ2IEM1MC43OTU3NzM0LDQ2IDUyLDQ0Ljc2NDI4MyA1Miw0My4yMzk5ODU0IEw1Miw4LjI4MDA0Mzc3IEM1Miw2Ljc1NTY0MTk1IDUwLjc5NTc3MzQsNS41MjAwMjkxOCA0OS4zMTAzMjAzLDUuNTIwMDI5MTggTDQ5LjMxMDMyMDMsNS41MjAwMjkxOCBaIiBpZD0iU2hhcGUtQ29weS04IiBmaWxsPSIjRkZFMDY2Ij48L3BhdGg+ICAgICAgICAgICAgICAgIDwvZz4gICAgICAgICAgICA8L2c+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=) no-repeat center;}
|
||||||
|
.files-grid .icon-folder:before {display: none;}
|
||||||
|
.files-grid .img-holder {height: 64px; line-height: 64px; margin: 0 auto 8px; width: 100%; background-size: contain; background-repeat: no-repeat; background-position: center;}
|
||||||
|
.files-grid .img-holder > img {max-height: 64px; opacity: 0; width: 100%;}
|
||||||
|
|
||||||
.panel{padding-bottom: 40px;}
|
.panel{padding-bottom: 40px;}
|
||||||
.panel .table-footer{position: absolute; bottom: 0; width: 100%;}
|
.panel .table-footer{position: absolute; bottom: 0; width: 100%;}
|
||||||
|
|
||||||
|
@keyframes flash-icon
|
||||||
|
{
|
||||||
|
0% {color: #666;}
|
||||||
|
100% {color: #fff;}
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-col > .panel > .panel-body {padding-top: 20px;}
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
@keyframes flash-icon
|
|
||||||
{
|
|
||||||
0% {color: #666;}
|
|
||||||
100% {color: #fff;}
|
|
||||||
}
|
|
||||||
.lib-file > .file > a > .file-path{width: 64px; height: 64px; line-height: 64px; margin: 0 auto 10px;}
|
|
||||||
|
|||||||
@@ -168,5 +168,12 @@ $(document).ready(function()
|
|||||||
$('.split-row').splitRow();
|
$('.split-row').splitRow();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#main').addClass('in');
|
var $pageSetting = $('#pageSetting');
|
||||||
|
if($pageSetting.length)
|
||||||
|
{
|
||||||
|
$pageSetting.on('click', '.close-dropdown', function()
|
||||||
|
{
|
||||||
|
$pageSetting.parent().removeClass('open');
|
||||||
|
}).on('click', function(e){e.stopPropagation()});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ $lang->doc->errorEmptyProject = "No {$lang->projectCommon}. It cannot be create
|
|||||||
$lang->doc->errorMainSysLib = "This library cannot be deleted.";
|
$lang->doc->errorMainSysLib = "This library cannot be deleted.";
|
||||||
$lang->doc->accessDenied = "Access denied!";
|
$lang->doc->accessDenied = "Access denied!";
|
||||||
$lang->doc->versionNotFount = 'It does not exist in this build.';
|
$lang->doc->versionNotFount = 'It does not exist in this build.';
|
||||||
|
$lang->doc->noDoc = 'It does not exist.';
|
||||||
|
|
||||||
$lang->doc->placeholder = new stdclass();
|
$lang->doc->placeholder = new stdclass();
|
||||||
$lang->doc->placeholder->url = 'Url';
|
$lang->doc->placeholder->url = 'Url';
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ $lang->doc->errorEmptyProject = "没有{$lang->projectCommon},无法创建文
|
|||||||
$lang->doc->errorMainSysLib = "该系统文档库不能删除!";
|
$lang->doc->errorMainSysLib = "该系统文档库不能删除!";
|
||||||
$lang->doc->accessDenied = "您没有权限访问!";
|
$lang->doc->accessDenied = "您没有权限访问!";
|
||||||
$lang->doc->versionNotFount = '该版本文档不存在';
|
$lang->doc->versionNotFount = '该版本文档不存在';
|
||||||
|
$lang->doc->noDoc = '文档不存在';
|
||||||
|
|
||||||
$lang->doc->placeholder = new stdclass();
|
$lang->doc->placeholder = new stdclass();
|
||||||
$lang->doc->placeholder->url = '相应的链接地址';
|
$lang->doc->placeholder->url = '相应的链接地址';
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ var browseType = '<?php echo $browseType;?>';
|
|||||||
<?php js::set('libID', $libID);?>
|
<?php js::set('libID', $libID);?>
|
||||||
<?php if($this->from != 'doc') js::set('type', 'doc');?>
|
<?php if($this->from != 'doc') js::set('type', 'doc');?>
|
||||||
|
|
||||||
<div class="main-row <?php if($this->from == 'doc') echo 'split-row';?>" id="mainRow">
|
<div class="main-row fade <?php if($this->from == 'doc') echo 'split-row';?>" id="mainRow">
|
||||||
<?php if($this->from == 'doc'):?>
|
<?php if($this->from == 'doc'):?>
|
||||||
<?php include './side.html.php';?>
|
<?php include './side.html.php';?>
|
||||||
<div class="col-spliter"></div>
|
<div class="col-spliter"></div>
|
||||||
@@ -40,15 +40,20 @@ var browseType = '<?php echo $browseType;?>';
|
|||||||
</div>
|
</div>
|
||||||
<nav class="panel-actions btn-toolbar">
|
<nav class="panel-actions btn-toolbar">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<?php echo html::a('javascript:setBrowseType("bylist")', "<i class='icon icon-bars'></i>", '', "title='{$lang->doc->browseTypeList['list']}' class='btn btn-icon btn-gray text-primary'");?>
|
<?php echo html::a('javascript:setBrowseType("bylist")', "<i class='icon icon-bars'></i>", '', "title='{$lang->doc->browseTypeList['list']}' class='btn btn-icon text-primary'");?>
|
||||||
<?php echo html::a('javascript:setBrowseType("bygrid")', "<i class='icon icon-cards-view'></i>", '', "title='{$lang->doc->browseTypeList['grid']}' class='btn btn-icon btn-gray'");?>
|
<?php echo html::a('javascript:setBrowseType("bygrid")', "<i class='icon icon-cards-view'></i>", '', "title='{$lang->doc->browseTypeList['grid']}' class='btn btn-icon'");?>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
<?php if(empty($docs)):?>
|
||||||
|
<div class="table-empty-tip">
|
||||||
|
<p><span class="text-muted"><?php echo $lang->doc->noDoc;?></span></p>
|
||||||
|
</div>
|
||||||
|
<?php else:?>
|
||||||
<div class="panel-body has-table">
|
<div class="panel-body has-table">
|
||||||
<table class="table table-borderless table-hover table-files">
|
<table class="table table-borderless table-hover table-files">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="muted">
|
<tr>
|
||||||
<th class="c-name"><?php echo $lang->doc->title;?></th>
|
<th class="c-name"><?php echo $lang->doc->title;?></th>
|
||||||
<th class="c-num"><?php echo $lang->doc->size;?></th>
|
<th class="c-num"><?php echo $lang->doc->size;?></th>
|
||||||
<th class="c-user"><?php echo $lang->doc->addedBy;?></th>
|
<th class="c-user"><?php echo $lang->doc->addedBy;?></th>
|
||||||
@@ -84,7 +89,7 @@ var browseType = '<?php echo $browseType;?>';
|
|||||||
<td class="c-user"><?php echo zget($users, $doc->addedBy);?></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->addedDate, 'm-d h:i');?></td>
|
||||||
<td class="c-datetime"><?php echo formatTime($doc->editedDate, 'm-d h:i');?></td>
|
<td class="c-datetime"><?php echo formatTime($doc->editedDate, 'm-d h:i');?></td>
|
||||||
<td>
|
<td class="c-actions">
|
||||||
<?php common::printLink('doc', 'collect', "objectID=$doc->id&objectType=doc", "<i class='icon {$star}'></i>", 'hiddenwin', "title='{$collectTitle}' class='btn btn-link'")?>
|
<?php common::printLink('doc', 'collect', "objectID=$doc->id&objectType=doc", "<i class='icon {$star}'></i>", 'hiddenwin', "title='{$collectTitle}' class='btn btn-link'")?>
|
||||||
<?php common::printLink('doc', 'edit', "docID=$doc->id", "<i class='icon icon-edit'></i>", '', "title='{$lang->edit}' class='btn btn-link'")?>
|
<?php common::printLink('doc', 'edit', "docID=$doc->id", "<i class='icon icon-edit'></i>", '', "title='{$lang->edit}' class='btn btn-link'")?>
|
||||||
<?php common::printLink('doc', 'delete', "docID=$doc->id", "<i class='icon icon-trash'></i>", 'hiddenwin', "title='{$lang->delete}' class='btn btn-link'")?>
|
<?php common::printLink('doc', 'delete', "docID=$doc->id", "<i class='icon icon-trash'></i>", 'hiddenwin', "title='{$lang->delete}' class='btn btn-link'")?>
|
||||||
@@ -95,6 +100,7 @@ var browseType = '<?php echo $browseType;?>';
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
|
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
|
||||||
|
<?php endif;?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
|
|||||||
@@ -4,11 +4,16 @@
|
|||||||
<div class="panel-title font-normal"><i class="icon icon-folder-open-o text-muted"></i> <?php echo $title;?></div>
|
<div class="panel-title font-normal"><i class="icon icon-folder-open-o text-muted"></i> <?php echo $title;?></div>
|
||||||
<nav class="panel-actions btn-toolbar">
|
<nav class="panel-actions btn-toolbar">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<?php echo html::a('javascript:setBrowseType("bygrid")', "<i class='icon icon-cards-view'></i>", '', "title='{$lang->doc->browseTypeList['grid']}' class='btn btn-icon btn-gray'");?>
|
<?php echo html::a('javascript:setBrowseType("bylist")', "<i class='icon icon-bars'></i>", '', "title='{$lang->doc->browseTypeList['list']}' class='btn btn-icon'");?>
|
||||||
<?php echo html::a('javascript:setBrowseType("bylist")', "<i class='icon icon-bars'></i>", '', "title='{$lang->doc->browseTypeList['list']}' class='btn btn-icon btn-gray text-primary'");?>
|
<?php echo html::a('javascript:setBrowseType("bygrid")', "<i class='icon icon-cards-view'></i>", '', "title='{$lang->doc->browseTypeList['grid']}' class='btn btn-icon text-primary'");?>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
<?php if(empty($docs)):?>
|
||||||
|
<div class="table-empty-tip">
|
||||||
|
<p><span class="text-muted"><?php echo $lang->doc->noDoc;?></span></p>
|
||||||
|
</div>
|
||||||
|
<?php else:?>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="row row-grid files-grid" data-size="300">
|
<div class="row row-grid files-grid" data-size="300">
|
||||||
<?php foreach($modules as $module):?>
|
<?php foreach($modules as $module):?>
|
||||||
@@ -44,5 +49,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
|
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
|
||||||
|
<?php endif;?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<table class='table table-form'>
|
<table class='table table-form'>
|
||||||
<tr>
|
<tr>
|
||||||
<th class='w-80px'><?php echo $lang->doc->libType?></th>
|
<th class='w-80px'><?php echo $lang->doc->libType?></th>
|
||||||
<td><?php echo html::select('libType', $libTypeList, $type, "class='form-control chosen-simple'")?></td>
|
<td><?php echo html::select('libType', $libTypeList, $type, "class='form-control'")?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class='product'>
|
<tr class='product'>
|
||||||
<th><?php echo $lang->doc->product?></th>
|
<th><?php echo $lang->doc->product?></th>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<?php include '../../common/view/header.html.php';?>
|
<?php include '../../common/view/header.html.php';?>
|
||||||
<div class='main-row split-row' id='mainRow'>
|
<div class='main-row split-row fade' id='mainRow'>
|
||||||
<?php include './side.html.php';?>
|
<?php include './side.html.php';?>
|
||||||
<div class="main-col" data-min-width="400">
|
<div class="main-col" data-min-width="400">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
<?php endforeach;?>
|
<?php endforeach;?>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<?php echo html::submitButton($lang->save);?>
|
<?php echo html::submitButton($lang->save);?>
|
||||||
<?php echo html::commonButton($lang->cancel, '', "btn close-dropdown");?>
|
<?php echo html::commonButton($lang->cancel, '', "btn close-dropdown");?>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<?php include '../../common/view/header.html.php';?>
|
<?php include '../../common/view/header.html.php';?>
|
||||||
<div class="main-row <?php if($this->from == 'doc') echo 'split-row';?>" id="mainRow">
|
<div class="main-row fade <?php if($this->from == 'doc') echo 'split-row';?>" id="mainRow">
|
||||||
<?php if($this->from == 'doc'):?>
|
<?php if($this->from == 'doc'):?>
|
||||||
<?php include './side.html.php';?>
|
<?php include './side.html.php';?>
|
||||||
<div class="col-spliter"></div>
|
<div class="col-spliter"></div>
|
||||||
@@ -41,8 +41,8 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<?php echo html::a(inlink('showFiles', "type=$type&objectID=$objectID&viewType=list"), "<i class='icon icon-bars'></i>" , '', "title={$lang->doc->browseTypeList['list']} class='btn btn-icon text-primary'");?>
|
<?php echo html::a(inlink('showFiles', "type=$type&objectID=$objectID&viewType=list"), "<i class='icon icon-bars'></i>" , '', "title={$lang->doc->browseTypeList['list']} class='btn btn-icon" . ($viewType == 'list' ? ' text-primary' : '') . "'");?>
|
||||||
<?php echo html::a(inlink('showFiles', "type=$type&objectID=$objectID&viewType=card"), "<i class='icon icon-cards-view'></i>", '', "title={$lang->doc->browseTypeList['grid']} class='btn btn-icon'");?>
|
<?php echo html::a(inlink('showFiles', "type=$type&objectID=$objectID&viewType=card"), "<i class='icon icon-cards-view'></i>", '', "title={$lang->doc->browseTypeList['grid']} class='btn btn-icon" . ($viewType != 'list' ? ' text-primary' : '') . "'");?>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
<div class="panel-body has-table">
|
<div class="panel-body has-table">
|
||||||
<table class="table table-borderless table-hover table-files">
|
<table class="table table-borderless table-hover table-files">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="muted">
|
<tr class="text-center">
|
||||||
<th class="w-80px"><?php echo $lang->doc->id;?></th>
|
<th class="w-80px"><?php echo $lang->doc->id;?></th>
|
||||||
<th><?php echo $lang->doc->fileTitle;?></th>
|
<th><?php echo $lang->doc->fileTitle;?></th>
|
||||||
<th><?php echo $lang->doc->filePath;?></th>
|
<th><?php echo $lang->doc->filePath;?></th>
|
||||||
@@ -66,16 +66,16 @@
|
|||||||
<?php foreach($files as $file):?>
|
<?php foreach($files as $file):?>
|
||||||
<?php if(empty($file->pathname)) continue;?>
|
<?php if(empty($file->pathname)) continue;?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo sprintf('%03d', $file->id);?></td>
|
<td class="text-center"><?php echo sprintf('%03d', $file->id);?></td>
|
||||||
<td>
|
<td class="c-url">
|
||||||
<a href='<?php echo $this->createLink($file->objectType, 'view', "objectID=$file->objectID");?>'><?php echo $file->title . ' [' . strtoupper($file->objectType) . ' #' . $file->objectID . ']';?></a>
|
<a href='<?php echo $this->createLink($file->objectType, 'view', "objectID=$file->objectID");?>'><?php echo $file->title . ' [' . strtoupper($file->objectType) . ' #' . $file->objectID . ']';?></a>
|
||||||
</td>
|
</td>
|
||||||
<td> <?php echo $file->pathname;?> </td>
|
<td> <?php echo $file->pathname;?> </td>
|
||||||
<td><?php echo $file->extension;?></td>
|
<td class="text-center"><?php echo $file->extension;?></td>
|
||||||
<td><?php echo number_format($file->size / 1024 , 1) . 'K';?></td>
|
<td><?php echo number_format($file->size / 1024 , 1) . 'K';?></td>
|
||||||
<td><?php echo isset($file->addedBy) ? zget($users, $file->addedBy) : '';?></td>
|
<td class="text-center"><?php echo isset($file->addedBy) ? zget($users, $file->addedBy) : '';?></td>
|
||||||
<td><?php echo isset($file->addedDate) ? substr($file->addedDate, 0, 10) : '';?></td>
|
<td class="text-center"><?php echo isset($file->addedDate) ? substr($file->addedDate, 0, 10) : '';?></td>
|
||||||
<td>
|
<td class="c-actions">
|
||||||
<?php
|
<?php
|
||||||
common::printLink('file', 'download', "fileID=$file->id", $lang->doc->download, "data-toggle='modal'", '', true, false, $file);
|
common::printLink('file', 'download', "fileID=$file->id", $lang->doc->download, "data-toggle='modal'", '', true, false, $file);
|
||||||
common::printLink('file', 'delete', "fileID=$file->id", $lang->delete, 'hiddenwin', '', true, false, $file);
|
common::printLink('file', 'delete', "fileID=$file->id", $lang->delete, 'hiddenwin', '', true, false, $file);
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
$downloadLink = $this->createLink('file', 'download', "fileID=$file->id&mouse=left");
|
$downloadLink = $this->createLink('file', 'download', "fileID=$file->id&mouse=left");
|
||||||
if(in_array($file->extension, $config->file->imageExtensions))
|
if(in_array($file->extension, $config->file->imageExtensions))
|
||||||
{
|
{
|
||||||
echo "<div class='file-path'><img src='$file->webPath'/></div>";
|
echo "<div class='img-holder' style='background-image: url($file->webPath)'><img src='$file->webPath'/></div>";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,50 +1,55 @@
|
|||||||
<?php include '../../common/view/header.lite.html.php';?>
|
<?php include '../../common/view/header.lite.html.php';?>
|
||||||
<?php js::set('fileID', $file->id);?>
|
<?php js::set('fileID', $file->id);?>
|
||||||
<style>
|
<style>
|
||||||
#imageFile{text-align: center;padding:10px;}
|
#imageFile{text-align: center; padding: 0; margin: 0 -10px;}
|
||||||
#imageFile img{max-width:100%;}
|
#imageFile img{max-width:100%;}
|
||||||
#txtFile{padding: 5px 10px;}
|
#txtFile {padding: 5px 0; margin: 0 -10px;}
|
||||||
#txtFile div{overflow-x: auto;}
|
#txtFile pre {margin: 0;}
|
||||||
|
#txtFile div {overflow-x: auto;}
|
||||||
#titlebar span{float: right; padding-right: 25px;}
|
#titlebar span{float: right; padding-right: 25px;}
|
||||||
.main-header .btn-toolbar{margin-left:8px;}
|
.main-header .btn-toolbar{margin-left:8px;}
|
||||||
</style>
|
</style>
|
||||||
<div id='mainContent' class='main-content'>
|
<main id="main">
|
||||||
<div class='main-header clearfix'>
|
<div class="container">
|
||||||
<h2 class='pull-left'><?php echo $lang->file->preview;?></h2>
|
<div id='mainContent' class='main-content'>
|
||||||
<?php if($fileType == 'txt'):?>
|
<div class='main-header clearfix'>
|
||||||
<div class='btn-toolbar pull-left w-120px'><?php echo html::select('charset', $config->file->charset, $charset, "onchange='setCharset(this.value)' class='form-control'");?></div>
|
<h2 class='pull-left'><?php echo $lang->file->preview;?></h2>
|
||||||
<?php endif;?>
|
<?php if($fileType == 'txt'):?>
|
||||||
</div>
|
<div class='btn-toolbar pull-left w-120px'><?php echo html::select('charset', $config->file->charset, $charset, "onchange='setCharset(this.value)' class='form-control'");?></div>
|
||||||
<?php if($fileType == 'image'):?>
|
<?php endif;?>
|
||||||
<div id='imageFile'><?php echo html::image($this->createLink('file', 'read', "fileID=$file->id"));?></div>
|
</div>
|
||||||
<?php else:?>
|
<?php if($fileType == 'image'):?>
|
||||||
<div id='txtFile'>
|
<div id='imageFile'><?php echo html::image($this->createLink('file', 'read', "fileID=$file->id"));?></div>
|
||||||
<?php
|
<?php else:?>
|
||||||
$fileContent = file_get_contents($file->realPath);
|
<div id='txtFile'>
|
||||||
if($charset != $config->charset)
|
<?php
|
||||||
{
|
$fileContent = file_get_contents($file->realPath);
|
||||||
$fileContent = helper::convertEncoding($fileContent, $charset . "//IGNORE", $config->charset);
|
if($charset != $config->charset)
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(extension_loaded('mbstring'))
|
|
||||||
{
|
{
|
||||||
$encoding = mb_detect_encoding($fileContent, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
|
$fileContent = helper::convertEncoding($fileContent, $charset . "//IGNORE", $config->charset);
|
||||||
if($encoding != 'UTF-8') $fileContent = helper::convertEncoding($fileContent, $encoding, $config->charset);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$encoding = 'UTF-8';
|
if(extension_loaded('mbstring'))
|
||||||
if($config->default->lang == 'zh-cn') $encoding = 'GBK';
|
{
|
||||||
if($config->default->lang == 'zh-tw') $encoding = 'BIG5';
|
$encoding = mb_detect_encoding($fileContent, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
|
||||||
$fileContent = helper::convertEncoding($fileContent, $encoding, $config->charset);
|
if($encoding != 'UTF-8') $fileContent = helper::convertEncoding($fileContent, $encoding, $config->charset);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$encoding = 'UTF-8';
|
||||||
|
if($config->default->lang == 'zh-cn') $encoding = 'GBK';
|
||||||
|
if($config->default->lang == 'zh-tw') $encoding = 'BIG5';
|
||||||
|
$fileContent = helper::convertEncoding($fileContent, $encoding, $config->charset);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
echo "<pre>" . htmlspecialchars($fileContent) . "</pre>";
|
||||||
echo "<pre>" . htmlspecialchars($fileContent) . "</pre>";
|
?>
|
||||||
?>
|
</div>
|
||||||
|
<?php endif;?>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php endif;?>
|
</main>
|
||||||
</div>
|
|
||||||
<script>
|
<script>
|
||||||
function setCharset(charset)
|
function setCharset(charset)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,10 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<?php include '../../common/view/header.lite.html.php';?>
|
<?php include '../../common/view/header.lite.html.php';?>
|
||||||
<style>
|
<style>.main-form {margin: 15px -15px 0}</style>
|
||||||
body{padding-bottom:0px}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
function setFileName()
|
function setFileName()
|
||||||
{
|
{
|
||||||
@@ -28,23 +25,26 @@ function closeWindow()
|
|||||||
clearInterval(time);
|
clearInterval(time);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<div id='mainContent' class='main-content'>
|
<main id="main">
|
||||||
<div class='main-header'>
|
<div class="container">
|
||||||
<h2><?php echo $lang->file->inputFileName;?></h2>
|
<div id='mainContent' class='main-content'>
|
||||||
|
<div class='main-header'>
|
||||||
|
<h2><?php echo $lang->file->inputFileName;?></h2>
|
||||||
|
</div>
|
||||||
|
<form class='main-form' method='post' target='hiddenwin' onsubmit='setFileName();'>
|
||||||
|
<table class='table table-form'>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div class='input-group'>
|
||||||
|
<?php echo html::input('fileName', $file->title, "class='form-control' autocomplete='off'");?>
|
||||||
|
<strong class='input-group-addon'>.<?php echo $file->extension;?></strong>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class='w-80px'><?php echo html::submitButton('', '', 'btn btn-primary btn-block');?></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
<form class='main-form' method='post' target='hiddenwin' onsubmit='setFileName();'>
|
|
||||||
<table class='table table-form'>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class='input-group'>
|
|
||||||
<?php echo html::input('fileName', $file->title, "class='form-control' autocomplete='off'");?>
|
|
||||||
<strong class='input-group-addon'>.<?php echo $file->extension;?></strong>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class='w-80px'><?php echo html::submitButton();?></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<?php include '../../common/view/footer.lite.html.php';?>
|
<?php include '../../common/view/footer.lite.html.php';?>
|
||||||
|
|||||||
@@ -156,15 +156,15 @@ if($isCustomExport)
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><?php echo $lang->file->extension;?></th>
|
<th><?php echo $lang->file->extension;?></th>
|
||||||
<td><?php echo html::select('fileType', $lang->exportFileTypeList, '', 'onchange=switchEncode(this.value) class="form-control chosen-simple"');?></td>
|
<td><?php echo html::select('fileType', $lang->exportFileTypeList, '', 'onchange=switchEncode(this.value) class="form-control"');?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><?php echo $lang->file->encoding;?></th>
|
<th><?php echo $lang->file->encoding;?></th>
|
||||||
<td><?php echo html::select('encode', $config->charsets[$this->cookie->lang], 'utf-8', key($lang->exportFileTypeList) == 'csv' ? "class='form-control chosen-simple'" : "class='form-control chosen-simple'");?></td>
|
<td><?php echo html::select('encode', $config->charsets[$this->cookie->lang], 'utf-8', key($lang->exportFileTypeList) == 'csv' ? "class='form-control'" : "class='form-control'");?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><?php echo $lang->file->exportRange;?></th>
|
<th><?php echo $lang->file->exportRange;?></th>
|
||||||
<td><?php echo html::select('exportType', $lang->exportTypeList, 'all', "class='form-control chosen-simple'");?></td>
|
<td><?php echo html::select('exportType', $lang->exportTypeList, 'all', "class='form-control'");?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php if($isCustomExport):?>
|
<?php if($isCustomExport):?>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -8,14 +8,10 @@ $sessionString .= session_name() . '=' . session_id();
|
|||||||
<div class="detail-title"><?php echo $lang->file->common;?> <i class="icon icon-paper-clip icon-sm"></i></div>
|
<div class="detail-title"><?php echo $lang->file->common;?> <i class="icon icon-paper-clip icon-sm"></i></div>
|
||||||
<div class="detail-content">
|
<div class="detail-content">
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
<style>
|
<style>
|
||||||
.files-list>li>a {display: inline;}
|
.files-list>li>a {display: inline;}
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
$(function(){
|
|
||||||
$(".edit").modalTrigger({width:350, type:'iframe'});
|
|
||||||
})
|
|
||||||
|
|
||||||
/* Delete a file. */
|
/* Delete a file. */
|
||||||
function deleteFile(fileID)
|
function deleteFile(fileID)
|
||||||
{
|
{
|
||||||
@@ -81,9 +77,9 @@ $sessionString .= session_name() . '=' . session_id();
|
|||||||
echo html::a($this->createLink('file', 'download', "fileID=$file->id") . $sessionString, $fileTitle . " ({$fileSize})", '_blank', "onclick=\"return downloadFile($file->id, '$file->extension', $imageWidth)\"");
|
echo html::a($this->createLink('file', 'download', "fileID=$file->id") . $sessionString, $fileTitle . " ({$fileSize})", '_blank', "onclick=\"return downloadFile($file->id, '$file->extension', $imageWidth)\"");
|
||||||
|
|
||||||
|
|
||||||
echo "<span class='right-icon'>";
|
echo "<span class='right-icon'> ";
|
||||||
common::printLink('file', 'edit', "fileID=$file->id", "<i class='icon-pencil'></i>", '', "class='edit btn-icon' title='{$lang->file->edit}'");
|
common::printLink('file', 'edit', "fileID=$file->id", "<i class='icon-pencil'></i>", '', "data-width='400' class='edit iframe text-primary' title='{$lang->file->edit}'");
|
||||||
if(common::hasPriv('file', 'delete')) echo html::a('###', "<i class='icon-trash'></i>", '', "class='btn-icon' onclick='deleteFile($file->id)' title='$lang->delete'");
|
if(common::hasPriv('file', 'delete')) echo html::a('###', "<i class='icon-trash'></i>", '', "class='text-primary' onclick='deleteFile($file->id)' title='$lang->delete'");
|
||||||
echo '</span>';
|
echo '</span>';
|
||||||
echo '</li>';
|
echo '</li>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,47 +23,47 @@
|
|||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id='mainContent' class='main-content'>
|
<div id='mainContent' class='main-table'>
|
||||||
<table class='table' id='groupList'>
|
<table class='table' id='groupList'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class='w-id text-center'><?php echo $lang->group->id;?></th>
|
<th class='w-id text-center'><?php echo $lang->group->id;?></th>
|
||||||
<th class='w-100px'><?php echo $lang->group->name;?></th>
|
<th class='w-130px'><?php echo $lang->group->name;?></th>
|
||||||
<th class='w-300px'><?php echo $lang->group->desc;?></th>
|
<th class='w-300px'><?php echo $lang->group->desc;?></th>
|
||||||
<th><?php echo $lang->group->users;?></th>
|
<th><?php echo $lang->group->users;?></th>
|
||||||
<th class='c-actions text-center'><?php echo $lang->actions;?></th>
|
<th class='c-actions text-center'><?php echo $lang->actions;?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php foreach($groups as $group):?>
|
<?php foreach($groups as $group):?>
|
||||||
<?php $users = implode(',', $groupUsers[$group->id]);?>
|
<?php $users = implode(',', $groupUsers[$group->id]);?>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='text-center'><?php echo $group->id;?></td>
|
<td class='text-center'><?php echo $group->id;?></td>
|
||||||
<td><?php echo $group->name;?></td>
|
<td><?php echo $group->name;?></td>
|
||||||
<td title='<?php echo $group->desc?>'><?php echo $group->desc;?></td>
|
<td title='<?php echo $group->desc?>'><?php echo $group->desc;?></td>
|
||||||
<td title='<?php echo $users;?>'><?php echo $users;?></td>
|
<td title='<?php echo $users;?>'><?php echo $users;?></td>
|
||||||
<td class='c-actions'>
|
<td class='c-actions'>
|
||||||
<?php $lang->group->managepriv = $lang->group->managePrivByGroup;?>
|
<?php $lang->group->managepriv = $lang->group->managePrivByGroup;?>
|
||||||
<?php common::printIcon('group', 'manageView', "groupID=$group->id", $group, 'list', 'eye');?>
|
<?php common::printIcon('group', 'manageView', "groupID=$group->id", $group, 'list', 'eye');?>
|
||||||
<?php common::printIcon('group', 'managepriv', "type=byGroup¶m=$group->id", $group, 'list', 'lock');?>
|
<?php common::printIcon('group', 'managepriv', "type=byGroup¶m=$group->id", $group, 'list', 'lock');?>
|
||||||
<?php $lang->group->managemember = $lang->group->manageMember;?>
|
<?php $lang->group->managemember = $lang->group->manageMember;?>
|
||||||
<?php common::printIcon('group', 'managemember', "groupID=$group->id", $group, 'list', 'persons', '', 'iframe', 'yes', "data-width='750'");?>
|
<?php common::printIcon('group', 'managemember', "groupID=$group->id", $group, 'list', 'persons', '', 'iframe', 'yes', "data-width='750'");?>
|
||||||
<?php common::printIcon('group', 'edit', "groupID=$group->id", $group, 'list', '', '', 'iframe', 'yes', "data-width='550'");?>
|
<?php common::printIcon('group', 'edit', "groupID=$group->id", $group, 'list', '', '', 'iframe', 'yes', "data-width='550'");?>
|
||||||
<?php common::printIcon('group', 'copy', "groupID=$group->id", $group, 'list', '', '', 'iframe', 'yes', "data-width='550'");?>
|
<?php common::printIcon('group', 'copy', "groupID=$group->id", $group, 'list', '', '', 'iframe', 'yes', "data-width='550'");?>
|
||||||
<?php
|
<?php
|
||||||
if(common::hasPriv('group', 'delete') and $group->role != 'limited')
|
if(common::hasPriv('group', 'delete') and $group->role != 'limited')
|
||||||
{
|
{
|
||||||
$deleteURL = $this->createLink('group', 'delete', "groupID=$group->id&confirm=yes");
|
$deleteURL = $this->createLink('group', 'delete', "groupID=$group->id&confirm=yes");
|
||||||
echo html::a("javascript:ajaxDelete(\"$deleteURL\", \"groupList\", confirmDelete)", '<i class="icon icon-trash"></i>', '', "title='{$lang->group->delete}' class='btn'");
|
echo html::a("javascript:ajaxDelete(\"$deleteURL\", \"groupList\", confirmDelete)", '<i class="icon icon-trash"></i>', '', "title='{$lang->group->delete}' class='btn'");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo "<button class='btn disabled'><i class='icon icon-trash disabled' title='{$lang->group->delete}'></i></button>";
|
echo "<button class='btn disabled'><i class='icon icon-trash disabled' title='{$lang->group->delete}'></i></button>";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php endforeach;?>
|
<?php endforeach;?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
||||||
.dynamic-date > .date-label {margin-top: -8px;}
|
.dynamic-date > .date-label {margin-top: -8px;}
|
||||||
.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;}
|
.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;}
|
||||||
.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; max-height: 800px; transition: max-height .2s; overflow: hidden;}
|
.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; transition: max-height .2s; overflow: hidden;}
|
||||||
.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;}
|
.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;}
|
||||||
.dynamic .timeline-text {color: #3C4353;}
|
.dynamic .timeline-text {color: #3C4353;}
|
||||||
.dynamic .text-muted {color: #838A9D;}
|
.dynamic .text-muted {color: #838A9D;}
|
||||||
|
|||||||
@@ -36,8 +36,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btn-toolbar pull-right">
|
<div class="btn-toolbar pull-right">
|
||||||
<?php if(common::hasPriv('todo', 'export')) echo html::a(helper::createLink('todo', 'export', "account=$account&orderBy=$orderBy", 'html', true), "<i class='icon-export muted'> </i> " . $lang->todo->export, '', "class='btn btn-link iframe'");?>
|
<?php if(common::hasPriv('todo', 'export')) echo html::a(helper::createLink('todo', 'export', "account=$account&orderBy=$orderBy", 'html', true), "<i class='icon-export muted'> </i> " . $lang->todo->export, '', "class='btn btn-link iframe'");?>
|
||||||
<?php common::printLink('todo', 'batchCreate', '', "<i class='icon icon-plus'> </i>" . $lang->todo->batchCreate, '', "id='batchCreate' class='btn btn-secondary iframe' data-width='80%'", '', 'true');?>
|
<?php common::printLink('todo', 'batchCreate', '', "<i class='icon icon-plus'></i> " . $lang->todo->batchCreate, '', "id='batchCreate' class='btn btn-secondary iframe' data-width='80%'", '', 'true');?>
|
||||||
<?php common::printLink('todo', 'create', '', "<i class='icon icon-plus'> </i>" . $lang->todo->create, '', "id='create' class='btn btn-primary iframe' data-width='80%'", '', 'true');?>
|
<?php common::printLink('todo', 'create', '', "<i class='icon icon-plus'></i> " . $lang->todo->create, '', "id='create' class='btn btn-primary iframe' data-width='80%'", '', 'true');?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="mainContent">
|
<div id="mainContent">
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
||||||
.dynamic-date > .date-label {margin-top: -8px;}
|
.dynamic-date > .date-label {margin-top: -8px;}
|
||||||
.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;}
|
.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;}
|
||||||
.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; max-height: 800px; transition: max-height .2s; overflow: hidden;}
|
.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; transition: max-height .2s; overflow: hidden;}
|
||||||
.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;}
|
.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;}
|
||||||
.dynamic .timeline-text {color: #3C4353;}
|
.dynamic .timeline-text {color: #3C4353;}
|
||||||
.dynamic .text-muted {color: #838A9D;}
|
.dynamic .text-muted {color: #838A9D;}
|
||||||
|
|||||||
@@ -35,15 +35,23 @@
|
|||||||
<?php $queryParam = strpos($menuItem->name, 'QUERY') === 0 ? '¶m=' . (int)substr($menuItem->name, 5) : '';?>
|
<?php $queryParam = strpos($menuItem->name, 'QUERY') === 0 ? '¶m=' . (int)substr($menuItem->name, 5) : '';?>
|
||||||
<?php if($menuItem->name == 'more'):?>
|
<?php if($menuItem->name == 'more'):?>
|
||||||
<?php
|
<?php
|
||||||
echo '<div class="btn-group">';
|
echo '<div class="btn-group">';
|
||||||
echo html::a('javascript:;', $menuItem->text . " <span class='caret'></span>", '', "data-toggle='dropdown' class='btn btn-link'");
|
$active = '';
|
||||||
echo "<ul class='dropdown-menu'>";
|
$current = $menuItem->text;
|
||||||
foreach ($lang->product->moreSelects as $key => $value)
|
$storyBrowseType = $this->session->storyBrowseType;
|
||||||
{
|
if(isset($lang->product->moreSelects[$storyBrowseType]))
|
||||||
echo '<li' . ($key == $this->session->storyBrowseType ? " class='active'" : '') . '>';
|
{
|
||||||
echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=$key" . $queryParam), $value);
|
$active = 'btn-active-text';
|
||||||
}
|
$current = "<span class='text'>{$lang->product->moreSelects[$storyBrowseType]}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||||
echo '</ul></div>';
|
}
|
||||||
|
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown' class='btn btn-link $active'");
|
||||||
|
echo "<ul class='dropdown-menu'>";
|
||||||
|
foreach($lang->product->moreSelects as $key => $value)
|
||||||
|
{
|
||||||
|
echo '<li' . ($key == $this->session->storyBrowseType ? " class='active'" : '') . '>';
|
||||||
|
echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=$key" . $queryParam), $value);
|
||||||
|
}
|
||||||
|
echo '</ul></div>';
|
||||||
?>
|
?>
|
||||||
<?php else:?>
|
<?php else:?>
|
||||||
<?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=$menuBrowseType" . $queryParam), "<span class='text'>$menuItem->text</span>" . ($menuItem->name == $this->session->storyBrowseType ? ' <span class="label label-light label-badge">' . $pager->recTotal . '</span>' : ''), '', "id='{$menuItem->name}Tab' class='btn btn-link" . ($this->session->storyBrowseType == $menuItem->name ? ' btn-active-text' : '') . "'");?>
|
<?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=$menuBrowseType" . $queryParam), "<span class='text'>$menuItem->text</span>" . ($menuItem->name == $this->session->storyBrowseType ? ' <span class="label label-light label-badge">' . $pager->recTotal . '</span>' : ''), '', "id='{$menuItem->name}Tab' class='btn btn-link" . ($this->session->storyBrowseType == $menuItem->name ? ' btn-active-text' : '') . "'");?>
|
||||||
@@ -109,7 +117,6 @@
|
|||||||
$vars = "productID=$productID&branch=$branch&browseType=$browseType¶m=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";
|
$vars = "productID=$productID&branch=$branch&browseType=$browseType¶m=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";
|
||||||
|
|
||||||
if($useDatatable) include '../../common/view/datatable.html.php';
|
if($useDatatable) include '../../common/view/datatable.html.php';
|
||||||
if(!$useDatatable) include '../../common/view/tablesorter.html.php';
|
|
||||||
$setting = $this->datatable->getSetting('product');
|
$setting = $this->datatable->getSetting('product');
|
||||||
$widths = $this->datatable->setFixedFieldWidth($setting);
|
$widths = $this->datatable->setFixedFieldWidth($setting);
|
||||||
$columns = 0;
|
$columns = 0;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<div class='btn-toolbar pull-left'>
|
<div class='btn-toolbar pull-left'>
|
||||||
<a class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->product->build;?></span><span class='label label-light label-badge'><?php echo count($builds);?></span></a>
|
<a class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->product->build;?></span><span class='label label-light label-badge'><?php echo count($builds);?></span></a>
|
||||||
</div>
|
</div>
|
||||||
<div class='btn-toolbar pull-right'><?php common::printLink('build', 'create', "product=$product->id", "<i class='icon icon-plus'> </i>" . $lang->build->create, '', "class='btn btn-primary'");?></div>
|
<div class='btn-toolbar pull-right'><?php common::printLink('build', 'create', "product=$product->id", "<i class='icon icon-plus'></i> " . $lang->build->create, '', "class='btn btn-primary'");?></div>
|
||||||
</div>
|
</div>
|
||||||
<div id='mainContent' class='main-table'>
|
<div id='mainContent' class='main-table'>
|
||||||
<table class='table' id='buildList'>
|
<table class='table' id='buildList'>
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
$proudctTypeList = array();
|
$proudctTypeList = array();
|
||||||
foreach($lang->product->typeList as $key => $type) $productTypeList[$key] = $type . zget($lang->product->typeTips, $key, '');
|
foreach($lang->product->typeList as $key => $type) $productTypeList[$key] = $type . zget($lang->product->typeTips, $key, '');
|
||||||
?>
|
?>
|
||||||
<?php echo html::select('type', $productTypeList, 'normal', "class='form-control chosen-simple'");?>
|
<?php echo html::select('type', $productTypeList, 'normal', "class='form-control'");?>
|
||||||
</td><td></td>
|
</td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<?php include '../../common/view/header.html.php';?>
|
<?php include '../../common/view/header.html.php';?>
|
||||||
<?php if(empty($products)):?>
|
<?php if(empty($products)):?>
|
||||||
<div class="table-empty-tip">
|
<div class="table-empty-tip">
|
||||||
<p><span class="text-muted"><?php echo $lang->product->noProduct;?></span> <?php common::printLink('product', 'create', '', "<i class='icon icon-plus'> </i>" . $lang->product->create, '', "class='btn btn-info'");?></p>
|
<p><span class="text-muted"><?php echo $lang->product->noProduct;?></span> <?php common::printLink('product', 'create', '', "<i class='icon icon-plus'></i> " . $lang->product->create, '', "class='btn btn-info'");?></p>
|
||||||
</div>
|
</div>
|
||||||
<?php else:?>
|
<?php else:?>
|
||||||
<?php echo $this->fetch('block', 'dashboard', 'module=product');?>
|
<?php echo $this->fetch('block', 'dashboard', 'module=product');?>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
?>
|
?>
|
||||||
<?php include '../../common/view/header.html.php';?>
|
<?php include '../../common/view/header.html.php';?>
|
||||||
<div class="table-empty-tip">
|
<div class="table-empty-tip">
|
||||||
<p><span class="text-muted"><?php echo $lang->product->noProduct;?></span> <?php common::printLink('product', 'create', '', "<i class='icon icon-plus'> </i>" . $lang->product->create, '', "class='btn btn-info'");?></p>
|
<p><span class="text-muted"><?php echo $lang->product->noProduct;?></span> <?php common::printLink('product', 'create', '', "<i class='icon icon-plus'></i> " . $lang->product->create, '', "class='btn btn-info'");?></p>
|
||||||
</div>
|
</div>
|
||||||
<?php include '../../common/view/footer.html.php';?>
|
<?php include '../../common/view/footer.html.php';?>
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
<td colspan='3'><?php echo html::textarea('desc', htmlspecialchars($plan->desc), "rows='10' class='form-control kindeditor' hidefocus='true'");?></td>
|
<td colspan='3'><?php echo html::textarea('desc', htmlspecialchars($plan->desc), "rows='10' class='form-control kindeditor' hidefocus='true'");?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan='4' class='text-center'>
|
<td colspan='4' class='text-center form-actions'>
|
||||||
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
||||||
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
||||||
<?php echo html::hidden('product', $product->id);?>
|
<?php echo html::hidden('product', $product->id);?>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
||||||
.dynamic-date > .date-label {margin-top: -8px;}
|
.dynamic-date > .date-label {margin-top: -8px;}
|
||||||
.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;}
|
.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;}
|
||||||
.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; max-height: 800px; transition: max-height .2s; overflow: hidden;}
|
.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; transition: max-height .2s; overflow: hidden;}
|
||||||
.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;}
|
.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;}
|
||||||
.dynamic .timeline-text {color: #3C4353;}
|
.dynamic .timeline-text {color: #3C4353;}
|
||||||
.dynamic .text-muted {color: #838A9D;}
|
.dynamic .text-muted {color: #838A9D;}
|
||||||
|
|||||||
@@ -6,4 +6,4 @@
|
|||||||
.product + .product {margin-left: 0;}
|
.product + .product {margin-left: 0;}
|
||||||
#productsBox .row > .product.has-branch label {margin-right: 40%;}
|
#productsBox .row > .product.has-branch label {margin-right: 40%;}
|
||||||
#productsBox .row > .product.has-branch > .form-control,
|
#productsBox .row > .product.has-branch > .form-control,
|
||||||
#productsBox .row > .product.has-branch > .chosen-container {position: absolute; width: 40%!important; right: 3px; top: 3px;}
|
#productsBox .row > .product.has-branch > .chosen-container {position: absolute; width: 40%!important; right: 1px; top: 1px;}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btn-toolbar pull-right">
|
<div class="btn-toolbar pull-right">
|
||||||
<?php common::printLink('bug', 'export', "productID=$productID&orderBy=$orderBy", "<i class='icon icon-export muted'> </i>" . $lang->bug->export, '', "class='btn btn-link export'");?>
|
<?php common::printLink('bug', 'export', "productID=$productID&orderBy=$orderBy", "<i class='icon icon-export muted'> </i>" . $lang->bug->export, '', "class='btn btn-link export'");?>
|
||||||
<?php common::printLink('bug', 'create', "productID=$productID&branch=$branchID&extra=projectID=$project->id", "<i class='icon icon-plus'> </i>" . $lang->bug->create, '', "class='btn btn-primary'");?>
|
<?php common::printLink('bug', 'create', "productID=$productID&branch=$branchID&extra=projectID=$project->id", "<i class='icon icon-plus'></i> " . $lang->bug->create, '', "class='btn btn-primary'");?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="mainContent">
|
<div id="mainContent">
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-toolbar pull-right">
|
<div class="btn-toolbar pull-right">
|
||||||
<?php common::printLink('build', 'create', "project=$project->id", "<i class='icon icon-plus'> </i>" . $lang->build->create, '', "class='btn btn-primary'");?>
|
<?php common::printLink('build', 'create', "project=$project->id", "<i class='icon icon-plus'></i> " . $lang->build->create, '', "class='btn btn-primary'");?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="mainContent">
|
<div id="mainContent">
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><?php echo $lang->project->type;?></th>
|
<th><?php echo $lang->project->type;?></th>
|
||||||
<td><?php echo html::select('type', $lang->project->typeList, '', "class='form-control chosen-simple' onchange='showTypeTips()'");?></td>
|
<td><?php echo html::select('type', $lang->project->typeList, '', "class='form-control' onchange='showTypeTips()'");?></td>
|
||||||
<td class='muted' colspan='2'><div class='type-tips'><?php echo $lang->project->typeDesc;?></div></td>
|
<td class='muted' colspan='2'><div class='type-tips'><?php echo $lang->project->typeDesc;?></div></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr <?php if($this->config->global->flow == 'onlyTask') echo "class='hidden'";?>>
|
<tr <?php if($this->config->global->flow == 'onlyTask') echo "class='hidden'";?>>
|
||||||
|
|||||||
@@ -62,8 +62,8 @@
|
|||||||
$this->lang->story->create = $this->lang->project->createStory;
|
$this->lang->story->create = $this->lang->project->createStory;
|
||||||
if($productID and !$this->loadModel('story')->checkForceReview())
|
if($productID and !$this->loadModel('story')->checkForceReview())
|
||||||
{
|
{
|
||||||
common::printLink('story', 'batchCreate', "productID=$productID&branch=0&moduleID=0&story=0&project=$project->id", "<i class='icon icon-plus'> </i>" . $lang->story->batchCreate, '', "class='btn btn-secondary'");
|
common::printLink('story', 'batchCreate', "productID=$productID&branch=0&moduleID=0&story=0&project=$project->id", "<i class='icon icon-plus'></i> " . $lang->story->batchCreate, '', "class='btn btn-secondary'");
|
||||||
common::printLink('story', 'create', "productID=$productID&branch=0&moduleID=0&story=0&project=$project->id", "<i class='icon icon-plus'> </i>" . $lang->story->create, '', "class='btn btn-primary'");
|
common::printLink('story', 'create', "productID=$productID&branch=0&moduleID=0&story=0&project=$project->id", "<i class='icon icon-plus'></i> " . $lang->story->create, '', "class='btn btn-primary'");
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<?php if($productID and !$this->loadModel('story')->checkForceReview()) common::printLink('story', 'create', "productID=$productID&branch=&moduleID=0&story=0&project=$project->id", "<i class='icon icon-plus'> </i>" . $lang->project->createStory, '', "class='btn btn-primary'");?>
|
<?php if($productID and !$this->loadModel('story')->checkForceReview()) common::printLink('story', 'create', "productID=$productID&branch=&moduleID=0&story=0&project=$project->id", "<i class='icon icon-plus'></i> " . $lang->project->createStory, '', "class='btn btn-primary'");?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
|
|||||||
@@ -69,11 +69,16 @@ js::set('browseType', $browseType);
|
|||||||
{
|
{
|
||||||
echo "<div class='btn-group'>";
|
echo "<div class='btn-group'>";
|
||||||
$taskBrowseType = isset($status) ? $this->session->taskBrowseType : '';
|
$taskBrowseType = isset($status) ? $this->session->taskBrowseType : '';
|
||||||
$current = zget($lang->project->statusSelects, $taskBrowseType, '');
|
$current = $menuItem->text;
|
||||||
if(empty($current)) $current = $menuItem->text;
|
$active = '';
|
||||||
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown' class='btn btn-link'");
|
if(isset($lang->project->statusSelects[$taskBrowseType]))
|
||||||
|
{
|
||||||
|
$current = "<span class='text'>{$lang->project->statusSelects[$taskBrowseType]}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||||
|
$active = 'btn-active-text';
|
||||||
|
}
|
||||||
|
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown' class='btn btn-link $active'");
|
||||||
echo "<ul class='dropdown-menu'>";
|
echo "<ul class='dropdown-menu'>";
|
||||||
foreach ($lang->project->statusSelects as $key => $value)
|
foreach($lang->project->statusSelects as $key => $value)
|
||||||
{
|
{
|
||||||
if($key == '') continue;
|
if($key == '') continue;
|
||||||
echo '<li' . ($key == $taskBrowseType ? " class='active'" : '') . '>';
|
echo '<li' . ($key == $taskBrowseType ? " class='active'" : '') . '>';
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btn-toolbar pull-right">
|
<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');?>
|
||||||
<?php common::printLink('testtask', 'create', "product=0&project=$projectID", "<i class='icon icon-plus'> </i>" . $lang->testtask->create, '', "class='btn btn-primary'");?>
|
<?php common::printLink('testtask', 'create', "product=0&project=$projectID", "<i class='icon icon-plus'></i> " . $lang->testtask->create, '', "class='btn btn-primary'");?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="mainContent">
|
<div id="mainContent">
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
$misc = common::hasPriv('task', 'export', $project) ? "class='btn btn-link'" : "class='btn btn-link disabled'";
|
$misc = "class='btn btn-link iframe" . (common::hasPriv('task', 'export', $project) ? ' dtisabled' : '') . "' data-width='700'";
|
||||||
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "project=$projectID&orderBy=$orderBy&type=$browseType") : '#';
|
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "project=$projectID&orderBy=$orderBy&type=$browseType") : '#';
|
||||||
echo html::a($link, "<i class='icon icon-export muted'></i> <span class='text'>{$lang->export}</span>", '', $misc);
|
echo html::a($link, "<i class='icon icon-export muted'></i> <span class='text'>{$lang->export}</span>", '', $misc);
|
||||||
|
|
||||||
|
|||||||
@@ -289,10 +289,6 @@
|
|||||||
common::printIcon('project', 'edit', $params, $project);
|
common::printIcon('project', 'edit', $params, $project);
|
||||||
common::printIcon('project', 'delete', $params, $project, 'button', '', 'hiddenwin');
|
common::printIcon('project', 'delete', $params, $project, 'button', '', 'hiddenwin');
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
common::printBack($browseLink);
|
|
||||||
}
|
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<?php echo html::select('assign', $lang->report->assign, $assign, "class='form-control chosen-simple' onchange='changeParams(this)'");?>
|
<?php echo html::select('assign', $lang->report->assign, $assign, "class='form-control' onchange='changeParams(this)'");?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
<?php echo html::submitButton($lang->report->query, '', 'btn btn-primary btn-block');?>
|
<?php echo html::submitButton($lang->report->query, '', 'btn btn-primary btn-block');?>
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ class scoreModel extends model
|
|||||||
|
|
||||||
if(!empty($task->estimate))
|
if(!empty($task->estimate))
|
||||||
{
|
{
|
||||||
$rule['score'] = $rule['score'] + round(($task->consumed / 10 * $task->estimate / $task->consumed));
|
$rule['score'] = $rule['score'] + (empty($task->consumed) ? 0 : round($task->consumed / 10 * $task->estimate / $task->consumed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -221,7 +221,7 @@ class scoreModel extends model
|
|||||||
$data->time = empty($time) ? helper::now() : $time;
|
$data->time = empty($time) ? helper::now() : $time;
|
||||||
$this->dao->insert(TABLE_SCORE)->data($data)->exec();
|
$this->dao->insert(TABLE_SCORE)->data($data)->exec();
|
||||||
|
|
||||||
$this->dao->update(TABLE_USER)->set("`score`=`score` + " . (int)$rule['score'])->set("`scoreLevel`=`scoreLevel` + " . $rule['score'])->where('account')->eq($account)->exec();
|
$this->dao->update(TABLE_USER)->set("`score`=`score` + " . (int)$rule['score'])->set("`scoreLevel`=`scoreLevel` + " . (int)$rule['score'])->where('account')->eq($account)->exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ foreach($fieldParams as $fieldName => $param)
|
|||||||
<ul>
|
<ul>
|
||||||
<?php foreach($queries as $queryID => $queryName):?>
|
<?php foreach($queries as $queryID => $queryName):?>
|
||||||
<?php if(empty($queryID)) continue;?>
|
<?php if(empty($queryID)) continue;?>
|
||||||
<li><?php echo html::a("javascript:executeQuery($queryID)", $queryName . (common::hasPriv('search', 'deleteQuery') ? '<i class="icon icon-close"></i>' : ''), '', "class='label user-query' data-query-id='$queryID'");?></li>
|
<li><?php echo html::a("javascript:executeQuery($queryID)", $queryName . (common::hasPriv('search', 'deleteQuery') ? '<i class="icon icon-close"></i>' : ''), '', "class='label user-query' data-query-id='$queryID' title='{$queryName}'");?></li>
|
||||||
<?php endforeach;?>
|
<?php endforeach;?>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -96,6 +96,7 @@ $lang->story->copy = "Copy a Story";
|
|||||||
$lang->story->total = "Total Stories";
|
$lang->story->total = "Total Stories";
|
||||||
$lang->story->allStories = 'All';
|
$lang->story->allStories = 'All';
|
||||||
$lang->story->unclosed = 'Unclosed';
|
$lang->story->unclosed = 'Unclosed';
|
||||||
|
$lang->story->deleted = 'Deleted';
|
||||||
|
|
||||||
$lang->story->ditto = 'Ditto';
|
$lang->story->ditto = 'Ditto';
|
||||||
$lang->story->dittoNotice = 'This Story does not belong to the same Product as the last Story does!';
|
$lang->story->dittoNotice = 'This Story does not belong to the same Product as the last Story does!';
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ $lang->story->copy = "复制需求";
|
|||||||
$lang->story->total = '总需求';
|
$lang->story->total = '总需求';
|
||||||
$lang->story->allStories = '所有需求';
|
$lang->story->allStories = '所有需求';
|
||||||
$lang->story->unclosed = '未关闭';
|
$lang->story->unclosed = '未关闭';
|
||||||
|
$lang->story->deleted = '已删除';
|
||||||
|
|
||||||
$lang->story->ditto = '同上';
|
$lang->story->ditto = '同上';
|
||||||
$lang->story->dittoNotice = '该需求与上一需求不属于同一产品!';
|
$lang->story->dittoNotice = '该需求与上一需求不属于同一产品!';
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
<table class='table table-form'>
|
<table class='table table-form'>
|
||||||
<tr>
|
<tr>
|
||||||
<th class='w-80px'><?php echo $lang->story->closedReason;?></th>
|
<th class='w-80px'><?php echo $lang->story->closedReason;?></th>
|
||||||
<td class='w-p25-f'><?php echo html::select('closedReason', $lang->story->reasonList, '', 'class="form-control chosen-simple" onchange="setStory(this.value)"');?></td><td></td>
|
<td class='w-p25-f'><?php echo html::select('closedReason', $lang->story->reasonList, '', 'class="form-control" onchange="setStory(this.value)"');?></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr id='duplicateStoryBox' style='display:none'>
|
<tr id='duplicateStoryBox' style='display:none'>
|
||||||
<th><?php echo $lang->story->duplicateStory;?></th>
|
<th><?php echo $lang->story->duplicateStory;?></th>
|
||||||
|
|||||||
@@ -36,7 +36,10 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</small>
|
</small>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
<?php if($story->deleted):?>
|
||||||
|
<span class='label label-danger'><?php echo $lang->story->deleted;?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="mainContent" class="main-row">
|
<div id="mainContent" class="main-row">
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -71,32 +71,25 @@ function setStoryRelated(num)
|
|||||||
/* Toggle zero task story. */
|
/* Toggle zero task story. */
|
||||||
function toggleZeroTaskStory()
|
function toggleZeroTaskStory()
|
||||||
{
|
{
|
||||||
if($('#zeroTaskStory').hasClass('zeroTask'))
|
var $toggle = $('#zeroTaskStory').toggleClass('checked');
|
||||||
{
|
var zeroTask = $toggle.hasClass('checked');
|
||||||
$('#zeroTaskStory').removeClass('zeroTask');
|
|
||||||
zeroTask = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$('#zeroTaskStory').addClass('zeroTask');
|
|
||||||
zeroTask = true;
|
|
||||||
}
|
|
||||||
$.cookie('zeroTask', zeroTask, {expires:config.cookieLife, path:config.webRoot});
|
$.cookie('zeroTask', zeroTask, {expires:config.cookieLife, path:config.webRoot});
|
||||||
$('select[name^="story"]').each(function()
|
$('select[name^="story"]').each(function()
|
||||||
{
|
{
|
||||||
selectVal = $(this).val();
|
var $select = $(this);
|
||||||
$(this).find('option').each(function()
|
var selectVal = $select.val();
|
||||||
|
$select.find('option').each(function()
|
||||||
{
|
{
|
||||||
value = $(this).attr('value');
|
var $option = $(this);
|
||||||
$(this).show();
|
var value = $option.attr('value');
|
||||||
|
$option.show();
|
||||||
if(value != 'ditto' && storyTasks[value] > 0 && zeroTask)
|
if(value != 'ditto' && storyTasks[value] > 0 && zeroTask)
|
||||||
{
|
{
|
||||||
$(this).hide();
|
$option.hide();
|
||||||
if(selectVal == value) selectVal = '';
|
if(selectVal == value) selectVal = '';
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
$(this).val(selectVal);
|
$select.val(selectVal).trigger("chosen:updated");
|
||||||
$(this).trigger("chosen:updated");
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,19 +12,21 @@
|
|||||||
?>
|
?>
|
||||||
<?php include '../../common/view/header.html.php';?>
|
<?php include '../../common/view/header.html.php';?>
|
||||||
<?php include '../../common/view/datepicker.html.php';?>
|
<?php include '../../common/view/datepicker.html.php';?>
|
||||||
<div id="mainContent" class="main-content">
|
<div id="mainContent" class="main-content fade">
|
||||||
<div class="main-header">
|
<div class="main-header clearfix">
|
||||||
<h2>
|
<h2 class="pull-left">
|
||||||
<?php if($parent):?>
|
<?php if($parent):?>
|
||||||
<span class='pull-left'><?php echo $parentTitle;?></span>
|
<span class='pull-left'><?php echo $parentTitle;?></span>
|
||||||
<?php echo $lang->task->batchCreateChildren;?>
|
<?php echo $lang->task->batchCreateChildren;?>
|
||||||
<?php else:?>
|
<?php else:?>
|
||||||
<?php echo $lang->task->batchCreate;?>
|
<?php echo $lang->task->batchCreate;?>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
<?php if($project->type != 'ops'):?>
|
|
||||||
<span><small><a href='javascript:toggleZeroTaskStory();' id='zeroTaskStory'><?php echo $lang->story->zeroTask;?><i class='icon icon-sm icon-close'></i></a></small></span>
|
|
||||||
<?php endif;?>
|
|
||||||
</h2>
|
</h2>
|
||||||
|
<?php if($project->type != 'ops'):?>
|
||||||
|
<a class="checkbox-primary pull-left" id='zeroTaskStory' href='javascript:toggleZeroTaskStory();'>
|
||||||
|
<label><?php echo $lang->story->zeroTask;?></label>
|
||||||
|
</a>
|
||||||
|
<?php endif;?>
|
||||||
<div class="pull-right btn-toolbar">
|
<div class="pull-right btn-toolbar">
|
||||||
<button type='button' data-toggle="importLinesModal" class="btn btn-info"><?php echo $lang->pasteText;?></button>
|
<button type='button' data-toggle="importLinesModal" class="btn btn-info"><?php echo $lang->pasteText;?></button>
|
||||||
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=task§ion=custom&key=batchCreateFields')?>
|
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=task§ion=custom&key=batchCreateFields')?>
|
||||||
@@ -115,7 +117,7 @@
|
|||||||
<?php echo html::input("name[$i]", '', "class='form-control input-story-title' autocomplete='off'");?>
|
<?php echo html::input("name[$i]", '', "class='form-control input-story-title' autocomplete='off'");?>
|
||||||
<div class="colorpicker">
|
<div class="colorpicker">
|
||||||
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
|
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
|
||||||
<ul class="dropdown-menu clearfix">
|
<ul class="dropdown-menu clearfix pull-right">
|
||||||
<li class="heading"><?php echo $lang->story->colorTag;?><i class="icon icon-close"></i></li>
|
<li class="heading"><?php echo $lang->story->colorTag;?><i class="icon icon-close"></i></li>
|
||||||
</ul>
|
</ul>
|
||||||
<?php echo html::hidden("color[$i]", '', "data-provide='colorpicker' data-icon='color' data-wrapper='input-control-icon-right' data-update-color='#name\\[$i\\]'");?>
|
<?php echo html::hidden("color[$i]", '', "data-provide='colorpicker' data-icon='color' data-wrapper='input-control-icon-right' data-update-color='#name\\[$i\\]'");?>
|
||||||
@@ -133,7 +135,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<?php endfor;?>
|
<?php endfor;?>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan='<?php echo $colspan?>' class='text-center'>
|
<td colspan='<?php echo $colspan?>' class='text-center form-actions'>
|
||||||
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
||||||
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -13,10 +13,10 @@
|
|||||||
<?php include '../../common/view/header.html.php';?>
|
<?php include '../../common/view/header.html.php';?>
|
||||||
<?php include '../../common/view/datepicker.html.php';?>
|
<?php include '../../common/view/datepicker.html.php';?>
|
||||||
<?php js::set('dittoNotice', $this->lang->task->dittoNotice);?>
|
<?php js::set('dittoNotice', $this->lang->task->dittoNotice);?>
|
||||||
<div id='mainContent' class='main-content'>
|
<div id='mainContent' class='main-content fade'>
|
||||||
<div class='main-header'>
|
<div class='main-header'>
|
||||||
<h2>
|
<h2>
|
||||||
<?php echo $lang->task->common . $lang->colon . $lang->task->batchEdit;?>
|
<?php echo $lang->task->common . $lang->colon . $lang->task->batchEdit;?>
|
||||||
<?php if($projectName):?>
|
<?php if($projectName):?>
|
||||||
<small class='text-muted'><?php echo html::icon($lang->icons['project']) . ' ' . $lang->task->project . $lang->colon . ' ' . $projectName;?></small>
|
<small class='text-muted'><?php echo html::icon($lang->icons['project']) . ' ' . $lang->task->project . $lang->colon . ' ' . $projectName;?></small>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
@@ -85,9 +85,15 @@
|
|||||||
<?php $disableHour = isset($teams[$taskID]) ? "disabled='disabled'" : '';?>
|
<?php $disableHour = isset($teams[$taskID]) ? "disabled='disabled'" : '';?>
|
||||||
<td><?php echo $taskID . html::hidden("taskIDList[$taskID]", $taskID);?></td>
|
<td><?php echo $taskID . html::hidden("taskIDList[$taskID]", $taskID);?></td>
|
||||||
<td style='overflow:visible' title='<?php echo $tasks[$taskID]->name?>'>
|
<td style='overflow:visible' title='<?php echo $tasks[$taskID]->name?>'>
|
||||||
<div class='input-group'>
|
<div class="input-control has-icon-right">
|
||||||
<?php echo html::hidden("colors[$taskID]", $tasks[$taskID]->color, "data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='{$lang->task->colorTag}' data-update-text='#names\\[{$taskID}\\]'");?>
|
<?php echo html::input("names[$taskID]", $tasks[$taskID]->name, "class='form-control' autocomplete='off'");?>
|
||||||
<?php echo html::input("names[$taskID]", $tasks[$taskID]->name, "class='form-control' autocomplete='off'");?>
|
<div class="colorpicker">
|
||||||
|
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
|
||||||
|
<ul class="dropdown-menu clearfix">
|
||||||
|
<li class="heading"><?php echo $lang->story->colorTag;?><i class="icon icon-close"></i></li>
|
||||||
|
</ul>
|
||||||
|
<?php echo html::hidden("colors[$taskID]", $tasks[$taskID]->color, "data-provide='colorpicker' data-wrapper='input-control-icon-right' data-icon='color' data-btn-tip='{$lang->task->colorTag}' data-update-text='#names\\[{$taskID}\\]'");?>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class='text-left<?php echo zget($visibleFields, 'module', ' hidden')?>' style='overflow:visible'><?php echo html::select("modules[$taskID]", $modules, $tasks[$taskID]->module, "class='form-control chosen'")?></td>
|
<td class='text-left<?php echo zget($visibleFields, 'module', ' hidden')?>' style='overflow:visible'><?php echo html::select("modules[$taskID]", $modules, $tasks[$taskID]->module, "class='form-control chosen'")?></td>
|
||||||
@@ -109,7 +115,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan='<?php echo count($visibleFields) + 3;?>' class='text-center'>
|
<td colspan='<?php echo count($visibleFields) + 3;?>' class='text-center form-actions'>
|
||||||
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
||||||
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
?>
|
?>
|
||||||
<td colspan='<?php echo $hasCustomPri ? 1 : 3 ?>'>
|
<td colspan='<?php echo $hasCustomPri ? 1 : 3 ?>'>
|
||||||
<?php if($hasCustomPri):?>
|
<?php if($hasCustomPri):?>
|
||||||
<?php echo html::select('pri', (array)$priList, $task->pri, "class='form-control chosen chosen-simple'");?>
|
<?php echo html::select('pri', (array)$priList, $task->pri, "class='form-control chosen'");?>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<?php echo html::select('pri', (array)$priList, $task->pri, "class='form-control' data-provide='labelSelector'");?>
|
<?php echo html::select('pri', (array)$priList, $task->pri, "class='form-control' data-provide='labelSelector'");?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
<td colspan='3'><?php echo html::radio('after', $lang->task->afterChoices, $this->config->global->flow == 'onlyTask' || !empty($task->id) ? 'toTaskList' : 'continueAdding');?></td>
|
<td colspan='3'><?php echo html::radio('after', $lang->task->afterChoices, $this->config->global->flow == 'onlyTask' || !empty($task->id) ? 'toTaskList' : 'continueAdding');?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan='4' class='text-center'>
|
<td colspan='4' class='text-center form-actions'>
|
||||||
<?php echo html::submitButton('', '', 'btn btn-primary btn-wide');?>
|
<?php echo html::submitButton('', '', 'btn btn-primary btn-wide');?>
|
||||||
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -365,8 +365,6 @@
|
|||||||
|
|
||||||
if(!empty($task->parent)) echo html::a(helper::createLink('task', 'view', "taskID=$task->parent"), "<i class='icon icon-chevron-double-up'></i>", '', "class='btn btn-link' title='{$lang->task->parent}'");
|
if(!empty($task->parent)) echo html::a(helper::createLink('task', 'view', "taskID=$task->parent"), "<i class='icon icon-chevron-double-up'></i>", '', "class='btn btn-link' title='{$lang->task->parent}'");
|
||||||
?>
|
?>
|
||||||
<?php else:?>
|
|
||||||
<?php common::printBack($browseLink);?>
|
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+17
-13
@@ -641,7 +641,7 @@ class testcase extends control
|
|||||||
*/
|
*/
|
||||||
public function batchEdit($productID = 0, $branch = 0, $type = 'case')
|
public function batchEdit($productID = 0, $branch = 0, $type = 'case')
|
||||||
{
|
{
|
||||||
if($this->post->titles)
|
if($this->post->title)
|
||||||
{
|
{
|
||||||
$allChanges = $this->testcase->batchUpdate();
|
$allChanges = $this->testcase->batchUpdate();
|
||||||
if($allChanges)
|
if($allChanges)
|
||||||
@@ -1279,26 +1279,30 @@ class testcase extends control
|
|||||||
|
|
||||||
$modules = $this->loadModel('tree')->getOptionMenu($productID, 'case');
|
$modules = $this->loadModel('tree')->getOptionMenu($productID, 'case');
|
||||||
$rows = array();
|
$rows = array();
|
||||||
foreach($modules as $moduleID => $module)
|
$num = (int)$this->post->num;
|
||||||
|
for($i = 0; $i < $num; $i++)
|
||||||
{
|
{
|
||||||
$row = new stdclass();
|
foreach($modules as $moduleID => $module)
|
||||||
$row->module = $module . "(#$moduleID)";
|
|
||||||
$row->stepDesc = "1. \n2. \n3.";
|
|
||||||
$row->stepExpect = "1. \n2. \n3.";
|
|
||||||
|
|
||||||
if(empty($rows))
|
|
||||||
{
|
{
|
||||||
$row->typeValue = join("\n", $this->lang->testcase->typeList);
|
$row = new stdclass();
|
||||||
$row->stageValue = join("\n", $this->lang->testcase->stageList);
|
$row->module = $module . "(#$moduleID)";
|
||||||
if($product->type != 'normal') $row->branchValue = join("\n", $branches);
|
$row->stepDesc = "1. \n2. \n3.";
|
||||||
|
$row->stepExpect = "1. \n2. \n3.";
|
||||||
|
|
||||||
|
if(empty($rows))
|
||||||
|
{
|
||||||
|
$row->typeValue = join("\n", $this->lang->testcase->typeList);
|
||||||
|
$row->stageValue = join("\n", $this->lang->testcase->stageList);
|
||||||
|
if($product->type != 'normal') $row->branchValue = join("\n", $branches);
|
||||||
|
}
|
||||||
|
$rows[] = $row;
|
||||||
}
|
}
|
||||||
$rows[] = $row;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->post->set('fields', $fields);
|
$this->post->set('fields', $fields);
|
||||||
$this->post->set('kind', 'testcase');
|
$this->post->set('kind', 'testcase');
|
||||||
$this->post->set('rows', $rows);
|
$this->post->set('rows', $rows);
|
||||||
$this->post->set('extraNum', $this->post->num);
|
$this->post->set('extraNum', $num);
|
||||||
$this->post->set('fileName', 'templet');
|
$this->post->set('fileName', 'templet');
|
||||||
$this->fetch('file', 'export2csv', $_POST);
|
$this->fetch('file', 'export2csv', $_POST);
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -786,8 +786,8 @@ class testcaseModel extends model
|
|||||||
$case->branch = $data->branches[$caseID];
|
$case->branch = $data->branches[$caseID];
|
||||||
$case->module = $data->modules[$caseID];
|
$case->module = $data->modules[$caseID];
|
||||||
$case->story = $data->stories[$caseID];
|
$case->story = $data->stories[$caseID];
|
||||||
$case->color = $data->colors[$caseID];
|
$case->color = $data->color[$caseID];
|
||||||
$case->title = $data->titles[$caseID];
|
$case->title = $data->title[$caseID];
|
||||||
$case->precondition = $data->precondition[$caseID];
|
$case->precondition = $data->precondition[$caseID];
|
||||||
$case->keywords = $data->keywords[$caseID];
|
$case->keywords = $data->keywords[$caseID];
|
||||||
$case->type = $data->types[$caseID];
|
$case->type = $data->types[$caseID];
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<?php js::set('testcaseBatchCreateNum', $config->testcase->batchCreate);?>
|
<?php js::set('testcaseBatchCreateNum', $config->testcase->batchCreate);?>
|
||||||
<?php js::set('productID', $productID);?>
|
<?php js::set('productID', $productID);?>
|
||||||
<?php js::set('branch', $branch);?>
|
<?php js::set('branch', $branch);?>
|
||||||
<div id="mainContent" class="main-content">
|
<div id="mainContent" class="main-content fade">
|
||||||
<div class="main-header">
|
<div class="main-header">
|
||||||
<h2>
|
<h2>
|
||||||
<?php echo $lang->testcase->batchCreate;?>
|
<?php echo $lang->testcase->batchCreate;?>
|
||||||
@@ -75,8 +75,8 @@
|
|||||||
$type = $i == 0 ? 'feature' : 'ditto';
|
$type = $i == 0 ? 'feature' : 'ditto';
|
||||||
$pri = $i == 0 ? 3 : 'ditto';
|
$pri = $i == 0 ? 3 : 'ditto';
|
||||||
?>
|
?>
|
||||||
<tr class='text-center'>
|
<tr>
|
||||||
<td><?php echo $i+1;?></td>
|
<td class="text-center"><?php echo $i+1;?></td>
|
||||||
<td class='text-left<?php echo zget($visibleFields, $product->type, ' hidden')?>'><?php echo html::select("branch[$i]", $branches, $branch, "class='form-control' onchange='setModules(this.value, $productID, $i)'");?></td>
|
<td class='text-left<?php echo zget($visibleFields, $product->type, ' hidden')?>'><?php echo html::select("branch[$i]", $branches, $branch, "class='form-control' onchange='setModules(this.value, $productID, $i)'");?></td>
|
||||||
<td class='text-left<?php echo zget($visibleFields, 'module', ' hidden')?>' style='overflow:visible'><?php echo html::select("module[$i]", $moduleOptionMenu, $currentModuleID, "class='form-control chosen'");?></td>
|
<td class='text-left<?php echo zget($visibleFields, 'module', ' hidden')?>' style='overflow:visible'><?php echo html::select("module[$i]", $moduleOptionMenu, $currentModuleID, "class='form-control chosen'");?></td>
|
||||||
<td class='text-left<?php echo zget($visibleFields, 'story', ' hidden'); echo $hiddenStory;?>' style='overflow:visible'> <?php echo html::select("story[$i]", $storyList, $story ? $story->id : '', 'class="form-control chosen"');?></td>
|
<td class='text-left<?php echo zget($visibleFields, 'story', ' hidden'); echo $hiddenStory;?>' style='overflow:visible'> <?php echo html::select("story[$i]", $storyList, $story ? $story->id : '', 'class="form-control chosen"');?></td>
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<?php endfor;?>
|
<?php endfor;?>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan='<?php echo $colspan?>' class='text-center'>
|
<td colspan='<?php echo $colspan?>' class='text-center form-actions'>
|
||||||
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
||||||
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
||||||
</td>
|
</td>
|
||||||
@@ -114,8 +114,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<table class='hide' id='trTemp'>
|
<table class='hide' id='trTemp'>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class='text-center'>
|
<tr>
|
||||||
<td>%s</td>
|
<td class="text-center">%s</td>
|
||||||
<td class='text-left<?php echo zget($visibleFields, $product->type, ' hidden')?>'><?php echo html::select("branch[%s]", $branches, $branch, "class='form-control' onchange='setModules(this.value, $productID, \"%s\")'");?></td>
|
<td class='text-left<?php echo zget($visibleFields, $product->type, ' hidden')?>'><?php echo html::select("branch[%s]", $branches, $branch, "class='form-control' onchange='setModules(this.value, $productID, \"%s\")'");?></td>
|
||||||
<td class='text-left<?php echo zget($visibleFields, 'module', ' hidden')?>' style='overflow:visible'><?php echo html::select("module[%s]", $moduleOptionMenu, $currentModuleID, "class='form-control'");?></td>
|
<td class='text-left<?php echo zget($visibleFields, 'module', ' hidden')?>' style='overflow:visible'><?php echo html::select("module[%s]", $moduleOptionMenu, $currentModuleID, "class='form-control'");?></td>
|
||||||
<td class='text-left<?php echo zget($visibleFields, 'story', ' hidden'); echo $hiddenStory;?>' style='overflow:visible'> <?php echo html::select("story[%s]", '', '', 'class="form-control"');?></td>
|
<td class='text-left<?php echo zget($visibleFields, 'story', ' hidden'); echo $hiddenStory;?>' style='overflow:visible'> <?php echo html::select("story[%s]", '', '', 'class="form-control"');?></td>
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ js::set('branch', $branch);
|
|||||||
</div>
|
</div>
|
||||||
<?php elseif(common::hasPriv('testcase', 'create')):?>
|
<?php elseif(common::hasPriv('testcase', 'create')):?>
|
||||||
<div class="table-empty-tip">
|
<div class="table-empty-tip">
|
||||||
<p><span class="text-muted"><?php echo $lang->testcase->noCase;?></span> <?php common::printLink('testcase', 'create', "productID={$productID}", "<i class='icon icon-plus'> </i>" . $lang->testcase->create, '', "class='btn btn-info'");?></p>
|
<p><span class="text-muted"><?php echo $lang->testcase->noCase;?></span> <?php common::printLink('testcase', 'create', "productID={$productID}", "<i class='icon icon-plus'></i> " . $lang->testcase->create, '', "class='btn btn-info'");?></p>
|
||||||
</div>
|
</div>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -130,12 +130,13 @@
|
|||||||
}
|
}
|
||||||
elseif($hasGroupPriv and $menuType == 'group')
|
elseif($hasGroupPriv and $menuType == 'group')
|
||||||
{
|
{
|
||||||
$groupBy = isset($groupBy) ? $groupBy : '';
|
$groupBy = isset($groupBy) ? $groupBy : '';
|
||||||
|
$active = !empty($groupBy) ? 'btn-active-text' : '';
|
||||||
$current = zget($lang->testcase->groups, isset($groupBy) ? $groupBy : '', '');
|
$current = zget($lang->testcase->groups, isset($groupBy) ? $groupBy : '', '');
|
||||||
if(empty($current)) $current = $lang->testcase->groups[''];
|
if(empty($current)) $current = $lang->testcase->groups[''];
|
||||||
|
|
||||||
echo "<div id='groupTab' class='btn-group'>";
|
echo "<div id='groupTab' class='btn-group'>";
|
||||||
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "class='btn btn-link' data-toggle='dropdown'");
|
echo html::a('javascript:;', "<span class='text'>{$current}</span>" . " <span class='caret'></span>", '', "class='btn btn-link {$active}' data-toggle='dropdown'");
|
||||||
echo "<ul class='dropdown-menu'>";
|
echo "<ul class='dropdown-menu'>";
|
||||||
|
|
||||||
foreach($lang->testcase->groups as $key => $value)
|
foreach($lang->testcase->groups as $key => $value)
|
||||||
|
|||||||
@@ -1,22 +1,26 @@
|
|||||||
<?php include '../../common/view/header.lite.html.php';?>
|
<?php include '../../common/view/header.lite.html.php';?>
|
||||||
<div class='main-content'>
|
<main>
|
||||||
<div class='main-header'>
|
<div class="container">
|
||||||
<h2><?php echo $lang->testcase->importFile;?></h2>
|
<div id="mainContent" class='main-content'>
|
||||||
|
<div class='main-header'>
|
||||||
|
<h2><?php echo $lang->testcase->importFile;?></h2>
|
||||||
|
</div>
|
||||||
|
<form method='post' enctype='multipart/form-data' target='hiddenwin' style="padding: 20px 0 15px">
|
||||||
|
<table class='table table-form w-p100'>
|
||||||
|
<tr>
|
||||||
|
<td align='center'>
|
||||||
|
<input type='file' name='file' class='form-control'/>
|
||||||
|
</td>
|
||||||
|
<td class="w-150px">
|
||||||
|
<?php echo html::select('encode', $config->charsets[$this->cookie->lang], 'utf-8', "class='form-control'");?>
|
||||||
|
</td>
|
||||||
|
<td class="w-150px">
|
||||||
|
<?php echo html::submitButton('', '', 'btn btn-primary btn-block');?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form method='post' enctype='multipart/form-data' target='hiddenwin' style="padding:30px">
|
</main>
|
||||||
<table class='table table-form w-p100'>
|
|
||||||
<tr>
|
|
||||||
<td align='center'>
|
|
||||||
<input type='file' name='file' class='form-control'/>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<?php echo html::select('encode', $config->charsets[$this->cookie->lang], 'utf-8', "class='form-control'");?>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<?php echo html::submitButton('', '', 'btn btn-primary btn-wide');?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<?php include '../../common/view/footer.lite.html.php';?>
|
<?php include '../../common/view/footer.lite.html.php';?>
|
||||||
|
|||||||
@@ -6,8 +6,11 @@
|
|||||||
<div class='alert alert-info'><?php echo $suhosinInfo?></div>
|
<div class='alert alert-info'><?php echo $suhosinInfo?></div>
|
||||||
<?php else:?>
|
<?php else:?>
|
||||||
<div id="mainContent" class="main-content">
|
<div id="mainContent" class="main-content">
|
||||||
|
<div class="main-header clearfix">
|
||||||
|
<h2><?php echo $lang->testcase->import;?></h2>
|
||||||
|
</div>
|
||||||
<form target='hiddenwin' method='post'>
|
<form target='hiddenwin' method='post'>
|
||||||
<table class='table table-fixed active-disabled table-custom' id='showData'>
|
<table class='table table-form' id='showData'>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class='w-50px'><?php echo $lang->lineNumber?></th>
|
<th class='w-50px'><?php echo $lang->lineNumber?></th>
|
||||||
@@ -86,12 +89,11 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan='<?php echo !empty($branches) ? 12 : 11;?>' class='text-center'>
|
<td colspan='<?php echo !empty($branches) ? 12 : 11;?>' class='text-center form-actions'>
|
||||||
<?php
|
<?php
|
||||||
if(!$insert)
|
if(!$insert)
|
||||||
{
|
{
|
||||||
include '../../common/view/noticeimport.html.php';
|
echo "<button type='button' data-toggle='modal' data-target='#importNoticeModal' class='btn btn-primary btn-wide'>{$lang->save}</button>";
|
||||||
echo "<button type='button' data-toggle='myModal' class='btn btn-primary btn-wide'>{$lang->save}</button>";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -103,11 +105,11 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
|
<?php if(!$insert) include '../../common/view/noticeimport.html.php';?>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
<script>
|
<script>
|
||||||
$(function(){affix('#showData thead')})
|
|
||||||
function affix(obj)
|
function affix(obj)
|
||||||
{
|
{
|
||||||
var fixH = $(obj).offset().top;
|
var fixH = $(obj).offset().top;
|
||||||
@@ -129,5 +131,6 @@ function affix(obj)
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
$(function(){affix('#showData thead')});
|
||||||
</script>
|
</script>
|
||||||
<?php include '../../common/view/footer.html.php';?>
|
<?php include '../../common/view/footer.html.php';?>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user