Index: trunk/kernel/admin_templates/incs/grid.js =================================================================== diff -u -r5022 -r5031 --- trunk/kernel/admin_templates/incs/grid.js (.../grid.js) (revision 5022) +++ trunk/kernel/admin_templates/incs/grid.js (.../grid.js) (revision 5031) @@ -7,19 +7,29 @@ GridManager.prototype.AddAlternativeGrid = function ($source_grid, $destination_grid, $reciprocal) { + if ($source_grid == $destination_grid) { + return false; + } + if (typeof(this.AlternativeGrids[$source_grid]) == 'undefined') { - // create array if it is first alternative grid to this one + // alternative grids not found, create empty list this.AlternativeGrids[$source_grid] = new Array(); } - this.AlternativeGrids[$source_grid].push($destination_grid); + if (!in_array($destination_grid, this.AlternativeGrids[$source_grid])) { + // alternative grids found, check if not added already + this.AlternativeGrids[$source_grid].push($destination_grid); + } + if ($reciprocal) { this.AddAlternativeGrid($destination_grid, $source_grid); } } GridManager.prototype.ClearAlternativeGridsSelection = function ($source_prefix) { + if (!this.AlternativeGrids[$source_prefix]) return false; + var $i = 0; while ($i < this.AlternativeGrids[$source_prefix].length) { this.Grids[ this.AlternativeGrids[$source_prefix][$i] ].ClearSelection();