Merge branch 'master' of http://gitlab.zcorp.cc/easycorp/zentaopms
This commit is contained in:
@@ -1901,6 +1901,22 @@ class execution extends control
|
||||
}
|
||||
|
||||
$statusCount[$status] += isset($kanbanGroup[$projectID][$status]) ? count($kanbanGroup[$projectID][$status]) : 0;
|
||||
|
||||
/* Up to five closed executions are displayed. */
|
||||
if($status == 'closed')
|
||||
{
|
||||
if(isset($myExecutions[$status]) and count($myExecutions[$status]) >= 5)
|
||||
{
|
||||
$myExecutions[$status] = array_slice($myExecutions[$status], 0, 5, true);
|
||||
$myExecutions[$status]['more'] = $this->lang->execution->showMore;
|
||||
}
|
||||
|
||||
if(isset($kanbanGroup[$projectID][$status]) and count($kanbanGroup[$projectID][$status]) >= 5)
|
||||
{
|
||||
$kanbanGroup[$projectID][$status] = array_slice($kanbanGroup[$projectID][$status], 0, 5, true);
|
||||
$kanbanGroup[$projectID][$status]['more'] = $this->lang->execution->showMore;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(empty($kanbanGroup[$projectID])) continue;
|
||||
@@ -2686,7 +2702,7 @@ class execution extends control
|
||||
{
|
||||
$orderedExecutions = array();
|
||||
|
||||
$projects = $this->loadModel('program')->getProjectList(0, 'all', 0, 'order_asc');
|
||||
$projects = $this->loadModel('program')->getProjectList(0, 'all', 0, 'order_asc', null, 0, 0, true);
|
||||
$executionGroups = $this->dao->select('*')->from(TABLE_EXECUTION)
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('type')->in('sprint,stage')
|
||||
|
||||
@@ -100,6 +100,7 @@ $lang->execution->copyNoExecution = 'There are no ' . $lang->executionCommon . '
|
||||
$lang->execution->noTeam = 'No team members at the moment';
|
||||
$lang->execution->or = ' or ';
|
||||
$lang->execution->selectProject = 'Please select project';
|
||||
$lang->execution->showMore = 'View closed executions';
|
||||
|
||||
if($this->config->systemMode == 'new') $lang->execution->copyTeamTip = "select Project/{$lang->execution->common} to copy its members";
|
||||
if($this->config->systemMode == 'classic') $lang->execution->copyTeamTip = "select Project/{$lang->executionCommon} to copy its members";
|
||||
|
||||
@@ -101,6 +101,7 @@ $lang->execution->copyNoExecution = 'There are no ' . $lang->executionCommon . '
|
||||
$lang->execution->noTeam = 'No team members at the moment';
|
||||
$lang->execution->or = ' or ';
|
||||
$lang->execution->selectProject = 'Please select project';
|
||||
$lang->execution->showMore = 'View closed executions';
|
||||
|
||||
if($this->config->systemMode == 'new') $lang->execution->copyTeamTip = "select Project/{$lang->execution->common} to copy its members";
|
||||
if($this->config->systemMode == 'classic') $lang->execution->copyTeamTip = "select Project/{$lang->executionCommon} to copy its members";
|
||||
|
||||
@@ -100,6 +100,7 @@ $lang->execution->copyNoExecution = 'There are no ' . $lang->executionCommon . '
|
||||
$lang->execution->noTeam = 'No team members at the moment';
|
||||
$lang->execution->or = ' or ';
|
||||
$lang->execution->selectProject = 'Please select project';
|
||||
$lang->execution->showMore = 'View closed executions';
|
||||
|
||||
if($this->config->systemMode == 'new') $lang->execution->copyTeamTip = "select Project/{$lang->execution->common} to copy its members";
|
||||
if($this->config->systemMode == 'classic') $lang->execution->copyTeamTip = "select Project/{$lang->executionCommon} to copy its members";
|
||||
|
||||
@@ -100,6 +100,8 @@ $lang->execution->recent = 'Recent visits: ';
|
||||
$lang->execution->copyNoExecution = 'There are no ' . $lang->executionCommon . 'available to copy.';
|
||||
$lang->execution->noTeam = 'No team members at the moment';
|
||||
$lang->execution->or = ' or ';
|
||||
$lang->execution->selectProject = 'Please select project';
|
||||
$lang->execution->showMore = 'View closed executions';
|
||||
|
||||
if($this->config->systemMode == 'new') $lang->execution->copyTeamTip = "select Project/{$lang->execution->common} to copy its members";
|
||||
if($this->config->systemMode == 'classic') $lang->execution->copyTeamTip = "select Project/{$lang->executionCommon} to copy its members";
|
||||
|
||||
@@ -101,6 +101,7 @@ $lang->execution->copyNoExecution = '没有可用的' . $lang->executionCommon .
|
||||
$lang->execution->noTeam = '暂时没有团队成员';
|
||||
$lang->execution->or = '或';
|
||||
$lang->execution->selectProject = '请选择项目';
|
||||
$lang->execution->showMore = '点击查看所有已关闭的执行';
|
||||
|
||||
if($this->config->systemMode == 'new') $lang->execution->copyTeamTip = "可以选择复制项目或{$lang->execution->common}团队的成员";
|
||||
if($this->config->systemMode == 'classic') $lang->execution->copyTeamTip = "可以选择复制{$lang->executionCommon}团队的成员";
|
||||
|
||||
@@ -100,6 +100,7 @@ $lang->execution->recent = '近期訪問:';
|
||||
$lang->execution->copyNoExecution = '沒有可用的' . $lang->executionCommon . '來複制';
|
||||
$lang->execution->noTeam = '暫時沒有團隊成員';
|
||||
$lang->execution->selectProject = '請選擇項目';
|
||||
$lang->execution->showMore = '點擊查看所有已關閉的執行';
|
||||
|
||||
$lang->execution->start = "開始";
|
||||
$lang->execution->activate = "激活";
|
||||
|
||||
@@ -13,24 +13,23 @@
|
||||
#tabContent {margin-top: 10px; z-index: 900;}
|
||||
#tabContent ul {list-style: none; margin: 0}
|
||||
#tabContent .tab-pane>ul {padding-left: 7px;}
|
||||
#tabContent .tab-pane>ul>li.hide-in-search {position: relative;}
|
||||
#tabContent .tab-pane>ul>li>label+a {padding-left: 45px;}
|
||||
#tabContent .tab-pane>ul>li label {background: rgba(131,138,157,0.5); position: absolute; top: 0; left: 5px;}
|
||||
#tabContent .tab-pane>ul>li.hide-in-search>div {display: flex; flex-flow: row nowrap; justify-content: flex-start; align-items: center;}
|
||||
#tabContent .tab-pane>ul>li label {background: rgba(255,255,255,0.5); line-height: unset; color: #838a9d; border: 1px solid #d8d8d8; border-radius: 2px; padding: 1px 4px;}
|
||||
#tabContent li a i.icon {font-size: 15px !important;}
|
||||
#tabContent li a i.icon:before {min-width: 16px !important;}
|
||||
#tabContent li .label {margin-top: 2px; position: unset;}
|
||||
#tabContent li ul {padding-left: 15px;}
|
||||
#tabContent li>a {margin-top: 5px;display: block; padding: 2px 10px 2px 5px; overflow: hidden; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; border-radius: 4px;}
|
||||
#tabContent li .label {position: unset; margin-bottom: 0;}
|
||||
#tabContent li>a, #tabContent li>div>a {display: block; padding: 2px 10px 2px 5px; overflow: hidden; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; border-radius: 4px;}
|
||||
#tabContent li>a.selected {color: #e9f2fb; background-color: #0c64eb;}
|
||||
#tabContent .tree li>.list-toggle {line-height: 24px;}
|
||||
#tabContent .tree li.has-list.open:before {content: unset;}
|
||||
|
||||
#swapper li.hide-in-search>a:focus, #swapper li.hide-in-search>a:hover {color: #838a9d; cursor: default;}
|
||||
#swapper li ul li a:focus, #swapper li ul li a:hover, .noProject li a:focus, .noProject li a:hover {background: #0c64eb; color: #fff;}
|
||||
#swapper li.hide-in-search>div>a:focus, #swapper li.hide-in-search>div>a:hover {color: #838a9d; cursor: default;}
|
||||
a.executionName:focus, a.executionName:hover {background: #0c64eb; color: #fff !important;}
|
||||
</style>
|
||||
<?php
|
||||
$executionCounts = array();
|
||||
$executionNames = array();
|
||||
$myExecutionsHtml = '';
|
||||
$normalExecutionsHtml = '';
|
||||
$preFix = '';
|
||||
$closedExecutionsHtml = '';
|
||||
$tabActive = '';
|
||||
$myExecutions = 0;
|
||||
@@ -52,20 +51,19 @@ foreach($executions as $projectID => $projectExecutions)
|
||||
}
|
||||
$executionsPinYin = common::convert2Pinyin($executionNames);
|
||||
|
||||
$myExecutionsHtml = $config->systemMode == 'new' ? '<ul class="tree tree-angles" data-ride="tree">' : '<ul class="noProgram">';
|
||||
$normalExecutionsHtml = $config->systemMode == 'new' ? '<ul class="tree tree-angles" data-ride="tree">' : '<ul class="noProgram">';
|
||||
|
||||
foreach($executions as $projectID => $projectExecutions)
|
||||
{
|
||||
/* Adapt to the old version. */
|
||||
if($projectID and $config->systemMode == 'new')
|
||||
{
|
||||
$projectName = zget($projects, $projectID);
|
||||
$preFix = $projectName . '/';
|
||||
|
||||
if($executionCounts[$projectID]['myExecution']) $myExecutionsHtml .= '<ul><li class="hide-in-search"><label class="label">' . $lang->project->common . '</label><a class="text-muted" title="' . $projectName . '">' . $projectName . '</a></li><li><ul>';
|
||||
if($executionCounts[$projectID]['others']) $normalExecutionsHtml .= '<ul><li class="hide-in-search"><label class="label">' . $lang->project->common . '</label><a class="text-muted" title="' . $projectName . '">' . $projectName . '</a></li><li><ul>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if($executionCounts[$projectID]['myExecution']) $myExecutionsHtml .= '<ul class="noProject">';
|
||||
if($executionCounts[$projectID]['others']) $normalExecutionsHtml .= '<ul class="noProject">';
|
||||
if($executionCounts[$projectID]['myExecution']) $myExecutionsHtml .= '<li class="hide-in-search"><div><a class="text-muted" title="' . $projectName . '">' . $projectName . '</a> <label class="label">' . $lang->project->common . '</label></div><ul>';
|
||||
if($executionCounts[$projectID]['others']) $normalExecutionsHtml .= '<li class="hide-in-search"><div><a class="text-muted" title="' . $projectName . '">' . $projectName . '</a> <label class="label">' . $lang->project->common . '</label></div><ul>';
|
||||
}
|
||||
|
||||
foreach($projectExecutions as $index => $execution)
|
||||
@@ -73,7 +71,7 @@ foreach($executions as $projectID => $projectExecutions)
|
||||
$selected = $execution->id == $executionID ? 'selected' : '';
|
||||
if($execution->status != 'done' and $execution->status != 'closed' and ($execution->PM == $this->app->user->account or isset($execution->teams[$this->app->user->account])))
|
||||
{
|
||||
$myExecutionsHtml .= '<li>' . html::a(sprintf($link, $execution->id), $execution->name, '', "class='$selected' title='{$execution->name}' data-key='" . zget($executionsPinYin, $execution->name, '') . "' data-app='{$this->app->openApp}'") . '</li>';
|
||||
$myExecutionsHtml .= '<li>' . html::a(sprintf($link, $execution->id), $execution->name, '', "class='$selected executionName' title='{$execution->name}' data-key='" . zget($executionsPinYin, $execution->name, '') . "' data-app='{$this->app->openApp}'") . '</li>';
|
||||
|
||||
if($selected == 'selected') $tabActive = 'myExecution';
|
||||
|
||||
@@ -81,7 +79,7 @@ foreach($executions as $projectID => $projectExecutions)
|
||||
}
|
||||
else if($execution->status != 'done' and $execution->status != 'closed' and $execution->PM != $this->app->user->account and !isset($execution->teams[$this->app->user->account]))
|
||||
{
|
||||
$normalExecutionsHtml .= '<li>' . html::a(sprintf($link, $execution->id), $execution->name, '', "class='$selected' title='{$execution->name}' data-key='" . zget($executionsPinYin, $execution->name, '') . "' data-app='{$this->app->openApp}'") . '</li>';
|
||||
$normalExecutionsHtml .= '<li>' . html::a(sprintf($link, $execution->id), $execution->name, '', "class='$selected executionName' title='{$execution->name}' data-key='" . zget($executionsPinYin, $execution->name, '') . "' data-app='{$this->app->openApp}'") . '</li>';
|
||||
|
||||
if($selected == 'selected') $tabActive = 'other';
|
||||
|
||||
@@ -89,7 +87,7 @@ foreach($executions as $projectID => $projectExecutions)
|
||||
}
|
||||
else if($execution->status == 'done' or $execution->status == 'closed')
|
||||
{
|
||||
$closedExecutionsHtml .= html::a(sprintf($link, $execution->id), $execution->name, '', "class='$selected' title='{$execution->name}' data-key='" . zget($executionsPinYin, $execution->name, '') . "' data-app='{$this->app->openApp}'");
|
||||
$closedExecutionsHtml .= html::a(sprintf($link, $execution->id), $preFix . $execution->name, '', "class='$selected' title='" . $preFix . $execution->name . "' data-key='" . zget($executionsPinYin, $execution->name, '') . "' data-app='{$this->app->openApp}'");
|
||||
|
||||
if($selected == 'selected') $tabActive = 'closed';
|
||||
}
|
||||
@@ -101,10 +99,9 @@ foreach($executions as $projectID => $projectExecutions)
|
||||
if($executionCounts[$projectID]['others']) $normalExecutionsHtml .= '</ul></li>';
|
||||
}
|
||||
}
|
||||
|
||||
if($executionCounts[$projectID]['myExecution']) $myExecutionsHtml .= '</ul>';
|
||||
if($executionCounts[$projectID]['others']) $normalExecutionsHtml .= '</ul>';
|
||||
}
|
||||
$myExecutionsHtml .= '</ul>';
|
||||
$normalExecutionsHtml .= '</ul>';
|
||||
?>
|
||||
<div class="table-row">
|
||||
<div class="table-col col-left">
|
||||
@@ -144,10 +141,8 @@ $(function()
|
||||
{
|
||||
$(this).siblings().show();
|
||||
$(this).parent().siblings('li').find('span').hide();
|
||||
if($(this).attr('class') != 'active') $('#dropMenu').removeClass('show-right-col');
|
||||
$("#dropMenu .search-box").width('auto');
|
||||
})
|
||||
|
||||
if(config.clientLang == 'en') $('#tabContent .tab-pane>ul>li>label+a').css('padding-left', '55px');
|
||||
$('#tabContent [data-ride="tree"]').tree('expand');
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -95,8 +95,8 @@ td.hours {text-align: right; overflow: hidden; text-overflow: ellipsis; white-sp
|
||||
<span class='project-type-label label label-outline <?php echo $execution->type == 'sprint' ? 'label-info' : 'label-warning';?>'><?php echo $lang->execution->typeList[$execution->type]?></span>
|
||||
<?php endif;?>
|
||||
<?php
|
||||
if(isset($execution->delay)) echo "<span class='label label-danger label-badge'>{$lang->execution->delayed}</span> ";
|
||||
echo !empty($execution->children) ? $execution->name : html::a($this->createLink('execution', 'task', 'execution=' . $execution->id), $execution->name);
|
||||
if(isset($execution->delay)) echo "<span class='label label-danger label-badge'>{$lang->execution->delayed}</span> ";
|
||||
?>
|
||||
<?php if(!empty($execution->children)):?>
|
||||
<a class="plan-toggle" data-id="<?php echo $execution->id;?>"><i class="icon icon-angle-double-right"></i></a>
|
||||
|
||||
@@ -45,14 +45,21 @@
|
||||
<div class="board s-<?php echo $colStatus?>">
|
||||
<div>
|
||||
<?php if(!empty($executionList[$colStatus])):?>
|
||||
<?php foreach($executionList[$colStatus] as $execution):?>
|
||||
<div class='board-item' <?php if($execution->status == 'doing' and isset($execution->delay)) echo "style='border-left: 3px solid red';";?>>
|
||||
<?php foreach($executionList[$colStatus] as $executionID => $execution):?>
|
||||
<div class='board-item' <?php if($colStatus == 'doing' and isset($execution->delay)) echo "style='border-left: 3px solid red';";?>>
|
||||
<div class='table-row'>
|
||||
<div class='table-col'>
|
||||
<?php
|
||||
if(common::hasPriv('execution', 'task'))
|
||||
{
|
||||
echo html::a($this->createLink('execution', 'task', "executionID=$execution->id"), $execution->name, '', "title='{$execution->name}'");
|
||||
if($executionID == 'more')
|
||||
{
|
||||
echo html::a($this->createLink('execution', 'all', "status=closed&projectID=$projectID"), $execution, '', "title='$execution'");
|
||||
}
|
||||
else
|
||||
{
|
||||
echo html::a($this->createLink('execution', 'task', "executionID=$execution->id"), $execution->name, '', "title='{$execution->name}'");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -5,8 +5,8 @@ body {padding-left: 96px;}
|
||||
#menuNav {position: absolute; top: 5px; bottom: 40px; width: 100%;}
|
||||
#menu .nav > li {float: none; padding: 2px 8px;}
|
||||
#menu .nav > li > a {color: #fff; line-height: 24px; padding: 6px; border-radius: 2px; white-space: nowrap; height: 36px;}
|
||||
#menu .nav > li > a > .icon {display: inline-block; font-size: 16px;}
|
||||
#menu .nav > li > a > .icon + .text {margin-left: 4px;}
|
||||
#menu .nav > li > a > .icon {display: inline-block; font-size: 16px; position: relative; top: -1px}
|
||||
#menu .nav > li > a > .icon + .text {margin-left: 4px; position: relative; top: -1px}
|
||||
#menu .nav > li.active > a, #menu .nav > li > a:hover, #menu .nav > li > a:focus {background-color: #0c64eb;}
|
||||
#menu .nav > li.divider {margin: 8px; background-color: #fff; opacity: 0.24; height: 1px; padding: 0 !important;}
|
||||
#menuFooter {position: absolute; bottom: 0; left: 0; right: 0;}
|
||||
@@ -21,6 +21,7 @@ body.menu-hide {padding-left: 0;}
|
||||
.menu-hide #menuToggleItem {display: list-item;}
|
||||
.menu-hide #menu .nav > li {padding: 2px 4px;}
|
||||
.menu-hide #menu .nav > li > a {padding: 6px 4px; text-align: center;}
|
||||
.menu-hide #menu .nav > li > a > .icon {top: 1px}
|
||||
.menu-hide #menu .nav > li > a > .text {display: none;}
|
||||
.menu-hide #menu .nav > li.has-avatar > a {padding: 2px 0;}
|
||||
#menuMoreNav {display: none;}
|
||||
|
||||
@@ -534,7 +534,7 @@
|
||||
$(document).on('click', '.open-in-app,.show-in-app', function(e)
|
||||
{
|
||||
var $link = $(this);
|
||||
if($link.is('[data-modal],[data-toggle!="tooltip"],.iframe,.not-in-app')) return;
|
||||
if($link.is('[data-modal],[data-toggle][data-toggle!="tooltip"],.iframe,.not-in-app')) return;
|
||||
var url = $link.hasClass('show-in-app') ? '' : ($link.attr('href') || $link.data('url'));
|
||||
if(url && url.indexOf('onlybody=yes') > 0) return;
|
||||
if(openApp(url, $link.data('app')))
|
||||
|
||||
@@ -54,7 +54,7 @@ js::set('defaultOpen', $open);
|
||||
<div id='menuFooter'>
|
||||
<ul id="flodNav" class="nav">
|
||||
<li id='menuToggleMenu'>
|
||||
<a type='button' class='menu-toggle' data-collapse-text='<?php echo $lang->collapseMenu; ?>' data-unfold-text='<?php echo $lang->unfoldMenu; ?>'>
|
||||
<a class='menu-toggle' data-collapse-text='<?php echo $lang->collapseMenu; ?>' data-unfold-text='<?php echo $lang->unfoldMenu; ?>'>
|
||||
<i class='icon icon-sm icon-menu-collapse'></i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1019,7 +1019,7 @@ class my extends control
|
||||
$this->view->programLink = isset($this->config->programLink) ? $this->config->programLink : 'program-browse';
|
||||
$this->view->productLink = isset($this->config->productLink) ? $this->config->productLink : 'product-all';
|
||||
$this->view->projectLink = isset($this->config->projectLink) ? $this->config->projectLink : 'project-browse';
|
||||
$this->view->executionLink = isset($this->config->executionLink) ? $this->config->executionLink : 'execution-executionkanban';
|
||||
$this->view->executionLink = isset($this->config->executionLink) ? $this->config->executionLink : 'execution-task';
|
||||
$this->view->preferenceSetted = isset($this->config->preferenceSetted) ? true : false;
|
||||
|
||||
$this->display();
|
||||
|
||||
@@ -102,6 +102,7 @@ $lang->my->projectLinkList['project-index'] = 'By default, go to the most re
|
||||
$lang->my->executionLinkList = array();
|
||||
if($config->systemMode == 'new')
|
||||
{
|
||||
$lang->my->executionLinkList['execution-all'] = 'Enter the execution list by default, you can view all executions';
|
||||
$lang->my->executionLinkList['execution-task'] = 'By default, enter the list of the most recently executed task, and you can view the task information under the current iteration';
|
||||
$lang->my->executionLinkList['execution-executionkanban'] = 'By default, you can enter the execution Kanban to view the execution status of projects in progress';
|
||||
}
|
||||
|
||||
@@ -109,6 +109,7 @@ $lang->my->projectLinkList['project-index'] = 'By default, go to the most re
|
||||
$lang->my->executionLinkList = array();
|
||||
if($config->systemMode == 'new')
|
||||
{
|
||||
$lang->my->executionLinkList['execution-all'] = 'Enter the execution list by default, you can view all executions';
|
||||
$lang->my->executionLinkList['execution-task'] = 'By default, enter the list of the most recently executed task, and you can view the task information under the current iteration';
|
||||
$lang->my->executionLinkList['execution-executionkanban'] = 'By default, you can enter the execution Kanban to view the execution status of projects in progress';
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@ $lang->my->projectLinkList['project-index'] = 'By default, go to the most re
|
||||
$lang->my->executionLinkList = array();
|
||||
if($config->systemMode == 'new')
|
||||
{
|
||||
$lang->my->executionLinkList['execution-all'] = 'Enter the execution list by default, you can view all executions';
|
||||
$lang->my->executionLinkList['execution-task'] = 'By default, enter the list of the most recently executed task, and you can view the task information under the current iteration';
|
||||
$lang->my->executionLinkList['execution-executionkanban'] = 'By default, you can enter the execution Kanban to view the execution status of projects in progress';
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@ $lang->my->projectLinkList['project-index'] = 'By default, go to the most re
|
||||
$lang->my->executionLinkList = array();
|
||||
if($config->systemMode == 'new')
|
||||
{
|
||||
$lang->my->executionLinkList['execution-all'] = 'Enter the execution list by default, you can view all executions';
|
||||
$lang->my->executionLinkList['execution-task'] = 'By default, enter the list of the most recently executed task, and you can view the task information under the current iteration';
|
||||
$lang->my->executionLinkList['execution-executionkanban'] = 'By default, you can enter the execution Kanban to view the execution status of projects in progress';
|
||||
}
|
||||
|
||||
@@ -109,6 +109,7 @@ $lang->my->projectLinkList['project-index'] = '默认进入最近一个项
|
||||
$lang->my->executionLinkList = array();
|
||||
if($config->systemMode == 'new')
|
||||
{
|
||||
$lang->my->executionLinkList['execution-all'] = '默认进入执行列表,可以查看所有的执行';
|
||||
$lang->my->executionLinkList['execution-task'] = '默认进入最近一个执行的任务列表,可以查看当前迭代下的任务信息';
|
||||
$lang->my->executionLinkList['execution-executionkanban'] = '默认进入执行看板,可以查看进行中项目的执行情况';
|
||||
}
|
||||
|
||||
@@ -109,6 +109,7 @@ $lang->my->projectLinkList['project-index'] = '預設進入最近一個項
|
||||
$lang->my->executionLinkList = array();
|
||||
if($config->systemMode == 'new')
|
||||
{
|
||||
$lang->my->executionLinkList['execution-all'] = '默認進入執行清單,可以查看所有的執行';
|
||||
$lang->my->executionLinkList['execution-task'] = '預設進入最近一個執行的任務列表,可以查看當前迭代下的任務信息';
|
||||
$lang->my->executionLinkList['execution-executionkanban'] = '默認進入執行看板,可以查看進行中項目的執行情况';
|
||||
}
|
||||
|
||||
@@ -14,24 +14,23 @@
|
||||
#tabContent {margin-top: 10px; z-index: 900;}
|
||||
#tabContent ul {list-style: none; margin: 0}
|
||||
#tabContent .tab-pane>ul {padding-left: 7px;}
|
||||
#tabContent .tab-pane>ul>li.hide-in-search {position: relative;}
|
||||
#tabContent .tab-pane>ul>li>label+a {padding-left: 55px;}
|
||||
#tabContent .tab-pane>ul>li label {background: rgba(131,138,157,0.5); position: absolute; top: 0; left: 5px;}
|
||||
#tabContent .tab-pane>ul>li.hide-in-search>div {display: flex; flex-flow: row nowrap; justify-content: flex-start; align-items: center;}
|
||||
#tabContent .tab-pane>ul>li label {background: rgba(255,255,255,0.5); line-height: unset; color: #838a9d; border: 1px solid #d8d8d8; border-radius: 2px; padding: 1px 4px;}
|
||||
#tabContent li a i.icon {font-size: 15px !important;}
|
||||
#tabContent li a i.icon:before {min-width: 16px !important;}
|
||||
#tabContent li .label {margin-top: 2px; position: unset;}
|
||||
#tabContent li ul {padding-left: 15px;}
|
||||
#tabContent li>a {margin-top: 5px;display: block; padding: 2px 10px 2px 5px; overflow: hidden; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; border-radius: 4px;}
|
||||
#tabContent li .label {position: unset; margin-bottom: 0;}
|
||||
#tabContent li>a, #tabContent li>div>a {display: block; padding: 2px 10px 2px 5px; overflow: hidden; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; border-radius: 4px;}
|
||||
#tabContent li>a.selected {color: #e9f2fb; background-color: #0c64eb;}
|
||||
#tabContent .tree li>.list-toggle {line-height: 24px;}
|
||||
#tabContent .tree li.has-list.open:before {content: unset;}
|
||||
|
||||
#swapper li.hide-in-search>a:focus, #swapper li.hide-in-search>a:hover {color: #838a9d; cursor: default;}
|
||||
#swapper li ul li a:focus, #swapper li ul li a:hover, .noProgram li a:focus, .noProgram li a:hover {background: #0c64eb; color: #fff;}
|
||||
#swapper li.hide-in-search>div>a:focus, #swapper li.hide-in-search>div>a:hover {color: #838a9d; cursor: default;}
|
||||
a.productName:focus, a.productName:hover {background: #0c64eb; color: #fff !important;}
|
||||
</style>
|
||||
<?php
|
||||
$productCounts = array();
|
||||
$productNames = array();
|
||||
$myProductsHtml = '';
|
||||
$normalProductsHtml = '';
|
||||
$preFix = '';
|
||||
$closedProductsHtml = '';
|
||||
$tabActive = '';
|
||||
$myProducts = 0;
|
||||
@@ -54,20 +53,19 @@ foreach($products as $programID => $programProducts)
|
||||
}
|
||||
$productsPinYin = common::convert2Pinyin($productNames);
|
||||
|
||||
$myProductsHtml = $config->systemMode == 'new' ? '<ul class="tree tree-angles" data-ride="tree">' : '<ul class="noProgram">';
|
||||
$normalProductsHtml = $config->systemMode == 'new' ? '<ul class="tree tree-angles" data-ride="tree">' : '<ul class="noProgram">';
|
||||
|
||||
foreach($products as $programID => $programProducts)
|
||||
{
|
||||
/* Add the program name before project. */
|
||||
if($programID and $config->systemMode == 'new')
|
||||
{
|
||||
$programName = zget($programs, $programID);
|
||||
$preFix = $programName . '/';
|
||||
|
||||
if($productCounts[$programID]['myProduct']) $myProductsHtml .= '<ul><li class="hide-in-search"><label class="label">' . $lang->program->common . '</label> <a class="text-muted" title="' . $programName . '">' . $programName . '</a></li><li><ul>';
|
||||
if($productCounts[$programID]['others']) $normalProductsHtml .= '<ul><li class="hide-in-search"><label class="label">' . $lang->program->common . '</label> <a class="text-muted" title="' . $programName . '">' . $programName . '</a></li><li><ul>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if($productCounts[$programID]['myProduct']) $myProductsHtml .= '<ul class="noProgram">';
|
||||
if($productCounts[$programID]['others']) $normalProductsHtml .= '<ul class="noProgram">';
|
||||
if($productCounts[$programID]['myProduct']) $myProductsHtml .= '<li class="hide-in-search"><div><a class="text-muted" title="' . $programName . '">' . $programName . '</a> <label class="label">' . $lang->program->common . '</label></div><ul>';
|
||||
if($productCounts[$programID]['others']) $normalProductsHtml .= '<li class="hide-in-search"><div><a class="text-muted" title="' . $programName . '">' . $programName . '</a> <label class="label">' . $lang->program->common . '</label></div><ul>';
|
||||
}
|
||||
|
||||
foreach($programProducts as $index => $product)
|
||||
@@ -78,7 +76,7 @@ foreach($products as $programID => $programProducts)
|
||||
|
||||
if($product->status == 'normal' and $product->PO == $this->app->user->account)
|
||||
{
|
||||
$myProductsHtml .= '<li>' . html::a($linkHtml, $productName, '', "class='$selected' title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$openApp'") . '</li>';
|
||||
$myProductsHtml .= '<li>' . html::a($linkHtml, $productName, '', "class='$selected productName' title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$openApp'") . '</li>';
|
||||
|
||||
if($selected == 'selected') $tabActive = 'myProduct';
|
||||
|
||||
@@ -86,7 +84,7 @@ foreach($products as $programID => $programProducts)
|
||||
}
|
||||
else if($product->status == 'normal' and !($product->PO == $this->app->user->account))
|
||||
{
|
||||
$normalProductsHtml .= '<li>' . html::a($linkHtml, $productName, '', "class='$selected' title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$openApp'") . '</li>';
|
||||
$normalProductsHtml .= '<li>' . html::a($linkHtml, $productName, '', "class='$selected productName' title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$openApp'") . '</li>';
|
||||
|
||||
if($selected == 'selected') $tabActive = 'other';
|
||||
|
||||
@@ -94,7 +92,7 @@ foreach($products as $programID => $programProducts)
|
||||
}
|
||||
else if($product->status == 'closed')
|
||||
{
|
||||
$closedProductsHtml .= html::a($linkHtml, $productName, '', "class='$selected' title='{$productName}' class='closed' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$openApp'");
|
||||
$closedProductsHtml .= html::a($linkHtml, $preFix . $productName, '', "class='$selected' title='" . $preFix . $productName . "' class='closed' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$openApp'");
|
||||
|
||||
if($selected == 'selected') $tabActive = 'closed';
|
||||
}
|
||||
@@ -106,10 +104,9 @@ foreach($products as $programID => $programProducts)
|
||||
if($productCounts[$programID]['others']) $normalProductsHtml .= '</ul></li>';
|
||||
}
|
||||
}
|
||||
|
||||
if($productCounts[$programID]['myProduct']) $myProductsHtml .= '</ul>';
|
||||
if($productCounts[$programID]['others']) $normalProductsHtml .= '</ul>';
|
||||
}
|
||||
$myProductsHtml .= '</ul>';
|
||||
$normalProductsHtml .= '</ul>';
|
||||
?>
|
||||
<div class="table-row">
|
||||
<div class="table-col col-left">
|
||||
@@ -151,10 +148,8 @@ $(function()
|
||||
{
|
||||
$(this).siblings().show();
|
||||
$(this).parent().siblings('li').find('span').hide();
|
||||
if($(this).attr('class') != 'active') $('#dropMenu').removeClass('show-right-col');
|
||||
$("#dropMenu .search-box").width('auto');
|
||||
})
|
||||
|
||||
if(config.clientLang == 'en') $('#tabContent .tab-pane>ul>li>label+a').css('padding-left', '65px');
|
||||
$('#tabContent [data-ride="tree"]').tree('expand');
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -1407,6 +1407,7 @@ class projectModel extends model
|
||||
if($project->model === 'scrum') echo "<span class='project-type-label label label-outline label-info'>{$this->lang->project->scrum}</span> ";
|
||||
}
|
||||
echo html::a($projectLink, $project->name);
|
||||
if(isset($project->delay)) echo "<span class='label label-danger label-badge'>{$this->lang->project->statusList['delay']}</span>";
|
||||
break;
|
||||
case 'PM':
|
||||
$user = $this->loadModel('user')->getByID($project->PM, 'account');
|
||||
|
||||
@@ -13,24 +13,23 @@
|
||||
#tabContent {margin-top: 10px; z-index: 900;}
|
||||
#tabContent ul {list-style: none; margin: 0}
|
||||
#tabContent .tab-pane>ul {padding-left: 7px;}
|
||||
#tabContent .tab-pane>ul>li.hide-in-search {position: relative;}
|
||||
#tabContent .tab-pane>ul>li>label+a {padding-left: 55px;}
|
||||
#tabContent .tab-pane>ul>li label {background: rgba(131,138,157,0.5); position: absolute; top: 0; left: 5px;}
|
||||
#tabContent .tab-pane>ul>li.hide-in-search>div {display: flex; flex-flow: row nowrap; justify-content: flex-start; align-items: center;}
|
||||
#tabContent .tab-pane>ul>li label {background: rgba(255,255,255,0.5); line-height: unset; color: #838a9d; border: 1px solid #d8d8d8; border-radius: 2px; padding: 1px 4px;}
|
||||
#tabContent li a i.icon {font-size: 15px !important;}
|
||||
#tabContent li a i.icon:before {min-width: 16px !important;}
|
||||
#tabContent li .label {margin-top: 2px; position: unset;}
|
||||
#tabContent li ul {padding-left: 15px;}
|
||||
#tabContent li>a {margin-top: 5px;display: block; padding: 2px 10px 2px 5px; overflow: hidden; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; border-radius: 4px;}
|
||||
#tabContent li .label {position: unset; margin-bottom: 0;}
|
||||
#tabContent li>a, #tabContent li>div>a {display: block; padding: 2px 10px 2px 5px; overflow: hidden; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; border-radius: 4px;}
|
||||
#tabContent li>a.selected {color: #e9f2fb; background-color: #0c64eb;}
|
||||
#tabContent .tree li>.list-toggle {line-height: 24px;}
|
||||
#tabContent .tree li.has-list.open:before {content: unset;}
|
||||
|
||||
#swapper li.hide-in-search>a:focus, #swapper li.hide-in-search>a:hover {color: #838a9d; cursor: default;}
|
||||
#swapper li ul li a:focus, #swapper li ul li a:hover, .noProgram li a:focus, .noProgram li a:hover {background: #0c64eb; color: #fff;}
|
||||
#swapper li.hide-in-search>div>a:focus, #swapper li.hide-in-search>div>a:hover {color: #838a9d; cursor: default;}
|
||||
a.projectName:focus, a.projectName:hover {background: #0c64eb; color: #fff !important;}
|
||||
</style>
|
||||
<?php
|
||||
$projectCounts = array();
|
||||
$projectNames = array();
|
||||
$myProjectsHtml = '';
|
||||
$normalProjectsHtml = '';
|
||||
$preFix = '';
|
||||
$closedProjectsHtml = '';
|
||||
$tabActive = '';
|
||||
$myProjects = 0;
|
||||
@@ -52,20 +51,19 @@ foreach($projects as $programID => $programProjects)
|
||||
}
|
||||
$projectsPinYin = common::convert2Pinyin($projectNames);
|
||||
|
||||
$myProjectsHtml = $config->systemMode == 'new' ? '<ul class="tree tree-angles" data-ride="tree">' : '<ul class="noProgram">';
|
||||
$normalProjectsHtml = $config->systemMode == 'new' ? '<ul class="tree tree-angles" data-ride="tree">' : '<ul class="noProgram">';
|
||||
|
||||
foreach($projects as $programID => $programProjects)
|
||||
{
|
||||
/* Add the program name before project. */
|
||||
if(isset($programs[$programID]) and $config->systemMode == 'new')
|
||||
{
|
||||
$programName = zget($programs, $programID);
|
||||
$preFix = $programName . '/';
|
||||
|
||||
if($projectCounts[$programID]['myProject']) $myProjectsHtml .= '<ul><li class="hide-in-search"><label class="label">' . $lang->program->common . '</label> <a class="text-muted" title="' . $programName . '">' . $programName . '</a></li><li><ul>';
|
||||
if($projectCounts[$programID]['others']) $normalProjectsHtml .= '<ul><li class="hide-in-search"><label class="label">' . $lang->program->common . '</label> <a class="text-muted" title="' . $programName . '">' . $programName . '</a></li><li><ul>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if($projectCounts[$programID]['myProject']) $myProjectsHtml .= '<ul class="noProgram">';
|
||||
if($projectCounts[$programID]['others']) $normalProjectsHtml .= '<ul class="noProgram">';
|
||||
if($projectCounts[$programID]['myProject']) $myProjectsHtml .= '<li class="hide-in-search"><div><a class="text-muted" title="' . $programName . '">' . $programName . '</a> <label class="label">' . $lang->program->common . '</label></div><ul>';
|
||||
if($projectCounts[$programID]['others']) $normalProjectsHtml .= '<li class="hide-in-search"><div><a class="text-muted" title="' . $programName . '">' . $programName . '</a> <label class="label">' . $lang->program->common . '</label></div><ul>';
|
||||
}
|
||||
|
||||
foreach($programProjects as $index => $project)
|
||||
@@ -79,7 +77,7 @@ foreach($projects as $programID => $programProjects)
|
||||
|
||||
if($project->status != 'done' and $project->status != 'closed' and $project->PM == $this->app->user->account)
|
||||
{
|
||||
$myProjectsHtml .= '<li>' . html::a(sprintf($link, $project->id), $projectName, '', "class='$selected' title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'") . '</li>';
|
||||
$myProjectsHtml .= '<li>' . html::a(sprintf($link, $project->id), $projectName, '', "class='$selected projectName' title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'") . '</li>';
|
||||
|
||||
if($selected == 'selected') $tabActive = 'myProject';
|
||||
|
||||
@@ -87,7 +85,7 @@ foreach($projects as $programID => $programProjects)
|
||||
}
|
||||
else if($project->status != 'done' and $project->status != 'closed' and !($project->PM == $this->app->user->account))
|
||||
{
|
||||
$normalProjectsHtml .= '<li>' . html::a(sprintf($link, $project->id), $projectName, '', "class='$selected' title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'") . '</li>';
|
||||
$normalProjectsHtml .= '<li>' . html::a(sprintf($link, $project->id), $projectName, '', "class='$selected projectName' title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'") . '</li>';
|
||||
|
||||
if($selected == 'selected') $tabActive = 'other';
|
||||
|
||||
@@ -95,7 +93,7 @@ foreach($projects as $programID => $programProjects)
|
||||
}
|
||||
else if($project->status == 'done' or $project->status == 'closed')
|
||||
{
|
||||
$closedProjectsHtml .= html::a(sprintf($link, $project->id), $project->name, '', "class='$selected' title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'");
|
||||
$closedProjectsHtml .= html::a(sprintf($link, $project->id), $preFix . $project->name, '', "class='$selected' title='" . $preFix . $project->name . "' data-key='" . zget($projectsPinYin, $project->name, '') . "'");
|
||||
|
||||
if($selected == 'selected') $tabActive = 'closed';
|
||||
}
|
||||
@@ -107,10 +105,9 @@ foreach($projects as $programID => $programProjects)
|
||||
if($projectCounts[$programID]['others']) $normalProjectsHtml .= '</ul></li>';
|
||||
}
|
||||
}
|
||||
|
||||
if($projectCounts[$programID]['myProject']) $myProjectsHtml .= '</ul>';
|
||||
if($projectCounts[$programID]['others']) $normalProjectsHtml .= '</ul>';
|
||||
}
|
||||
$myProjectsHtml .= '</ul>';
|
||||
$normalProjectsHtml .= '</ul>';
|
||||
?>
|
||||
|
||||
<div class="table-row">
|
||||
@@ -152,10 +149,8 @@ $(function()
|
||||
{
|
||||
$(this).siblings().show();
|
||||
$(this).parent().siblings('li').find('span').hide();
|
||||
if($(this).attr('class') != 'active') $('#dropMenu').removeClass('show-right-col');
|
||||
$("#dropMenu .search-box").width('auto');
|
||||
})
|
||||
|
||||
if(config.clientLang == 'en') $('#tabContent .tab-pane>ul>li>label+a').css('padding-left', '65px');
|
||||
$('#tabContent [data-ride="tree"]').tree('expand');
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<style>
|
||||
#cards {margin: 0 0;}
|
||||
#cards > .col {width: 25%;}
|
||||
@media screen and (max-width: 1500px) {#cards > .col {width: 33.3333333%;}}
|
||||
#cards .panel {margin: 10px 0; border: 1px solid #DCDCDC; border-radius: 4px; box-shadow: none; cursor: pointer; height: 190px;}
|
||||
#cards .pager .btn {padding-top: 4px;}
|
||||
#cards .panel:hover {border-color: #006AF1; box-shadow: 0 0 10px 0 rgba(0,0,100,.25);}
|
||||
@@ -139,20 +140,29 @@
|
||||
</div>
|
||||
<div class='project-footer table-row'>
|
||||
<?php $titleClass = ($project->teamCount == 0 and !$canActions) ? 'teamTitle' : '';?>
|
||||
<?php $count = 0;?>
|
||||
<div class="<?php echo $titleClass?>"><?php echo $lang->project->teamMember;?></div>
|
||||
<?php if(!empty($project->teamMembers)):?>
|
||||
<div class='project-members table-col'>
|
||||
<?php foreach($project->teamMembers as $key => $member):?>
|
||||
<?php if($key > 2) continue;?>
|
||||
<a href='<?php echo helper::createLink('project', 'team', "projectID=$projectID");?>' title="<?php echo $users[$member];?>">
|
||||
<?php foreach($project->teamMembers as $member):?>
|
||||
<?php
|
||||
if($count > 2) continue;
|
||||
if(!isset($users[$member]))
|
||||
{
|
||||
$project->teamCount -= 1;
|
||||
continue;
|
||||
}
|
||||
?>
|
||||
<?php $count += 1;?>
|
||||
<a href='<?php echo helper::createLink('project', 'team', "projectID=$projectID");?>' title="<?php echo $users[$member];?>">
|
||||
<div class="avatar bg-secondary avatar-circle avatar-<?php echo $member;?>">
|
||||
<?php echo !empty($usersAvatar[$member]) ? html::image(zget($usersAvatar, $member)) : strtoupper($member[0]);?>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach;?>
|
||||
<?php if($project->teamCount > 3):?>
|
||||
<?php echo '...';?>
|
||||
<a href='<?php echo helper::createLink('project', 'team', "projectID=$projectID");?>' title="<?php echo $users[$member];?>">
|
||||
<?php echo '...';?>
|
||||
<a href='<?php echo helper::createLink('project', 'team', "projectID=$projectID");?>' title="<?php echo $users[$member];?>">
|
||||
<div class="avatar bg-secondary avatar-circle avatar-<?php echo $member;?>">
|
||||
<?php echo !empty($usersAvatar[end($project->teamMembers)]) ? html::image(zget($usersAvatar, end($project->teamMembers))) : strtoupper($member[0]);?>
|
||||
</div>
|
||||
|
||||
@@ -131,6 +131,7 @@
|
||||
$teamAccounts = array_keys($task->team);
|
||||
foreach($teamAccounts as $teamAccount)
|
||||
{
|
||||
if(!isset($members[$teamAccount])) continue;
|
||||
$taskMembers[$teamAccount] = $members[$teamAccount];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -700,6 +700,7 @@ class upgradeModel extends model
|
||||
$this->saveLogs('Execute 15_3');
|
||||
$this->execSQL($this->getUpgradeFile('15.3'));
|
||||
$this->processTesttaskDate();
|
||||
$this->processDocTempContent();
|
||||
$this->appendExec('15_3');
|
||||
}
|
||||
|
||||
@@ -5228,4 +5229,27 @@ class upgradeModel extends model
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Store the body of the document in a temporary field.
|
||||
*
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function processDocTempContent()
|
||||
{
|
||||
$docContentList = $this->dao->select('doc,content')->from(TABLE_DOCCONTENT)->fetchAll('doc');
|
||||
|
||||
foreach($docContentList as $docID => $doc)
|
||||
{
|
||||
if(empty($doc->content)) continue;
|
||||
|
||||
$this->dao->update(TABLE_DOC)
|
||||
->set('tempContent')->eq($doc->content)
|
||||
->where('id')->eq($docID)
|
||||
->exec();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -155,7 +155,7 @@
|
||||
<glyph unicode="" glyph-name="audit" d="M652.869 352.584c125.552 0 225.993-100.441 225.993-225.993 0-44.195-12.556-85.877-34.652-120.529l154.68-155.684-69.807-69.807-156.689 154.178c-34.652-21.596-75.834-34.149-119.526-34.149-125.552 0-225.993 100.441-225.993 225.993s100.441 225.993 225.993 225.993zM652.869 252.144c-69.304 0-125.552-56.248-125.552-125.552s56.248-125.552 125.552-125.552c69.304 0 125.552 56.248 125.552 125.552s-56.248 125.552-125.552 125.552zM125.552 804.571h703.090c55.745 0 100.441-44.697 100.441-100.441v-403.272c-25.11 40.176-59.763 74.829-100.441 101.948v301.324h-703.090v-703.090h225.993c15.569-37.665 38.168-71.314 65.789-100.441h-291.782c-55.745 0-100.441 44.697-100.441 100.441v703.090c0 55.745 44.697 100.441 100.441 100.441zM225.993 603.688h502.208v-100.441h-502.208v100.441zM225.993 402.805h252.61c-40.176-25.11-74.829-59.763-101.948-100.441h-150.663v100.441zM225.993 201.922h108.979c-5.524-25.11-8.537-50.221-8.537-75.331v-25.11h-100.441v100.441z" />
|
||||
<glyph unicode="" glyph-name="manual" d="M749.977 734.89c141.995 0 248.287-57.207 254.499-59.392 11.605-4.096 19.387-15.019 19.524-27.375v-768.889c0.020-15.986-12.922-28.962-28.908-28.982-2.171 0-4.337 0.239-6.455 0.72-1.843 0.409-121.446 41.37-236.612 41.37-90.795 0-212.924-33.382-214.357-33.792-7.85-2.117-14.336-2.731-22.050-3.959-7.45 0.683-14.827 2.008-22.050 3.959-1.365 0.409-80.76 33.792-233.608 33.792-93.867 0-223.232-41.097-224.598-41.37-15.635-3.507-31.153 6.327-34.659 21.962-0.469 2.091-0.703 4.227-0.703 6.369v768.82c0 12.425 7.919 23.279 19.524 27.443 6.212 2.253 109.090 59.324 233.677 59.324 124.655 0 253.133-50.654 258.526-52.77 1.247-0.531 2.456-1.147 3.618-1.843 1.2 0.671 2.43 1.286 3.686 1.843 5.461 2.117 88.951 52.77 230.946 52.77v0zM253.268 666.214c-100.967 0-142.472-24.166-163.704-35.226-12.152-6.349-21.231-14.882-21.231-27.853l0.341-637.543c0-17.954 16.111-31.539 33.792-28.536 57.276 9.899 87.245 25.532 157.559 25.532 93.184 0 126.43-15.019 183.637-25.532 15.674-2.94 30.766 7.382 33.706 23.057 0.33 1.761 0.496 3.55 0.495 5.342l1.843 637.816c-0.006 12.731-8.312 23.971-20.481 27.716-48.128 14.404-105.132 35.226-206.029 35.226h0.070zM752.093 666.213c-101.034 0-136.192-24.986-184.116-39.594-12.239-3.644-20.644-14.878-20.684-27.648v-630.716c0-18.090 16.384-31.676 34.202-28.399 54.204 10.035 83.081 19.593 170.667 22.733 77.619 2.867 112.298-12.97 169.574-22.869 15.76-2.676 30.706 7.929 33.383 23.69 0.272 1.601 0.408 3.222 0.408 4.846l1.365 630.579c0 12.97-9.011 20.753-21.163 27.853-48.196 28.126-82.602 39.527-183.637 39.527v0zM398.472 189.165c6.144 0 11.128-8.875 11.128-19.729v-28.809c-0.136-10.923-5.12-19.729-11.264-19.729h-250.676c-6.144 0-11.128 8.875-11.128 19.729v28.809c0 10.923 4.984 19.729 11.128 19.729h250.812zM876.339 189.165c6.144 0 11.128-8.875 11.128-19.729v-28.809c-0.136-10.923-4.984-19.729-11.128-19.729h-250.812c-6.144 0-11.128 8.875-11.128 19.729v28.809c0 10.923 4.984 19.729 11.128 19.729h250.812zM398.472 325.699c6.144 0 11.128-8.875 11.128-19.729v-28.809c-0.136-10.923-5.12-19.729-11.264-19.729h-250.676c-6.144 0-11.128 8.875-11.128 19.729v28.809c0 10.923 4.984 19.729 11.128 19.729h250.812zM876.339 325.699c6.144 0 11.128-8.875 11.128-19.729v-28.809c-0.136-10.923-4.984-19.729-11.128-19.729h-250.812c-6.144 0-11.128 8.875-11.128 19.729v28.809c0 10.923 4.984 19.729 11.128 19.729h250.812zM398.472 462.232c6.144 0 11.128-8.875 11.128-19.729v-28.809c-0.136-10.923-5.12-19.729-11.264-19.729h-250.676c-6.144 0-11.128 8.875-11.128 19.729v28.809c0 10.923 4.984 19.729 11.128 19.729h250.812zM876.339 462.232c6.144 0 11.128-8.875 11.128-19.729v-28.809c-0.136-10.923-4.984-19.729-11.128-19.729h-250.812c-6.144 0-11.128 8.875-11.128 19.729v28.809c0 10.923 4.984 19.729 11.128 19.729h250.812z" />
|
||||
<glyph unicode="" glyph-name="split" d="M577.408 414.332c68.685 26.315 117.449 92.868 117.449 170.811 0 100.989-81.869 182.857-182.857 182.857s-182.857-81.868-182.857-182.857c0-77.942 48.764-144.495 117.449-170.811l-238.596-306.768c-8.167 1.412-16.567 2.15-25.138 2.15-80.791 0-146.286-65.496-146.286-146.286s65.494-146.286 146.286-146.286c80.791 0 146.286 65.496 146.286 146.286 0 45.319-20.609 85.826-52.966 112.658l199.252 256.183v-227.163c-63.093-16.241-109.714-73.516-109.714-141.678 0-80.79 65.496-146.286 146.286-146.286s146.286 65.496 146.286 146.286c0 68.162-46.621 125.436-109.714 141.678v227.163l199.252-256.183c-32.358-26.832-52.966-67.339-52.966-112.658 0-80.79 65.496-146.286 146.286-146.286s146.286 65.496 146.286 146.286c0 80.79-65.496 146.286-146.286 146.286-8.572 0-16.973-0.739-25.139-2.15l-238.596 306.768zM512 475.428c-60.595 0-109.714 49.121-109.714 109.714s49.119 109.714 109.714 109.714c60.595 0 109.714-49.121 109.714-109.714s-49.119-109.714-109.714-109.714zM109.714-36.572c0 40.397 32.747 73.143 73.143 73.143s73.143-32.746 73.143-73.143c0-40.397-32.747-73.143-73.143-73.143s-73.143 32.746-73.143 73.143zM512-109.715c-40.397 0-73.143 32.746-73.143 73.143s32.746 73.143 73.143 73.143c40.397 0 73.143-32.746 73.143-73.143s-32.746-73.143-73.143-73.143zM841.143-109.715c-40.397 0-73.143 32.746-73.143 73.143s32.746 73.143 73.143 73.143c40.397 0 73.143-32.746 73.143-73.143s-32.746-73.143-73.143-73.143z" />
|
||||
<glyph unicode="" glyph-name="lightbulb-alt, product" d="M512 804.571c222.46 0 402.286-186.025 402.286-414.893 0-159.142-87.721-301.529-221.873-370.944l-34.625-207.604c-2.694-16.165-15.739-28.372-31.665-30.295l-4.409-0.265h-219.429c-16.388 0-30.574 10.86-35.088 26.253l-0.986 4.306-34.625 207.604c-134.152 69.414-221.873 211.802-221.873 370.944 0 228.868 179.826 414.893 402.286 414.893zM615.095 0h-206.226l24.393-146.286h157.44l24.393 146.286zM512 731.428c-181.499 0-329.143-152.734-329.143-341.75 0-142.826 85.124-268.864 211.14-319.139l-6.23 2.603h248.43l3.418 1.412c117.537 51.345 197.247 169.522 201.361 304.171v0l0.167 10.953c0 189.017-147.644 341.75-329.143 341.75zM658.286 512c18.755 0 34.213-14.118 36.325-32.306l0.246-4.265v-146.286c0-25.756-25.678-42.981-49.056-34.385l-3.87 1.675-129.93 64.966-129.93-64.966c-23.037-11.518-49.927 3.745-52.694 28.5l-0.233 4.211v146.286c0 20.198 16.374 36.571 36.571 36.571 18.755 0 34.213-14.118 36.325-32.306l0.246-4.265v-87.077l93.359 46.644c8.825 4.413 18.989 5.043 28.197 1.891l4.513-1.891 93.359-46.681v87.113c0 18.755 14.118 34.213 32.306 36.325l4.265 0.246z" />
|
||||
<glyph unicode="" glyph-name="lightbulb-alt, product" d="M602.619 3.097h-181.241c-64.286 0-116.496 51.865-116.496 115.461v17.136c0 13.225-6.096 25.529-16.56 33.81-41.515 32.661-75.785 74.635-99.246 121.44-24.61 49.221-37.031 102.235-37.031 157.552 0 47.84 9.659 94.53 28.75 138.576 18.286 42.32 44.505 80.384 77.739 113.161 33.81 33.234 73.141 59.339 116.725 77.28 45.31 18.631 93.264 27.714 142.37 27.024 94.875-1.495 183.886-39.099 250.585-105.915 66.93-67.045 103.73-155.826 103.73-250.011 0-55.314-12.535-108.329-37.145-157.666-23.461-46.919-57.845-88.896-99.36-121.554-10.35-8.165-16.329-20.354-16.329-33.579v-17.136c0-63.71-52.325-115.575-116.496-115.575zM512.114 735.65c-38.064 0-75.209-7.36-110.4-21.849-35.419-14.606-67.275-35.65-94.645-62.674-55.545-54.51-86.021-126.501-86.021-202.517 0-87.975 40.021-169.856 109.941-224.711 27.255-21.504 43.010-53.591 43.010-88.089v-17.136c0-25.646 21.275-46.459 47.495-46.459h181.241c26.219 0 47.495 20.816 47.495 46.459v17.136c0 34.501 15.525 66.585 42.779 87.861 70.034 54.855 110.169 136.85 110.169 224.942 0 75.785-29.671 147.317-83.605 201.367s-125.925 84.526-202.745 85.675h-4.715zM639.65-103.278h-255.301c-19.090 0-34.501 15.41-34.501 34.501s15.41 34.501 34.501 34.501h255.301c19.090 0 34.501-15.41 34.501-34.501s-15.41-34.501-34.501-34.501zM594.224-219.429h-164.45c-19.090 0-34.501 15.41-34.501 34.501s15.41 34.501 34.501 34.501h164.45c19.090 0 34.501-15.41 34.501-34.501s-15.41-34.501-34.501-34.501zM466.576 243.446c-9.2 0-18.286 3.68-25.184 10.809-13.111 13.915-12.421 35.765 1.495 48.759l91.081 85.675-155.595-38.871c-15.179-3.794-31.049 3.104-38.64 16.791s-4.944 30.821 6.325 41.63l184.576 176.411c13.799 13.111 35.65 12.649 48.761-1.15s12.649-35.65-1.15-48.761l-90.391-86.366 157.552 39.445c15.179 3.794 31.166-3.104 38.64-16.905s4.83-30.935-6.67-41.63l-187.221-176.411c-6.67-6.325-15.065-9.431-23.575-9.431v0z" />
|
||||
<glyph unicode="" glyph-name="code" d="M354.115 28.317l-74.676-54.739-279.438 319.376 279.438 318.611 74.644-54.835-231.43-263.839 231.462-264.573zM669.886 28.317l231.462 264.573-231.43 263.839 74.644 54.835 279.438-318.611-279.438-319.376-74.676 54.739zM521.714 582.153l92.891-19.523-116.592-568.19-92.891 19.523 116.592 568.19z" />
|
||||
<glyph unicode="" glyph-name="feedback" d="M804.571 731.428c18.755 0 34.213-14.118 36.325-32.306l0.246-4.265v-363.959l55.629 30.349c23.152 12.63 51.127-2.658 53.867-28.019l0.218-4.086v-438.857c0-20.198-16.374-36.571-36.571-36.571v0h-804.571c-20.198 0-36.571 16.374-36.571 36.571v0 438.857c0 27.759 29.712 45.398 54.082 32.107v0l55.632-30.351v363.959c0 18.755 14.118 34.213 32.306 36.325l4.265 0.246h585.143zM877.714 267.593l-348.147-189.984c-10.915-5.955-24.109-5.955-35.025-0.002v0l-348.257 189.949v-340.699h731.429v340.736zM768 658.285h-512v-367.287l256.037-139.63 255.963 139.63v367.287zM548.571 402.285c20.198 0 36.571-16.374 36.571-36.571 0-18.755-14.118-34.213-32.306-36.325l-4.265-0.246h-182.857c-20.198 0-36.571 16.374-36.571 36.571 0 18.755 14.118 34.213 32.306 36.325l4.265 0.246h182.857zM658.286 548.571c20.198 0 36.571-16.374 36.571-36.571 0-18.755-14.118-34.213-32.306-36.325l-4.265-0.246h-292.571c-20.198 0-36.571 16.374-36.571 36.571 0 18.755 14.118 34.213 32.306 36.325l4.265 0.246h292.571z" />
|
||||
<glyph unicode="" glyph-name="account" d="M869.899-72.308v0c-125.27-122.901-304.776-173.043-475.603-132.854v0c-183.049 53.789-326.315 196.759-380.481 379.696v0c-64.959 275.074 105.374 550.724 380.448 615.682 77.563 18.317 158.332 18.265 235.871-0.15v0c183.202-53.529 326.573-196.605 380.481-379.696v0c40.648-174.427-12.701-357.422-140.716-482.678v0zM512.215-145.417v0c100.145-0.606 197.394 33.569 275.142 96.693v0c-50.745 151.957-215.067 234.006-367.024 183.26-86.496-28.885-154.376-96.763-183.26-183.26v0c77.908-62.837 175.053-96.976 275.142-96.693v0zM417.88 719.315v0c-236.026-52.66-384.672-286.685-332.012-522.711 15.767-70.668 48.812-136.322 96.177-191.087v0c84.791 183.217 302.053 263.007 485.27 178.215 78.653-36.4 141.816-99.562 178.215-178.215v0c159.45 181.815 141.321 458.465-40.494 617.915-105.873 92.851-249.941 129.115-387.156 97.455l0.001-1.571zM557.809 261.794v0c-97.503-25.276-197.035 33.275-222.311 130.776-7.726 29.804-7.782 61.079-0.161 90.909v0c15.984 64.906 66.473 115.698 131.281 132.068v0c98.074 24.794 197.679-34.612 222.472-132.687 7.448-29.465 7.448-60.32 0-89.785v0c-15.92-64.782-66.501-115.362-131.281-131.281v0.001zM512.214 547.941v0c-60.781 0.432-110.405-48.49-110.837-109.271s48.49-110.405 109.271-110.837c60.781-0.432 110.405 48.49 110.837 109.271 0.003 0.522 0.003 1.045 0 1.566v0c0 60.349-48.922 109.273-109.271 109.273 0 0 0 0 0 0v-0.003z" />
|
||||
|
||||
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 189 KiB |
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user