[% l('Print Full Grid') %]
</a></li>
<li role="presentation" class="divider"></li>
- <li ng-repeat="col in columns">
+ <li ng-repeat="col in columnsForPicker()">
<a href title="{{col.idlclass}}" ng-click="toggleColumnVisibility(col)">
<span ng-if="col.visible"
class="label label-success">✓</span>
grid.controls = controls;
}
+ // Visible columns sorted alphabetically followed by
+ // non-visible columns sorted.
+ $scope.columnsForPicker = function() {
+ if (!$scope.columns) { return []; }
+
+ var visible = $scope.columns
+ .filter(function(c) { return c.visible; });
+ var invisible = $scope.columns
+ .filter(function(c) { return !c.visible; });
+
+ visible.sort(function(a, b) { return a.label < b.label ? -1 : 1; });
+ invisible.sort(function(a, b) { return a.label < b.label ? -1 : 1; });
+
+ return visible.concat(invisible);
+ }
+
// If a menu item provides its own HTML template, translate it,
// using the menu item for the template scope.
// note: $sce is required to avoid security restrictions and