Skip to content

Commit c8d9bd7

Browse files
stephanielearymmorgannoble
authored andcommitted
LP1838316 Always show AngularJS grid checkboxes
Grid row checkboxes need to be displayed whether or not multiselect is allowed. If multiselect is not allowed, checking one row will uncheck all the others. The "select all" checkbox is still hidden. Release-note: Shows AngularJS grid cell checkboxes even when multiselect is disabled Signed-off-by: Stephanie Leary <[email protected]> Signed-off-by: Terran McCanna <[email protected]> Signed-off-by: Michele Morgan <[email protected]>
1 parent c8e0968 commit c8d9bd7

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

Open-ILS/src/templates/staff/share/t_autogrid.tt2

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,8 @@
235235
<div class="eg-grid-cell eg-grid-cell-stock" ng-show="showIndex">
236236
<div title="[% l('Row Number Column') %]">[% l('#') %]</div>
237237
</div>
238-
<div class="eg-grid-cell eg-grid-cell-stock" ng-show="canMultiSelect">
239-
<div>
238+
<div class="eg-grid-cell eg-grid-cell-stock">
239+
<div ng-show="canMultiSelect">
240240
<input aria-label="[% l('All rows') %]"
241241
focus-me="gridControls.focusRowSelector"
242242
type='checkbox' ng-model="selectAll"/>
@@ -315,12 +315,12 @@
315315
</a>
316316
<div ng-hide="gridControls.activateItem">{{$index + offset() + 1}}</div>
317317
</div>
318-
<div class="eg-grid-cell eg-grid-cell-stock" ng-show="canMultiSelect">
318+
<div class="eg-grid-cell eg-grid-cell-stock">
319319
<!-- ng-click=handleRowClick here has unintended
320320
consequences and is unnecessary, avoid it -->
321321
<div>
322322
<input type='checkbox' aria-label="[% l('Row [_1]','{{$index + offset() + 1}}') %]"
323-
ng-change="updateSelected()"
323+
ng-change="updateSelected(indexValue(item))"
324324
ng-model="selected[indexValue(item)]"/>
325325
</div>
326326
</div>

Open-ILS/web/js/ui/default/staff/services/grid.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -802,8 +802,13 @@ angular.module('egGridMod',
802802
}
803803
}
804804

805-
$scope.updateSelected = function () {
806-
return $scope.selected = angular.copy($scope.selected);
805+
$scope.updateSelected = function(index) {
806+
// values have already been toggled by the checkbox
807+
if (!$scope.canMultiSelect && $scope.selected[index]) {
808+
$scope.selected = { [index]: true };
809+
}
810+
$scope.selected = angular.copy($scope.selected);
811+
return $scope.selected;
807812
};
808813

809814
grid.selectAllItems = function() {

0 commit comments

Comments
 (0)