This commit is contained in:
zhujinyong
2021-12-03 10:01:17 +08:00
37 changed files with 119 additions and 126 deletions
+3
View File
@@ -36,6 +36,9 @@ class configEntry extends baseEntry
case 'timezone':
$config['value'] = $this->config->timezone;
break;
case 'systemMode':
$config['value'] = $this->config->systemMode;
break;
default:
$this->sendError(400, 'No configuration.');
return;
+5 -4
View File
@@ -21,10 +21,11 @@ class configsEntry extends baseEntry
{
$configs = array();
$configs[] = array('key' => 'language', 'value' => $this->config->default->lang);
$configs[] = array('key' => 'version', 'value' => $this->config->version);
$configs[] = array('key' => 'charset', 'value' => $this->config->charset);
$configs[] = array('key' => 'timezone', 'value' => $this->config->timezone);
$configs[] = array('key' => 'language', 'value' => $this->config->default->lang);
$configs[] = array('key' => 'version', 'value' => $this->config->version);
$configs[] = array('key' => 'charset', 'value' => $this->config->charset);
$configs[] = array('key' => 'timezone', 'value' => $this->config->timezone);
$configs[] = array('key' => 'systemMode', 'value' => $this->config->systemMode);
$this->send(200, $configs);
}
+2
View File
@@ -22,6 +22,8 @@ class programsEntry extends Entry
$_COOKIE['showClosed'] = $this->param('showClosed', 0);
$mergeChildren = $this->param('mergeChildren', 0);
$this->config->systemMode = 'new';
$fields = $this->param('fields', '');
if(stripos(strtolower(",{$fields},"), ",dropmenu,") !== false) return $this->getDropMenu();
+2
View File
@@ -26,6 +26,8 @@ class projectsEntry extends entry
$_COOKIE['involved'] = $this->param('involved', 0);
$this->config->systemMode = 'new';
if($programID)
{
$control = $this->loadController('program', 'project');
+1
View File
@@ -2118,6 +2118,7 @@ class baseRouter
$view->methodVar = $this->config->methodVar;
$view->viewVar = $this->config->viewVar;
$view->sessionVar = $this->config->sessionVar;
$view->systemMode = $this->config->systemMode;
$this->session->set('random', mt_rand(0, 10000));
$view->sessionName = session_name();
+1 -1
View File
@@ -153,7 +153,7 @@
foreach($modulePath as $key => $module)
{
$moduleTitle .= $module->name;
if(!common::printLink('bug', 'browse', "productID=$bug->product&branch=$module->branch&browseType=byModule&param=$module->id", $module->name)) echo $module->name;
if(!common::printLink('bug', 'browse', "productID=$bug->product&branch=$module->branch&browseType=byModule&param=$module->id", $module->name, '', "data-app='qa'")) echo $module->name;
if(isset($modulePath[$key + 1]))
{
$moduleTitle .= '/';
+4 -2
View File
@@ -848,7 +848,9 @@ class commonModel extends model
if(!isset($linkPart[2])) continue;
$method = $linkPart[2];
if($currentModule == 'report' and $method == 'annualData') continue; // Skip some pages that do not require permissions.
/* Skip some pages that do not require permissions.*/
if($currentModule == 'report' and $method == 'annualData') continue;
if($currentModule == 'my' and $currentMethod == 'team') continue;
if(common::hasPriv($currentModule, $method))
{
@@ -2161,7 +2163,7 @@ EOD;
$menu = isset($lang->navGroup->$module) ? $lang->navGroup->$module : $module;
$menu = strtolower($menu);
if($menu != 'qa' and !isset($lang->$menu->menu)) return true;
if($menu == 'my' or $menu == 'index' or $module == 'tree') return true;
if(($menu == 'my' && $method != 'team')or $menu == 'index' or $module == 'tree') return true;
if($module == 'company' and $method == 'dynamic') return true;
if($module == 'action' and $method == 'editcomment') return true;
if($module == 'action' and $method == 'comment') return true;
+1 -1
View File
@@ -22,7 +22,7 @@
#kanbanList .kanban-card {display: grid;}
#kanbanList .kanban-card > .title {white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
#kanbanList .kanban-card.has-progress {padding-right: 40px; position: relative;}
#kanbanList .kanban-card.has-progress > .progress-pie {position: absolute; right: 7px; top: 7px}
#kanbanList .kanban-card.has-progress > .progress-pie {position: absolute; right: 7px; top: 7px; width: 24px; height: 24px;}
#kanbanList .kanban-card.has-left-border {border-left: 2px solid #838a9d;}
#kanbanList .kanban-card.has-left-border.border-left-green {border-left-color: #0bd986;}
#kanbanList .kanban-card.has-left-border.border-left-red {border-left-color: #ff5d5d;}
+1
View File
@@ -5,3 +5,4 @@
#kanbanList .kanban-col[data-type="project"] .kanban-lane-items {height: 100%; display: flex; flex-direction: column; justify-content: center;}
#kanbanList .kanban-lane-name > .text {display: none;}
#kanbanList .kanban-item.link-block > a {cursor: move;}
#kanbanList .kanban-lane + .kanban-lane {margin-top: 2px!important;}
+1 -1
View File
@@ -32,7 +32,7 @@
#kanbanContainer {margin: 0;}
#kanbanContainer > .panel-body {overflow: auto;}
#kanbans .kanban {min-height: initial;}
#kanbans .kanban-lane {min-height: 150px;}
#kanbans .kanban-lane {min-height: 150px; margin-top: 2px;}
#kanbans .kanban-affixed > .kanban-header {top: 100px;}
#kanbans .kanban-card[data-scale-size="4"] {padding: 8px;}
#kanbans .kanban-card[data-scale-size="3"] {padding: 3px 4px;}
+2 -2
View File
@@ -159,13 +159,13 @@ $(function()
{
data: processKanbanData(),
laneNameWidth: 5,
virtualize: true,
droppable:
{
selector: '.kanban-item:not(.kanban-item-span)',
target: findDropColumns,
finish: handleFinishDrop,
mouseButton: 'left'
},
virtualize: true
}
});
});
+1 -1
View File
@@ -880,7 +880,7 @@ $(function()
var menuCreator = window.menuCreators[menuType];
if(!menuCreator) return;
var options = $.extend({event, $trigger: $trigger}, $trigger.data());
var options = $.extend({event: event, $trigger: $trigger}, $trigger.data());
var items = menuCreator(options);
if(!items || !items.length) return;
+1 -1
View File
@@ -73,7 +73,7 @@ class executionModel extends model
/* Unset story, bug, build and testtask if type is ops. */
$execution = $this->getByID($executionID);
if($execution and $execution->type == 'stage')
if($execution and $execution->type == 'stage' and $this->config->systemMode == 'new')
{
global $lang;
$this->app->loadLang('project');
@@ -15,6 +15,8 @@
<th><?php echo $lang->gitlab->group->memberAccessLevel;?></th>
<th class='c-date'><?php echo $lang->gitlab->group->memberExpiresAt;?></th>
<th class="c-actions"><?php echo $lang->actions;?></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
-1
View File
@@ -81,7 +81,6 @@ $lang->mr->sourceBranch = 'Source branch';
$lang->mr->targetProject = 'Target project';
$lang->mr->targetBranch = 'Target branch';
$lang->mr->usersTips = 'Tip: If you cannot choose the assignee, please go to the GitLab page to bind the user first.';
$lang->mr->notFound = "Merge Request does not exist!";
$lang->mr->toCreatedMessage = "The merge request you submitted:<a href='%s'>%s</a>, the build task succeeded.";
$lang->mr->toReviewerMessage = "You have one merge request <a href='%s'>%s</a> waiting.";
+2 -3
View File
@@ -63,8 +63,8 @@ $lang->mr->approvalStatusList['approved'] = '已通过';
$lang->mr->approvalStatusList['rejected'] = '已拒绝';
$lang->mr->notApproved = '审核拒绝的';
$lang->mr->assignedToMe = '指派给我的';
$lang->mr->createdByMe = '我创建的';
$lang->mr->assignedToMe = '指派给我';
$lang->mr->createdByMe = '由我创建';
$lang->mr->statusList = array();
$lang->mr->statusList['all'] = '所有';
@@ -86,7 +86,6 @@ $lang->mr->targetBranch = '目标分支';
$lang->mr->noCompileJob = '没有构建任务';
$lang->mr->compileUnexecuted = '还未执行';
$lang->mr->usersTips = '提示:如果无法选择指派人,请先前往GitLab页面绑定用户。';
$lang->mr->notFound = "此{$lang->mr->common}不存在。";
$lang->mr->toCreatedMessage = "您提交的合并请求:<a href='%s'>%s</a> 构建任务执行通过。";
$lang->mr->toReviewerMessage = "有一个合并请求:<a href='%s'>%s</a> 待审核。";
+1 -2
View File
@@ -68,8 +68,7 @@ $lang->mr->sourceBranch = '源分支';
$lang->mr->targetProject = '目標項目';
$lang->mr->targetBranch = '目標分支';
$lang->mr->usersTips = '提示:如果無法選擇指派人,請先前往GitLab頁面綁定用戶。';
$lang->mr->notFound = "此{$lang->mr->common}不存在。";
$lang->mr->notFound = "此{$lang->mr->common}不存在。";
$lang->mr->apiError = new stdclass;
$lang->mr->apiError->createMR = "通過API創建合併請求失敗,失敗原因:%s";
-4
View File
@@ -72,10 +72,6 @@
<th><?php echo $lang->mr->assignee;?></th>
<td><?php echo html::select('assignee', $users, '', "class='form-control chosen'");?></td>
</tr>
<tr>
<th></th>
<td><?php echo $lang->mr->usersTips;?></td>
</tr>
<tr>
<td colspan='2' class='text-center form-actions'>
<?php echo html::submitButton();?>
-4
View File
@@ -87,10 +87,6 @@
<th><?php echo $lang->mr->assignee;?></th>
<td><?php echo html::select('assignee', $users, $assignee, "class='form-control chosen'");?></td>
</tr>
<tr>
<th></th>
<td><?php echo $lang->mr->usersTips;?></td>
</tr>
<tr>
<td colspan='2' class='text-center form-actions'>
<?php echo html::submitButton();?>
+1 -1
View File
@@ -364,7 +364,7 @@ class my extends control
$sort = $this->loadModel('common')->appendOrder($orderBy);
$bugs = $this->loadModel('bug')->getUserBugs($this->app->user->account, $type, $sort, 0, $pager);
$bugs = $this->bug->checkDelayedBugs($bugs);
$this->loadModel('common')->saveQueryCondition($this->dao->get(), 'myBug');
$this->loadModel('common')->saveQueryCondition($this->dao->get(), 'bug', false);
/* assign. */
$this->view->title = $this->lang->my->common . $this->lang->colon . $this->lang->my->bug;
+2 -1
View File
@@ -161,6 +161,7 @@ class productModel extends model
if($this->cookie->preProductID != $this->session->product)
{
$this->cookie->set('preBranch', 0);
setcookie('preBranch', 0, $this->config->cookieLife, $this->config->webRoot, '', $this->config->cookieSecure, true);
}
return $this->session->product;
@@ -1026,7 +1027,7 @@ class productModel extends model
->orWhere('t2.PM')->eq($this->app->user->account)
->markRight(1)
->fi()
->beginIF($branch)->andWhere('t1.branch')->in($branch)->fi()
->beginIF($branch !== '' and $branch !== 'all')->andWhere('t1.branch')->in($branch)->fi()
->andWhere('t2.deleted')->eq('0')
->orderBy($orderBy)
->fetchAll('id');
+13 -1
View File
@@ -115,6 +115,13 @@ function processKanbanData(key, programsData)
return {id: kanbanId, columns: columns, lanes: lanes};
}
/** Calculate column height */
function calcColHeight(col, lane, colCards, colHeight)
{
if (col.type !== 'doingProject') return colHeight;
return colCards.length * 62;
}
$(function()
{
/* Init all kanbans */
@@ -122,6 +129,11 @@ $(function()
{
var $kanban = $('#kanban-' + key);
if(!$kanban.length) return;
$kanban.kanban({data: processKanbanData(key, programsData), virtualize: true});
$kanban.kanban(
{
data: processKanbanData(key, programsData),
virtualize: true,
calcColHeight: calcColHeight
});
});
});
+1
View File
@@ -18,6 +18,7 @@
<div id="mainMenu" class="clearfix">
<div class="btn-toolbar pull-left">
<?php
$productID = $productID == 0 ? key($this->product->getProductPairsByProject($project->id)) : $productID;
$buildName = $build ? " <span class='label label-danger'>Build:{$build->name}</span>" : '';
echo html::a($this->inlink('bug', "projectID={$project->id}&productID={$productID}&orderBy=status,id_desc&build=$buildID&type=all"), "<span class='text'>{$lang->bug->allBugs}</span>" . ($type == 'all' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>$buildName" : ''), '', "id='allTab' class='btn btn-link" . ('all' == $type ? ' btn-active-text' : '') . "'");
echo html::a($this->inlink('bug', "projectID={$project->id}&productID={$productID}&orderBy=status,id_desc&build=$buildID&type=unresolved"), "<span class='text'>{$lang->bug->unResolved}</span>" . ($type == 'unresolved' ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>$buildName" : ''), '', "id='unresolvedTab' class='btn btn-link" . ('unresolved' == $type ? ' btn-active-text' : '') . "'");
+4 -1
View File
@@ -32,7 +32,10 @@ class qaModel extends model
$branch = ($this->cookie->preBranch !== '' and $branch === '') ? $this->cookie->preBranch : $branch;
setcookie('preBranch', $branch, $this->config->cookieLife, $this->config->webRoot, '', $this->config->cookieSecure, true);
if(!in_array($this->app->rawModule, $this->config->qa->noDropMenuModule)) $this->lang->switcherMenu = $this->loadModel('product')->getSwitcher($productID, $extra, $branch);
$product = $this->loadModel('product')->getById($productID);
if($product->type != 'normal') $this->lang->product->branch = sprintf($this->lang->product->branch, $this->lang->product->branchName[$product->type]);
if(!in_array($this->app->rawModule, $this->config->qa->noDropMenuModule)) $this->lang->switcherMenu = $this->product->getSwitcher($productID, $extra, $branch);
if($this->app->rawModule == 'product' and $this->app->rawMethod == 'showerrornone') $this->lang->switcherMenu = '';
common::setMenuVars('qa', $productID);
}
+1
View File
@@ -1854,6 +1854,7 @@ class repoModel extends model
public function syncCommit($repoID, $branchID)
{
$repo = $this->getRepoByID($repoID);
$this->scm = $this->app->loadClass('scm');
$this->scm->setEngine($repo);
$latestInDB = $this->dao->select('DISTINCT t1.*')->from(TABLE_REPOHISTORY)->alias('t1')
+6 -3
View File
@@ -45,10 +45,13 @@ function loadProduct(productID)
*/
function loadBranch()
{
var branch = $('#branch').val();
var branch = $('#branch').val();
var productID = $('#product').val();
if(typeof(branch) == 'undefined') branch = 0;
loadProductModules($('#product').val(), branch);
loadProductPlans($('#product').val(), branch);
if(typeof(productID) == 'undefined' && config.currentMethod == 'edit') productID = oldProductID;
loadProductModules(productID, branch);
loadProductPlans(productID, branch);
}
/**
+4 -3
View File
@@ -1778,7 +1778,7 @@ class testcase extends control
$this->view->productID = $productID;
$this->view->branch = $branch;
$this->view->cases = $this->loadModel('testsuite')->getNotImportedCases($productID, $libID, $orderBy, $pager, $browseType, $queryID);
$this->view->modules = $this->loadModel('tree')->getOptionMenu($productID, 'case', 0, $branch);
$this->view->modules = $this->loadModel('tree')->getOptionMenu($productID, 'case', 0, $branch === 'all' ? 0 : (int)$branch);
$this->view->libModules = $this->tree->getOptionMenu($libID, 'caselib');
$this->view->pager = $pager;
$this->view->orderBy = $orderBy;
@@ -1839,7 +1839,8 @@ class testcase extends control
$caseLang = $this->lang->testcase;
$caseConfig = $this->config->testcase;
$modules = $this->loadModel('tree')->getOptionMenu($productID, 'case', 0, $branch);
$branches = $this->loadModel('branch')->getPairs($productID);
$modules = $this->loadModel('tree')->getOptionMenu($productID, 'case', 0, empty(array_keys($branches)) ? 0 : array_keys($branches));
$stories = $this->loadModel('story')->getProductStoryPairs($productID, $branch);
$fields = $this->testcase->getImportFields($productID);
$fields = array_flip($fields);
@@ -2020,7 +2021,7 @@ class testcase extends control
$this->view->caseData = $caseData;
$this->view->stepData = $stepData;
$this->view->productID = $productID;
$this->view->branches = $this->loadModel('branch')->getPairs($productID);
$this->view->branches = $branches;
$this->view->isEndPage = $pagerID >= $allPager;
$this->view->allCount = $allCount;
$this->view->allPager = $allPager;
+2 -1
View File
@@ -81,7 +81,8 @@ $(function()
</td>
<td><?php echo html::input("title[$key]", htmlSpecialString($case->title, ENT_QUOTES), "class='form-control'")?></td>
<td style='overflow:visible'>
<?php echo html::select("module[$key]", $modules, isset($case->module) ? $case->module : ((!empty($case->id) and isset($cases[$case->id])) ? $cases[$case->id]->module : ''), "class='form-control chosen moduleChange'")?>
<?php $caseModules = (isset($case->branch) and $case->branch != 0) ? $modules[BRANCH_MAIN] + $modules[$case->branch] : $modules;?>
<?php echo html::select("module[$key]", $caseModules, isset($case->module) ? $case->module : ((!empty($case->id) and isset($cases[$case->id])) ? $cases[$case->id]->module : ''), "class='form-control chosen moduleChange'")?>
</td>
<td style='overflow:visible'>
<?php $storyID = isset($case->story) ? $case->story : ((!empty($case->id) and isset($cases[$case->id])) ? $cases[$case->id]->story : '');?>
+38 -1
View File
@@ -341,7 +341,7 @@ class upgrade extends control
/* When upgrading historical data as a project, handle products that are not linked with the project. */
if(!empty($singleProducts)) $this->upgrade->computeProductAcl($singleProducts, $programID);
}
elseif($type == 'sprint' or $type == 'moreLink')
elseif($type == 'sprint')
{
$linkedSprints = $this->post->sprints;
@@ -363,6 +363,43 @@ class upgrade extends control
}
}
}
elseif($type == 'moreLink')
{
$linkedSprints = $this->post->sprints;
/* Create Program. */
list($programID, $projectList, $lineID) = $this->upgrade->createProgram(array(), $linkedSprints);
if(dao::isError()) die(js::error(dao::getError()));
if($_POST['projectType'] == 'execution')
{
/* Use historical projects as execution upgrades. */
$this->upgrade->processMergedData($programID, $projectList, $lineID, array(), $linkedSprints);
}
else
{
/* Use historical projects as project upgrades. */
foreach($linkedSprints as $sprint)
{
$this->upgrade->processMergedData($programID, $projectList[$sprint], $lineID, array(), array($sprint => $sprint));
}
/* If is more-link sprints, and as project upgrade, set old relation into new project. */
$projectProducts = $this->dao->select('product,project,branch,plan')->from(TABLE_PROJECTPRODUCT)
->where('project')->in($linkedSprints)
->fetchAll();
foreach($projectProducts as $projectProduct)
{
$data = new stdclass();
$data->project = $projectList[$projectProduct->project];
$data->product = $projectProduct->product;
$data->plan = $projectProduct->plan;
$data->branch = $projectProduct->branch;
$this->dao->replace(TABLE_PROJECTPRODUCT)->data($data)->exec();
}
}
}
die(js::locate($this->createLink('upgrade', 'mergeProgram', "type=$type&programID=$programID&projectType=$projectType"), 'parent'));
}
-4
View File
@@ -35,10 +35,6 @@ div.divider {vertical-align: middle;}
.programParams td > label:first-child {margin-right: 10px;}
.programParams td > label:last-child {margin-left: 0px;}
.lineGroup .sprintRename input {max-width: 120px;}
.projectList .scroll-handle .checkbox-primary {display: inline-block;}
.sprintRename {margin-top: 5px;}
.sprintRename input {display: inline-block; width: auto;}
.sprintRename .btn-group {display: inline-block;}
.sprintGroup .sprintItem .checkbox-primary {display: inline-block;}
-42
View File
@@ -1150,45 +1150,3 @@ function isSelectAll(lineID = 0, type = 'product')
if(objectNum > checkedObjectNum || objectNum == 0) checked = false;
return checked;
}
$(function()
{
$('.sprintItem').mouseover(function()
{
$(this).find('#sprintEdit').removeClass('hidden');
}).mouseout(function()
{
$(this).find('#sprintEdit').addClass('hidden');
})
$(document).on('click', '#sprintEdit i', function()
{
$(this).parents('.sprintItem').addClass('hidden');
$(this).parents('.sprintItem').next('.sprintRename').removeClass('hidden');
})
$('.sprintRename button.name-confirm').click(function()
{
var execution = $(this).parent().siblings('input').attr('name').split('_');
var newExecutionName = $(this).parent().siblings('input').val();
var link = createLink('execution', 'ajaxUpdateExecutionName', 'executionID=' + execution[1] + '&newExecutionName=' + newExecutionName);
var $this = $(this);
$.post(link, function(data)
{
if(data)
{
$this.closest('.sprintRename').addClass('hidden');
$this.closest('.sprintRename').prev('.sprintItem').removeClass('hidden').find('.checkbox-primary label').text(newExecutionName);
}
})
})
$('.sprintRename button.name-cancel').click(function()
{
var oldValue = $(this).closest('.sprintRename').prev('.sprintItem').find('.checkbox-primary label').text();
$(this).closest('.sprintRename').addClass('hidden');
$(this).closest('.sprintRename').prev('.sprintItem').removeClass('hidden');
$(this).parent().siblings('input').val(oldValue);
})
})
+4 -12
View File
@@ -50,22 +50,14 @@
</div>
<div class='projectList'>
<div class='scroll-handle'>
<?php if(isset($productGroups[$productID])):?>
<?php foreach($productGroups[$productID] as $sprint):?>
<?php if(isset($productGroups[$productID])):?>
<?php foreach($productGroups[$productID] as $sprint):?>
<div class="sprintItem">
<?php echo html::checkBox("sprints[$line->id][$productID]", array($sprint->id => $sprint->name), '', "title='{$sprint->name}' data-product='{$product->id}' data-line='{$line->id}' data-begin='{$sprint->begin}' data-end='{$sprint->end}' data-status='{$sprint->status}' data-pm='{$sprint->PM}' class='tile'");?>
<?php echo html::hidden("sprintIdList[$line->id][$productID][$sprint->id]", $sprint->id);?>
<a href='#' id='sprintEdit' class='hidden'><i class="icon-common-edit icon-edit muted"></i></a>
</div>
<div class="sprintRename hidden">
<?php echo html::input("sprintRename_$sprint->id", $sprint->name, "class='form-control'");?>
<div class="btn-group">
<button type="button" class="btn btn-success name-confirm"><i class='icon icon-check'></i></button>
<button type="button" class="btn btn-gray name-cancel"><i class='icon icon-close'></i></button>
</div>
</div>
<?php endforeach;?>
<?php endif;?>
<?php endforeach;?>
<?php endif;?>
</div>
</div>
</div>
+4 -12
View File
@@ -27,22 +27,14 @@
</div>
<div class='projectList'>
<div class='scroll-handle'>
<?php if(isset($productGroups[$productID])):?>
<?php foreach($productGroups[$productID] as $sprint):?>
<?php if(isset($productGroups[$productID])):?>
<?php foreach($productGroups[$productID] as $sprint):?>
<div class="sprintItem">
<?php echo html::checkBox("sprints[$productID]", array($sprint->id => $sprint->name), '', "data-product='{$productID}' data-begin='{$sprint->begin}' data-end='{$sprint->end}' data-status='{$sprint->status}' data-pm='{$sprint->PM}'");?>
<?php echo html::hidden("sprintIdList[$productID][$sprint->id]", $sprint->id);?>
<a href='#' id='sprintEdit' class='hidden'><i class="icon-common-edit icon-edit muted"></i></a>
</div>
<div class="sprintRename hidden">
<?php echo html::input("sprintRename_$sprint->id", $sprint->name, "class='form-control'");?>
<div class="btn-group">
<button type="button" class="btn btn-success name-confirm"><i class='icon icon-check'></i></button>
<button type="button" class="btn btn-gray name-cancel"><i class='icon icon-close'></i></button>
</div>
</div>
<?php endforeach;?>
<?php endif;?>
<?php endforeach;?>
<?php endif;?>
</div>
</div>
</div>
@@ -17,14 +17,6 @@
<?php foreach($noMergedSprints as $sprintID => $sprint):?>
<div class="sprintItem">
<?php echo html::checkBox("sprints", array($sprint->id => $sprint->name), '', "data-begin='{$sprint->begin}' data-end='{$sprint->end}' data-status='{$sprint->status}' data-pm='{$sprint->PM}'");?>
<a href='#' id='sprintEdit' class='hidden'><i class="icon-common-edit icon-edit muted"></i></a>
</div>
<div class="sprintRename hidden">
<?php echo html::input("sprintRename_$sprint->id", $sprint->name, "class='form-control'");?>
<div class="btn-group">
<button type="button" class="btn btn-success name-confirm"><i class='icon icon-check'></i></button>
<button type="button" class="btn btn-gray name-cancel"><i class='icon icon-close'></i></button>
</div>
</div>
<?php endforeach;?>
</div>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+5 -5
View File
File diff suppressed because one or more lines are too long