@@ -8007,6 +8007,8 @@ angular.module('patternfly.views').directive('pfCardView', ["pfUtils", function
80078007 * <li>.isDisabled - (Boolean) set to true to disable the action
80088008 * <li>.isSeparator - (Boolean) set to true if this is a placeholder for a separator rather than an action
80098009 * </ul>
8010+ * @param {function (item)) } hideMenuForItemFn function(item) Used to hide all menu actions for a particular item
8011+ * @param {function (item)) } menuClassForItemFn function(item) Used to specify a class for an item's dropdown kebab
80108012 * @param {function (action, item)) } updateMenuActionForItemFn function(action, item) Used to update a menu action based on the current item
80118013 * @param {object } customScope Object containing any variables/functions used by the transcluded html, access via customScope.<xxx>
80128014 * @example
@@ -8019,7 +8021,9 @@ angular.module('patternfly.views').directive('pfCardView', ["pfUtils", function
80198021 action-buttons="actionButtons"
80208022 enable-button-for-item-fn="enableButtonForItemFn"
80218023 menu-actions="menuActions"
8022- update-menu-action-for-item-fn="updateMenuActionForItemFn">
8024+ update-menu-action-for-item-fn="updateMenuActionForItemFn"
8025+ menu-class-for-item-fn="getMenuClass"
8026+ hide-menu-for-item-fn="hideMenuActions">
80238027 <div class="list-view-pf-description">
80248028 <div class="list-group-item-heading">
80258029 {{item.name}}
@@ -8177,7 +8181,7 @@ angular.module('patternfly.views').directive('pfCardView', ["pfUtils", function
81778181 state: "Colorado"
81788182 },
81798183 {
8180- name: "Jim Beam ",
8184+ name: "Jim Brown ",
81818185 address: "72 Bourbon Way",
81828186 city: "Nashville",
81838187 state: "Tennessee"
@@ -8202,6 +8206,18 @@ angular.module('patternfly.views').directive('pfCardView', ["pfUtils", function
82028206 },
82038207 ];
82048208
8209+ $scope.getMenuClass = function (item) {
8210+ var menuClass = "";
8211+ if (item.name === "Jim Brown") {
8212+ menuClass = 'red';
8213+ }
8214+ return menuClass;
8215+ };
8216+
8217+ $scope.hideMenuActions = function (item) {
8218+ return (item.name === "Marie Edwards");
8219+ };
8220+
82058221 var performAction = function (action, item) {
82068222 $scope.eventText = item.name + " : " + action.name + "\r\n" + $scope.eventText;
82078223 };
@@ -8279,6 +8295,8 @@ angular.module('patternfly.views').directive('pfListView', ["$timeout", "$window
82798295 actionButtons : '=?' ,
82808296 enableButtonForItemFn : '=?' ,
82818297 menuActions : '=?' ,
8298+ hideMenuForItemFn : '=?' ,
8299+ menuClassForItemFn : '=?' ,
82828300 updateMenuActionForItemFn : '=?' ,
82838301 actions : '=?' ,
82848302 updateActionForItemFn : '=?' ,
@@ -8355,6 +8373,24 @@ angular.module('patternfly.views').directive('pfListView', ["$timeout", "$window
83558373 }
83568374 } ;
83578375
8376+ $scope . getMenuClassForItem = function ( item ) {
8377+ var menuClass = '' ;
8378+ if ( angular . isFunction ( $scope . menuClassForItemFn ) ) {
8379+ menuClass = $scope . menuClassForItemFn ( item ) ;
8380+ }
8381+
8382+ return menuClass ;
8383+ } ;
8384+
8385+ $scope . hideMenuForItem = function ( item ) {
8386+ var hideMenu = false ;
8387+ if ( angular . isFunction ( $scope . hideMenuForItemFn ) ) {
8388+ hideMenu = $scope . hideMenuForItemFn ( item ) ;
8389+ }
8390+
8391+ return hideMenu ;
8392+ } ;
8393+
83588394 $scope . setupActions = function ( item , event ) {
83598395 // Ignore disabled items completely
83608396 if ( $scope . checkDisabled ( item ) ) {
@@ -9990,7 +10026,7 @@ angular.module('patternfly.wizard').directive('pfWizardSubstep', function () {
999010026
999110027
999210028 $templateCache . put ( 'views/listview/list-view.html' ,
9993- "<div class=list-view-pf><div class=\"list-group-item {{item.rowClass}}\" ng-repeat=\"item in items track by $index\" ng-class=\"{'pf-selectable': selectItems, 'active': isSelected(item), 'disabled': checkDisabled(item)}\"><div class=list-view-pf-checkbox ng-if=config.showSelectBox><input type=checkbox value=item.selected ng-model=item.selected ng-disabled=checkDisabled(item) ng-change=\"checkBoxChange(item)\"></div><div class=list-view-pf-actions ng-if=\"(actionButtons && actionButtons.length > 0) || (menuActions && menuActions.length > 0)\"><button class=\"btn btn-default {{actionButton.class}}\" ng-repeat=\"actionButton in actionButtons\" title=actionButton.title ng-class=\"{'disabled' : checkDisabled(item) || !enableButtonForItem(actionButton, item)}\" ng-click=\"handleButtonAction(actionButton, item)\"><div ng-if=actionButton.include class=actionButton.includeClass ng-include src=actionButton.include></div><span ng-if=!actionButton.include>{{actionButton.name}}</span></button><div class=\"{{dropdownClass}} pull-right dropdown-kebab-pf\" id=kebab_{{$index}} ng-if=\"menuActions && menuActions.length > 0\"><button class=\"btn btn-link dropdown-toggle\" type=button id=dropdownKebabRight_{{$index}} ng-class=\"{'disabled': checkDisabled(item)}\" ng-click=\"setupActions(item, $event)\" data-toggle=dropdown aria-haspopup=true aria-expanded=true><span class=\"fa fa-ellipsis-v\"></span></button><ul class=\"dropdown-menu dropdown-menu-right {{$index}}\" aria-labelledby=dropdownKebabRight_{{$index}}><li ng-repeat=\"menuAction in menuActions\" ng-if=\"menuAction.isVisible !== false\" role=\"{{menuAction.isSeparator === true ? 'separator' : 'menuitem'}}\" ng-class=\"{'divider': (menuAction.isSeparator === true), 'disabled': (menuAction.isDisabled === true)}\"><a ng-if=\"menuAction.isSeparator !== true\" title={{menuAction.title}} ng-click=\"handleMenuAction(menuAction, item)\">{{menuAction.name}}</a></li></ul></div></div><div pf-transclude=parent class=list-view-pf-main-info ng-click=\"itemClick($event, item)\" ng-dblclick=\"dblClick($event, item)\"></div></div></div>"
10029+ "<div class=list-view-pf><div class=\"list-group-item {{item.rowClass}}\" ng-repeat=\"item in items track by $index\" ng-class=\"{'pf-selectable': selectItems, 'active': isSelected(item), 'disabled': checkDisabled(item)}\"><div class=list-view-pf-checkbox ng-if=config.showSelectBox><input type=checkbox value=item.selected ng-model=item.selected ng-disabled=checkDisabled(item) ng-change=\"checkBoxChange(item)\"></div><div class=list-view-pf-actions ng-if=\"(actionButtons && actionButtons.length > 0) || (menuActions && menuActions.length > 0)\"><button class=\"btn btn-default {{actionButton.class}}\" ng-repeat=\"actionButton in actionButtons\" title=actionButton.title ng-class=\"{'disabled' : checkDisabled(item) || !enableButtonForItem(actionButton, item)}\" ng-click=\"handleButtonAction(actionButton, item)\"><div ng-if=actionButton.include class=actionButton.includeClass ng-include src=actionButton.include></div><span ng-if=!actionButton.include>{{actionButton.name}}</span></button><div class=\"{{dropdownClass}} pull-right dropdown-kebab-pf {{getMenuClassForItem(item)}} {{hideMenuForItem(item) ? 'invisible' : ''}}\" id=kebab_{{$index}} ng-if=\"menuActions && menuActions.length > 0\"><button class=\"btn btn-link dropdown-toggle\" type=button id=dropdownKebabRight_{{$index}} ng-class=\"{'disabled': checkDisabled(item)}\" ng-click=\"setupActions(item, $event)\" data-toggle=dropdown aria-haspopup=true aria-expanded=true><span class=\"fa fa-ellipsis-v\"></span></button><ul class=\"dropdown-menu dropdown-menu-right {{$index}}\" aria-labelledby=dropdownKebabRight_{{$index}}><li ng-repeat=\"menuAction in menuActions\" ng-if=\"menuAction.isVisible !== false\" role=\"{{menuAction.isSeparator === true ? 'separator' : 'menuitem'}}\" ng-class=\"{'divider': (menuAction.isSeparator === true), 'disabled': (menuAction.isDisabled === true)}\"><a ng-if=\"menuAction.isSeparator !== true\" title={{menuAction.title}} ng-click=\"handleMenuAction(menuAction, item)\">{{menuAction.name}}</a></li></ul></div></div><div pf-transclude=parent class=list-view-pf-main-info ng-click=\"itemClick($event, item)\" ng-dblclick=\"dblClick($event, item)\"></div></div></div>"
999410030 ) ;
999510031
999610032} ] ) ;
0 commit comments