Add a board selector instead of the list of projects

This commit is contained in:
Frédéric Guillot
2014-06-20 21:59:59 -03:00
parent 08621f99e6
commit b513313c2f
12 changed files with 62 additions and 19 deletions

View File

@@ -185,11 +185,7 @@ class Board extends Base
$user_id = $this->request->getIntegerParam('user_id', UserModel::EVERYBODY_ID); $user_id = $this->request->getIntegerParam('user_id', UserModel::EVERYBODY_ID);
$this->checkProjectPermissions($project_id); $this->checkProjectPermissions($project_id);
$projects = $this->project->getListByStatus(ProjectModel::ACTIVE); $projects = $this->project->getAvailableList($this->acl->getUserId());
if ($this->acl->isRegularUser()) {
$projects = $this->project->filterListByAccess($projects, $this->acl->getUserId());
}
if (! isset($projects[$project_id])) { if (! isset($projects[$project_id])) {
$this->notfound(); $this->notfound();
@@ -204,7 +200,8 @@ class Board extends Base
'board' => $this->board->get($project_id), 'board' => $this->board->get($project_id),
'categories' => $this->category->getList($project_id, true, true), 'categories' => $this->category->getList($project_id, true, true),
'menu' => 'boards', 'menu' => 'boards',
'title' => $projects[$project_id] 'title' => $projects[$project_id],
'board_selector' => array(t('Display another project')) + $projects,
))); )));
} }

View File

@@ -375,4 +375,5 @@ return array(
// 'Sub-task added successfully.' => '', // 'Sub-task added successfully.' => '',
// 'Maximum size: ' => '', // 'Maximum size: ' => '',
// 'Unable to upload the file.' => '', // 'Unable to upload the file.' => '',
// 'Display another project' => '',
); );

View File

@@ -373,4 +373,5 @@ return array(
// 'Sub-task added successfully.' => '', // 'Sub-task added successfully.' => '',
// 'Maximum size: ' => '', // 'Maximum size: ' => '',
// 'Unable to upload the file.' => '', // 'Unable to upload the file.' => '',
// 'Display another project' => '',
); );

View File

@@ -373,4 +373,5 @@ return array(
'Sub-task added successfully.' => 'Sous-tâche ajouté avec succès.', 'Sub-task added successfully.' => 'Sous-tâche ajouté avec succès.',
'Maximum size: ' => 'Taille maximum : ', 'Maximum size: ' => 'Taille maximum : ',
'Unable to upload the file.' => 'Impossible de transférer le fichier.', 'Unable to upload the file.' => 'Impossible de transférer le fichier.',
'Display another project' => 'Afficher un autre projet',
); );

View File

@@ -378,4 +378,5 @@ return array(
// 'Sub-task added successfully.' => '', // 'Sub-task added successfully.' => '',
// 'Maximum size: ' => '', // 'Maximum size: ' => '',
// 'Unable to upload the file.' => '', // 'Unable to upload the file.' => '',
// 'Display another project' => '',
); );

View File

@@ -374,4 +374,5 @@ return array(
// 'Sub-task added successfully.' => '', // 'Sub-task added successfully.' => '',
// 'Maximum size: ' => '', // 'Maximum size: ' => '',
// 'Unable to upload the file.' => '', // 'Unable to upload the file.' => '',
// 'Display another project' => '',
); );

View File

@@ -354,4 +354,32 @@ return array(
'Add a comment' => '添加一个注释', 'Add a comment' => '添加一个注释',
'Edit a comment' => '修改一个注释', 'Edit a comment' => '修改一个注释',
'Summary' => '概要', 'Summary' => '概要',
// 'Time tracking' => '',
// 'Estimate:' => '',
// 'Spent:' => '',
// 'Do you really want to remove this sub-task?' => '',
// 'Remaining:' => '',
// 'hours' => '',
// 'spent' => '',
// 'estimated' => '',
// 'Sub-Tasks' => '',
// 'Add a sub-task' => '',
// 'Original Estimate' => '',
// 'Create another sub-task' => '',
// 'Time Spent' => '',
// 'Edit a sub-task' => '',
// 'Remove a sub-task' => '',
// 'The time must be a numeric value' => '',
// 'Todo' => '',
// 'In progress' => '',
// 'Done' => '',
// 'Sub-task removed successfully.' => '',
// 'Unable to remove this sub-task.' => '',
// 'Sub-task updated successfully.' => '',
// 'Unable to update your sub-task.' => '',
// 'Unable to create your sub-task.' => '',
// 'Sub-task added successfully.' => '',
// 'Maximum size: ' => '',
// 'Unable to upload the file.' => '',
// 'Display another project' => '',
); );

View File

@@ -319,7 +319,7 @@ class Project extends Base
* Get a list of project by status * Get a list of project by status
* *
* @access public * @access public
* @param integer $status Proejct status: self::ACTIVE or self:INACTIVE * @param integer $status Project status: self::ACTIVE or self:INACTIVE
* @return array * @return array
*/ */
public function getListByStatus($status) public function getListByStatus($status)
@@ -347,7 +347,7 @@ class Project extends Base
} }
/** /**
* Return a list of projects for a given user * Filter a list of projects for a given user
* *
* @access public * @access public
* @param array $projects Project list: ['project_id' => 'project_name'] * @param array $projects Project list: ['project_id' => 'project_name']
@@ -365,6 +365,18 @@ class Project extends Base
return $projects; return $projects;
} }
/**
* Return a list of projects for a given user
*
* @access public
* @param integer $user_id User id
* @return array
*/
public function getAvailableList($user_id)
{
return $this->filterListByAccess($this->getListByStatus(self::ACTIVE), $user_id);
}
/** /**
* Create a project * Create a project
* *

View File

@@ -4,15 +4,6 @@
<h2> <h2>
<?= t('Project "%s"', $current_project_name) ?> <?= t('Project "%s"', $current_project_name) ?>
</h2> </h2>
<ul>
<?php foreach ($projects as $project_id => $project_name): ?>
<?php if ($project_id != $current_project_id): ?>
<li>
<a href="?controller=board&amp;action=show&amp;project_id=<?= $project_id ?>"><?= Helper\escape($project_name) ?></a>
</li>
<?php endif ?>
<?php endforeach ?>
</ul>
</div> </div>
<div class="project-menu"> <div class="project-menu">

View File

@@ -31,8 +31,14 @@
<?php else: ?> <?php else: ?>
<header> <header>
<nav> <nav>
<a class="logo" href="?">kan<span>board</span></a> <a class="logo" href="?">kanboard</a>
<ul> <ul>
<?php if (isset($board_selector)): ?>
<li>
<?= Helper\form_select('board-selector', $board_selector) ?>
</li>
<?php endif ?>
<li <?= isset($menu) && $menu === 'boards' ? 'class="active"' : '' ?>> <li <?= isset($menu) && $menu === 'boards' ? 'class="active"' : '' ?>>
<a href="?controller=board"><?= t('Boards') ?></a> <a href="?controller=board"><?= t('Boards') ?></a>
</li> </li>

View File

@@ -485,7 +485,7 @@ nav .active a {
/* board */ /* board */
.page-header.board { .page-header.board {
margin-bottom: 0; margin-bottom: 5px;
} }
.project-menu li { .project-menu li {

View File

@@ -190,6 +190,10 @@
$(function() { $(function() {
board_load_events(); board_load_events();
filter_load_events(); filter_load_events();
$("#form-board-selector").change(function() {
window.location = "?controller=board&action=show&project_id=" + $(this).val();
});
}); });
}()); }());