Skip to content

Commit 9b99fd1

Browse files
committed
Merge pull request #50 from teamsnap/fix-sort
Fix sort
2 parents f71c6ba + bb8e4cd commit 9b99fd1

File tree

11 files changed

+116
-81
lines changed

11 files changed

+116
-81
lines changed

lib/teamsnap.js

Lines changed: 61 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -387,18 +387,22 @@ exports.getAssignmentSort = function(reverse) {
387387
valueA = _this.memberName(itemA.member, reverse).toLowerCase();
388388
valueB = _this.memberName(itemB.member, reverse).toLowerCase();
389389
}
390-
if (valueA === valueB) {
391-
return 0;
392-
} else if (!valueA && valueB) {
393-
return 1;
394-
} else if (valueA && !valueB) {
395-
return -1;
396-
} else if (valueA > valueB) {
397-
return 1;
398-
} else if (valueA < valueB) {
399-
return -1;
390+
if (typeof valueA.localeCompare === 'function') {
391+
return valueA.localeCompare(valueB);
400392
} else {
401-
return 0;
393+
if (valueA === valueB) {
394+
return 0;
395+
} else if (!valueA && valueB) {
396+
return 1;
397+
} else if (valueA && !valueB) {
398+
return -1;
399+
} else if (valueA > valueB) {
400+
return 1;
401+
} else if (valueA < valueB) {
402+
return -1;
403+
} else {
404+
return 0;
405+
}
402406
}
403407
};
404408
})(this);
@@ -1675,18 +1679,22 @@ exports.getMemberSort = function(reverse) {
16751679
valueA = _this.memberName(itemA, reverse, true).toLowerCase();
16761680
valueB = _this.memberName(itemB, reverse, true).toLowerCase();
16771681
}
1678-
if (valueA === valueB) {
1679-
return 0;
1680-
} else if (!valueA && valueB) {
1681-
return 1;
1682-
} else if (valueA && !valueB) {
1683-
return -1;
1684-
} else if (valueA > valueB) {
1685-
return 1;
1686-
} else if (valueA < valueB) {
1687-
return -1;
1682+
if (typeof valueA.localeCompare === 'function') {
1683+
return valueA.localeCompare(valueB);
16881684
} else {
1689-
return 0;
1685+
if (valueA === valueB) {
1686+
return 0;
1687+
} else if (!valueA && valueB) {
1688+
return 1;
1689+
} else if (valueA && !valueB) {
1690+
return -1;
1691+
} else if (valueA > valueB) {
1692+
return 1;
1693+
} else if (valueA < valueB) {
1694+
return -1;
1695+
} else {
1696+
return 0;
1697+
}
16901698
}
16911699
};
16921700
})(this);
@@ -4658,18 +4666,22 @@ TeamSnap.prototype.getNameSort = function() {
46584666
valueB = itemB.id;
46594667
}
46604668
}
4661-
if (valueA === valueB) {
4662-
return 0;
4663-
} else if (!valueA && valueB) {
4664-
return 1;
4665-
} else if (valueA && !valueB) {
4666-
return -1;
4667-
} else if (valueA > valueB) {
4668-
return 1;
4669-
} else if (valueA < valueB) {
4670-
return -1;
4669+
if (typeof valueA.localeCompare === 'function') {
4670+
return valueA.localeCompare(valueB);
46714671
} else {
4672-
return 0;
4672+
if (valueA === valueB) {
4673+
return 0;
4674+
} else if (!valueA && valueB) {
4675+
return 1;
4676+
} else if (valueA && !valueB) {
4677+
return -1;
4678+
} else if (valueA > valueB) {
4679+
return 1;
4680+
} else if (valueA < valueB) {
4681+
return -1;
4682+
} else {
4683+
return 0;
4684+
}
46734685
}
46744686
};
46754687
};
@@ -4689,18 +4701,22 @@ TeamSnap.prototype.getDefaultSort = function() {
46894701
valueB = itemB.id;
46904702
}
46914703
}
4692-
if (valueA === valueB) {
4693-
return 0;
4694-
} else if (!valueA && valueB) {
4695-
return 1;
4696-
} else if (valueA && !valueB) {
4697-
return -1;
4698-
} else if (valueA > valueB) {
4699-
return 1;
4700-
} else if (valueA < valueB) {
4701-
return -1;
4704+
if (typeof valueA.localeCompare === 'function') {
4705+
return valueA.localeCompare(valueB);
47024706
} else {
4703-
return 0;
4707+
if (valueA === valueB) {
4708+
return 0;
4709+
} else if (!valueA && valueB) {
4710+
return 1;
4711+
} else if (valueA && !valueB) {
4712+
return -1;
4713+
} else if (valueA > valueB) {
4714+
return 1;
4715+
} else if (valueA < valueB) {
4716+
return -1;
4717+
} else {
4718+
return 0;
4719+
}
47044720
}
47054721
};
47064722
};
@@ -4875,7 +4891,7 @@ ref = require('./model'), Collection = ref.Collection, Item = ref.Item;
48754891
require('./errors');
48764892

48774893
TeamSnap = (function() {
4878-
TeamSnap.prototype.version = '1.4.0';
4894+
TeamSnap.prototype.version = '1.4.1';
48794895

48804896
TeamSnap.prototype.promises = promises;
48814897

lib/teamsnap.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.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "teamsnap.js",
3-
"version": "1.4.0",
3+
"version": "1.4.1",
44
"description": "A JavaScript library for using the TeamSnap API.",
55
"author": "Jacob Wright with TeamSnap (http://www.teamsnap.com)",
66
"homepage": "https://github.com/teamsnap/teamsnap-javascript-sdk",

src/collections/assignments.coffee

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,13 @@ exports.getAssignmentSort = (reverse) ->
5050
else
5151
valueA = @memberName(itemA.member, reverse).toLowerCase()
5252
valueB = @memberName(itemB.member, reverse).toLowerCase()
53-
if valueA is valueB then 0
54-
else if !valueA and valueB then 1
55-
else if valueA and !valueB then -1
56-
else if valueA > valueB then 1
57-
else if valueA < valueB then -1
58-
else 0
53+
# Let's try to use `localeCompare()` if available
54+
if typeof valueA.localeCompare is 'function'
55+
valueA.localeCompare valueB
56+
else
57+
if valueA is valueB then 0
58+
else if !valueA and valueB then 1
59+
else if valueA and !valueB then -1
60+
else if valueA > valueB then 1
61+
else if valueA < valueB then -1
62+
else 0
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
exports.loadDivisionTeamStandings = (teamId, callback) ->
22
unless @isId teamId
3-
throw new TSArgsError 'teamsnap.loadDivisionTeamStandings', 'must provide a teamId'
3+
throw new TSArgsError 'teamsnap.loadDivisionTeamStandings',
4+
'must provide a teamId'
45
params = teamId: teamId
56
@loadItems 'divisionTeamStanding', params, callback

src/collections/leagueCustomData.coffee

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ exports.loadLeagueCustomData = (params, callback) ->
22
if @isId params
33
params = teamId: params
44
else unless params and typeof params is 'object'
5-
throw new TSArgsError 'teamsnap.loadLeagueCustomData', 'must provide a teamId or
6-
query parameters'
5+
throw new TSArgsError 'teamsnap.loadLeagueCustomData',
6+
'must provide a teamId or query parameters'
77

88
@loadItems 'leagueCustomDatum', params, callback
99

src/collections/leagueCustomFields.coffee

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ exports.loadLeagueCustomFields = (params, callback) ->
22
if @isId params
33
params = teamId: params
44
else unless params and typeof params is 'object'
5-
throw new TSArgsError 'teamsnap.loadLeagueCustomFields', 'must provide a teamId or
6-
query parameters'
5+
throw new TSArgsError 'teamsnap.loadLeagueCustomFields',
6+
'must provide a teamId or query parameters'
77

88
@loadItems 'leagueCustomField', params, callback

src/collections/members.coffee

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,16 @@ exports.getMemberSort = (reverse) ->
115115
else
116116
valueA = @memberName(itemA, reverse, true).toLowerCase()
117117
valueB = @memberName(itemB, reverse, true).toLowerCase()
118-
if valueA is valueB then 0
119-
else if !valueA and valueB then 1
120-
else if valueA and !valueB then -1
121-
else if valueA > valueB then 1
122-
else if valueA < valueB then -1
123-
else 0
118+
# Let's try to use `localeCompare()` if available
119+
if typeof valueA.localeCompare is 'function'
120+
valueA.localeCompare valueB
121+
else
122+
if valueA is valueB then 0
123+
else if !valueA and valueB then 1
124+
else if valueA and !valueB then -1
125+
else if valueA > valueB then 1
126+
else if valueA < valueB then -1
127+
else 0
124128

125129

126130
# Helper for determining if a member has general write permissions to the team

src/persistence.coffee

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,8 @@ modifySDK = (sdk) ->
285285
toRemove.push event.availabilities...
286286

287287
linking.unlinkItems toRemove, lookup
288-
deleteEvent.call(this, event, include, notify, notifyAs, callback).then((result) ->
288+
deleteEvent.call(this, event, include, notify, notifyAs, callback)
289+
.then((result) ->
289290
if event.isGame
290291
promises.when(
291292
sdk.loadTeamResults event.teamId

src/sdk.coffee

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,16 @@ TeamSnap::getNameSort = ->
9797
else
9898
valueA = itemA.id
9999
valueB = itemB.id
100-
if valueA is valueB then 0
101-
else if !valueA and valueB then 1
102-
else if valueA and !valueB then -1
103-
else if valueA > valueB then 1
104-
else if valueA < valueB then -1
105-
else 0
100+
# Let's try to use `localeCompare()` if available
101+
if typeof valueA.localeCompare is 'function'
102+
valueA.localeCompare valueB
103+
else
104+
if valueA is valueB then 0
105+
else if !valueA and valueB then 1
106+
else if valueA and !valueB then -1
107+
else if valueA > valueB then 1
108+
else if valueA < valueB then -1
109+
else 0
106110

107111

108112
TeamSnap::getDefaultSort = ->
@@ -117,12 +121,16 @@ TeamSnap::getDefaultSort = ->
117121
else
118122
valueA = itemA.id
119123
valueB = itemB.id
120-
if valueA is valueB then 0
121-
else if !valueA and valueB then 1
122-
else if valueA and !valueB then -1
123-
else if valueA > valueB then 1
124-
else if valueA < valueB then -1
125-
else 0
124+
# Let's try to use `localeCompare()` if available
125+
if typeof valueA.localeCompare is 'function'
126+
valueA.localeCompare valueB
127+
else
128+
if valueA is valueB then 0
129+
else if !valueA and valueB then 1
130+
else if valueA and !valueB then -1
131+
else if valueA > valueB then 1
132+
else if valueA < valueB then -1
133+
else 0
126134

127135

128136
TeamSnap::getCollectionForItem = (item) ->

0 commit comments

Comments
 (0)