diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/react/components/authorize.jsx | 95 | ||||
-rw-r--r-- | web/react/components/signup_team_confirm.jsx | 42 | ||||
-rw-r--r-- | web/react/pages/signup_team_confirm.jsx | 67 | ||||
-rw-r--r-- | web/static/i18n/en.json | 6 | ||||
-rw-r--r-- | web/static/i18n/es.json | 2 | ||||
-rw-r--r-- | web/templates/authorize.html | 18 | ||||
-rw-r--r-- | web/templates/footer.html | 8 | ||||
-rw-r--r-- | web/templates/signup_team_confirm.html | 9 | ||||
-rw-r--r-- | web/web.go | 5 |
9 files changed, 182 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..84f8e34aa --- /dev/null +++ b/web/react/components/signup_team_confirm.jsx @@ -0,0 +1,42 @@ +/** + * Created by enahum on 1/29/16. + */ +// 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..335be6a49 --- /dev/null +++ b/web/react/pages/signup_team_confirm.jsx @@ -0,0 +1,67 @@ +/** + * Created by enahum on 1/29/16. + */ +// 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()) } |