From dc2f2a800105b77e665ec2a00c6290f35b1a2ba3 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Tue, 5 Jul 2016 11:58:18 -0400 Subject: PLT-3145 Custom Emojis (#3381) * Reorganized Backstage code to use a view controller and separated it from integrations code * Renamed InstalledIntegrations component to BackstageList * Added EmojiList page * Added AddEmoji page * Added custom emoji to autocomplete and text formatter * Moved system emoji to EmojiStore * Stopped trying to get emoji before logging in * Rerender posts when emojis change * Fixed submit handler on backstage pages to properly support enter * Removed debugging code * Updated javascript driver * Fixed unit tests * Fixed backstage routes * Added clientside validation to prevent users from creating an emoji with the same name as a system one * Fixed AddEmoji page to properly redirect when an emoji is created successfully * Fixed updating emoji list when an emoji is deleted * Added type prop to BackstageList to properly support using a table for the list * Added help text to EmojiList * Fixed backstage on smaller screen sizes * Disable custom emoji by default * Improved restrictions on creating emojis * Fixed non-admin users seeing the option to delete each other's emojis * Fixing gofmt * Fixed emoji unit tests * Fixed trying to get emoji from the server when it's disabled --- webapp/routes/route_team.jsx | 85 +++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 41 deletions(-) (limited to 'webapp/routes/route_team.jsx') diff --git a/webapp/routes/route_team.jsx b/webapp/routes/route_team.jsx index 7025ecb99..cb4f09ae4 100644 --- a/webapp/routes/route_team.jsx +++ b/webapp/routes/route_team.jsx @@ -15,6 +15,9 @@ import Client from 'utils/web_client.jsx'; import * as Utils from 'utils/utils.jsx'; import ChannelStore from 'stores/channel_store.jsx'; +import emojiRoute from 'routes/route_emoji.jsx'; +import integrationsRoute from 'routes/route_integrations.jsx'; + function onChannelEnter(nextState, replace, callback) { doChannelChange(nextState, replace, callback); } @@ -120,52 +123,52 @@ function onPermalinkEnter(nextState) { export default { path: ':team', - getComponents: (location, callback) => { - System.import('components/needs_team.jsx').then(RouteUtils.importComponentSuccess(callback)); - }, onEnter: preNeedsTeam, indexRoute: {onEnter: (nextState, replace) => replace('/' + nextState.params.team + '/channels/town-square')}, childRoutes: [ + integrationsRoute, + emojiRoute, { - path: 'channels/:channel', - onEnter: onChannelEnter, - getComponents: (location, callback) => { - Promise.all([ - System.import('components/sidebar.jsx'), - System.import('components/channel_view.jsx') - ]).then( - (comarr) => callback(null, {sidebar: comarr[0].default, center: comarr[1].default}) - ); - } - }, - { - path: 'pl/:postid', - onEnter: onPermalinkEnter, getComponents: (location, callback) => { - Promise.all([ - System.import('components/sidebar.jsx'), - System.import('components/permalink_view.jsx') - ]).then( - (comarr) => callback(null, {sidebar: comarr[0].default, center: comarr[1].default}) - ); - } - }, - { - path: 'tutorial', - getComponents: (location, callback) => { - Promise.all([ - System.import('components/sidebar.jsx'), - System.import('components/tutorial/tutorial_view.jsx') - ]).then( - (comarr) => callback(null, {sidebar: comarr[0].default, center: comarr[1].default}) - ); - } - }, - { - path: 'settings', - getChildRoutes: (location, callback) => { - System.import('routes/route_integrations.jsx').then((comp) => callback(null, [comp.default])); - } + System.import('components/needs_team.jsx').then(RouteUtils.importComponentSuccess(callback)); + }, + childRoutes: [ + { + path: 'channels/:channel', + onEnter: onChannelEnter, + getComponents: (location, callback) => { + Promise.all([ + System.import('components/sidebar.jsx'), + System.import('components/channel_view.jsx') + ]).then( + (comarr) => callback(null, {sidebar: comarr[0].default, center: comarr[1].default}) + ); + } + }, + { + path: 'pl/:postid', + onEnter: onPermalinkEnter, + getComponents: (location, callback) => { + Promise.all([ + System.import('components/sidebar.jsx'), + System.import('components/permalink_view.jsx') + ]).then( + (comarr) => callback(null, {sidebar: comarr[0].default, center: comarr[1].default}) + ); + } + }, + { + path: 'tutorial', + getComponents: (location, callback) => { + Promise.all([ + System.import('components/sidebar.jsx'), + System.import('components/tutorial/tutorial_view.jsx') + ]).then( + (comarr) => callback(null, {sidebar: comarr[0].default, center: comarr[1].default}) + ); + } + } + ] } ] }; -- cgit v1.2.3-1-g7c22