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

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