Skip to content

Commit 0e54a8a

Browse files
Merge branch 'master' into master-dist
2 parents cb8299f + 34b51c4 commit 0e54a8a

File tree

54 files changed

+245
-58
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+245
-58
lines changed

dist/angular-patternfly.js

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}]);

dist/angular-patternfly.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/docs/css/angular-patternfly.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,11 @@
342342
margin: 0 5px;
343343
}
344344

345+
.dropdown-kebab-pf.invisible {
346+
opacity: 0;
347+
pointer-events: none;
348+
}
349+
345350
/* Utilization bar chart - Animate load */
346351
.utilization-bar-chart-pf .progress-bar {
347352
-webkit-transition: width .75s ease-in-out;

dist/docs/css/examples.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,7 @@ hr {
130130
.example-warning-background {
131131
background-color: #ec7a08 !important;
132132
}
133+
134+
.dropdown-kebab-pf.red .btn-link {
135+
color: red;
136+
}

dist/docs/css/patternfly.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9190,6 +9190,14 @@ fieldset[disabled] .btn-primary.active {
91909190
.dropdown-menu > .disabled > a:focus {
91919191
border-color: transparent;
91929192
}
9193+
.dropdown-menu > .selected > a {
9194+
background-color: #0088ce;
9195+
border-color: #0088ce;
9196+
color: #fff;
9197+
}
9198+
.dropdown-menu > .selected > a small {
9199+
color: rgba(255, 255, 255, 0.5);
9200+
}
91939201
.dropdown-menu > .disabled > a:hover,
91949202
.dropdown-menu > .disabled > a:focus {
91959203
border-color: transparent;

dist/docs/grunt-scripts/angular-patternfly.js

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)