From dc2f2a800105b77e665ec2a00c6290f35b1a2ba3 Mon Sep 17 00:00:00 2001
From: Harrison Healey <harrisonmhealey@gmail.com>
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

