Skip to content

Commit 579adf0

Browse files
Stephen Cavendermportuga
authored andcommitted
expose menuButtonTemplate and menuItemTemplate
1 parent 4597c69 commit 579adf0

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

src/js/core/factories/GridOptions.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,28 @@ angular.module('ui.grid')
521521
*/
522522
baseOptions.gridMenuTemplate = baseOptions.gridMenuTemplate || 'ui-grid/uiGridMenu';
523523

524+
/**
525+
* @ngdoc string
526+
* @name menuButtonTemplate
527+
* @propertyOf ui.grid.class:GridOptions
528+
* @description 'ui-grid/ui-grid-menu-button' by default. When provided, this setting uses a custom grid menu button
529+
* template. Can be set to either the name of a template file 'menuButton_template.html', inline html
530+
* <pre>'<div class="ui-grid-menu-button" ng-click="customToggleMenu()"><div class="ui-grid-icon-container"><i class="ui-grid-icon=menu">&nbsp;</i></div></div><div ui-grid-menu menu-items="menuItems"></div>'</pre>, or the id
531+
* of a precompiled template (TBD how to use this). Refer to the custom footer tutorial for more information.
532+
*/
533+
baseOptions.menuButtonTemplate = baseOptions.menuButtonTemplate || 'ui-grid/ui-grid-menu-button';
534+
535+
/**
536+
* @ngdoc string
537+
* @name menuItemTemplate
538+
* @propertyOf ui.grid.class:GridOptions
539+
* @description 'ui-grid/uiGridMenuItem' by default. When provided, this setting uses a custom grid menu item
540+
* template. Can be set to either the name of a template file 'menuItem_template.html', inline html
541+
* <pre>'<li class="ui-grid-menu-item"><label>{{name}}</label></li>'</pre>, or the id
542+
* of a precompiled template (TBD how to use this). Refer to the custom footer tutorial for more information.
543+
*/
544+
baseOptions.menuItemTemplate = baseOptions.menuItemTemplate || 'ui-grid/uiGridMenuItem';
545+
524546
/**
525547
* @ngdoc object
526548
* @name appScopeProvider

test/unit/core/directives/ui-grid-menu.spec.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,10 @@ describe('ui-grid-menu', function() {
258258
});
259259
});
260260

261-
describe('custom gridMenu templates', function() {
261+
describe('custom templates', function() {
262262
var $timeout;
263-
var customGridMenu = '<div ui-grid-menu-custom menu-items="items"></div>';
263+
var customGridMenu = '<div ui-grid-menu-custom menu-items="items"></div>';
264+
var customGridMenuButton = '<div role="button"></div>';
264265

265266
beforeEach(inject(function(_$timeout_) {
266267
$timeout = _$timeout_;
@@ -270,6 +271,7 @@ describe('ui-grid-menu', function() {
270271
var element = angular.element('<div ui-grid="gridOptions"></div>');
271272
$scope.gridOptions = {};
272273
$scope.gridOptions.gridMenuTemplate = customGridMenu;
274+
$scope.gridOptions.menuButtonTemplate = customGridMenuButton;
273275
$scope.gridOptions.onRegisterApi = function(gridApi) {
274276
$scope.grid = gridApi.grid;
275277
};
@@ -285,6 +287,10 @@ describe('ui-grid-menu', function() {
285287
it('should have gridMenuTemplate defined in grid options', function() {
286288
expect($scope.grid.options.gridMenuTemplate).toEqual(customGridMenu);
287289
});
290+
291+
it('should have menuButtonTemplate defined in grid options', function() {
292+
expect($scope.grid.options.menuButtonTemplate).toEqual(customGridMenuButton);
293+
});
288294
});
289295

290296
describe('title displayed', function() {

test/unit/core/factories/GridOptions.spec.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ describe('GridOptions factory', function () {
5151
gridFooterTemplate: 'ui-grid/ui-grid-grid-footer',
5252
rowTemplate: 'ui-grid/ui-grid-row',
5353
gridMenuTemplate: 'ui-grid/uiGridMenu',
54+
menuButtonTemplate: 'ui-grid/ui-grid-menu-button',
55+
menuItemTemplate: 'ui-grid/uiGridMenuItem',
5456
appScopeProvider: null
5557
});
5658
});
@@ -96,6 +98,8 @@ describe('GridOptions factory', function () {
9698
gridFooterTemplate: 'testGridFooter',
9799
rowTemplate: 'testRow',
98100
gridMenuTemplate: 'testGridMenu',
101+
menuButtonTemplate: 'testMenuButton',
102+
menuItemTemplate: 'testMenuItem',
99103
extraOption: 'testExtraOption',
100104
appScopeProvider : 'anotherRef'
101105
};
@@ -139,6 +143,8 @@ describe('GridOptions factory', function () {
139143
gridFooterTemplate: 'testGridFooter',
140144
rowTemplate: 'testRow',
141145
gridMenuTemplate: 'testGridMenu',
146+
menuButtonTemplate: 'testMenuButton',
147+
menuItemTemplate: 'testMenuItem',
142148
extraOption: 'testExtraOption',
143149
appScopeProvider : 'anotherRef'
144150
});
@@ -185,6 +191,8 @@ describe('GridOptions factory', function () {
185191
gridFooterTemplate: 'testGridFooter',
186192
rowTemplate: 'testRow',
187193
gridMenuTemplate: 'testGridMenu',
194+
menuButtonTemplate: 'testMenuButton',
195+
menuItemTemplate: 'testMenuItem',
188196
extraOption: 'testExtraOption'
189197
};
190198
expect( GridOptions.initialize(options) ).toEqual({
@@ -227,6 +235,8 @@ describe('GridOptions factory', function () {
227235
gridFooterTemplate: 'testGridFooter',
228236
rowTemplate: 'testRow',
229237
gridMenuTemplate: 'testGridMenu',
238+
menuButtonTemplate: 'testMenuButton',
239+
menuItemTemplate: 'testMenuItem',
230240
extraOption: 'testExtraOption',
231241
appScopeProvider : null
232242
});

0 commit comments

Comments
 (0)