* Finish story#31282, story#31284.
This commit is contained in:
@@ -22,6 +22,8 @@ ALTER TABLE `zt_story` ADD `vision` varchar(10) NOT NULL DEFAULT 'rnd' AFTER `id
|
||||
ALTER TABLE `zt_story` ADD `activatedDate` datetime NOT NULL AFTER `closedReason`;
|
||||
ALTER TABLE `zt_task` MODIFY `activatedDate` datetime NOT NULL AFTER `lastEditedDate`;
|
||||
|
||||
ALTER TABLE `zt_kanbancard` ADD `progress` float unsigned NOT NULL DEFAULT '0' AFTER `estimate`;
|
||||
|
||||
ALTER TABLE `zt_user` ADD `visions` varchar(20) NOT NULL AFTER `visits`;
|
||||
UPDATE `zt_user` SET `visions`='rnd,lite';
|
||||
|
||||
|
||||
+7
-6
@@ -731,6 +731,7 @@ CREATE TABLE `zt_kanbancard` (
|
||||
`begin` date NOT NULL,
|
||||
`end` date NOT NULL,
|
||||
`estimate` float unsigned NOT NULL,
|
||||
`progress` float unsigned NOT NULL DEFAULT '0',
|
||||
`color` char(7) NOT NULL,
|
||||
`acl` char(30) NOT NULL DEFAULT 'open',
|
||||
`whitelist` text NOT NULL,
|
||||
@@ -8584,8 +8585,8 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
-- DROP TABLE IF EXISTS `zt_workflow`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_workflow` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`parent` varchar(30) NOT NULL,
|
||||
`child` varchar(30) NOT NULL,
|
||||
`parent` varchar(30) NOT NULL,
|
||||
`child` varchar(30) NOT NULL,
|
||||
`type` varchar(10) NOT NULL DEFAULT 'flow',
|
||||
`app` varchar(20) NOT NULL,
|
||||
`position` varchar(30) NOT NULL,
|
||||
@@ -8659,7 +8660,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowdatasource` (
|
||||
`type` enum('system', 'sql', 'func', 'option', 'lang', 'category') NOT NULL DEFAULT 'option',
|
||||
`name` varchar(30) NOT NULL,
|
||||
`code` varchar(30) NOT NULL,
|
||||
`datasource` text NOT NULL,
|
||||
`datasource` text NOT NULL,
|
||||
`view` varchar(20) NOT NULL,
|
||||
`keyField` varchar(50) NOT NULL,
|
||||
`valueField` varchar(50) NOT NULL,
|
||||
@@ -8687,7 +8688,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowfield` (
|
||||
`rules` varchar(255) NOT NULL,
|
||||
`placeholder` varchar(100) NOT NULL,
|
||||
`order` smallint(5) unsigned NOT NULL,
|
||||
`searchOrder` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`searchOrder` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`exportOrder` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`canExport` enum('0', '1') NOT NULL DEFAULT '0',
|
||||
`canSearch` enum('0', '1') NOT NULL DEFAULT '0',
|
||||
@@ -8760,7 +8761,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowlinkdata` (
|
||||
-- DROP TABLE IF EXISTS `zt_workflowrelation`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_workflowrelation` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`prev` varchar(30) NOT NULL,
|
||||
`prev` varchar(30) NOT NULL,
|
||||
`next` varchar(30) NOT NULL,
|
||||
`field` varchar(50) NOT NULL,
|
||||
`actions` varchar(20) NOT NULL,
|
||||
@@ -8792,7 +8793,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowrule` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`type` enum('system', 'regex', 'func') NOT NULL DEFAULT 'regex',
|
||||
`name` varchar(30) NOT NULL,
|
||||
`rule` text NOT NULL,
|
||||
`rule` text NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`editedBy` char(30) NOT NULL,
|
||||
|
||||
@@ -34,15 +34,16 @@ $config->kanban->editregion->requiredFields = 'name';
|
||||
$config->kanban->splitcolumn->requiredFields = 'name,limit';
|
||||
|
||||
$config->kanban->editor = new stdclass();
|
||||
$config->kanban->editor->create = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->edit = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->createspace = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->editspace = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->closespace = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->createcard = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->close = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->editcard = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->viewcard = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->create = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->edit = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->createspace = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->editspace = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->closespace = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->createcard = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->close = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->editcard = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->viewcard = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->kanban->editor->activatecard = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
|
||||
$config->kanban->fromType = array('execution', 'productplan', 'release', 'build');
|
||||
$config->kanban->executionField = array('name', 'status', 'end', 'PM', 'type', 'deleted');
|
||||
|
||||
+16
-12
@@ -888,7 +888,7 @@ class kanban extends control
|
||||
$this->loadModel('action');
|
||||
|
||||
$oldCard = $this->kanban->getCardByID($cardID);
|
||||
$this->dao->update(TABLE_KANBANCARD)->set('status')->eq('done')->where('id')->eq($cardID)->exec();
|
||||
$this->dao->update(TABLE_KANBANCARD)->set('progress')->eq(100)->set('status')->eq('done')->where('id')->eq($cardID)->exec();
|
||||
$card = $this->kanban->getCardByID($cardID);
|
||||
|
||||
$changes = common::createChanges($oldCard, $card);
|
||||
@@ -915,22 +915,26 @@ class kanban extends control
|
||||
public function activateCard($cardID, $kanbanID)
|
||||
{
|
||||
$this->loadModel('action');
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$oldCard = $this->kanban->getCardByID($cardID);
|
||||
$this->kanban->activateCard($cardID);
|
||||
$card = $this->kanban->getCardByID($cardID);
|
||||
|
||||
$oldCard = $this->kanban->getCardByID($cardID);
|
||||
$this->dao->update(TABLE_KANBANCARD)->set('status')->eq('doing')->where('id')->eq($cardID)->exec();
|
||||
$card = $this->kanban->getCardByID($cardID);
|
||||
$changes = common::createChanges($oldCard, $card);
|
||||
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
|
||||
$changes = common::createChanges($oldCard, $card);
|
||||
$actionID = $this->action->create('kanbanCard', $cardID, 'activated');
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
|
||||
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'parent'));
|
||||
}
|
||||
|
||||
$actionID = $this->action->create('kanbanCard', $cardID, 'activated');
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
$this->view->card = $this->kanban->getCardByID($cardID);
|
||||
$this->view->actions = $this->action->getList('kanbancard', $cardID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted');
|
||||
|
||||
if(isonlybody()) return print(js::reload('parent.parent'));
|
||||
|
||||
$kanbanGroup = $this->kanban->getKanbanData($kanbanID);
|
||||
return print(json_encode($kanbanGroup));
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1 +1 @@
|
||||
#c-done {width: 110px;}
|
||||
#c-title {width: 130px;}
|
||||
|
||||
@@ -118,6 +118,10 @@
|
||||
.kanban-card .label-finish {margin-right: 7px; margin-top: -1px; padding: 3px 5px; float: left; background-color:#2a5f29;}
|
||||
.kanban-card .releaseTitle, .kanban-card .productplanTitle {width: 100%; float: left;}
|
||||
|
||||
.progress-box {display: flex; flex-direction: row; margin-top: 10px;}
|
||||
.progress {flex: auto; margin: 5px auto 5px;}
|
||||
.progress-number {padding-left: 5px;}
|
||||
|
||||
@-moz-document url-prefix(){ .region .kanban-lane-items{scrollbar-width:thin; padding:5px 0px 5px 5px !important;} .region .kanban-card .info .user{right: -6px !important;}}
|
||||
#archivedCards .table-empty-tip {border-style: hidden;}
|
||||
#archivedColumns .table-empty-tip {border-style: hidden;}
|
||||
|
||||
+11
-26
@@ -357,6 +357,11 @@ function renderKanbanItem(item, $item)
|
||||
'<div class="user"></div>',
|
||||
'</div>'
|
||||
].join('')).appendTo($item);
|
||||
if(kanban.performable == 1)
|
||||
{
|
||||
var $progress = $item.children('.progress-box');
|
||||
if(!$progress.length) $progress = $('<div class="progress-box"><div class="progress"><div class="progress-bar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: ' + item.progress + '%;"></div></div><div class="progress-number">' + item.progress + '%</div></div>').appendTo($item);
|
||||
}
|
||||
|
||||
$item.data('card', item);
|
||||
|
||||
@@ -366,6 +371,11 @@ function renderKanbanItem(item, $item)
|
||||
$info.children('.pri')
|
||||
.attr('class', 'pri label-pri label-pri-' + item.pri)
|
||||
.text(item.pri);
|
||||
if(kanban.performable == 1)
|
||||
{
|
||||
$progress.find('.progress-bar').css('width', item.progress + '%');
|
||||
$progress.find('.progress-number').html(item.progress + '%');
|
||||
}
|
||||
|
||||
$item.css('background-color', item.color);
|
||||
$item.toggleClass('has-color', item.color != '#fff' && item.color != '');
|
||||
@@ -808,31 +818,6 @@ function finishCard(cardID, kanbanID, regionID)
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Activate a card.
|
||||
*
|
||||
* @param int $cardID
|
||||
* @param int $kanbanID
|
||||
* @param int $regionID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function activateCard(cardID, kanbanID, regionID)
|
||||
{
|
||||
if(!cardID) return false;
|
||||
var url = createLink('kanban', 'activateCard', 'cardID=' + cardID + '&kanbanID=' + kanbanID);
|
||||
return $.ajax(
|
||||
{
|
||||
method: 'post',
|
||||
dataType: 'json',
|
||||
url: url,
|
||||
success: function(data)
|
||||
{
|
||||
updateRegion(regionID, data[regionID]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a region.
|
||||
*
|
||||
@@ -1091,7 +1076,7 @@ function createCardMenu(options)
|
||||
{
|
||||
if(card.status == 'done')
|
||||
{
|
||||
items.push({label: kanbanLang.activateCard, icon: 'magic', onClick: function(){activateCard(card.id, card.kanban, card.region);}});
|
||||
items.push({label: kanbanLang.activateCard, icon: 'magic', url: createLink('kanban', 'activateCard', 'cardID=' + card.id + '&kanbanID=' + card.kanban, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}});
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -44,8 +44,8 @@ $lang->kanban->assigntoCard = 'Assign';
|
||||
$lang->kanban->setting = 'Setting';
|
||||
$lang->kanban->enableArchived = 'Enable Archived';
|
||||
$lang->kanban->archive = 'Archive';
|
||||
$lang->kanban->performable = 'Set done function';
|
||||
$lang->kanban->doneFunction = 'Done function';
|
||||
$lang->kanban->performable = 'Set progress management';
|
||||
$lang->kanban->manageProgress = 'Manage Progress';
|
||||
$lang->kanban->splitColumn = 'Split Column';
|
||||
$lang->kanban->createColumnOnLeft = 'Create Column On Left';
|
||||
$lang->kanban->createColumnOnRight = 'Create Column On Right';
|
||||
@@ -120,8 +120,8 @@ $lang->kanban->aclList['private'] = 'Private (For the kanban team, whitelist mem
|
||||
$lang->kanban->archiveList['0'] = 'Disable';
|
||||
$lang->kanban->archiveList['1'] = 'Enable';
|
||||
|
||||
$lang->kanban->enableFinished['0'] = 'Disable';
|
||||
$lang->kanban->enableFinished['1'] = 'Enable';
|
||||
$lang->kanban->enableList['0'] = 'Disable';
|
||||
$lang->kanban->enableList['1'] = 'Enable';
|
||||
|
||||
$lang->kanban->type = array();
|
||||
$lang->kanban->type['all'] = "All KanBan";
|
||||
@@ -184,9 +184,9 @@ $lang->kanban->my = 'My';
|
||||
$lang->kanban->other = 'Other';
|
||||
|
||||
$lang->kanban->error = new stdclass();
|
||||
$lang->kanban->error->mustBeInt = 'The WIPs must be positive integer.';
|
||||
$lang->kanban->error->parentLimitNote = 'The WIPs in the parent column cannot be < the sum of the WIPs in the child column.';
|
||||
$lang->kanban->error->childLimitNote = 'The sum of products in the child column cannot be > the number of products in the parent column.';
|
||||
$lang->kanban->error->mustBeInt = 'The WIPs must be positive integer.';
|
||||
$lang->kanban->error->parentLimitNote = 'The WIPs in the parent column cannot be < the sum of the WIPs in the child column.';
|
||||
$lang->kanban->error->childLimitNote = 'The sum of products in the child column cannot be > the number of products in the parent column.';
|
||||
$lang->kanban->error->importObjNotEmpty = 'Please select at least one import object.';
|
||||
|
||||
$lang->kanban->importList = array();
|
||||
@@ -340,6 +340,7 @@ $lang->kanbancard->beginAndEnd = 'Begin & End';
|
||||
$lang->kanbancard->begin = 'Begin';
|
||||
$lang->kanbancard->end = 'End';
|
||||
$lang->kanbancard->pri = 'Priority';
|
||||
$lang->kanbancard->progress = 'Progress';
|
||||
$lang->kanbancard->desc = 'Description';
|
||||
$lang->kanbancard->estimate = 'Estimate';
|
||||
$lang->kanbancard->createdBy = 'Created By';
|
||||
@@ -373,5 +374,6 @@ $lang->kanbancard->colorList['#cfa227'] = 'Warning';
|
||||
$lang->kanbancard->colorList['#2a5f29'] = 'Urgent';
|
||||
|
||||
$lang->kanbancard->error = new stdClass();
|
||||
$lang->kanbancard->error->recordMinus = 'Estimate cannot be negative!';
|
||||
$lang->kanbancard->error->endSmall = '"End Date" cannot be less than "Begin Date"';
|
||||
$lang->kanbancard->error->recordMinus = 'Estimate cannot be negative!';
|
||||
$lang->kanbancard->error->endSmall = '"End Date" cannot be less than "Begin Date"';
|
||||
$lang->kanbancard->error->progressIllegal = 'Please input correct progress.';
|
||||
|
||||
@@ -44,8 +44,8 @@ $lang->kanban->assigntoCard = '指派';
|
||||
$lang->kanban->setting = '设置';
|
||||
$lang->kanban->enableArchived = '设置归档功能';
|
||||
$lang->kanban->archive = '归档功能';
|
||||
$lang->kanban->performable = '设置完成功能';
|
||||
$lang->kanban->doneFunction = '完成功能';
|
||||
$lang->kanban->performable = '设置进度管理';
|
||||
$lang->kanban->manageProgress = '进度管理';
|
||||
$lang->kanban->splitColumn = '新增子看板列';
|
||||
$lang->kanban->createColumnOnLeft = '左侧新增看板列';
|
||||
$lang->kanban->createColumnOnRight = '右侧新增看板列';
|
||||
@@ -120,8 +120,8 @@ $lang->kanban->aclList['private'] = '私有(看板团队成员、白名单、
|
||||
$lang->kanban->archiveList['0'] = '不启用';
|
||||
$lang->kanban->archiveList['1'] = '启用';
|
||||
|
||||
$lang->kanban->enableFinished['0'] = '不启用';
|
||||
$lang->kanban->enableFinished['1'] = '启用';
|
||||
$lang->kanban->enableList['0'] = '不启用';
|
||||
$lang->kanban->enableList['1'] = '启用';
|
||||
|
||||
$lang->kanban->type = array();
|
||||
$lang->kanban->type['all'] = "综合看板";
|
||||
@@ -340,6 +340,7 @@ $lang->kanbancard->beginAndEnd = '起止日期';
|
||||
$lang->kanbancard->begin = '预计开始';
|
||||
$lang->kanbancard->end = '截止日期';
|
||||
$lang->kanbancard->pri = '优先级';
|
||||
$lang->kanbancard->progress = '进度';
|
||||
$lang->kanbancard->desc = '描述';
|
||||
$lang->kanbancard->estimate = '预计';
|
||||
$lang->kanbancard->createdBy = '由谁创建';
|
||||
@@ -373,5 +374,6 @@ $lang->kanbancard->colorList['#cfa227'] = '警告';
|
||||
$lang->kanbancard->colorList['#2a5f29'] = '加急';
|
||||
|
||||
$lang->kanbancard->error = new stdClass();
|
||||
$lang->kanbancard->error->recordMinus = '预计不能为负数!';
|
||||
$lang->kanbancard->error->endSmall = '"截止日期"不能小于"预计开始"!';
|
||||
$lang->kanbancard->error->recordMinus = '预计不能为负数!';
|
||||
$lang->kanbancard->error->endSmall = '"截止日期"不能小于"预计开始"!';
|
||||
$lang->kanbancard->error->progressIllegal = '请输入正确的进度';
|
||||
|
||||
+23
-1
@@ -2661,6 +2661,22 @@ class kanbanModel extends model
|
||||
->andWhere('groupby')->eq('')
|
||||
->exec();
|
||||
}
|
||||
/**
|
||||
* Activate a card.
|
||||
*
|
||||
* @param int $cardID
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function activateCard($cardID)
|
||||
{
|
||||
if($this->post->progress > 100 or $this->post->progress < 0)
|
||||
{
|
||||
dao::$errors[] = $this->lang->kanbancard->error->progressIllegal;
|
||||
return false;
|
||||
}
|
||||
$this->dao->update(TABLE_KANBANCARD)->set('progress')->eq($this->post->progress)->set('status')->eq('doing')->where('id')->eq($cardID)->exec();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a card.
|
||||
@@ -2683,6 +2699,12 @@ class kanbanModel extends model
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->post->progress > 100 or $this->post->progress < 0)
|
||||
{
|
||||
dao::$errors[] = $this->lang->kanbancard->error->progressIllegal;
|
||||
return false;
|
||||
}
|
||||
|
||||
$cardID = (int)$cardID;
|
||||
$oldCard = $this->getCardByID($cardID);
|
||||
|
||||
@@ -2902,7 +2924,7 @@ class kanbanModel extends model
|
||||
|
||||
}
|
||||
if(common::hasPriv('kanban', 'setColumnWidth')) $actions .= '<li>' . html::a(helper::createLink('kanban', 'setColumnWidth', "kanbanID=$kanban->id", '', true), '<i class="icon icon-size-width"></i>' . $this->lang->kanban->columnWidth, '', "class='iframe btn btn-link' data-width=30%") . '</li>';
|
||||
if(common::hasPriv('kanban', 'performable')) $actions .= '<li>' . html::a(helper::createLink('kanban', 'performable', "kanbanID=$kanban->id", '', true), '<i class="icon icon-checked"></i>' . $this->lang->kanban->doneFunction, '', "class='iframe btn btn-link' data-width=30%") . '</li>';
|
||||
if(common::hasPriv('kanban', 'performable')) $actions .= '<li>' . html::a(helper::createLink('kanban', 'performable', "kanbanID=$kanban->id", '', true), '<i class="icon icon-checked"></i>' . $this->lang->kanban->manageProgress, '', "class='iframe btn btn-link' data-width=40%") . '</li>';
|
||||
|
||||
$kanbanActions = '';
|
||||
$attr = $kanban->status == 'closed' ? "disabled='disabled'" : '';
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
/**
|
||||
* The activate card file of kanban module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2021 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Mengyi Liu <liumengyi@easycorp.ltd>
|
||||
* @package kanban
|
||||
* @version $Id: close.html.php 935 2021-12-09 10:49:24Z $
|
||||
* @link https://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2>
|
||||
<span class='label label-id'><?php echo $card->id;?></span>
|
||||
<?php echo "<span title='$card->name'>" . $card->name . '</span>';?>
|
||||
</h2>
|
||||
</div>
|
||||
<form class='main-form form-ajax' method='post' enctype='multipart/form-data' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbancard->progress;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('progress', '', "class='form-control'");?>
|
||||
<span class='input-group-addon'>%</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->comment;?></th>
|
||||
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='4' class='text-center form-actions'>
|
||||
<?php echo html::submitButton($lang->kanban->activateCard);?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<hr class='small' />
|
||||
<div class='main'><?php include '../../common/view/action.html.php';?></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -58,14 +58,28 @@
|
||||
<th><?php echo $lang->kanbancard->end;?></th>
|
||||
<td><?php echo html::input('end', helper::isZeroDate($card->end) ? '' : $card->end, "class='form-control form-date'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbancard->estimate;?></th>
|
||||
<td><?php echo html::input('estimate', $card->estimate, "class='form-control' placeholder='{$lang->kanbancard->lblHour}'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbancard->pri;?></th>
|
||||
<td><?php echo html::select('pri', $lang->kanbancard->priList, $card->pri, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbancard->estimate;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('estimate', $card->estimate, "class='form-control'");?>
|
||||
<span class='input-group-addon'>h</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbancard->progress;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('progress', $card->progress, "class='form-control'");?>
|
||||
<span class='input-group-addon'>%</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
<form class='main-form form-ajax' method='post' enctype='multipart/form-data' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th id='c-done'><?php echo $lang->kanban->doneFunction;?></th>
|
||||
<td><?php echo nl2br(html::radio('performable', $lang->kanban->enableFinished, $kanban->performable));?></td>
|
||||
<th id='c-title'><?php echo $lang->kanban->manageProgress;?></th>
|
||||
<td><?php echo nl2br(html::radio('performable', $lang->kanban->enableList, $kanban->performable));?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2' class='text-center form-actions'>
|
||||
|
||||
@@ -39,11 +39,7 @@ js::set('colorList', $this->config->kanban->cardColorList);
|
||||
js::set('displayCards', $kanban->displayCards);
|
||||
js::set('fluidBoard', $kanban->fluidBoard);
|
||||
js::set('mode', $config->systemMode);
|
||||
|
||||
js::set('priv',
|
||||
array(
|
||||
'canAssignCard' => common::hasPriv('kanban', 'assigncard'),
|
||||
));
|
||||
js::set('priv', array('canAssignCard' => common::hasPriv('kanban', 'assigncard')));
|
||||
|
||||
$canSortRegion = commonModel::hasPriv('kanban', 'sortRegion') && count($regions) > 1;
|
||||
$canEditRegion = commonModel::hasPriv('kanban', 'editRegion');
|
||||
|
||||
@@ -114,6 +114,10 @@
|
||||
<th><?php echo $lang->kanbancard->estimate;?></th>
|
||||
<td><?php echo round($card->estimate, 2) . ' ' . $lang->kanbancard->lblHour;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbancard->progress;?></th>
|
||||
<td><?php echo round($card->progress, 2) . ' %';?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user