Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -21,8 +21,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='main-table'>
|
||||
<div id='mainContent'>
|
||||
<div class='main-table' data-ride='table'>
|
||||
<table class='table has-sort-head'>
|
||||
<?php $vars = "type=$type&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
|
||||
<thead>
|
||||
@@ -38,13 +38,18 @@
|
||||
<tbody>
|
||||
<?php foreach($trashes as $action):?>
|
||||
<?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 $action->objectID;?></td>
|
||||
<td class='text-left'>
|
||||
<?php
|
||||
$methodName = $module == 'caselib' ? 'libview' : 'view';
|
||||
$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')
|
||||
{
|
||||
echo $action->objectName;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.block-statistic .nav-stacked {overflow: auto; max-height: 220px;}
|
||||
.nav > li > .btn {padding: 0 5px; line-height: 24px; margin: 3px; color: #3C4353;}
|
||||
.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()
|
||||
{
|
||||
$('#dashboard .panel-block').each(function()
|
||||
$('#dashboard .table-fixed-head').each(function()
|
||||
{
|
||||
var $panel = $(this);
|
||||
var $table = $panel.find('.table:first');
|
||||
var $table = $(this);
|
||||
var $panel = $table.closest('.panel');
|
||||
|
||||
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();
|
||||
@@ -87,7 +87,7 @@ function initTableHeader()
|
||||
var tableWidth = $table.width();
|
||||
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');
|
||||
$oldTableHead.find('th').each(function(idx)
|
||||
{
|
||||
@@ -123,6 +123,16 @@ function initTableHeader()
|
||||
$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('[data-toggle=tooltip]').tooltip({container: 'body'});
|
||||
|
||||
// initTableHeader();
|
||||
initTableHeader();
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
?>
|
||||
<style>
|
||||
.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-deadline {width: 95px;}
|
||||
.block-bugs .c-status {width: 80px;}
|
||||
@@ -21,7 +21,7 @@
|
||||
.block-bugs.block-sm .c-status {text-align: center;}
|
||||
</style>
|
||||
<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>
|
||||
<tr>
|
||||
<th class='c-id-xs'><?php echo $lang->idAB?></th>
|
||||
@@ -44,7 +44,9 @@
|
||||
<?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>
|
||||
<?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-status' title='<?php echo zget($lang->bug->statusList, $bug->status)?>'>
|
||||
<span class="status-<?php echo $bug->status?>">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<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>
|
||||
<tr>
|
||||
<th class='w-id text-center'><?php echo $lang->idAB?></th>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
.case-status-investigate {color: #a6aab8;}
|
||||
.case-status-investigate > .label-dot {background-color: #006af1;}
|
||||
</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>
|
||||
<tr class='text-center'>
|
||||
<?php if($longBlock):?>
|
||||
|
||||
@@ -18,7 +18,7 @@ $useGuest = $this->app->user->account == 'guest';
|
||||
?>
|
||||
<?php include '../../common/view/tablesorter.html.php';?>
|
||||
<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'>
|
||||
<?php foreach($longBlocks as $index => $block):?>
|
||||
<?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'>
|
||||
<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>
|
||||
<tr>
|
||||
<?php if($longBlock):?>
|
||||
|
||||
@@ -11,13 +11,22 @@
|
||||
*/
|
||||
?>
|
||||
<div id='assigntomeBlock'>
|
||||
<ul class="nav nav-secondary">
|
||||
<?php foreach($hasViewPriv as $type => $bool):?>
|
||||
<div id="<?php echo $type?>">
|
||||
<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>
|
||||
<style>
|
||||
#assigntomeBlock #todo,
|
||||
#assigntomeBlock #task {border-bottom: 1px solid #eee;}
|
||||
#assigntomeBlock {position: relative;}
|
||||
#assigntomeBlock .block-todoes {padding-top: 10px}
|
||||
#assigntomeBlock > .nav {position: absolute; top: -41px; left: 120px;}
|
||||
#assigntomeBlock .block-todoes .todoes-form{top: -55px;}
|
||||
</style>
|
||||
@@ -18,7 +18,7 @@
|
||||
.block-products.block-sm .c-project {display: none;}
|
||||
</style>
|
||||
<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>
|
||||
<tr>
|
||||
<th class='c-name'><?php echo $lang->product->name;?></th>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<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>
|
||||
<tr class='text-center'>
|
||||
<th class='c-name text-left'><?php echo $lang->project->name;?></th>
|
||||
|
||||
@@ -17,6 +17,6 @@
|
||||
<div class='form-group'>
|
||||
<label for='grid' class='col-sm-3'><?php echo $lang->block->grid;?></label>
|
||||
<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>
|
||||
@@ -29,6 +29,7 @@
|
||||
.block-statistic .nav-stacked {overflow: auto; max-height: 247px;}
|
||||
.block-statistic .progress-pie .progress-info > strong {font-size: 24px;}
|
||||
.block-statistic .chosen-single {font-size: 16px; font-weight: bold;}
|
||||
.block-statistic .chosen-container-single .chosen-single div b {top: -2px}
|
||||
</style>
|
||||
<div class="panel-body">
|
||||
<div class="table-row">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<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>
|
||||
<tr>
|
||||
<?php if($longBlock):?>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
.block-stories.block-sm .c-status {text-align: center;}
|
||||
</style>
|
||||
<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>
|
||||
<tr>
|
||||
<?php if($longBlock):?>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<style>
|
||||
.block-tasks .c-id {width: 55px;}
|
||||
.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-status {width: 80px;}
|
||||
.block-tasks.block-sm .estimate,
|
||||
@@ -22,7 +22,7 @@
|
||||
.block-tasks.block-sm .c-status {text-align: center;}
|
||||
</style>
|
||||
<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>
|
||||
<tr>
|
||||
<th class='c-id-xs'><?php echo $lang->idAB;?></th>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<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>
|
||||
<tr class='text-center'>
|
||||
<?php if($longBlock):?>
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
*/
|
||||
?>
|
||||
<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 .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:-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 {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:hover {background-color: #e9f2fb;}
|
||||
.block-todoes .todo-title {display: block;padding: 5px;}
|
||||
@@ -59,13 +59,13 @@
|
||||
<div class="form-group">
|
||||
<label for="todoBegin" class="col-sm-2"><?php echo $lang->todo->beginAndEnd?></label>
|
||||
<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>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 text-center hide-empty-begin" for="todoEnd"> ~ </label>
|
||||
<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 class="form-group">
|
||||
|
||||
@@ -1598,6 +1598,7 @@ class bug extends control
|
||||
$mailto = trim($mailto);
|
||||
if(isset($users[$mailto])) $bug->mailto .= $users[$mailto] . ',';
|
||||
}
|
||||
$bug->mailto = rtrim($bug->mailto, ',');
|
||||
|
||||
unset($bug->caseVersion);
|
||||
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}
|
||||
.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->dittoNotice = 'This bug is not linked to the same product as the last one!';
|
||||
$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>';
|
||||
|
||||
/* 页面标签。*/
|
||||
|
||||
@@ -129,7 +129,7 @@ $lang->bug->resolvedByMeAB = '由我解决';
|
||||
$lang->bug->ditto = '同上';
|
||||
$lang->bug->dittoNotice = '该bug与上一bug不属于同一产品!';
|
||||
$lang->bug->noAssigned = '未指派';
|
||||
$lang->bug->noBug = '暂时没有BUG,您现在可以';
|
||||
$lang->bug->noBug = '暂时没有Bug,您现在可以';
|
||||
$lang->bug->noModule = '<div>您现在还没有模块信息</div><div>请维护测试模块</div>';
|
||||
|
||||
/* 页面标签。*/
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div id='mainContent' class='main-content fade'>
|
||||
<div class='main-header'>
|
||||
<h2>
|
||||
<?php echo $lang->bug->batchCreate;?>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/datepicker.html.php';?>
|
||||
<?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'>
|
||||
<h2><?php echo $lang->bug->common . $lang->colon . $lang->bug->batchEdit;?></h2>
|
||||
<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, '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, '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>
|
||||
</thead>
|
||||
<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 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'")?>>
|
||||
<table class='table-borderless w-100px'>
|
||||
<table class='table-borderless table no-margin'>
|
||||
<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'";?>>
|
||||
<?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>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -32,7 +32,7 @@ js::set('page', 'confirmbug');
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<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>
|
||||
</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', 'delete', $params, $bug, 'button', '', 'hiddenwin');
|
||||
?>
|
||||
<?php else:?>
|
||||
<?php common::printBack($browseLink);?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -314,10 +314,10 @@ tbody tr td:first-child input{display:none;}
|
||||
</tr>
|
||||
<?php if($this->config->global->flow != 'onlyTest'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->build->desc;?></th>
|
||||
<th style="vertical-align:top"><?php echo $lang->build->desc;?></th>
|
||||
<td>
|
||||
<?php if($build->desc):?>
|
||||
<div class='article-content'><?php echo $build->desc;?></div>
|
||||
<?php echo $build->desc;?>
|
||||
<?php else:?>
|
||||
<?php echo $lang->build->noData;?>
|
||||
<?php endif;?>
|
||||
|
||||
@@ -480,7 +480,11 @@ $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->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->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->searchMore = "More results:";
|
||||
|
||||
@@ -480,7 +480,11 @@ $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->maxVarsInfo = "警告:数据太多,请在php.ini中修改<font color=red>max_input_vars</font>(大于%s的数)。 保存并重新启动apache或php-fpm,否则会造成部分数据无法保存。";
|
||||
$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->searchMore = "搜索此关键字的更多结果:";
|
||||
|
||||
@@ -545,7 +545,7 @@ class commonModel extends model
|
||||
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)
|
||||
{
|
||||
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'") . ' ';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<div class="container">
|
||||
<?php commonModel::printBreadMenu($this->moduleName, isset($position) ? $position : ''); ?>
|
||||
<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 commonModel::printNotifyLink();?>
|
||||
</div>
|
||||
|
||||
@@ -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-content">
|
||||
<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 class="modal-body">
|
||||
<?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>
|
||||
<script>
|
||||
$(function(){$("button[data-toggle='myModal']").click(function(){$('#myModal').modal('show')})});
|
||||
function submitForm(type)
|
||||
{
|
||||
if(type == 'insert')
|
||||
{
|
||||
$('#insert').val('1');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#insert').val('0');
|
||||
}
|
||||
$("button[data-toggle='myModal']").closest('form').submit();
|
||||
$('#insert').val(type == 'insert' ? 1 : 0);
|
||||
$("button[data-target='#importNoticeModal']").closest('form').submit();
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -4,9 +4,11 @@ js::import($jsRoot . 'jquery/tablesorter/min.js');
|
||||
js::import($jsRoot . 'jquery/tablesorter/metadata.js');
|
||||
?>
|
||||
<style>
|
||||
table.tablesorter tr.tablesorter-headerRow .header.tablesorter-headerUnSorted .tablesorter-header-inner:after{font-family: NewZenIcon; font-weight: normal; content: "\e6bd"; font-size: 14px;}
|
||||
table.tablesorter tr.tablesorter-headerRow .header.headerSortUp .tablesorter-header-inner:after{font-family: NewZenIcon; font-weight: normal; content: "\e6b9"; font-size: 14px; color: #03C;}
|
||||
table.tablesorter tr.tablesorter-headerRow .header.headerSortDown .tablesorter-header-inner:after{font-family: NewZenIcon; font-weight: normal; content: "\e6b8"; font-size: 14px; color: #03C;}
|
||||
.tablesorter-header-inner {cursor: pointer;}
|
||||
.tablesorter-header-inner:hover {color: #006af1;}
|
||||
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:"";}
|
||||
</style>
|
||||
<script>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
||||
.dynamic-date > .date-label {margin-top: -8px;}
|
||||
.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-text {color: #3C4353;}
|
||||
.dynamic .text-muted {color: #838A9D;}
|
||||
|
||||
@@ -194,8 +194,7 @@ $(function()
|
||||
return sets;
|
||||
}).get();
|
||||
|
||||
//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);
|
||||
window.saveDatatableConfig('<?php echo $mode == 'table' ? 'tablecols' : 'cols';?>', setting, true, $('#global1').prop('checked') ? 1 : 0);
|
||||
});
|
||||
|
||||
$('#resetBtn').on("click", function()
|
||||
|
||||
@@ -7,3 +7,4 @@
|
||||
|
||||
#addChildModal form > .form-control {margin-bottom: 8px;}
|
||||
#addChildModal .modal-dialog {max-width: 360px;}
|
||||
#deptTree li {padding-left: 20px;}
|
||||
|
||||
@@ -147,7 +147,7 @@ class deptModel extends model
|
||||
$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;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<div class='panel-title'><?php echo $title;?></div>
|
||||
</div>
|
||||
<div class='panel-body'>
|
||||
<ul class='tree-lines' id='deptTree'></ul>
|
||||
<ul data-name='tree-dept' id='deptTree'></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -85,10 +85,19 @@ $(function()
|
||||
name: 'deptTree',
|
||||
initialState: 'preserve',
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
$toggle.append(' <span class="dept-manager text-muted"><i class="icon icon-user"></i> ' + item.managerName + '</span>');
|
||||
@@ -101,19 +110,19 @@ $(function()
|
||||
sort:
|
||||
{
|
||||
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:
|
||||
{
|
||||
linkTemplate: '<?php echo helper::createLink('dept', 'edit', "deptid={0}"); ?>',
|
||||
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":
|
||||
{
|
||||
linkTemplate: '<?php echo helper::createLink('dept', 'delete', "deptid={0}"); ?>',
|
||||
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)
|
||||
@@ -121,11 +130,11 @@ $(function()
|
||||
var action = event.action, $target = $(event.target), item = event.item;
|
||||
if(action.type === 'edit')
|
||||
{
|
||||
$target.modalTrigger(
|
||||
{
|
||||
new $.zui.ModalTrigger({
|
||||
type: 'ajax',
|
||||
url: action.linkTemplate.format(item.id)
|
||||
}).trigger('click');
|
||||
url: action.linkTemplate.format(item.id),
|
||||
keyboard: true
|
||||
}).show();
|
||||
}
|
||||
else if(action.type === 'delete')
|
||||
{
|
||||
@@ -163,8 +172,6 @@ $(function()
|
||||
$(this).addClass('hover');
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
$tree.find('[data-toggle="tooltip"]').tooltip();
|
||||
});
|
||||
</script>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -15,6 +15,12 @@ $webRoot = $this->app->getWebRoot();
|
||||
$jsRoot = $webRoot . "js/";
|
||||
?>
|
||||
<?php include '../../common/view/chosen.html.php';?>
|
||||
<div class='modal-dialog w-500px'>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal"><i class="icon icon-close"></i></button>
|
||||
<h4 class="modal-title"><strong><?php echo $lang->dept->edit;?></strong></h4>
|
||||
</div>
|
||||
<div class='modal-body'>
|
||||
<form action="<?php echo inlink('edit', 'deptID=' . $dept->id);?>" target='hiddenwin' method='post' class='mt-10px' id='dataform'>
|
||||
<table class='table table-form' style='width:100%'>
|
||||
<tr>
|
||||
@@ -36,3 +42,5 @@ $jsRoot = $webRoot . "js/";
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
.row-spliting .col-spliter:before,
|
||||
.row-spliting .col-spliter:after {opacity: 1;}
|
||||
|
||||
@media (max-width: 720px) {
|
||||
@media (max-width: 720px)
|
||||
{
|
||||
.split-row > .side-col,
|
||||
.split-row > .main-col {width: 100%!important;}
|
||||
}
|
||||
@@ -28,19 +29,27 @@
|
||||
.table-files .c-actions .btn > .icon.text-yellow,
|
||||
.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 .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 .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 .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-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 .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 .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();
|
||||
});
|
||||
|
||||
$('#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->accessDenied = "Access denied!";
|
||||
$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->url = 'Url';
|
||||
|
||||
@@ -142,6 +142,7 @@ $lang->doc->errorEmptyProject = "没有{$lang->projectCommon},无法创建文
|
||||
$lang->doc->errorMainSysLib = "该系统文档库不能删除!";
|
||||
$lang->doc->accessDenied = "您没有权限访问!";
|
||||
$lang->doc->versionNotFount = '该版本文档不存在';
|
||||
$lang->doc->noDoc = '文档不存在';
|
||||
|
||||
$lang->doc->placeholder = new stdclass();
|
||||
$lang->doc->placeholder->url = '相应的链接地址';
|
||||
|
||||
@@ -19,7 +19,7 @@ var browseType = '<?php echo $browseType;?>';
|
||||
<?php js::set('libID', $libID);?>
|
||||
<?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 include './side.html.php';?>
|
||||
<div class="col-spliter"></div>
|
||||
@@ -40,15 +40,20 @@ var browseType = '<?php echo $browseType;?>';
|
||||
</div>
|
||||
<nav class="panel-actions btn-toolbar">
|
||||
<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("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 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'");?>
|
||||
</div>
|
||||
</nav>
|
||||
</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">
|
||||
<table class="table table-borderless table-hover table-files">
|
||||
<thead>
|
||||
<tr class="muted">
|
||||
<tr>
|
||||
<th class="c-name"><?php echo $lang->doc->title;?></th>
|
||||
<th class="c-num"><?php echo $lang->doc->size;?></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-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>
|
||||
<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', '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'")?>
|
||||
@@ -95,6 +100,7 @@ var browseType = '<?php echo $browseType;?>';
|
||||
</table>
|
||||
</div>
|
||||
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
<?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>
|
||||
<nav class="panel-actions btn-toolbar">
|
||||
<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 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'");?>
|
||||
<?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>
|
||||
</nav>
|
||||
</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="row row-grid files-grid" data-size="300">
|
||||
<?php foreach($modules as $module):?>
|
||||
@@ -44,5 +49,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<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 class='product'>
|
||||
<th><?php echo $lang->doc->product?></th>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?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';?>
|
||||
<div class="main-col" data-min-width="400">
|
||||
<div class="row">
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
<div>
|
||||
<?php echo html::submitButton($lang->save);?>
|
||||
<?php echo html::submitButton($lang->save);?>
|
||||
<?php echo html::commonButton($lang->cancel, '', "btn close-dropdown");?>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?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 include './side.html.php';?>
|
||||
<div class="col-spliter"></div>
|
||||
@@ -41,8 +41,8 @@
|
||||
</form>
|
||||
</div>
|
||||
<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=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=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" . ($viewType != 'list' ? ' text-primary' : '') . "'");?>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
@@ -51,7 +51,7 @@
|
||||
<div class="panel-body has-table">
|
||||
<table class="table table-borderless table-hover table-files">
|
||||
<thead>
|
||||
<tr class="muted">
|
||||
<tr class="text-center">
|
||||
<th class="w-80px"><?php echo $lang->doc->id;?></th>
|
||||
<th><?php echo $lang->doc->fileTitle;?></th>
|
||||
<th><?php echo $lang->doc->filePath;?></th>
|
||||
@@ -66,16 +66,16 @@
|
||||
<?php foreach($files as $file):?>
|
||||
<?php if(empty($file->pathname)) continue;?>
|
||||
<tr>
|
||||
<td><?php echo sprintf('%03d', $file->id);?></td>
|
||||
<td>
|
||||
<td class="text-center"><?php echo sprintf('%03d', $file->id);?></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>
|
||||
</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 isset($file->addedBy) ? zget($users, $file->addedBy) : '';?></td>
|
||||
<td><?php echo isset($file->addedDate) ? substr($file->addedDate, 0, 10) : '';?></td>
|
||||
<td>
|
||||
<td class="text-center"><?php echo isset($file->addedBy) ? zget($users, $file->addedBy) : '';?></td>
|
||||
<td class="text-center"><?php echo isset($file->addedDate) ? substr($file->addedDate, 0, 10) : '';?></td>
|
||||
<td class="c-actions">
|
||||
<?php
|
||||
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);
|
||||
@@ -112,7 +112,7 @@
|
||||
$downloadLink = $this->createLink('file', 'download', "fileID=$file->id&mouse=left");
|
||||
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
|
||||
{
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<?php js::set('fileID', $file->id);?>
|
||||
<style>
|
||||
#imageFile{text-align: center;padding:10px;}
|
||||
#imageFile{text-align: center; padding: 0; margin: 0 -10px;}
|
||||
#imageFile img{max-width:100%;}
|
||||
#txtFile{padding: 5px 10px;}
|
||||
#txtFile {padding: 5px 0; margin: 0 -10px;}
|
||||
#txtFile pre {margin: 0;}
|
||||
#txtFile div {overflow-x: auto;}
|
||||
#titlebar span{float: right; padding-right: 25px;}
|
||||
.main-header .btn-toolbar{margin-left:8px;}
|
||||
</style>
|
||||
<main id="main">
|
||||
<div class="container">
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='main-header clearfix'>
|
||||
<h2 class='pull-left'><?php echo $lang->file->preview;?></h2>
|
||||
@@ -45,6 +48,8 @@
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<script>
|
||||
function setCharset(charset)
|
||||
{
|
||||
|
||||
@@ -11,10 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<style>
|
||||
body{padding-bottom:0px}
|
||||
</style>
|
||||
|
||||
<style>.main-form {margin: 15px -15px 0}</style>
|
||||
<script>
|
||||
function setFileName()
|
||||
{
|
||||
@@ -28,11 +25,12 @@ function closeWindow()
|
||||
clearInterval(time);
|
||||
}
|
||||
</script>
|
||||
<main id="main">
|
||||
<div class="container">
|
||||
<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>
|
||||
@@ -42,9 +40,11 @@ function closeWindow()
|
||||
<strong class='input-group-addon'>.<?php echo $file->extension;?></strong>
|
||||
</div>
|
||||
</td>
|
||||
<td class='w-80px'><?php echo html::submitButton();?></td>
|
||||
<td class='w-80px'><?php echo html::submitButton('', '', 'btn btn-primary btn-block');?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<?php include '../../common/view/footer.lite.html.php';?>
|
||||
|
||||
@@ -156,15 +156,15 @@ if($isCustomExport)
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<?php if($isCustomExport):?>
|
||||
<tr>
|
||||
|
||||
@@ -12,10 +12,6 @@ $sessionString .= session_name() . '=' . session_id();
|
||||
.files-list>li>a {display: inline;}
|
||||
</style>
|
||||
<script>
|
||||
$(function(){
|
||||
$(".edit").modalTrigger({width:350, type:'iframe'});
|
||||
})
|
||||
|
||||
/* Delete a file. */
|
||||
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 "<span class='right-icon'>";
|
||||
common::printLink('file', 'edit', "fileID=$file->id", "<i class='icon-pencil'></i>", '', "class='edit btn-icon' 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'");
|
||||
echo "<span class='right-icon'> ";
|
||||
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='text-primary' onclick='deleteFile($file->id)' title='$lang->delete'");
|
||||
echo '</span>';
|
||||
echo '</li>';
|
||||
}
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div id='mainContent' class='main-table'>
|
||||
<table class='table' id='groupList'>
|
||||
<thead>
|
||||
<tr>
|
||||
<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><?php echo $lang->group->users;?></th>
|
||||
<th class='c-actions text-center'><?php echo $lang->actions;?></th>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
||||
.dynamic-date > .date-label {margin-top: -8px;}
|
||||
.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-text {color: #3C4353;}
|
||||
.dynamic .text-muted {color: #838A9D;}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
|
||||
.dynamic-date > .date-label {margin-top: -8px;}
|
||||
.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-text {color: #3C4353;}
|
||||
.dynamic .text-muted {color: #838A9D;}
|
||||
|
||||
@@ -36,7 +36,15 @@
|
||||
<?php if($menuItem->name == 'more'):?>
|
||||
<?php
|
||||
echo '<div class="btn-group">';
|
||||
echo html::a('javascript:;', $menuItem->text . " <span class='caret'></span>", '', "data-toggle='dropdown' class='btn btn-link'");
|
||||
$active = '';
|
||||
$current = $menuItem->text;
|
||||
$storyBrowseType = $this->session->storyBrowseType;
|
||||
if(isset($lang->product->moreSelects[$storyBrowseType]))
|
||||
{
|
||||
$active = 'btn-active-text';
|
||||
$current = "<span class='text'>{$lang->product->moreSelects[$storyBrowseType]}</span> <span class='label label-light label-badge'>{$pager->recTotal}</span>";
|
||||
}
|
||||
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)
|
||||
{
|
||||
@@ -109,7 +117,6 @@
|
||||
$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/tablesorter.html.php';
|
||||
$setting = $this->datatable->getSetting('product');
|
||||
$widths = $this->datatable->setFixedFieldWidth($setting);
|
||||
$columns = 0;
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
$proudctTypeList = array();
|
||||
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>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
<td colspan='3'><?php echo html::textarea('desc', htmlspecialchars($plan->desc), "rows='10' class='form-control kindeditor' hidefocus='true'");?></td>
|
||||
</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::backButton('', '', 'btn btn-wide');?>
|
||||
<?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 {margin-top: -8px;}
|
||||
.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-text {color: #3C4353;}
|
||||
.dynamic .text-muted {color: #838A9D;}
|
||||
|
||||
@@ -6,4 +6,4 @@
|
||||
.product + .product {margin-left: 0;}
|
||||
#productsBox .row > .product.has-branch label {margin-right: 40%;}
|
||||
#productsBox .row > .product.has-branch > .form-control,
|
||||
#productsBox .row > .product.has-branch > .chosen-container {position: absolute; width: 40%!important; right: 3px; top: 3px;}
|
||||
#productsBox .row > .product.has-branch > .chosen-container {position: absolute; width: 40%!important; right: 1px; top: 1px;}
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
</tr>
|
||||
<tr <?php if($this->config->global->flow == 'onlyTask') echo "class='hidden'";?>>
|
||||
|
||||
@@ -69,9 +69,14 @@ js::set('browseType', $browseType);
|
||||
{
|
||||
echo "<div class='btn-group'>";
|
||||
$taskBrowseType = isset($status) ? $this->session->taskBrowseType : '';
|
||||
$current = zget($lang->project->statusSelects, $taskBrowseType, '');
|
||||
if(empty($current)) $current = $menuItem->text;
|
||||
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown' class='btn btn-link'");
|
||||
$current = $menuItem->text;
|
||||
$active = '';
|
||||
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'>";
|
||||
foreach($lang->project->statusSelects as $key => $value)
|
||||
{
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
<?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") : '#';
|
||||
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', 'delete', $params, $project, 'button', '', 'hiddenwin');
|
||||
}
|
||||
else
|
||||
{
|
||||
common::printBack($browseLink);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<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 class="col-sm-3">
|
||||
<?php echo html::submitButton($lang->report->query, '', 'btn btn-primary btn-block');?>
|
||||
|
||||
@@ -93,7 +93,7 @@ class scoreModel extends model
|
||||
|
||||
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;
|
||||
@@ -221,7 +221,7 @@ class scoreModel extends model
|
||||
$data->time = empty($time) ? helper::now() : $time;
|
||||
$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>
|
||||
<?php foreach($queries as $queryID => $queryName):?>
|
||||
<?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;?>
|
||||
</ul>
|
||||
</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->allStories = 'All';
|
||||
$lang->story->unclosed = 'Unclosed';
|
||||
$lang->story->deleted = 'Deleted';
|
||||
|
||||
$lang->story->ditto = 'Ditto';
|
||||
$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->allStories = '所有需求';
|
||||
$lang->story->unclosed = '未关闭';
|
||||
$lang->story->deleted = '已删除';
|
||||
|
||||
$lang->story->ditto = '同上';
|
||||
$lang->story->dittoNotice = '该需求与上一需求不属于同一产品!';
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<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 id='duplicateStoryBox' style='display:none'>
|
||||
<th><?php echo $lang->story->duplicateStory;?></th>
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
</ul>
|
||||
</small>
|
||||
<?php endif; ?>
|
||||
<?php if($story->deleted):?>
|
||||
<span class='label label-danger'><?php echo $lang->story->deleted;?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -71,32 +71,25 @@ function setStoryRelated(num)
|
||||
/* Toggle zero task story. */
|
||||
function toggleZeroTaskStory()
|
||||
{
|
||||
if($('#zeroTaskStory').hasClass('zeroTask'))
|
||||
{
|
||||
$('#zeroTaskStory').removeClass('zeroTask');
|
||||
zeroTask = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#zeroTaskStory').addClass('zeroTask');
|
||||
zeroTask = true;
|
||||
}
|
||||
var $toggle = $('#zeroTaskStory').toggleClass('checked');
|
||||
var zeroTask = $toggle.hasClass('checked');
|
||||
$.cookie('zeroTask', zeroTask, {expires:config.cookieLife, path:config.webRoot});
|
||||
$('select[name^="story"]').each(function()
|
||||
{
|
||||
selectVal = $(this).val();
|
||||
$(this).find('option').each(function()
|
||||
var $select = $(this);
|
||||
var selectVal = $select.val();
|
||||
$select.find('option').each(function()
|
||||
{
|
||||
value = $(this).attr('value');
|
||||
$(this).show();
|
||||
var $option = $(this);
|
||||
var value = $option.attr('value');
|
||||
$option.show();
|
||||
if(value != 'ditto' && storyTasks[value] > 0 && zeroTask)
|
||||
{
|
||||
$(this).hide();
|
||||
$option.hide();
|
||||
if(selectVal == value) selectVal = '';
|
||||
}
|
||||
})
|
||||
$(this).val(selectVal);
|
||||
$(this).trigger("chosen:updated");
|
||||
$select.val(selectVal).trigger("chosen:updated");
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -12,19 +12,21 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/datepicker.html.php';?>
|
||||
<div id="mainContent" class="main-content">
|
||||
<div class="main-header">
|
||||
<h2>
|
||||
<div id="mainContent" class="main-content fade">
|
||||
<div class="main-header clearfix">
|
||||
<h2 class="pull-left">
|
||||
<?php if($parent):?>
|
||||
<span class='pull-left'><?php echo $parentTitle;?></span>
|
||||
<?php echo $lang->task->batchCreateChildren;?>
|
||||
<?php else:?>
|
||||
<?php echo $lang->task->batchCreate;?>
|
||||
<?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>
|
||||
<?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">
|
||||
<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')?>
|
||||
@@ -115,7 +117,7 @@
|
||||
<?php echo html::input("name[$i]", '', "class='form-control input-story-title' 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">
|
||||
<ul class="dropdown-menu clearfix pull-right">
|
||||
<li class="heading"><?php echo $lang->story->colorTag;?><i class="icon icon-close"></i></li>
|
||||
</ul>
|
||||
<?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>
|
||||
<?php endfor;?>
|
||||
<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::backButton('', '', 'btn btn-wide');?>
|
||||
</td>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/datepicker.html.php';?>
|
||||
<?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'>
|
||||
<h2>
|
||||
<?php echo $lang->task->common . $lang->colon . $lang->task->batchEdit;?>
|
||||
@@ -85,9 +85,15 @@
|
||||
<?php $disableHour = isset($teams[$taskID]) ? "disabled='disabled'" : '';?>
|
||||
<td><?php echo $taskID . html::hidden("taskIDList[$taskID]", $taskID);?></td>
|
||||
<td style='overflow:visible' title='<?php echo $tasks[$taskID]->name?>'>
|
||||
<div class='input-group'>
|
||||
<?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}\\]'");?>
|
||||
<div class="input-control has-icon-right">
|
||||
<?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>
|
||||
</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>
|
||||
<tfoot>
|
||||
<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::backButton('', '', 'btn btn-wide');?>
|
||||
</td>
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
?>
|
||||
<td colspan='<?php echo $hasCustomPri ? 1 : 3 ?>'>
|
||||
<?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 echo html::select('pri', (array)$priList, $task->pri, "class='form-control' data-provide='labelSelector'");?>
|
||||
<?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>
|
||||
</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::backButton('', '', 'btn btn-wide');?>
|
||||
</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}'");
|
||||
?>
|
||||
<?php else:?>
|
||||
<?php common::printBack($browseLink);?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -641,7 +641,7 @@ class testcase extends control
|
||||
*/
|
||||
public function batchEdit($productID = 0, $branch = 0, $type = 'case')
|
||||
{
|
||||
if($this->post->titles)
|
||||
if($this->post->title)
|
||||
{
|
||||
$allChanges = $this->testcase->batchUpdate();
|
||||
if($allChanges)
|
||||
@@ -1279,6 +1279,9 @@ class testcase extends control
|
||||
|
||||
$modules = $this->loadModel('tree')->getOptionMenu($productID, 'case');
|
||||
$rows = array();
|
||||
$num = (int)$this->post->num;
|
||||
for($i = 0; $i < $num; $i++)
|
||||
{
|
||||
foreach($modules as $moduleID => $module)
|
||||
{
|
||||
$row = new stdclass();
|
||||
@@ -1294,11 +1297,12 @@ class testcase extends control
|
||||
}
|
||||
$rows[] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
$this->post->set('fields', $fields);
|
||||
$this->post->set('kind', 'testcase');
|
||||
$this->post->set('rows', $rows);
|
||||
$this->post->set('extraNum', $this->post->num);
|
||||
$this->post->set('extraNum', $num);
|
||||
$this->post->set('fileName', 'templet');
|
||||
$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->module = $data->modules[$caseID];
|
||||
$case->story = $data->stories[$caseID];
|
||||
$case->color = $data->colors[$caseID];
|
||||
$case->title = $data->titles[$caseID];
|
||||
$case->color = $data->color[$caseID];
|
||||
$case->title = $data->title[$caseID];
|
||||
$case->precondition = $data->precondition[$caseID];
|
||||
$case->keywords = $data->keywords[$caseID];
|
||||
$case->type = $data->types[$caseID];
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<?php js::set('testcaseBatchCreateNum', $config->testcase->batchCreate);?>
|
||||
<?php js::set('productID', $productID);?>
|
||||
<?php js::set('branch', $branch);?>
|
||||
<div id="mainContent" class="main-content">
|
||||
<div id="mainContent" class="main-content fade">
|
||||
<div class="main-header">
|
||||
<h2>
|
||||
<?php echo $lang->testcase->batchCreate;?>
|
||||
@@ -75,8 +75,8 @@
|
||||
$type = $i == 0 ? 'feature' : 'ditto';
|
||||
$pri = $i == 0 ? 3 : 'ditto';
|
||||
?>
|
||||
<tr class='text-center'>
|
||||
<td><?php echo $i+1;?></td>
|
||||
<tr>
|
||||
<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, '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>
|
||||
@@ -103,7 +103,7 @@
|
||||
</tr>
|
||||
<?php endfor;?>
|
||||
<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::backButton('', '', 'btn btn-wide');?>
|
||||
</td>
|
||||
@@ -114,8 +114,8 @@
|
||||
</div>
|
||||
<table class='hide' id='trTemp'>
|
||||
<tbody>
|
||||
<tr class='text-center'>
|
||||
<td>%s</td>
|
||||
<tr>
|
||||
<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, '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>
|
||||
|
||||
@@ -131,11 +131,12 @@
|
||||
elseif($hasGroupPriv and $menuType == 'group')
|
||||
{
|
||||
$groupBy = isset($groupBy) ? $groupBy : '';
|
||||
$active = !empty($groupBy) ? 'btn-active-text' : '';
|
||||
$current = zget($lang->testcase->groups, isset($groupBy) ? $groupBy : '', '');
|
||||
if(empty($current)) $current = $lang->testcase->groups[''];
|
||||
|
||||
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'>";
|
||||
|
||||
foreach($lang->testcase->groups as $key => $value)
|
||||
|
||||
@@ -1,22 +1,26 @@
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<div class='main-content'>
|
||||
<main>
|
||||
<div class="container">
|
||||
<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:30px">
|
||||
<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>
|
||||
<td class="w-150px">
|
||||
<?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 class="w-150px">
|
||||
<?php echo html::submitButton('', '', 'btn btn-primary btn-block');?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<?php include '../../common/view/footer.lite.html.php';?>
|
||||
|
||||
@@ -6,8 +6,11 @@
|
||||
<div class='alert alert-info'><?php echo $suhosinInfo?></div>
|
||||
<?php else:?>
|
||||
<div id="mainContent" class="main-content">
|
||||
<div class="main-header clearfix">
|
||||
<h2><?php echo $lang->testcase->import;?></h2>
|
||||
</div>
|
||||
<form target='hiddenwin' method='post'>
|
||||
<table class='table table-fixed active-disabled table-custom' id='showData'>
|
||||
<table class='table table-form' id='showData'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='w-50px'><?php echo $lang->lineNumber?></th>
|
||||
@@ -86,12 +89,11 @@
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<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
|
||||
if(!$insert)
|
||||
{
|
||||
include '../../common/view/noticeimport.html.php';
|
||||
echo "<button type='button' data-toggle='myModal' class='btn btn-primary btn-wide'>{$lang->save}</button>";
|
||||
echo "<button type='button' data-toggle='modal' data-target='#importNoticeModal' class='btn btn-primary btn-wide'>{$lang->save}</button>";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -103,11 +105,11 @@
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<?php if(!$insert) include '../../common/view/noticeimport.html.php';?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<script>
|
||||
$(function(){affix('#showData thead')})
|
||||
function affix(obj)
|
||||
{
|
||||
var fixH = $(obj).offset().top;
|
||||
@@ -129,5 +131,6 @@ function affix(obj)
|
||||
}
|
||||
});
|
||||
}
|
||||
$(function(){affix('#showData thead')});
|
||||
</script>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -33,6 +33,7 @@ $lang->testreport->profile = 'Profile';
|
||||
$lang->testreport->value = 'Value';
|
||||
$lang->testreport->none = 'None';
|
||||
$lang->testreport->all = 'All Report';
|
||||
$lang->testreport->deleted = 'Deleted';
|
||||
|
||||
$lang->testreport->legendBasic = 'Basic Info';
|
||||
$lang->testreport->legendStoryAndBug = 'Stories and Bugs of Test';
|
||||
|
||||
@@ -33,6 +33,7 @@ $lang->testreport->profile = '概况';
|
||||
$lang->testreport->value = '值';
|
||||
$lang->testreport->none = '无';
|
||||
$lang->testreport->all = '所有报告';
|
||||
$lang->testreport->deleted = '已删除';
|
||||
|
||||
$lang->testreport->legendBasic = '基本信息';
|
||||
$lang->testreport->legendStoryAndBug = '测试范围';
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<table class='table table-form'>
|
||||
<?php $row = 0;?>
|
||||
<?php foreach($bugInfo as $infoKey => $infoValue):?>
|
||||
<?php if(($row % 1) == 0) echo '<tr>';?>
|
||||
<?php $row++;?>
|
||||
<tr>
|
||||
<td class='text-top'>
|
||||
<table class='table table-condensed table-report' id='bugSeverityGroups'>
|
||||
<?php if(empty($infoValue)):?>
|
||||
@@ -68,6 +66,6 @@
|
||||
<?php endif;?>
|
||||
</table>
|
||||
</td>
|
||||
<?php if(($row % 1) == 0) echo '<tr>';?>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</table>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
|
||||
<table class='table main-table' id='bugs'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<tr>
|
||||
<th class='w-id'> <?php echo $lang->idAB;?></th>
|
||||
<th class='w-pri'> <?php echo $lang->priAB;?></th>
|
||||
<th class='text-left'><?php echo $lang->testreport->bugTitle;?></th>
|
||||
@@ -12,7 +12,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<?php if($bugs):?>
|
||||
<tbody class='text-center'>
|
||||
<tbody>
|
||||
<?php foreach($bugs as $bug):?>
|
||||
<tr>
|
||||
<td><?php echo sprintf('%03d', $bug->id) . html::hidden('bugs[]', $bug->id)?></td>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
|
||||
<table class='table main-table' id='builds'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<tr>
|
||||
<th class='w-id'> <?php echo $lang->build->id;?></th>
|
||||
<th class='text-left'><?php echo $lang->build->name;?></th>
|
||||
<th class='w-user'><?php echo $lang->build->builder;?></th>
|
||||
@@ -9,7 +9,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<?php if($builds):?>
|
||||
<tbody class='text-center'>
|
||||
<tbody>
|
||||
<?php foreach($builds as $build):?>
|
||||
<tr>
|
||||
<td><?php echo sprintf('%03d', $build->id) . html::hidden('builds[]', $build->id)?></td>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
|
||||
<table class='table main-table' id='cases'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<tr>
|
||||
<th class='w-id'> <?php echo $lang->idAB;?></th>
|
||||
<th class='w-pri'> <?php echo $lang->priAB;?></th>
|
||||
<th class='text-left'><?php echo $lang->testcase->title;?></th>
|
||||
@@ -14,7 +14,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<?php if($cases):?>
|
||||
<tbody class='text-center'>
|
||||
<tbody>
|
||||
<?php foreach($cases as $case):?>
|
||||
<tr>
|
||||
<td><?php echo sprintf('%03d', $case->id) . html::hidden('cases[]', $case->id)?></td>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
|
||||
<table class='table main-table' id='legacyBugs'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<tr>
|
||||
<th class='w-id'> <?php echo $lang->idAB;?></th>
|
||||
<th class='w-pri'> <?php echo $lang->priAB;?></th>
|
||||
<th class='text-left'><?php echo $lang->bug->title;?></th>
|
||||
@@ -12,7 +12,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<?php if($legacyBugs):?>
|
||||
<tbody class='text-center'>
|
||||
<tbody>
|
||||
<?php foreach($legacyBugs as $bug):?>
|
||||
<tr>
|
||||
<td><?php echo sprintf('%03d', $bug->id);?></td>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
|
||||
<table class='table main-table' id='stories'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<tr>
|
||||
<th class='w-id'> <?php echo $lang->idAB;?></th>
|
||||
<th class='w-pri'> <?php echo $lang->priAB;?></th>
|
||||
<th class='text-left'><?php echo $lang->testreport->storyTitle;?></th>
|
||||
@@ -13,7 +13,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<?php if($stories):?>
|
||||
<tbody class='text-center'>
|
||||
<tbody>
|
||||
<?php foreach($stories as $story):?>
|
||||
<tr>
|
||||
<td><?php echo sprintf('%03d', $story->id) . html::hidden('stories[]', $story->id)?></td>
|
||||
|
||||
@@ -42,18 +42,22 @@
|
||||
<?php echo html::select('owner', $users, $owner, "class='form-control chosen'")?>
|
||||
</div>
|
||||
</td>
|
||||
<td class='w-50px'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->members?></th>
|
||||
<td colspan='2'><?php echo html::select('members[]', $users, $members, "class='form-control chosen' multiple")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->title?></th>
|
||||
<td colspan='2'><?php echo html::input('title', $reportTitle, "class='form-control'")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->goal?></th>
|
||||
<td colspan='2'><?php echo $project->desc?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->profile?></th>
|
||||
@@ -65,17 +69,20 @@
|
||||
unset($bugInfo['countBugByTask']); unset($bugInfo['bugConfirmedRate']); unset($bugInfo['bugCreateByCaseRate']); unset($bugInfo['foundBugs']);
|
||||
?>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->report?></th>
|
||||
<td colspan='2'><?php echo html::textarea('report', '', "class='form-control'")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->files?></th>
|
||||
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='text-center' colspan='3'>
|
||||
<td class='text-center' colspan='4'>
|
||||
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
||||
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
||||
</td>
|
||||
|
||||
@@ -42,18 +42,22 @@
|
||||
<?php echo html::select('owner', $users, $report->owner, "class='form-control chosen'")?>
|
||||
</div>
|
||||
</td>
|
||||
<td class='w-50px'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->members?></th>
|
||||
<td colspan='2'><?php echo html::select('members[]', $users, $report->members, "class='form-control chosen' multiple")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->title?></th>
|
||||
<td colspan='2'><?php echo html::input('title', $report->title, "class='form-control'")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->goal?></th>
|
||||
<td colspan='2'><?php echo $project->desc?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->profile?></th>
|
||||
@@ -65,17 +69,20 @@
|
||||
unset($bugInfo['countBugByTask']); unset($bugInfo['bugConfirmedRate']); unset($bugInfo['bugCreateByCaseRate']); unset($bugInfo['foundBugs']);
|
||||
?>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->report?></th>
|
||||
<td colspan='2'><?php echo html::textarea('report', $report->report, "class='form-control'")?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->files?></th>
|
||||
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='text-center' colspan='3'>
|
||||
<td class='text-center' colspan='4'>
|
||||
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
|
||||
<?php echo html::backButton('', '', 'btn btn-wide');?>
|
||||
</td>
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
<div class='page-title'>
|
||||
<span class='label label-id'><?php echo $report->id;?></span>
|
||||
<span class='text'><?php echo $report->title;?></span>
|
||||
<?php if($report->deleted):?>
|
||||
<span class='label label-danger'><?php echo $lang->testreport->deleted;?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -51,7 +54,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->owner?></th>
|
||||
<td><?php echo zget($users, $report->owner);?></td>
|
||||
<td colspan='2'><?php echo zget($users, $report->owner);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testreport->members?></th>
|
||||
@@ -75,7 +78,7 @@
|
||||
<?php if(!$this->session->notHead):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->files?></th>
|
||||
<td><?php echo $this->fetch('file', 'printFiles', array('files' => $report->files, 'fieldset' => 'false'));?></td>
|
||||
<td colspan='2'><?php echo $this->fetch('file', 'printFiles', array('files' => $report->files, 'fieldset' => 'false'));?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
</table>
|
||||
|
||||
@@ -78,10 +78,19 @@ class testsuite extends control
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$response['result'] = 'success';
|
||||
$response['message'] = '';
|
||||
$suiteID = $this->testsuite->create($productID);
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
if(dao::isError())
|
||||
{
|
||||
$response['result'] = 'fail';
|
||||
$response['message'] = dao::getError();
|
||||
$this->send($response);
|
||||
}
|
||||
$actionID = $this->loadModel('action')->create('testsuite', $suiteID, 'opened');
|
||||
die(js::locate($this->createLink('testsuite', 'browse', "productID=$productID"), 'parent'));
|
||||
$response['locate'] = $this->createLink('testsuite', 'browse', "productID=$productID");
|
||||
$response['message'] = $this->lang->testsuite->successSaved;
|
||||
$this->send($response);
|
||||
}
|
||||
|
||||
/* Set menu. */
|
||||
@@ -160,8 +169,15 @@ class testsuite extends control
|
||||
$suite = $this->testsuite->getById($suiteID);
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$response['result'] = 'success';
|
||||
$response['message'] = '';
|
||||
$changes = $this->testsuite->update($suiteID);
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
if(dao::isError())
|
||||
{
|
||||
$response['result'] = 'fail';
|
||||
$response['message'] = dao::getError();
|
||||
$this->send($response);
|
||||
}
|
||||
if($changes)
|
||||
{
|
||||
$objectType = $suite->type == 'library' ? 'caselib' : 'testsuite';
|
||||
@@ -169,7 +185,9 @@ class testsuite extends control
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
$method = $suite->type == 'library' ? 'libView' : 'view';
|
||||
die(js::locate(inlink($method, "suiteID=$suiteID"), 'parent'));
|
||||
$response['locate'] = inlink($method, "suiteID=$suiteID");
|
||||
$response['message'] = $this->lang->testsuite->successSaved;
|
||||
$this->send($response);
|
||||
}
|
||||
|
||||
if($suite->type == 'library')
|
||||
@@ -456,10 +474,19 @@ class testsuite extends control
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$response['result'] = 'success';
|
||||
$response['message'] = '';
|
||||
$libID = $this->testsuite->createLib();
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
if(dao::isError())
|
||||
{
|
||||
$response['result'] = 'fail';
|
||||
$response['message'] = dao::getError();
|
||||
$this->send($response);
|
||||
}
|
||||
$this->loadModel('action')->create('caselib', $libID, 'opened');
|
||||
die(js::locate($this->createLink('testsuite', 'library', "libID=$libID"), 'parent'));
|
||||
$response['locate'] = $this->createLink('testsuite', 'library', "libID=$libID");
|
||||
$response['message'] = $this->lang->testsuite->successSaved;
|
||||
$this->send($response);
|
||||
}
|
||||
|
||||
/* Set menu. */
|
||||
@@ -702,6 +729,9 @@ class testsuite extends control
|
||||
|
||||
$modules = $this->loadModel('tree')->getOptionMenu($libID, $viewType = 'caselib', $startModuleID = 0);
|
||||
$rows = array();
|
||||
$num = (int)$this->post->num;
|
||||
for($i = 0; $i < $num; $i++)
|
||||
{
|
||||
foreach($modules as $moduleID => $module)
|
||||
{
|
||||
$row = new stdclass();
|
||||
@@ -716,11 +746,12 @@ class testsuite extends control
|
||||
}
|
||||
$rows[] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
$this->post->set('fields', $fields);
|
||||
$this->post->set('kind', 'testcase');
|
||||
$this->post->set('rows', $rows);
|
||||
$this->post->set('extraNum', $this->post->num);
|
||||
$this->post->set('extraNum', $num);
|
||||
$this->post->set('fileName', 'templet');
|
||||
$this->fetch('file', 'export2csv', $_POST);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user