summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-01-29 14:52:08 -0500
committerChristopher Speller <crspeller@gmail.com>2016-01-29 14:52:08 -0500
commit7ff7c864611590347cb6a230d31635ecabdc4f25 (patch)
treea7a5512c6ed956aef438d71c1f8c3eeae34057a6 /web
parent6a160c82552f4c9ae9d75db7d691b322fff21f19 (diff)
parentedc0e3868790f12920543a6bd9fa96aa4ca3b4ed (diff)
downloadchat-7ff7c864611590347cb6a230d31635ecabdc4f25.tar.gz
chat-7ff7c864611590347cb6a230d31635ecabdc4f25.tar.bz2
chat-7ff7c864611590347cb6a230d31635ecabdc4f25.zip
Merge pull request #2023 from ZBoxApp/PLT-7-templates
PLT-7: Refactoring frontend (chunk 6)
Diffstat (limited to 'web')
-rw-r--r--web/react/components/authorize.jsx95
-rw-r--r--web/react/components/signup_team_confirm.jsx39
-rw-r--r--web/react/pages/signup_team_confirm.jsx64
-rw-r--r--web/static/i18n/en.json6
-rw-r--r--web/static/i18n/es.json2
-rw-r--r--web/templates/authorize.html18
-rw-r--r--web/templates/footer.html8
-rw-r--r--web/templates/signup_team_confirm.html9
-rw-r--r--web/web.go5
9 files changed, 176 insertions, 70 deletions
diff --git a/web/react/components/authorize.jsx b/web/react/components/authorize.jsx
index 90cbe3289..4a4985268 100644
--- a/web/react/components/authorize.jsx
+++ b/web/react/components/authorize.jsx
@@ -3,7 +3,7 @@
import * as Client from '../utils/client.jsx';
-import {FormattedMessage} from 'mm-intl';
+import {FormattedMessage, FormattedHTMLMessage} from 'mm-intl';
export default class Authorize extends React.Component {
constructor(props) {
@@ -35,58 +35,67 @@ export default class Authorize extends React.Component {
}
render() {
return (
- <div className='authorize-box'>
- <div className='authorize-inner'>
- <h3>
- <FormattedMessage
- id='authorize.title'
- defaultMessage='An application would like to connect to your {teamName} account'
- values={{
- teamName: this.props.teamName
- }}
- />
- </h3>
- <label>
- <FormattedMessage
+ <div className='container-fluid'>
+ <div className='oauth-prompt'>
+ <div className='prompt__heading'>
+ <div className='prompt__app-icon'>
+ <img
+ src='/static/images/icon50x50.png'
+ width='50'
+ height='50'
+ alt=''
+ />
+ </div>
+ <div className='text'>
+ <FormattedMessage
+ id='authorize.title'
+ defaultMessage='An application would like to connect to your {teamName} account'
+ values={{
+ teamName: this.props.teamName
+ }}
+ />
+ </div>
+ </div>
+ <p>
+ <FormattedHTMLMessage
id='authorize.app'
- defaultMessage='The app {appName} would like the ability to access and modify your basic information.'
+ defaultMessage='The app <strong>{appName}</strong> would like the ability to access and modify your basic information.'
values={{
appName: this.props.appName
}}
/>
- </label>
- <br/>
- <br/>
- <label>
- <FormattedMessage
+ </p>
+ <h2 className='prompt__allow'>
+ <FormattedHTMLMessage
id='authorize.access'
- defaultMessage='Allow {appName} access?'
+ defaultMessage='Allow <strong>{appName}</strong> access?'
values={{
appName: this.props.appName
}}
/>
- </label>
- <br/>
- <button
- type='submit'
- className='btn authorize-btn'
- onClick={this.handleDeny}
- >
- <FormattedMessage
- id='authorize.deny'
- defaultMessage='Deny'
- />
- </button>
- <button
- type='submit'
- className='btn btn-primary authorize-btn'
- onClick={this.handleAllow}
- >
- <FormattedMessage
- id='authorize.allow'
- defaultMessage='Allow'
- />
- </button>
+ </h2>
+ <div className='prompt__buttons'>
+ <button
+ type='submit'
+ className='btn authorize-btn'
+ onClick={this.handleDeny}
+ >
+ <FormattedMessage
+ id='authorize.deny'
+ defaultMessage='Deny'
+ />
+ </button>
+ <button
+ type='submit'
+ className='btn btn-primary authorize-btn'
+ onClick={this.handleAllow}
+ >
+ <FormattedMessage
+ id='authorize.allow'
+ defaultMessage='Allow'
+ />
+ </button>
+ </div>
</div>
</div>
);
diff --git a/web/react/components/signup_team_confirm.jsx b/web/react/components/signup_team_confirm.jsx
new file mode 100644
index 000000000..de83285db
--- /dev/null
+++ b/web/react/components/signup_team_confirm.jsx
@@ -0,0 +1,39 @@
+// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import {FormattedMessage, FormattedHTMLMessage} from 'mm-intl';
+
+export default class SignupTeamConfirm extends React.Component {
+ constructor(props) {
+ super(props);
+ }
+
+ render() {
+ return (
+ <div className='signup-team__container'>
+ <h3>
+ <FormattedMessage
+ id='signup_team_confirm.title'
+ defaultMessage='Sign up Complete'
+ />
+ </h3>
+ <p>
+ <FormattedHTMLMessage
+ id='signup_team_confirm.checkEmail'
+ defaultMessage='Please check your email: <strong>{email}</strong><br />Your email contains a link to set up your team'
+ values={{
+ email: this.props.email
+ }}
+ />
+ </p>
+ </div>
+ );
+ }
+}
+
+SignupTeamConfirm.defaultProps = {
+ email: ''
+};
+SignupTeamConfirm.propTypes = {
+ email: React.PropTypes.string
+};
diff --git a/web/react/pages/signup_team_confirm.jsx b/web/react/pages/signup_team_confirm.jsx
new file mode 100644
index 000000000..9a536c92e
--- /dev/null
+++ b/web/react/pages/signup_team_confirm.jsx
@@ -0,0 +1,64 @@
+// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import SignupTeamConfirm from '../components/signup_team_confirm.jsx';
+import * as Client from '../utils/client.jsx';
+
+var IntlProvider = ReactIntl.IntlProvider;
+
+class Root extends React.Component {
+ constructor() {
+ super();
+ this.state = {
+ translations: null,
+ loaded: false
+ };
+ }
+
+ static propTypes() {
+ return {
+ map: React.PropTypes.object.isRequired
+ };
+ }
+
+ componentWillMount() {
+ Client.getTranslations(
+ this.props.map.Locale,
+ (data) => {
+ this.setState({
+ translations: data,
+ loaded: true
+ });
+ },
+ () => {
+ this.setState({
+ loaded: true
+ });
+ }
+ );
+ }
+
+ render() {
+ if (!this.state.loaded) {
+ return <div></div>;
+ }
+
+ return (
+ <IntlProvider
+ locale={this.props.map.Locale}
+ messages={this.state.translations}
+ >
+ <SignupTeamConfirm
+ email={this.props.map.Email}
+ />
+ </IntlProvider>
+ );
+ }
+}
+
+global.window.setup_signup_team_confirm_page = function setup(props) {
+ ReactDOM.render(
+ <Root map={props} />,
+ document.getElementById('signup-team-confirm')
+ );
+}; \ No newline at end of file
diff --git a/web/static/i18n/en.json b/web/static/i18n/en.json
index 1a82660fd..45000a890 100644
--- a/web/static/i18n/en.json
+++ b/web/static/i18n/en.json
@@ -397,8 +397,8 @@
"admin.user_item.makeInactive": "Make Inactive",
"admin.user_item.resetPwd": "Reset Password",
"authorize.title": "An application would like to connect to your {teamName} account",
- "authorize.app": "The app {appName} would like the ability to access and modify your basic information.",
- "authorize.access": "Allow {appName} access?",
+ "authorize.app": "The app <strong>{appName}</strong> would like the ability to access and modify your basic information.",
+ "authorize.access": "Allow <strong>{appName}</strong> access?",
"authorize.deny": "Deny",
"authorize.allow": "Allow",
"claim.account.noEmail": "No email specified",
@@ -470,6 +470,8 @@
"password_send.description": "To reset your password, enter the email address you used to sign up for {teamName}.",
"password_send.reset": "Reset my password",
"signup_team_complete.completed": "You've already completed the signup process for this invitation or this invitation has expired.",
+ "signup_team_confirm.title": "Sign up Complete",
+ "signup_team_confirm.checkEmail": "Please check your email: <strong>{email}</strong><br />Your email contains a link to set up your team",
"signup_team.noTeams": "There are no teams include in the Team Directory and team creation has been disabled.",
"signup_team.choose": "Choose a Team",
"signup_team.createTeam": "Or Create a Team",
diff --git a/web/static/i18n/es.json b/web/static/i18n/es.json
index d54c99535..48412510d 100644
--- a/web/static/i18n/es.json
+++ b/web/static/i18n/es.json
@@ -484,6 +484,8 @@
"signup_team.noTeams": "No hay equipos en el Directorio de Equipos y la creación de equipos ha sido deshabilitada.",
"signup_team.none": "No se ha habilitado ningún método para creación de equipos. Por favor contacta a un administrador de sistema para solicitar acceso.",
"signup_team_complete.completed": "Ya haz completado el proceso de entrada para esta invitación, o esta invitación ya ha expirado.",
+ "signup_team_confirm.checkEmail": "Por favor revisa tu correo electrónico: <strong>{email}</strong><br />Se ha enviado un correo con un enlace para configurar tu equipo",
+ "signup_team_confirm.title": "Registro Completado",
"signup_user_completed.choosePwd": "Escoge tu contraseña",
"signup_user_completed.chooseUser": "Escoge tu nombre de usuario",
"signup_user_completed.create": "Crea una Cuenta",
diff --git a/web/templates/authorize.html b/web/templates/authorize.html
index 430291676..0fa36b0ab 100644
--- a/web/templates/authorize.html
+++ b/web/templates/authorize.html
@@ -2,24 +2,10 @@
<html>
{{template "head" . }}
<body>
- <div class="container-fluid">
- <div class="oauth-prompt">
- <div class="prompt__heading">
- <div class="prompt__app-icon">
- <img src="/static/images/icon50x50.png" width="50" height="50" alt="">
- </div>
- <div class="text">An application would like to connect to your {{.Props.TeamName}} account.</div>
- </div>
- <p>The app <strong>{{.Props.AppName}}</strong> would like the ability to access Mattermost on your behalf.</p>
- <h2 class="prompt__allow">Allow <strong>{{.Props.AppName}}</strong> access?</h2>
- <div class="prompt__buttons">
- <input type="button" class="btn btn-link" value="Deny">
- <input type="button" class="btn btn-primary" value="Allow">
- </div>
- </div>
+ <div id="authorize">
</div>
<script>
- window.setup_authorize_page('{{.Props}}');
+ window.setup_authorize_page({{.Props}});
</script>
</body>
</html>
diff --git a/web/templates/footer.html b/web/templates/footer.html
index 60dd5a40e..5b11328fb 100644
--- a/web/templates/footer.html
+++ b/web/templates/footer.html
@@ -5,10 +5,10 @@
</div>
<div class="col-xs-12">
<span class="pull-right footer-link copyright">© 2015 Mattermost, Inc.</span>
- <a id="help_link" class="pull-right footer-link" href="#">Help</a>
- <a id="terms_link" class="pull-right footer-link" href="#">Terms</a>
- <a id="privacy_link" class="pull-right footer-link" href="#">Privacy</a>
- <a id="about_link" class="pull-right footer-link" href="#">About</a>
+ <a id="help_link" class="pull-right footer-link" href="#">{{ .ClientCfg.FooterHelp }}</a>
+ <a id="terms_link" class="pull-right footer-link" href="#">{{ .ClientCfg.FooterTerms }}</a>
+ <a id="privacy_link" class="pull-right footer-link" href="#">{{ .ClientCfg.FooterPrivacy }}</a>
+ <a id="about_link" class="pull-right footer-link" href="#">{{ .ClientCfg.FooterAbout }}</a>
</div>
</div>
<script>
diff --git a/web/templates/signup_team_confirm.html b/web/templates/signup_team_confirm.html
index 2d27194bc..d16861808 100644
--- a/web/templates/signup_team_confirm.html
+++ b/web/templates/signup_team_confirm.html
@@ -7,11 +7,7 @@
<div class="inner__wrap">
<div class="row content">
<div class="col-sm-12">
- <div class="signup-team__container">
- <h3>Sign up Complete</h3>
- <p>Please check your email: {{ .Props.Email }}<br>
- Your email contains a link to set up your team</p>
- </div>
+ <div id="signup-team-confirm"></div>
</div>
</div>
<div class="row footer">
@@ -19,6 +15,9 @@
</div>
</div>
</div>
+ <script>
+window.setup_signup_team_confirm_page({{ .Props }});
+ </script>
</body>
</html>
{{end}}
diff --git a/web/web.go b/web/web.go
index beb0eff06..efe0e6b13 100644
--- a/web/web.go
+++ b/web/web.go
@@ -54,6 +54,11 @@ func (me *HtmlTemplatePage) Render(c *api.Context, w http.ResponseWriter) {
me.Props["Locale"] = me.Locale
me.SessionTokenIndex = c.SessionTokenIndex
+ me.ClientCfg["FooterHelp"] = c.T("web.footer.help")
+ me.ClientCfg["FooterTerms"] = c.T("web.footer.terms")
+ me.ClientCfg["FooterPrivacy"] = c.T("web.footer.privacy")
+ me.ClientCfg["FooterAbout"] = c.T("web.footer.about")
+
if err := Templates.ExecuteTemplate(w, me.TemplateName, me); err != nil {
c.SetUnknownError(me.TemplateName, err.Error())
}