Implements check for duplicate default columns

This commit is contained in:
Rafael de Camargo 2019-07-23 17:18:42 -03:00 committed by Frédéric Guillot
parent 21a3634fd1
commit e488fdd154
2 changed files with 11 additions and 14 deletions

View File

@ -31,20 +31,16 @@ class BoardModel extends Base
*/ */
public function getUserColumns() public function getUserColumns()
{ {
$column_names = explode(',', $this->configModel->get('board_columns', implode(',', $this->getDefaultColumns()))); $column_names = array_unique(explode_csv_field($this->configModel->get('board_columns', implode(',', $this->getDefaultColumns()))));
$columns = array(); $columns = array();
foreach ($column_names as $column_name) { foreach ($column_names as $column_name) {
$column_name = trim($column_name); $columns[] = array(
'title' => $column_name,
if (! empty($column_name)) { 'task_limit' => 0,
$columns[] = array( 'description' => '',
'title' => $column_name, 'hide_in_dashboard' => 0,
'task_limit' => 0, );
'description' => '',
'hide_in_dashboard' => 0,
);
}
} }
return $columns; return $columns;

View File

@ -26,8 +26,8 @@ class BoardTest extends Base
$this->assertEquals('Work in progress', $columns[3]); $this->assertEquals('Work in progress', $columns[3]);
$this->assertEquals('Done', $columns[4]); $this->assertEquals('Done', $columns[4]);
// Custom columns: spaces should be trimed and no empty columns // Custom columns: spaces should be trimed, no empty columns and no duplicates
$input = ' column #1 , column #2, '; $input = ' column #1 , column #2,column #1 ,column #3 , ';
$this->assertTrue($c->save(array('board_columns' => $input))); $this->assertTrue($c->save(array('board_columns' => $input)));
$this->container['memoryCache']->flush(); $this->container['memoryCache']->flush();
@ -37,8 +37,9 @@ class BoardTest extends Base
$columns = $columnModel->getList(2); $columns = $columnModel->getList(2);
$this->assertTrue(is_array($columns)); $this->assertTrue(is_array($columns));
$this->assertEquals(2, count($columns)); $this->assertEquals(3, count($columns));
$this->assertEquals('column #1', $columns[5]); $this->assertEquals('column #1', $columns[5]);
$this->assertEquals('column #2', $columns[6]); $this->assertEquals('column #2', $columns[6]);
$this->assertEquals('column #3', $columns[7]);
} }
} }