diff --git a/dist/css/ionic-ios7.css b/dist/css/ionic-ios7.css index 7e81972071..599684969a 100644 --- a/dist/css/ionic-ios7.css +++ b/dist/css/ionic-ios7.css @@ -370,6 +370,14 @@ body, .ionic-body { height: 100%; -webkit-overflow-scrolling: touch; } +.scroll-content { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; } + .has-header { top: 44px; } @@ -1456,6 +1464,21 @@ button.item-button-right:after { height: 100%; border: none; border-radius: 0; } + .item-drag .button .icon, .item-drag .button i { + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + font-size: 24px; + position: absolute; + top: 0; + height: 100%; } /** * The hidden right-side buttons that can be exposed under a list item diff --git a/dist/css/ionic-scoped.css b/dist/css/ionic-scoped.css index f3389e67f3..c000e1dc6e 100644 --- a/dist/css/ionic-scoped.css +++ b/dist/css/ionic-scoped.css @@ -1793,6 +1793,13 @@ width: 100%; height: 100%; -webkit-overflow-scrolling: touch; } + .ionic .scroll-content { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; } .ionic .has-header { top: 44px; } .ionic .has-footer { @@ -2793,6 +2800,21 @@ height: 100%; border: none; border-radius: 0; } + .ionic .item-drag .button .icon, .ionic .item-drag .button i { + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + font-size: 24px; + position: absolute; + top: 0; + height: 100%; } .ionic .item-options { position: absolute; top: 0; diff --git a/dist/css/ionic.css b/dist/css/ionic.css index 08516c0ffc..783c39b30a 100644 --- a/dist/css/ionic.css +++ b/dist/css/ionic.css @@ -2201,6 +2201,14 @@ body, .ionic-body { height: 100%; -webkit-overflow-scrolling: touch; } +.scroll-content { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; } + .has-header { top: 44px; } @@ -3351,6 +3359,21 @@ button.item-button-right:after { height: 100%; border: none; border-radius: 0; } + .item-drag .button .icon, .item-drag .button i { + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + font-size: 24px; + position: absolute; + top: 0; + height: 100%; } /** * The hidden right-side buttons that can be exposed under a list item diff --git a/dist/js/ionic-angular.js b/dist/js/ionic-angular.js index 8b59cb3746..70165b4123 100644 --- a/dist/js/ionic-angular.js +++ b/dist/js/ionic-angular.js @@ -508,6 +508,9 @@ angular.module('ionic.ui.list', ['ngAnimate']) \
\
\ +
\ + \ +
\
\ \
\ @@ -588,7 +591,10 @@ angular.module('ionic.ui.list', ['ngAnimate']) compile: function(element, attr, transclude) { return function($scope, $element, $attr) { - var lv = new ionic.views.List({el: $element[0]}); + var lv = new ionic.views.ListView({ + el: $element[0], + listEl: $element[0].children[0] + }); if(attr.animation) { $element.addClass(attr.animation); @@ -916,6 +922,28 @@ angular.module('ionic.ui.nav', ['ionic.service.templateLoad', 'ionic.service.ges (function() { 'use strict'; +/** + * @description + * The scroll directive lets you enable a content area for + * our custom momentum scrolling area. The benefit to a custom + * scroll area is configurability, and avoidance of the + * buggy -webkit-overflow-scrolling: touch. + */ + +angular.module('ionic.ui.scroll', []) + +.directive('scroll', function() { + return { + restrict: 'ECA', + replace: true, + transclude: true, + template: '
' + }; +}); +; +(function() { +'use strict'; + /** * @description * The sideMenuCtrl lets you quickly have a draggable side diff --git a/dist/js/ionic.js b/dist/js/ionic.js index 509bf60e4a..408acc6645 100644 --- a/dist/js/ionic.js +++ b/dist/js/ionic.js @@ -3012,13 +3012,6 @@ window.ionic = { // Start the drag states this._initDrag(); - // Listen for drag and release events - window.ionic.onGesture('drag', function(e) { - _this._handleDrag(e); - }, this.el); - window.ionic.onGesture('release', function(e) { - _this._handleEndDrag(e); - }, this.el); }; ionic.views.List.prototype = { @@ -3053,6 +3046,8 @@ window.ionic = { this._isDragging = false; + return false; + // Check if this is a reorder drag if(ionic.DomUtil.getParentOrSelfWithClass(e.target, 'list-item-drag') && (e.gesture.direction == 'up' || e.gesture.direction == 'down')) { var item = this._getItem(e.target); @@ -3090,6 +3085,7 @@ window.ionic = { _handleEndDrag: function(e) { var _this = this; + return false; if(!this._dragOp) { this._initDrag(); @@ -3106,6 +3102,7 @@ window.ionic = { */ _handleDrag: function(e) { var _this = this, content, buttons; + return false; if(!this._dragOp) { this._startDrag(e); diff --git a/js/ext/angular/src/directive/ionicList.js b/js/ext/angular/src/directive/ionicList.js index 89c804081f..009c08ad53 100644 --- a/js/ext/angular/src/directive/ionicList.js +++ b/js/ext/angular/src/directive/ionicList.js @@ -24,6 +24,9 @@ angular.module('ionic.ui.list', ['ngAnimate']) \
\
\ +
\ + \ +
\
\ \
\ @@ -104,7 +107,10 @@ angular.module('ionic.ui.list', ['ngAnimate']) compile: function(element, attr, transclude) { return function($scope, $element, $attr) { - var lv = new ionic.views.List({el: $element[0]}); + var lv = new ionic.views.ListView({ + el: $element[0], + listEl: $element[0].children[0] + }); if(attr.animation) { $element.addClass(attr.animation); diff --git a/js/ext/angular/src/directive/ionicScroll.js b/js/ext/angular/src/directive/ionicScroll.js new file mode 100644 index 0000000000..8e73a95f68 --- /dev/null +++ b/js/ext/angular/src/directive/ionicScroll.js @@ -0,0 +1,21 @@ +(function() { +'use strict'; + +/** + * @description + * The scroll directive lets you enable a content area for + * our custom momentum scrolling area. The benefit to a custom + * scroll area is configurability, and avoidance of the + * buggy -webkit-overflow-scrolling: touch. + */ + +angular.module('ionic.ui.scroll', []) + +.directive('scroll', function() { + return { + restrict: 'ECA', + replace: true, + transclude: true, + template: '
' + }; +}); diff --git a/js/ext/angular/test/list.html b/js/ext/angular/test/list.html index 4af067361d..64bd41fc72 100644 --- a/js/ext/angular/test/list.html +++ b/js/ext/angular/test/list.html @@ -63,7 +63,7 @@ - +
@@ -79,7 +79,7 @@ - +
@@ -132,9 +132,10 @@ console.log("REFRESHING"); }; - $scope.items = [ - { - text: 'Item 1', + $scope.items = []; + for(var i = 0; i < 20; i++) { + $scope.items.push({ + text: 'Item ' + i, canDelete: true, canSwipe: true, canReorder: true, @@ -146,47 +147,9 @@ type: 'button-danger', buttonClicked: removeItem, }] - }, - { - text: 'Item 2', - canDelete: true, - canSwipe: true, - canReorder: true, - icon: 'icon-chevron-right', - deleteItem: removeItem, - buttons: [{ - text: 'Kill', - type: 'button-danger', - buttonClicked: removeItem, - }] - }, - { - text: 'Item 3', - canDelete: true, - canSwipe: true, - canReorder: true, - icon: 'icon-chevron-right', - deleteItem: removeItem, - buttons: [{ - text: 'Kill', - type: 'button-danger', - buttonClicked: removeItem, - }] - }, - { - text: 'Item 4', - canDelete: true, - canSwipe: true, - canReorder: true, - icon: 'icon-chevron-right', - deleteItem: removeItem, - buttons: [{ - text: 'Kill', - type: 'button-danger', - buttonClicked: removeItem, - }] - } - ]; + }); + } + $scope.edit = function() { $scope.isEditingItems = !$scope.isEditingItems; } diff --git a/js/views/listView.js b/js/views/listView.js index 1148996a07..8f66747a88 100644 --- a/js/views/listView.js +++ b/js/views/listView.js @@ -376,13 +376,6 @@ // Start the drag states this._initDrag(); - // Listen for drag and release events - window.ionic.onGesture('drag', function(e) { - _this._handleDrag(e); - }, this.el); - window.ionic.onGesture('release', function(e) { - _this._handleEndDrag(e); - }, this.el); }; ionic.views.List.prototype = { @@ -417,6 +410,8 @@ this._isDragging = false; + return false; + // Check if this is a reorder drag if(ionic.DomUtil.getParentOrSelfWithClass(e.target, 'list-item-drag') && (e.gesture.direction == 'up' || e.gesture.direction == 'down')) { var item = this._getItem(e.target); @@ -454,6 +449,7 @@ _handleEndDrag: function(e) { var _this = this; + return false; if(!this._dragOp) { this._initDrag(); @@ -470,6 +466,7 @@ */ _handleDrag: function(e) { var _this = this, content, buttons; + return false; if(!this._dragOp) { this._startDrag(e); diff --git a/scss/ionic/_items.scss b/scss/ionic/_items.scss index 914268508e..3d171e316c 100644 --- a/scss/ionic/_items.scss +++ b/scss/ionic/_items.scss @@ -483,6 +483,14 @@ button.item-button-right:after { height: 100%; border: none; border-radius: 0; + .icon, i { + @include display-flex(); + @include align-items(center); + font-size: 24px; + position: absolute; + top: 0; + height: 100%; + } } } /** diff --git a/scss/ionic/_scaffolding.scss b/scss/ionic/_scaffolding.scss index fb2c4568c7..9edb8573e8 100644 --- a/scss/ionic/_scaffolding.scss +++ b/scss/ionic/_scaffolding.scss @@ -67,6 +67,14 @@ body, .ionic-body { -webkit-overflow-scrolling: touch; } +.scroll-content { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; +} // Pad top/bottom of content so it doesn't hide behind .bar-title and .bar-tab. // Note: For these to work, content must come after both bars in the markup .has-header { diff --git a/scss/ionic/_variables.scss b/scss/ionic/_variables.scss index fdc897ac4e..67df07d6ff 100644 --- a/scss/ionic/_variables.scss +++ b/scss/ionic/_variables.scss @@ -403,6 +403,7 @@ $card-border-radius: 2px !default; $item-border-width: 1px !default; $item-border-color: #666; +$item-border-style: solid; $item-box-shadow: inset 0 0 $item-border-width $item-border-color; $item-padding: 15px !default; diff --git a/test/biglists.html b/test/biglists.html index cb672d27fb..47c0c56cf6 100644 --- a/test/biglists.html +++ b/test/biglists.html @@ -7,11 +7,6 @@ @@ -20,1255 +15,1258 @@

Lists

-
+
-
+
+
+ +
+ Work +
+ + + + Check mail + + + + + Call Ma + + + +
+ Work +
+ + + + Check mail + 5 + + + + + Call Ma + + Cell + + + + + + Record album + + Grammy + + + + + + Breaking Bad + + Blue, yellow, pink + + + +
+ Leisure +
+ + + + Games + + Super Mario + + + + + + Music + + JT + + + + + + Shopping + + Bag + + + + + + Friends + 0 + + + +
+ List Header +
+ +
+ Not a link so no default right arrow +
+ + +
+ Auto Right side arrow cuz its a link +
+
+ + +
+ Processing Icon + +
+
+ +
+ List Divider +
+ + +
+ Computers + Badge +
+
+ +
+
+ + +
+ Monitors + 6 +
+
+ +
+
+ + +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
+ +
+ Multiple Badges + 62 + 4 + 143 +
+
+ +
+
-
- Work
- - - - Check mail - - - - - Call Ma - - -
- Work + - - - - Check mail - 5 - - - - - Call Ma - - Cell - - - - - - Record album - - Grammy - - - - - - Breaking Bad - - Blue, yellow, pink - - - -
- Leisure -
- - - - Games - - Super Mario - - - - - - Music - - JT - - - - - - Shopping - - Bag - - - - - - Friends - 0 - - - -
- List Header -
- -
- Not a link so no default right arrow -
- - -
- Auto Right side arrow cuz its a link -
-
- - -
- Processing Icon - -
-
- -
- List Divider -
- - -
- Computers - Badge -
-
- -
-
- - -
- Monitors - 6 -
-
- -
-
- - -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
- -
- Multiple Badges - 62 - 4 - 143 -
-
- -
-
-
-
- Homepage -
@@ -1276,16 +1274,22 @@