Skip to content

Commit a23bfee

Browse files
committed
Merge pull request #1736 from PaulL1/1734_lastWidth
Fix #1734(menu): type error on reposition
2 parents cfc2444 + e8d63cd commit a23bfee

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

misc/tutorial/102_sorting.ngdoc

+5
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,11 @@ in (lower priority gets sorted first).
198198
gridTestUtils.expectCellValueMatch( 'grid1', 0, 0, 'Ethel Price' );
199199
gridTestUtils.expectCellValueMatch( 'grid1', 1, 0, 'Claudine Neal' );
200200
});
201+
202+
it('click one menu, then click another menu, expect undisplay and redisplay on second click', function() {
203+
gridTestUtils.expectVisibleColumnMenuItems( 'grid1', 0, 3 );
204+
gridTestUtils.expectVisibleColumnMenuItems( 'grid1', 1, 3 );
205+
});
201206
});
202207

203208

src/js/core/directives/ui-grid-column-menu.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -283,18 +283,18 @@ function ( i18nService, uiGridConstants, gridUtil ) {
283283
var containerScrollLeft = renderContainerElm.querySelectorAll('.ui-grid-viewport')[0].scrollLeft;
284284

285285
// default value the last width for _this_ column, otherwise last width for _any_ column, otherwise default to 170
286-
var myWidth = $scope.col.lastMenuWidth ? $scope.col.lastMenuWidth : ( $scope.lastMenuWidth ? $scope.lastMenuWidth : 170);
287-
var paddingRight = $scope.col.lastMenuPaddingRight ? $scope.col.lastMenuPaddingRight : ( $scope.lastMenuPaddingRight ? $scope.lastMenuPaddingRight : 10);
286+
var myWidth = column.lastMenuWidth ? column.lastMenuWidth : ( $scope.lastMenuWidth ? $scope.lastMenuWidth : 170);
287+
var paddingRight = column.lastMenuPaddingRight ? column.lastMenuPaddingRight : ( $scope.lastMenuPaddingRight ? $scope.lastMenuPaddingRight : 10);
288288
if (menu.length !== 0){
289289
myWidth = gridUtil.elementWidth(menu, true);
290290
$scope.lastMenuWidth = myWidth;
291-
$scope.col.lastMenuWidth = myWidth;
291+
column.lastMenuWidth = myWidth;
292292

293293
// TODO(c0bra): use padding-left/padding-right based on document direction (ltr/rtl), place menu on proper side
294294
// Get the column menu right padding
295295
paddingRight = parseInt(gridUtil.getStyles(angular.element(menu)[0])['paddingRight'], 10);
296296
$scope.lastMenuPaddingRight = paddingRight;
297-
$scope.col.lastMenuPaddingRight = paddingRight;
297+
column.lastMenuPaddingRight = paddingRight;
298298
}
299299

300300
var left = positionData.left + renderContainerOffset - containerScrollLeft + positionData.width - myWidth + paddingRight;
@@ -369,6 +369,7 @@ function ($log, $timeout, gridUtil, uiGridConstants, uiGridColumnMenuService) {
369369

370370
if ($scope.menuShown) {
371371
$scope.$broadcast('hide-menu');
372+
$scope.col = column;
372373

373374
uiGridColumnMenuService.repositionMenu( $scope, column, colElementPosition, $elm, $columnElement );
374375
$scope.$broadcast('show-menu');

0 commit comments

Comments
 (0)