Merge branch 'kanban' into 'sprint/177_zhengrunyu_45882'
# Conflicts: # module/kanban/lang/en.php # module/kanban/model.php
This commit is contained in:
@@ -15,6 +15,7 @@ include 'chosen.html.php';
|
||||
<?php echo isset($lang->switcherMenu) ? $lang->switcherMenu : '';?>
|
||||
</div>
|
||||
<nav id='navbar'><?php $activeMenu = commonModel::printMainMenu();?></nav>
|
||||
<div id='headerActions'><?php if(isset($lang->headerActions)) echo $lang->headerActions;?></div>
|
||||
<div id='toolbar'>
|
||||
<div id='userMenu'>
|
||||
<ul id="userNav" class="nav nav-default">
|
||||
|
||||
@@ -9,16 +9,22 @@ $config->kanban->require->createlane = 'name';
|
||||
$config->kanban->setwip = new stdclass();
|
||||
$config->kanban->setlane = new stdclass();
|
||||
$config->kanban->setlaneColumn = new stdclass();
|
||||
$config->kanban->create = new stdclass();
|
||||
$config->kanban->edit = new stdclass();
|
||||
$config->kanban->createspace = new stdclass();
|
||||
$config->kanban->editspace = new stdclass();
|
||||
|
||||
$config->kanban->setwip->requiredFields = 'limit';
|
||||
$config->kanban->setlane->requiredFields = 'name,type';
|
||||
$config->kanban->setlaneColumn->requiredFields = 'name';
|
||||
$config->kanban->create->requiredFields = 'space,name';
|
||||
$config->kanban->edit->requiredFields = 'space,name';
|
||||
$config->kanban->createspace->requiredFields = 'name,owner';
|
||||
$config->kanban->editspace->requiredFields = 'name,owner';
|
||||
|
||||
$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->close = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
@@ -78,4 +84,5 @@ $config->kanban->taskColumnStatusList['pause'] = 'pause';
|
||||
$config->kanban->taskColumnStatusList['canceled'] = 'cancel';
|
||||
$config->kanban->taskColumnStatusList['closed'] = 'closed';
|
||||
|
||||
$config->kanban->laneColorList = array('#7ec5ff', '#333', '#2b529c', '#e48600', '#d2323d', '#229f24', '#777', '#d2691e', '#008b8b', '#2e8b57', '#4169e1', '#4b0082', '#fa8072', '#ba55d3', '#2e8b57', '#6b8e23');
|
||||
$config->kanban->laneColorList = array('#7ec5ff', '#333', '#2b529c', '#e48600', '#d2323d', '#229f24', '#777', '#d2691e', '#008b8b', '#2e8b57', '#4169e1', '#4b0082', '#fa8072', '#ba55d3', '#2e8b57', '#6b8e23');
|
||||
$config->kanban->columnColorList = array('#333', '#2b519c', '#e48610', '#d2313d', '#2a9f23', '#777', '#d2691e', '#2e8b8b', '#2f8b58', '#4168e0', '#4b0082', '#f58072', '#ba55d3', '#6a8e22');
|
||||
|
||||
@@ -23,11 +23,16 @@ class kanban extends control
|
||||
*/
|
||||
public function space($browseType = 'my', $recTotal = 0, $recPerPage = 15, $pageID = 1)
|
||||
{
|
||||
$spaces = $this->kanban->getSpaces($browseType);
|
||||
|
||||
/* Load pager. */
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
$recTotal = count($spaces);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
$spaces = array_chunk($spaces, $pager->recPerPage);
|
||||
|
||||
$this->view->title = $this->lang->kanban->common;
|
||||
$this->view->title = $this->lang->kanbanspace->common;
|
||||
$this->view->spaces = empty($spaces) ? $spaces : $spaces[$pageID - 1];
|
||||
$this->view->browseType = $browseType;
|
||||
$this->view->pager = $pager;
|
||||
|
||||
@@ -66,13 +71,14 @@ class kanban extends control
|
||||
*/
|
||||
public function editSpace($spaceID)
|
||||
{
|
||||
$this->loadModel('action');
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$changes = $this->kanban->updateSpace($spaceID);
|
||||
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
$actionID = $this->loadModel('action')->create('kanbanSpace', $spaceID, 'edited');
|
||||
$actionID = $this->action->create('kanbanSpace', $spaceID, 'edited');
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
|
||||
die(js::reload('parent.parent'));
|
||||
@@ -85,6 +91,61 @@ class kanban extends control
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a kanban.
|
||||
*
|
||||
* @param int $spaceID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function create($spaceID = 0)
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$kanbanID = $this->kanban->create();
|
||||
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
$this->loadModel('action')->create('kanban', $kanbanID, 'created');
|
||||
die(js::reload('parent.parent'));
|
||||
}
|
||||
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
|
||||
$this->view->spaceID = $spaceID;
|
||||
$this->view->spacePairs = array('' => '') + $this->kanban->getSpacePairs();
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit a kanban.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function edit($kanbanID = 0)
|
||||
{
|
||||
$this->loadModel('action');
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$changes = $this->kanban->update($kanbanID);
|
||||
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
$actionID = $this->action->create('kanban', $kanbanID, 'edited');
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
|
||||
die(js::reload('parent.parent'));
|
||||
}
|
||||
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
|
||||
$this->view->spacePairs = array('' => '') + $this->kanban->getSpacePairs();
|
||||
$this->view->kanban = $this->kanban->getByID($kanbanID);
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/*
|
||||
* Close a kanban.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
@@ -116,18 +177,20 @@ class kanban extends control
|
||||
|
||||
/**
|
||||
* View a kanban.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function view($kanbanID)
|
||||
{
|
||||
$kanban = $this->kanban->getByID($kanbanID);
|
||||
$this->kanban->setHeaderActions($kanban);
|
||||
|
||||
$this->view->title = $this->lang->kanban->view;
|
||||
$this->view->regions = $this->kanban->getKanbanData($kanbanID);
|
||||
$this->view->kanban = $kanban;
|
||||
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#spaces {margin: 0 0; margin-bottom: 15px;}
|
||||
#spaces .spaceTitle {margin-bottom: 15px;}
|
||||
#spaces .spaceActions {margin-top: 10px;}
|
||||
#spaces .spaceActions > a{margin-left: 10px;}
|
||||
.table-footer .pager>li.disabled>a.pager-item {bottom: -3px;}
|
||||
@@ -1,3 +1,8 @@
|
||||
$(function()
|
||||
{
|
||||
if(typeof acl != 'undefined' && acl != null) setWhite(acl);
|
||||
});
|
||||
|
||||
/**
|
||||
* Set white list.
|
||||
*
|
||||
|
||||
@@ -20,7 +20,7 @@ function loadMore(type)
|
||||
*/
|
||||
function fullScreen()
|
||||
{
|
||||
var element = document.getElementById('mainContent');
|
||||
var element = document.getElementById('kanban');
|
||||
var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen;
|
||||
if(requestMethod)
|
||||
{
|
||||
@@ -624,15 +624,15 @@ function createColumnMenu(options)
|
||||
if(!privs.length) return [];
|
||||
|
||||
var items = [];
|
||||
if(privs.includes('setWIP')) items.push({label: kanbanLang.WIP, icon: '', url: createLink('kanban', 'setWIP', 'columnID=' + column.id), attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('editColumn')) items.push({label: kanbanLang.editColumn, icon: '', url: createLink('kanban', 'editColumn', 'columnID=' + column.id), attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('setWIP')) items.push({label: kanbanLang.WIP, icon: '', url: createLink('kanban', 'setWIP', 'columnID=' + column.id), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('editColumn')) items.push({label: kanbanLang.editColumn, icon: '', url: createLink('kanban', 'setColumn', 'columnID=' + column.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('createColumn'))
|
||||
{
|
||||
items.push({label: kanbanLang.createColumnOnLeft, icon: '', url: createLink('kanban', 'createColumn', 'columnID=' + column.id + '&position=left'), attrs: {'data-toggle': 'modal'}});
|
||||
items.push({label: kanbanLang.createColumnOnRight, icon: '', url: createLink('kanban', 'createColumn', 'columnID=' + column.id + '&position=right'), attrs: {'data-toggle': 'modal'}});
|
||||
items.push({label: kanbanLang.createColumnOnLeft, icon: '', url: createLink('kanban', 'createColumn', 'columnID=' + column.id + '&position=left'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
items.push({label: kanbanLang.createColumnOnRight, icon: '', url: createLink('kanban', 'createColumn', 'columnID=' + column.id + '&position=right'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
}
|
||||
if(privs.includes('copyColumn')) items.push({label: kanbanLang.copyColumn, icon: '', url: createLink('kanban', 'copyColumn', 'columnID=' + column.id), attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('splitColumn')) items.push({label: kanbanLang.splitColumn, icon: '', url: createLink('kanban', 'splitColumn', 'columnID=' + column.id), attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('copyColumn')) items.push({label: kanbanLang.copyColumn, icon: '', url: createLink('kanban', 'copyColumn', 'columnID=' + column.id), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('splitColumn')) items.push({label: kanbanLang.splitColumn, icon: '', url: createLink('kanban', 'splitColumn', 'columnID=' + column.id), className: 'iframe', attrs: {'data-toggle': 'modal'}});
|
||||
if(privs.includes('archiveColumn')) items.push({label: kanbanLang.archiveColumn, icon: '', url: createLink('kanban', 'archiveColumn', 'columnID=' + column.id), className: 'confirmer', attrs: {'data-confirmTitle': kanbancolumnLang.confirmArchive, 'data-confirmDetail': kanbancolumnLang.confirmArchiveDetail, 'data-confirmButton': lang.archive, 'data-confirming': lang.archiving}});
|
||||
if(privs.includes('deleteColumn')) items.push({label: kanbanLang.deleteColumn, icon: '', url: createLink('kanban', 'deleteColumn', 'columnID=' + column.id), className: 'confirmer', attrs: {'data-confirmTitle': kanbancolumnLang.confirmDelete, 'data-confirmDetail': kanbancolumnLang.confirmDeleteDetail}});
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->kanban->space = 'Kanban Space';
|
||||
$lang->kanban->create = 'Create Kanban';
|
||||
$lang->kanban->createSpace = 'Create Space';
|
||||
$lang->kanban->editSpace = 'Edit Space';
|
||||
@@ -26,6 +25,26 @@ $lang->kanban->createCard = 'Create Card';
|
||||
$lang->kanban->editCard = 'Edit Card';
|
||||
$lang->kanban->viewCard = 'View Card';
|
||||
$lang->kanban->sortCard = 'Sort Card';
|
||||
$lang->kanban->setting = 'Setting';
|
||||
|
||||
/* Fields. */
|
||||
$lang->kanban->space = 'Space';
|
||||
$lang->kanban->name = 'Name';
|
||||
$lang->kanban->owner = 'Owner';
|
||||
$lang->kanban->team = 'Team';
|
||||
$lang->kanban->desc = 'Description';
|
||||
$lang->kanban->acl = 'ACL';
|
||||
$lang->kanban->whitelist = 'White List';
|
||||
$lang->kanban->status = 'Status';
|
||||
$lang->kanban->createdBy = 'Created By';
|
||||
$lang->kanban->createdDate = 'Created Date';
|
||||
$lang->kanban->lastEditedBy = 'Edited By';
|
||||
$lang->kanban->lastEditedDate = 'Edited Date';
|
||||
$lang->kanban->closedBy = 'Closed By';
|
||||
$lang->kanban->closedDate = 'Closed Date';
|
||||
|
||||
$lang->kanban->aclList['open'] = 'Open (Accessible with space view permissions)';
|
||||
$lang->kanban->aclList['private'] = 'Private (For the kanban team, whitelist members and space owner only)';
|
||||
|
||||
$lang->kanban->type = array();
|
||||
$lang->kanban->type['all'] = "All KanBan";
|
||||
@@ -81,12 +100,17 @@ $lang->kanban->laneGroup = 'Lane Group';
|
||||
$lang->kanban->cardsSort = 'Cards Sortting';
|
||||
$lang->kanban->moreAction = 'More Action';
|
||||
$lang->kanban->noGroup = 'None';
|
||||
$lang->kanban->limitExceeded = 'Limit Exceeded';
|
||||
$lang->kanban->fullScreen = 'Full Screen';
|
||||
$lang->kanban->setting = 'Setting';
|
||||
|
||||
$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->defaultColumn = array('wait', 'doing', 'done', 'close');
|
||||
|
||||
$this->lang->kanban->laneTypeList = array();
|
||||
$this->lang->kanban->laneTypeList['story'] = $lang->SRCommon;
|
||||
$this->lang->kanban->laneTypeList['bug'] = 'Bug';
|
||||
@@ -126,14 +150,25 @@ $lang->kanban->taskColumn['canceled'] = 'Canceled';
|
||||
$lang->kanban->taskColumn['closed'] = 'Closed';
|
||||
|
||||
$lang->kanbanspace = new stdclass();
|
||||
$lang->kanbanspace->name = 'Name';
|
||||
$lang->kanbanspace->owner = 'Owner';
|
||||
$lang->kanbanspace->team = 'Team';
|
||||
$lang->kanbanspace->desc = 'Description';
|
||||
$lang->kanbanspace->acl = 'ACL';
|
||||
$lang->kanbanspace->common = 'Kanban Space';
|
||||
$lang->kanbanspace->name = 'Name';
|
||||
$lang->kanbanspace->owner = 'Owner';
|
||||
$lang->kanbanspace->team = 'Team';
|
||||
$lang->kanbanspace->desc = 'Description';
|
||||
$lang->kanbanspace->acl = 'ACL';
|
||||
$lang->kanbanspace->whitelist = 'White List';
|
||||
$lang->kanbanspace->status = 'Status';
|
||||
$lang->kanbanspace->createdBy = 'Created By';
|
||||
$lang->kanbanspace->createdDate = 'Created Date';
|
||||
$lang->kanbanspace->lastEditedBy = 'Edited By';
|
||||
$lang->kanbanspace->lastEditedDate = 'Edited Date';
|
||||
$lang->kanbanspace->closedBy = 'Closed By';
|
||||
$lang->kanbanspace->closedDate = 'Closed Date';
|
||||
|
||||
$lang->kanbanspace->empty = 'No Space';
|
||||
|
||||
$lang->kanbanspace->aclList['open'] = 'Open (Accessible with kanban view permissions)';
|
||||
$lang->kanbanspace->aclList['private'] = 'Private (For the kanban owner and team members only)';
|
||||
$lang->kanbanspace->aclList['private'] = 'Private (For the space owner, team and whitelist members only)';
|
||||
|
||||
$lang->kanbanspace->featureBar['all'] = 'All';
|
||||
$lang->kanbanspace->featureBar['my'] = 'My';
|
||||
@@ -155,4 +190,12 @@ $lang->kanbanlane->color = 'Lane color';
|
||||
$lang->kanbanlane->modeList['sameAsOther'] = 'Use the same Kanban column as other lanes';
|
||||
$lang->kanbanlane->modeList['independent'] = 'Independent Kanban column is adopted';
|
||||
|
||||
$lang->kanbanlane->name = $lang->kanban->laneName;
|
||||
$lang->kanbanlane->common = 'Lane';
|
||||
$lang->kanbanlane->default = 'Default Lane';
|
||||
|
||||
$lang->kanbanregion = new stdclass();
|
||||
$lang->kanbanregion->name = 'Kanban Region';
|
||||
$lang->kanbanregion->default = 'Default Region';
|
||||
|
||||
$lang->kanbancard = new stdclass();
|
||||
@@ -1,6 +1,5 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->kanban->space = '看板空间';
|
||||
$lang->kanban->create = '创建看板';
|
||||
$lang->kanban->createSpace = '创建空间';
|
||||
$lang->kanban->editSpace = '设置空间';
|
||||
@@ -26,6 +25,26 @@ $lang->kanban->createCard = '创建卡片';
|
||||
$lang->kanban->editCard = '编辑卡片';
|
||||
$lang->kanban->viewCard = '查看卡片';
|
||||
$lang->kanban->sortCard = '卡片排序';
|
||||
$lang->kanban->setting = '设置';
|
||||
|
||||
/* Fields. */
|
||||
$lang->kanban->space = '所属空间';
|
||||
$lang->kanban->name = '看板名称';
|
||||
$lang->kanban->owner = '负责人';
|
||||
$lang->kanban->team = '团队';
|
||||
$lang->kanban->desc = '空间描述';
|
||||
$lang->kanban->acl = '访问控制';
|
||||
$lang->kanban->whitelist = '白名单';
|
||||
$lang->kanban->status = '状态';
|
||||
$lang->kanban->createdBy = '由谁创建';
|
||||
$lang->kanban->createdDate = '创建日期';
|
||||
$lang->kanban->lastEditedBy = '最后修改';
|
||||
$lang->kanban->lastEditedDate = '最后修改日期';
|
||||
$lang->kanban->closedBy = '由谁关闭';
|
||||
$lang->kanban->closedDate = '关闭日期';
|
||||
|
||||
$lang->kanban->aclList['open'] = '继承空间访问权限(能访问当前空间,即可访问)';
|
||||
$lang->kanban->aclList['private'] = '私有(看板团队成员、白名单、空间负责人可访问)';
|
||||
|
||||
$lang->kanban->type = array();
|
||||
$lang->kanban->type['all'] = "综合看板";
|
||||
@@ -82,12 +101,16 @@ $lang->kanban->cardsSort = '卡片排序';
|
||||
$lang->kanban->moreAction = '更多操作';
|
||||
$lang->kanban->noGroup = '无';
|
||||
$lang->kanban->limitExceeded = '超出在制品限制';
|
||||
$lang->kanban->fullScreen = '全屏';
|
||||
$lang->kanban->setting = '设置';
|
||||
|
||||
$lang->kanban->error = new stdclass();
|
||||
$lang->kanban->error->mustBeInt = '在制品数量必须是正整数。';
|
||||
$lang->kanban->error->parentLimitNote = '父列的在制品数量不能小于子列在制品数量之和';
|
||||
$lang->kanban->error->childLimitNote = '子列在制品数量之和不能大于父列的在制品数量';
|
||||
|
||||
$lang->kanban->defaultColumn = array('未开始', '进行中', '已完成', '已关闭');
|
||||
|
||||
$this->lang->kanban->laneTypeList = array();
|
||||
$this->lang->kanban->laneTypeList['story'] = $lang->SRCommon;
|
||||
$this->lang->kanban->laneTypeList['bug'] = 'Bug';
|
||||
@@ -127,22 +150,31 @@ $lang->kanban->taskColumn['canceled'] = '已取消';
|
||||
$lang->kanban->taskColumn['closed'] = '已关闭';
|
||||
|
||||
$lang->kanbanspace = new stdclass();
|
||||
$lang->kanbanspace->name = '空间名称';
|
||||
$lang->kanbanspace->owner = '负责人';
|
||||
$lang->kanbanspace->team = '团队';
|
||||
$lang->kanbanspace->desc = '空间描述';
|
||||
$lang->kanbanspace->acl = '访问控制';
|
||||
$lang->kanbanspace->common = '看板空间';
|
||||
$lang->kanbanspace->name = '空间名称';
|
||||
$lang->kanbanspace->owner = '负责人';
|
||||
$lang->kanbanspace->team = '团队';
|
||||
$lang->kanbanspace->desc = '空间描述';
|
||||
$lang->kanbanspace->acl = '访问控制';
|
||||
$lang->kanbanspace->whitelist = '白名单';
|
||||
$lang->kanbanspace->status = '状态';
|
||||
$lang->kanbanspace->createdBy = '由谁创建';
|
||||
$lang->kanbanspace->createdDate = '创建日期';
|
||||
$lang->kanbanspace->lastEditedBy = '最后修改';
|
||||
$lang->kanbanspace->lastEditedDate = '最后修改日期';
|
||||
$lang->kanbanspace->closedBy = '由谁关闭';
|
||||
$lang->kanbanspace->closedDate = '关闭日期';
|
||||
|
||||
$lang->kanbanspace->empty = '暂时没有空间';
|
||||
|
||||
$lang->kanbanspace->aclList['open'] = '公开(有看板空间视图权限即可访问)';
|
||||
$lang->kanbanspace->aclList['private'] = '私有(只有看板空间负责人、团队成员可访问)';
|
||||
$lang->kanbanspace->aclList['private'] = '私有(只有看板空间负责人、团队成员、白名单可访问)';
|
||||
|
||||
$lang->kanbanspace->featureBar['all'] = '所有';
|
||||
$lang->kanbanspace->featureBar['my'] = '我的空间';
|
||||
$lang->kanbanspace->featureBar['other'] = '其他空间';
|
||||
$lang->kanbanspace->featureBar['closed'] = '已关闭';
|
||||
|
||||
$lang->kanban->defaultColumn = array('未开始', '进行中', '已完成', '已关闭');
|
||||
|
||||
$lang->kanbancolumn = new stdclass();
|
||||
$lang->kanbancolumn->name = $lang->kanban->columnName;
|
||||
$lang->kanbancolumn->limit = $lang->kanban->WIPCount;
|
||||
|
||||
+215
-50
@@ -15,8 +15,8 @@ class kanbanModel extends model
|
||||
{
|
||||
/**
|
||||
* Init a kanban.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* @param string $type default|new
|
||||
* @access public
|
||||
* @return void
|
||||
@@ -41,11 +41,11 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Create a kanban group.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* @param int $regionID
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* @param int $regionID
|
||||
* @access public
|
||||
* @return int
|
||||
* @return int
|
||||
*/
|
||||
public function createGroup($kanbanID, $regionID)
|
||||
{
|
||||
@@ -73,10 +73,10 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Create a default kanban region.
|
||||
*
|
||||
* @param object $kanban
|
||||
*
|
||||
* @param object $kanban
|
||||
* @access public
|
||||
* @return int
|
||||
* @return int
|
||||
*/
|
||||
public function createDefaultRegion($kanban)
|
||||
{
|
||||
@@ -92,11 +92,11 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Create a new region.
|
||||
*
|
||||
* @param object $kanban
|
||||
* @param object $region
|
||||
*
|
||||
* @param object $kanban
|
||||
* @param object $region
|
||||
* @access public
|
||||
* @return int
|
||||
* @return int
|
||||
*/
|
||||
public function createRegion($kanban, $region = null)
|
||||
{
|
||||
@@ -104,7 +104,7 @@ class kanbanModel extends model
|
||||
$order = 1;
|
||||
|
||||
if(!$region)
|
||||
{
|
||||
{
|
||||
$maxOrder = $this->dao->select('MAX(`order`) AS maxOrder')->from(TABLE_KANBANORDER)
|
||||
->where('objectType')->eq('region')
|
||||
->andWhere('parentID')->eq($kanban->id)
|
||||
@@ -137,12 +137,12 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Create default lane.
|
||||
*
|
||||
* @param object $kanban
|
||||
*
|
||||
* @param object $kanban
|
||||
* @param int $regionID
|
||||
* @param int $groupID
|
||||
* @access public
|
||||
* @return int
|
||||
* @return int
|
||||
*/
|
||||
public function createDefaultLane($kanban, $regionID, $groupID)
|
||||
{
|
||||
@@ -152,6 +152,7 @@ class kanbanModel extends model
|
||||
$lane->region = $regionID;
|
||||
$lane->type = 'common';
|
||||
$lane->lastEditedTime = helper::now();
|
||||
$lane->color = '#7ec5ff';
|
||||
|
||||
$this->dao->insert(TABLE_KANBANLANE)->data($lane)->exec();
|
||||
$laneID = $this->dao->lastInsertId();
|
||||
@@ -162,8 +163,8 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Create default kanban columns.
|
||||
*
|
||||
* @param object $kanban
|
||||
*
|
||||
* @param object $kanban
|
||||
* @param int $regionID
|
||||
* @param int $groupID
|
||||
* @access public
|
||||
@@ -180,6 +181,7 @@ class kanbanModel extends model
|
||||
$column->name = $columnName;
|
||||
$column->type = $index;
|
||||
$column->limit = -1;
|
||||
$column->color = '#333';
|
||||
|
||||
$this->dao->insert(TABLE_KANBANCOLUMN)->data($column)->exec();
|
||||
|
||||
@@ -192,13 +194,13 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Save kanban object order.
|
||||
*
|
||||
* @param int $parentID
|
||||
* @param string $parentType
|
||||
* @param int $objectID
|
||||
* @param string $objectType
|
||||
* @param string $account
|
||||
* @param int $order
|
||||
*
|
||||
* @param int $parentID
|
||||
* @param string $parentType
|
||||
* @param int $objectID
|
||||
* @param string $objectType
|
||||
* @param string $account
|
||||
* @param int $order
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -217,11 +219,11 @@ class kanbanModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* Get kanban by id.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* Get kanban by id.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* @access public
|
||||
* @return object
|
||||
* @return object
|
||||
*/
|
||||
public function getByID($kanbanID)
|
||||
{
|
||||
@@ -230,8 +232,8 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Get kanban data.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -281,13 +283,13 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Get ordered region pairs.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* @access public
|
||||
* @return array
|
||||
* @return array
|
||||
*/
|
||||
public function getRegionPairs($kanbanID)
|
||||
{
|
||||
{
|
||||
return $this->dao->select('id,name')->from(TABLE_KANBANREGION)
|
||||
->where('kanban')->eq($kanbanID)
|
||||
->andWhere('deleted')->eq('0')
|
||||
@@ -297,10 +299,10 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Get kanban group by regions.
|
||||
*
|
||||
* @param array $regions
|
||||
*
|
||||
* @param array $regions
|
||||
* @access public
|
||||
* @return array
|
||||
* @return array
|
||||
*/
|
||||
public function getGroupGroupByRegions($regions)
|
||||
{
|
||||
@@ -312,10 +314,10 @@ class kanbanModel extends model
|
||||
|
||||
/**
|
||||
* Get lane group by regions.
|
||||
*
|
||||
* @param array $regions
|
||||
*
|
||||
* @param array $regions
|
||||
* @access public
|
||||
* @return array
|
||||
* @return array
|
||||
*/
|
||||
public function getLaneGroupByRegions($regions)
|
||||
{
|
||||
@@ -342,11 +344,11 @@ class kanbanModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* Get column group by regions.
|
||||
*
|
||||
* @param array $regions
|
||||
* Get column group by regions.
|
||||
*
|
||||
* @param array $regions
|
||||
* @access public
|
||||
* @return array
|
||||
* @return array
|
||||
*/
|
||||
public function getColumnGroupByRegions($regions)
|
||||
{
|
||||
@@ -386,7 +388,7 @@ class kanbanModel extends model
|
||||
$columnData[$group][] = $parentColumn;
|
||||
foreach($columnGroup[$group] as $column)
|
||||
{
|
||||
if($column->parent == $parentColumn->id)
|
||||
if($column->parent == $parentColumn->id)
|
||||
{
|
||||
$parentColumn->asParent = true;
|
||||
|
||||
@@ -401,6 +403,34 @@ class kanbanModel extends model
|
||||
return $columnData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set kanban headerActions.
|
||||
*
|
||||
* @param object $kanban
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function setHeaderActions($kanban)
|
||||
{
|
||||
$actions = '';
|
||||
$actions .= "<div class='btn-group'>";
|
||||
$actions .= "<a href='javascript:fullScreen();' id='fullScreenBtn' class='btn btn-link'><i class='icon icon-fullscreen'></i> {$this->lang->kanban->fullScreen}</a>";
|
||||
$actions .= "<a data-toggle='dropdown' class='btn btn-link dropdown-toggle' type='button'>" . '<i class="icon icon-cog-outline"></i> ' . $this->lang->kanban->setting . '</a>';
|
||||
$actions .= "<ul id='kanbanActionMenu' class='dropdown-menu text-left'>";
|
||||
if(common::hasPriv('kanban', 'createRegion')) $actions .= '<li>' . html::a(helper::createLink('kanban', 'createRegion', "kanbanID=$kanban->id", '', true), '<i class="icon icon-plus"></i>' . $this->lang->kanban->createRegion, '', "class='iframe btn btn-link'") . '</li>';
|
||||
|
||||
$kanbanActions = '';
|
||||
if(common::hasPriv('kanban', 'edit')) $kanbanActions .= '<li>' . html::a(helper::createLink('kanban', 'edit', "kanbanID=$kanban->id", '', true), '<i class="icon icon-edit"></i>' . $this->lang->kanban->edit, '', "class='iframe btn btn-link'") . '</li>';
|
||||
if(common::hasPriv('kanban', 'close')) $kanbanActions .= '<li>' . html::a(helper::createLink('kanban', 'close', "kanbanID=$kanban->id", '', true), '<i class="icon icon-off"></i>' . $this->lang->kanban->close, '', "class='iframe btn btn-link'") . '</li>';
|
||||
if(common::hasPriv('kanban', 'delete')) $kanbanActions .= '<li>' . html::a(helper::createLink('kanban', 'delete', "kanbanID=$kanban->id"), '<i class="icon icon-trash"></i>' . $this->lang->kanban->delete, 'hiddenwin', "class='btn btn-link'") . '</li>';
|
||||
if($kanbanActions) $actions .= "<div class='divider'></div>" . $kanbanActions;
|
||||
|
||||
$actions .= "</ul>";
|
||||
$actions .= "</div>";
|
||||
|
||||
$this->lang->headerActions = $actions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Kanban by execution id.
|
||||
*
|
||||
@@ -527,6 +557,77 @@ class kanbanModel extends model
|
||||
return $kanbanGroup;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get spaces.
|
||||
*
|
||||
* @param string $browseType all|my|other|closed
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getSpaces($browseType)
|
||||
{
|
||||
$account = $this->app->user->account;
|
||||
$spaceIdList = $this->getCanViewObjects('kanbanspace');
|
||||
|
||||
return $this->dao->select('*')->from(TABLE_KANBANSPACE)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($browseType == 'my')->andWhere('owner')->eq($account)->fi()
|
||||
->beginIF($browseType == 'other')->andWhere('owner')->ne($account)->fi()
|
||||
->beginIF($browseType == 'closed')->andWhere('status')->eq('closed')->fi()
|
||||
->beginIF(!$this->app->user->admin)->andWhere('id')->in($spaceIdList)->fi()
|
||||
->orderBy('id_desc')
|
||||
->fetchAll('id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get space pairs.
|
||||
*
|
||||
* @param string $browseType all|my|other|closed
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getSpacePairs($browseType = 'all')
|
||||
{
|
||||
$account = $this->app->user->account;
|
||||
$spaceIdList = $this->getCanViewObjects('kanbanspace');
|
||||
|
||||
return $this->dao->select('id,name')->from(TABLE_KANBANSPACE)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($browseType == 'my')->andWhere('owner')->eq($account)->fi()
|
||||
->beginIF($browseType == 'other')->andWhere('owner')->ne($account)->fi()
|
||||
->beginIF($browseType == 'closed')->andWhere('status')->eq('closed')->fi()
|
||||
->beginIF(!$this->app->user->admin)->andWhere('id')->in($spaceIdList)->fi()
|
||||
->orderBy('id_desc')
|
||||
->fetchPairs('id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get can view objects.
|
||||
*
|
||||
* @param string $objectType space|kanban
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getCanViewObjects($objectType)
|
||||
{
|
||||
$table = $this->config->objectTables[$objectType];
|
||||
$objects = $this->dao->select('*')->from($table)->fetchAll('id');
|
||||
|
||||
if($this->app->user->admin) return $objects;
|
||||
|
||||
$account = $this->app->user->account;
|
||||
foreach($objects as $objectID => $object)
|
||||
{
|
||||
if($object->acl == 'private')
|
||||
{
|
||||
$aclUsers = $object->owner . $object->team . $object->whitelist;
|
||||
if(strpos(",$aclUsers,", ",$account,") === false) unset($objects[$objectID]);
|
||||
}
|
||||
}
|
||||
|
||||
return array_keys($objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a space.
|
||||
*
|
||||
@@ -535,14 +636,17 @@ class kanbanModel extends model
|
||||
*/
|
||||
public function createSpace()
|
||||
{
|
||||
$space = fixer::input('post')
|
||||
->setDefault('createdBy', $this->app->user->account)
|
||||
$account = $this->app->user->account;
|
||||
$space = fixer::input('post')
|
||||
->setDefault('createdBy', $account)
|
||||
->setDefault('createdDate', helper::now())
|
||||
->join('whitelist', ',')
|
||||
->join('team', ',')
|
||||
->remove('uid,contactListMenu')
|
||||
->get();
|
||||
|
||||
if(strpos(",{$space->team},", ",$account,") === false and $space->owner != $account) $space->team .= ",$account";
|
||||
|
||||
$this->dao->insert(TABLE_KANBANSPACE)->data($space)
|
||||
->autoCheck()
|
||||
->batchCheck($this->config->kanban->createspace->requiredFields, 'notempty')
|
||||
@@ -600,7 +704,6 @@ class kanbanModel extends model
|
||||
->fetchPairs();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a lane.
|
||||
*
|
||||
@@ -653,6 +756,68 @@ class kanbanModel extends model
|
||||
return $laneID;
|
||||
}
|
||||
|
||||
* Create a kanban.
|
||||
*
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$account = $this->app->user->account;
|
||||
$kanban = fixer::input('post')
|
||||
->setDefault('createdBy', $account)
|
||||
->setDefault('createdDate', helper::now())
|
||||
->join('whitelist', ',')
|
||||
->join('team', ',')
|
||||
->remove('uid,contactListMenu')
|
||||
->get();
|
||||
|
||||
if(strpos(",{$kanban->team},", ",$account,") === false and $kanban->owner != $account) $kanban->team .= ",$account";
|
||||
|
||||
$this->dao->insert(TABLE_KANBAN)->data($kanban)
|
||||
->autoCheck()
|
||||
->batchCheck($this->config->kanban->create->requiredFields, 'notempty')
|
||||
->exec();
|
||||
|
||||
if(!dao::isError())
|
||||
{
|
||||
$kanbanID = $this->dao->lastInsertID();
|
||||
|
||||
$this->saveOrder(0, '', $kanbanID, 'kanban', '', $kanbanID);
|
||||
$this->initKanban($kanbanID);
|
||||
|
||||
return $kanbanID;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a kanban.
|
||||
*
|
||||
* @param int $kanbanID
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function update($kanbanID)
|
||||
{
|
||||
$kanbanID = (int)$kanbanID;
|
||||
$account = $this->app->user->account;
|
||||
$oldKanban = $this->getByID($kanbanID);
|
||||
$kanban = fixer::input('post')
|
||||
->setDefault('lastEditedBy', $account)
|
||||
->setDefault('lastEditedDate', helper::now())
|
||||
->join('whitelist', ',')
|
||||
->join('team', ',')
|
||||
->remove('uid,contactListMenu')
|
||||
->get();
|
||||
|
||||
$this->dao->update(TABLE_KANBAN)->data($kanban)
|
||||
->autoCheck()
|
||||
->batchCheck($this->config->kanban->edit->requiredFields, 'notempty')
|
||||
->where('id')->eq($kanbanID)
|
||||
->exec();
|
||||
|
||||
if(!dao::isError()) return common::createChanges($oldKanban, $kanban);
|
||||
}
|
||||
|
||||
/**
|
||||
* Close a kanban.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*
|
||||
* @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 <fujia@cnezsoft.com>
|
||||
* @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
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* The create 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 Shujie Tian <tianshujie@easycorp.ltd>
|
||||
* @package kanban
|
||||
* @version $Id: create.html.php 935 2021-12-09 13:48: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='main-header'>
|
||||
<h2><?php echo $lang->kanban->create;?></h2>
|
||||
</div>
|
||||
<form class='form-indicator main-form' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->space;?></th>
|
||||
<td><?php echo html::select('space', $spacePairs, $spaceID, "class='form-control chosen'");?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->name;?></th>
|
||||
<td><?php echo html::input('name', '', "class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->owner;?></th>
|
||||
<td><?php echo html::select('owner', $users, '', "class='form-control chosen'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->team;?></th>
|
||||
<td colspan='2'>
|
||||
<div class="input-group">
|
||||
<?php echo html::select('team[]', $users, '', "class='form-control chosen' multiple");?>
|
||||
<?php echo $this->fetch('my', 'buildContactLists');?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->desc;?></th>
|
||||
<td colspan='2'>
|
||||
<?php echo $this->fetch('user', 'ajaxPrintTemplates', 'type=kanban&link=desc');?>
|
||||
<?php echo html::textarea('desc', '', "rows='10' class='form-control'");?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->acl;?></th>
|
||||
<td colspan='2'><?php echo nl2br(html::radio('acl', $lang->kanban->aclList, 'private', "onclick='setWhite(this.value);'", 'block'));?></td>
|
||||
</tr>
|
||||
<tr id="whitelistBox">
|
||||
<th><?php echo $lang->whitelist;?></th>
|
||||
<td><?php echo html::select('whitelist[]', $users, '', 'class="form-control chosen" multiple');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='3' class='text-center form-actions'><?php echo html::submitButton();?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -39,7 +39,7 @@
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbanspace->desc;?></th>
|
||||
<td colspan='2'>
|
||||
<?php echo $this->fetch('user', 'ajaxPrintTemplates', 'type=space&link=desc');?>
|
||||
<?php echo $this->fetch('user', 'ajaxPrintTemplates', 'type=kanbanSpace&link=desc');?>
|
||||
<?php echo html::textarea('desc', '', "rows='10' class='form-control'");?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* The edit 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: edit.html.php 935 2021-12-09 16:15:24Z $
|
||||
* @link https://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php js::set('acl', $kanban->acl);?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->kanban->edit;?></h2>
|
||||
</div>
|
||||
<form class='form-indicator main-form' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->space;?></th>
|
||||
<td><?php echo html::select('space', $spacePairs, $kanban->space, "class='form-control chosen'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->name;?></th>
|
||||
<td><?php echo html::input('name', $kanban->name, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->owner;?></th>
|
||||
<td><?php echo html::select('owner', $users, $kanban->owner, "class='form-control chosen'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->team;?></th>
|
||||
<td colspan='2'>
|
||||
<div class="input-group">
|
||||
<?php echo html::select('team[]', $users, $kanban->team, "class='form-control chosen' multiple");?>
|
||||
<?php echo $this->fetch('my', 'buildContactLists');?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->desc;?></th>
|
||||
<td colspan='2'>
|
||||
<?php echo $this->fetch('user', 'ajaxPrintTemplates', 'type=kanban&link=desc');?>
|
||||
<?php echo html::textarea('desc', $kanban->desc, "rows='10' class='form-control'");?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->kanban->acl;?></th>
|
||||
<td colspan='2'><?php echo nl2br(html::radio('acl', $lang->kanban->aclList, $kanban->acl, "onclick='setWhite(this.value);'", 'block'));?></td>
|
||||
</tr>
|
||||
<tr id="whitelistBox">
|
||||
<th><?php echo $lang->whitelist;?></th>
|
||||
<td><?php echo html::select('whitelist[]', $users, $kanban->whitelist, 'class="form-control chosen" multiple');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='3' class='text-center form-actions'><?php echo html::submitButton();?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -12,6 +12,7 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php js::set('acl', $space->acl);?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->kanban->editSpace;?></h2>
|
||||
@@ -39,7 +40,7 @@
|
||||
<tr>
|
||||
<th><?php echo $lang->kanbanspace->desc;?></th>
|
||||
<td colspan='2'>
|
||||
<?php echo $this->fetch('user', 'ajaxPrintTemplates', 'type=space&link=desc');?>
|
||||
<?php echo $this->fetch('user', 'ajaxPrintTemplates', 'type=kanbanSpace&link=desc');?>
|
||||
<?php echo html::textarea('desc', $space->desc, "rows='10' class='form-control'");?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -25,4 +25,33 @@
|
||||
<?php common::printLink('kanban', 'createSpace', '', '<i class="icon icon-plus"></i> ' . $lang->kanban->createSpace, '', 'class="btn btn-primary iframe"', '', true);?>
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent'>
|
||||
<?php if(empty($spaces)):?>
|
||||
<div class="table-empty-tip">
|
||||
<p><span class="text-muted"><?php echo $lang->kanbanspace->empty;?></span></p>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<?php foreach($spaces as $space):?>
|
||||
<div class='row cell' id='spaces'>
|
||||
<div class='space'>
|
||||
<div class='spaceTitle pull-left'>
|
||||
<h4>
|
||||
<?php echo $space->name;?>
|
||||
<?php echo isset($space->kanbans) ? count($space->kanbans) : '';?>
|
||||
</h4>
|
||||
</div>
|
||||
<div class='spaceActions pull-right'>
|
||||
<?php common::printLink('kanban', 'create', "spaceID={$space->id}", '<i class="icon icon-plus"></i> ' . $lang->kanban->create, '', "class='iframe'", '', true);?>
|
||||
<?php common::printLink('kanban', 'editSpace', "spaceID={$space->id}", '<i class="icon icon-cog-outline"></i> ' . $lang->kanban->setting, '', "class='iframe'", '', true);?>
|
||||
<?php common::printLink('kanban', 'closeSpace', "spaceID={$space->id}", '<i class="icon icon-off"></i> ' . $lang->close, '', "class='iframe'", '', true);?>
|
||||
<?php common::printLink('kanban', 'deleteSpace', "spaceID={$space->id}", '<i class="icon icon-trash"></i> ' . $lang->delete, 'hiddenwin', '', '', true);?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach;?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<div id='spacesFooter' class='table-footer'>
|
||||
<?php $pager->show('right', 'pagerjs');?>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -74,3 +74,8 @@ a.showMoreImage:hover {opacity: 1;}
|
||||
#modules li>a, #modules ul>li>a {overflow: hidden; white-space: nowrap;}
|
||||
|
||||
.fixed-head-table{z-index:1000;}
|
||||
|
||||
#headerActions {position: absolute; top: 9px; right: 130px; border-right: 2px solid rgba(255, 255, 255, 0.3);}
|
||||
#headerActions .btn-group > .btn{ color: #fff; margin-right: 8px; border-radius: 4px !important;}
|
||||
#headerActions .btn-group > .btn.active, .btn:active, .open .dropdown-toggle.btn {background: rgba(0,0,0,0.15) !important;}
|
||||
#headerActions #kanbanActionMenu {left: 55px}
|
||||
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -201,11 +201,15 @@
|
||||
<glyph unicode="" glyph-name="side-right" d="M148.028 802.13v0c-80.406 0-145.588-65.182-145.588-145.588 0 0 0 0 0 0v-727.942c0-80.406 65.182-145.588 145.588-145.588 0 0 0 0 0 0h727.942c80.406 0 145.588 65.182 145.588 145.588 0 0 0 0 0 0v727.942c0 80.406-65.182 145.588-145.588 145.588 0 0 0 0 0 0h-727.942zM75.234 729.335h873.53v-873.53h-873.53v873.53zM584.793 656.541h291.177v-727.942h-291.177z" />
|
||||
<glyph unicode="" glyph-name="side-left" d="M875.972 802.13v0c80.406 0 145.588-65.182 145.588-145.588 0 0 0 0 0 0v-727.942c0-80.406-65.182-145.588-145.588-145.588 0 0 0 0 0 0h-727.942c-80.406 0-145.588 65.182-145.588 145.588 0 0 0 0 0 0v727.942c0 80.406 65.182 145.588 145.588 145.588 0 0 0 0 0 0h727.942zM948.766 729.335h-873.53v-873.53h873.53v873.53zM439.207 656.541h-291.177v-727.942h291.177z" />
|
||||
<glyph unicode="" glyph-name="list-box" horiz-adv-x="951" d="M0.002 804.571v-1024zM18.288 804.571v-1024zM36.574 804.571v-1024zM54.859 804.571v-1024zM73.145 804.571v-1024zM91.431 804.571v-1024zM109.717 804.571v-1024zM128.002 804.571v-1024zM146.288 804.571v-1024zM164.574 804.571v-1024zM182.859 804.571v-1024zM201.145 804.571v-1024zM219.431 804.571v-1024zM237.717 804.571v-1024zM256.002 804.571v-1024zM274.288 804.571v-1024zM292.574 804.571v-1024zM310.859 804.571v-1024zM329.145 804.571v-1024zM347.431 804.571v-1024zM365.717 804.571v-1024zM384.002 804.571v-1024zM402.288 804.571v-1024zM420.574 804.571v-1024zM438.859 804.571v-1024zM457.145 804.571v-1024zM475.431 804.571v-1024zM493.717 804.571v-1024zM512.002 804.571v-1024zM530.288 804.571v-1024zM548.574 804.571v-1024zM566.859 804.571v-1024zM585.145 804.571v-1024zM603.431 804.571v-1024zM621.717 804.571v-1024zM640.002 804.571v-1024zM658.288 804.571v-1024zM676.574 804.571v-1024zM694.859 804.571v-1024zM713.145 804.571v-1024zM731.431 804.571v-1024zM749.717 804.571v-1024zM768.002 804.571v-1024zM786.288 804.571v-1024zM804.574 804.571v-1024zM822.859 804.571v-1024zM841.145 804.571v-1024zM859.431 804.571v-1024zM877.717 804.571v-1024zM896.002 804.571v-1024zM914.288 804.571v-1024zM932.574 804.571v-1024zM-36.569 786.285h1024zM-36.569 768h1024zM-36.569 749.714h1024zM-36.569 731.428h1024zM-36.569 713.142h1024zM-36.569 694.857h1024zM-36.569 676.571h1024zM-36.569 658.285h1024zM-36.569 640h1024zM-36.569 621.714h1024zM-36.569 603.428h1024zM-36.569 585.142h1024zM-36.569 566.857h1024zM-36.569 548.571h1024zM-36.569 530.285h1024zM-36.569 512h1024zM-36.569 493.714h1024zM-36.569 475.428h1024zM-36.569 457.142h1024zM-36.569 438.857h1024zM-36.569 420.571h1024zM-36.569 402.285h1024zM-36.569 384h1024zM-36.569 365.714h1024zM-36.569 347.428h1024zM-36.569 329.142h1024zM-36.569 310.857h1024zM-36.569 292.571h1024zM-36.569 274.285h1024zM-36.569 256h1024zM-36.569 237.714h1024zM-36.569 219.428h1024zM-36.569 201.142h1024zM-36.569 182.857h1024zM-36.569 164.571h1024zM-36.569 146.285h1024zM-36.569 128h1024zM-36.569 109.714h1024zM-36.569 91.428h1024zM-36.569 73.142h1024zM-36.569 54.857h1024zM-36.569 36.571h1024zM-36.569 18.285h1024zM-36.569 0h1024zM-36.569-18.286h1024zM-36.569-36.572h1024zM-36.569-54.858h1024zM-36.569-73.143h1024zM-36.569-91.429h1024zM-36.569-109.715h1024zM-36.569-128h1024zM-36.569-146.286h1024zM-36.569-164.572h1024zM-36.569-182.858h1024zM-36.569-201.143h1024zM0.002 658.285c0 60.594 49.12 109.714 109.714 109.714h731.429c60.594 0 109.714-49.12 109.714-109.714v-731.429c0-60.594-49.12-109.714-109.714-109.714h-731.429c-60.594 0-109.714 49.12-109.714 109.714v731.429zM109.717 694.857c-20.199 0-36.571-16.375-36.571-36.571v-731.429c0-20.199 16.375-36.571 36.571-36.571h731.429c20.199 0 36.571 16.373 36.571 36.571v731.429c0 20.199-16.373 36.571-36.571 36.571h-731.429zM182.859 512c0 20.199 16.375 36.571 36.571 36.571s36.304-16.375 36.304-36.571c0-20.199-16.105-36.571-36.304-36.571s-36.571 16.375-36.571 36.571zM330.359 512c0 20.199 14.475 36.571 34.674 36.571h366.4c20.199 0 36.571-16.375 36.571-36.571s-16.373-36.571-36.571-36.571h-366.4c-20.199 0-34.674 16.375-34.674 36.571zM182.859 292.571c0 20.199 16.375 36.571 36.571 36.571s36.304-16.375 36.304-36.571c0-20.199-16.105-36.571-36.304-36.571s-36.571 16.375-36.571 36.571zM330.288 292.571c0 20.199 14.475 36.571 34.674 36.571h366.4c20.199 0 36.571-16.375 36.571-36.571s-16.373-36.571-36.571-36.571h-366.4c-20.199 0-34.674 16.375-34.674 36.571zM182.859 73.142c0 20.199 16.375 36.571 36.571 36.571s36.304-16.375 36.304-36.571c0-20.199-16.105-36.571-36.304-36.571s-36.571 16.375-36.571 36.571zM330.288 73.142c0 20.199 14.475 36.571 34.674 36.571h366.4c20.199 0 36.571-16.375 36.571-36.571s-16.373-36.571-36.571-36.571h-366.4c-20.199 0-34.674 16.375-34.674 36.571z" />
|
||||
<<<<<<< HEAD
|
||||
<glyph unicode="" glyph-name="chat-solid" horiz-adv-x="1117" d="M558.545-15.892l-245.011-190.547c-24.363-18.923-59.452-14.511-78.373 9.852-7.606 9.796-11.737 21.841-11.743 34.244v146.451h-111.709c-61.696 0-111.709 50.013-111.709 111.709v595.799c0 61.696 50.013 111.709 111.709 111.709h893.673c61.696 0 111.709-50.013 111.709-111.709v-595.799c0-61.696-50.013-111.709-111.709-111.709h-446.836zM781.964 337.891c30.848 0 55.855 25.007 55.855 55.855s-25.007 55.855-55.855 55.855c-30.848 0-55.855-25.007-55.855-55.855s25.007-55.855 55.855-55.855zM558.545 337.891c30.848 0 55.855 25.007 55.855 55.855s-25.007 55.855-55.855 55.855c-30.848 0-55.855-25.007-55.855-55.855s25.007-55.855 55.855-55.855zM335.125 337.891c30.848 0 55.855 25.007 55.855 55.855s-25.007 55.855-55.855 55.855c-30.848 0-55.855-25.007-55.855-55.855s25.007-55.855 55.855-55.855z" />
|
||||
<glyph unicode="" glyph-name="minuse-solid-circle" d="M874.017 653.078c-96.701 96.231-225.225 149.232-361.97 149.232s-265.317-53.001-362.025-149.227c-96.711-96.228-150.021-224.308-150.021-360.505s53.285-264.249 150.018-360.513c96.733-96.265 225.235-149.227 361.995-149.227 136.756 0 265.307 52.942 361.968 149.227s150.018 224.357 150.018 360.551c0 136.198-53.205 264.206-149.984 360.469l0.002-0.002zM256.001 255.974c-20.198 0-36.571 16.373-36.571 36.571s16.373 36.571 36.571 36.571h512c20.198 0 36.571-16.373 36.571-36.571s-16.373-36.571-36.571-36.571h-512z" />
|
||||
=======
|
||||
>>>>>>> sugon
|
||||
<glyph unicode="" glyph-name="diff" d="M730.378 622.413c60.304 0 109.189-48.886 109.189-109.189v0-586.892c0-60.304-48.886-109.189-109.189-109.189v0h-582.343c-60.304 0-109.189 48.886-109.189 109.189v0 586.892c0 60.304 48.886 109.189 109.189 109.189v0zM730.378 549.62h-582.343c-20.101 0-36.396-16.295-36.396-36.396v0-586.892c0-20.101 16.295-36.396 36.396-36.396v0h582.343c20.101 0 36.396 16.295 36.396 36.396v0 586.892c0 20.101-16.295 36.396-36.396 36.396v0zM875.965 767.998c59.701 0 108.21-47.654 109.175-106.803l0.014-1.796v-619.92c0-47.284-30.383-87.51-72.792-102.42l-0.001 722.34c0 19.793-15.972 35.875-35.794 36.195l-0.602 0.005h-582.343c-1.83 0-3.628-0.135-5.385-0.394l-97.73-0.001c14.73 41.961 54.617 72.185 101.687 72.785l1.428 0.010h582.343zM585.93 40.070c20.101 0 36.396-16.295 36.396-36.396 0-19.901-15.972-36.071-35.794-36.391l-0.602-0.005h-293.447c-20.101 0-36.396 16.295-36.396 36.396 0 19.901 15.972 36.071 35.794 36.391l0.602 0.005h293.447zM439.207 476.827c19.901 0 36.071-15.972 36.391-35.794l0.005-0.602v-109.189h110.327c20.101 0 36.396-16.295 36.396-36.396 0-19.901-15.972-36.071-35.794-36.391l-0.602-0.005h-110.327v-111.464c0-20.101-16.295-36.396-36.396-36.396-19.901 0-36.071 15.972-36.391 35.794l-0.005 0.602v111.464h-110.327c-20.101 0-36.396 16.295-36.396 36.396 0 19.901 15.972 36.071 35.794 36.391l0.602 0.005h110.327v109.189c0 20.101 16.295 36.396 36.396 36.396z" />
|
||||
<glyph unicode="" glyph-name="card-archive" d="M108.872 302.842h488.889c51.699 0 89.797 27.204 101.593 73.486 0.903 4.516 2.709 10.893 4.516 18.118v0c4.038 18.065 8.897 35.938 14.561 53.562h188.625c19.98 0 36.292-16.368 36.292-36.292v-2.765l-13.546-170.507c0-19.98 16.254-36.292 36.235-36.292s36.292 16.368 36.292 36.292v0.903l13.602 173.274c0 59.827-48.991 108.818-108.874 108.818h-20.883v174.176c0 56.215-45.322 101.593-101.593 101.593h-554.134c-56.215 0-101.593-45.378-101.593-101.593v-320.188h-19.923c-59.94 0-108.931-48.991-108.931-111.583l36.292-332.887c0-59.827 48.991-108.874 108.818-108.874h527.946c18.927 1.526 33.526 17.303 33.582 36.292v0c-0.056 18.989-14.655 34.765-33.582 36.291h-527.946c-19.923 0-36.235 16.368-36.235 39.001l-36.292 332.887c0 19.98 16.311 36.292 36.292 36.292v0zM201.378 695.612c0 16.368 13.547 29.913 29.914 29.913h554.247c16.368 0 29.913-13.546 29.913-29.913v-175.078h-117.961c-0.847 0-1.75-0.903-2.652-0.903v0c-4.102-0.022-8.148-0.947-11.852-2.709-0.847 0-0.847-0.903-1.75-0.903v0c-3.647-1.582-7.019-3.735-9.99-6.378-19.076-18.118-28.108-54.408-39.001-99.731-1.806-6.378-2.709-11.852-3.669-16.368-1.806-6.321-4.516-19.021-30.816-19.021h-396.383v321.091zM902.428 111.733l110.68-102.496c14.277-13.934 14.553-36.804 0.619-51.080-0.204-0.209-0.41-0.415-0.619-0.619v0c-6.669-6.881-15.817-10.804-25.399-10.893v0c-9.582 0.090-18.728 4.013-25.399 10.893l-47.184 48.087v-181.4c0-19.98-16.311-36.292-36.292-36.292v0c-19.996 0.093-36.173 16.296-36.235 36.292v180.497l-47.184-48.087c-6.566-7.030-15.779-10.982-25.399-10.893v0c-9.582 0.090-18.728 4.013-25.399 10.893v0c-14.277 13.934-14.553 36.804-0.619 51.080 0.204 0.209 0.41 0.415 0.619 0.619l109.72 101.593c6.898 6.424 15.974 9.99 25.399 9.99 8.184 0 16.368-2.709 22.689-8.184v0z" />
|
||||
<glyph unicode="" glyph-name="col-archive" d="M960 718.247h-896.002c-35.3 0-64-29.266-64-65.489v-769.489c0-9.004 7.199-16.371 15.999-16.371h992.002c8.8 0 15.999 7.367 15.999 16.371v769.489c0 36.223-28.699 65.489-64 65.489zM479.999-63.524c0-2.252-1.799-4.092-3.999-4.092h-408.001c-2.2 0-3.999 1.843-3.999 4.092v581.21c0 2.252 1.799 4.092 3.999 4.092h408.001c2.2 0 3.999-1.843 3.999-4.092v-581.21zM960-63.524c0-2.252-1.799-4.092-3.999-4.092h-408.001c-2.2 0-3.999 1.843-3.999 4.092v581.21c0 2.252 1.799 4.092 3.999 4.092h408.001c2.2 0 3.999-1.843 3.999-4.092v-581.21z" />
|
||||
<glyph unicode="" glyph-name="zone" d="M512 804.571c282.77 0 512-229.23 512-512v0l-0.263-16.57c-8.747-275.101-234.511-495.43-511.737-495.43-282.77 0-512 229.23-512 512v0l0.263 16.57c8.747 275.101 234.511 495.43 511.737 495.43zM529.153 680.946c-8.432 16.921-32.68 16.921-41.053-0.116-26.69-54.020-72.628-147.291-97.981-197.764-3.838-7.559-12.502-16.398-20.119-17.677-37.797-6.513-149.442-22.911-214.685-32.563-18.433-2.733-26.051-25.12-13.2-38.553 49.833-52.101 100.248-104.784 151.012-157.118 8.722-9.013 11.688-16.689 9.362-29.714-12.909-71.93-25.004-144.035-37.739-219.221-3.198-18.724 16.398-33.029 33.203-24.19 53.264 28.026 144.558 76.115 193.112 102.34 12.502 6.745 22.038 7.327 34.947 0.291 48.787-26.516 140.197-74.605 193.635-102.458 16.863-8.78 36.401 5.64 33.145 24.364-10.874 62.394-21.341 122.403-31.866 182.878-9.188 0-16.165 0.233-23.143-0.058-114.030-4.826-218-8.606-332.030-12.851-7.792-0.291-19.015 0.407-24.83 12.153-4.012 8.141-5.931 15.933-2.21 24.946 2.152 5.117 8.664 7.734 14.072 11.048 73.093 44.717 146.36 89.317 219.512 133.917 6.047 3.663 12.037 7.559 22.911 14.363v0l-303.885 40.472c0.349 5.524 0.233 3.314 0.581 8.839v0h394.191c1.396 0 2.849-0.058 4.245-0.058 15.7-0.058 22.678-9.943 19.48-23.376-1.686-7.152-8.897-12.851-14.944-17.212-68.79-49.892-137.929-99.435-206.952-149.094-1.178-0.843-2.33-1.719-3.525-2.664l-13.803-11.35c85.362-7.152 165.549-13.898 247.248-20.759-0.523 8.083 0.465 14.13-1.454 19.015-8.199 20.992 2.617 33.668 16.805 47.217 19.252 18.357 54.491 53.23 88.954 87.612l59.616 59.738c13.258 13.374 5.699 36.052-12.909 38.843-72.977 10.874-144.907 21.631-216.953 31.691-13.083 1.861-19.538 7.21-25.004 18.608-24.655 51.171-70.825 144.558-97.748 198.462z" />
|
||||
<glyph unicode="" glyph-name="col-add-right" d="M146.285 804.57v0c-80.791 0-146.285-65.494-146.285-146.285 0 0 0 0 0 0v-731.429c0-80.791 65.494-146.285 146.285-146.285 0 0 0 0 0 0h731.429c80.791 0 146.285 65.494 146.285 146.285 0 0 0 0 0 0v731.429c0 80.791-65.494 146.285-146.285 146.285 0 0 0 0 0 0h-731.429zM73.143 731.426h877.714v-877.714h-877.714v877.714zM585.143 658.284h292.572v-731.429h-292.572z" />
|
||||
<glyph unicode="" glyph-name="col-add-left" d="M877.715 804.571v0c80.791 0 146.285-65.494 146.285-146.285 0 0 0 0 0 0v-731.429c0-80.791-65.494-146.285-146.285-146.285 0 0 0 0 0 0h-731.429c-80.791 0-146.285 65.494-146.285 146.285 0 0 0 0 0 0v731.429c0 80.791 65.494 146.285 146.285 146.285 0 0 0 0 0 0h731.429zM950.857 731.427h-877.714v-877.714h877.714v877.714zM438.857 658.285h-292.572v-731.429h292.572z" />
|
||||
<glyph unicode="" glyph-name="col-split" d="M228.514 363.712h159.528v-127.192h-159.528v-153.062l-228.514 211.268 228.514 213.423v-144.438zM797.643 508.15v-146.594h-159.529v-127.192h159.529v-153.062l226.358 213.423-226.358 213.424zM513.079 695.704h-77.608v-806.266h157.373v806.266h-79.764z" />
|
||||
<glyph unicode="" glyph-name="file, file-empty" horiz-adv-x="878" d="M838.857 587.428c21.143-21.143 38.857-63.429 38.857-93.714v-658.286c0-30.286-24.571-54.857-54.857-54.857h-768c-30.286 0-54.857 24.571-54.857 54.857v914.286c0 30.286 24.571 54.857 54.857 54.857h512c30.286 0 72.571-17.714 93.714-38.857zM585.143 726.857v-214.857h214.857c-3.429 9.714-8.571 19.429-12.571 23.429l-178.857 178.857c-4 4-13.714 9.143-23.429 12.571zM804.571-146.286v585.143h-237.714c-30.286 0-54.857 24.571-54.857 54.857v237.714h-438.857v-877.714h731.429z" />
|
||||
<glyph unicode="" glyph-name="book" d="M948.764 510.653c13.529-19.482 17.318-44.918 9.741-69.81l-148.822-490.3c-13.529-45.999-61.152-81.716-107.693-81.716h-499.501c-55.199 0-114.186 43.835-134.21 100.116-8.658 24.352-8.658 48.165-1.083 68.728 1.083 10.823 3.248 21.647 3.789 34.635 0.541 8.658-4.329 15.694-3.248 22.188 2.165 12.988 13.529 22.188 22.188 36.799 16.235 27.058 34.635 70.893 40.587 99.033 2.706 10.281-2.706 22.188 0 31.388 2.706 10.281 12.988 17.859 18.401 27.6 14.612 24.894 33.554 73.058 36.259 98.493 1.083 11.364-4.329 23.811-1.083 32.471 3.789 12.447 15.694 17.859 23.811 28.682 12.988 17.859 34.635 69.269 37.881 97.952 1.083 9.199-4.329 18.401-2.706 28.14 2.165 10.281 15.153 21.106 23.811 33.554 22.728 33.554 27.058 107.693 95.787 88.211l-0.541-1.623c9.199 2.165 18.401 4.871 27.6 4.871h411.831c25.434 0 48.165-11.364 61.694-30.306 14.070-19.482 17.318-44.918 9.741-70.352l-148.281-490.3c-25.434-83.34-39.505-101.74-108.235-101.74h-470.277c-7.035 0-15.694-1.623-20.565-8.117-4.329-6.495-4.871-11.364-0.541-23.269 10.823-31.388 48.165-37.881 77.93-37.881h499.501c20.024 0 43.293 11.364 49.247 30.846l162.352 534.135c3.248 10.281 3.248 21.106 2.706 30.846 12.447-4.871 23.811-12.447 31.929-23.269zM372.959 509.57c-3.248-9.741 2.165-17.318 11.905-17.318h329.032c9.199 0 19.482 7.576 22.728 17.318l11.364 34.635c3.248 9.741-2.165 17.318-11.905 17.318h-329.032c-9.199 0-19.482-7.576-22.728-17.318zM328.043 371.031c-3.248-9.741 2.165-17.318 11.905-17.318h329.032c9.199 0 19.482 7.576 22.728 17.318l11.364 34.635c3.248 9.741-2.165 17.318-11.905 17.318h-329.032c-9.199 0-19.482-7.576-22.728-17.318z" />
|
||||
<glyph unicode="" glyph-name="share" d="M960.285 412.526c0-8.506-3.502-16.511-9.505-22.514l-256.163-256.163c-6.003-6.003-14.008-9.505-22.514-9.505-17.512 0-32.020 14.509-32.020 32.020v128.082h-112.072c-215.638 0-357.227-41.527-357.227-280.178 0-20.513 1.001-41.025 2.501-61.54 0.5-8.005 2.501-17.011 2.501-25.015 0-9.505-6.003-17.512-16.010-17.512-7.004 0-10.506 3.502-14.008 8.506-7.505 10.506-13.009 26.518-18.511 38.025-28.517 64.041-63.54 155.598-63.54 225.643 0 56.036 5.504 113.572 26.518 166.606 69.545 172.609 273.673 201.628 437.778 201.628h112.072v128.082c0 17.512 14.509 32.020 32.020 32.020 8.506 0 16.511-3.502 22.514-9.505l256.163-256.163c6.003-6.003 9.505-14.008 9.505-22.514z" />
|
||||
@@ -223,6 +227,7 @@
|
||||
<glyph unicode="" glyph-name="sort-up" d="M821.728 404.932c0-21.173-17.543-38.715-38.715-38.715h-542.026c-21.173 0-38.715 17.543-38.715 38.715 0 10.284 4.237 19.966 11.492 27.221l271.013 271.013c7.263 7.263 16.937 11.492 27.221 11.492s19.966-4.237 27.221-11.492l271.013-271.013c7.263-7.263 11.492-16.937 11.492-27.221z" />
|
||||
<glyph unicode="" glyph-name="file-text" horiz-adv-x="878" d="M838.857 587.428c21.143-21.143 38.857-63.429 38.857-93.714v-658.286c0-30.286-24.571-54.857-54.857-54.857h-768c-30.286 0-54.857 24.571-54.857 54.857v914.286c0 30.286 24.571 54.857 54.857 54.857h512c30.286 0 72.571-17.714 93.714-38.857zM585.143 726.857v-214.857h214.857c-3.429 9.714-8.571 19.429-12.571 23.429l-178.857 178.857c-4 4-13.714 9.143-23.429 12.571zM804.571-146.286v585.143h-237.714c-30.286 0-54.857 24.571-54.857 54.857v237.714h-438.857v-877.714h731.429zM219.429 347.428c0 10.286 8 18.286 18.286 18.286h402.286c10.286 0 18.286-8 18.286-18.286v-36.571c0-10.286-8-18.286-18.286-18.286h-402.286c-10.286 0-18.286 8-18.286 18.286v36.571zM640 219.428c10.286 0 18.286-8 18.286-18.286v-36.571c0-10.286-8-18.286-18.286-18.286h-402.286c-10.286 0-18.286 8-18.286 18.286v36.571c0 10.286 8 18.286 18.286 18.286h402.286zM640 73.142c10.286 0 18.286-8 18.286-18.286v-36.571c0-10.286-8-18.286-18.286-18.286h-402.286c-10.286 0-18.286 8-18.286 18.286v36.571c0 10.286 8 18.286 18.286 18.286h402.286z" />
|
||||
<glyph unicode="" glyph-name="angle-double-right" d="M568.435 284.446c0-4.56-2.281-9.69-5.7-13.112l-265.638-265.638c-3.421-3.421-8.55-5.7-13.112-5.7s-9.69 2.281-13.112 5.7l-28.502 28.502c-3.421 3.421-5.7 8.55-5.7 13.112s2.281 9.69 5.7 13.112l224.023 224.023-224.023 224.023c-3.421 3.421-5.7 8.55-5.7 13.112s2.281 9.69 5.7 13.112l28.502 28.502c3.421 3.421 8.55 5.7 13.112 5.7s9.69-2.281 13.112-5.7l265.638-265.638c3.421-3.421 5.7-8.55 5.7-13.112zM787.329 284.446c0-4.56-2.281-9.69-5.7-13.112l-265.638-265.638c-3.421-3.421-8.55-5.7-13.112-5.7s-9.69 2.281-13.112 5.7l-28.502 28.502c-3.421 3.421-5.7 8.55-5.7 13.112s2.281 9.69 5.7 13.112l224.023 224.023-224.023 224.023c-3.421 3.421-5.7 8.55-5.7 13.112s2.281 9.69 5.7 13.112l28.502 28.502c3.421 3.421 8.55 5.7 13.112 5.7s9.69-2.281 13.112-5.7l265.638-265.638c3.421-3.421 5.7-8.55 5.7-13.112z" />
|
||||
<glyph unicode="" glyph-name="code-fork" horiz-adv-x="585" d="M164.571-36.572c0 30.286-24.571 54.857-54.857 54.857s-54.857-24.571-54.857-54.857 24.571-54.857 54.857-54.857 54.857 24.571 54.857 54.857zM164.571 621.714c0 30.286-24.571 54.857-54.857 54.857s-54.857-24.571-54.857-54.857 24.571-54.857 54.857-54.857 54.857 24.571 54.857 54.857zM530.286 548.571c0 30.286-24.571 54.857-54.857 54.857s-54.857-24.571-54.857-54.857 24.571-54.857 54.857-54.857 54.857 24.571 54.857 54.857zM585.143 548.571c0-40.571-22.286-76-54.857-94.857-1.714-206.286-148-252-245.143-282.857-90.857-28.571-120.571-42.286-120.571-97.714v-14.857c32.571-18.857 54.857-54.286 54.857-94.857 0-60.571-49.143-109.714-109.714-109.714s-109.714 49.143-109.714 109.714c0 40.571 22.286 76 54.857 94.857v468.571c-32.571 18.857-54.857 54.286-54.857 94.857 0 60.571 49.143 109.714 109.714 109.714s109.714-49.143 109.714-109.714c0-40.571-22.286-76-54.857-94.857v-284c29.143 14.286 60 24 88 32.571 106.286 33.714 166.857 58.857 168 178.286-32.571 18.857-54.857 54.286-54.857 94.857 0 60.571 49.143 109.714 109.714 109.714s109.714-49.143 109.714-109.714z" />
|
||||
<glyph unicode="" glyph-name="file-alt" horiz-adv-x="878" d="M585.143 512v269.714c8-5.143 14.857-10.286 20.571-16l233.143-233.143c5.714-5.714 10.857-12.571 16-20.571h-269.714zM512 493.714c0-30.286 24.571-54.857 54.857-54.857h310.857v-603.429c0-30.286-24.571-54.857-54.857-54.857h-768c-30.286 0-54.857 24.571-54.857 54.857v914.286c0 30.286 24.571 54.857 54.857 54.857h457.143v-310.857z" />
|
||||
<glyph unicode="" glyph-name="file-text-alt" horiz-adv-x="878" d="M838.857 532.571c5.714-5.714 10.857-12.571 16-20.571h-269.714v269.714c8-5.143 14.857-10.286 20.571-16zM566.857 438.857h310.857v-603.429c0-30.286-24.571-54.857-54.857-54.857h-768c-30.286 0-54.857 24.571-54.857 54.857v914.286c0 30.286 24.571 54.857 54.857 54.857h457.143v-310.857c0-30.286 24.571-54.857 54.857-54.857zM658.286 18.285v36.571c0 10.286-8 18.286-18.286 18.286h-402.286c-10.286 0-18.286-8-18.286-18.286v-36.571c0-10.286 8-18.286 18.286-18.286h402.286c10.286 0 18.286 8 18.286 18.286zM658.286 164.571v36.571c0 10.286-8 18.286-18.286 18.286h-402.286c-10.286 0-18.286-8-18.286-18.286v-36.571c0-10.286 8-18.286 18.286-18.286h402.286c10.286 0 18.286 8 18.286 18.286zM658.286 310.857v36.571c0 10.286-8 18.286-18.286 18.286h-402.286c-10.286 0-18.286-8-18.286-18.286v-36.571c0-10.286 8-18.286 18.286-18.286h402.286c10.286 0 18.286 8 18.286 18.286z" />
|
||||
<glyph unicode="" glyph-name="file-pdf" horiz-adv-x="878" d="M838.857 587.428c21.143-21.143 38.857-63.429 38.857-93.714v-658.286c0-30.286-24.571-54.857-54.857-54.857h-768c-30.286 0-54.857 24.571-54.857 54.857v914.286c0 30.286 24.571 54.857 54.857 54.857h512c30.286 0 72.571-17.714 93.714-38.857zM585.143 726.857v-214.857h214.857c-3.429 9.714-8.571 19.429-12.571 23.429l-178.857 178.857c-4 4-13.714 9.143-23.429 12.571zM804.571-146.286v585.143h-237.714c-30.286 0-54.857 24.571-54.857 54.857v237.714h-438.857v-877.714h731.429zM510.857 192.571c14.286-11.429 30.286-21.714 48-32 24 2.857 46.286 4 66.857 4 38.286 0 86.857-4.571 101.143-28 4-5.714 7.429-16 1.143-29.714-0.571-0.571-1.143-1.714-1.714-2.286v-0.571c-1.714-10.286-10.286-21.714-40.571-21.714-36.571 0-92 16.571-140 41.714-79.429-8.571-162.857-26.286-224-47.429-58.857-100.571-104-149.714-138.286-149.714-5.714 0-10.857 1.143-16 4l-13.714 6.857c-1.714 0.571-2.286 1.714-3.429 2.857-2.857 2.857-5.143 9.143-3.429 20.571 5.714 26.286 36.571 70.286 107.429 107.429 4.571 2.857 10.286 1.143 13.143-3.429 0.571-0.571 1.143-1.714 1.143-2.286 17.714 29.143 38.286 66.286 61.143 112.571 25.714 51.429 45.714 101.714 59.429 149.714-18.286 62.286-24 126.286-13.714 164 4 14.286 12.571 22.857 24 22.857h12.571c8.571 0 15.429-2.857 20-8.571 6.857-8 8.571-20.571 5.143-38.857-0.571-1.714-1.143-3.429-2.286-4.571 0.571-1.714 0.571-2.857 0.571-4.571v-17.143c-0.571-36-1.143-70.286-8-109.714 20-60 49.714-108.571 83.429-136zM181.714-42.286c17.143 8 41.714 32.571 78.286 90.286-42.857-33.143-69.714-70.857-78.286-90.286zM409.143 483.428c-5.714-16-5.714-43.429-1.143-75.429 1.714 9.143 2.857 17.714 4 25.143 1.143 9.714 2.857 17.714 4 24.571 0.571 1.714 1.143 2.857 2.286 4.571-0.571 0.571-0.571 1.714-1.143 2.857-0.571 10.286-4 16.571-7.429 20.571 0-1.143-0.571-1.714-0.571-2.286zM338.286 105.714c50.286 20 106.286 36 162.286 46.286-5.714 4.571-11.429 8.571-16.571 13.143-28 24.571-53.143 58.857-72.571 100.571-10.857-34.857-26.857-72-47.429-112.571-8.571-16-17.143-32-25.714-47.429zM707.429 114.857c-2.857 2.857-17.714 13.714-80 13.714 28-10.286 53.714-16 70.857-16 5.143 0 8 0 10.286 0.571 0 0.571-0.571 1.143-1.143 1.714z" />
|
||||
|
||||
|
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 220 KiB |
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user