* finish for story action page.

This commit is contained in:
wangyidong
2018-04-17 15:15:50 +08:00
parent d1dcca0d0e
commit d81e0f3f20
18 changed files with 428 additions and 410 deletions
+20
View File
@@ -0,0 +1,20 @@
#dynamics {padding: 10px 0;}
.dynamic {position: relative; padding-left: 170px;}
.dynamic-date {position: absolute; left: 0; top: 0; width: 150px; border: 2px solid #eee; border-radius: 4px; padding: 14px 20px; height: 58px;}
.dynamic-date:before {content: ' '; display: block; position: absolute; right: -22px; top: 26px; height: 2px; width: 20px; background-color: #eee;}
.dynamic-date > .date-label,
.dynamic-date > .date-text {font-size: 18px; display: block;}
.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;}
.dynamic-date > .date-label {margin-top: -8px;}
.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;}
.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; max-height: 800px; transition: max-height .2s; overflow: hidden;}
.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;}
.dynamic .timeline-text {color: #3C4353;}
.dynamic .text-muted {color: #838A9D;}
.dynamic .label-id {top: -1px;}
.dynamic.active .timeline,
.dynamic.active .dynamic-date {border-color: #00a9fc;}
.dynamic.active .dynamic-date:before {background-color: #00a9fc;}
.dynamic.collapsed .timeline {max-height: 58px;}
.dynamic.collapsed .timeline > li + li:after {display: none;}
.dynamic.collapsed .dynamic-btn > .icon:before {content: '\f0d7';}
+8 -1
View File
@@ -106,6 +106,13 @@ class search extends control
$query = $queryID ? $queryID : '';
$module = empty($module) ? $this->session->searchParams['module'] : $module;
$queries = $this->search->getQueryPairs($module);
die(html::select('queryID', $queries, $query, 'onchange=executeQuery(this.value) class=form-control'));
$html = '';
foreach($queries as $queryID => $queryName)
{
if(empty($queryID)) continue;
$html .= html::a("###", $queryName . (common::hasPriv('search', 'deleteQuery') ? '<i class="icon icon-close"></i>' : ''), '', "class='label user-query' data-query-id='$queryID'");
}
die($html);
}
}
+1
View File
@@ -322,6 +322,7 @@ class searchModel extends model
public function deleteQuery($queryID)
{
$this->dao->delete()->from(TABLE_USERQUERY)->where('id')->eq($queryID)->andWhere('account')->eq($this->app->user->account)->exec();
die('success');
}
/**
+8 -2
View File
@@ -193,6 +193,7 @@ foreach($fieldParams as $fieldName => $param)
<h4><?php echo $lang->search->savedQuery;?></h4>
<div>
<?php foreach($queries as $queryID => $queryName):?>
<?php if(empty($queryID)) continue;?>
<?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'");?>
<?php endforeach;?>
</div>
@@ -237,9 +238,14 @@ var setQueryTitle = '<?php echo $lang->search->setQueryTitle;?>';
var module = '<?php echo $module;?>';
var actionURL = '<?php echo $actionURL;?>';
function executeQuery(queryID)
{
if(!queryID) return;
location.href = actionURL.replace('myQueryID', queryID);
}
$(function()
{
var $searchForm = $('#searchForm');
$searchForm.find('select.chosen').chosen();
@@ -248,7 +254,7 @@ $(function()
*/
var loadQueries = window.loadQueries = function(queryID)
{
$('#queryBox').load($.createLink('search', 'ajaxGetQuery', 'module=' + module + '&queryID=' + queryID));
$('#userQueries div:first').load($.createLink('search', 'ajaxGetQuery', 'module=' + module + '&queryID=' + queryID));
};
/*
+42 -39
View File
@@ -11,45 +11,48 @@
*/
?>
<?php include './header.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?> <strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<small class='text-success'><?php echo html::icon($lang->icons['activate']) . ' ' . $lang->story->activate;?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='prefix'><strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<small><?php echo $lang->arrow . $lang->story->activate;?></small>
</h2>
</div>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->story->assignedTo;?></th>
<td class='w-p45'><?php echo html::select('assignedTo', $users, $story->closedBy, 'class="form-control chosen"');?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->story->status;?></th>
<td>
<?php
unset($lang->story->statusList['']);
unset($lang->story->statusList['closed']);
echo html::select('status', $lang->story->statusList, 'active', 'class="form-control chosen"');
?>
</td>
</tr>
<tr>
<th><?php echo $lang->story->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', 'rows=5 class="area-1"');?></td>
</tr>
<tr>
<td></td>
<td colspan='2'>
<?php
echo html::submitButton(html::icon($lang->icons['activate']) . ' ' . $lang->story->activate, '', 'btn btn-success');
echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));
?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<form class='form-condensed' method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->story->assignedTo;?></th>
<td class='w-p45'><?php echo html::select('assignedTo', $users, $story->closedBy, 'class="form-control chosen"');?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->story->status;?></th>
<td>
<?php
unset($lang->story->statusList['']);
unset($lang->story->statusList['closed']);
echo html::select('status', $lang->story->statusList, 'active', 'class="form-control chosen"');
?>
</td>
</tr>
<tr>
<th><?php echo $lang->story->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', 'rows=5 class="area-1"');?></td>
</tr>
<tr>
<td></td>
<td colspan='2'>
<?php
echo html::submitButton(html::icon($lang->icons['activate']) . ' ' . $lang->story->activate, '', 'btn btn-success');
echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));
?>
</td>
</tr>
</table>
</form>
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
<?php include '../../common/view/footer.html.php';?>
+2 -2
View File
@@ -40,9 +40,9 @@
<table class='table table-borderless table-condensed'>
<thead>
<tr>
<th class='w-60px'><?php echo $lang->bug->id;?></th>
<th class='w-80px'><?php echo $lang->bug->id;?></th>
<th><?php echo $lang->bug->title;?></th>
<th class='w-60px'><?php echo $lang->bug->status;?></th>
<th class='w-80px'><?php echo $lang->bug->status;?></th>
<th class='w-70px'><?php echo $lang->bug->openedBy;?></th>
<th><?php echo $lang->bug->resolvedBy;?></th>
<th><?php echo $lang->bug->resolution;?></th>
+50 -47
View File
@@ -11,53 +11,56 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?></span>
<strong><?php echo $lang->story->common . $lang->colon . $lang->story->batchClose;?></strong>
<small class='text-danger'><?php echo html::icon($lang->icons['batchClose']);?></small>
<div class='main-content' id='mainContent'>
<div class='main-header'>
<h2><?php echo $lang->story->common . $lang->colon . $lang->story->batchClose;?></h2>
</div>
<?php if(isset($suhosinInfo)):?>
<div class='alert alert-info'><?php echo $suhosinInfo;?></div>
<?php else:?>
<form method='post' target='hiddenwin' action="<?php echo inLink('batchClose', "from=storyBatchClose")?>">
<table class='table table-fixed table-form with-border'>
<thead>
<tr>
<th class='w-50px'> <?php echo $lang->idAB;?></th>
<th> <?php echo $lang->story->title;?></th>
<th class='w-80px'> <?php echo $lang->story->status;?></th>
<th class='w-120px'><?php echo $lang->story->closedReason;?></th>
<th class='w-p40 '> <?php echo $lang->story->comment;?></th>
</tr>
</thead>
<?php foreach($stories as $storyID => $story):?>
<tr class='text-center'>
<td><?php echo $storyID . html::hidden("storyIDList[$storyID]", $storyID);?></td>
<td class='text-left'><?php echo $story->title;?></td>
<td class='story-<?php echo $story->status;?>'><?php echo $lang->story->statusList[$story->status];?></td>
<td>
<?php if($story->status == 'draft') unset($this->lang->story->reasonList['cancel']);?>
<table class='w-p100'>
<tr>
<td class='pd-0'>
<?php echo html::select("closedReasons[$storyID]", $lang->story->reasonList, 'done', "class=form-control onchange=setDuplicateAndChild(this.value,$storyID) style='min-width: 70px'");?>
</td>
<td class='pd-0' id='<?php echo 'duplicateStoryBox' . $storyID;?>' <?php if($story->closedReason != 'duplicate') echo "style='display:none'";?>>
<?php echo html::input("duplicateStoryIDList[$storyID]", '', "class='form-control' placeholder='{$lang->idAB}' autocomplete='off'");?>
</td>
<td class='pd-0' id='<?php echo 'childStoryBox' . $storyID;?>' <?php if($story->closedReason != 'subdivided') echo "style='display:none'";?>>
<?php echo html::input("childStoriesIDList[$storyID]", '', "class='form-control' placeholder='{$lang->idAB}' autocomplete='off'");?>
</td>
</tr>
</table>
</td>
<td><?php echo html::input("comments[$storyID]", '', "class='form-control' autocomplete='off'");?></td>
</tr>
<?php endforeach;?>
<tr>
<td colspan='5' class='text-center'>
<?php echo html::submitButton();?>
<?php echo html::backButton();?>
</td>
</tr>
</table>
</form>
<?php endif;?>
</div>
<?php if(isset($suhosinInfo)):?>
<div class='alert alert-info'><?php echo $suhosinInfo;?></div>
<?php else:?>
<form class='form-condensed' method='post' target='hiddenwin' action="<?php echo inLink('batchClose', "from=storyBatchClose")?>">
<table class='table table-fixed table-form with-border'>
<thead>
<tr>
<th class='w-50px'> <?php echo $lang->idAB;?></th>
<th> <?php echo $lang->story->title;?></th>
<th class='w-80px'> <?php echo $lang->story->status;?></th>
<th class='w-120px'><?php echo $lang->story->closedReason;?></th>
<th class='w-p40 '> <?php echo $lang->story->comment;?></th>
</tr>
</thead>
<?php foreach($stories as $storyID => $story):?>
<tr class='text-center'>
<td><?php echo $storyID . html::hidden("storyIDList[$storyID]", $storyID);?></td>
<td class='text-left'><?php echo $story->title;?></td>
<td class='story-<?php echo $story->status;?>'><?php echo $lang->story->statusList[$story->status];?></td>
<td>
<?php if($story->status == 'draft') unset($this->lang->story->reasonList['cancel']);?>
<table class='w-p100'>
<tr>
<td class='pd-0'>
<?php echo html::select("closedReasons[$storyID]", $lang->story->reasonList, 'done', "class=form-control onchange=setDuplicateAndChild(this.value,$storyID) style='min-width: 70px'");?>
</td>
<td class='pd-0' id='<?php echo 'duplicateStoryBox' . $storyID;?>' <?php if($story->closedReason != 'duplicate') echo "style='display:none'";?>>
<?php echo html::input("duplicateStoryIDList[$storyID]", '', "class='form-control' placeholder='{$lang->idAB}' autocomplete='off'");?>
</td>
<td class='pd-0' id='<?php echo 'childStoryBox' . $storyID;?>' <?php if($story->closedReason != 'subdivided') echo "style='display:none'";?>>
<?php echo html::input("childStoriesIDList[$storyID]", '', "class='form-control' placeholder='{$lang->idAB}' autocomplete='off'");?>
</td>
</tr>
</table>
</td>
<td><?php echo html::input("comments[$storyID]", '', "class='form-control' autocomplete='off'");?></td>
</tr>
<?php endforeach;?>
<tr><td colspan='5' class='text-center'><?php echo html::submitButton();?></td></tr>
</table>
</form>
<?php endif;?>
<?php include '../../common/view/footer.html.php';?>
+9 -10
View File
@@ -12,16 +12,17 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('dittoNotice', $this->lang->story->dittoNotice);?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?></span>
<strong><small class='text-muted'><?php echo html::icon($lang->icons['batchEdit']);?></small> <?php echo $lang->story->common . $lang->colon . $lang->story->batchEdit;?></strong>
<div class='main-content' id='mainContent'>
<div class='main-header'>
<h2>
<strong><?php echo $lang->story->common . $lang->colon . $lang->story->batchEdit;?></strong>
<?php if($productName):?>
<small class='text-muted'><?php echo html::icon($lang->icons['product']) . ' ' . $lang->story->product . $lang->colon . ' ' . $productName;?></small>
<?php endif;?>
<div class='actions'>
<button type="button" class="btn btn-default" data-toggle="customModal"><i class='icon icon-cog'></i> </button>
</div>
</h2>
<div class='pull-right btn-toolbar'>
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=story&section=custom&key=batchEditFields')?>
<?php include '../../common/view/customfield.html.php';?>
</div>
</div>
<?php if(isset($suhosinInfo)):?>
@@ -34,7 +35,7 @@ foreach(explode(',', $showFields) as $field)
if($field)$visibleFields[$field] = '';
}
?>
<form class='form-condensed' method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "from=storyBatchEdit")?>">
<form method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "from=storyBatchEdit")?>">
<table class='table table-form table-fixed with-border'>
<thead>
<tr class='text-center'>
@@ -136,6 +137,4 @@ foreach(explode(',', $showFields) as $field)
</table>
</form>
<?php endif;?>
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=story&section=custom&key=batchEditFields')?>
<?php include '../../common/view/customfield.html.php';?>
<?php include '../../common/view/footer.html.php';?>
+8 -8
View File
@@ -1,12 +1,12 @@
<?php include '../../common/view/header.lite.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span><?php echo html::icon($lang->icons['report']);?></span>
<small class='text-muted'> <?php echo $lang->story->bugs;?></small>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span><?php echo html::icon($lang->icons['report']);?></span>
<?php echo $lang->story->bugs;?>
</h2>
</div>
</div>
<div class='bugsList'>
<form class='form-condensed' target='hiddenwin'>
<div class='bugsList'>
<table class='table table-fixed'>
<thead>
<tr class='text-center'>
@@ -35,6 +35,6 @@
<?php endforeach;?>
</tbody>
</table>
</form>
</div>
</div>
<?php include '../../common/view/footer.lite.html.php';?>
+9 -9
View File
@@ -1,16 +1,16 @@
<?php include '../../common/view/header.lite.html.php';?>
<div id='titlebar'>
<div class='heading'>
<span><?php echo html::icon($lang->icons['report']);?></span>
<small class='text-muted'> <?php echo $lang->story->cases;?></small>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span><?php echo html::icon($lang->icons['report']);?></span>
<?php echo $lang->story->cases;?>
</h2>
</div>
</div>
<div class='casesList'>
<form class='form-condensed' target='hiddenwin'>
<div class='casesList'>
<table class='table table-fixed'>
<thead>
<tr class='text-center'>
<th class='w-20px'> <?php echo $lang->idAB;?></th>
<th class='w-50px'> <?php echo $lang->idAB;?></th>
<th class='w-p30'> <?php echo $lang->testcase->title;?></th>
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th class='w-type'> <?php echo $lang->testcase->type;?></th>
@@ -35,6 +35,6 @@
<?php endforeach;?>
</tbody>
</table>
</form>
</div>
</div>
<?php include '../../common/view/footer.lite.html.php';?>
+62 -60
View File
@@ -11,67 +11,69 @@
*/
?>
<?php include './header.html.php';?>
<div class='container mw-1400px'>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?> <strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<small><?php echo html::icon($lang->icons['change']) . ' ' . $lang->story->change;?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='prefix'><strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<small><?php echo $lang->arrow . ' ' . $lang->story->change;?></small>
</h2>
</div>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->story->reviewedBy;?></th>
<td>
<div class="input-group w-p35-f">
<?php echo html::select('assignedTo', $users, $story->assignedTo, 'class="form-control chosen"');?>
<?php if(!$this->story->checkForceReview()):?>
<span class="input-group-addon">
<?php echo html::checkbox('needNotReview', $lang->story->needNotReview, '', "id='needNotReview' {$needReview}");?>
</span>
<?php endif;?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->story->title;?></th>
<td><?php echo html::input('title', $story->title, 'class="form-control"');?></td>
</tr>
<tr>
<th><?php echo $lang->story->spec;?></th>
<td><?php echo html::textarea('spec', htmlspecialchars($story->spec), 'rows=8 class="form-control"');?><span class='help-block'><?php echo $lang->story->specTemplate;?></span></td>
</tr>
<tr>
<th><?php echo $lang->story->verify;?></th>
<td><?php echo html::textarea('verify', htmlspecialchars($story->verify), 'rows=6 class="form-control"');?></td>
</tr>
<tr>
<th><?php echo $lang->story->comment;?></th>
<td><?php echo html::textarea('comment', '', 'rows=5 class="form-control"');?></td>
</tr>
<tr>
<th><?php echo $lang->attatch;?></th>
<td><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<th><?php echo $lang->story->checkAffection;?></th>
<td><?php include './affected.html.php';?></td>
</tr>
<tr>
<td></td><td class='text-center'>
<?php
echo html::hidden('lastEditedDate', $story->lastEditedDate);
echo html::submitButton('', '', 'btn btn-wide btn-primary');
echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"), '', '', 'btn btn-wide');
?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
</div>
<form method='post' enctype='multipart/form-data' target='hiddenwin' class='form-condensed'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->story->reviewedBy;?></th>
<td>
<div class="input-group w-p35-f">
<?php echo html::select('assignedTo', $users, $story->assignedTo, 'class="form-control chosen"');?>
<?php if(!$this->story->checkForceReview()):?>
<span class="input-group-addon">
<?php echo html::checkbox('needNotReview', $lang->story->needNotReview, '', "id='needNotReview' {$needReview}");?>
</span>
<?php endif;?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->story->title;?></th>
<td><?php echo html::input('title', $story->title, 'class="form-control"');?></td>
</tr>
<tr>
<th><?php echo $lang->story->spec;?></th>
<td><?php echo html::textarea('spec', htmlspecialchars($story->spec), 'rows=8 class="form-control"');?><span class='help-block'><?php echo $lang->story->specTemplate;?></span></td>
</tr>
<tr>
<th><?php echo $lang->story->verify;?></th>
<td><?php echo html::textarea('verify', htmlspecialchars($story->verify), 'rows=6 class="form-control"');?></td>
</tr>
<tr>
<th><?php echo $lang->story->comment;?></th>
<td><?php echo html::textarea('comment', '', 'rows=5 class="form-control"');?></td>
</tr>
<tr>
<th><?php echo $lang->attatch;?></th>
<td><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<th><?php echo $lang->story->checkAffection;?></th>
<td><?php include './affected.html.php';?></td>
</tr>
<tr>
<td></td><td class='text-center'>
<?php
echo html::hidden('lastEditedDate', $story->lastEditedDate);
echo html::submitButton();
echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));
?>
</td>
</tr>
</table>
</form>
<hr class='small'>
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
+7 -7
View File
@@ -11,15 +11,15 @@
*/
?>
<?php include './header.html.php';?>
<div class='container'>
<div id='titlebar'>
<div class='heading'>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?> <strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<small><?php echo $lang->story->close;?></small>
</div>
<small><?php echo $lang->arrow . $lang->story->close;?></small>
</h2>
</div>
<form method='post' target='hiddenwin' class='form-condensed'>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->story->closedReason;?></th>
@@ -46,7 +46,7 @@
</tr>
</table>
</form>
<hr class='small'>
<hr class='small' />
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
+15 -13
View File
@@ -11,20 +11,21 @@
*/
?>
<?php include './header.html.php';?>
<form class='form-condensed' method='post' enctype='multipart/form-data' target='hiddenwin' id='dataform'>
<div id='titlebar'>
<div class='heading'>
<div class='main-content' id='mainContent'>
<form method='post' enctype='multipart/form-data' target='hiddenwin' id='dataform'>
<div class='main-header'>
<h2>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?> <strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title, '', 'class="story-title"');?></strong>
<small><?php echo html::icon($lang->icons['edit']) . ' ' . $lang->story->edit;?></small>
</div>
<div class='actions'>
<small><?php echo $lang->arrow . ' ' . $lang->story->edit;?></small>
</h2>
<div class="pull-right btn-toolbar">
<?php echo html::submitButton($lang->save)?>
</div>
</div>
<div class='row-table'>
<div class='col-main'>
<div class='main'>
<div class='main-row'>
<div class='main-col col-8'>
<div class='cell'>
<div class='form-group'>
<div class='input-group'>
<input type='hidden' id='color' name='color' data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='<?php echo $lang->story->colorTag ?>' value='<?php echo $story->color ?>' data-update-text='#title, .story-title'>
@@ -50,15 +51,15 @@
<div class='actions actions-form'>
<?php
echo html::hidden('lastEditedDate', $story->lastEditedDate);
echo html::submitButton($lang->save);
echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));
echo html::submitButton($lang->save, '', 'btn btn-wide btn-primary');
echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"), 'self', '', 'btn btn-wide');
?>
</div>
<?php include '../../common/view/action.html.php';?>
</div>
</div>
<div class='col-side'>
<div class='main main-side'>
<div class='side-col col-4'>
<div class='cell'>
<fieldset>
<legend><?php echo $lang->story->legendBasicInfo;?></legend>
<table class='table table-form'>
@@ -235,4 +236,5 @@
</div>
</div>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
+29 -26
View File
@@ -11,21 +11,26 @@
*/
?>
<?php include './header.html.php';?>
<div class='container'>
<div id='titlebar'>
<div class='heading' style='margin-bottom: 15px'>
<div class='main-content' id='mainContent'>
<div class='main-header'>
<h2>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?> <strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<small><?php echo $lang->story->linkStory;?></small>
</div>
<div id='querybox' class='show'></div>
<small><?php echo $lang->arrow . $lang->story->linkStory;?></small>
</h2>
</div>
<form method='post' class='form-condensed' target='hiddenwin' id='linkStoryForm'>
<table class='table table-condensed table-hover table-striped tablesorter table-fixed table-selectable' id='storyList'>
<div id='queryBox' class='show'></div>
<form method='post' target='hiddenwin' id='linkStoryForm' class='main-table table-story' data-ride="table">
<table class='table' id='storyList'>
<?php if($stories2Link):?>
<thead>
<tr>
<th class='w-id'><?php echo $lang->idAB;?></th>
<th class='c-id'>
<div class="checkbox-primary check-all" title="<?php echo $lang->selectAll?>">
<label></label>
</div>
<?php echo $lang->idAB;?>
</th>
<th class='w-pri'><?php echo $lang->priAB;?></th>
<th><?php echo $lang->story->product;?></th>
<th><?php echo $lang->story->title;?></th>
@@ -39,34 +44,32 @@
<?php foreach($stories2Link as $story2Link):?>
<?php $storyLink = $this->createLink('story', 'view', "storyID=$story2Link->id");?>
<tr class='text-center'>
<td class='cell-id'>
<input type='checkbox' name='stories[]' value='<?php echo $story2Link->id;?>'/>
<?php echo html::a($storyLink, sprintf('%03d', $story2Link->id));?>
<td class='c-id'>
<div class="checkbox-primary">
<input type='checkbox' name='stories[]' value='<?php echo $story2Link->id;?>'/>
<label></label>
<?php echo html::a($storyLink, sprintf('%03d', $story2Link->id));?>
</div>
</td>
<td><span class='<?php echo 'pri' . zget($lang->story->priList, $story2Link->pri, $story2Link->pri)?>'><?php echo zget($lang->story->priList, $story2Link->pri, $story2Link->pri);?></span></td>
<td><?php echo html::a($this->createLink('product', 'browse', "productID=$story2Link->product&branch=$story2Link->branch"), $products[$story2Link->product], '_blank');?></td>
<td class='text-left nobr' title="<?php echo $story2Link->title?>"><?php echo html::a($storyLink, $story2Link->title, '_blank');?></td>
<td><?php echo $story2Link->planTitle;?></td>
<td><?php echo $users[$story2Link->openedBy];?></td>
<td><?php echo zget($users, $story2Link->openedBy);?></td>
<td><?php echo $story2Link->estimate;?></td>
</tr>
<?php $storyCount ++;?>
<?php endforeach;?>
</tbody>
<tfoot>
<tr>
<td colspan='7' class='text-left'>
<div class='table-actions clearfix'>
<?php if($storyCount) echo html::selectButton() . html::submitButton();?>
</div>
</td>
</tr>
<tr>
<td class='hidden'><?php echo html::input('story', $story->id);?></td>
</tr>
</tfoot>
<?php endif;?>
</table>
<div class='table-footer'>
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
<div class="table-actions btn-toolbar">
<?php if($storyCount) echo html::submitButton();?>
</div>
<?php echo html::hidden('story', $story->id);?>
</div>
<?php endif;?>
</form>
</div>
<script type='text/javascript'>
+63 -61
View File
@@ -15,68 +15,70 @@
<script language='Javascript'>
var assignedTo = '<?php $story->lastEditedBy ? print($story->lastEditedBy) : print($story->openedBy);?>';
</script>
<div class='container mw-1400px'>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['story']);?> <strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<small><?php echo html::icon($lang->icons['review']) . ' ' . $lang->story->review;?></small>
<div class='main-content' id='mainContent'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='prefix'><strong><?php echo $story->id;?></strong></span>
<strong><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></strong>
<small><?php echo $lang->arrow . $lang->story->review;?></small>
</h2>
</div>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->story->reviewedDate;?></th>
<td class='w-p25-f'><?php echo html::input('reviewedDate', helper::today(), "class='form-control form-date'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->story->reviewResult;?></th>
<td><?php echo html::select('result', $lang->story->reviewResultList, '', 'class=form-control onchange="switchShow(this.value)"');?></td><td></td>
</tr>
<tr id='rejectedReasonBox' class='hide'>
<th><?php echo $lang->story->rejectedReason;?></th>
<td><?php echo html::select('closedReason', $lang->story->reasonList, '', 'class=form-control onchange="setStory(this.value)"');?></td><td></td>
</tr>
<tr id='duplicateStoryBox' class='hide'>
<th><?php echo $lang->story->duplicateStory;?></th>
<td><?php echo html::input('duplicateStory', '', "class='form-control' autocomplete='off'");?></td><td></td>
</tr>
<tr id='childStoriesBox' class='hide'>
<th><?php echo $lang->story->childStories;?></th>
<td><?php echo html::input('childStories', '', "class='form-control' autocomplete='off'");?></td><td></td>
</tr>
<?php if($story->status == 'changed' or ($story->status == 'draft' and $story->version > 1)):?>
<tr id='preVersionBox' class='hide'>
<th><?php echo $lang->story->preVersion;?></th>
<td colspan='2'><?php echo html::radio('preVersion', array_combine(range($story->version - 1, 1), range($story->version - 1, 1)), $story->version - 1);?></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->story->assignedTo;?></th>
<td><?php echo html::select('assignedTo', $users, $story->lastEditedBy ? $story->lastEditedBy : $story->openedBy, "class='form-control chosen'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->story->reviewedBy;?></th>
<td colspan='2'><?php echo html::select('reviewedBy[]', $users, $app->user->account, "class='form-control' multiple data-placeholder='{$lang->story->chosen->reviewedBy}'");?></td>
</tr>
<tr>
<th><?php echo $lang->story->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='8' class='form-control'");?></td>
</tr>
<tr>
<th><?php echo $lang->story->checkAffection;?></th>
<td colspan='2'><?php include './affected.html.php';?></td>
</tr>
<tr>
<td></td>
<td colspan='2'>
<?php echo html::submitButton();?>
<?php echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
<form method='post' target='hiddenwin' class='form-condensed'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->story->reviewedDate;?></th>
<td class='w-p25-f'><?php echo html::input('reviewedDate', helper::today(), "class='form-control form-date'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->story->reviewResult;?></th>
<td><?php echo html::select('result', $lang->story->reviewResultList, '', 'class=form-control onchange="switchShow(this.value)"');?></td><td></td>
</tr>
<tr id='rejectedReasonBox' class='hide'>
<th><?php echo $lang->story->rejectedReason;?></th>
<td><?php echo html::select('closedReason', $lang->story->reasonList, '', 'class=form-control onchange="setStory(this.value)"');?></td><td></td>
</tr>
<tr id='duplicateStoryBox' class='hide'>
<th><?php echo $lang->story->duplicateStory;?></th>
<td><?php echo html::input('duplicateStory', '', "class='form-control' autocomplete='off'");?></td><td></td>
</tr>
<tr id='childStoriesBox' class='hide'>
<th><?php echo $lang->story->childStories;?></th>
<td><?php echo html::input('childStories', '', "class='form-control' autocomplete='off'");?></td><td></td>
</tr>
<?php if($story->status == 'changed' or ($story->status == 'draft' and $story->version > 1)):?>
<tr id='preVersionBox' class='hide'>
<th><?php echo $lang->story->preVersion;?></th>
<td colspan='2'><?php echo html::radio('preVersion', array_combine(range($story->version - 1, 1), range($story->version - 1, 1)), $story->version - 1);?></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->story->assignedTo;?></th>
<td><?php echo html::select('assignedTo', $users, $story->lastEditedBy ? $story->lastEditedBy : $story->openedBy, "class='form-control chosen'");?></td><td></td>
</tr>
<tr>
<th><?php echo $lang->story->reviewedBy;?></th>
<td colspan='2'><?php echo html::select('reviewedBy[]', $users, $app->user->account, "class='form-control' multiple data-placeholder='{$lang->story->chosen->reviewedBy}'");?></td>
</tr>
<tr>
<th><?php echo $lang->story->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='8' class='form-control'");?></td>
</tr>
<tr>
<th><?php echo $lang->story->checkAffection;?></th>
<td colspan='2'><?php include './affected.html.php';?></td>
</tr>
<tr>
<td></td>
<td colspan='2'>
<?php echo html::submitButton();?>
<?php echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));?>
</td>
</tr>
</table>
</form>
<hr class='small'>
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
<?php include '../../common/view/footer.html.php';?>
+8 -8
View File
@@ -2,14 +2,14 @@
include '../../common/view/header.lite.html.php';
include '../../common/view/chart.html.php';
?>
<div id='titlebar'>
<div class='heading'>
<span><?php echo html::icon($lang->icons['report']);?></span>
<small class='text-muted'> <?php echo $lang->story->tasks;?></small>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span><?php echo html::icon($lang->icons['report']);?></span>
<?php echo $lang->story->tasks;?>
</h2>
</div>
</div>
<div class='tasksList'>
<form class='form-condensed' target='hiddenwin'>
<div class='tasksList'>
<table class='table table-fixed'>
<thead>
<tr class='text-center'>
@@ -45,6 +45,6 @@ include '../../common/view/chart.html.php';
</tr>
</tfoot>
</table>
</form>
</div>
</div>
<?php include '../../common/view/footer.lite.html.php';?>
+87 -98
View File
@@ -12,13 +12,18 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../testcase/view/caseheader.html.php';?>
<div class='main'>
<form method='post' id='productStoryForm'>
<table class='table table-condensed table-hover table-striped tablesorter table-fixed table-selectable' id='storyList'>
<div class='mainContent'>
<form method='post' id='productStoryForm' class='main-table table-story' data-ride='table'>
<table class='table has-sort-head table-fixed' id='storyList'>
<thead>
<tr>
<?php $vars = "productID=$productID&orderBy=%s";?>
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th class='c-id'>
<div class="checkbox-primary check-all" title="<?php echo $lang->selectAll?>">
<label></label>
</div>
<?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?>
</th>
<th class='w-pri'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
<th class='w-p30'> <?php common::printOrderLink('title', $orderBy, $vars, $lang->story->title);?></th>
<th> <?php common::printOrderLink('plan', $orderBy, $vars, $lang->story->planAB);?></th>
@@ -28,7 +33,7 @@
<th class='w-hour'><?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
<th> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th> <?php common::printOrderLink('stage', $orderBy, $vars, $lang->story->stageAB);?></th>
<th class='w-140px {sorter:false}'><?php echo $lang->actions;?></th>
<th class='w-140px'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
@@ -37,25 +42,28 @@
$viewLink = $this->createLink('story', 'view', "storyID=$story->id");
$canView = common::hasPriv('story', 'view');
?>
<tr class='text-center'>
<td class='cell-id'>
<input type='checkbox' name='storyIDList[<?php echo $story->id;?>]' value='<?php echo $story->id;?>' />
<?php if($canView) echo html::a($viewLink, sprintf('%03d', $story->id)); else printf('%03d', $story->id);?>
<tr>
<td class='c-id'>
<div class="checkbox-primary">
<input type='checkbox' name='storyIDList[<?php echo $story->id;?>]' value='<?php echo $story->id;?>' />
<label></label>
<?php printf('%03d', $story->id);?>
</div>
</td>
<td><span class='<?php echo 'pri' . zget($lang->story->priList, $story->pri, $story->pri);?>'><?php echo zget($lang->story->priList, $story->pri, $story->pri)?></span></td>
<td><span class='label-pri <?php echo 'label-pri-' . $story->pri;?>'><?php echo zget($lang->story->priList, $story->pri)?></span></td>
<td class='text-left' title="<?php echo $story->title?>"><nobr><?php echo html::a($viewLink, $story->title);?></nobr></td>
<td title="<?php echo $story->planTitle?>"><?php echo $story->planTitle;?></td>
<td><?php echo $lang->story->sourceList[$story->source];?></td>
<td><?php echo $users[$story->openedBy];?></td>
<td><?php echo $users[$story->assignedTo];?></td>
<td><?php echo $story->estimate;?></td>
<td class='status-<?php echo $story->status;?>'><?php echo $lang->story->statusList[$story->status];?></td>
<td><?php echo $lang->story->stageList[$story->stage];?></td>
<td class='text-right'>
<td><span class='status-<?php echo $story->status;?>'><span class="label label-dot"></span> <?php echo zget($lang->story->statusList, $story->status);?></td>
<td><?php echo zget($lang->story->stageList, $story->stage);?></td>
<td class='c-actions'>
<?php
$vars = "story={$story->id}";
common::printIcon('story', 'change', $vars, $story, 'list', 'random');
common::printIcon('story', 'review', $vars, $story, 'list', 'search');
common::printIcon('story', 'change', $vars, $story, 'list', 'fork');
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses');
common::printIcon('story', 'close', $vars, $story, 'list', 'off');
common::printIcon('story', 'edit', $vars, $story, 'list', 'pencil');
common::printIcon('story', 'createCase', "productID=$story->product&module=0&from=&param=0&$vars", $story, 'list', 'sitemap');
@@ -64,90 +72,71 @@
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr>
<td colspan='11'>
<div class='table-actions clearfix' style='padding-left: 5px'>
<?php if(count($stories)):?>
<?php echo html::selectButton();?>
<?php
$canBatchEdit = common::hasPriv('story', 'batchEdit');
$disabled = $canBatchEdit ? '' : "disabled='disabled'";
$actionLink = $this->createLink('story', 'batchEdit', "productID=$productID&projectID=0");
?>
<div class='btn-group dropup'>
<?php echo html::commonButton($lang->edit, "onclick=\"setFormAction('$actionLink')\" $disabled");?>
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'><span class='caret'></span></button>
<ul class='dropdown-menu'>
<?php
$class = "class='disabled'";
if(common::hasPriv('story', 'batchReview'))
{
echo "<li class='dropdown-submenu'>";
echo html::a('javascript:;', $lang->story->review, '', "id='reviewItem'");
echo "<ul class='dropdown-menu'>";
unset($lang->story->reviewResultList['']);
unset($lang->story->reviewResultList['revert']);
foreach($lang->story->reviewResultList as $key => $result)
{
$actionLink = $this->createLink('story', 'batchReview', "result=$key");
if($key == 'reject')
{
echo "<li class='dropdown-submenu'>";
echo html::a('#', $result, '', "id='rejectItem'");
echo "<ul class='dropdown-menu'>";
unset($lang->story->reasonList['']);
unset($lang->story->reasonList['subdivided']);
unset($lang->story->reasonList['duplicate']);
foreach($lang->story->reasonList as $key => $reason)
{
$actionLink = $this->createLink('story', 'batchReview', "result=reject&reason=$key");
echo "<li>";
echo html::a('#', $reason, '', "onclick=\"setFormAction('$actionLink','hiddenwin')\"");
echo "</li>";
}
echo '</ul></li>';
}
else
{
echo '<li>' . html::a('#', $result, '', "onclick=\"setFormAction('$actionLink','hiddenwin')\"") . '</li>';
}
}
echo '</ul></li>';
}
else
{
echo '<li>' . html::a('javascript:;', $lang->story->review, '', $class) . '</li>';
}
if(common::hasPriv('story', 'batchChangeStage'))
{
echo "<li class='dropdown-submenu'>";
echo html::a('javascript:;', $lang->story->stageAB, '', "id='stageItem'");
echo "<ul class='dropdown-menu'>";
$lang->story->stageList[''] = $lang->null;
foreach($lang->story->stageList as $key => $stage)
{
$actionLink = $this->createLink('story', 'batchChangeStage', "stage=$key");
echo "<li>" . html::a('#', $stage, '', "onclick=\"setFormAction('$actionLink','hiddenwin')\"") . "</li>";
}
echo '</ul></li>';
}
else
{
echo '<li>' . html::a('javascript:;', $lang->story->stageAB, '', $class) . '</li>';
}
?>
</ul>
</div>
<?php endif; ?>
</div>
</td>
</tr>
</tfoot>
</table>
<?php if($stories):?>
<div class='table-footer'>
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
<div class="table-actions btn-toolbar">
<?php
$canBatchEdit = common::hasPriv('story', 'batchEdit');
$disabled = $canBatchEdit ? '' : "disabled='disabled'";
$actionLink = $this->createLink('story', 'batchEdit', "productID=$productID&projectID=0&branch=$branch");
?>
<?php echo html::commonButton($lang->edit, "data-form-action='$actionLink' $disabled");?>
<?php
if(common::hasPriv('story', 'batchReview'))
{
echo "<div class='btn-group dropup'>";
echo html::commonButton($lang->story->review . "<span class='caret'></span>", "data-toggle='dropdown'");
echo "<ul class='dropdown-menu'>";
unset($lang->story->reviewResultList['']);
unset($lang->story->reviewResultList['revert']);
foreach($lang->story->reviewResultList as $key => $result)
{
$actionLink = $this->createLink('story', 'batchReview', "result=$key");
if($key == 'reject')
{
echo "<li class='dropdown-submenu'>";
echo html::a('#', $result, '', "id='rejectItem'");
echo "<ul class='dropdown-menu'>";
unset($lang->story->reasonList['']);
unset($lang->story->reasonList['subdivided']);
unset($lang->story->reasonList['duplicate']);
foreach($lang->story->reasonList as $key => $reason)
{
$actionLink = $this->createLink('story', 'batchReview', "result=reject&reason=$key");
echo "<li>";
echo html::a('#', $reason, '', "onclick=\"setFormAction('$actionLink','hiddenwin')\"");
echo "</li>";
}
echo '</ul></li>';
}
else
{
echo '<li>' . html::a('#', $result, '', "onclick=\"setFormAction('$actionLink','hiddenwin')\"") . '</li>';
}
}
echo '</ul></div>';
}
if(common::hasPriv('story', 'batchChangeStage'))
{
echo "<div class='btn-group dropup'>";
echo html::commonButton($lang->story->stageAB . "<span class='caret'></span>", "data-toggle='dropdown'");
echo "<ul class='dropdown-menu'>";
$lang->story->stageList[''] = $lang->null;
foreach($lang->story->stageList as $key => $stage)
{
$actionLink = $this->createLink('story', 'batchChangeStage', "stage=$key");
echo "<li>" . html::a('#', $stage, '', "onclick=\"setFormAction('$actionLink','hiddenwin')\"") . "</li>";
}
echo '</ul></div>';
}
?>
</div>
</div>
<?php endif;?>
</form>
</div>
<?php include '../../common/view/footer.html.php';?>
-19
View File
@@ -15,11 +15,6 @@
<?php include '../../common/view/kindeditor.html.php';?>
<div class="modal-content">
<div class="modal-header">
<div class="modal-actions">
<?php if(isonlybody()):?>
<button id='closeModal' type="button" class="btn btn-link" data-dismiss="modal"><i class="icon icon-close"></i></button>
<?php endif;?>
</div>
<h4 class='modal-title pull-left'><?php echo html::a($this->createLink('todo', 'view', 'todo=' . $todo->id), "TODO #{$todo->id} {$todo->name}");?></h4>
</div>
@@ -145,19 +140,5 @@
</div>
</form>
</div>
<script>
<?php if(isonlybody()):?>
$(function()
{
parent.$('.modal-header').hide();
parent.$('.modal-body').css('padding', '0px');
$('#closeModal').click(function()
{
parent.$('.modal-backdrop.in').remove();
parent.$('.modal.in').remove();
})
})
<?php endif;?>
</script>
<?php include './footer.html.php';?>
<script language='Javascript'>switchDateFeature(document.getElementById('dateSwitcher'));</script>