Merge pull request #1279 from rgarmsen2295/plt-743

PLT-741/743 Adds additional checks when sorting channels/teams by display name
Этот коммит содержится в:
Joram Wilander
2015-11-04 07:51:49 -05:00
родитель 0cc985f6f4 9cc000f6e2
Коммит d9c7fce077
3 изменённых файлов: 31 добавлений и 22 удалений

Просмотреть файл

@@ -11,23 +11,15 @@ var AboutBuildModal = require('./about_build_modal.jsx');
var Constants = require('../utils/constants.jsx'); var Constants = require('../utils/constants.jsx');
function getStateFromStores() { function getStateFromStores() {
let teams = []; const teams = [];
let teamsObject = UserStore.getTeams(); const teamsObject = UserStore.getTeams();
for (let teamId in teamsObject) { for (const teamId in teamsObject) {
if (teamsObject.hasOwnProperty(teamId)) { if (teamsObject.hasOwnProperty(teamId)) {
teams.push(teamsObject[teamId]); teams.push(teamsObject[teamId]);
} }
} }
teams.sort(function sortByDisplayName(teamA, teamB) {
let teamADisplayName = teamA.display_name.toLowerCase(); teams.sort(Utils.sortByDisplayName);
let teamBDisplayName = teamB.display_name.toLowerCase();
if (teamADisplayName < teamBDisplayName) {
return -1;
} else if (teamADisplayName > teamBDisplayName) {
return 1;
}
return 0;
});
return {teams}; return {teams};
} }

Просмотреть файл

@@ -4,6 +4,7 @@
var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); var AppDispatcher = require('../dispatcher/app_dispatcher.jsx');
var EventEmitter = require('events').EventEmitter; var EventEmitter = require('events').EventEmitter;
var Utils;
var Constants = require('../utils/constants.jsx'); var Constants = require('../utils/constants.jsx');
var ActionTypes = Constants.ActionTypes; var ActionTypes = Constants.ActionTypes;
@@ -183,16 +184,11 @@ class ChannelStoreClass extends EventEmitter {
channels.push(channel); channels.push(channel);
} }
channels.sort(function chanSort(a, b) { if (!Utils) {
if (a.display_name.toLowerCase() < b.display_name.toLowerCase()) { Utils = require('../utils/utils.jsx'); //eslint-disable-line global-require
return -1; }
}
if (a.display_name.toLowerCase() > b.display_name.toLowerCase()) {
return 1;
}
return 0;
});
channels.sort(Utils.sortByDisplayName);
this.pStoreChannels(channels); this.pStoreChannels(channels);
} }
pStoreChannels(channels) { pStoreChannels(channels) {

Просмотреть файл

@@ -1104,3 +1104,24 @@ export function openDirectChannelToUser(user, successCb, errorCb) {
); );
} }
} }
// Use when sorting multiple channels or teams by their `display_name` field
export function sortByDisplayName(a, b) {
let aDisplayName = '';
let bDisplayName = '';
if (a && a.display_name) {
aDisplayName = a.display_name.toLowerCase();
}
if (b && b.display_name) {
bDisplayName = b.display_name.toLowerCase();
}
if (aDisplayName < bDisplayName) {
return -1;
}
if (aDisplayName > bDisplayName) {
return 1;
}
return 0;
}