update rename channel modal to not refresh page on channel name change

Этот коммит содержится в:
JoramWilander
2015-08-11 11:18:15 -04:00
родитель 3f38c21796
Коммит 1692fca1c3
3 изменённых файлов: 39 добавлений и 13 удалений

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

@@ -63,12 +63,14 @@ module.exports = React.createClass({
Client.updateChannel(channel,
function(data, text, req) {
$(this.refs.modal.getDOMNode()).modal('hide');
AsyncClient.getChannel(channel.id);
utils.updateTabTitle(channel.display_name);
utils.updateAddressBar(channel.name);
this.refs.display_name.getDOMNode().value = "";
this.refs.channel_name.getDOMNode().value = "";
$('#' + this.props.modalId).modal('hide');
window.location.href = TeamStore.getCurrentTeamUrl() + '/channels/' + this.state.channel_name;
AsyncClient.getChannel(channel.id);
}.bind(this),
function(err) {
state.server_error = err.message;

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

@@ -102,7 +102,20 @@ function getStateFromStores() {
}
readDirectChannels = readDirectChannels.slice(index);
showDirectChannels.sort(function(a, b) {
showDirectChannels.sort(function directSort(a, b) {
if (a.display_name < b.display_name) {
return -1;
}
if (a.display_name > b.display_name) {
return 1;
}
return 0;
});
}
var channels = ChannelStore.getAll();
if (channels) {
channels.sort(function chanSort(a, b) {
if (a.display_name < b.display_name) {
return -1;
}
@@ -114,8 +127,8 @@ function getStateFromStores() {
}
return {
active_id: currentId,
channels: ChannelStore.getAll(),
activeId: currentId,
channels: channels,
members: members,
showDirectChannels: showDirectChannels,
hideDirectChannels: readDirectChannels

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

@@ -732,20 +732,19 @@ module.exports.isValidUsername = function (name) {
return error;
}
module.exports.switchChannel = function(channel, teammate_name) {
function switchChannel(channel, teammateName) {
AppDispatcher.handleViewAction({
type: ActionTypes.CLICK_CHANNEL,
name: channel.name,
id: channel.id
});
var teamURL = window.location.href.split('/channels')[0];
history.replaceState('data', '', teamURL + '/channels/' + channel.name);
updateAddressBar(channel.name);
if (channel.type === 'D' && teammate_name) {
document.title = teammate_name + " " + document.title.substring(document.title.lastIndexOf("-"));
if (channel.type === 'D' && teammateName) {
updateTabTitle(teammateName);
} else {
document.title = channel.display_name + " " + document.title.substring(document.title.lastIndexOf("-"));
updateTabTitle(channel.display_name);
}
AsyncClient.getChannels(true, true, true);
@@ -759,6 +758,18 @@ module.exports.switchChannel = function(channel, teammate_name) {
return false;
}
module.exports.switchChannel = switchChannel;
function updateTabTitle(name) {
document.title = name + ' ' + document.title.substring(document.title.lastIndexOf('-'));
}
module.exports.updateTabTitle = updateTabTitle;
function updateAddressBar(channelName) {
var teamURL = window.location.href.split('/channels')[0];
history.replaceState('data', '', teamURL + '/channels/' + channelName);
}
module.exports.updateAddressBar = updateAddressBar;
module.exports.isMobile = function() {
return screen.width <= 768;