This repository has been archived by the owner on Oct 2, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #102 from angular-ui/feat-groupby-choices
Changes on groupBy option for choices
- Loading branch information
Showing
6 changed files
with
141 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
<!DOCTYPE html> | ||
<html lang="en" ng-app="demo"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<title>AngularJS ui-select</title> | ||
|
||
<!-- | ||
IE8 support, see AngularJS Internet Explorer Compatibility http://docs.angularjs.org/guide/ie | ||
For Firefox 3.6, you will also need to include jQuery and ECMAScript 5 shim | ||
--> | ||
<!--[if lt IE 9]> | ||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js"></script> | ||
<script src="http://cdnjs.cloudflare.com/ajax/libs/es5-shim/2.2.0/es5-shim.js"></script> | ||
<script> | ||
document.createElement('ui-select'); | ||
document.createElement('ui-select-match'); | ||
document.createElement('ui-select-choices'); | ||
</script> | ||
<![endif]--> | ||
|
||
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js"></script> | ||
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular-sanitize.js"></script> | ||
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.css"> | ||
|
||
<!-- ui-select files --> | ||
<script src="../dist/select.js"></script> | ||
<link rel="stylesheet" href="../dist/select.css"> | ||
|
||
<script src="demo.js"></script> | ||
|
||
<!-- Select2 theme --> | ||
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.css"> | ||
|
||
<!-- | ||
Selectize theme | ||
Less versions are available at https://github.com/brianreavis/selectize.js/tree/master/dist/less | ||
--> | ||
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.8.5/css/selectize.default.css"> | ||
<!-- <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.8.5/css/selectize.bootstrap2.css"> --> | ||
<!-- <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.8.5/css/selectize.bootstrap3.css"> --> | ||
|
||
<style> | ||
body { | ||
padding: 15px; | ||
} | ||
|
||
.select2 > .select2-choice.ui-select-match { | ||
/* Because of the inclusion of Bootstrap */ | ||
height: 29px; | ||
} | ||
|
||
.selectize-control > .selectize-dropdown { | ||
top: 36px; | ||
} | ||
</style> | ||
</head> | ||
|
||
<body ng-controller="DemoCtrl"> | ||
<script src="demo.js"></script> | ||
|
||
<button class="btn btn-default btn-xs" ng-click="enable()">Enable ui-select</button> | ||
<button class="btn btn-default btn-xs" ng-click="disable()">Disable ui-select</button> | ||
<button class="btn btn-default btn-xs" ng-click="clear()">Clear ng-model</button> | ||
|
||
<h3>Select2 theme</h3> | ||
<p>Selected: {{person.selected}}</p> | ||
|
||
<h2>Grouped using a string (group-by="'country'")</h2> | ||
<ui-select ng-model="person.selected" theme="bootstrap" ng-disabled="disabled" style="min-width: 300px;"> | ||
<ui-select-match placeholder="Select a person in the list or search his name/age...">{{$select.selected.name}}</ui-select-match> | ||
<ui-select-choices group-by="'country'" repeat="person in people | propsFilter: {name: $select.search, age: $select.search}"> | ||
<div ng-bind-html="person.name | highlight: $select.search"></div> | ||
<small> | ||
email: {{person.email}} | ||
age: <span ng-bind-html="''+person.age | highlight: $select.search"></span> | ||
</small> | ||
</ui-select-choices> | ||
</ui-select> | ||
|
||
<h2>Grouped using a function (group-by="someGroupFn")</h2> | ||
<ui-select ng-model="person.selected" theme="bootstrap" ng-disabled="disabled" style="min-width: 300px;"> | ||
<ui-select-match placeholder="Select a person in the list or search his name/age...">{{$select.selected.name}}</ui-select-match> | ||
<ui-select-choices group-by="someGroupFn" repeat="person in people | propsFilter: {name: $select.search, age: $select.search}"> | ||
<div ng-bind-html="person.name | highlight: $select.search"></div> | ||
<small> | ||
email: {{person.email}} | ||
age: <span ng-bind-html="''+person.age | highlight: $select.search"></span> | ||
</small> | ||
</ui-select-choices> | ||
</ui-select> | ||
|
||
<h2>Simple (no groupBy)</h2> | ||
<ui-select ng-model="person.selected" theme="bootstrap" ng-disabled="disabled" style="min-width: 300px;"> | ||
<ui-select-match placeholder="Select a person in the list or search his name/age...">{{$select.selected.name}}</ui-select-match> | ||
<ui-select-choices repeat="person in people | propsFilter: {name: $select.search, age: $select.search}"> | ||
<div ng-bind-html="person.name | highlight: $select.search"></div> | ||
<small> | ||
email: {{person.email}} | ||
age: <span ng-bind-html="''+person.age | highlight: $select.search"></span> | ||
</small> | ||
</ui-select-choices> | ||
</ui-select> | ||
|
||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -56,16 +56,28 @@ app.controller('DemoCtrl', function($scope, $http) { | |
$scope.country.selected = undefined; | ||
}; | ||
|
||
$scope.someGroupFn = function (item){ | ||
|
||
if (item.name[0] >= 'A' && item.name[0] <= 'M') | ||
return 'From A - M'; | ||
|
||
if (item.name[0] >= 'N' && item.name[0] <= 'Z') | ||
return 'From N - Z'; | ||
|
||
}; | ||
|
||
$scope.person = {}; | ||
$scope.people = [ | ||
{ name: 'Adam', email: '[email protected]', group: 'Foo', age: 12 }, | ||
{ name: 'Amalie', email: '[email protected]', group: 'Foo', age: 12 }, | ||
{ name: 'Estefanía', email: 'estefaní[email protected]', group: 'Foo', age: 21 }, | ||
{ name: 'Adrian', email: '[email protected]', group: 'Foo', age: 21 }, | ||
{ name: 'Wladimir', email: '[email protected]', group: 'Foo', age: 30 }, | ||
{ name: 'Samantha', email: '[email protected]', group: 'bar', age: 30 }, | ||
{ name: 'Nicole', email: '[email protected]', group: 'bar', age: 43 }, | ||
{ name: 'Natasha', email: '[email protected]', group: 'Baz', age: 54 } | ||
{ name: 'Adam', email: '[email protected]', age: 12, country: 'United States' }, | ||
{ name: 'Amalie', email: '[email protected]', age: 12, country: 'Argentina' }, | ||
{ name: 'Estefanía', email: '[email protected]', age: 21, country: 'Argentina' }, | ||
{ name: 'Adrian', email: '[email protected]', age: 21, country: 'Ecuador' }, | ||
{ name: 'Wladimir', email: '[email protected]', age: 30, country: 'Ecuador' }, | ||
{ name: 'Samantha', email: '[email protected]', age: 30, country: 'United States' }, | ||
{ name: 'Nicole', email: '[email protected]', age: 43, country: 'Colombia' }, | ||
{ name: 'Natasha', email: '[email protected]', age: 54, country: 'Ecuador' }, | ||
{ name: 'Michael', email: '[email protected]', age: 15, country: 'Colombia' }, | ||
{ name: 'Nicolás', email: '[email protected]', age: 43, country: 'Colombia' } | ||
]; | ||
|
||
$scope.address = {}; | ||
|
@@ -75,7 +87,7 @@ app.controller('DemoCtrl', function($scope, $http) { | |
'http://maps.googleapis.com/maps/api/geocode/json', | ||
{params: params} | ||
).then(function(response) { | ||
$scope.addresses = response.data.results | ||
$scope.addresses = response.data.results; | ||
}); | ||
}; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
<ul class="ui-select-choices ui-select-choices-content select2-results"> | ||
<li class="ui-select-choices-group"> | ||
<div class="ui-select-choices-group-label select2-result-label">{{$group}}</div> | ||
<li class="ui-select-choices-group" ng-class="{'select2-result-with-children': $select.isGrouped}"> | ||
<div ng-show="$select.isGrouped" class="ui-select-choices-group-label select2-result-label">{{$group}}</div> | ||
<ul class="select2-result-sub"> | ||
<li class="ui-select-choices-row" ng-class="{'select2-highlighted': $select.isActive(this)}"> | ||
<div class="select2-result-label ui-select-choices-row-inner"></div> | ||
</li> | ||
</ul> | ||
</li> | ||
</ul> | ||
</ul> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters