This commit is contained in:
tianshujie98
2021-07-22 17:30:48 +08:00
18 changed files with 126 additions and 19 deletions
+1
View File
@@ -18,6 +18,7 @@
#sidebar {width: 275px;} #sidebar {width: 275px;}
#sidebar>.cell {width: 100%;} #sidebar>.cell {width: 100%;}
#sidebar>.sidebar-toggle {left: 3px; right: auto;} #sidebar>.sidebar-toggle {left: 3px; right: auto;}
#title {font-size: 15px; font-weight: 600;}
.hide-sidebar #sidebar>.cell {left: -270px;} .hide-sidebar #sidebar>.cell {left: -270px;}
.hide-sidebar #sidebar>.sidebar-toggle>.icon:before {content: "\e314";} .hide-sidebar #sidebar>.sidebar-toggle>.icon:before {content: "\e314";}
.detail.empty {line-height: 200px;} .detail.empty {line-height: 200px;}
+37
View File
@@ -30,3 +30,40 @@ function deleteFile(fileID)
if(!fileID) return; if(!fileID) return;
hiddenwin.location.href = createLink('file', 'delete', 'fileID=' + fileID); hiddenwin.location.href = createLink('file', 'delete', 'fileID=' + fileID);
} }
/**
* Display the document in full screen.
*
* @access public
* @return void
*/
function fullScreen()
{
var element = document.getElementById("content");
var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen;
if(requestMethod)
{
$('#content .actions').addClass('hidden');
requestMethod.call(element);
}
}
document.addEventListener("fullscreenchange", function (e)
{
if(!document.fullscreenElement) $('#content .actions').removeClass('hidden');
})
document.addEventListener("webkitfullscreenchange", function (e)
{
if(!document.webkitFullscreenElement) $('#content .actions').removeClass('hidden');
})
document.addEventListener("mozfullscreenchange", function (e)
{
if(!document.mozFullScreenElement) $('#content .actions').removeClass('hidden');
})
document.addEventListener("msfullscreenChange", function (e)
{
if(!document.msfullscreenElement) $('#content .actions').removeClass('hidden');
})
+2
View File
@@ -67,6 +67,7 @@ $lang->doc->myCollection = 'Meine Favoriten';
/* 方法列表。*/ /* 方法列表。*/
$lang->doc->index = 'Home'; $lang->doc->index = 'Home';
$lang->doc->createAB = 'Create';
$lang->doc->create = 'Dokument hinzufügen'; $lang->doc->create = 'Dokument hinzufügen';
$lang->doc->edit = 'Bearbeiten'; $lang->doc->edit = 'Bearbeiten';
$lang->doc->delete = 'Löschen'; $lang->doc->delete = 'Löschen';
@@ -85,6 +86,7 @@ $lang->doc->catalogName = 'Catalog Name';
$lang->doc->collect = 'Favorit hinzufügen'; $lang->doc->collect = 'Favorit hinzufügen';
$lang->doc->cancelCollection = 'Favorit entfernen'; $lang->doc->cancelCollection = 'Favorit entfernen';
$lang->doc->deleteFile = 'Delete File'; $lang->doc->deleteFile = 'Delete File';
$lang->doc->menuTitle = 'Menu';
$lang->doc->libName = 'Name'; $lang->doc->libName = 'Name';
$lang->doc->libType = 'Kategorie'; $lang->doc->libType = 'Kategorie';
+2
View File
@@ -68,6 +68,7 @@ $lang->doc->myCollection = 'My Favorites';
/* Methods list */ /* Methods list */
$lang->doc->index = 'Document Home'; $lang->doc->index = 'Document Home';
$lang->doc->createAB = 'Create';
$lang->doc->create = 'Create Document'; $lang->doc->create = 'Create Document';
$lang->doc->edit = 'Edit Document'; $lang->doc->edit = 'Edit Document';
$lang->doc->delete = 'Delete Document'; $lang->doc->delete = 'Delete Document';
@@ -86,6 +87,7 @@ $lang->doc->catalogName = 'Catalog Name';
$lang->doc->collect = 'Add Favorite'; $lang->doc->collect = 'Add Favorite';
$lang->doc->cancelCollection = 'Remove Favorite'; $lang->doc->cancelCollection = 'Remove Favorite';
$lang->doc->deleteFile = 'Delete File'; $lang->doc->deleteFile = 'Delete File';
$lang->doc->menuTitle = 'Menu';
$lang->doc->collectAction = 'Add Favorite'; $lang->doc->collectAction = 'Add Favorite';
+2
View File
@@ -67,6 +67,7 @@ $lang->doc->myCollection = 'Mes Favoris';
/* 方法列表。*/ /* 方法列表。*/
$lang->doc->index = 'Accueil Documents'; $lang->doc->index = 'Accueil Documents';
$lang->doc->createAB = 'Create';
$lang->doc->create = 'Ajouter Document'; $lang->doc->create = 'Ajouter Document';
$lang->doc->edit = 'Editer Document'; $lang->doc->edit = 'Editer Document';
$lang->doc->delete = 'Supprimer Document'; $lang->doc->delete = 'Supprimer Document';
@@ -85,6 +86,7 @@ $lang->doc->catalogName = 'Catalog Name';
$lang->doc->collect = 'Ajouter aux Favoris'; $lang->doc->collect = 'Ajouter aux Favoris';
$lang->doc->cancelCollection = 'Retirer des Favoris'; $lang->doc->cancelCollection = 'Retirer des Favoris';
$lang->doc->deleteFile = 'Supprimer Fichier'; $lang->doc->deleteFile = 'Supprimer Fichier';
$lang->doc->menuTitle = 'Menu';
$lang->doc->libName = 'Bibliothèque de Documents'; $lang->doc->libName = 'Bibliothèque de Documents';
$lang->doc->libType = 'Catégorie'; $lang->doc->libType = 'Catégorie';
+2
View File
@@ -67,6 +67,7 @@ $lang->doc->myCollection = 'My Favorites';
/* Methods list */ /* Methods list */
$lang->doc->index = 'Document Home'; $lang->doc->index = 'Document Home';
$lang->doc->createAB = 'Create';
$lang->doc->create = 'Tạo tài liệu'; $lang->doc->create = 'Tạo tài liệu';
$lang->doc->edit = 'Sửa tài liệu'; $lang->doc->edit = 'Sửa tài liệu';
$lang->doc->delete = 'Xóa tài liệu'; $lang->doc->delete = 'Xóa tài liệu';
@@ -85,6 +86,7 @@ $lang->doc->catalogName = 'Catalog Name';
$lang->doc->collect = 'Thêm Favorite'; $lang->doc->collect = 'Thêm Favorite';
$lang->doc->cancelCollection = 'Remove Favorite'; $lang->doc->cancelCollection = 'Remove Favorite';
$lang->doc->deleteFile = 'Xóa File'; $lang->doc->deleteFile = 'Xóa File';
$lang->doc->menuTitle = 'Menu';
$lang->doc->libName = 'Thư viện tài liệu'; $lang->doc->libName = 'Thư viện tài liệu';
$lang->doc->libType = 'Danh mục'; $lang->doc->libType = 'Danh mục';
+2
View File
@@ -68,6 +68,7 @@ $lang->doc->myCollection = '我的收藏';
/* 方法列表。*/ /* 方法列表。*/
$lang->doc->index = '文档主页'; $lang->doc->index = '文档主页';
$lang->doc->createAB = '创建';
$lang->doc->create = '创建文档'; $lang->doc->create = '创建文档';
$lang->doc->edit = '编辑文档'; $lang->doc->edit = '编辑文档';
$lang->doc->delete = '删除文档'; $lang->doc->delete = '删除文档';
@@ -86,6 +87,7 @@ $lang->doc->catalogName = '目录名称';
$lang->doc->collect = '收藏'; $lang->doc->collect = '收藏';
$lang->doc->cancelCollection = '取消收藏'; $lang->doc->cancelCollection = '取消收藏';
$lang->doc->deleteFile = '删除附件'; $lang->doc->deleteFile = '删除附件';
$lang->doc->menuTitle = '目录';
$lang->doc->collectAction = '收藏文档'; $lang->doc->collectAction = '收藏文档';
+3 -2
View File
@@ -1651,7 +1651,7 @@ class docModel extends model
elseif($libID) elseif($libID)
{ {
$html = "<div class='dropdown' id='createDropdown'>"; $html = "<div class='dropdown' id='createDropdown'>";
$html .= "<button class='btn btn-primary' type='button' data-toggle='dropdown'><i class='icon icon-plus'></i>" . $this->lang->doc->create . " <span class='caret'></span></button>"; $html .= "<button class='btn btn-primary' type='button' data-toggle='dropdown'><i class='icon icon-plus'></i>" . $this->lang->doc->createAB . " <span class='caret'></span></button>";
$html .= "<ul class='dropdown-menu' style='left:0px'>"; $html .= "<ul class='dropdown-menu' style='left:0px'>";
foreach($this->lang->doc->typeList as $typeKey => $typeName) foreach($this->lang->doc->typeList as $typeKey => $typeName)
{ {
@@ -1932,7 +1932,8 @@ class docModel extends model
if(empty($treeMenu)) return ''; if(empty($treeMenu)) return '';
$menu = "<ul id='modules' class='tree' data-ride='tree' data-name='tree-lib'>" . $treeMenu[0] . '</ul>'; $menu = "<ul class='tree' id='title'><li>{$this->lang->doc->menuTitle}</li></ul>";
$menu .= "<ul id='modules' class='tree' data-ride='tree' data-name='tree-lib'>" . $treeMenu[0] . '</ul>';
return $menu; return $menu;
} }
+5 -1
View File
@@ -1,3 +1,6 @@
<style>
.title {font-size: 20px !important;}
</style>
<?php js::set('confirmDelete', $lang->doc->confirmDelete);?> <?php js::set('confirmDelete', $lang->doc->confirmDelete);?>
<?php <?php
$sessionString = $config->requestType == 'PATH_INFO' ? '?' : '&'; $sessionString = $config->requestType == 'PATH_INFO' ? '?' : '&';
@@ -5,7 +8,7 @@ $sessionString .= session_name() . '=' . session_id();
?> ?>
<div id="mainContent" class="main-row"> <div id="mainContent" class="main-row">
<div class="main-col col-8"> <div class="main-col col-8">
<div class="cell"> <div class="cell" id="content">
<div class="detail no-padding"> <div class="detail no-padding">
<div class="detail-title no-padding doc-title"> <div class="detail-title no-padding doc-title">
<div class="title"><?php echo $doc->title;?></div> <div class="title"><?php echo $doc->title;?></div>
@@ -31,6 +34,7 @@ $sessionString .= session_name() . '=' . session_id();
</div> </div>
<div class="actions"> <div class="actions">
<?php <?php
echo html::a("javascript:fullScreen()", '<i class="icon-fullscreen"></i>', '', "title='{$lang->fullscreen}' class='btn btn-link fullscreen-btn'");
if(common::hasPriv('doc', 'edit')) echo html::a(inlink('edit', "docID=$doc->id&comment=false&objectType=$objectType&objectID=$object->id&libID=$libID"), '<i class="icon-edit"></i>', '', "title='{$lang->doc->edit}' class='btn btn-link' data-app='{$this->app->openApp}'"); if(common::hasPriv('doc', 'edit')) echo html::a(inlink('edit', "docID=$doc->id&comment=false&objectType=$objectType&objectID=$object->id&libID=$libID"), '<i class="icon-edit"></i>', '', "title='{$lang->doc->edit}' class='btn btn-link' data-app='{$this->app->openApp}'");
if(common::hasPriv('doc', 'delete')) if(common::hasPriv('doc', 'delete'))
{ {
+21 -3
View File
@@ -254,12 +254,30 @@ class job extends control
* *
* @param int $repoID * @param int $repoID
* @access public * @access public
* @return void * @return string
*/ */
public function ajaxGetProductByRepo($repoID) public function ajaxGetProductByRepo($repoID)
{ {
$repo = $this->loadModel('repo')->getRepoByID($repoID); $repo = $this->loadModel('repo')->getRepoByID($repoID);
if($repo) return $repo->product; if(empty($repo)) die(json_encode(array(""=>"")));
die(js::error("Access Violation. 非法访问。"));
$product = $repo->product;
if(strpos($product, ','))
{
$productList = explode(',', $product);
$matchedProducts = array();
$productPair = $this->loadModel('product')->getPairs();
foreach($productList as $productLeft)
{
foreach($productPair as $productRight => $productName)
{
if($productLeft == $productRight) $matchedProducts[$productName] = $productRight;
}
}
die(json_encode($matchedProduct));
}
$productName = $this->loadModel('product')->getByID($repo->product)->name;
die(json_encode(array($productName => $repo->product)));
} }
} }
+1
View File
@@ -59,6 +59,7 @@ class program extends control
$this->view->status = $status; $this->view->status = $status;
$this->view->orderBy = $orderBy; $this->view->orderBy = $orderBy;
$this->view->users = $this->user->getPairs('noletter'); $this->view->users = $this->user->getPairs('noletter');
$this->view->usersAvatar = $this->user->getAvatarPairs();
$this->view->programType = $programType; $this->view->programType = $programType;
$this->view->PMList = $PMList; $this->view->PMList = $PMList;
+1
View File
@@ -2,3 +2,4 @@
.main-table tbody>tr>td:first-child, .main-table thead>tr>th:first-child {padding-left: 8px;} .main-table tbody>tr>td:first-child, .main-table thead>tr>th:first-child {padding-left: 8px;}
.table tbody>tr>td .dropdown {display: inline-block; line-height: 1;} .table tbody>tr>td .dropdown {display: inline-block; line-height: 1;}
tbody.sortable > tr > td.sort-handler .table-nest-toggle:before {cursor: pointer !important;} tbody.sortable > tr > td.sort-handler .table-nest-toggle:before {cursor: pointer !important;}
.table .avatar {display: inline-block; width: 20px; height: 20px; line-height: 20px; top: 6px;}
+23 -7
View File
@@ -11,8 +11,9 @@
<th class='w-90px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->program->status);?></th> <th class='w-90px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->program->status);?></th>
<th class='w-100px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->program->PM);?></th> <th class='w-100px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->program->PM);?></th>
<th class='text-right w-100px'><?php common::printOrderLink('budget', $orderBy, $vars, $lang->project->budget);?></th> <th class='text-right w-100px'><?php common::printOrderLink('budget', $orderBy, $vars, $lang->project->budget);?></th>
<th class='w-100px'><?php common::printOrderLink('begin', $orderBy, $vars, $lang->project->begin);?></th> <th class='w-100px'><?php common::printOrderLink('begin', $orderBy, $vars, $lang->project->begin);?></th>
<th class='w-100px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->project->end);?></th> <th class='w-100px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->project->end);?></th>
<th class='w-60px'><?php echo $lang->project->progress;?></th>
<th class='text-center w-180px'><?php echo $lang->actions;?></th> <th class='text-center w-180px'><?php echo $lang->actions;?></th>
</tr> </tr>
</thead> </thead>
@@ -45,8 +46,13 @@
<tr <?php echo $trAttrs;?>> <tr <?php echo $trAttrs;?>>
<td class='c-name text-left <?php if($canOrder) echo 'sort-handler';?>' title='<?php echo $program->name?>'> <td class='c-name text-left <?php if($canOrder) echo 'sort-handler';?>' title='<?php echo $program->name?>'>
<?php $class = $program->type == 'program' ? ' table-nest-toggle' : '';?> <?php
<span class="table-nest-icon icon icon-<?php echo $program->type;?> <?php echo $class;?>"></span> $icon = '';
if($program->type == 'program') $icon = ' icon-program';
if($program->type == 'project') $icon = ' icon-common icon-' . (isset($this->config->maxVersion) ? $program->model : $program->type);
$class = $program->type == 'program' ? ' table-nest-toggle' : '';
?>
<span class="table-nest-icon icon <?php echo $class . $icon;?>"></span>
<?php if($program->type == 'program'):?> <?php if($program->type == 'program'):?>
<?php echo html::a($this->createLink('program', 'product', "programID=$program->id"), $program->name);?> <?php echo html::a($this->createLink('program', 'product', "programID=$program->id"), $program->name);?>
<?php else:?> <?php else:?>
@@ -55,13 +61,20 @@
</td> </td>
<td class='c-status'><span class="status-program status-<?php echo $program->status?>"><?php echo zget($lang->project->statusList, $program->status, '');?></span></td> <td class='c-status'><span class="status-program status-<?php echo $program->status?>"><?php echo zget($lang->project->statusList, $program->status, '');?></span></td>
<td> <td>
<?php $userID = isset($PMList[$program->PM]) ? $PMList[$program->PM]->id : ''?> <?php if(!empty($program->PM)):?>
<?php if(!empty($program->PM)) echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), zget($users, $program->PM), '', "data-toggle='modal' data-type='iframe' data-width='600'");?> <div class='avatar bg-secondary avatar-circle'>
<?php echo !empty(zget($usersAvatar, $program->PM, '')) ? html::image(zget($usersAvatar, $program->PM)) : strtoupper($program->PM[0]);?>
</div>
<?php $userID = isset($PMList[$program->PM]) ? $PMList[$program->PM]->id : '';?>
<?php $userName = zget($users, $program->PM);?>
<?php echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), $userName, '', "title='{$userName}' data-toggle='modal' data-type='iframe' data-width='600'");?>
<?php endif;?>
</td> </td>
<?php $programBudget = in_array($this->app->getClientLang(), ['zh-cn','zh-tw']) ? round((float)$program->budget / 10000, 2) . $lang->project->tenThousand : round((float)$program->budget, 2);?> <?php $programBudget = in_array($this->app->getClientLang(), ['zh-cn','zh-tw']) ? round((float)$program->budget / 10000, 2) . $lang->project->tenThousand : round((float)$program->budget, 2);?>
<td class='text-right'><?php echo $program->budget != 0 ? zget($lang->project->currencySymbol, $program->budgetUnit) . ' ' . $programBudget : $lang->project->future;?></td> <td class='text-right'><?php echo $program->budget != 0 ? zget($lang->project->currencySymbol, $program->budgetUnit) . ' ' . $programBudget : $lang->project->future;?></td>
<td><?php echo $program->begin;?></td> <td><?php echo $program->begin;?></td>
<td><?php echo $program->end == LONG_TIME ? $lang->program->longTime : $program->end;?></td> <td><?php echo $program->end == LONG_TIME ? $lang->program->longTime : $program->end;?></td>
<td></td>
<td class='c-actions'> <td class='c-actions'>
<?php if($program->type == 'program'):?> <?php if($program->type == 'program'):?>
<?php if($program->status == 'wait' || $program->status == 'suspended') common::printIcon('program', 'start', "programID=$program->id", $program, 'list', 'play', '', 'iframe', true, '', $this->lang->program->start);?> <?php if($program->status == 'wait' || $program->status == 'suspended') common::printIcon('program', 'start', "programID=$program->id", $program, 'list', 'play', '', 'iframe', true, '', $this->lang->program->start);?>
@@ -124,7 +137,10 @@
#programList > thead > tr > th .table-nest-toggle-global {top: 6px} #programList > thead > tr > th .table-nest-toggle-global {top: 6px}
#programList > thead > tr > th .table-nest-toggle-global:before {color: #a6aab8;} #programList > thead > tr > th .table-nest-toggle-global:before {color: #a6aab8;}
#programTableList > tr:last-child .c-actions .dropdown-menu {top: auto; bottom: 100%; margin-bottom: -5px;} #programTableList > tr:last-child .c-actions .dropdown-menu {top: auto; bottom: 100%; margin-bottom: -5px;}
#programTableList .icon-project:before {content: '\e99c'; width: 22px; height: 22px; background: none; color: #16a8f8; top: 0; line-height: 22px; margin-right: 2px; font-size: 14px} #programTableList .icon-common:before {width: 22px; height: 22px; background: none; color: rgb(166, 170, 184); top: 0; line-height: 22px; margin-right: 2px; font-size: 14px}
#programTableList .icon-project:before {content: '\e99c';}
#programTableList .icon-scrum:before {content: '\e9a2';}
#programTableList .icon-waterfall:before {content: '\e9a4';}
</style> </style>
<?php js::set('originOrders', $originOrders);?> <?php js::set('originOrders', $originOrders);?>
<script> <script>
+1 -1
View File
@@ -393,7 +393,7 @@ class todo extends control
$this->view->actions = $this->loadModel('action')->getList('todo', $todoID); $this->view->actions = $this->loadModel('action')->getList('todo', $todoID);
$this->view->from = $from; $this->view->from = $from;
$this->view->projects = $projects; $this->view->projects = $projects;
$this->view->executions = $this->loadModel('execution')->getPairs($this->session->project); $this->view->executions = $this->loadModel('execution')->getPairs();
$this->view->products = $todo->type == 'opportunity' ? $this->loadModel('product')->getPairsByProjectModel('waterfall') : $this->loadModel('product')->getPairs(); $this->view->products = $todo->type == 'opportunity' ? $this->loadModel('product')->getPairsByProjectModel('waterfall') : $this->loadModel('product')->getPairs();
$this->view->projectProducts = $this->loadModel('product')->getProductPairsByProject($this->session->project); $this->view->projectProducts = $this->loadModel('product')->getProductPairsByProject($this->session->project);
+1 -1
View File
@@ -78,7 +78,7 @@ function createProject()
var onlybody = config.onlybody; var onlybody = config.onlybody;
config.onlybody = 'no'; config.onlybody = 'no';
var link = createLink('project', 'create'); var link = systemMode == 'new' ? createLink('project', 'create') : createLink('execution', 'create');
config.onlybody = onlybody; config.onlybody = onlybody;
parent.location.href = link; parent.location.href = link;
+1 -1
View File
@@ -35,7 +35,7 @@ $lang->todo->cycle = "周期";
$lang->todo->cycleConfig = "周期设置"; $lang->todo->cycleConfig = "周期设置";
$lang->todo->project = "所属项目"; $lang->todo->project = "所属项目";
$lang->todo->product = "所属产品"; $lang->todo->product = "所属产品";
$lang->todo->execution = "所属执行"; $lang->todo->execution = "所属{$lang->execution->common}";
$lang->todo->reasonList['story'] = "{$lang->SRCommon}"; $lang->todo->reasonList['story'] = "{$lang->SRCommon}";
$lang->todo->reasonList['task'] = "转任务"; $lang->todo->reasonList['task'] = "转任务";
+4 -1
View File
@@ -12,6 +12,7 @@
?> ?>
<?php include '../../common/view/header.html.php';?> <?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?> <?php include '../../common/view/kindeditor.html.php';?>
<?php js::set('systemMode', $config->systemMode);?>
<?php if(!$todo->private or ($todo->private and $todo->account == $app->user->account)):?> <?php if(!$todo->private or ($todo->private and $todo->account == $app->user->account)):?>
<style>.chosen-container .chosen-results{max-height: 170px; overflow-y: initial;}</style> <style>.chosen-container .chosen-results{max-height: 170px; overflow-y: initial;}</style>
<div id="mainMenu" class="clearfix"> <div id="mainMenu" class="clearfix">
@@ -201,7 +202,7 @@
<h4 class="modal-title"><?php echo $lang->execution->selectExecution;?></h4> <h4 class="modal-title"><?php echo $lang->execution->selectExecution;?></h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<?php if(empty($projects)):?> <?php if((empty($projects) and $config->systemMode == 'new') || ($config->systemMode == 'classic') and empty($executions)):?>
<div class="table-empty-tip"> <div class="table-empty-tip">
<p> <p>
<span class="text-muted"><?php echo $lang->project->empty;?></span> <span class="text-muted"><?php echo $lang->project->empty;?></span>
@@ -210,10 +211,12 @@
</div> </div>
<?php else:?> <?php else:?>
<table align='center' class='table table-form'> <table align='center' class='table table-form'>
<?php if($config->systemMode == 'new'):?>
<tr> <tr>
<th><?php echo $lang->todo->project;?></th> <th><?php echo $lang->todo->project;?></th>
<td><?php echo html::select('project', $projects, '', "class='form-control chosen' onchange=getExecutionByProject(this.value);");?></td> <td><?php echo html::select('project', $projects, '', "class='form-control chosen' onchange=getExecutionByProject(this.value);");?></td>
</tr> </tr>
<?php endif;?>
<tr> <tr>
<th><?php echo $lang->todo->execution;?></th> <th><?php echo $lang->todo->execution;?></th>
<td id='executionIdBox'><?php echo html::select('execution', $executions, '', "class='form-control chosen'");?></td> <td id='executionIdBox'><?php echo html::select('execution', $executions, '', "class='form-control chosen'");?></td>
+17 -2
View File
@@ -132,6 +132,21 @@ class userModel extends model
return $users; return $users;
} }
/**
* Get user's avatar pairs.
*
* @access public
* @return array
*/
public function getAvatarPairs()
{
$avatarPairs = array();
$userList = $this->getList();
foreach($userList as $user) $avatarPairs[$user->account] = $user->avatar;
return $avatarPairs;
}
/** /**
* Get commiters from the user table. * Get commiters from the user table.
* *
@@ -1887,7 +1902,7 @@ class userModel extends model
{ {
$stakeholders = zget($stakeholderGroup, $program->id, array()); $stakeholders = zget($stakeholderGroup, $program->id, array());
$whiteList = zget($whiteListGroup, $program->id, array()); $whiteList = zget($whiteListGroup, $program->id, array());
if($program->acl == 'program') if($program->acl == 'program')
{ {
$stakeholders += zget($parentStakeholderGroup, $program->id, array()); $stakeholders += zget($parentStakeholderGroup, $program->id, array());
$stakeholders += zget($parentPMGroup, $program->id, array()); $stakeholders += zget($parentPMGroup, $program->id, array());
@@ -1911,7 +1926,7 @@ class userModel extends model
{ {
$stakeholders = zget($stakeholderGroup, $program->id, array()); $stakeholders = zget($stakeholderGroup, $program->id, array());
$whiteList = zget($whiteListGroup, $program->id, array()); $whiteList = zget($whiteListGroup, $program->id, array());
if($program->acl == 'program') if($program->acl == 'program')
{ {
$stakeholders += zget($parentStakeholderGroup, $program->id, array()); $stakeholders += zget($parentStakeholderGroup, $program->id, array());
$stakeholders += zget($parentPMGroup, $program->id, array()); $stakeholders += zget($parentPMGroup, $program->id, array());